/**************************************************************************************************
 * script		 : 	To Check textbox, textarea, password, file, select-one, radio Not Empty.
 *			  		i.e It Contain At Least Any Character ( Only White Spaces Not Allowded )
 * param		 : 	formName - form name on which field to be checked present
 * 			  		fieldName - field name to be checked
 * 			 		msgFieldName - will replace {0} argument in alert message.
 * alert message :	{0} is required.  ( For textbox, textarea, password )
 *					Select {0}.		  ( For select-one, radio )	
  *					Browse {0}.		  ( For file ) 
 * return		 : 	true - If inValue Is Empty.
 *			  		false - If inValue  Not Empty.
 **************************************************************************************************/
 
function funChkEmpty ( formName, fieldName, msgFieldName )
{

	
	var inValue = "";
	var objMsg = funGetElementByName ( formName, 'altMsg' );
	
	fieldName = trimString (fieldName);
	msgFieldName = trimString (msgFieldName);
	
	if(fieldName == "")
	{
		//alert("ERROR : funChkEmpty => Field name is empty.");
		
		objMsg.value='ERROR : funChkEmpty => Field name is empty.';
			
		return null;
	}
	if(msgFieldName == "")
	{
		
		//alert("ERROR : funChkEmpty => Message field name is empty.");
		objMsg.value='ERROR : funChkEmpty => Message field name is empty.';
		return null;
	}
	
	var objElement = funGetElementByName ( formName, fieldName );
	
	if( objElement == null)
	{
		
		//alert("ERROR : funChkEmpty => Invalid field name  '" + fieldName + "'.");
		objMsg.value="ERROR : funChkEmpty => Invalid field name  '" + fieldName + "'.";
		return null;
	}

	if( objElement.type == 'select-one' || objElement.type == "select-multiple" )
	{
		var si = objElement.selectedIndex;
		
		if (si >= 0)
		{
			inValue = objElement.options[si].value;
			inValue = inValue.replace(/^\s+/g, '').replace(/\s+$/g, '');	
		} 
		
		if (inValue == "")
		{
			//alert("Select " + msgFieldName +".");
			objMsg.value="Select " + msgFieldName +".";
			//objElement.focus(); 
			return true;
		}
		else
			return false;
	}	
    else if (objElement.type == 'text' || objElement.type == 'textarea' || objElement.type == 'file' ||
       objElement.type == 'radio' || objElement.type == 'password') 
    {
		inValue = objElement.value;
		            
		try{
		inValue = inValue.replace(/^\s+/g, '').replace(/\s+$/g, '');	
		objElement.value = inValue;		
		}
		catch(e)
		{
			
		}
		if(inValue == ""||inValue.length==0) 
		{	
			if(objElement.type == 'file')
			{
				//alert("Browse " + msgFieldName +".");			
				objMsg.value="Browse " + msgFieldName +".";
				}
			else
			{
				//alert(msgFieldName + " is required." );
				
				objMsg.value=msgFieldName + " is required.";
			}
			//objElement.focus();
			return true;
		}
		else
			return false;
	}
	else
	{
		//alert("ERROR : funChkEmpty => Not supported for field type  '" + objElement.type + "'.");
		objMsg.value="ERROR : funChkEmpty => Not supported for field type  '" + objElement.type + "'.";
		return null;
	}		
}
 

/**************************************************************************************************
 * script		 : 	To Check textbox, textarea, password contains atleaset .
 *			  		i.e It Contain At Least Any Character ( Only White Spaces Not Allowded )
 * param		 : 	formName - form name on which field to be checked present
 * 			  		fieldName - field name to be checked
 * 			 		msgFieldName - will replace {0} argument in alert message.
 * alert message :	{0} is required.  ( For textbox, textarea, password )
 *					Select {0}.		  ( For select-one, radio )	
  *					Browse {0}.		  ( For file )
 * return		 : 	true - If inValue Is Empty.
 *			  		false - If inValue  Not Empty.
 **************************************************************************************************/

