/***

 * FILE NAME    : Common.js
 * Date         : 19-02-2005
 * @a7thor      : Swati Saxena
 * @version     : 
 * @since         
 * DESCRIPTION  : JS File Used for common validations.

 
 * Change Log
 * Date            Modifier               Description

 * ----------   -----------------   -------------------------------------
 * 05-june-08	Sandeep Kumar			added isApostrophe() function
   30-June-08	UsmanGani				added validatrFromToDate() and fromToDateValidatorFunc() Function
   30-Jnue-08	UsmanGani				added Advanced Search Scripts
	30-Jnue-08	UsmanGani				compareFromToDate()
**/

//added sukumar 
function submitSpecial(special,names)
{  
 var txtProname=Trim(special.value);
special.value=txtProname;
 var charpos= txtProname.search("[><]"); 
 if((txtProname.length>0) &&(charpos >=0)) 
   { 
    var strError = "Invalid Characters in "+names;
   alert(strError); 
   special.focus();
   return false; 
   }
}


function submitSpecialblno(special,names)
{   var txtProname=Trim(special.value);
special.value=txtProname;
 var charpos= txtProname.search("[~_'`!@$%^&*()=+|}{;:?><*]"); 
 if((txtProname.length>0) &&(charpos >=0)) 
   { 
    var strError = "Invalid Characters in "+names;
   alert(strError); 
   special.focus();
   return false; 
   }
}
//Method to check file extension for web upload

function checkFormatForWebUpload(filenameObj)
{
	var filename=filenameObj.value;
	
	var extn=filename.substring(filename.lastIndexOf(".")+1);
	extn=extn.toLowerCase();
	
	if(extn =="edi" || extn=="xml" || extn=="txt" ){
		return true;
	}
		
	else{
		
		return false;
	}

	
	return true;
}

//Method to get DateFunction value in JavaScript using Form value

function JSDateValue(dateValue){

var issuedate = dateValue.split("/");	
var issueTime=issuedate[2].split(" ");		
var issueTimeSplit = issueTime[1].split(":");
var finalValue = new Date(issueTime[0],parseInt(issuedate[1]-1),issuedate[0],issueTimeSplit[0],issueTimeSplit[1]);

return finalValue;

}

function ValidateFloatPrecisionWithZero(fmtxt, width, preci,widthone,precione)  
{
	 fmtxt.value = LTrim(fmtxt.value);

	if(fmtxt.value=="."){
	alert("Decimals is not allowed");
	fmtxt.value="";
	 fmtxt.focus();
	 }



	// alert(fmtxt.value);
   if(!isFloat(fmtxt.value,width,preci,widthone,precione)) {
      alert("Invalid entry - use format as (" + widthone + "," +precione + ")"); 
     fmtxt.value = LTrim(fmtxt.value);
	 fmtxt.focus();
	  return false;
   }
   return "";
}


function isFutureDateVessel(dateValue)
{
		var asdf=dateValue.value;
	
	// checking if the date entered is more than the current date
	//alert("Now125");
	if(asdf == "")
		return false;
	var vArr = asdf.split("/");
	var str = vArr[0] + " " +  vArr[1] + " " + vArr[2];
	var enteredDate = new Date(vArr[2],parseInt(vArr[1]-1), vArr[0]);
	if(isNaN(enteredDate))
	{
		alert("PROBLEM IN DATE FORMAT in validDate: "+enteredDate);
	}
	var currentDate = new Date();
	if(enteredDate <= currentDate)
	{
		alert("Enter Future Date");
		return false;
	}
	return true;
	
}



function isNumberVoyage(numtxt) 
 
{  
	
  numtxt.value = LTrim(numtxt.value);			
   var ch;
  var num=numtxt.value;
  var flag=true;
  
  
  var array=num.split(".");
  if(array.length >1 ){
   alert("Decimal is not allowed. Please Enter a Valid Number");   
   numtxt.focus();
   return;
  }

    for (var i = 0 ;i<num.length ; i++) {
      ch = num.charAt(i);
 
     if (ch < "0" || ch > "9" )
    {
     flag=false;
    }
    
    }
   if(!flag){
   alert("Please Enter a Valid Number");
   numtxt.focus();
   return false;
  }
 
  return true;
}








function checkDateTime1(date){
 if(date.value == "")
  return false;
 if(!checkDateTime(date)){
  date.focus();
  return true;
 }
 
 if(!isFutureDateTime(date.value)){
  date.focus();
  return true;
 }
}



//added by UsmanGani 25/07/2007

function submitAddProfileNames(special,names)
{

 var txtProname=Trim(special.value);
 special.value=txtProname;
 //alert("####"+txtProname+"****");

 var charpos = txtProname.search("[~`!@#$%^&*()=+|\}{;:?/>.<,*/]"); 
   if(txtProname.length > 0 &&  charpos >= 0) 
   { 
    
    var strError = "Invalid Characters in "+names;
    // strError=strError +"\n"+ "[Error character position";
    // strError=strError + eval(charpos+1)+"]";
     alert(strError); 
 	 special.focus();
    return false; 
   }
 
}

function submitAddProfile(special)
{

 var txtProname=Trim(special.value);
 special.value=txtProname;
 //alert("####"+txtProname+"****");

 var charpos = txtProname.search("[~`!@#$%^&*()=+|\}{;:?/>.<,*/]"); 
   if(txtProname.length > 0 &&  charpos >= 0) 
   { 
    
    var strError = "Invalid Characters";
     strError=strError +"\n"+ "[Error character position";
     strError=strError + eval(charpos+1)+"]";
     alert(strError); 
 	 special.focus();
    return false; 
   }
 
}

function Trim(TheString)
{
  var len;
 
  len = TheString.length;
  while(TheString.substring(0,1) == " "){ //trim left
   TheString = TheString.substring(1, len);
   len = TheString.length;
  }
 
  while(TheString.substring(len-1, len) == " "){ //trim right
   TheString = TheString.substring(0, len-1);
   len = TheString.length;
  }
  return TheString;
}





function imposeMaxLength(Object, MaxLen)

{

  return (Object.value.length <= MaxLen);

}



function ValidateFloatWithDot(fmtxt, width, preci)  
{
	var num=fmtxt.value;
	var firstIndex = num.indexOf(".");
	var lastIndex = num.lastIndexOf(".");
		
		if(num.length == 1 && firstIndex == 0  && lastIndex==0){
			alert("Please Enter a number before or after .");
			fmtxt.focus();
			return ;
		}
	var array=num.split(".");
		
		if(array.length >2 ){
			alert("Multiple points are not allowed");
			//fmtxt.value="";
			fmtxt.focus();
			return;
		}
   if(!isFloatWithDot(fmtxt.value,width,preci)) {
      alert("Invalid Float Value - use format n(" + width + ").n(" +
                                                        preci + ")"); 
     fmtxt.focus();
	  return false;
   }
   fmtxt.value = LTrim(fmtxt.value,width,preci);
   if(eval(fmtxt.value,width,preci)==0){
		alert("Zero is not allowed.");
		fmtxt.value="";
		fmtxt.focus();
		return false;
   }
}
function isFloatWithDot(num,befdot,aftdot){
		
        if (num.length == 0) return true;
       // if (!parseFloat(num)) return false;

         var vat = num.indexOf(".");
        var vat3 = num.lastIndexOf(".");
        if (vat != vat3) return false;

        var ch;
        for (var i=0; i<num.length ; i++) {
                ch = num.substring(i,i+1);
                if (ch == ".") continue;
                if (ch <"0" || ch >"9" ) return false;
        }

        if (vat != -1 ) {
                if (vat > befdot) return false;
                var vat1 = num.substring(vat+1,num.length);
                if (vat1.length > aftdot) return false;
        } else {
                if (num.length > befdot) return false;
        }
        return true;
}


