if (navigator.userAgent.indexOf('Win') != -1){  
		if (navigator.appName.indexOf('Netscape') != -1) { 
			document.write("<link rel='stylesheet' href='css/nav.css'>") 
			} 
			else {  
				document.write("<link rel='stylesheet' href='css/ie.css'>") 
			} 
		}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function isFieldEmpty( vField, vMessage ){
	if (vField.val() ==""){
		alert( vMessage );
		vField.focus();
		return true;
	}
	return false;
}

function isFieldEmpty2( vField, vMessage ){
	alert(vField.value == "");
	if (vField.value == ""){
		alert( vMessage );
		vField.focus();
		return true;
	}
	return false;
}

function isInvalidField( vField, vMessage, vType ){
	switch (vType){
		case 'email':
			if (isNotEmail(vField.val())){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'numeric':
			if (isNaN(vField.val())){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'time':
			if (!IsValidTime(vField.val())){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'illegal chars':
			if (ContainsIllegalChars(vField.val())){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'illegal chars2':
			if (ContainsIllegalChars2(vField.val())){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
			
		case 'null':
			if(vField == null) {
				alert(vMessage);
				return true;
			}
			break;
	}
	return false;
}


function isInvalidField2( vField, vMessage, vType ){
	switch (vType){
		case 'email':
			if (isNotEmail(vField.value)){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'numeric':
			if (isNaN(vField.value)){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'time':
			if (!IsValidTime(vField.value)){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'illegal chars':
			if (ContainsIllegalChars(vField.value)){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
		case 'illegal chars2':
			if (ContainsIllegalChars2(vField.value)){
				alert(vMessage);
				vField.focus();
				return true;
			}
			break;
			
		case 'null':
			if(vField == null) {
				alert(vMessage);
				return true;
			}
			break;
	}
	return false;
}

function DateIsInvalid( vYY, vMM, vDD, vMessage){
	if (!IsValidDate(vYY.val(), vMM.val(), vDD.val())){
		alert(vMessage);
		vDD.focus();
		return true;
	}
	return false;
}

function FieldsNotEqual( vField1, vField2, vMessage ){
	if (vField1.val() != vField2.val()){
		alert(vMessage);
		vField2.focus();
		return true;
	}
}

function isNotEmail( emailAdd ){
	var exclude = /[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check = /@[\w\-]+\./;
	var checkend = /\.[a-zA-Z]{2,3}$/;
	if(((emailAdd.search(exclude) != -1)||(emailAdd.search(check)) == -1)||(emailAdd.search(checkend) == -1)){ return true; }

	else{ return false; }
}

function ContainsIllegalChars( vChar ){
	var valid = "abcdefghijklmnopqrstuvwxyz-_/,.'@0123456789"
	var ok = "yes";
	var temp;
	for (var i=0; i<vChar.length; i++) {
		temp = "" + vChar.substring(i, i+1);
		if (temp!=" "){ if (valid.indexOf(temp.toLowerCase()) == "-1"){ ok = "no"; } }
	}
	if (ok == "no") { return true; }
	return false;
}

function ContainsIllegalChars2( vChar ){
	var valid = "abcdefghijklmnopqrstuvwxyz-_0123456789"
	var ok = "yes";
	var temp;
	for (var i=0; i<vChar.length; i++) {
		temp = "" + vChar.substring(i, i+1);
		if (temp!=" "){ if (valid.indexOf(temp.toLowerCase()) == "-1"){ ok = "no"; } }
	}
	if (ok == "no") { return true; }
	return false;
}

function keyCheck(eventObj, obj)
{
	var keyCode;
	if (document.all){ keyCode=eventObj.keyCode; }
	else{ keyCode=eventObj.which; }
	var str=obj.val();
	if(keyCode==46){ if (str.indexOf(".")>0){ return false; } }
	if((keyCode<48 || keyCode >58)   &&   (keyCode != 46)){ return false; }
	return true;
}

function keyCheck2(eventObj, obj)
{
	var keyCode;
	if (document.all){ keyCode=eventObj.keyCode; }
	else{ keyCode=eventObj.which; }
	var str=obj.val();
	if(keyCode==46){ return false; }
	if((keyCode<48 || keyCode >58)   &&   (keyCode != 46)){ return false; }
	return true;
}

function keyCheck3(eventObj, obj)
{
	var keyCode;
	if (document.all){ keyCode=eventObj.keyCode; }
	else{ keyCode=eventObj.which; }
	var str=obj.val();	
	if(keyCode==45){ return true; }
	if(keyCode==46){ return false; }
	if((keyCode<48 || keyCode >58)   &&   (keyCode != 46)){ return false; }
	return true;
}

function keyCheckQ(eventObj, obj)
{
	var keyCode;
	if (document.all){ keyCode=eventObj.keyCode; }
	else{ keyCode=eventObj.which; }
	var str=obj.val();
	if(keyCode==34){ return false; } 
	if(keyCode==39){ return false; } 
	return true;
}

var monthName = makeArray(12);
monthName[1] = "January";
monthName[2] = "February";
monthName[3] = "March";
monthName[4] = "April";
monthName[5] = "May";
monthName[6] = "June";
monthName[7] = "July";
monthName[8] = "August";
monthName[9] = "September";
monthName[10] = "October";
monthName[11] = "November";
monthName[12] = "December";

var daysInMonth = makeArray(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;

function daysInFebruary (year){ return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 ); }

function IsValidDate(year, month, day) {
	var intYear = parseInt(year);
	var intMonth = parseInt(month);
	var intDay = parseInt(day);
	if ((intMonth != 2) && (intDay > daysInMonth[intMonth])) return false; 
	if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;
	return true;
}

function makeArray(n) { for (var i = 1; i <= n; i++) { this[i] = 0; } return this }

function isValidRange(fromDatemm, fromDatedd, fromDateyy, fromDatetime, toDatemm, toDatedd, toDateyy, toDatetime) {
	var fromDate = monthName[fromDatemm]+" "+fromDatedd+", "+fromDateyy+" "+fromDatetime;
	var toDate = monthName[toDatemm]+" "+toDatedd+", "+toDateyy+" "+toDatetime;
	if (Date.parse(fromDate) < Date.parse(toDate)){ return true; }
	else{ return false; }
}

function IsValidTime(timeStr) {
	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
	var matchArray = timeStr.match(timePat);
	if (matchArray == null){ return false; }
	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }

	if (hour < 0  || hour > 23) { return false; }
	if (hour <= 12 && ampm == null) { return false; }
	if (minute<0 || minute > 59) { return false; }
	if (second != null && (second < 0 || second > 59)) { return false; }
	return true;
}

function goto( vLocation ){ location.href = vLocation; }

function CheckAll()
{
	for (var i=0;i<document.thisForm.uid.length;i++)
	{
		var e = document.thisForm.uid[i];
		if ((e.name != 'allbox') && (e.type=='checkbox'))
		e.checked = document.thisForm.allbox.checked;
	}
}
function CheckCheckAll()
{
	var TotalBoxes = 0;
	var TotalOn = 0;
	for (var i=0;i<document.thisForm.uid.length;i++)
	{
		var e = document.thisForm.uid[i];
		if ((e.name != 'allbox') && (e.type=='checkbox'))
		{
			TotalBoxes++;
		if (e.checked)
		{
			TotalOn++;
		}
		}
	}
	if (TotalBoxes==TotalOn)
	{document.thisForm.allbox.checked=true;}
	else
	{document.thisForm.allbox.checked=false;}
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function addOption(elementId, Text, Value) {
	// Create an Option object
	var opt = document.createElement("option");
	var listBox = document.getElementById(elementId);
	// Assign text and value to Option object
	opt.text = Text;
	opt.value = Value;
	// Add an Option object to Drop Down/List Box
	listBox.options.add(opt);	
}

function removeAllOptions(elementId) {
	var listBox = document.getElementById(elementId);
	for (var i = 0; i < listBox.options.length; i++) {
		listBox.remove(i);
	}
}

function CountWords (this_field, show_word_count, show_char_count) {
	
	if (show_word_count == null) {
		show_word_count = true;
	}
	
	if (show_char_count == null) {
		show_char_count = false;
	}
	
	var char_count = this_field.val().length;
	var fullStr = this_field.val() + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	
	if (fullStr.length <2) {
		word_count = 0;
	}
	
	if (word_count == 1) {
		wordOrWords = " word";
	} else {
		wordOrWords = " words";
	}
	
	if (char_count == 1) {
		charOrChars = " character";
	} else {
		charOrChars = " characters";
	}
	
	if (show_word_count & show_char_count) {
		
		alert ("Word Count:\n" + "    " + word_count + wordOrWords + "\n" + "    " + char_count + charOrChars);
	
	} else {
		
		if (show_word_count) {
			alert ("Word Count:  " + word_count + wordOrWords);
		} else {
			if (show_char_count) {
				alert ("Character Count:  " + char_count + charOrChars);
			  }
		}
	}
	return word_count;
}
