function validateCurrency( strValue)  {
  var objRegExp = /(^\$\d{1,3}(,\d{3})*\.\d{2}$)|(^\(\$\d{1,3}(,\d{3})*\.\d{2}\)$)/;

  return objRegExp.test( strValue );
}

function validateTime ( strValue ) {
  var objRegExp = /^([1-9]|1[0-2]):[0-5]\d(:[0-5]\d(\.\d{1,3})?)?$/;

  return objRegExp.test( strValue );

}

function validateState (strValue ) {

var objRegExp = /^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i; 

  return objRegExp.test(strValue);
}

function validateSSN( strValue ) {

	var objRegExp  = /^\d{3}\-\d{2}\-\d{4}$/;
 
  	return objRegExp.test(strValue);

}

function validateFileType( strValue) 
{
	var objRegExp = /(\.tif$)|(\.tiff$)|(\.jpeg$)|(\.jpg$)|(\.gif$)|(\.pjpeg$)|(\.bmp$)/i;
	return objRegExp.test(strValue);
}

function validateGifFile( strValue) 
{
	var objRegExp = /\.gif/i;
	return objRegExp.test(strValue);
}

function validateJpgFile( strValue) 
{
	var objRegExp = /\.jpg/i;
	return objRegExp.test(strValue);
}

function validatePdfFile( strValue) 
{
	var objRegExp = /\.pdf/i;
	return objRegExp.test(strValue);
}

function validateDocFile( strValue) 
{
	var objRegExp = /\.doc/i;
	return objRegExp.test(strValue);
}

function validateEmail( strValue) {

	var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i;
  	return objRegExp.test(strValue);
}

function validateUSPhone( strValue ) {
  	var objRegExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;
 
  	return objRegExp.test(strValue); 
}

function  validateNumeric( strValue ) {
  	var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
 
  	return objRegExp.test(strValue);
}

function validateInteger( strValue ) {
  	var objRegExp  = /(^-?\d\d*$)/;
 
  	return objRegExp.test(strValue);
}

function validateNotEmpty( strValue ) {

   	var strTemp = strValue;
   	strTemp = trimAll(strTemp);
   	if(strTemp.length > 0){
     	return true;
   	}  
   	return false;
}

function validateCcnNotEmpty( strValue ) {

   	var strTemp = strValue;
   	strTemp = trimAll(strTemp);
   	if(strTemp.length > 11){
     	return true;
   	}  
   	return false;
}

function validatePassLength( strValue ) {

   	var strTemp = strValue;
   	strTemp = trimAll(strTemp);
   	if((strTemp.length > 4) && (strTemp.length < 21))
   	{
     	return true;
   	}  
   	return false;
}

/*
* num validateCreditCard(string)
*
* Input: A credit card number
* Output: A boolean (1 or 0) indicating whether this
* is a valid credit card number using the LUHN
*	formula
*
*/
function validateCreditCard(strVal)
{
	var RevNum = new String(strVal);
        	
    RevNum = Reverse(RevNum);
        	
    var total = new Number(0);
        	
    for ( var i = 0; i < RevNum.length; i += 1 )

    {
    		var temp = 0;
        if (i % 2)

        {
        		temp = RevNum.substr(i, 1) * 2;
            if (temp >= 10)

            {
            		var splitstring = new String(temp);
                temp = parseInt(splitstring.substr(0, 1)) + parseInt(splitstring.substr(1, 1));
            }
        }
        else
        		temp = RevNum.substr(i, 1);
                    			
       total += parseInt(temp); 
    }
                    	
    // if there's no remainder, we return 1 (true)
    return (total % 10) ? 0 : 1;
}

/*
* str Reverse(str)
* Input: A string
* Output: The string, reversed
*/
function Reverse(strToReverse)

{
  var strRev = new String;
  var i = strToReverse.length;
                    	
  while (i--)
     strRev += strToReverse.charAt(i);
                    	
  return strRev;
}

function validateUSZip( strValue ) {

var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
 
  return objRegExp.test(strValue);
}

function validateUSDate( strValue ) {

  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
  if(!objRegExp.test(strValue))
    return false; 
  else{
    var arrayDate = strValue.split(RegExp.$1); 
	var intDay = parseInt(arrayDate[1],10); 
	var intYear = parseInt(arrayDate[2],10);
    var intMonth = parseInt(arrayDate[0],10);
	
	if(intMonth > 12 || intMonth < 1) {
		return false;
	}
	
    var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
  
    if(arrayLookup[arrayDate[0]] != null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
        return true; //found in lookup table, good date
    }
		
	var booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
    if( ((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <=28)) && intDay !=0)
      return true; 
  }
  return false; 
}

// Validate a credit card expiration date which can
// be in the format of either M/YY, MM/YY, M/YYYY,
// MM/YYYY, or MMYY.
function validateExpDate( strValue ) {
  var objRegExp = /^\d{1,2}\/(\d{2}|\d{4})$/;
  var intMonth;
  if(!objRegExp.test(strValue)) {
  	objRegExp = /^\d{4}$/;
    if(!objRegExp.test(strValue)) return false; 
    // Date is 0603 format.
    intMonth = parseInt(strValue.substring(0,2)); 
  }
  else{
    // Date is delimited format (MM/YY, M/YYYY, etc.)
    var arrayDate = strValue.split("/"); 
    var intYear = parseInt(arrayDate[1],10);
    // Make a crude check on the year.
    if (intYear < 2 || (intYear > 99 && intYear < 2002)) return false;
    intMonth = parseInt(arrayDate[0],10); 
  }
  // Check the month to make sure it's kosher.
  if(intMonth > 12 || intMonth < 1) return false;
  return true;
}