function isNumberWithDot(numtxt) 
 
{
  
  numtxt.value = LTrim(numtxt.value);	
		
	var ch;
  var num=numtxt.value;
  var flag=true;
  
  
  
  var array=num.split(".");
  if(array.length >1 ){
   alert("Decimal is not allowed. Please Enter a Valid Number");
   //fmtxt.value="";
   numtxt.focus();
   return;
  }

    for (var i = 0 ;i<num.length ; i++) {
                ch = num.charAt(i);
 
                if (ch < "0" || ch > "9" )
    {
                        flag=false;
                }
    
        }
        if(!flag){
   alert("Please Enter a Valid Number");
   numtxt.focus();
   return false;
  }
  if(eval(numtxt.value)==0){
		alert("Zero is not allowed.");
		numtxt.value="";
		numtxt.focus();
		return false;
	 }
  return true;
}

/**
 * Added By Devi
 * This function will validate numbers with zero.
 */
function isNumberAllowZero(numtxt){
  numtxt.value = LTrim(numtxt.value);	
  var ch;
  var num=numtxt.value;
  var flag=true;
  
  var array=num.split(".");
  if(array.length >1 ){
   alert("Decimal is not allowed. Please Enter a Valid Number");
   //fmtxt.value="";
   numtxt.focus();
   return;
  }

    for (var i = 0 ;i<num.length ; i++) {
                ch = num.charAt(i);
 
                if (ch < "0" || ch > "9" )
    {
                        flag=false;
                }
    
        }
        if(!flag){
   alert("Please Enter a Valid Number");
   numtxt.focus();
   return false;
  }
  return true;
}

//Added By Devi YYMMDDmm
function getDateTimeString(){
	var curDateTime = new Date();

	var curYr = curDateTime.getYear();
	curYr = (curYr+"").substring(2,4); //YY

	var month = curDateTime.getMonth();
	if(month<10) month= "0" + month; //MM 
	
	var day = curDateTime.getDate()
	if(day<10) day = "0" + day; //DD
	
	var curMin = curDateTime.getMinutes();
	if(curMin<10) curMin= "0" + curMin; //mm
	
	var returnVal = curYr+month+day+curMin;

	return returnVal;
}

function isNumberWithDotOne(numtxt) 

{
        var ch;
		var num=numtxt.value;
		var flag=true;
		

		
		var array=num.split(".");

		if(array.length >1 ){
			alert("Dot is not allowed. Please Enter a Valid Number");
			//fmtxt.value="";
			numtxt.focus();
			return;
		}
        for (var i = 0 ;i<num.length ; i++) {
                ch = num.charAt(i);


                if (ch < "0" || ch > "9" )
				{
                        flag=false;
                }
				
        }
        if(!flag){
			alert("Please Enter a Valid Number");
			numtxt.focus();
			return false;
		}
		numtxt.value = LTrim(numtxt.value);
   if(eval(numtxt.value)==0){
		alert("Zero is not allowed. Min Val is 1");
		numtxt.value="";
		numtxt.focus();
		return false;
	 }
	return true;
}





function isPastDateTime(dateValue)
{
	// checking if the date entered is more than the current date
	if(dateValue == "")
		return false;
	var vArr = dateValue.split("/");
	var time=vArr[2].split(" ");
	var str = vArr[0] + " " +  vArr[1] + " " + time[0];
	var enteredDate = new Date(time[0],parseInt(vArr[1]-1), vArr[0]);
	if(isNaN(enteredDate))
	{
		//alert("PROBLEM IN DATE FORMAT in validDate: "+enteredDate);
		alert("PROBLEM IN DATE FORMAT (DD/MM/YYYY)");
	}	
	var currentDate = new Date();
	if(enteredDate <= currentDate)
	{
		return true;
	}
	return false;
	
}


 function isFutureDateTime(dateValue)
{
 
 if(dateValue == "")
  return false;
 var vArr = dateValue.split("/");
 var year=vArr[2].split(" ");
 
 var enteredDate = new Date(year[0],parseInt(vArr[1],10)-1, vArr[0]);
 //alert(enteredDate);
 if(isNaN(enteredDate))
 {
  alert("PROBLEM IN DATE FORMAT in validDate: "+enteredDate);
 }
 var currentDate = new Date();
 var cDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate())
 
 
 if(enteredDate >= cDate)
 {
  return true;
 }
 else{
  alert("Entered Date Should be Greater than or equal to Current Date");
  return false;
 }
 
 
 
}

//added by vijay t on 20070718(date  validation)
function checkDate(date){

d = date.value;

if(d != "") {

  if( validateDate(d)==false ) {

        alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
		date.focus();
        return false;

  }

 }

  return true;

}

 

function validateDate(dateStr)

{

            //if (dateStr.length == 2) return true;

      //    dateStr=convertMONFormat(dateStr);

            monthArray = new Array();

            monthArray[1] = 31;

            monthArray[3] = 31;

            monthArray[4] = 30;

            monthArray[5] = 31;

            monthArray[6] = 30;

            monthArray[7] = 31;

            monthArray[8] = 31;

            monthArray[9] = 30;

            monthArray[10] = 31;

            monthArray[11] = 30;

            monthArray[12] = 31;

            index=0;

            dobArray = new Array();

            dobArray[0] = "";

            dobArray[1] = "";

            dobArray[2] = "";

            for (count=0; count < dateStr.length; count++)

            {

                        if (dateStr.charAt(count) != "/")

                        {

 

                                    dobArray[index] = dobArray[index] + dateStr.charAt(count);

                        }

                        else

                        {

                        index = index+1;

                        }

            }

            if (index >= 3)

            {           return false;

            }

 

            if ((dobArray[0] == "") ||

                        (dobArray[1] == "") ||

                        (dobArray[2] == ""))

            {

                        return false;

            }

 

            if ((dobArray[0].length > 2) ||

                        (dobArray[1].length > 2) ||

                        (dobArray[2].length > 4))

            {

                        return false;

            }

 

            if (chkNumber(dobArray[2],10))

                        newYear = parseInt(dobArray[2],10);

            else return false;

            if ((newYear < 1900))

            {

                        alert("Please enter a date after 1900 A.D.");

                        return false;

            }

 

            // Check to ensure that the month is in range

            if (chkNumber(dobArray[1],10))

                        newMonth = parseInt(dobArray[1],10);

            else return false;

            if ((newMonth < 1) || (newMonth > 12))

            {

                        //alert("Invalid Date. Check the Month Value");

                        return false;

            }

 

            // Check to ensure that the date is in range

            if (chkNumber(dobArray[0],10))

                        newDate = parseInt(dobArray[0],10);

            else return false;

            if ((newDate < 1) || (newDate > 31))

            {

                        //alert("Invalid Date");

                        return false;

            }

 

            // Check to ensure the end-date, w.r.t the month

            if (newMonth != 2)

            {

                        if (newDate > monthArray[newMonth])

                        {

                                    //alert("Invalid Date");

                                    return false;

                        }

                        else

                                    return true;

            }

            else

            {

                        // For february, also check the end-date w.r.t the year

                        if (isLeapYear(newYear))

                        {

                                    if (newDate > 29)

                                    {

                                                //alert("Invalid Date");

                                                return false;

                                    }

                        }

                        else

                        {

                                    if (newDate > 28)

                                    {

                                                //alert("Invalid Date");

                                                return false;

                                    }

                        }

                        return true;

            }

}

 

