// VARIABLE DECLARATIONS
var digits = ".0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// Alphabetic check
function alphaCheck(theField){
	var val=theField.value;
	var chk = /[a-zA-Z_ ']+/;
	if (chk.test(val)){return 1;}
	else{
		alert('This field only accepts valid alphabetic characters (A-Za-z_ \').');
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Alphanumeric check script-
function alphanumericCheck (theField){
	var val=theField.value;
	var chk = /[0-9a-zA-Z_ ']+/;
	if (chk.test(val)){return 1;}
	else{
		alert("Please input a alphanumeric string. A-Za-z0-9_");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// currency check script-
function currencyCheck (theField){
	var val=theField.value;
	var anum=/(^\d+\.{0,1}\d{0,2}$)/;
	if (anum.test(val)){}
	else{
		alert("Please input a valid US currency amount.");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Date Check
function dateCheck (theField){
	var val=theField.value;
	var formats = 'Accepted Formats MM-DD-YY, MM/DD/YY, MM-DD-YYYY, MM/DD/YYYY';
	var pattern = /^(1[0-2]|0?[1-9])[\/\-](0?[1-9]|[12][0-9]|3[01])[\-\/]([0-9]{2}|[0-9]{4})$/;
	if (pattern.test(val)){}
	else{
		alert("Please input a valid date.\n" + formats);
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Get the number of day in a given month and year.
function getLastDay(y, m) {
	var d = 0;
	if(m == 2) {
		if((y % 4) != 0) {d = 28;} 
		else if((y % 400) == 0){d = 29;} 
		else if((y % 100) == 0) {d = 28;} 
		else {d = 29;}
		} 
	else if((m == 1) || (m == 3) || (m == 5) || (m == 7) || (m == 8) || (m ==10) || (m == 12)){d = 31;}
	else {d = 30;}
	return d;
	}
// Email Check
function emailCheck (theField){
	var val=theField.value;
	var filter=/^.+@.+\..{2,3}$/;
	if (filter.test(val)){}
	else{
		alert("Please input a valid email address.");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Returns the Date - returns Wednesday January 31, 2001
function getDate (){
	var mydate=new Date();		
	var year=mydate.getYear();		
 	if (year<2000){year=1900+year;}		
	var day=mydate.getDay();		
	var month=mydate.getMonth();		
	var daym=mydate.getDate();		
	if (daym<10){daym="0"+daym}		
	var dayarray=new Array("Sun","Mon","Tues","Wed","Thur","Fri","Sat");		
	var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var result=""+dayarray[day]+", "+montharray[month]+" "+daym+", "+year+"";
	return result;
	}
// Integer Check
function integerCheck (theField){
	var val=theField.value;
	var anum=/(^\d+$)/;
	if (anum.test(val)){}
	else{
		alert("This field only accepts valid positive integers.");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Real Number check script-
function realnumberCheck (theField){
	var val=theField.value;
	var anum=/(^\d+$)|(^\d+\.\d+$)/;
	if (anum.test(val)){}
	else{
		alert("Please input a valid real number.");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
//Reformat
function reformat (s){
	var arg;
	var sPos = 0;
	var resultString = "";
	for (var i = 1; i < reformat.arguments.length; i++) {
		arg = reformat.arguments[i];
		if (i % 2 == 1){ resultString += arg;}
		else {
			resultString += s.substring(sPos, sPos + arg);
			sPos += arg;
			}
		}
	return resultString;
	}
// Removes all characters which appear in string bag from string s.
function stripChar(s){
	var i;
	var returnString = '';
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++){   
		var c = s.charAt(i);
		if (digits.indexOf(c) > 0){returnString += c;}
		}
	return returnString;
	}
// Set focus on a field in a form
function setFocus(theField) {theField.focus();}
// Time Check
function timeCheck (theField){
	var val=theField.value;
	var anum=/(^\d{1,2}\:\d{2}$)/;
	if (anum.test(val)){}
	else{
		alert("Please input a valid time - military format. HH:MM");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Zip Code Check -
function zipCheck(val,theField){
	var sval=stripChar(val);
	if((sval.length == 9)||(sval.length == 5)){
		if(sval.length == 9){
			var x=reformat(sval,"",5,"-",4,"",0);
			theField.value=x;
			}
		}
	else{
		alert("Please input a valid US Zip Code!");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// SSN Check -
function ssnCheck(theField){
	var val=theField.value;
	var sval=stripChar(val);
	var x=reformat(sval,"",3,"-",2,"-",4);
	var anum=/\d\d\d\-\d\d\-\d\d\d\d/;
	if (anum.test(x)){theField.value=x;}
	else{
		alert("Please input a valid SSN number.\n\nFormat: 999-99-9999");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Format Phone - sets the value of the field to a phone number format.
function phoneCheck(theField){
	var val=theField.value;
	var sval=stripChar(val);
	if(sval.length == 10){
		var x=reformat(sval, "(", 3, ") ", 3, "-", 4);
		theField.value=x;
		}
	else{
		alert("Please input a valid 10 digit phone number.\n\nFormat: 999 999-9999");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Custom1 - custom1Check - Web Images
function custom1Check(theField){
	var val=theField.value;
	var anum=/\.(jpg|gif|png)$/;
	if (anum.test(val)){}
	else{
		alert("Please select a valid web image.\n\n Gif,Jpg, and Png files are accepted.");
		theField.focus();
		theField.select();
		return 0;
		}
	return 1;
	}
// Custom2 - custom2Check
function custom2Check(theField){
	var val=theField.options[selectedIndex].value;
	if(val == 1 && document.addedit.scheduled_date.length == 0){
		alert('Schedule Date is required when Customer Status=Scheduled');
		document.addedit.scheduled_date.focus();
		return 0;
		}
	if(val == 2 && document.addedit.install_date.length == 0){
		alert('Install Date is required when Customer Status=Installed');
		document.addedit.install_date.focus();
		return 0;
		}
	if(val == 3 && document.addedit.bundled_date.length == 0){
		alert('Bundled Date is required when Customer Status=Bundled');
		document.addedit.bundled_date.focus();
		return 0;
		}
	return 1;
	}
// Custom3 - custom3Check
function custom3Check(theField){
	var date=theField.value;
	var alertmsg = 'The resubmit date cannot be earlier than today';
    window.status='';
    if( date == saved ){return true;}   // don't check if no change
    if( date.charAt(2) != '-' || date.charAt(5) != '-' || date.substring( 0, 2 ) < 1 || date.substring( 0, 2 ) > 12 || date.substring( 3, 5 ) < 1 || date.substring( 3, 5 ) > 31 ){
    	alert('Invalid date.');
      	return false;
    	}
    if( saved != '' ){alertmsg += '(unless you keep the old date of '+saved+').';}
    else{alertmsg += '.';}
    var now = new Date();
    if( date.substring( 6, 10 ) < now.getYear() ){
    	alert(alertmsg);
      	return false;
    	}
    else if( date.substring( 6, 10 ) == now.getYear() ){
      	if( date.substring( 0, 2 ) < now.getMonth()+1 ){
        	alert(alertmsg);
        	return false;
      		}
      	else if( date.substring( 0, 2 ) == now.getMonth()+1 ){
        	if( date.substring( 3, 5 ) < now.getDate() ){
          		alert(alertmsg);
          		return false;
        		}
      		}
    	}
    return true;
	}
// Custom4 - custom4Check
function custom4Check(theField){return 1;}
// Custom5 - custom5Check
function custom5Check(theField){return 1;}
// The following functions are used in the List Results call
function Check(){
   if (!document.listdata.checkall) {return;}
   var t = document.listdata.elements.length;
   var c = 0;
   if (document.listdata.checkall.checked) {c = 1;}
   for (var i = 0; i < t; i++) {
	if (document.listdata.elements[i].name == "i_selected") {
    	document.listdata.elements[i].checked = c;
		}
   	}
}
function buildmail(){
	var t = document.listdata.elements.length;
	var chek = Array(50);
	var x=0;
	for (var i = 0; i < t; i++) {
		if (document.listdata.elements[i].name == "i_selected" && document.listdata.elements[i].checked) {
			chek[x]=document.listdata.elements[i].value;
			x=x+1;
			}
		}
	var list = "";
	for (var i = 0; i < t; i++) {
		for (var y = 0; y<x; y++){
			var em = "i_email_"+chek[y];
			if (document.listdata.elements[i].name == em) {
				list = list + document.listdata.elements[i].value + ",";
				}
			}
		}
	parent.location.href='mailto:'+list;
	}
//ShowOptions
 function ShowOptions(elTarget) {
	if (window.showModalDialog) {
    	var sRtn;
    	sRtn = showModalDialog("/infiles/showoptions.htm","","Help=0;Center=1;Resizable=1;scroll=0;Status=0;dialogWidth=100pt;dialogHeight=150pt");
    	if (sRtn!=""){elTarget.value = sRtn;return true;}
		else {return false;}
		}
	else{Show_Hide('i_showoptions');return false;}
	return true;
	}
//SetNav
function Setnav(nav){
	document.i_menu.i_nav.value=nav;
	}
//Date Picker
 function DoCal(elTarget) {
	if (window.showModalDialog) {
    	var sRtn;
    	sRtn = showModalDialog("/infiles/Calendar.htm","","Help=0;Center=1;Resizable=1;scroll=0;Status=0;dialogWidth=146pt;dialogHeight=165pt");
    	if (sRtn!=""){elTarget.value = sRtn;return true;}
		else {return false;}
		}
	else{alert("Enter a color in hex format.")
		return false;
		}
	}
//Color Picker
 function DoColor(elTarget) {
	if (window.showModalDialog) {
    	var sRtn;
    	sRtn = showModalDialog("/infiles/Color.htm","","Help=0;Center=1;Resizable=1;scroll=0;Status=0;dialogWidth=145pt;dialogHeight=175pt;");
    	if (sRtn!=""){elTarget.value = sRtn;return true;}
		else {return false;}
		}
	else{alert("Enter a color in hex format.")}
	}
//ShowHide is used to manipulate layers
function HideIt(obj){
    var x = new getObj(obj);
	x.style.visibility='hidden';
	x.style.display='none';
	}
function Replace(obj1,obj2){
    var ob1 = new getObj(obj1);
	var ob2 = new getObj(obj2);
	var x=findPosX(obj1);
	var y=findPosY(obj1);
	window.status='x='+x+' and y='+y;
	//hide obj1
	ob1.style.visibility ='hidden';
	ob1.style.display = 'none';
	//set ob2 x and y and show
	ob2.style.top=y;
	ob2.style.left=x;
	ob2.style.visibility ='visible';
	ob2.style.display = 'block'
	ob2.obj=ob1.obj;
	return true;
	}
function Show_Hide(obj,cmd){
    var x = new getObj(obj);
	if(cmd && cmd==1){
		x.style.visibility ='visible';
		x.style.display = 'block';
		}
	else if(cmd && cmd==0){
		x.style.visibility ='hidden';
		x.style.display = 'none';
		}
	else if(x.style.visibility == 'hidden' || x.style.display == 'none' || x.style.display == 'hide'){
		x.style.visibility ='visible';
		x.style.display = 'block';
		}
	else{
		x.style.visibility ='hidden';
		x.style.display = 'none';
		}
	return true;
	}
function getObj(name){
 if (document.getElementById){
	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
 	}
 else if (document.all){
	this.obj = document.all[name];
	this.style = document.all[name].style;
 	}
 else if (document.layers){
	if (document.layers[name]){
		this.obj = document.layers[name];
	   	this.style = document.layers[name];
		}
	else{
	    this.obj = document.layers.name.layers[name];
	    this.style = document.layers.name.layers[name];
		}
 	}
}
function findPosX(obj){
	var curleft = 0;
	if (document.getElementById || document.all){
		while (obj.offsetParent){
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
			}
		}
	else if (document.layers){curleft += obj.x;}
	return curleft;
	}
function findPosY(obj){
	var curtop = 0;
	var printstring = '';
	if (document.getElementById || document.all){
		while (obj.offsetParent){
			printstring += ' element ' + obj.tagName + ' has ' + obj.offsetTop;
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
			}
		}
	else if (document.layers){curtop += obj.y;}
	window.status = printstring;
	return curtop;
}
//ShowHide - old version
function ShowHide(sh,a,b){
	//sh=id name to show or hide
	//a=1 - hide, a=2 show  id but hide all others
	//a=2 and b=x  show id and hide all others that begin with x
	//if a and b are left out, then show id without hiding others
	if(b){var blen=b.length;}
	if(document.all){var t = document.all.length;}
	else  if (document.layers){var t = document.layers.length;}
	else if (navigator.userAgent.toLowerCase().indexOf('opera')>-1) {
		alert('id='+sh+'and visibility='+document.getElementById(sh).style.display);
		if(a==1){document.getElementById(sh).style.display = "hide";}
		else{document.getElementById(sh).style.display = "show";}
		return;
		}
	for (var i = 0; i < t; i++) {
		var bi=document.all[i].id.substring(0,blen);
		//For browsers that support hidden styles -- IE
		if(a==2 && blen>0 && document.all && document.all[i].id){
			//alert('bi='+bi+' and b='+b);
			if(document.all[i].id==sh){document.all[i].style.display="block";}
			else if (b == bi){document.all[i].style.display="none";}
			}
		else if(a==2 && document.all && document.all[i].id){
			if(document.all[i].id==sh){document.all[i].style.display="block";}
			else{document.all[i].style.display="none";}
			}
		else if(a==1 && document.all && document.all[i].id==sh){document.all[i].style.display="none";}
		else if(!a && document.all && document.all[i].id==sh){document.all[i].style.display="block";}
		//for browsers that support layers like Netscape
		else if(a==2 && blen>0 && document.layers  && document.layers[i].visibility){
			var bg=/^b/;
			if(document.layers[i].id==sh){document.layers[i].visibility='show';}
			else if (b == bi){document.layers[i].visibility='hide';}
			}
		else if(a==2 && document.layers && document.layers[i].visibility){
			if(document.layers[i].id==sh){document.layers[i].visibility='show';}
			else{document.layers[i].visibility='hide';}
			}
		else if(a==1 && document.layers && document.layers[i].id==sh){document.layers[i].visibility='hide';}
		else if(!a && document.layers && document.layers[i].id==sh){document.layers[i].visibility='show';}
		}
	}

// End

	

