function addbasket(node_id, obj_id) {
	var form = document.forms["addbasket"];
	form.elements["ContentNodeID"].value = node_id;
	form.elements["ContentObjectID"].value = obj_id;
	form.submit();
	return true;
}

function get_obj(id)
{
	var obj = "";

  // Check browser compatibility
  if(document.getElementById)
  	obj = document.getElementById(id);
  else if(document.all)
  	obj = document.all[id];
  else if(document.layers)
  	obj = document.layers[id];
  else
  	return 1;
  return obj;
}

function get_parentobj(id)
{
	var obj = "";

  // Check browser compatibility
  if(parent.document.getElementById)
  	obj = parent.document.getElementById(id);
  else if(parent.document.all)
  	obj = parent.document.all[id];
  else if(parent.document.layers)
  	obj = parent.document.layers[id];
  else
  	return 1;
  return obj;
}

function get_openerobj(id)
{
	var obj = "";

  // Check browser compatibility
  if(opener.document.getElementById)
  	obj = opener.document.getElementById(id);
  else if(opener.document.all)
  	obj = opener.document.all[id];
  else if(opener.document.layers)
  	obj = opener.document.layers[id];
  else
  	return 1;
  return obj;
}


//
// swap - swaps images
var img_swap_ary = new Array();
img_swap_ary["tree_expand.png"]="tree_collapse.png";
img_swap_ary["tree_collapse.png"]="tree_expand.png";
img_swap_ary["tree_expand_corner.png"]="tree_collapse_corner.png";
img_swap_ary["tree_collapse_corner.png"]="tree_expand_corner.png";
img_swap_ary["forw.gif"]="down.gif";
img_swap_ary["down.gif"]="forw.gif";
img_swap_ary["minimize.png"]="maximize.png";
img_swap_ary["maximize.png"]="minimize.png";
img_swap_ary["user-trash.png"]="user-trash-full.png";
img_swap_ary["user-trash-full.png"]="user-trash.png";

function swap(id)
{
	var obj = get_obj(id);

	if(!obj || obj == 1){
		return 1;
    }
    else if (obj.src){
		var image_str = obj.src;
        var image_path = image_str.substring(0,image_str.lastIndexOf("/") + 1);
        image_str = image_str.substring(image_str.lastIndexOf("/") + 1);
        //alert(image_str + " " + image_path);
        obj.src = image_path + img_swap_ary[image_str];
	}
}



// from userlist mod
function toggle(id) {
	var obj = ""
	obj = get_obj(id);

	if (!obj) {
    	return 1;
	}
    else if (obj.style) {
    	obj.style.display = ( obj.style.display != "none" ) ? "none" : "";
	}
    else {
    	obj.visibility = "show";
	}
}

// from userlist mod
function handleClick(id,doc) {
	//alert('handleClick2! rename this function to toggle_doc?');
	var obj = "";
	if(doc=='parent'){
    	obj = get_parentobj(id);
    }else if(doc=='opener'){
        obj = get_openerobj(id);
    }else{
    	obj = get_obj(id);
    }

	if (!obj) {
    	return 1;
	}
    else if (obj.style)
    {
    	obj.style.display = ( obj.style.display != "none" ) ? "none" : "";
	}
    else
    {
    	obj.visibility = "show";
	}
}

// Show if hidden
function n7_show(id,doc) {
	var obj = "";
	if(doc=='parent'){
    	obj = get_parentobj(id);
    }else if(doc=='opener'){
        obj = get_openerobj(id);
    }else{
    	obj = get_obj(id);
    }

	if (!obj) {
    	return 1;
	}
    else if (obj.style)
    {
    	obj.style.display = "";
    	obj.style.visibility = "visible"; // IE?
	}
    else
    {
    	obj.visibility = "show"; // Netscape
	}
	return false;
}

// Hide
function n7_hide(id,doc) {
	var obj = "";
	if(doc=='parent'){
    	obj = get_parentobj(id);
    }else if(doc=='opener'){
        obj = get_openerobj(id);
    }else{
    	obj = get_obj(id);
    }

	if (!obj) {
    	return 1;
	}
    else if (obj.style)
    {
    	obj.style.display = "none";
    	obj.style.visibility = "hidden"; // IE?
	}
    else
    {
    	obj.visibility = "hide"; // Netscape
	}
	return false;
}


function resizeFrameCols(left, right)
{
	parent.document.body.cols = left + "," + right;
}


