//########################################################################
// H. Tracy Hall site main javascript file

// preload the bubble stuff
		if (document.images) {
		}



//////////////////////////////////////////////////////////////////////////////////
// cookies... 
		function setCookie(keyOf,valueSet,days) {
			if (days) {
				var date = new Date();
				date.setTime(date.getTime()+(days*24*60*60*1000));
				var expires = "; expires="+date.toGMTString();
			}
			else var expires = "";
			document.cookie = keyOf+"="+valueSet+expires+"; path=/";
		}
		
		function readCookie(keyOf) {
			var nameEQ = keyOf + "=";
			var ca = document.cookie.split(';');
			for(var i=0;i < ca.length;i++) {
				var c = ca[i];
				while (c.charAt(0)==' ') c = c.substring(1,c.length);
				if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
			}
			return '';
		}
		
		function eraseCookie(keyOf) {
			createCookie(keyOf,"",-1);
		}
		
//////////////////////////////////////////////////////////////////////////////////




//////////////////////////////////////////////////////////////////////////////////
// general utility
		function urldecode(str) {
		    var ret = str;
		    ret = ret.replace(/\+/g, '%20');
		    ret = decodeURIComponent(ret);
		    ret = ret.toString();
		    return ret;
		}
		function urlencode(clearString) {
		  var output = '';
		  var x = 0;
		  clearString = clearString.toString();
		  var regex = /(^[a-zA-Z0-9_.]*)/;
		  while (x < clearString.length) {
		    var match = regex.exec(clearString.substr(x));
		    if (match != null && match.length > 1 && match[1] != '') {
		    	output += match[1];
		      x += match[1].length;
		    } else {
		      if (clearString[x] == ' ')
		        output += '+';
		      else {
		        var charCode = clearString.charCodeAt(x);
		        var hexVal = charCode.toString(16);
		        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
		      }
		      x++;
		    }
		  }
		  return output;
		}
		function addslashes(str) {
			return str.replace('/(["\'\])/g', "\\$1").replace('/\0/g', "\\0");
		}
		function stripslashes(str) {
			return str.replace('/\0/g', '0').replace('/\(.)/g', '$1');
		}


		function in_array(needle, haystack)	{
			for (h in haystack) {
				if (haystack[h] == needle) {
				  return h;
				}
			}
			return false;
		}

		function strstr(haystack,needle,bool) {
		    var pos = 0;
		    pos = haystack.indexOf( needle );
		    if(pos == -1) {
		        return false;
		    } else {
		        if(bool) {
		            return haystack.substr(0,pos);
		        } else{
		            return haystack.slice(pos);
		        }
		    }
		}


		function setOptions(selBox, dataArr, dispArr) {
		   //alert("Setting: "+dispArr[0]);
			selBox.options.length = 1; // 0 to overwrite the first default option 
			//if (chosenOne != "") {
			  //dataArr = dataArr[chosenOne];
			  //dispArr = dispArr[chosenOne];
			//}
			//alert("num: "+dataArr.length);
			if (dataArr) {
				for(var i=0;i < dataArr.length;i++) {
					  selBox.options[selBox.options.length] = new Option(urldecode(dispArr[i]),dataArr[i]);
				}
			}
			// chooseWhich
		}



//////////////////////////////////////////////////////////////////////////////////







