
/*****************************************************************************
*
*Purpose			: Methods to Validate Input Values
*Created By			: SHRAFP4
*Created Date		: 09-June-2006
*
*Modification Log	:
*-------------------------
*Date			Modified By			Description
*-------		-----------------	----------------
*
******************************************************************************/

var controlNameOnBlur="";

function DoAction(actionValue, page)
{
	document.forms[0].action = page;
	document.forms[0].HdnOAction.value = actionValue;
	document.forms[0].submit();
}
	
function Reset(frm)
{
	document.forms[frm].reset();
	return false;
}

function UnderConstruction()
{
	alert("Under construction!!");
}

function doAdminSubmit(frmName,hdnValue)
{
	if ((hdnValue != 'Add') && (hdnValue!='Show') && (hdnValue!=''))
	{
		if (validateForm(frmName))
		{
			var intX=0;	
			if (hdnValue=='Delete')
				if(!confirm("Do you really want to Delete?"))
					intX=intX+1;
					//return false;
			if ((hdnValue=='Modify')||(hdnValue=='Update'))
				if(!confirm("Do you want to Save the Changes?"))
					intX=intX+1;
					//return false;
			if (hdnValue=='Save')
				if(!confirm("Do you want to Save ?"))
					intX=intX+1;
					//return false;
			if(intX==0)
			{
				document.forms[frmName].HdnOAction.value=hdnValue;
				document.forms[frmName].submit();
			}
		}
	}
	else
	{
		document.forms[frmName].HdnOAction.value=hdnValue;
		document.forms[frmName].submit();
	}
}

function callContinuePrompt()
{
	if(confirm("Do you want to Continue ?"))
		return true;
	else
		return false;
}

function callAddPrompt()
{
	if(confirm("Do you want to Save ?"))
		return true;
	else
		return false;
}

function callUpdatePrompt()
{
	if(confirm("Do you want to Update ?"))
		return true;
	else
		return false;
}

function callDeletePrompt()
{
	if(confirm("Do you want to Delete ?"))
		return true;
	else
		return false;
}

function validateControlOnBlur(frmName,controlName)
{
	controlNameOnBlur = controlName;
	validateForm(frmName);
}

