var opener;
function showalert() {
	alert("Due to resource constraints this project has been postponed until further notice.");
}

function openwindow(url,width,height) {
	var printmenu = window.open(url, 'qonlinesubwin', 'width=550,height=450,scrollbars=no');
	printmenu.focus();
}

function opencvc() {
	var cvcmenu = window.open('/html/cvc.html', 'cvcsubwin', 'width=350,height=450,scrollbars=yes');
	cvcmenu.focus();
}


function displayStateList(cbx) {
	indx = cbx.selectedIndex;
	if (indx<1) {
		return;
	}
	country = cbx.options[cbx.selectedIndex].value;
	if (country=='US') {
		document.getElementById('statefield').innerHTML = "<SELECT class='fnt_norm_grn' style='width:218px' NAME = 'ccState'><OPTION VALUE = '' SELECTED>Select State</OPTION><OPTION VALUE = 'AK'>Alaska</OPTION><OPTION VALUE = 'AL'>Alabama</OPTION><OPTION VALUE = 'AR'>Arkansas</OPTION><OPTION VALUE = 'AZ'>Arizona</OPTION><OPTION VALUE = 'CA'>California</OPTION><OPTION VALUE = 'CO'>Colorado</OPTION><OPTION VALUE = 'CT'>Connecticut</OPTION><OPTION VALUE = 'DC'>District of Columbia</OPTION><OPTION VALUE = 'DE'>Delaware</OPTION><OPTION VALUE = 'FL'>Florida</OPTION><OPTION VALUE = 'GA'>Georgia</OPTION><OPTION VALUE = 'HI'>Hawaii</OPTION><OPTION VALUE = 'IA'>Iowa</OPTION><OPTION VALUE = 'ID'>Idaho</OPTION><OPTION VALUE = 'IL'>Illinois</OPTION><OPTION VALUE = 'IN'>Indiana</OPTION><OPTION VALUE = 'KS'>Kansas</OPTION><OPTION VALUE = 'KY'>Kentucky</OPTION><OPTION VALUE = 'LA'>Louisiana</OPTION><OPTION VALUE = 'MA'>Massachusetts</OPTION><OPTION VALUE = 'MD'>Maryland</OPTION><OPTION VALUE = 'ME'>Maine</OPTION><OPTION VALUE = 'MI'>Michigan</OPTION><OPTION VALUE = 'MN'>Minnesota</OPTION><OPTION VALUE = 'MO'>Missouri</OPTION><OPTION VALUE = 'MS'>Mississippi</OPTION><OPTION VALUE = 'MT'>Montana</OPTION><OPTION VALUE = 'NC'>North Carolina</OPTION><OPTION VALUE = 'ND'>North Dakota</OPTION><OPTION VALUE = 'NE'>Nebraska</OPTION><OPTION VALUE = 'NH'>New Hampshire</OPTION><OPTION VALUE = 'NJ'>New Jersey</OPTION><OPTION VALUE = 'NM'>New Mexico</OPTION><OPTION VALUE = 'NV'>Nevada</OPTION><OPTION VALUE = 'NY'>New York</OPTION><OPTION VALUE = 'OH'>Ohio</OPTION><OPTION VALUE = 'OK'>Oklahoma</OPTION><OPTION VALUE = 'OR'>Oregon</OPTION><OPTION VALUE = 'PA'>Pennsylvania</OPTION><OPTION VALUE = 'RI'>Rhode Island</OPTION><OPTION VALUE = 'SC'>South Carolina</OPTION><OPTION VALUE = 'SD'>South Dakota</OPTION><OPTION VALUE = 'TN'>Tennessee</OPTION><OPTION VALUE = 'TX'>Texas</OPTION><OPTION VALUE = 'UT'>Utah</OPTION><OPTION VALUE = 'VA'>Virginia</OPTION><OPTION VALUE = 'VT'>Vermont</OPTION><OPTION VALUE = 'WA'>Washington</OPTION><OPTION VALUE = 'WI'>Wisconsin</OPTION><OPTION VALUE = 'WV'>West Virginia</OPTION><OPTION VALUE = 'WY'>Wyoming</OPTION></SELECT>";
	} else {
		document.getElementById('statefield').innerHTML = "<input class='fnt_norm_grn' type='textbox'  name='ccState' maxlength=45 size=39>";
	}
}

