/*_________________________________________________________________________
NOTES ON csJS.js

csJS.js contains client side JS.

csJS.js should be included on the first line of page via a script pointer, eg:
	script type="text/javascript" language="javascript" SRC="global/csJS.js"

Functions are in alphabetical order and use camelBack notation (1st letter not capitalized).

_________________________________________________________________________*/


//Site wide constants
var SECONDinMS = 1000; // the number of milliseconds in a second
var MINUTEinMS = SECONDinMS * 60;
var HOURinMS = MINUTEinMS * 60;
var DAYinMS = HOURinMS * 24;
var WEEKinMS = DAYinMS * 7;var DAYNAME = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
var MONTHNAME = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var laDATE = new Date(); //Date at time of page load
var intDAYOFMONTHdelaDATE = laDATE.getDate();
var intDAYOFWEEKdelaDATE = laDATE.getDay();
var intMONTHdelaDATE = laDATE.getMonth();
var intYEARdelaDATE = laDATE.getFullYear();
var intTIMEdelaDATE = laDATE.getTime()
var intSEEDdelaDATE = laDATE.getTime() % 0xfffffff;

//Changes an image with another.
function flipImage(url) {	
    window.event.srcElement.src = url;
}

//Opens a file in a new window with provided features.
function inNewWindow(pstrFile, pstrWindowName, pstrWindowFeatures) {
	var intName;
	var intFeatures;
	var strWindowName = new String(pstrWindowName);
	var strWindowFeatures = new String(pstrWindowFeatures);
	intName = strWindowName.length;
	intFeatures = strWindowFeatures.length;
	if ((intName == 0) && (intFeatures == 0)) {
		window.open(pstrFile);
	} else if (intName == 0) {
		window.open(pstrFile, '', strWindowFeatures);
	} else if (intFeatures == 0) {
		window.open(pstrFile, strWindowName);
	} else {
		window.open(pstrFile, strWindowName, strWindowFeatures);
	}
    return false;
}

//Returns HTML for current date.
function printDate() {
	strMonth = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	with (new Date()) {
		document.write (strMonth[getMonth()] + " " + getDate() + ", " + getFullYear());
	}
}

//Returns HTML for US and Canadian states.
var STATES =
		"<option value=AL>Alabama</option>"+
		"<option value=AK>Alaska</option>"+
		"<option value=AB>Alberta</option>"+
		"<option value=AZ>Arizona</option>"+
		"<option value=AR>Arkansas</option>"+
		"<option value=BC>British Columbia</option>"+
		"<option value=CA>California</option>"+
		"<option value=CO>Colorado</option>"+
		"<option value=CT>Connecticut" +
		"<option value=DE>Delaware</option>"+
		"<option value=DC>District of Columbia</option>"+
		"<option value=FL>Florida</option>"+
		"<option value=GA>Georgia</option>"+
		"<option value=HI>Hawaii</option>"+
		"<option value=ID>Idaho</option>"+
		"<option value=IL selected>Illinois</option>"+
		"<option value=IN>Indiana</option>"+
		"<option value=IA>Iowa</option>"+
		"<option value=KS>Kansas</option>"+
		"<option value=KY>Kentucky</option>"+
		"<option value=LA>Louisiana</option>"+
		"<option value=ME>Maine</option>"+
		"<option value=MB>Manitoba</option>"+
		"<option value=MD>Maryland</option>"+
		"<option value=MA>Massachusetts</option>"+
		"<option value=MI>Michigan</option>"+
		"<option value=MN>Minnesota</option>"+
		"<option value=MS>Mississippi</option>"+
		"<option value=MO>Missouri</option>"+
		"<option value=MT>Montana</option>"+
		"<option value=NE>Nebraska</option>"+
		"<option value=NV>Nevada</option>"+
		"<option value=NB>New Brunswick</option>"+
		"<option value=NH>New Hampshire</option>"+
		"<option value=NJ>New Jersey</option>"+
		"<option value=NM>New Mexico</option>"+
		"<option value=NY>New York</option>"+
		"<option value=NF>Newfoundland</option>"+
		"<option value=NC>North Carolina</option>"+
		"<option value=ND>North Dakota</option>"+
		"<option value=NT>Northwest Territories</option>"+
		"<option value=NS>Nova Scotia</option>"+
		"<option value=OH>Ohio</option>"+
		"<option value=OK>Oklahoma</option>"+
		"<option value=ON>Ontario</option>"+
		"<option value=OR>Oregon</option>"+
		"<option value=PA>Pennsylvania</option>"+
		"<option value=PE>Prince Edward Island</option>"+
		"<option value=PQ>Province of Quebec</option>"+
		"<option value=PR>Puerto Rico</option>"+
		"<option value=RI>Rhode Island</option>"+
		"<option value=SK>Saskatchewan</option>"+
		"<option value=SC>South Carolina</option>"+
		"<option value=SD>South Dakota</option>"+
		"<option value=TN>Tennessee</option>"+
		"<option value=TX>Texas</option>"+
		"<option value=UT>Utah</option>"+
		"<option value=VT>Vermont</option>"+
		"<option value=VI>Virgin Islands</option>"+
		"<option value=VA>Virginia</option>"+
		"<option value=WA>Washington</option>"+
		"<option value=WV>West Virginia</option>"+
		"<option value=WI>Wisconsin</option>"+
		"<option value=WY>Wyoming</option>"+
		"<option value=YT>Yukon Territories</option>"
	;

/*Validates existence and format of a date.
This is a template of what would actually be on a form.
See ScheduleAppointment.asp for an example.*/
function validDate(form){
	var fld1=form.date
	var str1=fld1.value
	if (!str1){
		alert("You must enter a date.");
		fld1.focus();
		fld1.select();
		return false;
	}else{
		var dtm1=new Date(str1);
		if (isNaN(dtm1)){
			alert("Improper date format.");
			fld1.focus();
			fld1.select();
			return false; 
		}
	}
	//alert("You entered: " + dtm1);
	return true;
}

/*Validates existence and format of an email.
This is a template of what would actually be on a form. */
function validEmail(form) {
	var fld1=form.email
	var str1=fld1.value
	if (!str1) {
		alert("You must enter an Email Address.");
		fld1.focus();
		fld1.select();
		return false;		
	} else if (window.RegExp) { //For browsers that support RegExp
		var strReg1 = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var strReg2 = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1 = new RegExp(strReg1);
		var reg2 = new RegExp(strReg2);
		if (!reg1.test(str1) && reg2.test(str1)) {
			form;
		} else {
			alert("Improper email format.");
			fld1.focus();
			fld1.select();
			return false;
		}
	} else { //For browsers that don't support RegExp
		if (str1.indexOf("@") >= 0) {
			form;
		} else {
			alert("Improper email format.");
			fld1.focus();
			fld1.select();
			return false;
		}
	}
}


//Returns whole days until a provided date.
function wholeDaysUntil(yr, mo, dy) {
	var nDate = new Date(); // current date (local)
	var nTime = nDate.getTime(); // current time (UTC)
	var dTime = Date.UTC(yr, mo - 1, dy); // specified time (UTC)
	var bTime = Math.abs(nTime - dTime)  // time difference
	return Math.round(bTime / DAY);
}



