﻿function getEl(id) { return document.getElementById(id); }
function sEq(a, b) { return a.toLowerCase() == b.toLowerCase(); }
function setVisibility(id, visible, inline) { getEl(id).style.display = (visible ? (inline ? "inline" : "block") : "none"); }
function nav(href) {
    var limit = document.forms[0].elements.length;
    for (i = 0; i < limit; i++) { document.forms[0].elements[i].disabled = true; }
    window.location = href;
}
function getQueryParam(name,defaultValue){
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regex = new RegExp("[\\?&]"+name+"=([^&#]*)");
	var results = regex.exec(window.location.search);
	if (results===null) {return defaultValue;} else {return decodeURI(results[1]);}
}
function ShowWaitMsg(visible) {
	setVisibility("waitmsg",visible);
	setVisibility("waitmsg_content",!visible);
}
function validEmail(sEmail) {
    if (sEmail && (0 < sEmail.indexOf('@')) && (2 < sEmail.indexOf('.', sEmail.indexOf('@')))) {
        var re = new RegExp();
        re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        return re.test(sEmail);
    } else { return false; }
}
function validMailDate(sDay, sMonth, sYear)
{
	var theDate = new Date();
	var theYear = theDate.getFullYear();
	var theMonth = theDate.getMonth()+1;
	var theDay = theDate.getDate();
	var curDate = 10000 * theYear + 100 * theMonth + 1 * theDay;
	
	var userDate = 10000 * sYear + 100 * sMonth + 1 * sDay;
	return (curDate <= userDate);
}

function LTrim(strValue) {var LTRIMrgExp = /^\s */; return strValue.replace(LTRIMrgExp, '');}
function RTrim(strValue) {var RTRIMrgExp = /\s *$/; return strValue.replace(RTRIMrgExp, '');}
function trim(strValue) {return LTrim(RTrim(strValue));}

function IsNumeric(strText)
{
	var strValidChars = '0123456789';
	var strChar;
	var blnResult = true;
	
	if (strText.length === 0) {return false;}
	for (i = 0; i < strText.length; i++) 
	{ 
		strChar = strText.charAt(i); 	 
		if (strValidChars.indexOf(strChar) == -1) 
		{
			blnResult = false;
			break;
		}
	}
	return blnResult;
}
function imposeMaxLength(o, maxlen) {return (o.value.length <= maxlen);}
function cardCheck(sCardType, sCardNumber) {
	var re = new RegExp();
	switch (sCardType.toLowerCase()) {
		case "american express":
			re = /^3[47][0-9]{13}$/;
			if (!re.test(sCardNumber)) { return false; }
			switch (sCardNumber.substring(0, 2))
			{
				case "34":
				case "37":
					break;
				default:
					return false;
			}
			break;

		case "diners":
			re = /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/;
			if (!re.test(sCardNumber)) { return false; }
			break;

		case "maestro":
			re = /^\d{16}$/;
			var reg1 = new RegExp();
			reg1 = /^\d{18}$/;
			if ((!re.test(sCardNumber)) && (!reg1.test(sCardNumber))) { return false; }
			switch (sCardNumber.substring(0, 4)) {
				case "5020":
				case "5038":
				case "6304":
				case "6759":
					break;
				default:
					return false;
			}
			break;

		case "mastercard":
			re = /^5[1-5][0-9]{14}$/;
			if (!re.test(sCardNumber)) { return false; }
			switch (sCardNumber.substring(0, 2)) {
				case "51":
				case "52":
				case "53":
				case "54":
				case "55":
					break;
				default:
					return false;
			}
			break;

		case "solo":
			re = /^\d{16}$/;
			var reg1 = new RegExp();
			var reg2 = new RegExp();
			reg1 = /^\d{18}$/;
			reg2 = /^\d{19}$/;
			if ((!re.test(sCardNumber)) && (!reg1.test(sCardNumber)) && (!reg2.test(sCardNumber))) { return false; }
			switch (sCardNumber.substring(0, 4)) {
				case "6334":
				case "6767":
					break;
				default:
					return false;
			}
			break;

		case "switch":
			re = /^\d{16}$/;
			var reg1 = new RegExp();
			var reg2 = new RegExp();
			reg1 = /^\d{18}$/;
			reg2 = /^\d{19}$/;
			if ((!re.test(sCardNumber)) && (!reg1.test(sCardNumber)) && (!reg2.test(sCardNumber))) { return false; }
			switch (sCardNumber.substring(0, 4)) {
				case "4903":
				case "4905":
				case "4911":
				case "4936":
				case "6333":
				case "6759":
					break;
				default:
					switch (sCardNumber.substring(0, 6)) {
						case "564182":
						case "633110":
							break;
						default:
							return false;
					}
			}
			break;

		case "visa":
		case "visa credit":
		case "visa debit":
			re = /^4[0-9]{12}(?:[0-9]{3})?$/;
			var reg1 = new RegExp();
			reg1 = /^\d{13}$/;
			if ((!re.test(sCardNumber)) && (!reg1.test(sCardNumber))) { return false; }
			switch (sCardNumber.substring(0, 1)) {
				case "4":
					break;
				default:
					return false;
			}
			break;
	}
	return true;
}
function setCm3PageUrls(id) { var f = self; var s = f.location.href; while (f.parent != f) { f = f.parent; s = f.location.href + ";" + s; } getEl(id).value = s; }