	
var disappeardelay=250  //menu disappear speed onMouseout (in miliseconds)
var enableanchorlink=0 //Enable or disable the anchor link when clicked on? (1=e, 0=d)
var hidemenu_onclick=1 //hide menu when user clicks within menu? (1=yes, 0=no)
var horizontaloffset=1 //horizontal offset of menu from default location. (0-5 is a good value)

/////No further editting needed

var ie5=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null){
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}



function show(obj, visible, hidden){
	if (ie5||ns6){
		dropmenuobj.style.left=dropmenuobj.style.top=-500
	}
	obj.visibility=visible
}

function close(dropmenuID){
	dropmenuobj=document.getElementById(dropmenuID)
	dropmenuobj.style.visibility='hidden'
}

function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
	var edgeoffset=0
	if (whichedge=="rightedge"){
	var windowedge=ie5 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
	dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
	if (windowedge-dropmenuobj.x-obj.offsetWidth < dropmenuobj.contentmeasure)
		edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+(horizontaloffset*2) //no space to the right of page? Move menu over to the left
	}
	else{
		var topedge=ie5 && !window.opera? iecompattest().scrollTop : window.pageYOffset
		var windowedge=ie5 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
		dropmenuobj.contentmeasure=dropmenuobj.offsetHeight 
		//take care if footer is higher than window edge
		try{ 
			var footer = document.getElementById('footer');
			var footerTop =getposOffset(footer, "top");			 
			if(windowedge> footerTop){
			  windowedge = footerTop;
			}
		}catch(err){}
		var verticalOffset =90;
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure +verticalOffset){ //move menu up?
			
			edgeoffset =  dropmenuobj.contentmeasure + verticalOffset;			 
			if ((dropmenuobj.y-verticalOffset)<dropmenuobj.contentmeasure){//up no good either? (position at top of viewable window then)
				edgeoffset=dropmenuobj.y
			}			
			 	
		}
	}
	return edgeoffset
}

function dropdownmenu(idName, e, dropmenuID){
	var left = 0;
	var top = 0;
	var bufferTop =-120;
	var bufferLeft = 40;
	if(idName == 'BioRefinement'){
		bufferTop = -280;
	}
	//hide previous menu
	if (typeof dropmenuobj!="undefined"){ 
		dropmenuobj.style.visibility="hidden"
	}

	var obj = document.getElementById(idName) ;
	dropmenuobj = document.getElementById(dropmenuID);
	show(dropmenuobj.style, "visible", "hidden");

	if(typeof(obj.offsetParent) != 'undefined'){
		for(var xPos = 0,yPos = 0;obj;obj=obj.offsetParent){
			xPos += obj.offsetLeft;
			yPos += obj.offsetTop;
		}
		left = xPos;
		top = yPos ;
	}
	else{
		left = obj.x;
		top = obj.y ;
	}

	dropmenuobj.style.left = left + bufferLeft;
	dropmenuobj.style.top = top + bufferTop ;
	
	return clickreturnvalue();
}

function dropdownmenuFromPA(idName, e, dropmenuID)
{
	var u = 0, l = 0;
	if (e.pageX) {
	    l = e.pageX;
	}
	else if (e.clientX) {
		l = e.clientX + (document.documentElement.scrollLeft ?
		document.documentElement.scrollLeft :
		document.body.scrollLeft);
	}
	if (e.pageY) {
		u = e.pageY;
	}
	else if (e.clientY) {
		u = e.clientY + (document.documentElement.scrollTop ?
		document.documentElement.scrollTop :
		document.body.scrollTop);
	}

	var obj = document.getElementById(idName) ;
	dropmenuobj = document.getElementById(dropmenuID);
	show(dropmenuobj.style, "visible", "hidden");

	dropmenuobj.style.left = l+'px';
	dropmenuobj.style.top = (u-120)+'px';

	return clickreturnvalue();
}


function clickreturnvalue(){
	if ((ie5||ns6) && !enableanchorlink) return false
	else return true
}

function contains_ns6(a, b) {
	while (b.parentNode)
	if ((b = b.parentNode) == a){
		return true;
	}
	return false;
}

