function ExpandCollapse(e, title) {
	if (e.style.display=="none") {
		SidebarWidget(e.id, false, title, true);
	} else {
		SidebarWidget(e.id, true, title, true);
	}
}

function SidebarWidget(cookie_name, collapsed, title, set_cookie) {
	if (!collapsed) {
		if (set_cookie) {
			SetCookie(cookie_name, '', null);
		}
		ChangeSidebarWidget(document.getElementById(cookie_name), false, title);
	} else {
		if (set_cookie) {
			SetCookie(cookie_name, 'none', null);
		}
		ChangeSidebarWidget(document.getElementById(cookie_name), true, title);
	}
}

function ChangeSidebarWidget(e, collapsed, title) {
	if (!collapsed) {
		if (e != null) {
			e.style.display = '';
			document.getElementById(e.id + '-sign').innerHTML = '&nbsp;[-]';
			document.getElementById(e.id + '-link').setAttribute('title', 'Collapse ' + title);
		}
	} else {
		//alert (e);
		if (e != null) {
			e.style.display = 'none';
			document.getElementById(e.id + '-sign').innerHTML = '&nbsp;[+]';
			document.getElementById(e.id + '-link').setAttribute('title', 'Expand ' + title);
		}
	}
}

function IsCollapsed (cookie_name) {
	if (GetCookie(cookie_name) == '') {
		return false;
	} else {
		return true;
	}
}

function IsCookieSet (cookie_name) {
	if ( document.cookie.length == 0 )  {
		return false;
	} else {
		cookie_start = document.cookie.indexOf(cookie_name + "=");
		if ( cookie_start == -1 ) {
			return false;
		} else {
			return true;
		}
	}
}

function GetCookie(cookie_name) {
	cookie_start=document.cookie.indexOf(cookie_name + "=");
	cookie_start=cookie_start + cookie_name.length + 1;
	cookie_end=document.cookie.indexOf(";",cookie_start);
	if (cookie_end==-1) {
		cookie_end=document.cookie.length;
	}
	return unescape(document.cookie.substring(cookie_start,cookie_end));
}

function SetCookie(cookie_name,value,expiredays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=cookie_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString()) + "; path=/";
}

function SwapImage(e, x) {
	//alert(document.getElementById(e).src);
	document.getElementById(e).src = x;
}


function MM_swapImgRestore() { //v3.0
	//alert("test")
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  	//alert(a[0]);
	//alert(a[2]);

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
   //alert(x.src);
}








function createjscssfile(filename, filetype){
	if (filetype=="js"){ //if filename is a external JavaScript file
		var fileref=document.createElement('script')
		fileref.setAttribute("type","text/javascript")
		fileref.setAttribute("src", filename)
	} else if (filetype=="css"){ //if filename is an external CSS file
		var fileref=document.createElement("link")
		fileref.setAttribute("rel", "stylesheet")
		fileref.setAttribute("type", "text/css")
		fileref.setAttribute("href", filename)
	}
	return fileref
}

function replacejscssfile(oldfilename, newfilename, filetype) {
	var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist using
	var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to ChangeSidebarWidget for
	var allsuspects=document.getElementsByTagName(targetelement)
	for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
		if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(oldfilename)!=-1){
   var newelement=createjscssfile(newfilename, filetype)
	allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i])
		}
	}
}
