/*
	Includes the following Functions

	CheckParameter_hasSelectedandNotBlank
	CheckParameter_hasSelected

	CheckParameter_isSet 
	CheckParameter_isSame (Compare strings - password verify)

	CheckParameter_isNaboveZero
	CheckParameter_isNbelowMax
	CheckParameter_isNaN
	CheckParameter_isNaboveZero

	CheckParameter_isNLength 

	CheckParameter_isNaEmail

	CheckParameter_isNaURL -- Check http://, https://
	CheckParameter_isNaDisplayURL 

	CheckParameter_isNaDate
	CheckParameter_isBeforeNow

	CheckParameter_ResetErrorText
	CheckParameter_SetErrorText

	isValidDate()
	isValidURL()
	isValidEmail()
*/

function CheckParameter_ResetErrorText (sErrorSpan) {
	if (document.all) {
		document.all[sErrorSpan].innerHTML = '';
	}
	else {
		document.getElementById(sErrorSpan).innerHTML = '';
	}
}

function CheckParameter_SetErrorText (sErrorSpan, sErrorMessage) {
	if (document.all) {
		document.all[sErrorSpan].innerHTML = sErrorMessage;
	}
	else {
		document.getElementById(sErrorSpan).innerHTML = sErrorMessage;
	}
}

function CheckParameter_isBeforeNow(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (!isValidDate(eval('document.'+sFormName+'.'+sParameter).value, 'W', 'F')) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make sure '+sAttribute+' is a date in the future.');
		bErrorFound = true;
	}
	else {
		if (document.all) {
			document.all[sErrorSpan].innerHTML = '';
		}
		else {
			document.getElementById(sErrorSpan).innerHTML = ''
		}
	}
	return bErrorFound;
}
function CheckParameter_isNaDate(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (!isValidDate(eval('document.'+sFormName+'.'+sParameter).value, 'W', 'A')) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make sure '+sAttribute+' is a valid date.');
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}
	return bErrorFound;
}
function CheckParameter_isNaURL(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if ((!isValidURL(eval('document.'+sFormName+'.'+sParameter).value)) && eval('document.'+sFormName+'.'+sParameter).value.indexOf('http://') == -1 && eval('document.'+sFormName+'.'+sParameter).value.indexOf('https://') == -1) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make '+sAttribute+' a valid url including the protocol.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isNaDisplayURL(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if ((!isValidURL(eval('document.'+sFormName+'.'+sParameter).value)) || eval('document.'+sFormName+'.'+sParameter).value.indexOf('http://') > -1 || eval('document.'+sFormName+'.'+sParameter).value.indexOf('https://') > -1) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make '+sAttribute+' a valid url not including the protocol.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isNaEmail(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (!isValidEmail(eval('document.'+sFormName+'.'+sParameter).value)) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make '+sAttribute+' a valid email address.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isNLength(sFormName, sParameter, sErrorSpan, sAttribute, lStringLength) {
	var bErrorFound = false;

	if (eval('document.'+sFormName+'.'+sParameter).value.length > lStringLength) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make sure '+sAttribute+' is under ' + lStringLength + ' characters long.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isNaN(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (isNaN(eval('document.'+sFormName+'.'+sParameter).value)) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make sure '+sAttribute+' is a valid number.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isNaboveZero(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (parseFloat(eval('document.'+sFormName+'.'+sParameter).value) <= 0) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please set a '+sAttribute+'.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isNbelowMax(sFormName, sParameter, lMax, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (parseFloat(eval('document.'+sFormName+'.'+sParameter).value) >= parseFloat(lMax)) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make sure '+sAttribute+' is below max (' + parseFloat(lMax) + ').');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isSet(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (eval('document.'+sFormName+'.'+sParameter).value == '') {
		CheckParameter_SetErrorText (sErrorSpan, 'Please set a '+sAttribute+'.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_isSame(sFormName, sParameter, sParameter2, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (eval('document.'+sFormName+'.'+sParameter).value != eval('document.'+sFormName+'.'+sParameter2).value) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please make sure '+sAttribute+' is correct.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		eval('document.'+sFormName+'.'+sParameter).select();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_hasSelected(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (eval('document.'+sFormName+'.'+sParameter).selectedIndex == -1) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please set a '+sAttribute+'.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}
function CheckParameter_hasSelectedandNotBlank(sFormName, sParameter, sErrorSpan, sAttribute) {
	var bErrorFound = false;

	if (eval('document.'+sFormName+'.'+sParameter).selectedIndex == -1) {
		CheckParameter_SetErrorText (sErrorSpan, 'Please set a '+sAttribute+'.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		bErrorFound = true;
	}
	else if (eval('document.'+sFormName+'.'+sParameter).value == '') {
		CheckParameter_SetErrorText (sErrorSpan, 'Please set a '+sAttribute+'.');
		eval('document.'+sFormName+'.'+sParameter).focus();
		bErrorFound = true;
	}
	else {
		CheckParameter_ResetErrorText (sErrorSpan);
	}

	return bErrorFound;
}






/* Reg Exp Functions */

function stripBlanks(fld) {var result = "";for (i=0; i<fld.length; i++) {
if (fld.charAt(i) != " " || c > 0) {result += fld.charAt(i);
if (fld.charAt(i) != " ") c = result.length;}}return result.substr(0,c);}

var numb = '0123456789';

function isValid(parm,val) {if (parm == "") return true;
for (i=0; i<parm.length; i++) {if (val.indexOf(parm.charAt(i),0) == -1)
return false;}return true;}

function isNum(parm) {return isValid(parm,numb);}

var mth = new Array(' ','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function isValidDate(fld,fmt,rng) {
var dd, mm, yy;var today = new Date;var t = new Date;fld = stripBlanks(fld);
if (fld == '') return false;var d1 = fld.split('\/');
if (d1.length != 3) d1 = fld.split(' ');
if (d1.length != 3) return false;
if (fmt == 'u' || fmt == 'U') {
  dd = d1[1]; mm = d1[0]; yy = d1[2];}
else if (fmt == 'j' || fmt == 'J') {
  dd = d1[2]; mm = d1[1]; yy = d1[0];}
else if (fmt == 'w' || fmt == 'W'){
  dd = d1[0]; mm = d1[1]; yy = d1[2];}
else return false;
var n = dd.lastIndexOf('st');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('nd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('rd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('th');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf(',');
if (n > -1) dd = dd.substr(0,n);
n = mm.lastIndexOf(',');
if (n > -1) mm = mm.substr(0,n);
if (!isNum(dd)) return false;
if (!isNum(yy)) return false;
if (!isNum(mm)) {
  var nn = mm.toLowerCase();
  for (var i=1; i < 13; i++) {
    if (nn == mth[i] ||
        nn == mth[i].substr(0,3)) {mm = i; i = 13;}
  }
}
if (!isNum(mm)) return false;
dd = parseFloat(dd); mm = parseFloat(mm); yy = parseFloat(yy);
if (yy < 100) yy += 2000;
if (yy < 1582 || yy > 4881) return false;
if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
if (mm < 1 || mm > 12) return false;
if (dd < 1 || dd > day[mm-1]) return false;
t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy);
if (rng == 'p' || rng == 'P') {
if (t > today) return false;
}
else if (rng == 'f' || rng == 'F') {
if (t < today) return false;
}
else if (rng != 'a' && rng != 'A') return false;
return true;
}

function isValidURL(url){
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
}

function isValidEmail(email){
    var RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/
    if(RegExp.test(email)){
        return true;
    }else{
        return false;
    }
} 