function validateValue( strValue, strMatchPattern ) {

var objRegExp = new RegExp( strMatchPattern);
 
 return objRegExp.test(strValue);
}


function rightTrim( strValue ) {

var objRegExp = /^([\w\W]*)(\b\s*)$/;
 
      if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '$1');
    }
  return strValue;
}

function leftTrim( strValue ) {

var objRegExp = /^(\s*)(\b[\w\W]*)$/;
 
      if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}

function trimAll( strValue ) {

 var objRegExp = /^(\s*)$/;

    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }
    
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}

function removeCurrency( strValue ) {

  var objRegExp = /\(/;
  var strMinus = '';
 
  if(objRegExp.test(strValue)){
    strMinus = '-';
  }
  
  objRegExp = /\)|\(|[,]/g;
  strValue = strValue.replace(objRegExp,'');
  if(strValue.indexOf('$') >= 0){
    strValue = strValue.substring(1, strValue.length);
  }
  return strMinus + strValue;
}

function addCurrency( strValue ) {

  var objRegExp = /-?[0-9]+\.[0-9]{2}$/;
   
    if( objRegExp.test(strValue)) {
      objRegExp.compile('^-');
      strValue = addCommas(strValue);
      if (objRegExp.test(strValue)){
        strValue = '($' + strValue.replace(objRegExp,'') + ')';
      }
      else {
        strValue = '$' + strValue;
      }
      return  strValue;
    }
    else
      return strValue;
}

function removeCommas( strValue ) {

  var objRegExp = /,/g; 
 
  return strValue.replace(objRegExp,'');
}

function addCommas( strValue ) {

  var objRegExp  = new RegExp('(-?[0-9]+)([0-9]{3})'); 

    while(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '$1,$2');
    }
  return strValue;
}

function removeCharacters( strValue, strMatchPattern ) {

 var objRegExp =  new RegExp( strMatchPattern, 'gi' );
 
  return strValue.replace(objRegExp,'');
}

function checkCookies()
{
	var oneDay= 1*24*60*60*1000;
	var expDate = new Date();
	expDate.setTime (expDate.getTime() + oneDay);
	var cookieExpires = expDate.toGMTString();
	//set your temprorary cookie
	document.cookie="verifyCookie=test; expires="+cookieExpires
	//check to see if ANY cookies exist, including the one you just set
	if (!document.cookie.length>0)
	{
		alert("\nYour browser doesn't support cookies.\n" +
			  "or they are currently disables.\n");
		return false;
	}

	//now be a good Netizen and clear out the unwanted stuff
	document.cookie="verifyCookie=CLEAR; expires=Sun, 09-Nov-97 01:00:00 GMT";
}

function autoTab(input,len, e) 
{
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) 
	{
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input)+1) % input.form.length].focus();
	}
			
	function containsElement(arr, ele) 
	{
		var found = false, index = 0;
		while(!found && index < arr.length)
			if(arr[index] == ele)
				found = true;
			else
				index++;
		return found;
	}
		
	function getIndex(input) 
	{
		var index = -1, i = 0, found = false;
		while (i < input.form.length && index == -1)
			if (input.form[i] == input)index = i;
				else i++;
		return index;
	}
	return true;
}

function basketAction(act)
{
	document.frm.bskAct.value = act;
	document.frm.submit();
}

function checkPhoneFaxX(strValue1, strValue2, strValue3)
{
	if (validateNotEmpty(strValue1) && strValue1.length == 3)
	{
		if (!validateNotEmpty(strValue2) || strValue2.length < 3 || !validateNotEmpty(strValue3)
										 || strValue3.length < 4)
			return false;
		else
		{
			if (!validateNumeric(strValue1) || !validateNumeric(strValue2) 
											|| !validateNumeric(strValue3))
				return false; 
		}
	}
	else if (!validateNotEmpty(strValue1))
	{
		if (validateNotEmpty(strValue2) || validateNotEmpty(strValue3))
			return false;
	}
	else if (strValue1.length < 3)
	{
		return false;
	}
	return true;
}

function checkPhoneFax(strValue1, strValue2, strValue3)
{
	if (validateNotEmpty(strValue1) || validateNotEmpty(strValue2)
									|| validateNotEmpty(strValue3))
	{
		if (!validateNumeric(strValue1) || strValue1.length != 3)
			return false;
		if (!validateNumeric(strValue2) || strValue2.length != 3)
			return false;
		if (!validateNumeric(strValue3) || strValue3.length != 4)
			return false;
		return true;
	}
	return true;
}

function checkPhone(strValue1, strValue2, strValue3)
{
	if (!validateNumeric(strValue1) || strValue1.length != 3)
		return false;
	if (!validateNumeric(strValue2) || strValue2.length != 3)
		return false;
	if (!validateNumeric(strValue3) || strValue3.length != 4)
		return false;
	return true;
}
 
function jumpTo(URL_List){
   var URL = URL_List.options[URL_List.selectedIndex].value;
   window.location.href = URL;
}

function MDM_openWindow(theURL,winName,features) 
{ 
  	var _W=window.open(theURL,winName,features);
	  _W.focus();
      _W.moveTo(50,50); 
} 

function myopen(url,name) 
{
   	popupWindow=open(url,name,'','width=175,height=75');
    if (popupWindow.opener == null) 
    	popupWindow.opener = self;
}