function chkNumber(x)

{

   var anum=/(^-?\d+$)|(^-?\d+$)/;

   if (anum.test(x)) 

            {

                return true;

            }

            else

            {

                        return false;

            }

}

 

function isLeapYear(testYear)

{

            if ((testYear % 400) == 0)

                        return true;

            if ((testYear % 100) == 0)

                        return false;

            return ((testYear % 4) == 0)

}

//(date validation) end

function commonValidation(form)
{
//alert("In Common Validation form"+form);
	
  var totalElements=form.elements;
	//alert("In Common Validation totalElements"+totalElements);
	var status=true
	//	alert("In Common Validation totalElements.length"+totalElements.length);

	for(i=0; i<totalElements.length; i++) 
	{
	if((form.elements[i].type=="text")|| (form.elements[i].type=="file") ||(form.elements[i].type=="select-one")||(form.elements[i].type=="textarea"))
		{
			form.elements[i].value=LTrim(form.elements[i].value);
			var validations=new Array()
				//alert("In Common Validation totalElements.length"+form.elements[i].value);

				//	alert("In Common Validation totalElements.length"+form.elements[i].id);

			if((form.elements[i].id!=null)&&(form.elements[i].id.length!=0))
			{
			validations=form.elements[i].id.split('|')
			
			if(validations.length<2)
			status=false
			for(j=1;j<validations.length;j++)
			{
			
				var fieldName=validations[0]
				//alert("fieldName"+fieldName);
               // alert("validations[j]"+validations[j]+"***");
				switch(validations[j])
				{
                  
				  case "isMandatory":
				  if(isBlank(form.elements[i])) 
					 {
						alert('Please Enter '+fieldName);
						form.elements[i].focus();
						status=true;
					 }
				  else
					{  
					    status=false;
					}
				  break;

				  case "isDate":
				  if(!isDate(form.elements[i].value)) 
					 {
						alert("Please enter a valid date for "+fieldName+" ( use format DD/MM/YYYY)");
					
						form.elements[i].focus();
						status=true;
					 }
				  else
					{
					   status=false;
					}
				  break;

				  case "isNumber":
				  if(!isNumber(form.elements[i].value)) 
					 {
						alert('Please enter a valid number for '+fieldName);
						form.elements[i].focus();
						status=true;
					 }
				  else
					{
					   status=false;
					}
				  break;


				  

				  case "isAlphaNum":
				  if(!isAlphaNum(form.elements[i].value)) 
					 {
						alert('Please enter a valid alphanumeric Value For '+fieldName);
						form.elements[i].focus();
						status=true;
					 }
				  else
					{
					   status=false;
					}
				  break;


				  //Praveen Added
				  //Start
				  case "isLengthTen":
					if(!LengthTen(form.elements[i].value))
				 {
						alert('Please enter a valid 10 digit'+fieldName);
						form.elements[i].focus();
						status=true;
					 }
				 else
					  {
					  status=false;
				      }
				 break;					 
				

				  //End

				 case "ischeckDateTime":
				  if(!checkDateTime1(form.elements[i])) 
					 {
						
						form.elements[i].focus();
						status=true;
					 }
				  else
					{
					   status=false;
					}
				  break;
				    case "isFile":
					 
					if(form.elements[i].value == "")
						status=false;
					else if(!checkFormat(form.elements[i])){
						alert("Only JPG, PDF, NSD and JIF formats are allowed. Enter A Valid Format for "+fieldName);
						form.elements[i].focus();
					    status=true;
					}
					else if(!checkSpecialChar(form.elements[i])){
						var txtProname=Trim(form.elements[i].value);
						var charpos = txtProname.search("[~`!@'#$%^&*()=+|}{;?/><*/\"]"); 
						
						if(txtProname.length >0 && charpos >=0){
							var strchar=txtProname.substring(charpos,charpos+1);
							//alert(strchar);
							var strError = "Invalid Character "+strchar+" Found in \n"+fieldName;
							strError=strError +"\n"+ "[Error at character position ";
							strError=strError + eval(charpos+1)+"]";
							 alert(strError); 
							form.elements[i].focus();
							status=true;
						}
						else
							status=false;
					}
				  else
					  status=false;
					
				  break;

				   /////////

					 case "isFileForWebUpload":
					 
					if(form.elements[i].value == "")
						status=false;
					else if(!checkFormatForWebUpload(form.elements[i])){
						alert("Only XML, EDI and TXT formats are allowed. Enter A Valid Format for "+fieldName);
						form.elements[i].focus();
					    status=true;
					}
					else if(!checkSpecialChar(form.elements[i])){
						var txtProname=Trim(form.elements[i].value);
						var charpos = txtProname.search("[~`!@'#$%^&*()=+|}{;?/><*/\"]"); 
						
						if(txtProname.length >0 && charpos >=0){
							var strchar=txtProname.substring(charpos,charpos+1);
							//alert(strchar);
							var strError = "Invalid Character "+strchar+" Found in \n"+fieldName;
							strError=strError +"\n"+ "[Error at character position ";
							strError=strError + eval(charpos+1)+"]";
							 alert(strError); 
							form.elements[i].focus();
							status=true;
						}
						else
							status=false;
					}
				  else
					  status=false;
					
				  break;
				  ////////

				
				 case "isApostrophe":
				  if(!isApostrophe(form.elements[i])) 
					 {
						alert('Please enter a valid value without apostrophe (\') for '+fieldName);
						form.elements[i].focus();
						status=true;
					 }
				  else
					{					  
					   status=false;
					}
				  break;


				 }
				if(status)	//if one error has been detected, then stop iterating through the loop and exit.			
				return false;
			}
		  }
		}
}

return true;
}

function isApostrophe(objControl)
{	
        var ch;
		var num=objControl.value;
		var flag=true;
		 for (var i = 0 ;i<num.length ; i++) {
                ch = num.charAt(i);


                if (ch=="\'")
				{
                        flag=false;
                }
				
        }

        return flag;
}

function valButton(btn) 
{
	var cnt = -1;
	for (var i=0; i < btn.length; i++) 
	{
		if (btn[i].checked) 
		{
		   cnt = i;
		   i = btn.length;
		}
	}

	if (cnt > -1) 
		return btn[cnt].value;
	else 
		return null;
}


function compareDates(dateValue1,dateValue2)
{
	// checking if the date entered is more than the current date
	var vArr1 = dateValue1.split("/");
	var str1 = vArr1[0] + " " +  vArr1[1] + " " + vArr1[2];
	var enteredDate1 = new Date(vArr1[2],parseInt(vArr1[1]-1), vArr1[0]);
	if(isNaN(enteredDate1))
	{
		alert("PROBLEM IN DATE FORMAT in 1: "+enteredDate1);
		return false;
	}


	var vArr2 = dateValue2.split("/");
	var str2 = vArr2[0] + " " +  vArr2[1] + " " + vArr2[2];
	var enteredDate2 = new Date(vArr2[2],parseInt(vArr2[1]-1), vArr2[0]);
	if(isNaN(enteredDate2))
	{
		alert("PROBLEM IN DATE FORMAT in 2: "+enteredDate2);
		return false;
	}

	if(enteredDate1 > enteredDate2)
	{
		return false;
	}
	return true;
	
}


function validDate(dateValue)
{
	// checking if the date entered is more than the current date
	var vArr = dateValue.split("/");
	var str = vArr[0] + " " +  vArr[1] + " " + vArr[2];
	var enteredDate = new Date(vArr[2],parseInt(vArr[1]-1), vArr[0]);
	if(isNaN(enteredDate))
	{
		alert("PROBLEM IN DATE FORMAT in validDate: "+enteredDate);
		return false;
	}
	var currentDate = new Date();
	if(enteredDate >= currentDate)
	{
		return true;
	}
	return false;
	
}


