function checkinteger(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is an integer defined as
    //   having an optional leading + or -.
    //   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;

    //The first character can be + -  blank or a digit.
	check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if (check_char < 1)
	return checknumber(object_value);
    else
	return false;
    }
    
function checknumber(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a number defined as
    //   having an optional leading + or -.
    //   having at most 1 decimal point.
    //   otherwise containing only the characters 0-9.
	var start_format = " 0123456789";
	var number_format = " .0123456789-";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

    //The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0));
    //Was it a decimal?
	
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1) {
		alert("First Character should starts with number [0-9]");
		return false;
    }    
	//Remaining characters can be only . or a digit, but only one decimal.
	decimal=false;
	for (var i = 1; i < object_value.length; i++)
	{

		check_char = number_format.indexOf(object_value.charAt(i));
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{

			if (decimal)		// Second decimal.
				
				return false;
			else
				decimal = true;

		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
        // ignore leading blanks

		}
	        else if (trailing_blank) {
	        alert("Please avoid special characters between the values");
			return false;
			}
		else
			digits = true;
	}	
    //All tests passed, so...
    return true
    }    

/*function isEmail(object_value)
	{
	//Returns true if the value matches the Regular Expression passed in.
	//var regex =	/^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*\.(([A-Za-z]{2,3})|(aero|coop|info|museum|name))$/;
	var regex = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	return regex.test(object_value);

	}*/
