// Common javascript functions

// masking functions
var keyBS = 8;
var keyTab = 9;
var keyComma = 44;
var keyMinus = 45;
var keyDot = 46;
var keySlash = 47;
var keyColon = 58;


function isNumberKey(keyCode) {
	return (keyCode >= 48 && keyCode <= 57);
	//  || keyCode >= 99 && keyCode <= 105 for keyup event
}

function maskNumericKeyPress(objInput) {
	var keyCode = event.keyCode;

	if (!isNumberKey(keyCode) && keyCode != keyTab && keyCode != keyBS) {
		event.cancelBubble = true;
		return false;
	}
	return true;
}


// hide select lists in IE <=6 due to z-index problem causing overlap of select (ie-bug)
function hideSelects(ddlSz,ddlClr) {
	if (navigator.appName.indexOf("Microsoft")!=-1 && parseInt(navigator.appVersion.charAt(0))<=6 ) {
	    var oSelect=document.getElementById(ddlSz);
		oSelect.className+=" hide";
		var oSelect=document.getElementById(ddlClr);
		oSelect.className+=" hide";
	}
}
function showSelects(ddlSz,ddlClr) {
	if (navigator.appName.indexOf("Microsoft")!=-1 && parseInt(navigator.appVersion.charAt(0))<=6 ) {
		var oSelect=document.getElementById(ddlSz);
		oSelect.className=oSelect.className.replace(" hide","");
		var oSelect=document.getElementById(ddlClr);
		oSelect.className=oSelect.className.replace(" hide","");
	}
}

/*
function hideSelects() {
	if (navigator.appName.indexOf("Microsoft")!=-1 && parseInt(navigator.appVersion.charAt(0))<=6 ) {
	    var oSelects=document.getElementsByTagName("select");
		for(var i=0;i<oSelects.length;i++)
			oSelects[i].className+=" hide";		
	}
}

function showSelects() {
	if (navigator.appName.indexOf("Microsoft")!=-1 && parseInt(navigator.appVersion.charAt(0))<=6 ) {
		var oSelects=document.getElementsByTagName("select");
		for(var i=0;i<oSelects.length;i++)
		oSelects[i].className=oSelects[i].className.replace(" hide","");
	}
}
*/

function fnValidateEmail(emailStr) {

	var checkTLD=1;

	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

	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 (emailStr == "") {
		return true;
	}
	if (matchArray==null) {
		alert("Please enter E-mail in the correct format such as (user@domain.com)");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];

	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alert("Ths username contains invalid characters.");
			return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alert("Ths domain name contains invalid characters.");
			return false;
		}
	}

	if (user.match(userPat)==null) {
		alert("The username doesn't seem to be valid.");
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Destination IP address is invalid!");
				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) {
			alert("The domain name does not seem to be valid.");
			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) {
		alert("This address is missing a hostname!");
		return false;
	}

	return true;
}

function hasBlank(strText){ 
	if (strText.indexOf(' ')!=-1){
	 	return true;	    
	}
}

function fnCheckQty(objQty, objMinQty) {
	var minqty = objMinQty.value;
	var qty = objQty.value;
	if(objQty.value.length == 0) {
		alert("Please enter the quantity!");
		objQty.focus();
		return false;
	}
	if(isNaN(qty)) {
		alert("Please enter a numeric value for quantity.");
		objQty.focus();
		return false;
	}
	if (parseInt(qty) < parseInt(minqty)) {
		alert("Quantity ordered cannot be less than the minimum quantity of " + minqty);
		objQty.value = minqty;
		objQty.focus();
		return false;
	}
	//alert("Please click on 'Re-Calculate Total' button below.");
	return true;
}
	
function openMyOrder(){
	window.open('order_my.aspx?popup=1','MyOrderForm','width=800,scrollbars=yes,status=yes')
}

function openMyWholesaleOrder(){
	window.open('order_my.aspx?popup=1','WholesaleMyOrderForm','width=800,scrollbars=yes,status=yes')
}

function openMyOrderHistory(oid,ono,odate,ostatus){
	window.open('order_my.aspx?popup=1&history=1&oid='+oid+'&ono='+ono+'&odate='+odate+'&ostatus='+ostatus,'MyOrderFormHistory','width=800,scrollbars=yes,status=yes')
}

function openMyWholesaleOrderHistory(oid,ono,odate,ostatus){
	window.open('order_my.aspx?popup=1&history=1&oid='+oid+'&ono='+ono+'&odate='+odate+'&ostatus='+ostatus,'WholesaleMyOrderFormHistory','width=800,scrollbars=yes,status=yes')
}

function doSearch(query){
	if (query.value != "") { window.location.href="search.aspx?q="+query.value; return false; }
	else { alert('Please enter a keyword.'); query.focus(); return false; }
}
