// Default variables 

var iTimerID = 0;
var currmenu = 0;

// Browser detect *********************************************************************************

var browserN4 = false;
var browserIE = false;
var browserN6 = false;

if(document.layers){
	browserN4 = true;
} else if(document.all) {
	browserIE = true;
} else if(document.getElementById) {
	browserN6 = true;
}

// Style sheet selected based on browser **********************************************************

function writeStyleLink(){
	if(browserN4){myStyle="style_n4.css";}else{myStyle="style.css";}
	var browserStyle = "<link rel='STYLESHEET' type='text/css' href='jscss/" + myStyle + "'>";
	var printStyle = "<link rel='STYLESHEET' type='text/css' href='jscss/print.css'>";
	document.write(browserStyle);
	if(FORM_DATA ['printable'])document.write(printStyle);
}

// Form validation *************************************************************************

function validatesearch(myform) {        
	if (myform.qt.value == ""){
		alert("Please enter your search criteria");
		return false;
	} else {
		return true;
	}
}

function validatesearchlink() {         
	if (document.query.qt.value == ""){
	alert("Please enter your search criteria");
        //return false;
	} else {
	document.query.submit();
	}
}

var errColor = "#ffdddd";
var focusColor = "#b4e4ff";
var blurColor = "#edf3fd";

function validatecard(form) {
	var msg = "";
	if(!validName(form.recipname.value)){bgChange(form.recipname,errColor);msg += "* Recipient Name\n";}
	if(!validEmail(form.recipemail.value)){bgChange(form.recipemail,errColor);msg += "* Recipient Email\n";}
	if(!validName(form.sendername.value)){bgChange(form.sendername,errColor);msg += "* Your Name\n";} 
	if(!validEmail(form.senderemail.value)){bgChange(form.senderemail,errColor);msg += "* Your Email\n";}
	if (msg != "") {
		alert("The following fields were not completed correctly: \n\n" + msg);
		return false;
	} else {
		form.validated.value = "true";
		return true;
	}
}

function validName(nameString) {RegExp = /^[A-Z]./i;return(RegExp.exec(nameString));}
function validEmail(emailString) {RegExp = /[\w\.\-]{2,}\@[\w\-]{2,}\.[a-z]{2,3}/i;return(RegExp.exec(emailString));}
function bgChange(myField,myColor) {if (!document.layers){myField.style.background = myColor;}}

// Image preload and rollovers ********************************************************************

if (document.images) {
	srchOn = new Image();
	srchOn.src ="images/searchbtn_o.gif";
	srchOff = new Image();
	srchOff.src ="images/searchbtn.gif";
}

// Menu functions *********************************************************************************

function linkCol(myLink,mySwitch) {
	if(mySwitch){mylinkcolor=menuOnLinkColor;}else{mylinkcolor=menuOffLinkColor;}	
	if(document.all) {eval("document.all.link" + myLink + ".style.color = mylinkcolor;")}else if(document.getElementById){document.getElementById("link" + myLink).style.color = mylinkcolor;}
}

function showdiv(i) {
	if(iTimerID)clearTimeout(iTimerID);
	currmenu = i; // set last active menu for hideall() 
	actMenuBgColor(i,1);
		if(document.layers){
			eval("document.div" + i).visibility = 'show';
		} else if(document.all) {
			eval("document.all.div" + i + ".style").visibility = 'visible';
		} else if(document.getElementById) {
			document.getElementById("div" + i).style.visibility = 'visible';
		}
}
 
function delayhide(i) {myMenu=i;iTimerID = setTimeout("hidediv(myMenu)",1000);} 
 
function hidediv(i) {
	actMenuBgColor(i,0)
	if(document.layers){
		eval("document.div" + i).visibility = 'hide';
	} else if(document.all) {
		eval("document.all.div" + i + ".style").visibility = 'hidden';
	} else if(document.getElementById) {
		document.getElementById("div" + i).style.visibility = 'hidden';
	}
} 

function hideall() {
	hidediv(currmenu);
	//for (var x = 0; x <= mySubmenu.length-1; x++)hidediv(x);
} 