function checkCK(form,obj)
{

	
//	alert(obj.checked);

	
   if(obj.checked)
	{
	   checkAll(form,obj)
	}
   else
	{
      unCheckAll(form,obj)
	}

}


function checkAll(form,obj)

{

	for (var i=0;i< form.elements.length;i++)

	{

		var e = form.elements[i];
	
		if ((e.name == obj.value) && (e.type=='checkbox'))
		{
			e.checked = true;
		}

	}

}

 

function unCheckAll(form,obj)

{

	for (var i=0;i< form.elements.length;i++)

	{

		var e = form.elements[i];
	
		if ((e.name == obj.value) && (e.type=='checkbox'))
		{
			e.checked = false;
		}

	}

}



function isBlank(objControl)
{
        var result = false;
        if(objControl.value=="")
        {
			result = true;
        }

        return result;
}

function isAlphaNum(str)
{
        if (str == "" )
                return(true);
        for (var i=0; i<str.length; i++) {
                var c = str.substring(i, i+1);
               // if ((c<"a" || c>"z") && (c<"A" || c>"Z") && (c<"0" || c>"9") && !(c=='  '))
                //        return(false);

		if(!(c>="0" && c<="9" ||((c>="a"&&c<="z")||(c>="A"&&c<="Z"))||c==" "))
		{
                     return(false);
		}
        }
        return(true);
}

//Praveen Added
//Start

function LengthTen(str)
{	
	if (str.length !=10)
	{		
		return(false);
	}
	else
	{
		for(var i=0;i<str.length;i++)
		{
			if (str.charAt(i)==" ")
				{	
				var spaceError="Space is not allowed. Please remove the space at the location "+(i+1);
				alert(spaceError);
				return;
			    }	
				
		}
	}
return true;
}

//End
function isNumber(num) 
{
        var ch;
        for (var i = 0 ;i<num.length ; i++) {
                ch = num.charAt(i);

				//alert("char is: "+ch);

				if(ch == ".")
				{
					continue;
				}

                if (ch < "0" || ch > "9" )
				{
                        return false;
                }
				
        }
        return true;
}

function isDate(str)
{
        var dd,mm,yyyy;
        var tmpStr;
     
        if (str == "") return true;
		if (str.length != 10) return false;
		
        if ((str.charAt(2) != "/") || (str.charAt(5) != "/")) return false;

        dd = str.substring(0,2);
        mm = str.substring(3,5);
        yyyy = str.substring(6,10);
	
        tmpStr = dd + mm + yyyy;
        if ( !isNumber(tmpStr) ) return false;  // check all digits

        if ((mm < 1) || (mm > 12)) return false;
        if ((mm == 1 || mm == 3 || mm == 5 || mm == 7 ||
                                                 mm == 8 || mm == 10 || mm == 12) && 
                 (dd < 1 || dd > 31))
                return false;
        if ((mm == 4 || mm == 6 || mm == 9 ||mm == 11) &&
                 (dd < 1 || dd > 30))
                return false;
        if (mm == 2)  {
                if (dd < 1  || dd > 29) return false;
                if (dd == 29) {
                        if (yyyy % 4 !=0 ) return false;
                        if ((yyyy % 100 == 0) && (yyyy % 400 != 0)) return false;
                }
        } 
        return true;
}


function isFloat(num,befdot,aftdot){
        if (num.length == 0) return true;
       // if (!parseFloat(num)) return false;

        var vat = num.indexOf(".");
        var vat3 = num.lastIndexOf(".");
        if (vat != vat3) return false;

        var ch;
        for (var i=0; i<num.length ; i++) {
                ch = num.substring(i,i+1);
                if (ch == ".") continue;
                if (ch <"0" || ch >"9" ) return false;
        }

        if (vat != -1) {
                if (vat > befdot) return false;
                var vat1 = num.substring(vat+1,num.length);
                if (vat1.length > aftdot) return false;
        } else {
                if (num.length > befdot) return false;
        }
        return true;
}



// for Voyage Expected Draft
function isFloat(num,befdot,aftdot,ty,te){
        if (num.length == 0) return true;
       // if (!parseFloat(num)) return false;

        var vat = num.indexOf(".");
        var vat3 = num.lastIndexOf(".");
        if (vat != vat3) return false;

        var ch;
        for (var i=0; i<num.length ; i++) {
                ch = num.substring(i,i+1);
                if (ch == ".") continue;
                if (ch <"0" || ch >"9" ) return false;
        }

        if (vat != -1) {
                if (vat > befdot) return false;
                var vat1 = num.substring(vat+1,num.length);
                if (vat1.length > aftdot) return false;
        } else {
                if (num.length > befdot) return false;
        }
        return true;
}





function ValidateFloatPrecision(fmtxt, width, preci,widthone,precione)  
{
	 fmtxt.value = LTrim(fmtxt.value);

	if(fmtxt.value=="."){
	alert("Decimals is not allowed");
	fmtxt.value="";
	 fmtxt.focus();
	 }



	// alert(fmtxt.value);
   if(!isFloat(fmtxt.value,width,preci,widthone,precione)) {
      alert("Invalid entry - use format as (" + widthone + "," +precione + ")"); 
     fmtxt.value = LTrim(fmtxt.value);
	 fmtxt.focus();
	  return false;
   }


	if(fmtxt.value=='0'){
		
	alert("Zero is not allowed");
	fmtxt.value="";
	 fmtxt.focus();
	 }

   return "";
}




function ValidateFloat(fmtxt, width, preci)  
{

	//if(!isNumber(fmtxt.value)){
	//	alert("Invalid Number");
	//	fmtxt.focus();
	// return ;
	//}

	


	 fmtxt.value = LTrim(fmtxt.value);


	if(fmtxt.value=="."){
	alert("Decimals is not allowed");
	fmtxt.value="";
	 fmtxt.focus();
	 }


	// alert(fmtxt.value);
   if(!isFloat(fmtxt.value,width,preci)) {
    //  alert("Invalid entry - use format as (" + width + "," +preci + ")"); 
	   alert("Invalid Float Value - use format as (" + width + "." +preci + ")"); 
     fmtxt.value = LTrim(fmtxt.value);
	 fmtxt.focus();
	  return false;
   }

	if(fmtxt.value =='0'){
	alert("Zero is not allowed");
	fmtxt.value="";
	 fmtxt.focus();
	 }




   return "";
}


function ValidateDate(fmtxt) {
   if (!isDate(fmtxt.value)) {
      return "Invalid Date (please use format DD/MM/YYYY)";
   }
   return "";
}

function ValidateNumber(fmtxt)  
{
        if(!isNumber(fmtxt.value)) {
        return "Invalid Number";
        }
    return "";
}


function checkDateSequence (n1, n2)
{
// return true if both variable are empty
        if (((n1 == null)||(n1 == "")) && ((n2 == null)||(n2 == ""))) 
          return true;
       
        if ((n1 != null) && (n1 != ""))
        {
           if (!isDate (n1)) 
             return false;
           else if ((n2 == null) || (n2 == ""))
             return true;	// return true if n1 is date and n2 is empty
        }
        if ((n2 != null) && (n2 != ""))
        {
           if (!isDate (n2)) 
             return false;
           else if ((n1 == null) || (n1 == ""))
             return true;	// return true if n2 is date and n1 is empty
	}
        yyyy1 = n1.substring(6,10);
        yyyy2 = n2.substring(6,10);
        if (yyyy1 > yyyy2) return false;
	if (yyyy1 < yyyy2) return true;

        mm1 = n1.substring(3,5);
        mm2 = n2.substring(3,5);
        if (mm1 > mm2) return false;
	if (mm1 < mm2) return true;

        dd1 = n1.substring(0,2);
        dd2 = n2.substring(0,2);
        if (dd1 > dd2) return false;
	if (dd1 < dd2) return true;

        // here: both the dates are same
        return true;                
}

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";

	var iTemp = 0;

	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
		strTemp = VALUE.substring(iTemp,v_length);
		break;
		}
		iTemp = iTemp + 1;
	} 
	return strTemp;
} 


