//*******************************************************************************************
// function fl_changeSrcs(arg1,arg1-1 [,arg2,arg2-1,arg3,arg3-1,...])
// DOM1 compliant
// changes the attribute "src"  of element argX to argX-1
// multiple argument pairs may be passed
//*******************************************************************************************
function fl_changeSrc(strArgs){ 
	for(var i=0;i<fl_changeSrc.arguments.length; i+=2){
		var node = document.getElementById(fl_changeSrc.arguments[i]);
		node.setAttribute("src", fl_changeSrc.arguments[i+1]); 
	}
}

//*******************************************************************************************
// function fl_changeLoc(arg1)
// jumps to a new page
//*******************************************************************************************
function fl_changeLoc(strDst){
	window.location = strDst;
}

//*******************************************************************************************
// function fl_changeClass(arg1,arg1-1 [,arg2,arg2-1,arg3,arg3-1,...])
// changes the class of element argX to class argX-1
// multiple argument pairs may be passed
//*******************************************************************************************
function fl_changeClass(strID, strClassName){
	for(var i=0;i<fl_changeClass.arguments.length; i+=2){
		var node = document.getElementById(fl_changeClass.arguments[i]);
		node.className = fl_changeClass.arguments[i+1];
		/*
		Using setAttribute for "class" in Explorer does not seem to update the page correctly.
		node.setAttribute("class", fl_changeClass.arguments[i+1]); 
		*/
	}
}

//*******************************************************************************************
// function fl_toggleClass(element, classname1, classname2)
// changes the element to classname1 if it's classname2 and visa-versa
//*******************************************************************************************
function fl_toggleClass(objElement, strClassName1, strClassName2){
	var node;
	node = objElement;
	if ( node.className == strClassName1 ){
		node.className = strClassName2;
	} else {
		node.className = strClassName1;
	}
}


//*******************************************************************************************
// function cancelEvent()
// assigning this function to an elements onmouseover prevents the event from propigating 
// to parent objects.
//*******************************************************************************************
function cancelEvent(myEvent){
	// blocks the enter key value from being processed when assigned to an objects event
	// Mozilla sends the event as the first parameter while IE does not
	if (myEvent == null){
		//IE
		myEvent = window.event;
		myEvent.cancelBubble = true;
		//alert(myEvent.srcElement.name);
	} else {
		//DOM2
		myEvent.stopPropagation();
		//alert(myEvent.target);
	}

	return false;
};


//*******************************************************************************************
// function togglePointer()
// toggles the image used for the cursor from default to pointer on each call
//*******************************************************************************************
function fl_togglePointer(){
	// DOM CSS2 required
	if (document.body.style.cursor=='pointer'){
		document.body.style.cursor='';
	}else{
		document.body.style.cursor='pointer';
	}
}

function fl_openWindow(strURL,strWinName,strFeatures){
	window.open(strURL,strWinName,strFeatures);
}

function fl_openWindowCentered(strURL,strWinName,intWidth,intHeight,strFeatures){
// fl_openWindowCentered('http://whatever.com/page.html','windowname',800, 600, '');
	window.open(strURL,strWinName,'left='+ (screen.width - intWidth) / 2 +',top='+(screen.height - intHeight ) / 2 +',width='+intWidth+',height='+intHeight+','+strFeatures);
}


function MM_swapImgRestore() { //v3.0
  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)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}




// returns a URL passed variable via javascript and name
function getValue(varname)
{
  var url = window.location.href;
  var qparts = url.split("?");
  if (qparts.length == 1)
  {
    return "";
  }
  var query = qparts[1];
  var vars = query.split("&");
  var value = "";
  for (i=0;i<vars.length;i++)
  {
    var parts = vars[i].split("=");
    if (parts[0] == varname)
    {
      value = parts[1];
      break;
    }
  }
  value = unescape(value);
  value.replace(/\+/g," ");
  return value;
}



// DOM functions
function checkDOM()
{
	if (document.getElementById && document.createElement)
		return true;
	else return false;
}


function toggleDisplay(strArgs){ 
	for(var i=0;i<toggleDisplay.arguments.length; i++){
		var node = document.getElementById(toggleDisplay.arguments[i]);
		if ( node.style.display == "" ){
			node.style.display = "none";
		}else{
			node.style.display = "";
		}
	}
}


function setDisplay(strArgs){ 
	for(var i=0;i<setDisplay.arguments.length; i+=2){
		var node = document.getElementById(setDisplay.arguments[i]);
		node.style.display = setDisplay.arguments[i+1];
	}
}




function setHeight(strArgs){ 
	for(var i=0;i<setHeight.arguments.length; i+=2){
		var node = document.getElementById(setHeight.arguments[i]);
		node.style.height = setHeight.arguments[i+1];
	}
}