function funChkMinLength ( formName, fieldName , msgFieldName , minLength )
{
	fieldName = trimString (fieldName);
	msgFieldName = trimString (msgFieldName);
	minLength = parseInt(minLength);
	var objMsg = funGetElementByName ( formName, 'altMsg' );
	
	if(fieldName == "")
	{
		//alert("ERROR : funChkEmpty => Field name is empty.");
		objMsg.value='"ERROR : funChkEmpty => Field name is empty."';
		return null;
	}
	if(msgFieldName == "")
	{
		//alert("ERROR : funChkEmpty => Message field name is empty.");
		objMsg.value="ERROR : funChkEmpty => Message field name is empty.";
		return null;
	}	
	
	var objElement = funGetElementByName ( formName, fieldName);
	
	if( objElement == null)
	{
		//alert("ERROR : funChkMinLength => Invalid field name  '" + fieldName + "'.");
		objMsg.value="ERROR : funChkMinLength => Invalid field name  '" + fieldName + "'.";
		return null;
	}
	
	if (objElement.type == 'text' || objElement.type == 'textarea' || objElement.type == 'password') 
    {
       	inValue = objElement.value;
		inValue = inValue.replace(/^\s+/g, '').replace(/\s+$/g, '');	
		
		if(inValue.length!=0 && inValue.length < minLength) 
		{	
			//alert(msgFieldName + " can not be less than " + minLength + " characters.");
			objMsg.value=msgFieldName + " can not be less than " + minLength + " characters.";
			//objElement.focus();
			return false;
		}
		else
			return true;
	}
	else
	{
		//alert("ERROR : funChkMinLength => Not supported for field type  '" + objElement.type + "'.");
		objMsg.value="ERROR : funChkMinLength => Not supported for field type  '" + objElement.type + "'.";
		return null;
	}	
}

function funChkMaxLength ( formName, fieldName ,msgFieldName,  maxLength )
{
	fieldName = trimString (fieldName);
	msgFieldName = trimString (msgFieldName);
	var objMsg = funGetElementByName ( formName, 'altMsg' );
	if(fieldName == "")
	{
		//alert("ERROR : funChkEmpty => Field name is empty.");
		objMsg.value="ERROR : funChkEmpty => Field name is empty.";
		return null;
	}
	if(msgFieldName == "")
	{
		//alert("ERROR : funChkEmpty => Message field name is empty.");
		objMsg.value="ERROR : funChkEmpty => Message field name is empty.";
		return null;
	}
	
	var objElement = funGetElementByName ( formName, fieldName);
	
	if( objElement == null)
	{
		//alert("ERROR : funChkMaxLength => Invalid field name  '" + fieldName + "'.");
		objMsg.value="ERROR : funChkMaxLength => Invalid field name  '" + fieldName + "'.";
		return null;
	}
	
	if (objElement.type == 'text' || objElement.type == 'textarea' || objElement.type == 'password') 
    {
		inValue = objElement.value;
		inValue = inValue.replace(/^\s+/g, '').replace(/\s+$/g, '');	
		if(inValue.length > maxLength) 
		{	
			//alert(msgFieldName + " can not be greater than " + maxLength + " characters.");
			objMsg.value=msgFieldName + " can not be greater than " + maxLength + " characters.";
			//objElement.focus();
			return false;
		}
		else
			return true;
	}
	else
	{
		//alert("ERROR : funChkMaxLength => Not supported for field type  '" + objElement.type + "'.");
		objMsg.value="ERROR : funChkMaxLength => Not supported for field type  '" + objElement.type + "'.";
		return null;
	}
}