//added by vijaybhaskar on 20070515
function alphabetOnly(strValue)
{
   var ch;   
   
   if (strValue.charAt(0)==" ")
   {	
	alert("No blank space in the begining !");
	return false;
   }
   for(i=0;i<strValue.length;i++)
   {
        ch=strValue.substring(i,i+1);       
	 
        if((ch<"A" || ch>"Z") && (ch<"a" || ch>"z") )
  	{	    
	     alert("Enter only the Alphabets !");
	     return false; 
	}    
   }
   return true;
}

 function alphaNumericOnly(pval)
      {
  	var alphanum,alval
  	alphanum=pval.value
  	if (alphanum.charAt(0)==" ")
  	{
  		pval.focus();
  		alert("No blank spaces in the begining !");
  		return false;
  	}
  for (i=0;i<alphanum.length;i++)
  {
  	alval=alphanum.substring(i,i+1)
  if ((alval < "A"  || alval > "Z") && (alval < 'a'  || alval > 'z') && (alval != " ") && (alval < '0'  || alval > '9'))
  	  {
  	 alert("Special characters not allowed in "+pval.name+" !");
  	  pval.focus();
  	  return false
        }    
  }
    return true
  }//end of alphaNumericOnly

function checkValue(s)
 {
  var sValue = s.value;
  var alval;
  for(i=0;i<sValue.length;i++)
   {
      alval=sValue.substring(i,i+1)
     if(alval<'0' || alval>'9') {
        s.focus();
        alert(s.name+" value should be a number !");
	    return false;
      } 
 }
   return true;		
}//end of checkValue

function checkLimit(s, l) {
  var power = Math.pow(10,l);
  var powerprint = power - 1;
  checkValue(s);
  if((s.value > power) || (s.value < power * -1))
   {
     alert("Value entered should be between -"+powerprint+" and "+powerprint);
     return false;
   }
   return true;
}

function checkForInvalidChar(obj)
{
   var strValue,ch;
   strValue=obj.value;
   if (strValue.charAt(0)==" ")
	{
		obj.focus();
		alert("No blank space in the begining !");
		return false;
	}
   for(i=0;i<strValue.length;i++)
    {
	   ch=strValue.substring(i,i+1);
	 
       if((ch<"A" || ch>"Z") && (ch<"a" || ch>"z"))
    	 {
    	    if((ch <"0" || ch >"9") && (ch!=" ") && (ch!="/"))
    	    {
	     obj.focus();
	     alert("Enter only Alphabets, Numbers, / or Spaces !");
	     return false; 
	    }
	 }
     }
return true;
}//end of checkForInvalidChar

function doUpper(thisObj) {
    thisObj.value = trim( thisObj.value.toUpperCase() );
    return true;
}

function checkNumeric(event) {
    var strValid = "0123456789";
  /*  NS4 = (document.layers);
    whichASC = (NS4) ? e.which : event.keyCode;
	*/
if(window.event) // IE
       { whichASC = event.keyCode }
    else if(event.which) // Netscape/Firefox/Opera
       { whichASC = event.which  }

    whichKey = String.fromCharCode(whichASC);
  
   if(!(whichASC == 8)) { 
	if (strValid.indexOf(whichKey) == -1) {
         if(window.event) // IE
             { event.returnValue = false; }
           else if(event.which) // Netscape/Firefox/Opera
             { return false;  }
    }
   }
}

function checkInteger(intValue) {
    var strValid = "-0123456789";
    NS4 = (document.layers);
    whichASC = (NS4) ? e.which : event.keyCode;
    whichKey = String.fromCharCode(whichASC);
  
    if (strValid.indexOf(whichKey) == -1) {
        event.returnValue = false;
    }
    
    sPos = intValue.indexOf("-");
    if (sPos != -1) {
       if (whichKey == "-") {
           event.returnValue = false;
       }
    }
}





function checkFloatMaxLen(stringVal, maxInt, maxDec) {
	//alert('ganga');
    var strValid = ".-0123456789";
    NS4 = (document.layers);
    whichASC = (NS4) ? e.which : event.keyCode;
    whichKey = String.fromCharCode(whichASC);

    if (strValid.indexOf(whichKey) == -1) {
        event.returnValue = false;
    }

    if ( (whichKey == "-") && (stringVal != "") ) {
       event.returnValue = false;
    }

    sPos = stringVal.indexOf("-");
    if (sPos != -1) {
       if (whichKey == "-") {
           event.returnValue = false;
       }
    }
    else {
       if (stringVal.length > (maxInt + maxDec)) {
           event.returnValue = false;
       }
    }
    
    fPos = stringVal.indexOf(".");
    if (fPos != -1) {
       if (whichKey == ".") {
          event.returnValue = false;
       }
       decVal = stringVal.substr(stringVal.indexOf(".") + 1, stringVal.length);
       if (decVal.length > maxDec -1) {
          event.returnValue = false;
       }
    }
    else {
       sPos = stringVal.indexOf("-");
       if (sPos != -1) {
          if (stringVal.length > maxInt) {
             if (whichKey != ".") {
                event.returnValue = false;
             }
          }
       }
       else {
          if (stringVal.length > maxInt -1) {
       	     if (whichKey != ".") {
                event.returnValue = false;
             }
          }
       }
    }

	//alert('dharan');
}
function checkTextMaxLen(stringVal, maxLen) {
    var strNotValid = "|`^\"[]+:";
    NS4 = (document.layers);
    whichASC = (NS4) ? e.which : event.keyCode;
    whichKey = String.fromCharCode(whichASC);
  
    if (strNotValid.indexOf(whichKey) != -1) {
        event.returnValue = false;
    }
    else {
       if (stringVal.length > maxLen -1) {
           event.returnValue = false;
       }
    }
}




function checkIntegerMaxLen2(event,stringVal, maxLen) {

    var strValid = "0123456789";           

            if(window.event) // IE

       { whichASC = event.keyCode }

    else if(event.which) // Netscape/Firefox/Opera

       { whichASC = event.which  }            

            if(!(whichASC == 8)) { 

                        whichKey = String.fromCharCode(whichASC);

        if (strValid.indexOf(whichKey) == -1) {

           if(window.event) // IE

              { event.returnValue = false; }

           else if(event.which) // Netscape/Firefox/Opera

              { return false;  }

                } 

        if ( (whichKey == "-") && (stringVal != "") ) {

           if(window.event) // IE

             { event.returnValue = false; }

           else if(event.which) // Netscape/Firefox/Opera

             { return false;  }

                }

       sPos = stringVal.indexOf("-");

       if (sPos != -1) {

          if (whichKey == "-") {

              if(window.event) // IE

                 { event.returnValue = false; }

              else if(event.which) // Netscape/Firefox/Opera

                 { return false;  }

          }

       }

       else {

           if (stringVal.length > maxLen -1) {

              if(window.event) // IE

                { event.returnValue = false; }

              else if(event.which) // Netscape/Firefox/Opera

                { return false;  }

           }
       }
    }
}