function validateForm(frmName)
{
	var intInputCount;
	var ctlName;
	var ctlType;
	var ctlReq;
	var ctlValue;
	var ctlErrName;	
	var ctlObj;

	var errInt;
	var errFlt;
	var errTxt;
	var errDat;
	var  booSpace;
	var tempChr;
	var tempCtlValue;

	booSpace=false;

	errInt="Not a Valid Number - ";
	errFlt="Not a Valid Number - ";
	errTxt="Invalid Characters in - ";
	errDat="Please enter valid date in - ";
	errNum="Not a Valid Number - ";	
	
	intInputCount=document.forms[frmName].elements.length;

	var allow = true;
	
	for(var i=0;i<intInputCount;i++)
	{
		if(controlNameOnBlur!='')
		{
			if(controlNameOnBlur !=document.forms[frmName].elements[i].name)
				allow = false;
			else
				allow = true;
		}
		if(allow)
		{
			ctlName=document.forms[frmName].elements[i].name;
			ctlObj=document.forms[frmName].elements[i].type;

			if (ctlObj.indexOf("select")>=0 )
			{
				document.forms[frmName].elements[i].options[document.forms[frmName].elements[i].selectedIndex].value=document.forms[frmName].elements[i].options[document.forms[frmName].elements[i].selectedIndex].value.replace("'","`");
			}
			else
			{
				//RSQ--->replace_single_quote_
				RSQ_ctlValue=document.forms[frmName].elements[i].value;
				var RSQ_tempStr;
				RSQ_tempStr="";
				for (var RSQ_sl=0;RSQ_sl<RSQ_ctlValue.length;RSQ_sl++)
				{
					RSQ_tempStr=RSQ_tempStr+RSQ_ctlValue.substring(RSQ_sl,RSQ_sl+1).replace("'","`");
				}
				document.forms[frmName].elements[i].value=RSQ_tempStr;
			}

			ctlType=ctlName.substring(0,3);
			ctlReq=ctlName.substring(3,4);
			ctlErrName=ctlName.substring(4,ctlName.length);	
			var tempStr;

			tempStr="";
			for (var sl=0;sl<ctlErrName.length;sl++)
			{
				tempStr=tempStr+ctlErrName.substring(sl, sl+1).replace("_"," ");
			}
	
			ctlErrName=tempStr;

			ctlErrName="\'"+ctlErrName+"\'";

			if (ctlObj.indexOf("select")>=0 )
			{
				if(document.forms[frmName].elements[i].selectedIndex >=0)
				{
					ctlValue=document.forms[frmName].elements[i].options[document.forms[frmName].elements[i].selectedIndex].value;
				}		
			}
			else
				ctlValue=document.forms[frmName].elements[i].value;	

			// trim 

			tempCtlValue='';
			booSpace=false;
			for (var sl=0;sl<ctlValue.length;sl++)
			{
				tempChr=ctlValue.substring(sl, sl+1);
				if (tempChr!=' ')
				{
					booSpace=true;
					tempCtlValue=tempCtlValue+tempChr;
				}
				else
					if (booSpace)
						tempCtlValue=tempCtlValue+tempChr;
			}
	
			ctlValue=tempCtlValue;

			if (ctlObj.indexOf("select")>=0 )
			{
				document.forms[frmName].elements[i].options[document.forms[frmName].elements[i].selectedIndex].value=ctlValue;
			}
			else
				document.forms[frmName].elements[i].value=ctlValue;
			
			// end of trim

			if(controlNameOnBlur=='')
			{
				if ((ctlReq=="R") && (ctlObj!="hidden"))
				{
					if(ctlValue.length<=0)
					{
						alert('Please enter valid '+ctlErrName);
						//alert(ctlErrName+' is Required'); 
						document.forms[frmName].elements[i].focus();
						return false;	
					}
				}
			}

			//		if ((ctlReq=="O") && (ctlObj.indexOf("select")>=0 ))	// if Select
			//				return true;	

			if(ctlValue.length>0)
			{		
				switch (ctlType)
				{
					case "Txt": 
						if (!isSHText(ctlValue))
						{
							alert(errTxt+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Int":
						if (!isSHInteger(ctlValue))
						{
							alert(errInt+ctlErrName);
							document.forms[frmName].elements[i].value='0';
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Flt":
						if (!isSHFloat(ctlValue))
						{
							alert(errNum+ctlErrName);
							document.forms[frmName].elements[i].value='0';
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Neg":
						if (!isSHNegative(ctlValue))
						{
							alert(errNum+ctlErrName);
							if (isNaN(document.forms[frmName].elements[i].value))
							{
								return false;
							}
							else
							{
								break ;
							}
							document.forms[frmName].elements[i].value='0';
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Alh":
						if(isSHAlphaNumericHyphen(ctlValue)&&ctlValue.length<3)
						{
							alert("You must enter atleast 3 characters in - "+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						if (!isSHAlphaNumericHyphen(ctlValue))
						{
							alert("Only alphanumeric and Hyphen characters are allowed in - "+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Alu":
						if(isSHAlphaNumericUnderscore(ctlValue)&&ctlValue.length<3)
						{
							alert("You must enter atleast 3 characters in - "+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						if (!isSHAlphaNumericUnderscore(ctlValue))
						{
							alert("Only alphanumeric and Underscore characters are allowed in - "+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Pwd":
						if(isSHPassword(ctlValue)&&ctlValue.length<3)
						{
							alert("You must enter atleast 3 characters in - "+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						if (!isSHPassword(ctlValue))
						{
							alert("Only Alphanumeric characters and Special Characters {*, $, #, -, _, =, +, @, (, ), ?, /} are allowed in - "+ctlErrName);
							document.forms[frmName].elements[i].focus();
						return false;
						}
						break;
					case "Eml":
						if (!isSHEMail(ctlValue))
						{
							alert(errTxt+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Tel":
						if (!isSHTelephone(ctlValue))
						{
							alert(errTxt+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Fax":
						if (!isSHFax(ctlValue))
						{
							alert(errTxt+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Pin":
						if (!isSHPinCode(ctlValue))
						{
							alert(errTxt+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Dat":
						if (ctlValue.indexOf("-") == -1)
						{
							if (!isSHDate(ctlValue,document.forms[frmName].elements['G_HdnODatFlag'].value))
							{
								alert(errDat+ctlErrName);
								document.forms[frmName].elements[i].focus();
								return false;
							}
						}
						else
						{
								alert(errTxt+ctlErrName);
								document.forms[frmName].elements[i].focus();
								return false;
						}
						break;
					case "Amt":
						if (!isSHAmount(ctlValue,ctlErrName,document.forms[frmName].elements[i].name))
						{
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "URL":
						if (ctlValue.substring(0,7).toUpperCase()!="HTTP://")
						{
							alert(ctlErrName+" should start with http://");
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Fld":
						if (!isSHFolderName(ctlValue,ctlErrName))
						{
							alert("Only alphanumeric characters are allowed in - "+ctlErrName);
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "Per":
						if (!isSHPercentage(frmName,ctlValue,i))
						{
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					case "WWI":
						if (!isSHWWI(frmName,ctlValue,i,ctlErrName))
						{
							document.forms[frmName].elements[i].focus();
							return false;
						}
						break;
					default :
						break;
				}
			}
		}
	}
	controlNameOnBlur="";
	return true;
}

function isSHPercentage(FormName,a,i)
{
	if(a.length!=0)
	{
		z=a.length;
		for(m=0;m<=z;m++)
		{
			if(a.charAt(0)==" ")
			{
				a=a.substring(1,a.length);
				var y=a.length;
				if(y==0)
				{
					alert("Percentage is required");
					document.forms[FormName].elements[i].focus();
					return false;
				}
			}
		}
		if(isNaN(a))
		{
			alert("Sorry !! "+a+" is not a number !!");
			document.forms[FormName].elements[i].focus();
			return false;
		}
		else
		{
			if(a.charAt(0)=="-")
			{
				alert("Sorry !! Negative numbers are not allowed !!");
				document.forms[FormName].elements[i].focus();
				return false;
			}
			else if(a.charAt(0)=="+")
			{
				alert("Sorry !! Special characters are not allowed !!");
				document.forms[FormName].elements[i].focus();
				return false;
			}
			else if(parseFloat(document.forms[FormName].elements[i].value)>100)
			{
				alert("Sorry !! Percentage cannot be greater than 100!!");
				document.forms[FormName].elements[i].focus();
				return false;
			}
			else
			{
				if(a.indexOf(".")!=-1)
				{
					var b=a.substring(a.indexOf(".")+1,a.length);
					if(b.length>2)
					{
					 	alert("In the decimal part you have entered more than two digits!! \n Please round it !!");
						document.forms[FormName].elements[i].focus();
						return false;
					}
					else
					{
					    //allow to proceed
						return true;
					}
				}		
				else
				{
				    //allow to proceed
					return true;
				}
			}
		}	
	}
}

function isSHAmount(strVal,ctlErrName,FullName)
{
	if (isNaN(strVal)==true)
	{
		alert("Invalid Character Entered !! Please Check Up - in "+ctlErrName);
		//return false;
	}
	else if(strVal.charAt(0)=="-")
	{
		alert("Negative numbers are not allowed - in "+ctlErrName);
		return false;
	}
	else if(strVal.charAt(0)=="+")
	{
		alert("Special characters are not allowed - in "+ctlErrName);
		return false;
	}
	else if(strVal.charAt(0)=="0" && strVal.substring(0,strVal.indexOf(".")).length >1 && strVal.indexOf(".")!=-1)
	{
		alert("Sorry !! first digit cannot be zero!! - in "+ctlErrName);
		return false;
	}
	else if(strVal.indexOf(".")!=-1)
	{
		var b=strVal.substring(strVal.indexOf(".")+1,strVal.length);
		if(b.length>2)
		{
			alert("In the paise part you have entered more than two digits - in "+ctlErrName);
			return false;
		}
		else if(FullName.charAt(3)=="R" && parseFloat(strVal)<=0)
		{
			alert("Amount should be greater than zero !!");
			return false;	
		}
		else
		{
			return true;
		}
	}
	else if(FullName.charAt(3)=="R" && parseFloat(strVal)<=0)
	{
		alert("Amount should be greater than zero !!");
		return false;	
	}
	else
	{
		return true;
	}
}

function isSHInteger(strVal)
{
	var strPattern = /^[0-9]+$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHWWI(fn,strVal,wwinoI,ctlErrNameLoc)
{
	if(strVal.length!=11)
	{
		alert('Invalid -'+ctlErrNameLoc);
		document.forms[fn].elements[wwinoI].focus();
		return false ;
	}
	else
	{
		var validStr='0123456789';
		var temp;
		for (var i=0; i<strVal.length; i++)
		{
			temp =  strVal.substring(i,i+1);
			if (validStr.indexOf(temp) == -1)
				return false ;
		}
		return true ;
	}
}

function isSHNegative(strVal)
{
	var strPattern = /^[-]{1}[0-9]+[\.]?[0-9]{1,2}$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHFloat(strVal)
{
	var strPattern = /^[0-9]+[\.]?[0-9]{1,2}$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHTelephone(strVal)
{
	var strPattern = /^[0-9\(\)\[\]+-]*$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
/*

0123456789()+ []-
	var validStr=' 0123456789-';
	var temp;
	for (var i=0; i<strVal.length; i++)
	{
		temp = strVal.substring(i, i+1);
		if (validStr.indexOf(temp) == -1)
			return false ;
	}
	if (strVal.substring(1)=="-")
		return false;
	return true ;
	*/
}


function isSHPinCode(strVal)
{
	var strPattern = /^[0-9a-zA-Z]+$/; 	/*/^[0-9]{1,6}$/; */
	if(strVal.match(strPattern))
		return true;
	return true;
}

function isSHFax(strVal)
{
	var validStr=' 0123456789-';
	var temp;
	for (var i=0; i<strVal.length; i++)
	{
		temp =  strVal.substring(i, i+1);
		if (validStr.indexOf(temp) == -1)
			return false ;
	}
	return true ;
}

function isSHFolderName(strVal,ctlErrName)
{
	var strPattern = /^[0-9a-zA-Z]+$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHText(strVal)
{
	var strPattern = /^[^\!\"\%\^\'\`\~\|\=]+$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHPassword(strVal)
{
	var strPattern = /^[^\"\'\`\~\\\&\<\%\{\}\[\]\s]+$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHAlphaNumericHyphen(strVal)
{
	var strPattern = /^[0-9a-zA-Z]+[-]?[0-9a-zA-Z]+$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHAlphaNumericUnderscore(strVal)
{
	var strPattern = /^[0-9a-zA-Z]+[_]?[0-9a-zA-Z]+$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
}

function isSHEMail(strVal)
{
	var strPattern = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
	if(strVal.match(strPattern))
		return true;
	return false;
	
	/*
	var validStr='0123456789-abcdefghijklmnopqrstuvwxyz_@.ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var temp;
    var fieldVal;
	for (var i=0; i<strVal.length; i++)
	{
		temp =  strVal.substring(i, i+1);
		if (validStr.indexOf(temp) == -1)
			return false;
	}

    fieldVal = strVal;
	
	if(fieldVal.indexOf('@')!=fieldVal.lastIndexOf('@'))
		return false;
     
    if (fieldVal.indexOf("@") <= 1 || fieldVal.indexOf(".") < 2 || fieldVal.length<6)
    {              
        return false;
    }
	if(fieldVal.length-(fieldVal.indexOf(".")+1)==0) 
		return false;
    
    return true;
    */
}

function isSHDate(strVal,dateFormat)
{
	var val=strVal;
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2,4})$/;
    var matchArray = val.match(datePat);
	if (matchArray == null)
		return false;

	// for dd/mm/yyyy format. For mm/dd/yyyy format month=matchArray[1] and day=matchArray[3]

	if (dateFormat.toLowerCase()=="dd/mm/yyyy")
	{
		month = matchArray[3];	// month
		day = matchArray[1];	// day
	}
	else
	{
		month = matchArray[1];	// month
		day = matchArray[3];	// day
	}
	
	year = matchArray[4];
	
	if(parseFloat(year)==0)
		return false;
	
	if (month < 1 || month > 12)
		return false;

	if (day < 1 || day > 31)
		return false;

	if ((month==4 || month==6 || month==9 || month==11) && day==31)
		return false;

	if (month == 2)
	{
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap))
			return false;
	}
    if(year.length < 4) 
	{
		return false;
	}
	return true;
}

function TextareaLengthChecker(FmName,ObjName,Max)
{
	var temp=document.forms[FmName].elements[ObjName].value;
	if (temp.length>Max)
	{
		if (ObjName.substring(3,4)=="R")	
		{	
			alert(ObjName.substring(ObjName.indexOf('R')+1,ObjName.length)+'  ' + 'should not exceed' +' ' + Max +' ' + 'Characters');
			document.forms[FmName].elements[ObjName].focus();
			return false;
		}	
		else
		{
			alert(ObjName.substring(ObjName.indexOf('O')+1,ObjName.length)+' ' +'should not exceed' +' ' + Max +' ' + 'Characters');
			document.forms[FmName].elements[ObjName].focus();
			return false;
		}	
	}	
	else
		return true;				
}

function maxpic(page,width,height)
{
	var myBars='directories=no,location=no,menubar=no,status=no';
	myBars+=',titlebar=no,toolbar=no';
	var myOptions='scrollbars=yes,width='+width+',height='+height+',resizable=no';
	var myFeatures=myBars+' '+myOptions;
	newWin = open(page,'myOptions',myFeatures);
}

function OpenNormalWindow(page,width,height)
{
//	var myBars='directories=yes,location=yes,menubar=yes,status=yes';
//	myBars+=',titlebar=yes,toolbar=yes';
//	var myOptions='width='+width+'left=0,top=0,height='+height;
//	var myFeatures=myOptions;
//	newWin = open(page,'myOptions',myFeatures);
	newWin = open(page,'_blank','directories=yes,location=yes,menubar=yes,status=yes,titlebar=yes,toolbar=yes,width='+width+',height='+height+',left=0,top=0');
}

function validate(form)
{
var email=alltrim(form.EmlREmail_Address.value);
	if(email=="" ||email.indexOf('@')==-1||email.indexOf('.')==-1)
	{
		alert("Please enter valid Email");
		form.Email.focus();
		return false;
	}
return true;
}