function submitRefinements(formName){
	var elem = document.getElementById(formName);
	var navDescriptors = 'N25=0';
	for (i=0; i<elem.refinementCheckbox.length; i++){
		if (elem.refinementCheckbox[i].checked==true){
			navDescriptors = navDescriptors + "+" + elem.refinementCheckbox[i].value;
		}
	}
	location.href=elem.link.value+ '&'+ navDescriptors;
}

function submitRefinements(formName, oldRefineNum){
	var elem = document.getElementById(formName);
	var navDescriptors = 'N25=' + oldRefineNum;
	for (i=0; i<elem.refinementCheckbox.length; i++){
		if (elem.refinementCheckbox[i].checked==true){
			navDescriptors = navDescriptors + "+" + elem.refinementCheckbox[i].value;
		}
	}
	location.href=elem.link.value+ '&'+ navDescriptors;
}

function toggle(div_id) {
	var el = document.getElementById(div_id);
	if ( el.style.display == 'none' ) {	el.style.display = 'block';}
	else {el.style.display = 'none';}
}

function popup(windowname) {
	toggle(windowname);
}

function populateResults(){
	toggle('popUpDiv');
	var NewObj = document.getElementById('popUpDiv');
	NewObj.innerHTML = '<img src=\"' + getCatalogNameFromURL()+'/images/red_cube.gif\">';

    CreateRequest();
    var url = getCatalogNameFromURL()+ "/ViewAllPathways.do?VAP=X";
    request.open("GET", url, true);
    request.onreadystatechange=UpdatePage;
    request.send(null);
}

function CreateRequest(){
	try{
		request = new XMLHttpRequest();
	}
	catch(trymicrosoft){
		try{
			request = newActiveXObject("Msxml2.XMLHTTP");
		}
		catch(othermicrosoft){
			try{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(failed){
				request = null;
			}
     	}	
	}
}


function  UpdatePage(){
	if (request.readyState == 4){
		var NewData = request.responseText;
		var NewObj = document.getElementById('popUpDiv');
		NewObj.innerHTML = NewData;
		NewObj.style.display='';
	}
}

function submitSearch(){ 
	var searchterm = document.getElementById("N4").value;
	location.href="Lookup.do?D7=0&N3=matchpartialmax&N5=All&N25=0&N1=S_ID&ST=YFG&N4=" + searchterm + "&D10=" + searchterm;
}

function submitSort(var1, var2)
{
	var url = "";
	if(var1 != null && var1 != "")
		url = var2+'&N8='+var1;
	else
		url = var2;
	url = getCatalogNameFromURL() + "/Lookup.do"+url;
	location.href=url;
}
		
function displayRefinements()
{
	document.getElementById('moreRefinementLink').style.display = "none";
	document.getElementById('MoreRefinements').style.display = "block";
}

	function getCatalogNameFromURL(){
	    //use catalog as context path if failed
        var url = '/catalog';
        try{
			var path = location.pathname;
			 
			if(path.indexOf("/")==0){
				  var len = path.length;
				  path = path.substring(1, len);
			      
			      if(path.indexOf("/")>=0){
				        var index = path.indexOf("/");
				        url = "/" + path.substring(0,index);
			      }else{		      		
				     	url = "/" + path;
				  }
			}			
			  
	    }catch(err){}		
		return url;
    } 
    
/***********************************************
use the following script to display/hide tips when mouse over gene icon in search results page
***********************************************/

var offsetxpoint=-20 //Customize x offset of tooltip
var offsetypoint=-70 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thecolor, thewidth){
	if (ns6||ie){
	   var tipobj=  document.getElementById("dhtmltooltip");
	 	if (typeof thewidth!="undefined" && thewidth!=""){	 
		 tipobj.style.width=thewidth+"px"		
		} 
		if (typeof thecolor!="undefined" && thecolor!=""){
		 tipobj.style.backgroundColor=thecolor		 
		} 
		tipobj.innerHTML=thetext
		enabletip=true
		return false
	}
}