function allowOnlyNumeric(event)
{

    

            if(window.event) // IE

    { 

            

            var enteredkeyCode = event.keyCode;

    

            if((enteredkeyCode>=48 && enteredkeyCode<=57)||(enteredkeyCode==46)||(enteredkeyCode==45))

            {     

                        var oldValue = event.srcElement.value;

                        

                        if(oldValue.indexOf(".")!=-1)

                        {

                                    if(enteredkeyCode==46)

                                    {

                                                event.keyCode=0;

                                    }

                           

                        }

 

                        if(oldValue.indexOf("-")!=-1)

                        {

                                    if(enteredkeyCode==45)

                                    {

                                                event.keyCode=0;

                                    }

                           

                        }

                        

            }           

            else

            {

                        if(enteredkeyCode==27)

                        {

                                    event.srcElement.value = "";

            event.srcElement.focus();

                   }

                        else{

                        //window.status = "Please type numeric data";

                        event.keyCode=0;

                        alert("Please Type Numeric data");

                        return;

                        }

            }           

            

            }

    else if(event.which) // Netscape/Firefox/Opera

    {   enteredkeyCode = event.which 

            

            

            

            if((enteredkeyCode>=48 && enteredkeyCode<=57)||(enteredkeyCode==46)||(enteredkeyCode==45)||(enteredkeyCode==8)||(enteredkeyCode==27))

            {     

                        

        // Netscape/Firefox/Opera

                        

                                    var oldValue = event.target.value;

                        

                        

                        if(oldValue.indexOf(".")!=-1)

                        {

                                    if(enteredkeyCode==46)

                                    {

                                                

                                 return false;

                                    }

                           

                        }

 

                        if(oldValue.indexOf("-")!=-1)

                        {

                                    if(enteredkeyCode==45)

                                    {

                                                return false;

                                    }  

                                    

                        

                        }

                        

            }           

            else{

                            return false;

                   alert("Please Type Numeric data");

                

                        

            }

 

            }

}

function allowOnlyPosNumeric(event)
{
var enteredkeyCode;

	if(window.event) // IE
    { enteredkeyCode = event.keyCode }

    else if(event.which) // Netscape/Firefox/Opera
    {   enteredkeyCode = event.which  }

	if((enteredkeyCode>=48 && enteredkeyCode<=57)||(enteredkeyCode==46)||(enteredkeyCode==8)||(enteredkeyCode==27))
	{     
	   if(window.event) // IE
        {
		var oldValue = event.srcElement.value;
		}
        else if(event.which) // Netscape/Firefox/Opera
		{
			var oldValue = event.target.value;
		}
     	
		if(oldValue.indexOf(".")!=-1)
		{
			if(enteredkeyCode==46)
			{
				if(window.event) // IE
				 { event.keyCode=0;	 }
                 else if(event.which) // Netscape/Firefox/Opera
		        { return false; }
			}
		}
		
	}
	else
	{
	    if(enteredkeyCode==45)
		{
			return false;
		}
		
		if(window.event) // IE
		 {
			  alert("Please Type Numeric data");
		      event.keyCode=0;
			  return false;
		 }
		 else if(event.which) // Netscape/Firefox/Opera
		 {
			alert("Please Type Numeric data");
			return false;
		 }
		 
    }
}

function checkLimitPos(s, l) {
  var power = Math.pow(10,l);
  var powerprint = power - 1;
  checkValue(s);
  if((s.value > power) || (s.value < 0))
   {
     alert("Value entered should be between "+0+" and "+powerprint);
     return false;
   }
   return true;
}


function isPastDate(dateValue)

{

           // checking if the date entered is more than the current date

           if(dateValue == "")

                       return false;

           var vArr = dateValue.split("/");

           var str = vArr[0] + " " +  vArr[1] + " " + vArr[2];

           var enteredDate = new Date(vArr[2],parseInt(vArr[1]-1), vArr[0]);

           if(isNaN(enteredDate))

           {

                       alert("PROBLEM IN DATE FORMAT in validDate: "+enteredDate);

           }

           var currentDate = new Date();

 

   var cDate=new Date(currentDate.getFullYear(),currentDate.getMonth(),currentDate.getDate())


           if(enteredDate < cDate)

           {

                       return true;

           }else{

           return false;

           }

           

}



function isPastDate1234(dateValue)
{
	// checking if the date entered is more than the current date
	if(dateValue == "")
		return false;
	var vArr = dateValue.split("/");
	var str = vArr[0] + " " +  vArr[1] + " " + vArr[2];
	var enteredDate = new Date(vArr[2],parseInt(vArr[1]-1), vArr[0]);
	if(isNaN(enteredDate))
	{
		alert("PROBLEM IN DATE FORMAT in validDate: "+enteredDate);
	}
	var currentDate = new Date();
	if(enteredDate < currentDate)
	{
		return true;
	}else{

		return false;
	}
	
	return false;
}


 function isFutureDate(dateValue)
{
	// checking if the date entered is more than the current date
	//alert("Now125");
	if(dateValue == "")
		return false;
	var vArr = dateValue.split("/");
	var str = vArr[0] + " " +  vArr[1] + " " + vArr[2];
	var enteredDate = new Date(vArr[2],parseInt(vArr[1]-1), vArr[0]);
	if(isNaN(enteredDate))
	{
		alert("PROBLEM IN DATE FORMAT in validDate: "+enteredDate);
	}
	var currentDate = new Date();
	if(enteredDate >= currentDate)
	{
		return true;
	}
	return false;
	
}




function checkDateTime(date){

d = date.value;

//alert("d"+d+"l"+d.length);

if(d != "") {              

//    if(d.length!=19)
//
//            {
//
//              alert("You have entered an invalid Format");
//
//             return false;
//
//             }

var blankosition =d.charAt(10);

         

//alert("blankosition"+blankosition);

            if(blankosition!=" ")

      {

              alert("Invalid format.");

             return false;

             }

            

                                    var date = d.substring(0, 10);

                                    var  time  = d.substring(11, 19);               

             

                        //alert("date"+date+""+date.length);

         //alert("time"+time+""+time.length);

 

//added by vijay for time

if( validateTime(time)==false ) {

        //alert("You have entered an invalid time.");                         

        return false;

  }

//add end

 

   if( validateDate(date)==false ) {

        alert("You have entered an invalid date.");                         

        return false;

  }

 }

  return true;

}

 

 

function validateTime(timeStr)

{

            //if (dateStr.length == 2) return true;

      //    dateStr=convertMONFormat(dateStr);

            timeArray = new Array();

            timeArray[1] = 23;

            timeArray[2] = 59;

            timeArray[3] = 59;

            

            index=0;

            dobArray = new Array();

            dobArray[0] = "";

            dobArray[1] = "";

            dobArray[2] = "";

            for (count=0; count < timeStr.length; count++)

            {

                        if (timeStr.charAt(count) != ":")

                        {

 

                                    dobArray[index] = dobArray[index] + timeStr.charAt(count);

                        }

                        else

                        {

                        index = index+1;

                        }

            }

            if (index >= 3)

            {           return false;

            }

 

            if ((dobArray[0] == "") ||

                        (dobArray[1] == "") ||

                        (dobArray[2] == ""))

            {

                        return false;

            }

 

            if ((dobArray[0].length > 2) ||

                        (dobArray[1].length > 2) ||

                        (dobArray[2].length > 2))

            {

                        return false;

            }

 

            if (valNumber(dobArray[2],10))

                        newSeconds = parseInt(dobArray[2],10);

            else return false;

            if ((newSeconds < 0) || (newSeconds > 59))

            {

                        alert("Invalid time. Check the Seconds Value");

                        return false;

            }

 

            // Check to ensure that the month is in range

            if (valNumber(dobArray[1],10))

                        newMinutes = parseInt(dobArray[1],10);

            else return false;

            if ((newMinutes < 0) || (newMinutes > 59))

            {

                        alert("Invalid time. Check the Minutes Value");

                        return false;

            }

 

            // Check to ensure that the date is in range

            if (valNumber(dobArray[0],10))

                        newHours = parseInt(dobArray[0],10);

            else return false;

            if ((newHours < 0) || (newHours > 23))

            {

                        alert("Invalid time. Check the Hours Value");

                        return false;

            }

 

            

}

 