//###################################################################################################

		
		function openNews() {
		   var mainContentBox = document.getElementById("innerContent");
			var newHTMLstring = 
			"<div id='subContentBox'><div id='hdSB' style='position:absolute; left:0px; top:0px; width:900px; height:30px; text-align: center;' class='regstrSans'><span class='tinystrSans'>News and Events in the field of High Pressure/High Temperature</span>";
			newHTMLstring += "</div>";
			newHTMLstring += "<div style='text-align: left; width: 300px; height: 20px; background-color: #f8f7e2; border: 1px dotted #8f8f8f; position: absolute; top: 20px; left: 0px; overflow: hidden;'><span class='tinystr'> &nbsp; &nbsp; &nbsp; News:</span></div><div style='text-align: left; width: 290px; height: 390px; border: 1px dotted #8f8f8f; position: absolute; top: 40px; left: 0px; padding: 5px 5px 5px 5px; overflow: auto; overflow-x: hidden;'><div id='newsResults'></div></div>";
			newHTMLstring += "<div style='text-align: left; width: 300px; height: 20px; background-color: #f8f7e2; border: 1px dotted #8f8f8f; position: absolute; top: 20px; left: 300px; overflow: hidden;'><span class='tinystr'> &nbsp; &nbsp; &nbsp; Events:</span></div><div style='text-align: left; width: 290px; height: 390px; border: 1px dotted #8f8f8f; position: absolute; top: 40px; left: 300px; padding: 5px 5px 5px 5px; overflow: auto; overflow-x: hidden;'><div id='eventsResults'></div></div>";
			newHTMLstring += "<div style='text-align: left; width: 298px; height: 20px; background-color: #f8f7e2; border: 1px dotted #8f8f8f; position: absolute; top: 20px; left: 600px; overflow: hidden;'><span class='tinystr'> &nbsp; &nbsp; &nbsp; Links:</span></div><div style='text-align: left; width: 288px; height: 390px; border: 1px dotted #8f8f8f; position: absolute; top: 40px; left: 600px; padding: 5px 5px 5px 5px; overflow: auto; overflow-x: hidden;'><div id='linksResults'></div></div>";
		   mainContentBox.innerHTML = newHTMLstring;
			setTimeout('submitNewsSearch(0)', 100);
			setTimeout('submitEventsSearch(0)', 200);
			setTimeout('submitLinksSearch(0)', 300);
		}


		function submitNewsSearch(offset) {
		  if (!offset) offset = 0;
		   //alert("Submitting News Search"+offset);
		   //var myWait = document.getElementById("oneMoment");
		   //myWait.style.visibility = "visible";
		   //var myForm = document.getElementById("searchArticlesForm");
		   //var myYrFrom = myForm.yrFrom.options[myForm.yrFrom.selectedIndex].value;
		   //alert("myYrFrom "+myYrFrom);
		   //var myYrTo = myForm.yrTo.options[myForm.yrTo.selectedIndex].value;
		   //if (myYrFrom > myYrTo) {
		     //alert("Please choose a valid date range.");
		     //return false;
		   //}
		   
		   
		   //myForm.SubmitForm.value = "Searching...  One Moment";
			try {
			 rqNews = new XMLHttpRequest();
			} catch (error) {
			 try {
			   rqNews = new ActiveXObject("Microsoft.XMLHTTP");
			 } catch (error) {
			   return false;
			 }
			}
			rqNews.onreadystatechange = newsRqHandler;
		   rqNews.open("POST", "newsSearcher.php");
			rqNews.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			//var rqVars = null;
				//+"&myYrFrom="+myYrFrom
				//+"&myYrTo="+myYrTo
			var rqVars = "keyword="+urlencode("yada")
				+"&newsStatus=Active";
				//+"&comments="+myForm.comments.value;
			rqNews.send(rqVars);
		   return false;
		}
		function newsRqHandler() {
		  if (rqNews.readyState == 4) {
			 if (rqNews.status == 200) {
		   	//var myWait = document.getElementById("oneMoment");
		   	//myWait.style.visibility = "hidden";
		        //var myForm = document.getElementById("searchArticlesForm");
				  var newsResultsTarget = document.getElementById("newsResults");
				  //var searchResultsCloser = document.getElementById("closerRes");
				  newsResultsTarget.style.visibility = "visible";
				  //searchResultsCloser.style.visibility = "visible";
				  newsResultsTarget.innerHTML = rqNews.responseText;
				  newsResultsTarget.scrollTop = 0;
				  //myForm.SubmitForm.value = "Proceed";
			 } else {
				  var newsResultsTarget = document.getElementById("newsResults");
				  newsResultsTarget.innerHTML = "an error:";
			 }
		  }
		  return true;
		}
		function submitEventsSearch(offset) {
		  if (!offset) offset = 0;
			try {
			 rqEvents = new XMLHttpRequest();
			} catch (error) {
			 try {
			   rqEvents = new ActiveXObject("Microsoft.XMLHTTP");
			 } catch (error) {
			   return false;
			 }
			}
			rqEvents.onreadystatechange = eventsRqHandler;
		   rqEvents.open("POST", "eventsSearcher.php");
			rqEvents.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			//var rqVars = null;
				//+"&myYrFrom="+myYrFrom
				//+"&myYrTo="+myYrTo
			var rqVars = "keyword="+urlencode("yada")
				+"&eventStatus=Active";
				//+"&comments="+myForm.comments.value;
			rqEvents.send(rqVars);
		   return false;
		}
		function eventsRqHandler() {
		  if (rqEvents.readyState == 4) {
			 if (rqEvents.status == 200) {
		   	//var myWait = document.getElementById("oneMoment");
		   	//myWait.style.visibility = "hidden";
		        //var myForm = document.getElementById("searchArticlesForm");
				  var eventsResultsTarget = document.getElementById("eventsResults");
				  //var searchResultsCloser = document.getElementById("closerRes");
				  eventsResultsTarget.style.visibility = "visible";
				  //searchResultsCloser.style.visibility = "visible";
				  eventsResultsTarget.innerHTML = rqEvents.responseText;
				  eventsResultsTarget.scrollTop = 0;
				  //myForm.SubmitForm.value = "Proceed";
			 } else {
				  var eventsResultsTarget = document.getElementById("eventsResults");
				  eventsResultsTarget.innerHTML = "an error:";
			 }
		  }
		  return true;
		}
		function submitLinksSearch(offset) {
		
		  if (!offset) offset = 0;
			try {
			 rqLinks = new XMLHttpRequest();
			} catch (error) {
			 try {
			   rqLinks = new ActiveXObject("Microsoft.XMLHTTP");
			 } catch (error) {
			   return false;
			 }
			}
			rqLinks.onreadystatechange = linksRqHandler;
		   rqLinks.open("POST", "linksSearcher.php");
			rqLinks.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			var rqVars = "keyword="+urlencode("yada")
				+"&urlStatus=Active";
			rqLinks.send(rqVars);
		   return false;
		}
		function linksRqHandler() {
		  if (rqLinks.readyState == 4) {
			 if (rqLinks.status == 200) {
			 //alert("rec links res"+qLinks.responseText);
				  var linksResultsTarget = document.getElementById("linksResults");
				  linksResultsTarget.style.visibility = "visible";
				  linksResultsTarget.innerHTML = rqLinks.responseText;
				  linksResultsTarget.scrollTop = 0;
			 } else {
				  var linksResultsTarget = document.getElementById("linksResults");
				  linksResultsTarget.innerHTML = "an error:";
			 }
		  }
		  return true;
		}















		
		function clearWarningBox() {
		   var warningBubble = document.getElementById("messageState");
			warningBubble.innerHTML = "";
			warningBubble.style.visibility = "hidden";
		   var warningX = document.getElementById("warnXcloser");
			warningX.style.visibility = "hidden";
		}

		function suggHandler() {
		  if (requester.readyState == 4) {
		  //alert("my response:"+requester.readyState)
			 if (requester.status == 200) {
				  //responseXML or responseText
				  //alert("your response:"+requester.responseText);
				  var suggRqTarget = document.getElementById("messageState");
				  var myCloserX = document.getElementById("warnXcloser");
				  suggRqTarget.innerHTML = requester.responseText;
					suggRqTarget.style.visibility = "visible";
					myCloserX.style.visibility = "visible";
					setTimeout('clearWarningBox();', 5000);
					if (!strstr(requester.responseText,"error")) {
					  setTimeout('openHome();', 7000);
					}
			 } else {
				  var suggRqTarget = document.getElementById("messageState");
				  suggRqTarget.innerHTML = "an error:";
			 }
		  }
		  return true;
		}

		function makeSuggRq() {
			try {
			 requester = new XMLHttpRequest();
			} catch (error) {
			 try {
			   requester = new ActiveXObject("Microsoft.XMLHTTP");
			 } catch (error) {
			   return false;
			 }
			}
			requester.onreadystatechange = suggHandler;
		   requester.open("POST", "suggest.php");
			requester.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			var rqVars = "myMoreInfoID="+document.formSuggest.myMoreInfoID.value
				+"&fromName="+document.formSuggest.fromName.value
				+"&fromEmail="+document.formSuggest.fromEmail.value
				+"&comments="+document.formSuggest.comments.value;
			requester.send(rqVars);
			return false;
		}

		


//////////////////////////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////////////////////////
// IE specific junk... 
var arVersion = navigator.appVersion.split("MSIE");
var versionOfIe = parseFloat(arVersion[1]);
if (!versionOfIe) versionOfIe = 0;

		function fixPNG(myImage) { // the IE PNG bug workaround
		    if ((versionOfIe >= 5.5) && (versionOfIe < 7) && (document.body.filters)) {
		       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
			   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
			   var imgTitle = (myImage.title) ? 
				             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
			   var imgStyle = "display:inline-block;" + myImage.style.cssText
			   //if (myImage.src == "some other image") {
			     //var sizeMethod = "image";
			   //} else {
			     var sizeMethod = "scale";
			   //}
			   //alert(myImage.src);
			   var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + "width:" + myImage.width + "px; height:" + myImage.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + "(src=\'" + myImage.src + "\', sizingMethod=\'"+sizeMethod+"\');\"></span>";
			      myImage.outerHTML = strNewHTML;
		    }
		}

//////////////////////////////////////////////////////////////////////////////////

