

/**
* JAVASCRIPT COMMON VALIDATIONS
*/
//Objects for Various Validations
var objNumber   			= 	".0123456789";
var objTelephone    		= 	"-()0123456789,+";
var objFax		    		= 	"-()0123456789,+";
var objName     			= 	" ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'- ";
var objEmail    			= 	".@0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
var objAlphaNumeric 		= 	"ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz0123456789,- :.+% ";

var objZipCode 				= 	"0123456789";
var objOnlyAlpha 			= 	"ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz ";
var objAll					=	'';

/* Max Lengths for Various Values */
var nameMaxLength			= 	50;
var companyMaxLength		= 	50; 
var phoneMaxLength			=	40;  
var faxMaxLength			=	40;  
var textareaMaxLength		=	255;
var ZipCodeMaxLength		=	7;
var EmailMaxLength			=	150;

var g_js_invalid_charac				= 	"Invalid Character!";
var g_js_error_obj_not_defined		= 	"Error: Input object not specified!";
var g_please_enter_atleast			= 	" Please enter atleast ";
var g_charac						= 	" Characters !";
var g_please_enter_less				= 	"Please enter less then ";
var g_js_error_max_input			= 	"Error: No rule/maximum length for input object specified!";


function isRule(oComp, sRule, nLength, fdecimal, minLength,fieldName,maxLength)
{
	if(fdecimal == "" || typeof(fdecimal) == "undefined")
	{
		fdecimal = false;
	}

	//If the object is not specified return false
	if (typeof(oComp) == 'undefined' || oComp == null || oComp == '')
	{
		alert(g_js_error_obj_not_defined);
		return false;
	}
	//If neither rule nor max length is specified, return false
	else if (typeof(sRule) == 'undefined' && typeof(nLength) == 'undefined')
	{
		alert(g_js_error_max_input);
		return false;
	}

	var noErrorFlg = true;
	
	if(sRule != objAll)
	{
		//If object is specified and either of rule is specified,
		if(typeof(sRule) != 'undefined' && sRule != null)
		{
			var temp;
			sRule = sRule + "";
			var discardChars = false;
			if(sRule.length > 0 && sRule.charAt(0) == "~")
			{
				sRule = sRule.substring(1);
				discardChars = true;
			}
	
			if(typeof(oComp) == "undefined" || typeof(sRule) == "undefined")
				return false;
	
			for (var i = 0;i < oComp.value.length;i++)
			{
				temp = oComp.value.charAt(i);
	
				if((!discardChars && sRule.indexOf(temp) == -1) || (discardChars && sRule.indexOf(temp) >= 0))
				{
					alert(g_js_invalid_charac);
					oComp.value = oComp.value.substring(0,i);// + (oComp.value.length > i ? oComp.value.substring(i+1):"");
					noErrorFlg = false;
					break;
				}
			}
		}
	}
	if(nLength)
	{
	
		if(fdecimal)
		{
			nLength -= fdecimal;
			var dp = oComp.value.indexOf(".");
			var p1;
			var p2 = "";;
			if(dp >= 0)
			{
				p1 = oComp.value.substring(0,dp);
				p2 = oComp.value.substring(dp+1);
			}
			else
			{
				p1 = oComp.value;
			}
			if(p1.length > nLength)
			{
				oComp.value = oComp.value.substring(0,nLength);
				return noErrorFlg;
			}
			for(var i = 0;i < p2.length;i++)
			{
				var ch = p2.charAt(i);
				if(ch < '0' || ch > '9')
				{
					oComp.value = p1 + "." + p2.substring(0,i);
					return noErrorFlg;
				}
			}
			if(p2.length > fdecimal)
			{
				oComp.value = p1 + "." + p2.substring(0,fdecimal);
			}
		}
		else if(oComp.value.length > nLength)
		{
			oComp.value = oComp.value.substring(0,nLength);
			//oComp.focus();
			//noErrorFlg = false;
		}
		else if(minLength && oComp.value.length < minLength)
		{
			alert(g_please_enter_atleast + minLength + g_charac);
			oComp.focus();
			noErrorFlg = false;
		}
		else if(maxLength && oComp.value.length > maxLength)
		{
			alert(g_please_enter_less + maxLength + g_charac);
			oComp.focus();
			noErrorFlg = false;
		}
	}
	return noErrorFlg;
}

function isEmail(newstr)
{
	var emailexp = /^[a-z][a-z_0-9\-\.]+@[a-z_0-9\-\.]+\.[a-z]{2,5}$/i
	//Check that the email entry is valid
	if (!emailexp.test(newstr) || newstr.indexOf("..") >= 0)
	{
		return false;
	}
	return true;
}


function ValidateForm(form_obj)
{
	
	var teststring;
	teststring=/\S/;

	if(form_obj.name && !teststring.test(form_obj.name.value))
	{
		alert("Please specify your name!");
		form_obj.name.focus();
		return false;
	}
	if(form_obj.email && !teststring.test(form_obj.email.value))
	{
		alert("Please specify your email address!");
		form_obj.email.focus();
		return false;
	}
	if(form_obj.email && teststring.test(form_obj.email.value) && !isEmail(form_obj.email.value))
	{
		alert("Please specify valid email address!");
		form_obj.email.focus();
		return false;
	}

	if(form_obj.country && !teststring.test(form_obj.country.value))
	{
		alert("Please specify your country!");
		form_obj.country.focus();
		return false;
	}
	if(form_obj.contact_number && !teststring.test(form_obj.contact_number.value))
	{
		alert("Please specify your contact number!");
		form_obj.contact_number.focus();
		return false;
	}
	if(form_obj.contact_number && form_obj.contact_number.value.length < 8)
	{
		alert("Please enter atleast 8 character in contact number!");
		form_obj.contact_number.focus();
		return false;
	}
	if(form_obj.cell && form_obj.cell.value.length > 0 && form_obj.cell.value.length < 10)
	{
		alert("Please enter atleast 10 character in cell number!");
		form_obj.contact_number.focus();
		return false;
	}
	if(form_obj.fax && form_obj.fax.value.length > 0 && form_obj.fax.value.length < 8)
	{
		alert("Please enter atleast 8 character in fax number!");
		form_obj.contact_number.focus();
		return false;
	}
	if(form_obj.document1){
	if((form_obj.document1.value.length > 3) && (!checkExecutable(form_obj.document1.value))){
		alert("Invalid File Type!!!...");
		form_obj.document1.value = "";
		form_obj.document1.focus();
		return false;
	}	
	}
	return true;
}
function checkExecutable(str) { 
   var exeRe = /^.+\.(exe|sh|bat|dll|so|ocx|ini|conf|class|au|wav|mp3)$/i; 
 
  if(exeRe.test(str)) { 
    return false; 
  } else { 
    return true; 
  } 
}