function positiontip(e){
	if (enabletip){		  
		var tipobj=  document.getElementById("dhtmltooltip");
		 
		var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
		var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
		 
		//Find out how close the mouse is to the corner of the window
		var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
		var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
		
		var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
		
		//if the horizontal distance isn't enough to accomodate the width of the context menu
		if (rightedge<tipobj.offsetWidth)
			//move the horizontal position of the menu to the left by it's width
			tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
		else if (curX<leftedge)
			tipobj.style.left="5px"
		else
			//position the horizontal position of the menu where the mouse is positioned
			tipobj.style.left=curX+offsetxpoint+"px"
		
		//same concept with the vertical position
		if (bottomedge<tipobj.offsetHeight)
			tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
		else
			tipobj.style.top=curY+offsetypoint+"px"
		tipobj.style.visibility="visible"
	}
}

function hideddrivetip(){	 
	if (ns6||ie){
	    var tipobj=  document.getElementById("dhtmltooltip");
		enabletip=false
		tipobj.style.visibility="hidden"
		tipobj.style.left="-1000px"
		tipobj.style.backgroundColor=''
		tipobj.style.width=''
	}
}

document.onmousemove=positiontip    


function cmTagAndLink(var1, var2, var3, var4, url)
{
	if(var1 != null && var1 != "")
	{
		if(var1.length == 10 && var1.substring(0,7) == "Sort By")
		{
			if(document.getElementById("sortDropdown") != null)
			{
				if(document.getElementById("sortDropdown").value == null || document.getElementById("sortDropdown").value == "")
					var1 = "Sort By - Relevancy";
			} 
		}  
	}

	if(var3 == null && var4 == null)
	{
		cmCreatePageElementTag(var1, var2);
	}
	else
	{
		cmCreateManualPageviewTag(var1, var2, var3, var4);
	}
	if(url != null)
	{
		location.href = unescape(url);
	}
}

// Survey - Display Email
function surveyShowEmail(value){
	var emailOption = document.getElementById("emailOption");
	var emailTextbox = document.getElementById("emailTextbox");
	var yesBox = document.getElementById("yesCheckbox");
	var noBox = document.getElementById("noCheckbox");
	var errorMsg = document.getElementById("surveyErrorMsg");
	var errorMsg2 = document.getElementById("surveyErrorMsg2");
	errorMsg.style.display = 'none';
	errorMsg2.style.display = 'none';

	if(value == 'yes')
	{
		emailOption.style.display ='none';
		emailTextbox.style.display ='none';
		noBox.checked = false;
	}
	else if(value == 'no')
	{
		emailOption.style.display ='block';
		emailTextbox.style.display ='block';
		yesBox.checked = false;
	}
}

// Survey - Submit
function submitSurvey(query){
    CreateRequest();
	var comment = document.getElementById("surveyTextBox");
	var email = document.getElementById("emailBox").value;
	var checkYes = document.getElementById("yesCheckbox").checked;
	var checkNo = document.getElementById("noCheckbox").checked;
	var checkboxValue = "";
	if(checkYes == true)
		checkboxValue = "yes";
	else if(checkNo == true)
		checkboxValue = "no";
	var url = getCatalogNameFromURL()+ "/Survey.do?survey1=" + comment.value + "&survey2=" + query + "&survey3=" + email + "&survey4=" + checkboxValue;
	var errorMsg = document.getElementById("surveyErrorMsg");
	var errorMsg2 = document.getElementById("surveyErrorMsg2");
	if((comment == null || comment.value == "") || (checkYes == false && checkNo == false)){
		if(comment == null || comment.value == ""){
			errorMsg.style.display = 'block';
		}
		else
			errorMsg.style.display = 'none';
	
		if(checkYes == false && checkNo == false){
			errorMsg2.style.display = 'block';
		}
		else
			errorMsg2.style.display = 'none';
	}		
 	else {
 	    errorMsg.style.display = 'none';
		errorMsg2.style.display = 'none';
	    request.open("GET", url, true);
    	request.onreadystatechange=UpdatePageSurvey;
    	request.send(null);
	}
}

