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.01
  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 && d.getElementById) x=d.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 GetCategory(psField){
	if (psField.options[psField.selectedIndex].value!="empty"){
		document.location="products.asp?cat=" + psField.options[psField.selectedIndex].value + "&hierarchy=0";
	}
}

function isFieldEmpty(psCaption, pField) {
  re = /[A-Za-z]{3,}/;
		if (!re.test(pField.value)) {
			alert(psCaption);
			pField.focus();
			return false;
		} else 
			return true;
	}

function isFieldEmailAddress(poField, psCaption) {
    var re;
    
    re = /<\w+.*>|;|\\|\/|<|>|[|]|,|:|\-{2,}|\.{2,}|\(|\)/;
    if (re.test(poField.value)) {
        alert(psCaption);
		poField.focus();
        return false;
    } else {
		re = /^[""]{0,1}[A-Za-z][.!#$%&'*\+-\/=?^_`\{\|\}~\w]{0,62}\w[""]{0,1}@\w[-\w]{0,61}\w\.\w{2,}/;
		if (!re.test(poField.value)) {
			alert(psCaption);
			poField.focus();
			return false;
		} else
			return true;
    }
}
	
function subscribe() {
    var emailid
    var re = /\w{3,}@\w{3,}\.\w{3,}/ ;
    var id
    var d=document
    var frmSub

    emailid = prompt('Subscribe to Cubbison\'s Newsletter','Please enter your email id');
    while ((emailid != null) && (!re.test(emailid))) {
        emailid = prompt('Subscribe to Cubbison\'s Newsletter','Please enter a valid email id');
    }
    if (emailid == null) return false;
    d.getElementById("sub_frm").emailid.value = emailid;
    d.getElementById("sub_frm").submit();
    return true;
}

function adjust_length() {
    var d = document;
    var test_spot = d.getElementById("test_spot");
    var serv_spot = d.getElementById("serv_spot");
    var prod_spot = d.getElementById("prod_spot");
    
    height = (test_spot.offsetHeight > serv_spot.offsetHeight) ? test_spot.offsetHeight : serv_spot.offsetHeight;
    height = height > prod_spot.offsetHeight ? height : prod_spot.offsetHeight;
    
    if (height < 77) height = 77;
    test_spot.style.height = height + "px" ;
    serv_spot.style.height = height + "px" ;
    prod_spot.style.height = height + "px" ;
    return;
}

function isZipEmpty(psCaption, pField) {
  re = /[0-9]{5}-?[0-9]{0,4}/;
		if (!re.test(pField.value)) {
			alert(psCaption);
			pField.focus();
			return false;
		} else 
			return true;
	}
  
function isPhoneFieldEmpty(psCaption, pField) {
  re = /\(?[0-9]{3}\)?[\s. \-]*[0-9]{3}[\s. \-]*[0-9]{4}/;
		if (!re.test(pField.value)) {
			alert(psCaption);
			pField.focus();
			return false;
		} else 
			return true;
	}

function isStateEmpty(psCaption, pField) {
  re = /[A-Za-z]{2}/;
		if (!re.test(pField.value)) {
			alert(psCaption);
			pField.focus();
			return false;
		} else 
			return true;
	}

function isFieldNumber(psCaption, pField) {
  re = /[0-9]{1,}/;
		if (!re.test(pField.value)) {
			alert(psCaption);
			pField.focus();
			return false;
		} else 
			return true;
	}
 
function isFieldChecked(psCaption, pField) {
    if (!(pField[0].checked || pField[1].checked)) {
        alert(psCaption);
        pField[0].focus();
        return false;
    } else
        return true;
}
  
  
function validatecontactform(f) {
   var b = true;
  b = b && isFieldEmailAddress(f.email, "Please enter a valid email id");
  return b;
}
function winopen() {
    var URL = "ftp://ftp.cubbison.com/cubbisoncom/ftp";
    var sfeature="toolbar=yes,location=yes,directories=yes,status=ye s,menubar=yes,scrollbars=yes,resizable=yes,width=680,height= 500";
    window.open(URL,null,sfeature);
}
function validateftpform(f) {
  b = true;
  b = b && isFieldEmpty("Please enter a valid company name", f.company );
  b = b && isFieldEmpty("Please enter your name", f.name );
  b = b && isFieldEmailAddress(f.email, "Please enter a valid email id" );
  b = b && isPhoneFieldEmpty( "Please enter a phone number", f.phone);
  b = b && isFieldEmpty("Please enter file name", f.filename );
  return b;
}
function validateform(f){
  b = true;
  b = b && isFieldEmailAddress(f.email, "Please enter a valid email id");
  return b;
}
function validatequoteform(f){
  b = true;
  b = b && isFieldEmpty("Please enter your name", f.name );
  b = b && isFieldEmpty("Please enter a valid company name", f.company );
  b = b && isPhoneFieldEmpty( "Please enter a phone number", f.phone);
  b = b && isFieldEmailAddress(f.email, "Please enter a valid email id" );
  b = b && isFieldNumber("Please enter a valid quantity", f.quantity1);
  b = b && isFieldChecked("Please enter a material type", f.metal);
  return b;
}

function validaterequestsampleform(f){
  b = true;
  b = b && isFieldEmpty("Please enter your name", f.name );
  b = b && isFieldEmpty("Please enter a valid company name", f.company );
  b = b && isPhoneFieldEmpty( "Please enter a phone number", f.phone);
  b = b && isFieldEmailAddress(f.email, "Please enter a valid email id" );
  return b;
}

	/* Opens a new window where to show the image.
	 *
	 * sName		- Image title.
	 * sCode		- Product or category code.
	 * sImage		- Image name.
	 * sImageType	- Image type.
	 */
	function showLargerPhoto(sName, sCode, sImage, sImageType) {
		var w, h;
		
		if (showLargerPhoto.arguments.length == 6) {
			w = parseInt(showLargerPhoto.arguments[4]) + 60;
			h = parseInt(showLargerPhoto.arguments[5]) + 90;
		} else {
			w = 550;
			h = 550;
		}
	
		sImagePath = ((sImageType=="p") ? "prodimages/" : "catimages/") + sImage;
		open(
			"picviewer.asp?name=" + escape(sName) + "&code=" + escape(sCode) + "&Image=" + escape(sImagePath), 
			"picviewer",
			"directories=no,location=no,menubar=no,resizeable=yes,status=no,toolbar=no,scrollbars=yes,width=" + w + ",height=" + h,
			true);
	}

function loadPopUp( filename ) {
 var sFeatures;
 sFeatures = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizeable=yes,width=515,height=500,top=" + ( screen.width / 2 -350) + ",left=" + ( screen.height / 2 -200);
 window.open( filename , "EventPopUp", sFeatures );
}

function fzDropMenuSetup(main_nav) {
  navRoot = document.getElementById(main_nav)
  for (i=0; i<navRoot.childNodes.length; i++) {
    node = navRoot.childNodes[i];
    if (node.className == "closed") {
        node.onmouseover = function() {this.className = 'opened';}
        node.onmouseout = function() { this.className = 'closed';}
    }
    for (j=0; j<node.childNodes.length; j++) {
      if (node.childNodes[j].className == "dropContainer") {
        elem = node.childNodes[j];
        for (k=0; k<elem.childNodes.length; k++) {
          if (elem.childNodes[k].className == "dropBox" || elem.childNodes[k].className == "anchorDropMenu") {
            menuElem = elem.childNodes[k];
            for (q=0; q<menuElem.childNodes.length; q++) {
              if (menuElem.childNodes[q].className == "dropItem") {
                dropElem = menuElem.childNodes[q];
                dropElem.onmouseover = function() {this.className = 'dropItemHi';}
                dropElem.onmouseout = function() {this.className = 'dropItem';}
              }
            } // finished dropItem event setup
          }
        } // finished walking through drop menu boxes
      }
    } // finished with all menu containers
  } // finished all menu swap images
} // end fzDropMenuSetup

function find_state(form) {
    form.state.value = form.sales_rep.options[form.sales_rep.selectedIndex].text;
    return;
}

function update_state(form) {
    var i;
    for (i=0; i < form.sales_rep.options.length; i++) {
        if (form.sales_rep.options[i].text == form.state.value) {
            form.sales_rep.options[i].selected = true;
            break;
        }
    }
    return;
}