function srchquran(stype) {
	var stxt;
	if (stype == 'srcheng') {
		stxt = trim(document.srchform.srcheng.value);
	} else if (stype == 'srchpho') {
		stxt = trim(document.srchform.srchpho.value);
	} else if (stype == 'arb') {
		alert("Coming Soon");
		return;
	}

	if (stxt == "") {
		alert("Search text cannot be empty");
		return;
	}
	if (stxt.length < 3)	{
		alert("Search text should contain atleast 3 characters");
		return;
	}
	document.location.href="http://mp3.equran.net/cgi-bin/album/quransearch.pl?srchtxt=" + stxt + "&action=" + stype;
}



function download(url) {
  var uid = getCookie('user.login');
  var isUserPrm =  getCookie('PRM');
  if ((uid) && (uid!='')) {
  		var downloadurl = '/cgi-bin/java?handler=Download&' + url;
  		window.open(downloadurl,'download');

  } else {
  	document.getElementById("txtHint").innerHTML	= "<font style='color:red;font-family:arial:font-size:8px;'>Please login to download.</font>";
  	alert("Please LOGIN to download.\n\nThis is service is available through premium subscription only.");
  	document.getElementById("uid").focus();
  }
}

function goto_trans(surahcbx) {
	var trans = document.getElementById('transid').value;
	var sIndx = document.getElementById(surahcbx).selectedIndex;
	s = document.getElementById(surahcbx).options[sIndx].value;
	transtype = getCookie('transtype');
	if ((transtype!='plain') || (transtype!='options')) {
	  transtype = 'options';
	  setCookie('transtype','options',1,'year');
	}
	url = "/html/trans/" + transtype + "/" + trans + "/" + s+ ".html";
	document.location.href=url;
}

function goto_transfile(trans, s, a) {
	transtype = getCookie('transtype');
	if ((transtype!='plain') || (transtype!='options')) {
	  transtype = 'options';
	  setCookie('transtype','options',1,'year');
	}
	url = "/html/trans/" + transtype + "/" + trans + "/" + s+ ".html";
	if (a > 1) {
		url =  url + "#" + a;
	}
	document.location.href=url;
}

function goto_transfile(trans, s) {
	transtype = getCookie('transtype');
	if ((transtype!='plain') || (transtype!='options')) {
	  transtype = 'options';
	  setCookie('transtype','options',1,'year');
	}
	url = "/html/trans/" + transtype + "/" + trans + "/" + s+ ".html";
	document.location.href=url;
}

function hideoptions(trans, s) {
	setCookie('transtype','plain',1,'year');
	url = "/html/trans/plain/" + trans + "/" + s+ ".html";
	document.location.href=url;
}

function showoptions(trans, s) {
	setCookie('transtype','options',1,'year');
	url = "/html/trans/options/" + trans + "/" + s+ ".html";
	document.location.href=url;
}


function isEmail(s) {   
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;

    if (trim(s)=='') {
    	return false;
    }

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { 
        i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) 
       return false;
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { 
        i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) 
        return false;
    else 
        return true;
}

function trim(strVal) {

    if (strVal == null || strVal == "")
        return "";

    // Trim whitespace from left end of string
    var i = 0;
    var c = null;

    do {
        c = strVal.charAt (i++);
    } while (c == " " && i < strVal.length);

    if (c == " " && i == strVal.length)
        return "";

    strVal = strVal.substr (i - 1);
   
    // Trim whitespace from right end of string
    i = strVal.length - 1;
    c = null;
    do {
        c = strVal.charAt (i--);
    } while (c == " " && i > -1);
   
    strVal = strVal.substring (0, i + 2);
   
    return strVal;
}


function upgradesub() {
	if (opener != null) {
		opener.location.href = "/shop/product_details.php?item_id=153";
	}
	self.close();
}