// Survey - Update
function UpdatePageSurvey(){
	if (request.readyState == 4){
		var question = document.getElementById("question");
		var surveyCheckbox = document.getElementById("surveyCheckbox");
		var question2 = document.getElementById("question2");
		var textarea = document.getElementById("textarea");
		var emailOption = document.getElementById("emailOption");
		var emailTextbox = document.getElementById("emailTextbox");
		var submitbutton = document.getElementById("submitbutton");
		question.innerHTML = "<br>";
		surveyCheckbox.innerHTML = "";
		question2.innerHTML = "";
		textarea.innerHTML = "<div id=\"thankyou\" class=\"pad2 margin3 fontBold\"><h2> Thank you for your comments!</h2></div>";
		emailOption.innerHTML = "";
		emailTextbox.innerHTML = "";
		submitbutton.innerHTML = "<br>";
	}
}

function typeaheadLink2(id){
	var queryN25 = getQueryVariable2("N25");
	withinChecked = document.getElementById("searchWithin").checked;

	if(withinChecked == true){
		if(id != "" && queryN25 != "" && queryN25 != "0")
		{
			if(queryN25.indexOf("%2B") >= 0)
				queryN25 = unescape(queryN25);
			queryN25 = queryN25 + "+" + id;
		}	
		else
			queryN25 = id;
	}		
	else
		queryN25 = id;
		
		var e=document.getElementsByName('searchResultsSearch');

		location.href = e[0].action + "?D7=" + document.searchResultsSearch.D7.value + "&F=" + document.searchResultsSearch.F.value + "&N25=" + queryN25 + "&N1=S_ID&ST=RS";

}

function submitResultsSearch(){
	var searchterm = document.searchResultsSearch.resultsN4.value;
	var queryN4 = getQueryVariable2("N4");
	var queryN25 = getQueryVariable2("N25");
	var withinChecked = document.getElementById("searchWithin").checked;
	
	if(searchterm == null || searchterm == ""){
		alert("Please enter a search string");
	}
	else {
		if(withinChecked == true){
			document.searchResultsSearch.N3.value = "mode+matchall";
			if(queryN25.indexOf("+") >= 0)
			{
				queryN25 = queryN25.replace("+"," ");
			}	
			if(queryN25.indexOf("%2B") >= 0)
				queryN25 = unescape(queryN25);
			document.searchResultsSearch.N25.value = queryN25;
			if(searchterm != "" && queryN4 != "")
			{
				if(queryN4.indexOf("%2B") >= 0)
					queryN4 = unescape(queryN4);
				document.searchResultsSearch.D10.value = queryN4 + "+" + searchterm;
				document.searchResultsSearch.N4.value = queryN4 + "+" + searchterm;
			}
			else
			{
				document.searchResultsSearch.D10.value = searchterm;
				document.searchResultsSearch.N4.value = searchterm;
			}
		}		
		else
		{
			document.searchResultsSearch.D10.value = searchterm;
			document.searchResultsSearch.N4.value = searchterm;
		}				
		document.searchResultsSearch.submit();
	}		
}

function getQueryVariable2(variable) { 
	var query = window.location.search.substring(1); 
	if(query.indexOf(variable) >= 0)
	{
		var vars = query.split("&"); 
		for (var i=0;i<vars.length;i++) { 
			var pair = vars[i].split("="); 
			if (pair[0] == variable) {
				return pair[1]; 
			} 
		} 
	}
	else
		return "";
} 


function showElement(ele){ 
  var d = document.getElementById(ele); 
  d.style.display ="";
}
 
function hideElement(ele){ 
  var d = document.getElementById(ele); 
  d.style.display ="none";
} 


function hideAllGroups(parentName, tagName, groupName){
	var group = document.getElementById(parentName).getElementsByTagName(tagName);  
	for(i=0;i<group.length;i++) { 
		 if(group[i].getAttribute('name')==groupName){
	   		 group[i].style.display = "none";
	   	 }
   }	
}



function submitFormWithEnter(myfield,e)   
{
	var keycode;   
	if (window.event)   
	{   
		keycode = window.event.keyCode;   
	}   
	else if (e)   
	{   
		keycode = e.which;   
	}   
	else  
	{   
		return true;   
	}   
	if (keycode == 13)   
	{
		submitResultsSearch();      
		return false;   
	}   
	else  
	{   
		return true;   
	}   
}   

