
 var timeOn = null;
 var check = false;
 function init() {

   if (document.layers) {
     //Netscape 4
     layerRef="document.layers";
     styleSwitch="";
     visibleVar="show";
     what ="ns4";
   } else if (document.all) {
     //Running IE
     layerRef="document.all";
     styleSwitch=".style";
     visibleVar="visible";
     what ="ie";
   } else if (document.getElementById) {
     //Netscape 6
     layerRef="document.getElementById";
     styleSwitch=".style";
     visibleVar="visible";
     what="moz";
   } else {
     //Older than 4.0 browser
     what="none";
     newbrowser = false;
   }

   check = true;

 }

 function highlightElement(id) {
   if(check){
     if (what =="none"){
       return;
     } else if (what == "moz") {
       //.hd li.off em
			 if (document.getElementById(id).className != null) {
	       var className = document.getElementById(id).className.replace("off", "on");
	       document.getElementById(id).className = className;
			 }
     } else {
       var className = document.getElementById(id).getAttribute("className").replace("off", "on");
       document.getElementById(id).setAttribute("className", className);
     }
   }
	 //alert(id + ' "' + className + '"');
 }		

  function unhighlightElement(id) {
	/* */
   if(check){
     if (what =="none"){
       return;
     } else if (what == "moz") {
       //.hd li.off em
			if (document.getElementById(id).className != null) {
				var className = document.getElementById(id).className;
				if (className.indexOf("on") != -1) {
					className = className.replace("on", "off");
				} else {
					 if (className.indexOf("off") == -1) {
						className = className + " off";
					}
				}
	      document.getElementById(id).className = className;
	    } 
		} else {
				var className = document.getElementById(id).getAttribute("className");
				if (className.indexOf("on") != -1) {
					className = className.replace("on", "off");
				} else {
					if (className.indexOf("off") == -1)  {
						className = className + " off";
					}
				}
	      document.getElementById(id).setAttribute("className", className);
	   }
	 }
	 //alert(id + ' "' + className + '"');
 }		
 
	function subscribe() {
		//Make sure that all fields have been filled in. 
		var formObj = document.subonline;
		var formOK = true;
		
		for (x = 0; x < formObj.length; x++) {
			var elemObj = formObj.elements[x];
			if (elemObj.type != "hidden") {
				unhighlightElement(elemObj.name);
			}
			if ((elemObj.type == "text" || elemObj.type == "select-one") && elemObj.name != "Code" && elemObj.name != "BillAddress2" && elemObj.name != "MailAddress2" && elemObj.value=="") {
				if (elemObj.name.indexOf("Mail") != 0 || (formObj.Same == undefined || formObj.Same.checked == false)) {
					highlightElement(elemObj.name);
					formOK = false;
				}
			}
			if (elemObj.type == "radio") {
				var radioOK = false;
				var radioElem = formObj[elemObj.name];
				for (var i=0; i < radioElem.length; i++) {
		      if (radioElem[i].checked) {
						radioOK = true;
						break;
					}
			 	}
				if (radioOK == false) {
					highlightElement(elemObj.name);
					formOK = false;
				}
			}
		}
		
		var emailOK = true;
		if (formOK == true && formObj.BillEmail) {
			var str = formObj.BillEmail.value;
			if (str.indexOf("@") <= 0) {
				emailOK = false;
				formOK = false;
				highlightElement("BillEmail");
			}
			else if (str.indexOf(".") <= 0) {
				emailOK = false;
				formOK = false;
				highlightElement("BillEmail");
			}
		}
		
		var phoneOK = true;
		if (formOK == true && formObj.BillPhone) {
			var str = formObj.BillPhone.value; 
			if (checkInternationalPhone(str)==false) {
				phoneOK = false;
				formOK = false;
				highlightElement("BillPhone");
			}
		}
		
		if (formOK == true) {
				formObj.submit();
		} else {
			if (emailOK == false) {
				alert ("Please provide a complete email address that we may use to contact you, e.g., yourname@aol.com.");
			} else if (phoneOK == false) {
				alert ("Please provide a valid phone number.");
			} else {
				alert("It appears your subscription request is missing some important information.");
			}
		}
	}

	function mailAddr() {
		var formObj = document.subonline;
		
		if (formObj.Same.checked == true) {
			formObj.MailName.value = formObj.BillName.value;
			formObj.MailAddress.value = formObj.BillAddress.value;
			formObj.MailAddress2.value = formObj.BillAddress2.value;
			formObj.MailCity.value = formObj.BillCity.value;
			formObj.MailStProv.value = formObj.BillStProv.value;
			formObj.MailCountry.value = formObj.BillCountry.value;
			formObj.MailZip.value = formObj.BillZip.value;
		}
		else {
			formObj.MailName.value = "";
			formObj.MailAddress.value = "";
			formObj.MailAddress2.value = "";
			formObj.MailCity.value = "";
			formObj.MailStProv.value = "";
			formObj.MailCountry.value = "";
			formObj.MailZip.value = "";
		}
	}

	function isInteger(s)
	{   var i;
			for (i = 0; i < s.length; i++)
			{   
					var c = s.charAt(i);
					if (((c < "0") || (c > "9"))) return false;
			}
			return true;
	}
	
	function trim(s)
	{   var i;
			var returnString = "";
			for (i = 0; i < s.length; i++)
			{   
					var c = s.charAt(i);
					if (c != " ") returnString += c;
			}
			return returnString;
	}
	
	function stripCharsInBag(s, bag)
	{   var i;
			var returnString = "";
			for (i = 0; i < s.length; i++)
			{   
					var c = s.charAt(i);
					if (bag.indexOf(c) == -1) returnString += c;
			}
			return returnString;
	}
	
	function checkInternationalPhone(strPhone){
	var digits = "0123456789";
	var phoneNumberDelimiters = "()- ";
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	var minDigitsInIPhoneNumber = 10;
	var bracket=3
	strPhone=trim(strPhone)
	if(strPhone.indexOf("+")>1) return false
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
	var brchr=strPhone.indexOf("(")
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}


