


function isEmpty(strX)
{
	var re = /.+/;
	if(!strX.match(re)||strX==null||strX=="-1")
		{ return true; }
	return false;
}

function isPositiveInteger(strX)
{
	var re = /^\d*$/;
	strX = strX.toString();
	if(!strX.match(re))
		{ return false; }
	return true;
}

function checkNumberMin(strValue, strField, compareToValue, isReq, displayText)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
			return "Please " + displayText + " " + strField + "\n";
		else
			return '';
	}
	
	if ((isNaN (strValue)) || (strValue < compareToValue))
		return strField + " must be greater than " + compareToValue + "\n";
		
	return '';
}

function checkNumberMax(strValue, strField, compareToValue, isReq, displayText)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
			return "Please " + displayText + " " + strField + "\n";
		else
			return '';
	}
	
	if ((isNaN (strValue)) || (strValue > compareToValue))
		return strField + " must be " + compareToValue + " or less\n";
		
	return '';
}

function isNotEmpty (strValue, strField,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (validationMessage == "")
			return "Please " + displayText + " " + strField + "\n";
		else
			return validationMessage;
	}
	else
		return '';
}

function isAllDigit (strValue, strField, isReq, validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please Enter " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	if (isNaN (strValue))
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage
	}
		
	return '';
}

function isAllDigitLength (strValue, strField, strLength, isReq,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please Enter " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	if ((isNaN (strValue)) || (strValue.length != strLength))
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
		
	return '';
}

function checkLength(strValue,strField,l,displayText,validationMessage)
{
	if ((strValue == null) && (l == 0))
		return '';
	else if (strValue == null)
	{
		if (validationMessage == "")
			return "Please " + displayText + " " + strField + "\n";
		else
			return validationMessage;
	}
	else if (strValue.length != l)
	{
		if (validationMessage == "")
			return "Please Complete " + strField + "\n";
		else
			return validationMessage;
	}
	else
		return '';
}

function checkAddress(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	if (!isNaN(strValue))
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
	
	return '';
}

function checkZip(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
	
	if (strValue.length<5 || strValue.length>5)
	{
		if (validationMessage == "")
			return strField + " must be in 5 Digits\n";
		else
			return validationMessage;
	}
	
	if (!isPositiveInteger(strValue))				
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
	return '';
}

function checkPhoneComplete(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	var re = /(\(|\)|\-| |[A-Za-z]*)/g;
	strValue = strValue.replace(re,"");
	
	if (strValue.length<10)
	{
		if (validationMessage == "")
			return "Please Complete " + strField + "\n";
		else
			return validationMessage;
	}
	
	if (strValue.length>10)
	{
		if (validationMessage == "")
			return strField + " has too many digits\n";
		else
			return validationMessage;
	}
	return '';
}

function checkPositiveNum(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	if (!isPositiveInteger(strValue))
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
	if (strValue.length<intNum)
	{
		if (validationMessage == "")
			return "Please Complete " + strField + "\n";
		else
			return validationMessage;
	}
	if (strValue.length>intNum)
	{
		if (validationMessage == "")
			return strField + " has too many digits\n";
		else
			return validationMessage;
	}
	return '';
}

