// JavaScript Document
// JavaScript Document
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function ReqVal(field,message){
	if (field.value.length < 1){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}
function ReqChars(field,qty,message){
	if (field.value.length < qty){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function CheckUncheck(f){
	f.checked = !f.checked;
}

function setCheck(e,n){
	if (n == 0) e.checked = false;
	if (n != 0) e.checked = true;
}

function CheckLen(field,limit,message){
	if (field.value.length > limit){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function ReqAlphaNum(field,message){
	if (!ValContains(field.value,'0123456789')){
		alert(message);
		field.focus();
		return false;
	}
	if (!ValContains(field.value,'abcdefghijklmnopqrstuvwxyz')){
		alert(message);
		field.focus();
		return false;
	}
	return true;
}

function ValContains(str,lst){
	for (var i=0;i<str.length;i++){
		for (var j=0;j<lst.length;j++){
			if (str[i] == lst[j]) return true;
		}
	}
	return false;
}

function ReqMatch(field1,field2,message){
	if (field1.value == field2.value){return true;}
	else{
		alert(message);
		field1.focus();
		return false;
	}
}

function ReqNoMatch(field1,field2,message){
	if (field1.value != field2.value){return true;}
	else{
		alert(message);
		field1.focus();
		return false;
	}
}

function ReqSel(field,message){
	if (field.selectedIndex < 1){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}
function ReqCheck(field,message){
	// Used for Radio or Checkboxes (Unique and Multiples)
	var i;
	var rtrn = false
	for (i = 0; i < field.length; i++) {if (field[i].checked) rtrn = true;}
	if (i == 0) if (field.checked) rtrn = true;
	if (rtrn) { return true; }
	else {
		alert(message);
		if (i == 0){ field.focus;}
		else field[0].focus;
		return false;		
	}
}

function ReqEmail(field,message){
	field.value = field.value.toLowerCase();
	field.value = field.value.replace(/ /g,'');
	if (!IsEmail(field.value)){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function ReqNoEmail(field,message){
	if (field.value == '') return true;
	field.value = field.value.toLowerCase();
	field.value = field.value.replace(/ /g,'');
	if (!IsEmail(field.value)){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function ReqMultEmail(field,message){
	field.value = field.value.toLowerCase();
	field.value = field.value.replace(/;/g,',');
	field.value = field.value.replace(/ /g,'');
	var temp = field.value.split(',');
	for (var i=0;i<temp.length;i++){
		if (!IsEmail(temp[i])){
			alert(message);
			field.focus();
			return false;
		}
	}
	return true;
}

function ReqNoMultEmail(field,message){
	if (field.value.length == 0) return true;
	return ReqMultEmail(field,message);
}

function ReqDate(field,message){
	if (!IsDate(field.value)){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function ReqNoDate(field,message){
	if (field.value == '') return true;
	if (!IsDate(field.value)){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function ReqZip(field,message){
	if (!IsZip(field.value)){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function ReqNoZip(field,message){
	if (field.value == '') return true;
	if (!IsZip(field.value)){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function NextField(field1,field2,limit){
	if (field1.value.length >= limit) {
		if (field1.value.length > limit) field1.value = field1.value.substring(0, limit);
		if (field2) field2.focus();
	}	
}

function ReqNum(field,message){
var num=field.value.trim();
	if (!IsNumeric(num)){
		alert(message);
		field.focus();
		return false;
	}
	else return true;
}

function NumericOnly(e,f){
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	if(key != 8 && key != 0 && key != 13) if (key != 45 || f.value != '') if((key < 45 || key > 57) || !IsNumeric(f.value+''+keychar) || key == 47) if (window.event) { e.returnValue = false; } else {return false;}
}

function DecimalOnly(e,f){
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	if (key == 46 && f.value == '') f.value = '0';
	if(key != 8 && key != 0 && key != 13) if((key < 46 || key > 57) || !IsDecimal(f.value+''+keychar) || key == 47) if (window.event) { e.returnValue = false; } else {return false;}
}

function IntegerOnly(e,f){
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	if(key != 8 && key != 0 && key != 13) if((key < 48 || key > 57) || !IsInteger(f.value+''+keychar)) if (window.event) { e.returnValue = false; } else {return false;}
}

   
function BlockChars(e,lst){
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	if (key != 8 && key != 0 && key != 13) if ((lst.indexOf(keychar) != -1)) if (window.event) { e.returnValue = false; } else {return false;}
}

function OnlyChars(e,lst){
	var key = window.event ? e.keyCode : e.which;
	var keychar = String.fromCharCode(key);
	if (key != 8 && key != 0 && key != 13) if ((lst.indexOf(keychar) == -1)) if (window.event) { e.returnValue = false; } else {return false;}
}

function ReplaceChars(field,oldchar,newchar){
	if (field.value.indexOf(oldchar) != -1){
		field.value = field.value.replace(/;/g, ',')
	}
}

function checkCounter(field1,field2,limit){
	if (field1.value.length > limit) field1.value = field1.value.substring(0, limit);
	field2.value = field1.value.length;
}

function checkRemaining(field1,field2,limit){
	if (field1.value.length > limit) field1.value = field1.value.substring(0, limit);
	field2.value = limit - field1.value.length;
}

function ShowHideElement(field){
	if (document.getElementById(field).style.display=='none') {document.getElementById(field).style.display='';}
	else {document.getElementById(field).style.display='none';}
}

function ShowElement(v,field){
	if (v) {document.getElementById(field).style.display='';}
	else {document.getElementById(field).style.display='none';}
}

function ShowHide(cb,field){
	if (cb.checked) {document.getElementById(field).style.display='';}
	else {document.getElementById(field).style.display='none';}
}

function HideShow(cb,field){
	if (cb.checked) {document.getElementById(field).style.display='none';}
	else {document.getElementById(field).style.display='';}
}

function getAge(m,d,y){
	if (!IsDate(m+'/'+d+'/'+y)) return '';
	var dt = new Date();
	if (dt.getFullYear() <= y) return 0;
	if (m <= dt.getMonth()) return dt.getFullYear() - y;
	if ((m-1) == dt.getMonth()) if (d <= dt.getDate()) return dt.getFullYear() - y;
	return (dt.getFullYear()-((y*1)+1));
}

function IsNumeric(str){
	if (isNaN(str)) return false;
	if (str.length == 0) return false;
	if (str.indexOf('-') > 0) return false;
	if (str.indexOf('.') > 0) if (str.indexOf('.',str.indexOf('.')+1) > 0) return false;
	return IsInList(str,"0123456789.-");
}

function IsDecimal(str){
	if (isNaN(str)) return false;
	if (str.length == 0) return false;
	if (str.indexOf('.') >= 0) if (str.indexOf('.',str.indexOf('.')+1) > 0) return false;
	return IsInList(str,"0123456789.");
}

function IsInteger(str){
	if (isNaN(str)) return false;
	if (str.length == 0) return false;
	return IsInList(str,"0123456789");
}

function IsInList(str,lst){
	var sChar;
	for (i = 0; i < str.length; i++){
		sChar = str.charAt(i);
		if (lst.indexOf(sChar) == -1) return false;
	}
	return true;
}
function IsEmail(str) {
	if (str.indexOf('@')==-1) return false;
	if (str.indexOf('@',str.indexOf('@')+1)!=-1) return false;
	if (str.indexOf('.',str.indexOf('@')+1)==-1) return false;
	if (str.indexOf('.',str.length-2)!=-1) return false;
	if (str.indexOf('..')!=-1) return false;
	if (str.indexOf('.@')!=-1) return false;
	if (str.indexOf('@.')!=-1) return false;
	if (str.indexOf('@-')!=-1) return false;
	if (str.indexOf('-@')!=-1) return false;
	var Source1 = 'abcdefghijklmnopqrstuvwxyz0123456789.-';
	var Source2 = "'_.-";
	if (Source2.indexOf(str.charAt(0))!=-1) return false;
	var Part1 = str.substring(0,str.indexOf('@')-1);
	var Part2 = str.substring(str.indexOf('@')+1);
	var j;
	for (j=0;j<Part1.length;j=j+1){
		if (Source1.indexOf(Part1.charAt(j))==-1) if (Source2.indexOf(Part1.charAt(j))==-1) return false;
	}
	for (j=0;j<Part2.length;j=j+1){
		if (Source1.indexOf(Part2.charAt(j))==-1) return false;
	}
	return true;
}
// returns true if the string is a valid date formatted as mm/dd/yyyy, m/d/yyyy
function IsDate(str){
	var div = "/";
	var div1 = str.indexOf(div);
	var div2 = str.indexOf(div,(div1+1));
	if (div1 == -1 || div2 == -1) return false;
	var m = str.substring(0,div1);
	var d = str.substring(div1+1,div2);
	var y = str.substring(div2+1,str.length);
	if (y.length < 2 || y.length == 3 || y.length > 4) return false;
	if (y.length == 4) if (y < 1900 || y > 2100) return false;
	if(m < 1 || m > 12) return false;
	if(m == 2){ var days = ((y % 4) == 0) ? 29 : 28; }
	else var days = (m == 4 || m == 6 || m == 9 || m == 11) ? 30 : 31;
	return (d >= 1 && d <= days);
}

function IsZip(str) {
	var valid = "0123456789-";
	var hyphencount = 0;

	if (str.length!=5 && str.length!=9 && str.length!=10) return false;
	
	for (var i=0; i < str.length; i++) {
		temp = "" + str.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") return false;
		if ((hyphencount > 1) || ((str.length==10) && ""+str.charAt(5)!="-")) return false;
	}
	return true;
}

function Zoom(f){
	if(f.rows==1){
	f.rows=10;}
	else{f.rows=1;}
}

function ZoomLarge(f){
	if(f.rows==1){
	f.rows=30;}
	else{f.rows=1;}
}

function showhideme(obj) {
	if(obj.style.display=='none') {
		obj.style.display='';
		obj.style.visibility='visible';
	} else {
		obj.style.display='none';
		obj.style.visibility='hidden';	
	}//end if
}//end function