//
// Clear Form elements
function clearForm(form){
	for(i=0; i<form.elements.length; i++)
	{
		with(form.elements[i]){
			if(type=='text' || type=='textarea' || type=='password'){
				value='';
			}
			checked = false;
		}
	}
}


// Generic moreFields function to add form-elements "on the fly"
// Using arrays for field-names so can't use: checkboxes, radios?
function moreFields(readroot, writeroot)
{
	var newFields = document.getElementById(readroot).cloneNode(true);
	newFields.id = '';
	newFields.style.display = 'block';
	var newField = newFields.childNodes;

	for (var i=0;i<newField.length;i++)
	{
		var theName = newField[i].name
		if(theName) {
			newField[i].name = theName; // comment[], ufiles[]..
		}
	}
	var insertHere = document.getElementById(writeroot);
	insertHere.parentNode.insertBefore(newFields,insertHere);
}


// Giving 1 form several submit-buttons
// Netscape Navigator 3+ or Internet Explorer 4+ is required, as in earlier browsers the action property is read only.
// Hence the quick and dirty check for the image object:
function popForm(id,action,encoding,target,method) {
    if (document.images) {
    	// try pre-opening a window and name it, then set the forms target to the newly created window
    	window.open('index.html', target, 'HEIGHT=500,resizable=yes,WIDTH=800');
    	var the_form = get_obj(id);
        the_form.action = action;
        the_form.encoding = encoding;
        the_form.target = target;
        the_form.method = method;
        //the_form.submit;
    }
    return false;
}
function setForm(id,action,encoding,target,method) {
    if (document.images) {
    	var the_form = get_obj(id);
        the_form.action = action;
        the_form.encoding = encoding;
        the_form.target = target;
        the_form.method = method;
    }
    return false;
}

function CreateBookmarkLink(title, url) {

    if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title); }
	else if(window.opera && window.print) { // Opera Hotlist
		return true; }
}


/* Alistapart - custom style */
function setActiveStyleSheet(title) {
   var i, a, main;
   for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
     if(a.getAttribute("rel").indexOf("style") != -1
        && a.getAttribute("title")) {
       a.disabled = true;
       if(a.getAttribute("title") == title) a.disabled = false;
     }
   }
   createCookie("nupistyle", title, 365);
}