function loginuser()	{ 
		uid = document.login.uid.value;
		pwd = document.login.pwd.value;
		redirecturl = document.login.redirecturl.value;
		handler = document.login.handler.value;
		logfrom = document.login.logfrom.value;
		qsid = document.login.qsid.value;
		if ((uid.length > 0) && (pwd.length > 0))	{ 
			var addrPort = location.port;
			if (addrPort) {
					addrPort = ":"+ addrPort;
			}
			var protocol = "http://";
			if (document.location.href.indexOf("https")>-1) {
				 protocol = "https://";
			}
			var url=protocol + location.hostname + addrPort +"/cgi-bin/java?handler=" + handler + "&logfrom="+logfrom + "&qsid=" + qsid+"&uid="+uid +"&pwd="+pwd;
			xmlHttp=GetXmlHttpObject(loginHandler) 

			if (!xmlHttp) {
				document.getElementById("txtWarn").innerHTML="Please upgrade your browser to use this service.";
				return;
			}
			document.getElementById("txtHint").innerHTML="<font class=fnt_drk_grn>Your request is being processed, please wait...</font>" ;
			xmlHttp.open("GET", url , true) 
			xmlHttp.send(null) 
		} else	{ 
			document.getElementById("txtHint").innerHTML="<font class=fnt_drk_red>Please enter your login information to continue.</font>" ;
		} 
}


function small_loginuser()	{ 
		uid = document.login.uid.value;
		pwd = document.login.pwd.value;
		handler = document.login.handler.value;
		logfrom = document.login.logfrom.value;
		qsid = document.login.qsid.value;
		if ((uid.length > 0) && (pwd.length > 0))	{ 
			var addrPort = location.port;
			if (addrPort) {
					addrPort = ":"+ addrPort;
			}
			var protocol = "http://";
			if (document.location.href.indexOf("https")>-1) {
				 protocol = "https://";
			}
			var url=protocol + location.hostname + addrPort +"/cgi-bin/java?handler=" + handler + "&logfrom="+logfrom + "&qsid=" + qsid+"&uid="+uid +"&pwd="+pwd;
			xmlHttp=GetXmlHttpObject(smallloginHandler) 

			if (!xmlHttp) {
				document.getElementById("txtWarn").innerHTML="Please upgrade your browser to use this service.";
				return;
			}
			document.getElementById("loginHint").innerHTML="<font class=fnt_norm_grn>Processing, please wait...</font>" ;
			xmlHttp.open("GET", url , true) 
			xmlHttp.send(null) 
		} else	{ 
			document.getElementById("loginHint").innerHTML="<font class=fnt_norm_red>Login information missing.</font>" ;
		} 
}

function smallloginHandler() { 
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
			if (xmlHttp.responseText.indexOf("success")>=0) {
				document.getElementById("loginHint").innerHTML="<font class=fnt_norm_grn>Success. Checking subscription....</font>";
				if (parent.qbv_banner) {
					parent.qbv_banner.location.reload();	
				}
				window.location.reload();
			} else {
				document.getElementById("loginHint").innerHTML="<font class=fnt_norm_red>" + xmlHttp.responseText + "</font>";
			}
		} 
}


function loginHandler() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
		if (xmlHttp.responseText.indexOf("success")>=0) {
			document.getElementById("txtHint").innerHTML="<font class=fnt_drk_grn>Success. Checking your subscription. Please wait...</font>";
			window.location.reload();
		} else {
			document.getElementById("txtHint").innerHTML="<font class=fnt_drk_red>" + xmlHttp.responseText + "</font>";
		}
	} 
} 

function logoutuser()	{ 
	  var addrPort = location.port;
	  if (addrPort) {
	  	addrPort = ":"+ addrPort;
	  }
	var protocol = "http://";
	if (document.location.href.indexOf("https")>-1) {
			 protocol = "https://";
	}
	var url= protocol + location.hostname + addrPort + "/cgi-bin/java?handler=Membership&action=logout";
	xmlHttp=GetXmlHttpObject(logoutHandler) 
	if (!xmlHttp) {
			//document.getElementById("txtWarn").innerHTML="Please upgrade your browser to use this service.";
			return;
	}
	document.getElementById("logininfo").innerHTML="<font class=fnt_reg>Logging out. Please wait...</font>";
	xmlHttp.open("GET", url , true) 
	xmlHttp.send(null) 
}