function isCharsInBag (s, bag)
{  
	var i;
	for (i = 0; i < s.length; i++)
	{   
	    
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) return false;
	}
	return true;
}
function isStart (s)
{  
       var i=0;
       var c = s.charAt(i);
	   if (isCharsInBag(c,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')==true)
		return true;
	   else
		return false;
}
function isStartAlphaNum (s)
{  
       var i=0;
       var c = s.charAt(i);
	   if (isCharsInBag(c,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')==true)
		return true;
	   else
		return false;
}	
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
// How to Work with this function


function isEmail (s)
	{
	    var i = 1;
	    var j=0,k=0;
	    var ar=0;
	    var m=0;
	    var sLength = s.length;
	    if(!checkEmail(s)) return false;
	    while (i < sLength)
	    {
			if (s.charAt(i) == "@")j++;			
			if(Trim(s.charAt(i)) == "") k++;
			i++;
			
	    }
		i=1;
		if(k>0)
			return false;
	    while (i < sLength)
	    {
			if (s.charAt(i) == ".")ar++;			
			i++;
	    }
		m=sLength-1;
	    if (j==0) return false;
	    if (ar==0) return false;
	    if (j>1)return false;
	    if (s.charAt(0) == "@") return false;
	    if (s.charAt(0) == ".") return false;
	    if (s.charAt(m) == "@") return false;
	    if (s.charAt(m) == ".") return false;
	 		return true;
	 }

function checkzip(object_value)
    {
    if (object_value.length == 0)
        return true;
		
    if (object_value.length != 5 && object_value.length != 10)
        return false;

	// make sure first 5 digits are a valid integer
	if (object_value.charAt(0) == "-" || object_value.charAt(0) == "+")
        return false;

	if (!checkinteger(object_value.substring(0,5)))
		return false;

	if (object_value.length == 5)
		return true;
	
	// make sure

	// check if separator is either a'-' or ' '
	if (object_value.charAt(5) != "-" && object_value.charAt(5) != " ")
        return false;

	// check if last 4 digits are a valid integer
	if (object_value.charAt(6) == "-" || object_value.charAt(6) == "+")
        return false;

	return (checkinteger(object_value.substring(6,10)));
    }
    

// Date Validation
function isDate(d,m,y) {
  var obj = new Date(y,m,d);
  return obj.getDate()==d && obj.getMonth()==m && obj.getFullYear()==y;
}

function isCurrentDate(d,m,y) {
	var obj = new Date();
	var odate=y+"/"+m+"/"+d;
	var cdate=obj.getFullYear()+"/"+obj.getMonth()+"/"+obj.getDate();
	return odate<=cdate;
	//return obj.getDate()<=d && obj.getMonth()<=m && obj.getFullYear()<=y;
}
// When the user select this check box, check all

function checkBoxes (form, check) {
  for (var c = 0; c < form.elements.length; c++)
    if (form.elements[c].type == 'checkbox')
      form.elements[c].checked = check;     
}

// User When Checks the Check Box Change the Row Color
function highlightrow(chk, color, defcolor, rowid) {
	if (document.all) {
		if (chk.checked) {
			document.all.item(rowid).bgColor = color;	
		}
		else {
			document.all.item(rowid).bgColor = defcolor;
		}
	}
}

// TEXTAREA VALIDATION
function checkMaxLength (textarea, evt, maxLength) {
  if (textarea.selected && evt.shiftKey)
    // ignore shift click for select
    return true;
  var allowKey = false;
  if (textarea.selected && textarea.selectedLength > 0)
    allowKey = true;
  else {
    var keyCode = document.layers ? evt.which : evt.keyCode;
    if (keyCode < 32 && keyCode != 13)
      allowKey = true;
    else           
      allowKey = textarea.value.length < maxLength;
  }
  textarea.selected = false;
  return allowKey;
}
  function storeSelection (field) {
  if (document.all) {
    field.selected = true;
    field.selectedLength = field.createTextRange ?
        document.selection.createRange().text.length : 1;
  }
}


// Allow User to Enter the Numbers only
function validateNumber (evt) {
  var keyCode = evt.which ? evt.which : evt.keyCode;
  return keyCode < 'A'.charCodeAt() || keyCode > 'Z'.charCodeAt(); 
}

function validateAlpha (evt) {
  var keyCode = evt.which ? evt.which : evt.keyCode;
  return keyCode < '0'.charCodeAt() || keyCode > '9'.charCodeAt(); 
}

// to find the greater of 2 value 
//(Math.max(6,4))
var defaultEmptyOK;
var whitespace = " \t\n\r";
var digits = "0123456789";

function isEmpty1(s)
{   return ((s == null) || (s.length == 0))
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isAlphaNumeric (c)
{
  return ((c>="0") && (c <="9") && (c >="A") && (c <="Z"))
}

function isAlpha (c)
{
  return ((c >="A") && (c <="Z") && (c >="a") && (c <="z"))
}

function isWhitespace(s)
{   
	var i;
	
    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

        
// To Find the Field is Empty or not
function isEmpty(str) {
 // Check whether string is empty.
  for (var intLoop = 0; intLoop < str.length; intLoop++)
    if (" " != str.charAt(intLoop))
       return false;
    return true;
}

function NumericsOnly(varvalue)
{
var valid="01234567890";
     for(x=0;x < varvalue.length; ++x){
          if (valid.indexOf(varvalue.charAt(x),0)==-1){
               return(false);
          }
     }
if(varvalue.length !=0)
     return(true);
else
     return(false);
}

/*
        Name        :   RoundNDp(val,howdp)
        Purpose    :    Function to Round Numbers to N digits
        Parameter :    2 (Number to be Round,To round to how many decimal places)
        Return      :    Rounded value.
*/
function RoundNDp(val,howdp)
{
  var rndfig=Math.pow(10,howdp);
  var value=1;
  value=Math.round(val*rndfig)/rndfig;
  return value;
}

/*
        Name        :   checkcontainer(val)
        Purpose    :    Function to check valid Container Number or not
        Parameter :   1 (container number)
        Return      :    True or False.
*/
 
function checkcontainer(val)
{
 var charindex=4;
 var numindex=11;
 var charVal=val.substring(0,3);
 var digVal=val.substring(4,11);
 if(val.length != 11)
  {
    alert("Container Number should be in the format \" ABCD1234567\".\nFirst 4 letters are \"Character\" and  Last 7 are \"Digits\"");
    return false;
  }
    if(!(isCharsInBag (charVal,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")))
    {
      alert("First 4 letters must be a character");
      return false; 
   }
    if(!(isCharsInBag (digVal,"1234567890")))
    {
      alert("Last 7 letters must be a Digit");
      return false; 
     }
return true;
}

function Trim(stringval)
{
	var len;
	len = stringval.length;
 	while(stringval.substring(0,1) == " "){ //trim left
 		stringval = stringval.substring(1, len);
  		len = stringval.length;
	}
 	while(stringval.substring(len-1, len) == " "){ //trim right
 		stringval = stringval.substring(0, len-1);
  		len = stringval.length;
 	}
 	return stringval;
}

function isNull(val,field)
{
	if(Trim(val)=="")
	{
		alert("Please Enter "+field+"");
		return true;
	}
	else
	{
		return false;
	}
}

function maxLength(val,len)
{
	if(Trim(val).length>len)
		return false;
	else
		return true;
}

function checkEmail(s)
{
 var filter=/^.+@.+\..{2,3}$/

 if (filter.test(s))
    return true;
 else {
      return false;
   }
}


function isValidNumber (evt,txt,type) {
  var keyCode = evt.which ? evt.which : evt.keyCode;
  var retval=false;
  var txtval=txt.value;
  if(type=="int")
   {
      if(((keyCode >48 && keyCode < 57) || (keyCode >96 && keyCode < 105) && !isNaN(txt.value)) || miscKey(evt))
         retval=true;
        else
         retval=false;
   }
  else
   if(type=="numeric")
    {
	if(((keyCode >48 && keyCode < 57) || (keyCode >96 && keyCode < 105 || keyCode==110) && !isNaN(txt.value) ) ||  (keyCode==190 && !isNaN(txt.value)) || miscKey(evt)) 
          retval=true;
         else
           retval=false;
    }
 if(isNaN(txtval))
  {
	 txt.value=txtval.substring(0,txtval.length-1);
	 retval=false;
  }
 	 
 if(retval)
 {
   window.status=""; 
   return retval;
 }
  else
  {
   	window.status="Invalid Number";
	return false;
  }
} 

function isAlphabatic (evt,txt,type) {
  var keyCode = evt.which ? evt.which : evt.keyCode;
  var retval=false;
  var txtval=txt.value;
  if(type=="Alpha")
   {
      if((keyCode>=65 && keyCode<=90) || miscKey(evt))
         retval=true;
        else
         retval=false;
   }
  else
   if(type=="AlphaNumeric")
    {
	if((keyCode>=65 && keyCode<=90) || miscKey(evt) || (keyCode>=48 && keyCode<=57) || (keyCode >=96 && keyCode <= 105) || keyCode==110 || (keyCode>=187 && keyCode<=190) ) 
          retval=true;
         else
           retval=false;
    }
  if(retval)
 {
   window.status=""; 
   return retval;
 }
  else
  {
   	window.status="Invalid Character";
	return false;
  }
 
}

function miscKey(evt)
{
  	var keyCode = evt.which ? evt.which : evt.keyCode;
	if(keyCode==8 || keyCode==9 || keyCode==36 || keyCode==46 || keyCode==16 || keyCode==35)
		return true;
	else
		return false;
}

function maxLengthTextArea(val,maxval,evt)
{
	var keyCode = evt.which ? evt.which : evt.keyCode;
	if(val.length>maxval)
	{
		if(miscKey(evt))
			return true;
		else
		 return false;
	}
	return true;
}

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function isNumeric(s){
	
    if(isNaN(s*1))
		return false;
	else
	    return true;
}
function isFloatValue(s){	
	var j,counter=0;
	for (j = 0; j < s.length; j++)
	{
		var c = s.charAt(j);
		if (c==".") counter++;
	}
	if (counter>1)
		return false;
	else
		return true;
}
function hideElement(id)
{
	document.getElementById(id).style.display="none";  	
}
function unhideElement(id)
{
	document.getElementById(id).style.display="block";  	
}

function allowonlynumericandslash()
	{
	
	{if(event.keyCode < 47 || event.keyCode > 57) event.returnValue = false;}
			
	}
function allowonlynumeric()
	{
	{if(event.keyCode < 48 || event.keyCode > 57) event.returnValue = false;}
			
	}
function  allowonlynumericanddotandminus(){
	{if((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 46) && (event.keyCode != 45) ) event.returnValue = false;}
	}
function  allowonlynumericandminus(){
	{if((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 45) ) event.returnValue = false;}
	}			
function  allowonlynumericanddot()
	{
	{if((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode != 46) ) event.returnValue = false;}
	}
function allowonlyalphabets()
	{
	
	{if((event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122))  event.returnValue = false;}
			
	}

function allowonlyalphabetsandspace()
	{
	
	{if((event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122) && (event.keyCode != 32))  event.returnValue = false;}
			
	}
function allowonlyalphanumeric()
	{
	{if((event.keyCode < 65 || event.keyCode > 90) && ( event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 97 || event.keyCode > 122))  event.returnValue = false;}
	}
function checkKeycode() {
	if ((event.keyCode > 32 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97)) event.returnValue = false;
}	
function validDateRequired(formField)
	
	{	
		var result = true;
		
		if (formField.value != "")
		{
			//if (formField.value.length < "8")
			//{
			//	formField.value = formField.value + "/2005"
			//}
			if (isDate(formField.value))
				{
					//alert('the dates are good');
				}
			else
				{
					alert("Please check the date you have entered");
					formField.focus();
					result = false;
				}
		}
	
	return result;
	}	