function checkEmail(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	var re = /^[\w-]+(\.[\w-]+)*@([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*?\.[a-zA-Z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/;
	if(!strValue.match(re))
	{ 
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
	
	return '';
}

function checkMonth(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	var re = /\b[A-Za-z]{3}\b/;
	if (isNaN(strValue))
	{
		if (!strValue.match(re))
		{
			if (validationMessage == "")
				return "Please Correct " + strField + "\n";
			else
				return validationMessage;
		}
	}
	else
	{
		re = /\b(1[0-2]|0?[1-9])\b/;
		if (!strValue.match(re))
		{
			if (validationMessage == "")
				return strField + " must be between 1 and 12\n";
			else
				return validationMessage;
		}
	}
	return '';
}

function checkDay(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	var re = /\b(0?[1-9]|[12][0-9]|3[01])\b/;
	if (isNaN(strValue))
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
	else
	{
		if (!strValue.match(re))
		{
			if (validationMessage == "")
				return strField + " must be between 1 and 31\n";
			else
				return validationMessage;
		}
	}
	return '';
}

function checkYear(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
	
	if (strValue == -2)
		return '';
		
	var re = /\b((19|20)\d{2})\b/;
	if (isNaN(strValue))
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
	else
	{
		if (!strValue.match(re))
		{
			if (validationMessage == "")
				return "Please Correct " + strField + "\n";
			else
				return validationMessage;
		}
	}
	return '';
}

function checkTimeAt(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	var re = /select/i;
	if (strValue.match(re))	
	{
		if (validationMessage == "")
			return "Please Correct " + strField + "\n";
		else
			return validationMessage;
	}
	
	return '';
}

function checkDollars(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	var re = /(\,| )/g; 
	strValue = strValue.replace(re,"");
	re = /\./g;
	if (strValue.match(re))
	{
		if (validationMessage == "")
			return strField + " must be a whole number\n";
		else
			return validationMessage;
	}
	if (isNaN(strValue))
	{
		if (validationMessage == "")
			return strField + " must be a number\n";
		else
			return validationMessage;
	}
	
	if (strValue < 0)
	{
		if (validationMessage == "")
			return strField + " must be non-negative\n";
		else
			return validationMessage;
	}
	return '';
}

function checkTrueFalse(strValue,strField,isReq,displayText,validationMessage)
{
	if ((strValue == null) || (strValue == ""))
	{
		if (isReq)
		{
			if (validationMessage == "")
				return "Please " + displayText + " " + strField + "\n";
			else
				return validationMessage;
		}
		else
			return '';
	}
		
	if (strValue!= "true")
	{
		if (validationMessage == "")
			return strField + " is required\n";
		else
			return validationMessage;
	}
	
	return '';
}

function clickButton(e, buttonid)
{ 
      var bt = document.getElementById(buttonid); 
      if (typeof bt == 'object')
      { 
            if(navigator.appName.indexOf("Netscape")>(-1))
            { 
                  if (e.keyCode == 13)
                  { 
                        if(bt !=  null)
                        {
                            bt.click(); 
                        }
                        return false; 
                  } 
            } 
            if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1))
            { 
                  if (event.keyCode == 13)
                  { 
                        if(bt !=  null)
                        {
                            bt.click(); 
                        }
                        return false; 
                  } 
            } 
      } 
} 

function cookieCheck (sessionQueryString, baseUrl)
{
	if ((document.cookie != null) && (document.cookie != ''))
	{
		document.getElementById ('cookieCheckHiddenField').value = 'yes';
	}
	else
	{
		document.getElementById ('cookieCheckHiddenField').value = 'no';

		if ((document.links != null) && (sessionQueryString != null) && (sessionQueryString != ""))
		{
			for (i = 0; i < document.links.length; i++)
			{
				url = document.links[i].href.toLowerCase ();
				if ((url.indexOf ("javascript:") != 0) && ((url.indexOf ("/") == 0) || (url.indexOf ("//") < 0) || (url.indexOf (baseUrl.toLowerCase ()) >= 0)))
				{
					if (url.indexOf ('?') >= 0)
						url = url + '&sessionQuery=' + sessionQueryString;
					else
						url = url + '?sessionQuery=' + sessionQueryString;
					
					document.links[i].href = url;
				}
			}
		}
	}
}

function addLoadEvent(func) 
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function') 
	{
		window.onload = func;
	} 
	else 
	{
		window.onload = function() 
		{
			oldonload();
			func();
		}
	}
}

function addUnloadEvent(func) 
{
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') 
	{
		window.onunload = func;
	} 
	else 
	{
		window.onunload = function() 
		{
			oldonunload();
			func();
		}
	}
}
function onKeyPressBlockText(e)
{
	var key = window.event ? e.keyCode : e.which;
	if(key==8)
	{
	    return true;
	}
	var keychar = String.fromCharCode(key);
	reg = /\d/;
	return reg.test(keychar);
}
//IsNumeric Validation, used for zip code box, actively prevents letter input
// version: beta
// created: 2005-08-30
// updated: 2005-08-31
// mredkj.com
function extractNumber(obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	
	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}
function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}