function logoutHandler() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("logininfo").innerHTML=""
		if (parent.qbv_body) {
			parent.qbv_body.location.reload();	
		}
		window.location.reload();
	} 
} 

var dupEmail;
var dupUserName;

function checkDuplicateUserName()	{ 
	document.getElementById("emailmsg").innerHTML="";
	document.getElementById("usrmsg").innerHTML="";
	document.getElementById("pwdmsg").innerHTML = "";
	pwd = document.newacc.password.value;
	if (pwd.length < 5)	{
		document.getElementById("pwdmsg").innerHTML = "<font class='fnt_norm_red'>Passwords must be at least 5 characters long. Please reenter and try again.</font>"
		document.newacc.password.focus();
		return;	
	}
	if (document.newacc.confpwd.value!= document.newacc.password.value) {
		document.getElementById("pwdmsg").innerHTML = "<font class='fnt_norm_red'>Passwords do not match. Please reenter and try again.</font>"
		document.newacc.confpwd.focus();
		return;
	}
	
	var addrPort = location.port;
	if (addrPort) {
		addrPort = ":"+ addrPort;
	}
	var protocol = "http://";
	if (document.location.href.indexOf("https")>-1) {
			 protocol = "https://";
	}
	uid = document.newacc.uid.value;
	var url= protocol + location.hostname + addrPort + "/cgi-bin/java?handler=Membership&action=checkdupuser&uid=" + uid;
	xmlHttp=GetXmlHttpObject(duplicateUserNameHandler) 
	if (!xmlHttp) {
		document.getElementById("usrmsg").innerHTML="Please upgrade your browser to use this service.";
		return;
	}
	document.getElementById("usrmsg").innerHTML="<font class=fnt_norm_grn>Checking for duplicate username...</font>";
	xmlHttp.open("GET", url , true) 
	xmlHttp.send(null) 
}

function duplicateUserNameHandler() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		if (xmlHttp.responseText.indexOf("true")>=0) {		
				dupUserName = true;
				document.getElementById("usrmsg").innerHTML="<font class='fnt_norm_red'>This username is not available. Please choose a different username.</font>";
		} else {
				dupUserName = false;
				document.getElementById("usrmsg").innerHTML="";
		}
		checkDuplicateEmail();
	} 
} 


function applycoupon(bSubmit)	{ 
	document.getElementById("cpnmsg").innerHTML="";
	coupon = document.getElementById("coupon").value;
	indx = document.verfrm.duration.selectedIndex;
	val = document.verfrm.duration.options[indx].text;
	tmpArray = val.split('-');
	amountStr = trim(tmpArray[1]);
	amount = amountStr.substr(1);
	
	if (coupon.length < 3)	{
		document.getElementById("cpnmsg").innerHTML="<font class='fnt_small_red'>Please enter a valid coupon code.</font>";
		document.getElementById("coupon").focus();
		return;	
	}
	if (hasInvalidChar(coupon))	{
		document.getElementById("cpnmsg").innerHTML="<font class='fnt_small_red'>Please enter a valid coupon code.</font>";
		document.getElementById("coupon").focus();
		return;	
	}
	
	var addrPort = location.port;
	if (addrPort) {
		addrPort = ":"+ addrPort;
	}
	var protocol = "http://";
	if (document.location.href.indexOf("https")>-1) {
			 protocol = "https://";
	}
	var url= protocol + location.hostname + addrPort + "/cgi-bin/java?handler=Purchase&action=checkcoupon&coupon=" + coupon + "&amount=" +amount;
	if (bSubmit) {
		xmlHttp=GetXmlHttpObject(submitOnValidCoupon) 
	} else {
		xmlHttp=GetXmlHttpObject(couponHandler) 
	}
	if (!xmlHttp) {
		document.getElementById("cpnmsg").innerHTML="Please upgrade your browser to use this service.";
		return;
	}
	document.getElementById("cpnmsg").innerHTML="<font class=fnt_norm_orn>Validating coupon...</font>";
	xmlHttp.open("GET", url , true) 
	xmlHttp.send(null) 
}