function funChkMask ( formName, fieldName ,msgFieldName, mask )
{

	fieldName = trimString (fieldName);
	msgFieldName = trimString (msgFieldName);
	var objMsg = funGetElementByName ( formName, 'altMsg' );
	if(fieldName == "")
	{
		//alert("ERROR : funChkEmpty => Field name is empty.");
		objMsg.value="ERROR : funChkEmpty => Field name is empty.";
		return null;
	}
	if(msgFieldName == "")
	{
		//alert("ERROR : funChkEmpty => Message field name is empty.");
		objMsg.value="ERROR : funChkEmpty => Message field name is empty.";
		return null;
	}
		
	var objElement = funGetElementByName ( formName, fieldName);
	
	if( objElement == null)
	{
		//alert("ERROR : funChkMask => Invalid field name  '" + fieldName + "'.");
		objMsg.value="ERROR : funChkMask => Invalid field name  '" + fieldName + "'.";
		return null;
	}
	
	if (objElement.type == 'text' || objElement.type == 'textarea' || objElement.type == 'password') 
    {
    
	    inValue = objElement.value;
		if( inValue!=''&& !mask.exec(inValue) ) 
		{	
			
			//alert( msgFieldName + " invalid.");
			
			objMsg.value= msgFieldName + " invalid.";
			//objElement.focus();
			return false;
		}
		else
			return true;
	}
	else
	{
		//alert("ERROR : funChkMask => Not supported for field type  '" + objElement.type + "'.");
		objMsg.value="ERROR : funChkMask => Not supported for field type  '" + objElement.type + "'.";
		return null;
	}
}
/*
function funChkEmailId ( formName, fieldName ,msgFieldName)
{
	fieldName = trimString (fieldName);
	msgFieldName = trimString (msgFieldName);
	
	if(fieldName == "")
	{
		alert("ERROR : funChkEmailId => Field name is empty.");
		return null;
	}
	if(msgFieldName == "")
	{
		alert("ERROR : funChkEmailId => Message field name is empty.");
		return null;
	}
		
	var objElement = funGetElementByName ( formName, fieldName);
	
	if( objElement == null)
	{
		alert("ERROR : funChkEmailId => Invalid field name  '" + fieldName + "'.");
		return null;
	}
	
	if (objElement.type == 'text') 
    {    
	    inValue = objElement.value;
		mask = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		
		if( ! mask.exec(inValue) ) 
		{	
			alert( msgFieldName + " is an invalid e-mail address.");
			//objElement.focus();
			return false;
		}
		else
			return true;
	}
	else
	{
		alert("ERROR : funChkEmailId => Not supported for field type  '" + objElement.type + "'.");
		return null;
	}
}
*/
function trimString (inValue) 
{
	inValue = this != window ? this : inValue;
	return inValue.replace(/^\s+/, '').replace(/\s+$/, '');
}

function funGetElementByName( formName, elementName )
{
	var objArrForms = document.getElementsByTagName("form");
	var objForm = null ;
	var objElement = null ;
	
	for(i=0; i<objArrForms.length; i++)
	{
		if( objArrForms[i].name == formName )
		{
			objForm = objArrForms[i];
			break;
		}
	}
		
	if(objForm == null)		
	{	
		alert("ERROR : funGetElementByName => Invalid form name '" + formName + "'.");
		//objMsg.value="ERROR : funGetElementByName => Invalid form name '" + formName + "'.";
		return null;
	}
	
	for( i=0; i<objForm.elements.length; i++)
	{
		if(objForm.elements[i].name == elementName)
		{
			objElement =  objForm.elements[i];
			break;
		}
	}
	
	if(objElement == null)		return null;
	else					  	return objElement;	
}

