/*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;
}

/*
=========================================================================================================================
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)) {
		  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("first_name").value 		= getEID("first_name").value;
		 objDoc.getElementById("last_name").value 		= getEID("last_name").value;
		 objDoc.getElementById("drug_name").value 		= getEID("drug_name").value;
		 objDoc.getElementById("drug_id").value 		= getEID("drug_id").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";

		 objDoc.getElementById("action").value = "echeck";
		 objForm.submit();
		
	 }
}

function emailSubmit() {
	
	 var objIFrm	= getEID("dproc");
	 var objDoc 	= objIFrm.contentWindow.document;
	 var objForm 	= objDoc.getElementById("frmData");
	 
	 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("drug_name").value 		= getEID("drug_name").value;
	 objDoc.getElementById("drug_id").value 		= getEID("drug_id").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 signup1Check() {
	 var fn = getEID("first_name");
	 var ln = getEID("last_name");
	 var ea = getEID("email_address");	 
	 var dn = getEID("drug_name");
	 var ins= getEID("ins");
	 
	 if (!dn.value) {
		  alert("Please enter a valid Drug Name!");
		  dn.focus();
		  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 Address!");
		  ea.focus();
		  return(false);
	 }
	 else if (!ins.checked) {
		 alert("Please check the insurance checkbox!");
		 ins.focus();
		 return(false);
	 }
	 else if (!drugInList(dn.value)) {
		 alert("The prescription name you have typed is not in the avaialable coupon list!");
		 dn.value = '';
		 dn.focus();
		 return(false);
	 }
	 else return true;
}

function signup2Check() {
	 var ad = getEID("address");
	 var zp = getEID("zip_code");
	 var ar = getEID("area");	 
	 var pr = getEID("prefix");
	 var sf = getEID("suffix");
	 var mn = getEID("month");	 
	 var dy = getEID("day");
	 var yr = getEID("year");
	 var phone = ar.value.toString() + pr.value.toString() + sf.value.toString();
	 
	 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 {return(true);}
}

function dataSubmit() {
	var fn	= getEID("first_name").value;
	var ln 	= getEID("last_name").value;
	var ea 	= getEID("email_address").value;
	var ad 	= getEID("address").value;
	var zp 	= getEID("zip_code").value;
	var ct 	= getEID("city").value;
	var st 	= getEID("state").value;
	var ar1 = getEID("area").value;
	var pr1 = getEID("prefix").value;
	var sf1 = getEID("suffix").value;
	var mn 	= getEID("month").value;
	var dy 	= getEID("day").value;
	var yr 	= getEID("year").value;
	var dn 	= getEID("drug_name").value;
	var sv 	= getEID("savings").value;
	var cstr= getEID("cstr").value;
	var opid= getEID("opid").value;
	var noop= getEID("noop").value;
	var grp	= getEID("grp").value;
	var sid = getEID("sid").value;
	
	cstr = cstr.replace("0|"+ea, sid + "|" + ea);

	//var url = "http://www.rxdiscountcoupon.com/common/processCardPopup.php?action=dsubmit";
	var url = "/common/processCardPopup.php?action=dsubmit";
	url += "&sid="+escape(sid);
	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 += "&dn="+escape(dn);
	url += "&sv="+escape(sv);
	url += "&cstr="+escape(cstr);
	url += "&opid="+escape(opid);
	url += "&noop="+escape(noop);
	url += "&grp="+escape(grp);

	var now = new Date();
	var newPop = window.open("", now.getHours()+now.getMinutes()+now.getSeconds(), "width=1,height=1");
	
	newPop.top.location = url;	
}