	function validate_TEXT(obj, sFieldName)
	{
		//Commented for Netscape Crash Error - Have to be replaced
		var exp = /^(\S|\s)+$/
		return checkExp(exp, obj, "The " + sFieldName + " must be filled out")
		return true;
	}

	function validate_NAME(obj, sFieldName)
	{
		//Commented for Netscape Crash Error - Have to be replaced
		var exp = /^[a-zA-Z]+(\S|\s)*[0-9a-zA-Z]+$/
		return checkExp(exp, obj, "Please enter a valid " + sFieldName )
		return true;
	}

	function validate_USERNAME(obj, sFieldName)
	{
		var exp = /^[a-zA-Z]+\w{4,}[0-9a-zA-Z]+$/
		return checkExp(exp, obj, "The username must be at least 6 characters long (it accepts a-zA-Z0-9 and _ only)")
	}

	function validate_CODE(obj, sFieldName)
	{
		var exp = /^[a-zA-Z]+[\w|\-]{4,}[0-9a-zA-Z]+$/
		return checkExp(exp, obj, "Please enter valid code")
	}

	function validate_ZIP(obj, sFieldName)
	{
		var exp = /^\d{5}$/
		return checkExp(exp, obj, "Please enter a valid zip code (5 digits only)")
	}

	function validate_PHONE(obj, sFieldName)
	{
		var exp = /^((\(\d{3}\) ?)|(\d{3}(-| )?))\d{3}(-| )?\d{4}$/
		return checkExp(exp, obj, "Please enter a valid US phone number (10 digits)")
	}
	
	function validate_EMAIL(obj, sFieldName)
	{
		var exp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
		return checkExp(exp, obj, "Please enter a valid E-Mail address")
	}
	
	function validate_UPC(obj, sFieldName)
	{
		var exp = /(^\d{6}$)|(^\d{12}$)/
		return checkExp(exp, obj, "Please enter a valid UPC code (6 or 12 digits)")
	}

	function validate_SSN(obj, sFieldName)
	{
		var exp = /^\d{3}-\d{2}-\d{4}$/
		return checkExp(exp, obj, "Please enter a valid tax ID or SSN in the format nnn-nn-nnnn")
	}

	function validate_WEIGHT(obj, sFieldName)
	{
		if (validate_DOUBLE(obj, sFieldName))
			if (obj.value <= 0)
			{
				alert("Please enter a number greater than zero for the weight")
				obj.focus();
				return false
			}
			else
				return true
		else
			return false
	}
	
	function validate_CURRENCY(obj, sFieldName)
	{
		obj.value = obj.value.replace("$", "")
		//obj.value = obj.value.replace(",", "")
		obj.value = strReplace(obj.value,",","")
		
		if (validate_DOUBLE(obj, sFieldName))
			if (obj.value < 0)
			{
				alert("Please enter a number greater or equal to zero for the " + sFieldName)
				obj.focus();	
				return false
			}
			else
			{
				obj.value = parseInt((parseFloat(obj.value) + 0.005) * 100) / 100
				return true
			}
		else
			return false		
	}	
	
	function validate_INTEGER(obj, sFieldName)
	{
		var val
		
		if (parseInt(obj.value)<0)
			val = parseInt(parseInt(obj.value) - 0.5)
		else if(parseInt(obj.value)==0)
			val = 0
		else
			val = parseInt(parseInt(obj.value) + 0.5)
		
		if (isNaN(val) || obj.value == "")
		{
			alert("Please enter a numeric " + sFieldName + " value")
			obj.focus();	
			return false
		}
		else
		{
			obj.value = val
			return true
		}
	}

	function validate_DOUBLE(obj, sFieldName)
	{
		var val = parseFloat(strReplace(obj.value,",",""))
		
		if (isNaN(val) || obj.value == "")
		{
			alert("Please enter a numeric value for the " + sFieldName)
			obj.focus();	
			return false
		}

		obj.value = val
		return true
	}
	
	function validate_DATE(obj, sFieldName)
	{
  		var testDate=new Date(Date.parse(obj.value));
		
		if(!testDate.getYear())
		{
		    alert("Please enter a valid " + sFieldName);
			//obj.focus();
		    return false;
		}
		
		if(parseInt(testDate.getFullYear())< 1925 || parseInt(testDate.getFullYear()) > 2100)
		{
		    alert("Please enter a valid " + sFieldName);
			//obj.focus();
		    return false;
		}
		
		obj.value = testDate.getMonth() + 1 + "/" + testDate.getDate() + "/" + testDate.getFullYear()
		return true
	}
	
	function validate_DROPDOWN(obj, sFieldName)
	{	
		if (obj.selectedIndex == 0)
		{
			alert("Please select an option for the " + sFieldName)
			obj.focus();
			return false
		}
		
		return true
	}
	
	function validate_CUSTOM(obj)
	{
		return true
	}

	function validate_FILE(obj, sFieldName)
	{
		if (obj.value == "")
		{
			alert("Please browse for a file")
			obj.focus();
			return false
		}
		
		return true
	}

	function validate_TEXTAREA(obj, maxlen)
	{
		if (validate_TEXT(obj))
			if (obj.value.length > parseInt(maxlen))
			{
				alert("The maximum length for this text field is " + maxlen + " characters.\nPlease shorten the amount of text you entered.")
				obj.focus();
				return false
			}
			else
				return true
		else
			return false
	}

	function validate_CHECKBOX(obj, sFieldName)
	{
		return true
	}
	
	function validate_CUSTOM(obj)
	{
		return true
	}

	function validate_PASSWORD(obj)
	{
		var exp = /^([0-9a-zA-Z]){4,}$/
		return checkExp(exp, obj, "The password must be at least 4 characters long (letters and numbers only)")
	}
	
	function validate_CONFIRMPASSWORD(obj1,obj2)
	{
		if (obj1.value!=obj2.value)
		{
		alert("Please confirm your password");
		obj2.focus();
		return false;
		}
		return true;

	}

	function validate_HIDDEN(obj, sFieldName)
	{
		return true
	}		
	
	function trim(value)
	{
   		var exp = /^(\s*)(\S*)(\s*$)/;
   		if (exp.test(value)) 
   			value = value.replace(exp, '$2');
   			
   		return value;
   	}

	function checkExp(exp, obj, message)
	{
		obj.value = trim(obj.value)
				
		if (!exp.exec(obj.value))
		{
			alert(message);
			obj.focus();
			return false;
		}		
		
		return true;
	}

	function strReplace(strVal,strFrom,strTo)
	{
		var i;
		var strRes='';
		for(i=0;i<strVal.length;i++)		{
			ch=strVal.substring(i,i+1);
			strRes+=ch==strFrom?strTo:ch
		}
		return strRes;		}

	//============= CREDIT CARD VALIDATION =====================//
	function validateCC(CCno,CCname) 
	// CCno is the card number
	// CCname is the name of the issuer of the card 
	{
	  Cno=CCno; 
	  Cno = Cno.split(' ').join('');
	  CCname = strReplace(CCname,' ','');
	  CCname = CCname.toLowerCase().split(' ').join();
	  
	  switch (CCname)
	  { 
	     case "visa" :
	        if (((Cno.length == 16) || (Cno.length == 13)) && (Cno.substring(0,1) == 4))
	        { 
	           return DOmod10(Cno); 
	        } 
	        return false; 
	     case "mastercard" : 
	          chr1 = Cno.substring(0,1); 
	          chr2 = Cno.substring(1,2); 
	          if ((Cno.length == 16) && (chr1 == 5) && ((chr2 >= 1) && (chr2 <= 5))) 
	         {
	             return DOmod10(Cno);
	         } 
	         return false; 
	      case "amex", "americanexpress" : 
	         chr1 = Cno.substring(0,1); 
	         chr2 = Cno.substring(1,2); 
	         if ((Cno.length == 15) && (chr1 == 3) && ((chr2 == 4) || (chr2 == 7))) 
	         {
	            return DOmod10(Cno); 
	         }
	         return false; 
	     case "dinersclub", "diner'\sclub" : 
	        chr1 = Cno.substring(0,1); 
	        chr2 = Cno.substring(1,2); 
	        if ((Cno.length == 14) && (chr1 == 3) && ((chr2 == 0) || (chr2 == 6) || (chr2 == 8))) 
	        {
	            return DOmod10(Cno); 
	        }
	        return false; 
	     case "discover" : 
	        chr1to4 = Cno.substring(0,4); 
	        if ((Cno.length == 16) && (chr1to4 == "6011")) 
	       {
	           return DOmod10(Cno);
	       }
	       return false; 
	  }
	  return false; 
	} 

	function DOmod10(numstr) 
	{ 
	if (numstr.length > 19) 
	{
	  return (false); 
	}
	tot = 0;
	len = numstr.length; 
	mult = 1;
	Totval = 0;
	for (i = 0; i < len; i++)
	{ 
	  chrval = numstr.substring(len-i-1,len-i); 
	  Totval = parseInt(chrval ,10)*mult; 
	  if (Totval >= 10) 
	  {
	     tot += (Totval % 10) + 1; 
	  }
	  else 
	  {
	     tot += Totval; 
	  } 
	  if (mult == 1)
	  { 
	     mult++; 
	  }
	  else 
	  {
	     mult--; 
	  }
	} 
	if ((tot % 10) == 0) 
	{
	  return true; 
	}
	else
	{ 
	  return false; 
	} 
	}

	function CheckFolderName(sString) {
		
		if(sString =="")
		{
			alert("Please enter a valid URL name.");
			return false;
		}
		//Modified the Javascript for the Invalid Characters in the Folder Name
		valid_name = /[^a-zA-z0-9_-]/;
		if (sString.match(valid_name) != null)
		{
			alert("Please use only letters, numbers, '-' or '_' in your URL name");
			return false;
		}
		return true;
	}