function textTrim(text)
{
    var	text = text.replace(/^\s\s*/, ''), ws = /\s/, i = text.length;
    while (ws.test(text.charAt(--i)));
    return text.slice(0, i + 1);
}
function focusTextBoxWithValue(tbId, initText) {
    if (tbId.value == initText) {
        tbId.value = "";
    }
}
function blurTextBoxWithValue(tbId, initText) {
    if (tbId.value == "") {
        tbId.value = initText;
    }
}
function CheckCountry(ddlCountryId, cellStateId, ddlStateId, ddlProvinceId, tbZipId, tbCanadaZipId) {
    if(document.getElementById(ddlCountryId) == null)
        return;
    if (document.getElementById(ddlCountryId).value == 'Canada') {
        document.getElementById(cellStateId).innerHTML = "Province:";
        document.getElementById(ddlStateId).style.display = "none";
        document.getElementById(tbZipId).style.display = "none";
        document.getElementById(ddlProvinceId).style.display = "block";
        document.getElementById(tbCanadaZipId).style.display = "block";
    }
    else {
        document.getElementById(cellStateId).innerHTML = "State:";
        document.getElementById(ddlProvinceId).style.display = "none";
        document.getElementById(tbCanadaZipId).style.display = "none";
        document.getElementById(ddlStateId).style.display = "block";
        document.getElementById(tbZipId).style.display = "block";
    }
}
function ValidateForm(ddlRecipientId, tbNameId, tbCityId, tbZipId, tbCanadaZipId, tbEmailId, tbMsgId, tbStateId, tbProvinceId) {
    var ddlRecipient = document.getElementById(ddlRecipientId).value;
    var tbName = document.getElementById(tbNameId).value;
    var tbCity = document.getElementById(tbCityId).value;
    var tbZip = document.getElementById(tbZipId).value;
    var tbCanadaZip = document.getElementById(tbCanadaZipId).value;
    var tbEmail = document.getElementById(tbEmailId).value;
    var tbMsg = document.getElementById(tbMsgId).value;
    var tbState = null;
    if (tbStateId) {
        tbState = document.getElementById(tbStateId).value;
    }
    var tbProvince = null;
    if (tbProvinceId) {
        tbProvince = document.getElementById(tbProvinceId).value;
    }

    tbName = tbName.replace(/^\s+|\s+$/g, "");
    tbCity = tbCity.replace(/^\s+|\s+$/g, "");
    tbZip = tbZip.replace(/^\s+|\s+$/g, "");
    tbCanadaZip = tbCanadaZip.replace(/^\s+|\s+$/g, "");

    if (ddlRecipient == null || ddlRecipient == "") {
        alert("Please Select A recipient");
        return false;
    }

    if (tbName == null || tbName == "") {
        alert("Please Enter Your Name");
        return false;
    }

    if (tbCity == null || tbCity == "") {
        alert("Please Enter Your City");
        return false;
    }

    if (tbState != null && document.getElementById(tbStateId).style.display != "none") {
        if (tbState == "") {
            alert("Please Select a State");
            return false;
        }
    }

    if (tbProvince != null && document.getElementById(tbProvinceId).style.display != "none") {
        if (tbProvince == "") {
            alert("Please Select a Province");
            return false;
        }
    }

    if (document.getElementById(tbZipId).style.display != "none") {
        if (tbZip == null || tbZip == "") {
            alert("Please Enter Your Zip");
            return false;
        }
        if (tbZip.length < 5) {
            alert("Your Zip must be in 5 digits")
            return false;
        }
        if (!tbZip.match(/^\d{5}(-\d{4})?$/)) {
            alert("Please Correct Your Zip")
            return false;
        }
    }

    if (document.getElementById(tbCanadaZipId).style.display != "none") {
        if (tbCanadaZip == null || tbCanadaZip == "") {
            alert("Please Enter Your Zip");
            return false;
        }
        if (!tbCanadaZip.match(/^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$/)) {
            alert("Please Correct Your Zip")
            return false;
        }
    }

    if (tbEmail == null || tbEmail == "") {
        alert("Please Enter Your E-Mail Address");
        return false;
    }

    if (!tbEmail.match(/^[\w-]+(\.[\w-]+)*@([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*?\.[a-zA-Z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$/)) {
        alert("Please Correct Your E-Mail Address");
        return false;
    }

    if (tbMsg == null || tbMsg == "") {
        alert("Please Enter The Message Body");
        return false;
    }

    return true;
}

