/*GENERAL FUNCTIONS*/
var digits = "0123456789";
var phoneNumberDelimiters = "()- ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;

function getEID(id) {
   
	return(document.getElementById(id));
}
function isInteger(s) {
	 var i;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag) {
	 var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
	 s=stripCharsInBag(strPhone,validWorldPhoneChars);
	 return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function isValidEmail(emailStr) {
	 var checkTLD=1;
	 var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|tv|la)$/;
	 var emailPat=/^(.+)@(.+)$/;
	 var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	 var validChars="\[^\\s" + specialChars + "\]";
	 var quotedUser="(\"[^\"]*\")";
	 var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	 var atom=validChars + '+';
	 var word="(" + atom + "|" + quotedUser + ")";
	 var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	 var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

	 var matchArray=emailStr.match(emailPat);

	 if (matchArray==null) {
	 	return false;
	 }

	 var user=matchArray[1];
	 var domain=matchArray[2];

	 for (i=0; i<user.length; i++) {
		  if (user.charCodeAt(i)>127) {
				return false;
		  }
	 }

	 for (i=0; i<domain.length; i++) {
		  if (domain.charCodeAt(i)>127) {
				return false;
		  }
	 }

	 if (user.match(userPat)==null) {
		  return false;
	 }

	 var IPArray=domain.match(ipDomainPat);
	 if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					 return false;
				}
		  }
		  return true;
	 }

	 var atomPat=new RegExp("^" + atom + "$");
	 var domArr=domain.split(".");
	 var len=domArr.length;
	 for (i=0;i<len;i++) {
		  if (domArr[i].search(atomPat)==-1) {
				return false;
		  }
	 }

	 /*if (checkTLD && domArr[domArr.length-1].length!=2 &&
	 domArr[domArr.length-1].search(knownDomsPat)==-1) {
	 alert("The address must end in a well-known domain or two letter " + "country.");
	 return false;
	 }*/

	 if (len<2) {
		  return false;
	 }

	 return true;
}
function showSignupForm() {
   
	var blanket		= getEID("blanket");
	var container	= getEID("form_container");

	if (debug != 1) blanket.style.display="block";
	container.style.top = document.body.scrollTop + 50+'px';
	container.style.display="block";
   
}

hideSignupForm = function() {
	var blanket		= document.getElementById("blanket");
	var container	= document.getElementById("form_container");
	//var submitted 	= document.getElementById("submitted");

	blanket.style.display="none";
	container.style.display="none";
}

