/*GENERAL FUNCTIONS*/
var digits = "0123456789";
var phoneNumberDelimiters = "()- ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;

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 openPop(url) {
	var now = new Date();
	window.open(url, now.getHours()+now.getMinutes()+now.getSeconds(), "width=800,height=640,toolbar,resizable,status,scrollbars");
}

HTMLElement.prototype.click = function() {
	var evt = this.ownerDocument.createEvent('MouseEvents');
    evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
    this.dispatchEvent(evt);
}

function simulateClick() {
	var elem = document.getElementById('cardlink');
	alert(elem);
    //elem.click();
}

/*
=========================================================================================================================
FORM CHECK FUNCTIONS
=========================================================================================================================
*/
function setMessage(message_text, class_name) {
	 var objMessage = document.getElementById("message");

	 objMessage.className = class_name;
	 objMessage.innerHTML = message_text;
}

function emailCheck(email_address) {
	/*if (!email_address.value || !isValidEmail(email_address.value)) {
		alert('Please enter a valid Email Address before continuing!');
		email_address.value = '';
		email_address.focus();
		//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 = email_address.value;
		objDoc.getElementById("action").value = "esubmit";
		objForm.submit();
	//}
}

/*function emailSubmit() {
	 var objIFrm	= document.getElementById("dproc");
	 var objDoc 	= objIFrm.contentWindow.document;
	 var objForm 	= objDoc.getElementById("frmData");

	 objDoc.getElementById("email_address").value = document.getElementById("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 = "esubmit";
	 objForm.submit();
}*/

function zipCodeCheck(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("zip_code").value = zip_code.value;
		  objDoc.getElementById("action").value = "zcheck";
		  objForm.submit();
	 }
}
function hasNumbers(t)
	{
		var regex = /\d/g;
		return regex.test(t);
	}

function signupCheck() {
	var gdm = document.form.gender[0];
	var gdf = document.form.gender[1];
	var fn = document.getElementById("first_name");
	var ln = document.getElementById("last_name");
	var ea = document.getElementById("email_address");	 
	var ad = document.getElementById("address");
	var zp = document.getElementById("zip_code");
	var ct = document.getElementById("city");
	var st = document.getElementById("state");
	var ar = document.getElementById("area1");
	var pr = document.getElementById("prefix1");
	var sf = document.getElementById("suffix1");
	var phone = ar.value.toString() + pr.value.toString() + sf.value.toString();
	var mn = document.getElementById("month");
	var dy = document.getElementById("day");
	var yr = document.getElementById("year");
	var ins = document.getElementById("ins");;
	
	function hasNumbers(t)
	{
		var regex = /\d/g;
		return regex.test(t);
	}
	
	if(hasNumbers(fn.value)){
		alert("First Name cannot have numbers");
		fn.focus();
		return(false);
		
	}
	else if(hasNumbers(ln.value)){
		alert("Last Name cannot have numbers");
		fn.focus();
		return(false);
		
	 }
	else if (!gdm.checked && !gdf.checked) {
		alert("Please select your Title (Mr. or Ms.)");
		return(false);
	}
	else if (!fn.value) {
		alert("Please enter your First Name!");
		fn.focus();
		return(false);
	}
	else if (!ln.value) {
		alert("Please enter your Last Name!");
		ln.focus();
		return(false);
	}
	else if (!ea.value) {
		alert("Please enter your Email!");
		ea.focus();
	return(false);
	 }
	 else if (!ad.value) {
		alert("Please enter your Address!");
		ad.focus();
		return(false);
	 }
	 else if (!zp.value) {
		alert("Please enter your Zip Code!");
		zp.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 if (!ins.checked) {
    	alert("Please check the insurance checkbox!");
    	ins.focus();
    	return(false);
    }
	else return true;
}

function dataSubmit() {
	var objIFrm	= document.getElementById("dproc");
	var objDoc 	= objIFrm.contentWindow.document;
	var objForm = objDoc.getElementById("frmData");

	var fn	= document.getElementById("first_name").value;
	var ln 	= document.getElementById("last_name").value;
	var ea 	= document.getElementById("email_address").value;
	var ad 	= document.getElementById("address").value;
	var zp 	= document.getElementById("zip_code").value;
	var ct 	= document.getElementById("city").value;
	var st 	= document.getElementById("state").value;
	var ar1 = document.getElementById("area1").value;
	var pr1 = document.getElementById("prefix1").value;
	var sf1 = document.getElementById("suffix1").value;
	var gd	= (document.form.gender[0].checked ? "m" : "f");
	var mn 	= document.getElementById("month").value;
	var dy 	= document.getElementById("day").value;
	var yr 	= document.getElementById("year").value;
	var cstr= document.getElementById("cstr").value;
	var opid= document.getElementById("opid").value;

	ct = ct.toLowerCase();
	st = st.toLowerCase();
	
	var url = "http://www.bestnetsavers.com/common/processCardPopup.php?action=dsubmit";
	url += "&fn="+escape(fn);
	url += "&ln="+escape(ln);
	url += "&ea="+escape(ea);
	url += "&ad="+escape(ad);
	url += "&zp="+escape(zp);
	url += "&ct="+escape(ct);
	url += "&st="+escape(st);
	url += "&ar1="+escape(ar1);
	url += "&pr1="+escape(pr1);
	url += "&sf1="+escape(sf1);
	url += "&gd="+escape(gd);
	url += "&bdm="+escape(mn);
	url += "&bdd="+escape(dy);
	url += "&bdy="+escape(yr);
	url += "&cstr="+escape(cstr);
	url += "&opid="+escape(opid);

	//alert('here');
	
	var now = new Date();
	var newPop = window.open("", now.getHours()+now.getMinutes()+now.getSeconds(), "width=410,height=265,resizable,status,scrollbars");
	
	newPop.top.location = url;
	
	//function openOfferPop(url) {
	//	var now = new Date();
	//	return(window.open("", now.getHours()+now.getMinutes()+now.getSeconds(), "width=800,height=640,toolbar,resizable,status,scrollbars"));
	//}
	
	/*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("first_name").value		= fn;
	objDoc.getElementById("last_name").value 		= ln;
	objDoc.getElementById("email_address").value	= ea;
	objDoc.getElementById("address").value 			= ad;
	objDoc.getElementById("zip_code").value 		= zp;
	objDoc.getElementById("city").value 			= ct;
	objDoc.getElementById("state").value 			= st;
	objDoc.getElementById("area1").value 			= ar1;
	objDoc.getElementById("prefix1").value 			= pr1;
	objDoc.getElementById("suffix1").value 			= sf1;
	objDoc.getElementById("gender").value 			= gd;
	objDoc.getElementById("month").value 			= mn;
	objDoc.getElementById("day").value 				= dy;
	objDoc.getElementById("year").value 			= yr;

	objDoc.getElementById("action").value 			= "dsubmit";
	objForm.submit();*/
}