function updateDuration(cbx)	{ 
	document.getElementById("durmsg").innerHTML="";
	dur = cbx.options[cbx.selectedIndex].value;
	var addrPort = location.port;
	if (addrPort) {
		addrPort = ":"+ addrPort;
	}
	var protocol = "http://";
	if (document.location.href.indexOf("https")>-1) {
			 protocol = "https://";
	}
	
	var url= protocol + location.hostname + addrPort + "/cgi-bin/java?handler=Purchase&action=updtduration&duration=" + dur;
	xmlHttp=GetXmlHttpObject(updateDurationHandler) 

	if (!xmlHttp) {
		document.getElementById("durmsg").innerHTML="Please upgrade your browser to use this service.";
		return;
	}
	document.getElementById("durmsg").innerHTML="<font class=fnt_norm_orn>Changing duration...</font>";
	xmlHttp.open("GET", url , true) 
	xmlHttp.send(null) 
}


function updateDurationHandler() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		document.getElementById("durmsg").innerHTML="";
		updateDurationAmount(xmlHttp.responseText);
	} 
} 


function updateDurationAmount(xmlResp) {
	var result;
	var amount='';
	var dom 			=   getXmlDom(xmlResp);
	resultElement = 	dom.getElementsByTagName("result");
	amountElement		=   dom.getElementsByTagName("amount");

	if (window.ActiveXObject)   {
	   	//if browser is  IE
			result = resultElement[0].firstChild.data;
			amount		 = amountElement[0].firstChild.data;

	} else {
			//if browser is FireFox
			result = resultElement[0].childNodes[0].nodeValue;
			amount		 = amountElement[0].childNodes[0].nodeValue;
	}
	
	if (result) {
		document.paypalform.amount.value = "$" +amount;
	}
}


function couponHandler() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		updateCouponResult(xmlHttp.responseText);
	} 
} 


function submitOnValidCoupon() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		result = updateCouponResult(xmlHttp.responseText);
		if (result) {
			document.ccfrm.submit();
		}
	} 
} 


function updateCouponResult(xmlResp) {
	var result;
	var msg='';
	var dom 			=   getXmlDom(xmlResp);
	resultElement = 	dom.getElementsByTagName("result");
	msgElement		=   dom.getElementsByTagName("msg");

	if (window.ActiveXObject)   {
	   	//if browser is  IE
			result = resultElement[0].firstChild.data;
			msg		 = msgElement[0].firstChild.data;

	} else {
			//if browser is FireFox
			result = resultElement[0].childNodes[0].nodeValue;
			msg		 = msgElement[0].childNodes[0].nodeValue;
	}
	
	
	if (result == 'false') {
		document.getElementById("coupon").value='';
		document.getElementById("cpnmsg").innerHTML= '<font class=fnt_small_red>' + msg + '</font>';
		return false;
		
	} else {
		document.getElementById("cpnmsg").innerHTML= '<font class=fnt_small_orn><b>' + msg + '</b></font>';
		return true;
		
	}
}




function getXmlDom(xmlResp) {
	var dom;
	if (window.ActiveXObject)   {
		//if browser is  IE
		dom=new ActiveXObject("Microsoft.XMLDOM");
		dom.async="false";
		dom.loadXML(xmlResp);
	} else {
		//if browser is FireFox
			var parser = new DOMParser();
			dom = parser.parseFromString(xmlResp,"text/xml");
	}
	return dom;
}