/*
=========================================================================================================================
FORM CHECK FUNCTIONS
=========================================================================================================================
*/
function postCodeCheck(zip_code) {
	 var objIFrm	= document.getElementById("dproc");
	 var objDoc 	= objIFrm.contentWindow.document;
	 var objForm = objDoc.getElementById("frmData");

	 if (zip_code.value) {
		  setMessage("Please wait, retrieving City & State...", "message_proc");
		  objDoc.getElementById("post_code").value = zip_code.value;
		  objDoc.getElementById("action").value = "zcheck";
		  objForm.submit();
	 }
}
function setMessage(message_text, class_name) {
	 var objMessage = document.getElementById("message");

	 objMessage.className = class_name;
	 objMessage.innerHTML = message_text;
}
function signup1Check() {
	 
	 var ea = getEID("email_address");	 
	 
	 
	if (!ea.value) {
		  alert("Please enter your Email Address!");
		  ea.focus();
		  return(false);
	 }
	 else return true;
}
function emailCheck(email_address) {
	 if (!email_address.value || !isValidEmail(email_address.value)) {
		  document.getElementById("cont").value = "0";
	 }
	 else {
		 var objIFrm	= document.getElementById("dproc");
		 var objDoc 	= objIFrm.contentWindow.document;
		 var objForm	= objDoc.getElementById("frmData");
		 
		 objDoc.getElementById("email_address").value 	= getEID("email_address").value;
		 objDoc.getElementById("cstr").value 			= document.getElementById("cstr").value;
		 objDoc.getElementById("opid").value 			= document.getElementById("opid").value;
		 objDoc.getElementById("ioid").value 			= document.getElementById("ioid").value;
		 objDoc.getElementById("action").value 			= "echeck";
       
		 objForm.submit();
	 }
}
function signup2Check() {
	
	 var fn = getEID("first_name");
	 var ln = getEID("last_name");
	 var ad = getEID("address");
	 var zp = getEID("post_code");
	 var ct = getEID("city");	 
	 var pro = getEID("province");
	 var ar = getEID("area1");	 
	 var pr = getEID("prefix1");
	 var sf = getEID("suffix1");
	 var mn = getEID("month");	 
	 var dy = getEID("day");
	 var yr = getEID("year");
	 
	 var phone = ar.value.toString() + pr.value.toString() + sf.value.toString();
	 
	 var name_ex = /^[a-z]+\'?[a-z \'-]*[a-z]$/i;
	 
	 if (!fn.value.match(name_ex)) {
		  alert("Please enter a Valid First Name!");
		  fn.focus();
		  return(false);
	 }
	 else if (!ln.value.match(name_ex)) {
		  alert("Please enter a Valid Last Name!");
		  ln.focus();
		  return(false);
	 }
	 else if (!ad.value) {
		alert("Please enter your Address!");
		ad.focus();
		return(false);
	 }
	/* else if (!zp.value) {
		alert(zp.value);
		alert("Please enter your post Code!");
		zp.focus();
		return(false);
	 }*/
	 else if (!ct.value) {
		alert("Please enter your City!");
		zp.focus();
		return(false);
	 }
	 else if (pro.selectedIndex==0) {
		alert("Please enter your Province!");
		pro.focus();
		return(false);
	 }
	 else if (!phone || !checkInternationalPhone(phone)){
		alert("Please enter your Phone Number!");
		if (!ar.value)       ar.focus();
	    else if (!pr.value)  pr.focus();
	    else if (!sf.value)  sf.focus();
	    return(false);
	 }
	 else if (!mn.value || !dy.value || !yr.value) {
	    alert('Please enter your Birthdate');
	    if (!mn.value)		mn.focus();
	    else if (!dy.value)	dy.focus();
	    else if (!yr.value)	yr.focus();
	    return(false);
	 }	 
	 else {
		return(true);
	}
}
function dataFullSubmit(){
	
	var objIFrm	= getEID("dproc");
	var objDoc 	= objIFrm.contentWindow.document;
	var objForm 	= objDoc.getElementById("frmData");
	
	if(document.getElementById('m').checked)
		objDoc.getElementById("gender").value='m';
	else
		objDoc.getElementById("gender").value='f';
	objDoc.getElementById("email_address").value 	= getEID("email_address").value;
	objDoc.getElementById("first_name").value 		= getEID("first_name").value;
	objDoc.getElementById("last_name").value 		= getEID("last_name").value;
	objDoc.getElementById("address").value = getEID("address").value;
	objDoc.getElementById("post_code").value  = getEID("post_code").value;
	objDoc.getElementById("city").value = getEID("city").value;	 
	objDoc.getElementById("province").value = getEID("province").value;
	objDoc.getElementById("area1").value = getEID("area1").value;
	objDoc.getElementById("prefix1").value = getEID("prefix1").value;
	objDoc.getElementById("suffix1").value = getEID("suffix1").value;
	objDoc.getElementById("area2").value = getEID("area2").value;	 
	objDoc.getElementById("prefix2").value = getEID("prefix2").value;
	objDoc.getElementById("suffix2").value = getEID("suffix2").value;
	objDoc.getElementById("month").value = getEID("month").value;	 
	objDoc.getElementById("day").value = getEID("day").value;
	objDoc.getElementById("year").value= getEID("year").value;
	objDoc.getElementById("cstr").value = document.getElementById("cstr").value;
	objDoc.getElementById("opid").value = document.getElementById("opid").value;
	objDoc.getElementById("ioid").value = document.getElementById("ioid").value;
	objDoc.getElementById("action").value = "fullsubmit";
	objForm.submit();
}
function dataSubmit() {
	
	
	var objIFrm	= getEID("dproc");
	var objDoc 	= objIFrm.contentWindow.document;
	var objForm 	= objDoc.getElementById("frmData");
	
	if(document.getElementById('m').checked)
		objDoc.getElementById("gender").value='m';
	else
		objDoc.getElementById("gender").value='f';
	objDoc.getElementById("email_address").value 	= getEID("email_address").value;
	objDoc.getElementById("first_name").value 		= getEID("first_name").value;
	objDoc.getElementById("last_name").value 		= getEID("last_name").value;
	objDoc.getElementById("address").value = getEID("address").value;
	objDoc.getElementById("post_code").value  = getEID("post_code").value;
	objDoc.getElementById("city").value = getEID("city").value;	 
	objDoc.getElementById("province").value = getEID("province").value;
	objDoc.getElementById("area1").value = getEID("area1").value;
	objDoc.getElementById("sid").value = getEID("sid").value;
	objDoc.getElementById("prefix1").value = getEID("prefix1").value;
	objDoc.getElementById("suffix1").value = getEID("suffix1").value;
	objDoc.getElementById("area2").value = getEID("area2").value;	 
	objDoc.getElementById("prefix2").value = getEID("prefix2").value;
	objDoc.getElementById("suffix2").value = getEID("suffix2").value;
	objDoc.getElementById("month").value = getEID("month").value;	 
	objDoc.getElementById("day").value = getEID("day").value;
	objDoc.getElementById("year").value= getEID("year").value;
	objDoc.getElementById("cstr").value = document.getElementById("cstr").value;
	objDoc.getElementById("opid").value = document.getElementById("opid").value;
	objDoc.getElementById("ioid").value = document.getElementById("ioid").value;
	objDoc.getElementById("action").value = "esubmit";
	
	objForm.submit();
	
}

