function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
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.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);
  if(!x && document.getElementById) x=document.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 popUp(pPath, pWidth, pHeight) 
{
	window.open(pPath, "HobbyZonePopUp", "toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=" + pWidth + ",height=" + pHeight + ",left=50,top=50");
}
function OpacityObjectforIE6(divId, strPath) {
	this.id = divId;
	this.path = strPath;

	this.layerObject = document.getElementById(divId).style;
	this.setBackground = od_object_setBackground;
}	
function od_object_setBackground() {	
	this.layerObject.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.path+".png', sizingMethod='scale')";
}
var productName = new Array();
var prodIdValue = new Array();
var x;
var y;
var xmlhttp;
var response;

function loadXMLDoc(url){
	xmlhttp=null;
	
	// code for Mozilla, etc.
	if (window.XMLHttpRequest)
	{
	xmlhttp=new XMLHttpRequest()
	}
	// code for IE
	else if (window.ActiveXObject)
	{
	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	
	if (xmlhttp!=null)
	{
	xmlhttp.onreadystatechange=state_Change
	xmlhttp.open("GET",url,true)
	xmlhttp.send(null)
	}		
	else
	{
	alert("Your browser does not support XMLHTTP.")
	}
}
function state_Change() {
	if (xmlhttp.readyState==4) {
		// if "OK"
		if (xmlhttp.status==200) {
		response = (xmlhttp.responseText);
		importXML();
		} else {
			alert("Problem retrieving XML data")
		}
	}
}
function importXML(){
//import xml
	
	if (document.implementation && document.implementation.createDocument) {
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = CreateArrayValues;
	} else if (window.ActiveXObject){
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) CreateArrayValues()			
		};
	} else {
		alert('Your browser can\'t handle this script');
		return;
	}
	
	// code for IE
	if (window.ActiveXObject){
	xmlDoc.loadXML(response);
	}else{// code for Mozilla, Firefox, Opera, etc.
	var parser=new DOMParser();
	xmlDoc=parser.parseFromString(response,"text/xml");
	CreateArrayValues();
	}
}

function CreateArrayValues()
{
	x = null;
	x = xmlDoc.getElementsByTagName('Product');
	if (x.length>0){
		for (i=0;i<x.length;i++){
			productName[i] = (x[i].childNodes[0].firstChild.nodeValue);
			prodIdValue[i] = (x[i].childNodes[1].firstChild.nodeValue);
		} //end for loop
		WriteOptions();
	}else {
	document.getElementById('productSelect').options.length = 0;
	document.getElementById('productSelect').options[0] = new Option('Problem Loading Products  ','');
	}
}
function WriteOptions() {
		//erase all current options
		document.getElementById('productSelect').options.length = 0;
		
		var j=1;
		document.getElementById('productSelect').options[0] = new Option('Select Product From List','');

	//iterate through array and add options for each
	for (var i=0;i<x.length;i++){
		if (productName[i] == null){
		//do nothing and don't increment j
		} else {
			document.getElementById('productSelect').options[j] = new Option(productName[i],prodIdValue[i]);
			j++;
			productName[i] = null;
			prodIdValue[i] = null;
		}//end if else
	}//end for loop
	
	if (j==0){
	document.getElementById('productSelect').options[0] = new Option('No Products Available  ','');
	document.getElementById('productSelect').disabled = true;
	}else {
	//enable text box and submit button, hide Disabled button
	document.getElementById('productSelect').disabled = false;
	}
}
function EnableGetParts(){
	if (document.getElementById('productSelect').value == ""){
	document.getElementById('submitParts').style.display = "none";
	document.getElementById('submitPartsDisabled').style.display = "inline";
	}else{
	document.getElementById('submitPartsDisabled').style.display = "none";
	document.getElementById('submitParts').style.display = "inline";
	}
}
/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		var invalidEmail = "false"
		if (str.indexOf(at)==-1){
		   invalidEmail = "true";
		}
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   invalidEmail = "true";
		}
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   invalidEmail = "true";
		}
		 if (str.indexOf(at,(lat+1))!=-1){
		   invalidEmail = "true";
		 }
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		   invalidEmail = "true";
		 }
		 if (str.indexOf(dot,(lat+2))==-1){
		   invalidEmail = "true";
		 }
		 if (str.indexOf(" ")!=-1){
		   invalidEmail = "true";
		 }
		 
		 if (invalidEmail == "true"){
			return false;
		 }else{
 			return true	;				
 		 }
	}

function ValidateForm(whichForm){
	var emailID=document.forms[whichForm].email
	
	if ((emailID.value==null)||(emailID.value=="")){
		emailID.value = "Please enter valid email";
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value = "Please enter valid email";
		document.getElementById('emailSignUpValidate').value = "";
		return false
	}
	if (whichForm == 'emailSignupForm2'){
		if (emailID.value != document.getElementById('emailSignUpValidate').value){
			emailID.value = "Addresses do not match";
			document.getElementById('emailSignUpValidate').value = "";
			return false
		}
	}
	return true
 }
 

function EmailErrorMessage(){
	document.emailSignupForm.email.value = "Please enter valid email";
	return false;
}

function loadurl(dest,pageLocation) {
 try {
  
   // Moz supports XMLHttpRequest. IE uses ActiveX. 
   // browser detction is bad. object detection works for any browser
   xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():
          new ActiveXObject("Microsoft.XMLHTTP");
  
 }
 catch (e) {
   // browser doesn't support ajax. handle however you want
 }
 
 // the xmlhttp object triggers an event everytime the status changes
 // triggered() function handles the events //xmlhttp.onreadystatechange = triggered;
 xmlhttp.onreadystatechange = function () { triggered(pageLocation); } 
 
 // open takes in the HTTP method and url.
 xmlhttp.open("GET", dest);
 
 // send the request. if this is a POST request we would have // sent post variables: send("name=aleem&amp;gender=male)
 // Moz is fine with just send(); but // IE expects a value here, hence we do send(null);
 xmlhttp.send(null);
 
}

function triggered(pageLocation) {
  // if the readyState code is 4 (Completed)  // and http status is 200 (OK) we go ahead and get the responseText
  // other readyState codes:  // 0=Uninitialised 1=Loading 2=Loaded 3=Interactive
  if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
  
      // xmlhttp.responseText object contains the response.
      document.getElementById(pageLocation).innerHTML =
                  xmlhttp.responseText;
   }
}