function validateSSN(formName,field)
	{

		var mask=/^\d{3}-\d{2}-\d{4}$/;
		var objElement = funGetElementByName ( formName, field);
		var objMsg = funGetElementByName ( formName, 'altMsg' );
		
		if(objElement.value.length==0)
		{
			return true;
		}	
		if(!mask.test(objElement.value))
		{
			//alert('Invalid SSN. Must be in the form ###-##-####');
			objMsg.value='Invalid SSN. Must be in the form ###-##-####';
			//objElement.focus();
			return false;
		}
		return true;
	}
	
	function validateState(formName,field)
	{

		var mask=/^[a-zA-Z][a-zA-Z]$/;
		var objElement = funGetElementByName ( formName, field);
		var objMsg = funGetElementByName ( formName, 'altMsg' );
		
		if(objElement.value.length==0)
		{
			return true;
		}
		if(!mask.test(objElement.value))
		{
			//alert('Invalid State.');
			objMsg.value='Invalid State.';
			//objElement.focus();
			return false;
		}
		return true;
	}
	
	function validateZip(formName,field,fieldcountry)
	{
		var mask=/(^\d{5}$)|(^\d{5}-\d{4}$)/;
		var mask1=/(^\d{6}$)/;		
		var objElement = funGetElementByName ( formName, field);		
		var objMsg = funGetElementByName ( formName, 'altMsg' );
		var objCountry = funGetElementByName ( formName, fieldcountry);
		if(objElement.value==' '||objElement.value.length==0)
		{
			return true;
		}
		if(objCountry.value.toUpperCase()=="INDIA")
		{
			if(!mask1.test(objElement.value))
			{
				//alert('Invalid Zip Code. Must be in the form : \n######');			
				objMsg.value='Invalid Zip Code. Must be in the form : \n######';
				//objElement.focus();
				return false;
			}
		}
		else
		{
			if(!mask.test(objElement.value))
			{
				//alert('Invalid Zip Code. Must be in the form : \n##### or\n#####-####');
				objMsg.value='Invalid Zip Code. Must be in the form : \n##### or\n#####-####';
				//objElement.focus();				
				return false;
			}			
		}
		
		return true;
	}
	
	
	
	function validatePhoneExtNum( formName,field)
	{

		var mask=/^\d{1,5}$/;
		var objElement = funGetElementByName ( formName, field);
		var objMsg = funGetElementByName ( formName, 'altMsg' );
		if(objElement.value.length==0)
		{
			return true;
		}
		if(objElement.value!=null && !mask.test(objElement.value))
		{
			//alert('Invalid Ext Number. Must be in the form #####');
			objMsg.value='Invalid Ext Number. Must be in the form #####';
			//objElement.focus();
			return false;
		}
		return true;
	}
	
	function validatePhoneNum(formName,field,type)
	{

		var mask1=/^\d{3}-\d{3}-\d{4}$/;
		var mask2= /^\(\d{3}\) \d{3}-\d{4}$/;
		var mask3= /^\(\d{3}\)\d{3}-\d{4}$/;		
		var mask4=/^\+\d{2} \d{3} \d{3} \d{4}$/;
		var objElement = funGetElementByName ( formName, field);
		var objMsg = funGetElementByName ( formName, 'altMsg' );
	if(objElement.value.length==0)
	{
		return true;
	}
		if(mask1.test(objElement.value))
		{
			return true;
		}	
		else if(mask2.test(objElement.value))
		{
			return true;
		}	
		else if(mask3.test(objElement.value))
		{
			return true;
		}	
		else if(mask4.test(objElement.value))
		{
			return true;
		}	
		//alert(type + ' must be in form: \n###-###-#### or\n(###) ###-#### or\n+## ### ### #### for international.');
		objMsg.value=type + ' must be in form: \n###-###-#### or\n(###) ###-#### or\n+## ### ### #### for international.';
		//objElement.focus();
		return false;
	}
	
	
	
	function validateField(field,fieldname,com,min,max)
	{
		var userfield = field;
		var user = userfield.value;
		var objMsg = funGetElementByName ( formName, 'altMsg' );
		if(com == 1 || (user.length > 0) )
		{
			if(user.length<min)
			{
				//alert(fieldname + ' Name should not be less than ' + min + ' characters');
				objMsg.value=fieldname + ' Name should not be less than ' + min + ' characters';
				//userfield.select();
				return false;
			}
			if(user.length>max)
			{
				//alert(fieldname + ' Name should not be more than ' + max + ' characters');
				objMsg.value=fieldname + ' Name should not be more than ' + max + ' characters';
				//userfield.select();
				return false;
			}
		}
		return true;
	}	
			
			
	function validateEmailid(emailfield)
	{
		var emailval = emailfield.value
		var objMsg = funGetElementByName ( formName, 'altMsg' );
		var mask=/^([a-zA-Z])+([\.a-zA-Z0-9_-])*@[a-z]+([a-zA-Z0-9])+(\.[a-zA-Z]+)+$/;

		if(!mask.test(emailfield.value))
		{
			//alert('Invalid E-mail ID');
			objMsg.value='Invalid E-mail ID';
			//objElement.focus();
			return false;
		}
		return true;
}

