﻿//********************************************
// JScript File : COMMAN VALIDATIONS.JS
// AUTHOR: MAHESH PATIL, AITS, MUMBAI.
// DATE OF CREATION : 25/11/2007 12:37 IST.
//********************************************

function checkMandatoryDropDown(p_objControl,p_strColumnName)
{
    if ((p_objControl.value==null) || (p_objControl.value=="") )
    {
		alert("Please select " + p_strColumnName );
        p_objControl.focus();
        return false;
    } 
    if (p_objControl.selectedIndex==0)
    {
		alert("Please select " + p_strColumnName );
        p_objControl.focus();
        return false;
    } 
    return true;
}

function checkAlphabetic(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);	
	//alert(p_objControl.value);
	if (!IsAlphabetic(p_objControl.value))
	{
		// Alerting the User that the Column being checked can contain only Alphabets
		alert(p_strColumnName + " can only contain Alphabetic Characters");
		p_objControl.focus();
		p_objControl.select();
		return false
	}
	else
	{
		return true;
	}
}



function checkMandatory(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	if ("" == p_objControl.value || null == p_objControl.value)
	{
		// Alerting the User that the Column being checked cannot be blank
		alert(p_strColumnName + " cannot be Blank");
		if (false == p_objControl.disabled)
		{
			p_objControl.focus();
		}
		return false;
	}
	else
	{
		return true;
	}
}

