//------------------------------------------------------------------------------------------
//COOKIES
//------------------------------------------------------------------------------------------
function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name)
{
	createCookie(name,"",-1);
}

//------------------------------------------------------------------------------------------
//DECODE A URL
//------------------------------------------------------------------------------------------
function decode(str) {
     return unescape(str.replace(/\+/g, " "));
}

//------------------------------------------------------------------------------------------
//ALTERNATIVE FOR VBScript LTRIM() RTRIM() FUNCTIONS
//------------------------------------------------------------------------------------------	
function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '')
}

function trimAll(sString) 
	{
	while (sString.substring(0,1) == ' ')
		{
		sString = sString.substring(1, sString.length);
		}
	while (sString.substring(sString.length-1, sString.length) == ' ')
		{
		sString = sString.substring(0,sString.length-1);
		}
	return sString;
}


function isFunction(a) {
    return typeof a == 'function';
}

function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}

//------------------------------------------------------------------------------------------
//ALTERNATIVE FOR VBScript LEFT() AND RIGHT()
//------------------------------------------------------------------------------------------	
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 formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}
	


//------------------------------------------------------------------------------------------
//CHECK A FORM FOR REQUIRED FIELDS.  ADDITIONAL CHECKS CAN BE MADE
//ON AN INDIVIDUAL PAGE WITH pagecheck();
//
//Looks for these attribute:
//lowercase: true if needs to be lowercase
//required: true if must be filled in
//elemtype: numeric, text, date (will check the validity of the type only, not he contents - this should be done in pagecheck(); )
//friendlyname: a friendly name to display
//------------------------------------------------------------------------------------------	
function CheckForm(myform) {
var theForm = myform
	var alertReqText = ''
	var alertDataText = ''
	var strText = ''
	var i = 0
	
	for(i=0; i<theForm.elements.length; i++){
		var myelement = theForm.elements[i]
		var mytype = myelement.type
		var val = trim(myelement.value)
		var req = myelement.getAttribute('required')
		var lower = myelement.getAttribute('lowercase')
		var elemtype = myelement.getAttribute('elemtype')
		var friendlyname = myelement.getAttribute('friendlyname')

		
		if ((mytype != 'password') && (mytype != 'select-one') && (mytype != 'button')) {
			val = val.toUpperCase()
			myelement.value=val
		}else {
			val = val
		}
		
		if (req == 'true') {
			switch (mytype) {
			case "checkbox":
				if (myelement.checked != true) {
					alertReqText = alertReqText + ' ' + friendlyname + ' \n'
					if (isObject(document.getElementById('spn' + myelement.name)) ==true) {
						document.getElementById('spn' + myelement.name).style.background = '#FFE1E1';
						}
				}
				else {
					myelement.style.background = 'white';
				}
				break;
			default:
				if (val.length ==0) {
					alertReqText = alertReqText + '  ' + friendlyname + ' \n'
					myelement.style.background = '#FFE1E1';
						if (isObject(document.getElementById('div' + myelement.name)) ==true) {
							document.getElementById('div' + myelement.name).style.display = 'inline';
						}
				}
				else {
					myelement.style.background = 'white';
						if (isObject(document.getElementById('div' + myelement.name)) ==true) {
							document.getElementById('div' + myelement.name).style.display = 'none';
						}
				}
				break;
			}
		}
		else {
			if (mytype != 'button') {
				myelement.style.background = 'white';
			}
		}
		
		
		if (mytype=='text'){
			switch (elemtype) {
				case "date":
				//	if ((val.length > 0) && (!isValidDate(val))){
				
				//alert(isDate(val,"M/d/yy"));
				
				if ((val.length > 0) && (isDate(val,"M/d/y") == false)){
						alertDataText = alertDataText + '     ' + friendlyname +' is not a valid date \n\n Please check the format.  Either M/D/YYYY or MM/DD/YYYY are acceptable'
						myelement.style.background = '#FFE1E1';
					}
					break;
				case "number":
					if ((!isFinite(val)) && (val != '')){
						alertDataText = alertDataText + '     ' + friendlyname + ' must contin ONLY numeric characters \n'
						myelement.style.background = '#FFE1E1';
					}
					break;
				case "email":
					if ((val.indexOf(".") > 0) && (val.indexOf("@") > 0) && (val.length > 4)) {}
					else { 
						if (val != '') {
							alertDataText = alertDataText + '     ' + friendlyname + ' is not a valid email \n'
							myelement.style.background = '#FFE1E1';
						}
					}
					break;
				case "password":
					if (val.length < 6) {
						if (val != '') {
							alertDataText = alertDataText + '     ' + friendlyname + ' must be longer than 6 characters \n'
							myelement.style.background = '#FFE1E1';
						}
					}
					break;
			}
		}
		
	}
			
	if ((alertDataText.length > 0)||(alertReqText.length > 0)) {
		if (alertDataText.length > 0){alertDataText = '\n\n DATATYPE ERRORS \n\n' + alertDataText}
		//if (alertReqText.length > 0){alertReqText = 'REQUIRED FIELDS ARE MISSING \n\n' + alertReqText}
		if (alertReqText.length > 0){alertReqText = 'REQUIRED FIELDS ARE MISSING \n\n'}
		alert(alertReqText + alertDataText);
		return false;
	}
	else{
		return true;
			
	}
}

function isValidDate(val){
	var date=val
	date = date.toString()
	test1=(/^\d{2}[\-/]\d{2}[\-/]\d{4}$/.test(date))
	if (test1) {
		return true
	}else{
		return false
	}
}