function getActiveStyleSheet() {
var i, a;
 for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
  if(a.getAttribute("rel").indexOf("style") != -1
  && a.getAttribute("title")
  && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

 
function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}



/* NUPI Projects rotation */

// Fetch by class=fprosjekt - must be done :after: pageload
var divs = new Array();
var fx_current = 0;
//var fx_start = 1;
var fx_total_rows = 10;
var fx_pause = 0;

	function n7_populate_ary_by_class(classname)
	{
		var tmp_ary = new Array();
		var sections = document.getElementsByClassName(classname);
		sections.each(function(section) {
			var sectionID = section.id;
			tmp_ary[tmp_ary.length] = section.id;
		});
		return tmp_ary;
	}

	function fx_fade()
	{
		if(fx_pause==0){
            //alert(divs.length);
			Effect.Fade($(divs[fx_current]), {duration : 1.5, from : 1.0, to : 0});
            Effect.Fade($(divs[fx_current+1]), {duration : 1.5, from : 1.0, to : 0});
            //Effect.Fade($(divs[fx_current+1]), {duration : 1.5, from : 1.0, to : 0});
		}
		setTimeout('fx_appear()', 1500); // Pass +2 to skip 1 and appear the one after
	}

	function fx_appear()
	{
		if(fx_pause==0){
			// Calc next div
			fx_current = (fx_current+2>divs.length-1) ? 0 : fx_current+2;
            //alert(fx_current); // Last item in array is 9 (if divs.length=10)
			Effect.Appear($(divs[fx_current]), {duration : 1.5, from : 0.1, to : 1.0});
            Effect.Appear($(divs[fx_current+1]), {duration : 1.5, from : 0.1, to : 1.0});
            //Effect.Appear($(divs[fx_current+1]), {duration : 1.5, from : 0.1, to : 1.0});
            //fx_current = (fx_current-1<0) ? 0 : fx_current-1;
		}
		setTimeout('fx_fade()', 8000);
	}


/**
 * Accordion Effect for Script.aculo.us
 * Created by Lucas van Dijk
 * http://www.return1.net
 *
 * Copyright 2007 by Lucas van Dijk
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 */
/*
Effect.ScrollVertical = Class.create();

Object.extend(Object.extend(Effect.ScrollVertical.prototype, Effect.Base.prototype), 
{
	initialize: function(element) 
	{
		if(typeof element == "string")
		{		
			this.element = $(element);
			if(!this.element) 
			{
				throw(Effect._elementDoesNotExistError);
			}
		}
		
		var options = Object.extend({
			from: this.element.scrollTop || 0,
			to:   this.element.scrollHeight
		}, arguments[1] || {});
		
		options.to = options.to == this.element.scrollHeight ? options.to : options.from + options.to;
		
		this.start(options);
	},
	
	update: function(position) 
	{
		this.element.scrollTop = position;
	}
});

Effect.ScrollHorizontal = Class.create();

Object.extend(Object.extend(Effect.ScrollHorizontal.prototype, Effect.Base.prototype), 
{
	initialize: function(element) 
	{
		if(typeof element == "string")
		{		
			this.element = $(element);
			if(!this.element) 
			{
				throw(Effect._elementDoesNotExistError);
			}
		}
		
		var options = Object.extend({
			from: this.element.scrollLeft || 0,
			to:   this.element.scrollWidth
		}, arguments[1] || {});
		
		this.start(options);
	},
	
	update: function(position) 
	{
		this.element.scrollLeft = position;
	}
});
*/
/*
function scrollPub(id)
{
	new Effect.ScrollVertical($(id), {  
      from: 0, to: 200 });
}

// TODO: animate?? add checks to see if scrollTop - 180 < 0? scrollTop + 180 > height?
function n7scrollDown(id)
{
	var objDiv = document.getElementById(id);
	objDiv.scrollTop = objDiv.scrollTop + 180; //objDiv.scrollHeight;
}
function n7scrollUp(id)
{
	var objDiv = document.getElementById(id);
	objDiv.scrollTop = objDiv.scrollTop - 180; //0; //objDiv.scrollHeight;
}
*/


/* 
NOTE/TODO: these even work in IE6, but the CSS doesn't - overflow:hidden and max-height 
adding overflow-y:hidden hides the initial BigBox in IE6, but content is made visible after clicking goUp/goDown :/
-- continue
*/

function goDown(id, el_i)
{
	//new Effect.ScrollDown($(id), {from : 0, to : 180.0, duration: 2.0});
	element = $(id);
  	var elementDimensions = element.getDimensions();
  	var originalLeft = parseFloat(element.getStyle('left') || '0');
   var originalTop  = parseFloat(element.getStyle('top')  || '0'); // i.e. 0, -180, -360 ...
   var originalStyle = {};
    ['top','left','width','height','fontSize'].each( function(k) {
      originalStyle[k] = element.style[k];
    }.bind(this));      
   //var originalTop  = element.offsetTop; // i.e. 1163, 983, 803..
   //var originalLeft = element.offsetLeft;
    
//  	elementDimensions.height
	//alert(elementDimensions.height + ' ' + (elementDimensions.height + originalTop - 180) + ' ' + originalTop );
	elementPositioning = element.getStyle('position');
	//alert(elementPositioning + ':' + originalLeft +':'+ originalTop);
	//alert(element.offsetHeight); // same as height
	if(elementDimensions.height + originalTop - 180 > 2){
		new Effect.MoveBy(id, -180, 0 , {duration: 0.4,  transition: Effect.Transitions.sinoidal});
		// Make the :up: button clickable if it isn't already
		//obj = el.getElementsByTagName('img')[0]; // TODO: might be faster to check originalTop
		obj_src = $('scrollimg_'+el_i+'u').src; //alert('IMG src: ' + obj.src);		
		//alert('Debug: ' + obj_src);
		if( obj_src.search(/scroll_u.gif/) > 0){
			//obj = el.getElementsByTagName('img')[0];
			//obj_src = obj.src; //alert('IMG src: ' + obj.src);
			//new Effect.Highlight(obj, {duration: 0.5, endcolor: '#aaa'});
			//alert(obj_src.rsearch("_") +':'+ obj_src.substring(obj_src.search("_")+1));
			// substr(start, length) - if start is negative substr returns from end-of-string
			// stringObject.replace(findstring,newstring)
			//alert(obj_src.replace('scroll_u.gif','scroll_u2.gif'));
			$('scrollimg_'+el_i+'u').src = obj_src.replace('scroll_u.gif','scroll_u2.gif');
		}
	}
	// swap down-arrow if end-of-box: 180*2 cause originalTop has moved already
	if(elementDimensions.height + (originalTop - 180*2) < 0){
		// Out of bounds
		obj_src = $('scrollimg_'+el_i+'d').src;
		if( obj_src.search(/scroll_d2.gif/) > 0){
			$('scrollimg_'+el_i+'d').src = obj_src.replace('scroll_d2.gif','scroll_d.gif');
		}
	}
}
function goUp(id, el_i)
{
	element = $(id);
	var elementDimensions = element.getDimensions();
	var originalTop  = parseFloat(element.getStyle('top')  || '0'); // i.e. 0, -180, -360 ...
//	alert(elementDimensions.height + ' ' + originalTop);
	//new Effect.ScrollDown($(id), {from : 0, to : 180.0, duration: 2.0});
	if(originalTop < 0){
		new Effect.MoveBy(id, 180, 0 , {duration: 0.4,  transition: Effect.Transitions.sinoidal});
		// TODO: change button picture if new position < 0?
		originalTop  = parseFloat(element.getStyle('top')  || '0'); // i.e. 0, -180, -360 ...
		if(originalTop +180 >= 0){
			//obj = el.getElementsByTagName('img')[0]; // deprecated: was finding first img-child of a-tag (el)
			//obj_src = obj.src; //alert('IMG src: ' + obj.src);			
			obj_src = $('scrollimg_'+el_i+'u').src;
			//new Effect.Highlight(obj, {duration: 0.5, endcolor: '#aaa'});
			// substr(start, length) - if start is negative substr returns from end-of-string
			// stringObject.replace(findstring,newstring)
			//alert(obj_src.replace('scroll_u2','scroll_u'));
			if( obj_src.search(/scroll_u2.gif/) > 0){
				$('scrollimg_'+el_i+'u').src = obj_src.replace('scroll_u2','scroll_u');
				//new Effect.Pulse('scrollimg_'+el_i+'u', 0, 5);
				//new Effect.Shrink('scrollimg_'+el_i+'u', { duration:3, delay: 0.5, scaleFrom:100.0, scaleTo:0.0 });
				//new Effect.Opacity('scrollimg_'+el_i+'u', {from : 1.0, to : 0.1});
			}
		}
	}
	var originalTop2  = parseFloat(element.getStyle('top')  || '0'); // i.e. 0, -180, -360 ...
	if(elementDimensions.height + originalTop2 > 0){
		//alert(elementDimensions.height + ' ' + originalTop2 + '::' + (elementDimensions.height + originalTop2));
		obj_src = $('scrollimg_'+el_i+'d').src;
		if( obj_src.search(/scroll_d.gif/) > 0){
			$('scrollimg_'+el_i+'d').src = obj_src.replace('scroll_d.gif','scroll_d2.gif');
		}
	}
}

function swapScrollImg(id, el_i)
{
	element = $(id);
  	var elementDimensions = element.getDimensions();
   var originalTop  = parseFloat(element.getStyle('top')  || '0'); // i.e. 0, -180, -360 ...
   var originalStyle = {};
    ['top','left','width','height','fontSize'].each( function(k) {
      originalStyle[k] = element.style[k];
    }.bind(this));      
 
	//alert(elementDimensions.height + ' ' + (elementDimensions.height + originalTop - 180) + ' ' + originalTop );
	elementPositioning = element.getStyle('position');
	//alert(elementPositioning + ':' + elementDimensions.height + ':' + originalTop);
	//alert(element.offsetHeight); // same as height
	if(elementDimensions.height + originalTop - 180 < 2){
		obj_src = $('scrollimg_'+el_i+'d').src;
		
		if( obj_src.search(/scroll_d2.gif/) > 0){
			$('scrollimg_'+el_i+'d').src = obj_src.replace('scroll_d2','scroll_d');
				//new Effect.Pulse('scrollimg_'+el_i+'u', 0, 5);
				//new Effect.Shrink('scrollimg_'+el_i+'u', { duration:3, delay: 0.5, scaleFrom:100.0, scaleTo:0.0 });
				//new Effect.Opacity('scrollimg_'+el_i+'u', {from : 1.0, to : 0.1});
		}
	}
}	
	
/* Ajax */