function checkDuplicateEmail()	{ 
	var addrPort = location.port;
	if (addrPort) {
		addrPort = ":"+ addrPort;
	}
	var protocol = "http://";
	if (document.location.href.indexOf("https")>-1) {
		protocol = "https://";
	}
	email = document.newacc.email.value;
	var url= protocol + location.hostname + addrPort + "/cgi-bin/java?handler=Membership&action=checkdupemail&email=" + email;
	xmlHttp=GetXmlHttpObject(duplicateEmailHandler) 
	if (!xmlHttp) {
		document.getElementById("emailmsg").innerHTML="Please upgrade your browser to use this service.";
		return;
	}
	document.getElementById("emailmsg").innerHTML="<font class=fnt_norm_grn>Checking for duplicate email...</font>";
	xmlHttp.open("GET", url , true) 
	xmlHttp.send(null) 
}

function duplicateEmailHandler() { 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
		if (xmlHttp.responseText.indexOf("true")>=0) {		
				dupEmail = true;
				document.getElementById("emailmsg").innerHTML="<font class='fnt_norm_red'>An account has already been registered with this email. <a href='/cgi-bin/java?handler=Membership&action=reminder'>If you have forgotten your username and password, click here.</a></font>";
		} else {
				dupEmail = false;
				document.getElementById("emailmsg").innerHTML="";
		}
		createAccount();
	} 
}




function resetpwd(uid)	{ 
	var addrPort = location.port;
	if (addrPort) {
		addrPort = ":"+ addrPort;
	}
	var protocol = "http://";
	if (document.location.href.indexOf("https")>-1) {
		protocol = "https://";
	}
	var url= protocol + location.hostname + addrPort + "/cgi-bin/java?handler=Membership&action=resetphppwd&uid=" + uid;
	xmlHttp=GetXmlHttpObject(resetPhpPwdHandler) 
	if (!xmlHttp) {
		return;
	}
	xmlHttp.open("GET", url , true) 
	xmlHttp.send(null) 
}

function resetPhpPwdHandler() { 
	//DO NOT REMOVE THIS.
}


function createAccount() {
	if ((dupEmail) || (dupUserName)) {
		return;
	}
	document.newacc.submit();
}
	

function report404(url) {
	  var addrPort = location.port;
	  if (addrPort) {
	  	addrPort = ":"+ addrPort;
	  }
		var protocol = "http://";
		if (document.location.href.indexOf("https")>-1) {
				 protocol = "https://";
		}
		var url= protocol + location.hostname + addrPort + "/cgi-bin/java?handler=Support&action=404&url=" + url;
		xmlHttp=GetXmlHttpObject(reportHandler) 
		if (!xmlHttp) {
				return;
		}
		xmlHttp.open("GET", url , true) 
		xmlHttp.send(null) 	
}

function reportHandler() { 
	//DO NOT REMOVE THIS.
}

function GetXmlHttpObject(handler) { 
	var objXmlHttp=null

	if (window.ActiveXObject) { // IE
		var strName="Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
			strName="Microsoft.XMLHTTP";
		} 

		try { 
			objXmlHttp=new ActiveXObject(strName);
			objXmlHttp.onreadystatechange=handler;
			return objXmlHttp;
		} catch(e) { 

			return;
		} 
	} 

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		objXmlHttp=new XMLHttpRequest();
		objXmlHttp.onload=handler;
		objXmlHttp.onerror=handler; 
		return objXmlHttp;
	}
}

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}


//Character Validation
function hasInvalidChar(fieldElement) {
	if ( (fieldElement.indexOf("'")>-1) || (fieldElement.indexOf("<")>-1) || (fieldElement.indexOf("\"")>-1) ){
		return true;
	} else { 
	 	return false;
	}
}