function showCloseSubstanceGroup(flag, substanceDivId, substanceGroupId){
    var groupDiv = document.getElementById(substanceDivId);
	if(flag=='1'){
	    groupDiv.innerHTML = "<a onClick=\"showCloseSubstanceGroup('0','"+ substanceDivId +"','"+substanceGroupId+"'); hideElement(\'"+substanceGroupId+"\');\"><img src=\"/etc/medialib/sigma-aldrich/images/online-catalog/info.Par.0001.Image.gif\" style=\"vertical-align: bottom;\"></a>";
	}
	else{		
		groupDiv.innerHTML = "<a onClick=\"showCloseSubstanceGroup('1','"+ substanceDivId +"','"+substanceGroupId+"'); showElement(\'"+substanceGroupId+"\');cmTagAndLink('view one group details','Search Result Page Details',null,null,null);\"><img src=\"/etc/medialib/sigma-aldrich/images/online-catalog/info.Par.0001.Image.gif\" style=\"vertical-align: bottom;\"></a>";
  	}

    var imgurl = substanceGroupId + 'imghc';
    var url = '';
    
    if (document.getElementById(imgurl) != null)
	{
		url = document.getElementById(imgurl).value;  	
	}
  	var pExistingImageID = substanceGroupId+'img';
  	var img = document.createElement('img');
    img.onload = function (evt) {
        document.getElementById(pExistingImageID).src=this.src;
    }
    img.src = url;
    return false;
  	
}

function showAllGroups(parentName, tagName, groupName){
	var group = document.getElementById(parentName).getElementsByTagName(tagName);  
 
	for(i=0;i<group.length;i++) { 
		 if(group[i].getAttribute('name')==groupName){
		  		 group[i].style.display = "";

		  		 	var substanceDivId = 'substance'+ (group[i].getAttribute('id')).substring(11);
		  		 	var	substanceGroupId = group[i].getAttribute('id');
		  		 	var imgurl = substanceGroupId + 'imghc';
		  		 	if (document.getElementById(imgurl) != null)
		  		 	{
		  		 		showCloseSubstanceGroup("0",substanceDivId,substanceGroupId,document.getElementById(imgurl).value);
		  		 	}
		  		 		 	
	   	 }
   }	
}

function openLangOnSR(productNumber, brandKey){
	    var divId = productNumber+brandKey;
		var button = document.getElementById(divId);
		button.style.visibility="visible";
		loadLangOnSR(productNumber, brandKey, divId);
}

	function closePAOnSR(productNumber, brandKey, divID, pricingButtonId){
	    var button = document.getElementById(pricingButtonId);
		button.innerHTML ="<a href=\"javascript:openPAOnSR(\'" + productNumber + "\', \'" + brandKey + "\',\'" + divID + "\',\'" + pricingButtonId + "\');cmTagAndLink('Open Pricing','Search Result Page Details',null,null,null);\">pricing</a>";
	
		var priceDiv = document.getElementById(divID);
		priceDiv.innerHTML ="";		
	}
		
	function loadLangOnSR(productNumber, brandKey, divID){
		var tdDivID = 'td'+divID;
	    var catalog = getContextPath();
		var url = catalog +  '/MsdsLangList.do?productNumber='+productNumber+'&brandKey='+brandKey;		
		 
		var postData = 'loadFor=msds';				
		
		
		var newCallback = new Object();
		
		newCallback.success = LangSuccessFunction;
		newCallback.failure = LangfailureFunction;
		newCallback.timeout = 50000;
		newCallback.argument = divID;	
		var transaction = YAHOO.util.Connect.asyncRequest('POST', url, newCallback, postData);
	}
	
	function LangSuccessFunction(o)
	{
 
	    var divID =	o.argument;	 
	    
	    try{
			var xmlDoc = o.responseText;	
			
			document.getElementById(divID).innerHTML = xmlDoc;				 
		}
		catch(err)
		{		
		    LangfailureFunction;
		} 
	}		
	function LangfailureFunction(o)
	{
	   
		var divID = o.argument;
		document.getElementById(divID).innerHTML = "fail";	
	}




