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) { //v3.0
  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);
	
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 PreLoad_Images(){
	
	MM_preloadImages('images/<%=homeImg%>-over.gif', 'images/request_quote-over.gif','images/submit_project-over.gif','images/current_specials-over.gif','images/contact-over.gif', 'images/my_acc-over.gif','images/extranet-over.gif','images/poly_product-over.gif','images/why_crp-over.gif','images/sample_protocols-over.gif','images/custom_immun-over.gif','images/hybrid_dev-over.gif','images/vitro_product-over.gif','images/ascite_product-over.gif','images/immun_chem-over.gif','images/assay_dev-over.gif');
}

function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	
	this.ns6 = ((this.agent.indexOf('Netscape6' )>0) && (document.getElementById)) ? 1:0;
	this.ns7 = ((this.agent.indexOf('Netscape/7')>0) && (document.getElementById)) ? 1:0;
	
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5 || this.ns7)
	
	return this
}

//this function is to post the varible P or Q for the project/Quote submit form
function TransferToPage(s){
		document.tempform.buildType.value = s;
		document.tempform.submit();
}
	
function setPointer(theRow, theAction, theDefaultColor, thePointerColor, theMarkColor)
	{
	    var theCells = null;

	    // 1. Pointer and mark feature are disabled or the browser can't get the
	    //    row -> exits
	    if ((thePointerColor == '' && theMarkColor == '')
	        || typeof(theRow.style) == 'undefined') {
	        return false;
	    }

	    // 2. Gets the current row and exits if the browser can't get it
	    if (typeof(document.getElementsByTagName) != 'undefined') {
	        theCells = theRow.getElementsByTagName('td');
	    }
	    else if (typeof(theRow.cells) != 'undefined') {
	        theCells = theRow.cells;
	    }
	    else {
	        return false;
	    }

	    // 3. Gets the current color...
	    var rowCellsCnt  = theCells.length;
	    var domDetect    = null;
	    var currentColor = null;
	    var newColor     = null;
	    // 3.1 ... with DOM compatible browsers except Opera that does not return
	    //         valid values with "getAttribute"
	    if (typeof(window.opera) == 'undefined'
	        && typeof(theCells[0].getAttribute) != 'undefined') {
	        currentColor = theCells[0].getAttribute('bgcolor');
	        domDetect    = true;
	    }
	    // 3.2 ... with other browsers
	    else {
	        currentColor = theCells[0].style.backgroundColor;
	        domDetect    = false;
	    } // end 3

	    // 4. Defines the new color
	    // 4.1 Current color is the default one
	    if (currentColor == ''
	        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
	        if (theAction == 'over' && thePointerColor != '') {
	            newColor = thePointerColor;
	        }
	        else if (theAction == 'click' && theMarkColor != '') {
	            newColor = theMarkColor;
	        }
	    }
	    // 4.1.2 Current color is the pointer one
	    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()) {
	        if (theAction == 'out') {
	            newColor = theDefaultColor;
	        }
	        else if (theAction == 'click' && theMarkColor != '') {
	            newColor = theMarkColor;
	        }
	    }
	    // 4.1.3 Current color is the marker one
	    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
	        if (theAction == 'click') {
	            newColor = (thePointerColor != '')
	                     ? thePointerColor
	                     : theDefaultColor;
	        }
	    } // end 4

	    // 5. Sets the new color...
	    if (newColor) {
	        var c = null;
	        // 5.1 ... with DOM compatible browsers except Opera
	        if (domDetect) {
	            for (c = 0; c < rowCellsCnt; c++) {
	                theCells[c].setAttribute('bgcolor', newColor, 0);
	            } // end for
	        }
	        // 5.2 ... with other browsers
	        else {
	            for (c = 0; c < rowCellsCnt; c++) {
	                theCells[c].style.backgroundColor = newColor;
	            }
	        }
	    } // end 5

	    return true;
} // end of the 'setPointer()' function


var isIE=document.all?true:false;
var isDOM=document.getElementById?true:false;
var isNS4=document.layers?true:false;

/* _w : which ID (1) or (2) */
/* _h : (h)ide or (s)how */
function toggleT(_w,_h) {
  
    
 if (isIE) {
 
    if (_h=='s') eval("document.all."+_w+".style.visibility='visible';");
    if (_h=='h') eval("document.all."+_w+".style.visibility='hidden';");
  }
  else if(isNS4)
  {
	return;
   
  }
	else if (isDOM)
  {
 
    if (_h=='s') document.getElementById(_w).style.visibility='visible';
    if (_h=='h') document.getElementById(_w).style.visibility='hidden';
  }
  
}

function toggleC(_w,_h) {
   
    if (_h){
		_h = 's';
    }
    else{
		_h = 'h';
    }
 if (isIE) {
 
    if (_h=='s') eval("document.all."+_w+".style.visibility='visible';");
    if (_h=='h') eval("document.all."+_w+".style.visibility='hidden';");
  }
  else if(isNS4)
  {
	return;
   
  }
	else if (isDOM)
  {
 
    if (_h=='s') document.getElementById(_w).style.visibility='visible';
    if (_h=='h') document.getElementById(_w).style.visibility='hidden';
  }
  
}

function isValidDate(dateStr) {
// Checks for the following valid date formats:
// MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
// Also separates date into month, day, and year variables

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

// To require a 4 digit year entry, use this line instead:
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert("Date is not in a valid format.")
return false;
}
month = matchArray[1]; // parse date into variables
day = matchArray[3];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
return false;
}
if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn't have 31 days!")
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert("February " + year + " doesn't have " + day + " days!");
return false;
   }
}
return true;  // date is valid
}


/* start the code for hiding layers */







