

// BROWSER CHECK
function GetBrowser () 
{   // convert all characters to lowercase to simplify testing 
    var agt=navigator.userAgent.toLowerCase(); 

    // *** BROWSER VERSION *** 
    // Note: On IE5, these return 4, so use is.ie5up to detect IE5. 
    this.major = parseInt(navigator.appVersion); 
    this.minor = parseFloat(navigator.appVersion); 

    this.nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
                && (agt.indexOf('webtv')==-1)); 
    this.nav2 = (this.nav && (this.major == 2)); 
    this.nav3 = (this.nav && (this.major == 3)); 
    this.nav4 = (this.nav && (this.major == 4)); 
    this.nav4up = (this.nav && (this.major >= 4)); 
    this.navonly      = (this.nav && ((agt.indexOf(";nav") != -1) || 
                          (agt.indexOf("; nav") != -1)) ); 
    this.nav5 = (this.nav && (this.major == 5)); 
    this.nav5up = (this.nav && (this.major >= 5)); 

    this.ie   = (agt.indexOf("msie") != -1); 
    this.ie3  = (this.ie && (this.major < 4)); 
    this.ie4  = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.0")==-1) ); 
    this.ie4up  = (this.ie  && (this.major >= 4)); 
    this.ie5  = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.0")!=-1) ); 
    this.ie5up  = (this.ie  && !this.ie3 && !this.ie4); 

    // KNOWN BUG: On AOL4, returns false if IE3 is embedded browser 
    // or if this is the first browser window opened.  Thus the 
    // properties is.aol, is.aol3, and is.aol4 aren't 100% reliable. 
    this.aol   = (agt.indexOf("aol") != -1); 
    this.aol3  = (this.aol && this.ie3); 
    this.aol4  = (this.aol && this.ie4); 

    this.opera = (agt.indexOf("opera") != -1); 
    this.webtv = (agt.indexOf("webtv") != -1); 
}




//  DATE FUNCTION -- DATE FUNCTION -- DATE FUNCTION
function checkdate(objName) {
	var strDatestyle = "US"; //United States date style
	//var strDatestyle = "EU";  //European date style
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var datefield = objName;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	
	//strDate is the value from the object passed
	strDate = datefield.value;

	// Date is less than 1 return true
	if (strDate.length < 1) {return true;}

	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
		{
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {err = 1; return false;}
			else 
				{strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];}

				booFound = true;
		}
	}

	if (booFound == false) 
	{
		if (strDate.length > 5)
		{
			strDay = strDate.substr(0, 2);  // DAY is first 2 
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
	   }
	 	else {return false;}  //Can't validate date with less than 6 characters
	}


	if (strYear.length == 2) 
		{strYear = '20' + strYear;}

	// US style
	if (strDatestyle == "US") {
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
		}
	
	intday = parseInt(strDay, 10);

	if (isNaN(intday)) {
		err = 2;
		return false;
	}

	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
				}
			}
		if (isNaN(intMonth)) {
			err = 3;
			return false;
		}
	}

	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	
	if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
	}
	
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		}
		else {
			if (intday > 28) {
				err = 10;
				return false;
			}
		}
	}

	if (strDatestyle == "US") {
		//datefield.value = strMonthArray[intMonth-1] + "/" + intday+ "/" + strYear;
		datefield.value = intMonth + "/" + intday+ "/" + strYear;
	}
	else {
		datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
	}

return true;
}



// LEAP YEAR  LEAP YEAR
function LeapYear(intYear) {
	if (intYear % 100 == 0) 
		{if (intYear % 400 == 0) { return true; }}
	else {if ((intYear % 4) == 0) { return true; }}
	return false;
}


function ContainsSpaces(string) {
	var HasSpaces;
	var temp = "";
	string = '' + string;
	splitstring = string.split(" ");
	
	if (splitstring.length == 1)
	{HasSpaces = false;}
	else
	{HasSpaces = true;}
	
//	for(i = 0; i < splitstring.length; i++)
//		temp += splitstring[i];
	
	return HasSpaces;
}


function openPopup(url, name) { 
	//self.name = "main"; // names current window as "main" 

	var windowprops = "toolbar=0,location=0,directories=0,status=0, " + 
	"menubar=0,scrollbars=yes,resizable=no,width=440,height=400,top=250,left=450"; 

	OpenWindow = window.open(url, name, windowprops); // opens window 
	OpenWindow.focus();
} 

function checkemail(p_email) {
  var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
  var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
  if (!reg1.test(p_email) && reg2.test(p_email)) 
	{return true;}
  return false;
}

function trim (inputStringTrim) 
{
	var fixedTrim = "";
	var lastCh = " ";
	for (x=0; x < inputStringTrim.length; x++) 
		{
		ch = inputStringTrim.charAt(x);
		if ((ch != " ") || (lastCh != " ")) 
			{ fixedTrim += ch; }
		lastCh = ch;
		}
	if (fixedTrim.charAt(fixedTrim.length - 1) == " ") 
		{fixedTrim = fixedTrim.substring(0, fixedTrim.length - 1); }

	return fixedTrim;
}





