function checkBlankField(which) {
	$(which).removeClass("invalid");
	if(trim($(which).val())=="") {
		$(which).addClass("invalid");
	}
}

function checkEmailPassword() {
	$("#Email").removeClass("invalid");
	$("#Password").removeClass("invalid");
	$("#emailpasserror").fadeOut();
	$.post("/ajax-check_email_password.cfm", { Email: $("#Email").val(), Password: $("#Password").val() }, function(data){
		if(trim(data)=="1") {
			$("#Email").addClass("invalid");
			$("#Password").addClass("invalid");
			$("#emailpasserror").fadeIn();
		}
	});
}

function checkStep1() {
	$("form input").removeClass("invalid");
	if(trim($("#Company").val())=="") {
		$("#Company").addClass("invalid");
	}
	if($("#CountryID option:selected").val()=="0") {
		$("#CountryID").addClass("invalid");
	}
	if($("#CurrencyID option:selected").val()=="0") {
		$("#CurrencyID").addClass("invalid");
	}
	if($("#Password").val()=="") {
		$("#Password").addClass("invalid");
	}
	if($("form input").hasClass("invalid")==true) {
		return false;
	} else {
		document.step1.submit();
	}
}

function matchHeights(offset) {
	var maxHeight=0;
	$(".matchheight").each(function(){
		tmp=$(this).innerHeight();
		if(parseInt(tmp) > parseInt(maxHeight)) {
			maxHeight=tmp;
		}
	});
	$(".matchheight").each(function(){
		$(this).css("height", maxHeight-parseInt(offset));
	});
}

function checkDate(which) {
	if(isDate($(which).val(),"d NNN y")){
		$(which).removeClass("invalid");
	} else {
		$(which).addClass("invalid");
	}
}

function stripNonNumeric(str) {
	str += '';
	var rgx = /^\d|\.|-$/;
	var out = '';
	for (var i = 0; i < str.length; i++) {
		if (rgx.test(str.charAt(i))) {
			if (!((str.charAt(i)=='.' && out.indexOf('.')!=-1) || (str.charAt(i)=='-' &&  out.length!=0))) {
				out += str.charAt(i);
			}
		}
	}
	return out;
}

function commaFormatNumber(amount){
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}

function currencyFormat(amount){
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function randchar(arg) {
	var char = '';
	var seed = Math.floor(Math.random() * arg.length);
	char = arg[seed];
	return char;
}

function randomPassword() {
	var consts = ['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'];
	var hard_consts = ['b','c','d','f','g','h','k','m','p','s','t','v','z'];
	var link_consts = ['h','l','r'];   
	var vowels = ['a','e','i','o','u'];
	var digits = ['1','2','3','4','5','6','7','8','9'];
	var newpass = randchar(hard_consts) + randchar(link_consts) + randchar(vowels) + randchar(consts) + randchar(digits) + randchar(hard_consts) + randchar(vowels) + randchar(consts);
	return newpass;
}

function isValidEmailAddress(emailAddress) {
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}

function winOpenCenter(url,name,statbar,scroll,locate,resize,xWidth,yWidth)	{
	var adjustedleft = 8//optional
	var adjustedheight = 30//adjust height because of windows taskbar
	var screenwidthremainder = screen.availWidth%2//really not needed, but won't hurt
	var screenheightremainder = screen.availHeight%2
	var screenwidth = screen.availWidth - screenwidthremainder
	var screenheight = screen.availHeight - screenheightremainder
	var winheight = yWidth //set new window height properties
	var winwidth = xWidth //set new window width properties
	var winleft = parseInt(screenwidth/2) - (winwidth/2) - adjustedleft//optional
	var wintop = parseInt(screenheight/2) - (winheight/2) - adjustedheight
	var win = window.open(url,name,'width=' +winwidth+ ',height=' +winheight+',status=' +statbar+',resizable='+resize+',scrollbars='+scroll+',location='+locate+',top='+wintop+',left='+winleft);
	return win;
}