function verifyPayment() {
		var invmsg = "Cannot have ' or \" or <";
		email = document.verfrm.email.value;
		if (trim(email)=='') {
			alert("Email is missing.");
			document.verfrm.email.focus();
			return false;
			
		} else if (!isEmail(email)) {
			alert("Email is invalid.");
			document.verfrm.email.focus();
			return false;
		} else if (hasInvalidChar(email)) {
			alert("Email has invalid characters. " + invmsg);
			document.verfrm.email.focus();
			return false;
		}
		
		ccType = document.verfrm.cctype.selectedIndex;
		if (ccType<1) {
			alert("Please select card type.");
			document.verfrm.cctype.focus();
			return false;
		} 
				
		fname = document.verfrm.fname.value;
		if (trim(fname)=='') {
			alert("First name is missing.");
			document.verfrm.fname.focus();
			return false;
		} else if (hasInvalidChar(fname)) {
			alert("The first name field has invalid characters. " + invmsg);
			document.verfrm.fname.focus();
			return false;
		} 
		
		lname = document.verfrm.lname.value;
		if (trim(lname)=='') {
			alert("Last name is missing.");
			document.verfrm.lname.focus();
			return false;
		} else if (hasInvalidChar(lname)) {
			alert("The last name field has invalid characters. " + invmsg);
			document.verfrm.lname.focus();
			return false;
		} 		
		
		
		ccnum = document.verfrm.ccnum.value;;
		if (trim(ccnum)=='') {
			alert("Credit card number is missing.");
			document.verfrm.ccnum.focus();
			return false;
		} else if (!isNumber(ccnum)) {
			alert("Credit card should be all numbers.");
			document.verfrm.ccnum.focus();
			return false;
		}
		
		expmon = document.verfrm.expmon.value;
		if (trim(expmon)=='') {
			alert("Credit card expiration month is missing.");
			document.verfrm.expmon.focus();
			return false;
		} else if (!isNumber(expmon)) {
			alert("Expiration month should be all numbers.");
			document.verfrm.expmon.focus();
			return false;
		}
		
		cvc = document.verfrm.cvc.value;
		if (trim(cvc)=='') {
			alert("CVC Code is missing.");
			document.verfrm.cvc.focus();
			return false;
		} else if (!isNumber(cvc)) {
			alert("CVC code should be all numbers.");
			document.verfrm.cvc.focus();
			return false;
		}		
		
		ccCountryIndx = document.verfrm.ccCountry.selectedIndex;
		if (ccCountryIndx<1) {
			alert("Country information is missing.");
			document.verfrm.ccCountryIndx.focus();
			return false;
		}
		
		address1 = document.verfrm.address1.value;
		if (trim(address1)=='') {
			alert("Billing address is missing.");
			document.verfrm.address1.focus();
			return false;
		} else if (hasInvalidChar(address1)) {
			alert("The address field has invalid characters. " + invmsg);
			document.verfrm.address1.focus();
			return false;
		}
		
		ccCity = document.verfrm.ccCity.value;
		if (trim(ccCity)=='') {
			alert("City is missing.");
			document.verfrm.ccCity.focus();
			return false;
		} else if (hasInvalidChar(ccCity)) {
			alert("The city field has invalid characters. " + invmsg);
			document.verfrm.ccCity.focus();
			return false;
		}
		
		ccCountryCode =  document.verfrm.ccCountry.options[ccCountryIndx].value;
		if (ccCountryCode=='US') {
			ccState = document.verfrm.ccState.selectedIndex;
			if (ccState<1) {
				alert("State is missing.");
				document.verfrm.ccState.focus();
				return false;
			}	
		} else {
			ccState = document.verfrm.ccState.value;
			if (trim(ccState)=='') {
				alert("State is missing.");
				document.verfrm.ccState.focus();
				return false;
			} else if (hasInvalidChar(ccState)) {
				alert("The province field has invalid characters. " + invmsg);
				document.verfrm.ccState.focus();
				return false;
			}
		
		}
		
		ccZip = document.verfrm.ccZip.value;
		if (trim(ccZip)=='') {
			alert("Zip/Postal code is missing.");
			document.verfrm.ccZip.focus();
			return false;
		} else if (hasInvalidChar(ccZip)) {
			alert("The zip/postal code field has invalid characters. " + invmsg);
			document.verfrm.ccZip.focus();
			return false;
		}

		phone = document.verfrm.phone.value;
		if (trim(phone)=='') {
			alert("Phone is missing.");
			document.verfrm.phone.focus();
			return false;
		} else if (hasInvalidChar(phone)) {
			alert("The phone field has invalid characters. " + invmsg);
			document.verfrm.phone.focus();
			return false;
		}
		
		document.verfrm.submit();
}

function enter_pressed(e){
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return false;
	return (keycode == 13);
}