function validateDate(dateStr)

{

            //if (dateStr.length == 2) return true;

      //    dateStr=convertMONFormat(dateStr);

            monthArray = new Array();

            monthArray[1] = 31;

            monthArray[3] = 31;

            monthArray[4] = 30;

            monthArray[5] = 31;

            monthArray[6] = 30;

            monthArray[7] = 31;

            monthArray[8] = 31;

            monthArray[9] = 30;

            monthArray[10] = 31;

            monthArray[11] = 30;

            monthArray[12] = 31;

            index=0;

            dobArray = new Array();

            dobArray[0] = "";

            dobArray[1] = "";

            dobArray[2] = "";

            for (count=0; count < dateStr.length; count++)

            {

                        if (dateStr.charAt(count) != "/")

                        {

 

                                    dobArray[index] = dobArray[index] + dateStr.charAt(count);

                        }

                        else

                        {

                        index = index+1;

                        }

            }

            if (index >= 3)

            {           return false;

            }

 

            if ((dobArray[0] == "") ||

                        (dobArray[1] == "") ||

                        (dobArray[2] == ""))

            {

                        return false;

            }

 

            if ((dobArray[0].length > 2) ||

                        (dobArray[1].length > 2) ||

                        (dobArray[2].length > 4))

            {

                        return false;

            }

 

            if (valNumber(dobArray[2],10))

                        newYear = parseInt(dobArray[2],10);

            else return false;

            if ((newYear < 1900))

            {

                        alert("Please enter a date after 1900 A.D.");

                        return false;

            }

 

            // Check to ensure that the month is in range

            if (valNumber(dobArray[1],10))

                        newMonth = parseInt(dobArray[1],10);

            else return false;

            if ((newMonth < 1) || (newMonth > 12))

            {

                        //alert("Invalid Date. Check the Month Value");

                        return false;

            }

 

            // Check to ensure that the date is in range

            if (valNumber(dobArray[0],10))

                        newDate = parseInt(dobArray[0],10);

            else return false;

            if ((newDate < 1) || (newDate > 31))

            {

                        //alert("Invalid Date");

                        return false;

            }

 

            // Check to ensure the end-date, w.r.t the month

            if (newMonth != 2)

            {

                        if (newDate > monthArray[newMonth])

                        {

                                    //alert("Invalid Date");

                                    return false;

                        }

                        else

                                    return true;

            }

            else

            {

                        // For february, also check the end-date w.r.t the year

                        if (isLeapYear(newYear))

                        {

                                    if (newDate > 29)

                                    {

                                                //alert("Invalid Date");

                                                return false;

                                    }

                        }

                        else

                        {

                                    if (newDate > 28)

                                    {

                                                //alert("Invalid Date");

                                                return false;

                                    }

                        }

                        return true;

            }

}

 

function valNumber(x)

{

   var anum=/(^-?\d+$)|(^-?\d+$)/;

   if (anum.test(x)) 

            {

                return true;

            }

            else

            {

                        return false;

            }

}

 
function checkFormat(filenameObj)
{
	var filename=filenameObj.value;
	
	var extn=filename.substring(filename.lastIndexOf(".")+1);
	extn=extn.toLowerCase();
	
	if(extn =="jpg" || extn=="pdf" || extn=="nsd" || extn=="jif"){
		return true;
	}
		
	else{
		
		return false;
	}

	
	return true;
}


function charLengthValidation(fmtxt,minlength,maxlength){
	var fmtxt1=fmtxt.value;
	if(fmtxt1 == "")
		return false;
	if(fmtxt1.length < minlength){
		alert("Entered Char Length should not be less than "+minlength); 
		fmtxt.focus();
		return false;
	}
	if(fmtxt1.length > maxlength){
		alert("Entered Char Length should not be greater than "+maxlength); 
		fmtxt.focus();
		return false;
	}
	return true;
}


function checkFutureDate(date){

if(date.value == "")
		return false;
	if(!checkDate(date)){
		date.focus();
		return true;
	}
	
	if(!isFutureDate(date.value)){
		date.focus();
		return true;
	}

}




function checkSpecialChar(filenameObj){
	var txtProname=Trim(filenameObj.value);
		
		if(txtProname == "")
			return false;
		var charpos = txtProname.search("[~`!@'#$%^&*()=+|}{;?/>< */\"]"); 
		
		 if(txtProname.length > 0 &&  charpos >= 0) 
			return false; 

}
 
function SpecialCharCheck(special)
{

 var txtProname=Trim(special.value);
 special.value=txtProname;
//alert("####"+txtProname+"****");

 var charpos = txtProname.search("<>"); 
   if(txtProname.length > 0 &&  charpos >= 0) 
   { 
    
    var strError = "Invalid Characters";
     strError=strError +"\n"+ "[Error character position";
     strError=strError + eval(charpos+1)+"]";
     alert(strError); 
 	 special.focus();
    return false; 
   }
 
}

function isNumberWithZero(numtxt) 
 
{
  
  numtxt.value = LTrim(numtxt.value);	
		
	var ch;
  var num=numtxt.value;
  var flag=true;
  
  
  var array=num.split(".");
  if(array.length >1 ){
   alert("Decimal is not allowed. Please Enter a Valid Number");
   //fmtxt.value="";
   numtxt.focus();
   return;
  }

    for (var i = 0 ;i<num.length ; i++) 
		        {
                ch = num.charAt(i);
 
                if (ch < "0" || ch > "9" )
                {
                 flag=false;
                }
    
        }
   if(!flag){
   alert("Please Enter a Valid Number");
   numtxt.focus();
   return false;
  }
  
  return true;
}

// UsmanGani 14th Mar 2008


function checkDateVoyageTime1(date){
 if(date.value == "")
  return false;
 if(!checkDateVoyageTime(date)){
  date.focus();
  return true;
 }
 
 if(!isFutureDateTime(date.value)){
  date.focus();
  return true;
 }
}


function checkDateVoyageTime(date){
d = date.value;
if(d != "") {       

var blankosition =d.charAt(10);
            if(blankosition!=" ")

      {
		  alert("Invalid format.");
          return false;
      }          
      var date = d.substring(0, 10);
    var  time  = d.substring(11, 19);               
//added by vijay for time

if( validateVoyageTime(time)==false ) {
        return false;
  }
//add end
if( validateDate(date)==false ) {
        alert("You have entered an invalid date.");                         
        return false;
  }
 }
  return true;
}
 
function validateVoyageTime(timeStr)