function actMenuBgColor(menuNum,mySwitch) {
	if(mySwitch){menuBackColor = menuOnColor;} else {menuBackColor = menuOffColor;}
	if(document.layers){
		eval("document.layers['menuboxIL" + menuNum + "'].document.layers['menuboxL" + menuNum + "']").bgColor=menuBackColor;
	} else if(document.all) {
		eval("document.all.menubox" + menuNum + ".style").backgroundColor = menuBackColor;
	} else if(document.getElementById) {
		document.getElementById("menubox" + menuNum).style.backgroundColor = menuBackColor;
	}
}

// ****** div positioning functions  

function getX(obj){
  if(document.layers){
  	//return eval(obj).x;
	return eval(obj).pageX;    // ************* x for image pos, pageX for layer pos
  } else {
  	return( obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft+getX(obj.offsetParent) );
  }
}

function getY(obj) {
	if(document.layers){
  		//return eval(obj).y;     ************* y for image pos, pageY for layer pos
		return eval(obj).pageY;
	} else {
  		return( obj.offsetParent==null ? obj.offsetTop : obj.offsetTop+getY(obj.offsetParent) );
	}
}

function getMainX(myobj){
 var img = document.images['posImg0'];
 alert( getX(img) + "," + getY(img) );
 //return(getX(img));
}

function divPos(){ // reposition on resize of browser window
	if(document.layers){leftXPos = getX(document.layers['menuboxIL0']);}else{leftXPos = getX(document.images['posImg0']);}
	var leftPos =  leftXPos + subMenuWidth;
	for (var x = 0; x <= mySubmenu.length-1; x++){
		if(document.layers){
			eval("document.div" + x).pageX = leftPos;
		} else if(document.all) {
			eval("document.all.div" + x).style.left = leftPos;
		} else if(document.getElementById) {
			document.getElementById("div"+ x).style.left = leftPos;
		}
	} 
}


// GET Parsing Module *******************************************************

function createRequestObject() {
  
  FORM_DATA = new Object();
    // The Object ("Array") where our data will be stored.
  
  separator = ',';
    // The token used to separate data from multi-select inputs
  
  query = '' + this.location;
    // Get the current URL so we can parse out the data.
    // Adding a null-string '' forces an implicit type cast
    // from property to string, for NS2 compatibility.
    
  query = query.substring((query.indexOf('?')) + 1);
    // Keep everything after the question mark '?'.
  
  if (query.length < 1) { return false; }  // Perhaps we got some bad data?
  
  keypairs = new Object();
  numKP = 1;
    // Local vars used to store and keep track of name/value pairs
    // as we parse them back into a usable form.
    
  while (query.indexOf('&') > -1) {
    keypairs[numKP] = query.substring(0,query.indexOf('&'));
    query = query.substring((query.indexOf('&')) + 1);
    numKP++;
      // Split the query string at each '&', storing the left-hand side
      // of the split in a new keypairs[] holder, and chopping the query
      // so that it gets the value of the right-hand string.
  }

  keypairs[numKP] = query;
    // Store what's left in the query string as the final keypairs[] data.
  
  for (i in keypairs) {
    keyName = keypairs[i].substring(0,keypairs[i].indexOf('='));
      // Left of '=' is name.
    keyValue = keypairs[i].substring((keypairs[i].indexOf('=')) + 1);
      // Right of '=' is value.
    while (keyValue.indexOf('+') > -1) {
      keyValue = keyValue.substring(0,keyValue.indexOf('+')) + ' ' + keyValue.substring(keyValue.indexOf('+') + 1);
        // Replace each '+' in data string with a space.
    }
    
    keyValue = unescape(keyValue);
      // Unescape non-alphanumerics
      
    if (FORM_DATA[keyName]) {
      FORM_DATA[keyName] = FORM_DATA[keyName] + separator + keyValue;
        // Object already exists, it is probably a multi-select input,
        // and we need to generate a separator-delimited string
        // by appending to what we already have stored.
    } else {
      FORM_DATA[keyName] = keyValue;
        // Normal case: name gets value.
    }
  }

  return FORM_DATA;
}

FORM_DATA = createRequestObject();
  // This is the array/object containing the GET data.
  // Retrieve information with "FORM_DATA [ 'key' ] = value".

	