function checkMandatoryAlphabetic(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	if (!checkMandatory(p_objControl, p_strColumnName))
	{
		return false;
	}
	else
	{
		if (!IsAlphabetic(p_objControl.value))
		{
			// Alerting the User that the Column being checked can contain only Alphabets
			alert(p_strColumnName + " can only contain Alphabetic Characters");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
		else
		{
			return true;
		}
	}
}

function checkMandatoryAlphanumeric(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	if (!checkMandatory(p_objControl, p_strColumnName))
	{
		return false;
	}
	else
	{
		// Checking for Alphanumeric Value
		if (!IsAlphanumeric(p_objControl.value))
		{
			// Alerting the User that the Column being checked can contain only Alphabets and numbers
			alert(p_strColumnName + " can contain only Alphabets and Numbers");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
		else
		{
			return true;
		}
	}
}

function checkValidAlphanumeric(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	if (p_objControl.value != "") 
	{
	// Checking for Alphanumeric Value	
		if (!IsAlphanumeric(p_objControl.value))
		{
			// Alerting the User that the Column being checked can contain only Alphabets and numbers
			alert(p_strColumnName + " can contain only Alphabets and Numbers");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
	}
	return true;		
}

function checkMandatoryNumeric(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	if (!checkMandatory(p_objControl, p_strColumnName))
	{
		return false;
	}
	else
	{
		if (!IsNumeric(p_objControl.value))
		{
			// Alerting the User that the Column being checked can contain only numerical values
			alert(p_strColumnName + " can contain only Numbers and '.'");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
		else
		{
			return true;
		}
	}
}

function checkValidNumeric(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	// Triming to remove leading and trailing spaces
	var l_strNumber = p_objControl.value;
	var l_blnIsValidNumeric = true;
	if (null != l_strNumber)
	{
		if ("" != l_strNumber)
		{
			if (false == IsNumeric(l_strNumber))
			{
				alert(p_strColumnName + " can contain only numbers");
				p_objControl.focus();
				p_objControl.select();
				return false;
			}
		}
	}
	return true;			
}


function checkValidEmail(p_objControl)
{
	p_objControl.value = Trim(p_objControl.value);
	// Triming to remove leading and trailing spaces
	var l_strEmail = p_objControl.value;
	var l_blnIsValidEmail = true;
	if (null != l_strEmail)
	{
		if ("" != l_strEmail)
		{
			var l_intSymbolAt = l_strEmail.indexOf('@');
			var l_intLastDotAt = l_strEmail.lastIndexOf('.');
			var l_intSpaceAt = l_strEmail.indexOf(' ');
			var l_intLength = l_strEmail.length;

			// at least one @ must be present and not before position 2
			// @yellow.com : NOT valid
			// x@yellow.com : VALID
			if (l_intSymbolAt < 1 ) 
			{
				l_blnIsValidEmail = false;
			}

			// at least one . (dot) afer the @ and atleast one character is required
			// x@yellow : NOT valid
			// x.y@yellow : NOT valid
			// x@yellow.org : VALID
			if (l_intLastDotAt < l_intSymbolAt + 1) 
			{
				l_blnIsValidEmail = false;
			}

			// atleast two characters [in, com, info, ...] must occur after the last . (dot)
			// x.y@yellow. : NOT valid
			// x.y@yellow.a : NOT valid
			// x.y@yellow.ca : VALID
			if ((l_intLength - l_intLastDotAt) <= 2)
			{
				l_blnIsValidEmail = false;
			}
			
			// no empty space " " is permitted
			// x.y@yell ow.com : NOT valid
			if (l_intSpaceAt != -1) 
			{
				l_blnIsValidEmail = false;
			}
		}
	}

	if (!l_blnIsValidEmail)
	{
		// Alerting the User that the Column being checked should contain a valid email 
		alert("Enter a valid Email");
		p_objControl.focus();
		p_objControl.select();
		return false;
	}
	else 
	{
		return true;
	}
}

function checkMandatoryPhoneNo(p_objControl)
{
     if ((p_objControl.value==null)||(p_objControl.value==""))
     {
          alert("Please Enter your Phone Number");
          p_objControl.focus();
          return false;
     }
     if (checkInternationalPhone(p_objControl.value)==false)
     {
          alert("Please Enter a Valid Phone Number");
          p_objControl.focus();
          p_objControl.select();
          return false;
     }
     return true;
}



function LTrim(sTargetString)
{
	var i ;
	var len ;
	var iIndexOfNonBlank ;
	var sResultString ;
	
	len = sTargetString.length ;
	for (i=0; i < len; i++)
	    {
		if (sTargetString.charAt(i) != ' ')
		   break ;
	    }
	sResultString = sTargetString.substring(i, len) ;
	return sResultString ;
}


function RTrim(sTargetString)
{
	var i ;
	var len ;
	var iIndexOfNonBlank ;
	var sResultString ;
	
	len = sTargetString.length ;
	for (i=len-1; i>=0; i--)
	    {
		if (sTargetString.charAt(i) != ' ')
		   break ;
	    }
	sResultString = sTargetString.substring(0, i + 1) ;
	return sResultString ;
}


function Trim(sTargetString)
{
	var sResultString ;
	sResultString = LTrim(sTargetString) ;
	sResultString = RTrim(sResultString) ;
	return sResultString ;	
}



function checkMandatoryInteger(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	if (!checkMandatory(p_objControl, p_strColumnName))
	{
		return false;
	}
	else
	{
		if (!IsInteger(p_objControl.value))
		{
			// Alerting the User that the Column being checked can contain only Numerical values
			alert(p_strColumnName + " can contain only Numbers");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
		else
		{
			return true;
		}
	}
}


function checkValidInteger(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	// Triming to remove leading and trailing spaces
	var l_strNumber = p_objControl.value;
	if (null != l_strNumber)
	{
		if ("" != l_strNumber)
		{
			if (false == IsInteger(l_strNumber))
			{
				alert(p_strColumnName + " can contain only Numbers");
				p_objControl.focus();
				p_objControl.select();
				return false;
			}
		}
	}
	return true;			

}


 
function checkInternationalPhone(strPhone)
{
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;

	s=stripCharsInBag(strPhone, validWorldPhoneChars);
	return (IsInteger(s) && s.length >= minDigitsInIPhoneNumber);
}



// Function to Validate characters in Names
function IsName(p_strName)
{
	// Storing valid range of characters
	str_upperalpha = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.-";
	// Storing the length of the string
	int_length = p_strName.length ;

	// Checking values in string
	for (i=0;i<=(int_length-1);i++)
	{
		// Comparing character at current position with valid set of values
		int_pos = str_upperalpha.indexOf(p_strName.charAt(i)) ;
		if (int_pos <0)
		{
			return false ;
			break ;
		}
	}
	return true ;
}
// End of IsAddress

// Function to Validate characters in Names
function IsAddress(p_strName)
{
	// Storing valid range of characters
	str_upperalpha = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'./,#";
	// Storing the length of the string
	int_length = p_strName.length ;

	// Checking values in string
	for (i=0;i<=(int_length-1);i++)
	{
		// Comparing character at current position with valid set of values
		int_pos = str_upperalpha.indexOf(p_strName.charAt(i)) ;
		if (int_pos <0)
		{
			return false ;
			break ;
		}
	}
	return true ;
}
// End of IsAddress

// End of Scripts used in Masters

function IsAlphabetic(in_name)
{
	
	str_upperalpha = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" ;
	int_length = in_name.length ;

	
	for (i=0;i<=(int_length-1);i++)
	   {
	
    		int_pos = str_upperalpha.indexOf(in_name.charAt(i)) ;
		if (int_pos <0)
		  {
		    return false ;
		    break ;
		  }
	   }
	return true ;
}

function IsAlphanumeric(in_name)
{
	str_upperalpha = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890.&-()/\ "
	int_length = in_name.length
	
	for (i=0;i<=(int_length-1);i++)
	    {
    		int_pos = str_upperalpha.indexOf(in_name.charAt(i)) ;
    		if (int_pos <0)
       		   {
		     return false ;
		     break ;
       		   }
	    }
	return true ;
}


function IsNumeric(in_name)
{
	str_upper = "1234567890." ;
	int_length = in_name.length ;
	
	for (i=0;i<=(int_length-1);i++)
	    {
    		int_pos = str_upper.indexOf(in_name.charAt(i)) ;
		if (int_pos <0)
		  {
		    return false ;
		    break ;
		  }
	    }
	return true ;
}


function IsInteger(in_name)
{
	str_upper = "1234567890" ;
	int_length = in_name.length ;
	
	for (i=0;i<=(int_length-1);i++)
	{
    	int_pos = str_upper.indexOf(in_name.charAt(i)) ;
		if (int_pos <0)
		{
			return false ;
			break ;
		}
	}
	
	return true ;
}






function ConvertToUpperCase(p_objControl)
{
  p_objControl.value = Trim(p_objControl.value);
	if ("" != p_objControl.value || null != p_objControl.value)
		{
		 p_objControl.value= p_objControl.value.toUpperCase();
		// alert('Success');
		}
}


function checkName(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	
	
		// Checking for Name Value
		if (!IsName(p_objControl.value))
		{
			// Alerting the User that the Column being checked can contain only Names
			alert(p_strColumnName + " can contain only valid Name Characters");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
		// Valid Name Value
		else
		{
			return true;
		}
}

function checkAddress(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	
	
		// Checking for Name Value
		if (!IsAddress(p_objControl.value))
		{
			// Alerting the User that the Column being checked can contain only Names
			alert(p_strColumnName + " can contain only valid Address Characters");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
		// Valid Name Value
		else
		{
			return true;
		}
}

function checkAlphanumeric(p_objControl, p_strColumnName)
{
	p_objControl.value = Trim(p_objControl.value);
	

if (!IsAlphanumeric(p_objControl.value))
		{
			//alert("i am here")	
			// Alerting the User that the Column being checked can contain only Alphabets and numbers
			alert(p_strColumnName + " can contain only Alphabets and Numbers");
			p_objControl.focus();
			p_objControl.select();
			return false
		}
		// Valid Alphanumeric Value
		else
		{
			return true;
		}
}



function checkInValidLength(p_objControl, p_strColumnName, p_intlen)
{
	p_objControl.value = Trim(p_objControl.value);
	// Checking for particular character
	if (eval(p_objControl.value.length)!=p_intlen)
	{
		// Alerting the User that the Column being checked  has Invalid length
		alert(p_strColumnName + " length is Invalid");
		p_objControl.focus();
		p_objControl.select();
		return false
	}
	else
	{
		return true;
	}
}

		