function fnOpenWin(strPath, intWidth, intHeight)
{
	var intleft = parseInt(screen.width) - 800;
	intleft = intleft / 2;
	var objPopWin=window.open(strPath,'Terms',"Height="+ intHeight +",Width="+ intWidth +",top=25,left="+intleft+",toolbar=0,resizable=yes,location=0,status=0,menubar=0,scrollbars=yes")
	objPopWin.focus();
}
function validate_JAVASCRIPT(obj, sFieldName)
{
	var strData = obj.value.toLowerCase();
	if(strData.split('<script').length>1 || strData.split('</script').length>1)
	{
		alert("Please enter a valid " + sFieldName);
		obj.focus();
		return false;
	}
	return true;
}

function validate_COMPAREDATE(obj, objCur, sFieldName)
{
	var testDate=new Date(Date.parse(obj.value));
	var curDate =new Date(Date.parse(objCur.value));
	
	if(testDate > curDate)
	{
	    alert("The " + sFieldName);
		//obj.focus();
	    return false;
	}
		
	obj.value = testDate.getMonth() + 1 + "/" + testDate.getDate() + "/" + testDate.getFullYear()
	return true
}

function CheckFileName(obj, sFieldName) {	
	if(trim(obj.value) == "")
	{
		alert("Please enter a valid "+ sFieldName +".");
		obj.focus();
		return false;
	}
		
		
	valid_name = /[^a-zA-Z0-9_-]/ 			// \W matches any character other than [a-zA-z0-9_]
	if (obj.value.match(valid_name) != null)
	{
		alert("Please use only letters, numbers, '-' or '_' in "+ sFieldName +"!");
		obj.focus();
		return false;
	}
		
	return true
}	