{

           timeArray = new Array();
            timeArray[1] = 23;
            timeArray[2] = 59;
            timeArray[3] = 59;       
            index=0;
            dobArray = new Array();
            dobArray[0] = "";
            dobArray[1] = "";
            dobArray[2] = "";
            for (count=0; count < timeStr.length; count++)
            {
              if (timeStr.charAt(count) != ":")
               {
                 dobArray[index] = dobArray[index] + timeStr.charAt(count);
               }
               else
               {
                 index = index+1;
               }
            }
            if (index >= 3)
            {           return false;
            }
            if ((dobArray[0] == "") ||
          (dobArray[1] == "") )
            {
             return false;
           }
if ((dobArray[0].length > 2) ||
           (dobArray[1].length > 2) )
           {
            return false;
            }

            // Check to ensure that the month is in range
            if (valNumber(dobArray[1],10))
                        newMinutes = parseInt(dobArray[1],10);
            else return false;
            if ((newMinutes < 0) || (newMinutes > 59))
            {
          alert("Invalid time. Check the Minutes Value");
             return false;
            }
            // Check to ensure that the date is in range

           if (valNumber(dobArray[0],10))
                        newHours = parseInt(dobArray[0],10);
            else return false;
            if ((newHours < 0) || (newHours > 23))
            {
             alert("Invalid time. Check the Hours Value");
             return false;
            }
      

}

function validatrFromToDate(date){
d = date.value;
if(d != "") {
  if( fromToDateValidatorFunc(d)==false ) {
       // alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
		date.focus();
        return false;
  }
 }
  return true;
}

function fromToDateValidatorFunc(dateStr){

			monthArray = new Array();monthArray[1] = 31;monthArray[3] = 31;monthArray[4] = 30;monthArray[5] = 31;monthArray[6] = 30;
            monthArray[7] = 31;monthArray[8] = 31;monthArray[9] = 30;monthArray[10] = 31;monthArray[11] = 30;monthArray[12] = 31;
            index=0;
            dobArray = new Array();dobArray[0] = "";dobArray[1] = "";dobArray[2] = "";
            for (count=0; count < dateStr.length; count++){
                        if (dateStr.charAt(count) != "/")
                                    dobArray[index] = dobArray[index] + dateStr.charAt(count);
                        else
	                        index = index+1;
            }
            if (index >= 3){       
				alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
				return false;
            }
			if ((dobArray[0] == "") || (dobArray[1] == "") ||  (dobArray[2] == "")){
				 alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
                 return false;
           }
            if ((dobArray[0].length > 2) ||  (dobArray[1].length > 2) || (dobArray[2].length > 4)) {
				alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
                return false;
            }
            if (chkNumber(dobArray[2],10))
                        newYear = parseInt(dobArray[2],10);
            else{
				 alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
				 return false;
			}
			if ((newYear < 1900)){
                  alert("Please enter a date after 1900 A.D.");
                  return false;
            }
            // Check to ensure that the month is in range
            if (chkNumber(dobArray[1],10))
                        newMonth = parseInt(dobArray[1],10);
            else{
				 alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
				return false;
			}
            if ((newMonth < 1) || (newMonth > 12)){
                   //alert("Invalid Date. Check the Month Value");
				    alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
                    return false;
			}
            // Check to ensure that the date is in range
            if (chkNumber(dobArray[0],10))
                        newDate = parseInt(dobArray[0],10);
            else{
				alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
				return false;
			}
            if ((newDate < 1) || (newDate > 31)) {
                //alert("Invalid Date");
				 alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
                 return false;
            }
            // Check to ensure the end-date, w.r.t the month
			if (newMonth != 2){
                 if (newDate > monthArray[newMonth]){
						alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
                        return false;
                  }
                  else
                       return true;
            }
            else{
				if (isLeapYear(newYear)){
                   if (newDate > 29){
						 alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
                         return false;
		            }
                 }
				 else{
					if (newDate > 28){
						 alert("Please Enter Valid Date Format (dd/mm/yyyy)");   
                          return false;
					}
                 }
                        return true;
            }

}

function displayAdvancedSearch() {
            document.getElementById('ipapcsAdvancedSearchTableID').style.display = '';          
            document.getElementById('ipapcsSearchHideTableID').style.display = ''; 
            document.getElementById('ipapcsSearchDisplayTableID').style.display = 'none';
}

function hideAdvancedSearch() {
            document.getElementById('ipapcsAdvancedSearchTableID').style.display = 'none';
            document.getElementById('ipapcsSearchDisplayTableID').style.display = ''; 
            document.getElementById('ipapcsSearchHideTableID').style.display = 'none';

}

function compareFromToDate(date1, date2){
	var FRMDvalue = date1.value;
	var TODTvalue = date2.value;
	var FRMDdate = FRMDvalue.split("/");  
	var FRMDentered = new Date(FRMDdate[2],parseInt(FRMDdate[1]-1), FRMDdate[0]);
	var TODTdate = TODTvalue.split("/");
	var TODTentered = new Date( TODTdate[2],parseInt(TODTdate[1]-1), TODTdate[0]);           
	if(FRMDentered > TODTentered){
		alert("Created From Date should be less than or equal to Created To Date");
		date1.focus();
		return false;
	}
	 return true;
}

//Negative Temperature COPRAR--08-09-2009
function isFloatNegative(num,befdot,aftdot,ty,te){
        if (num.length == 0) return true;	       
        var vat = num.indexOf(".");
        var vat3 = num.lastIndexOf(".");
		    if (vat != vat3) return false;
           
            
		var vatminus = num.indexOf("-");
        var vatminus3 = num.lastIndexOf("-");	
        if (vatminus != vatminus3) return false;
	    if (vat > (befdot-1) && vatminus != 0) return false;  

        var ch;
        for (var i=0; i<num.length ; i++) {
                ch = num.substring(i,i+1);
				if (ch == "-") continue;
                if (ch == ".") continue;				
				if (ch <"0" || ch >"9" ) return false;
        }

		    if (vatminus == -1 && vat == -1){				
	        var numvalue = num.substring(vatminus+1,num.length);		
	        if (numvalue.length > (befdot-1)) return false;		   
            	}

        if (vat != -1) {		
                 if (vat > befdot) return false; 				
	           var vat1 = num.substring(vat+1,num.length);			   
                if ((vat1.length > aftdot) || (vat1.length < (aftdot-1))) return false; 
           }  else {			  
                if (num.length > befdot) return false;
               } 
		

	 if (vatminus != -1){	
	    if (vatminus != 0) return false;	
	       if (vatminus3 != 0) return false;		  
	          if(vatminus > befdot) return false;      
	      	     }
		 
         return true;
} //End of isFloatNegative

//Negative Temperature COPRAR--08-09-2009
function ValidateFloatPrecisionNeg(fmtxt, width, preci,widthone,precione)  
{
	 fmtxt.value = LTrim(fmtxt.value);

	if(fmtxt.value=="."){
	alert(" Decimals is not allowed ");
	fmtxt.value="";
	 fmtxt.focus();
	 }
 
   if(fmtxt.value=="-"){
	alert(" Only Minus is not allowed ");
	fmtxt.value="";
	 fmtxt.focus();
	 }
	  if(fmtxt.value==".-" || fmtxt.value=="-."){
	alert(" Invalid Entry, Only Dot & Minus are not allowed ");
	fmtxt.value="";
	 fmtxt.focus();
	 }

  if(fmtxt.value=="-0" || fmtxt.value=="0-"){		
	alert(" Invalid Entry, Please enter correct Temperature value ");
	fmtxt.value="";
	 fmtxt.focus();
	 }

   if(!isFloatNegative(fmtxt.value,width,preci,widthone,precione)) {
      alert("Invalid entry - use format as (" + widthone + "," +precione + ")"); 
     fmtxt.value = LTrim(fmtxt.value);
	 fmtxt.focus();
	  return false;
   }

   return "";
} //End of ValidateFloatPrecisionNeg

function GetXmlHttpObject() {
  var xmlHttp=null;
  try
    {
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  return xmlHttp;
}

//end