function validateDate(formName,field,title,dtfrmt)
{
	var objElement = funGetElementByName ( formName, field);
	var objMsg = funGetElementByName ( formName, 'altMsg' );
	var dtval = objElement.value;
	if(dtval == '')
	{
		//alert("Date can't be empty.");
		//objMsg.value="Date can't be empty.";
		//objElement.focus();
		objMsg.value=title+" : Invaild";
		return true;
	}
	else if(dtval.length > 0 && dtval.length<10)
	{
		objMsg.value=title+" : Invaild";	
		return false;
	}
	else{

		var startDate_arr = dtval.split("-");
		
		if(dtfrmt=='MM-DD-YYYY') {
			day=startDate_arr[1];
			month=startDate_arr[0];
			year=startDate_arr[2];
		}
		else if(dtfrmt=='DD-MM-YYYY')
		{
			day=startDate_arr[0];
			month=startDate_arr[1];
			year=startDate_arr[2];
		}	
		else if(dtfrmt=='YYYY-MM-DD')
		{
			day=startDate_arr[2];
			month=startDate_arr[1];
			year=startDate_arr[0];
		}
		
		if( month <= 0 || month > 12)
		{
			//alert('Month must be between 1 to 12');	
			objMsg.value=title+" : Month must be between 1 to 12";
			//objElement.focus();				
			return false;			
		}
		else if( day <= 0 || day > 31)
		{
			//alert('Date must be between 1 to 31');	
			//field.select();	
			objMsg.value=title+" : Date must be between 1 to 31";
			//objElement.focus();				
			return false;			
		}
		else if(!(year >=1900 && year<=3000 ))
		{
			//alert('Year must be between 1900 to 3000');	
			//field.select();	
			objMsg.value=title+" : Year must be between 1900 to 3000";
			//objElement.focus();		
			return false;			
		}
		
	    var startdate = new Date(year,month,day);
	    return true;
	}
	return false;
}

function CompareDates(formName,field,field2,birthday,today)

{
	
	var objMsg = funGetElementByName ( formName, 'altMsg' );
   
    
  
   var str1  = birthday;

   var str2  = today;

   var dt1   = parseInt(str1.substring(0,2),10);

   var mon1  = parseInt(str1.substring(3,5),10);

   var yr1   = parseInt(str1.substring(6,10),10);

   var dt2   = parseInt(str2.substring(0,2),10);

   var mon2  = parseInt(str2.substring(3,5),10);

   var yr2   = parseInt(str2.substring(6,10),10);
	if(dt1.length==1)
	{
		dt1="0"+dt1;
	}
	if(mon1.length==1)
	{
		mon1="0"+mon1;
	}
   var date1 = new Date(yr1, mon1, dt1);
	if(dt2.length==1)
	{
		dt2="0"+dt2;
	}
	if(mon2.length==1)
	{
		mon2="0"+mon2;
	}
   var date2 = new Date(yr2, mon2, dt2);
   
//   alert("birthday="+ date1+" today"+date2);
   if(date1>date2)
   {
      objMsg.value=field+" cannot be greater than "+field2;
      return false;
   }

   else

   {

     return true;

   }

} 




