if ('undefined' == typeof String.prototype.trim) {
  String.prototype.trim = function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  }
}

var form = "";
var submitted = false;
var error = false;
var error_message = "";

/*

This function checks the empty space found in the filed and gives the
error message accordingly

*/
function onlymessage(message)
{
  
     error_message = error_message + "* " + message + "\n";
      error = true;
    
}

function check_empty_sel(field_name,message)
{
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden"))
  {

    var field_value = form.elements[field_name].value;

    var k
    k=replaceAll(field_value," ", "")
    
    if ((field_value == '') || (k=='') )
    {
     error_message = error_message + "* " + message + "\n";
	 
      error = true;
    }
    
  }
}


function check_empty(field_name,message)
{
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden"))
  {

    var field_value = form.elements[field_name].value;
    
    var k
    k=replaceAll(field_value," ", "")
    
    if ((field_value == '') || (k=='') )
    {
     error_message = error_message + "* " + message + "\n";
      error = true;
    }
    
  }
}

function check_agree(field_name,message)
{
 //alert(window.document.form1.agree[1].value);
   if(window.document.form1.agree[1].checked==true)
   
   {  
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
    
    
  
}

/*

This function checks the Selected Index is empty or 0 gives the error message
 accordingly.

*/

function check_empty_div(name , message)
{
    z = document.getElementById(name).innerHTML     
    if (z == ''){
        error_message = error_message + "* " + message + "\n";
        error = true;
    }

}


function selected_index(field_name,message)
{
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden"))
  {

    
    
    if (form.elements[field_name].selectedIndex==0)
    {
        
    
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
    
  }
}




/*

This function checks the Selected value is None for particular category then it gives error message
 accordingly.

*/


function selected_value(field_name,message)
{
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden"))
  {

    
    
    if (form.elements[field_name].value=="None")
    {
        
    
      error_message = error_message + "* " + message + "\n";
      error = true;
    }
    
  }
}




/*

This function checks if the checkbox is not selected then it gives the error message
 accordingly.

*/



function check_cbox(field_name,message)
{

    if (form.elements[field_name].checked==false)
    {

         error_message = error_message + "* " + message + "\n";

        error=true;
    }
}



/*

This function checks if the value given for the emailid column is valid or not.if it is not valid it gives the appropriate 
messgae
 

*/

function check_match(field_name1,field_name2,message)
{
    if (form.elements[field_name1].value != form.elements[field_name2].value) {
        error_message = error_message + "* " + message + "\n";
        error=true;
    }
}

function check_notmatch(field_value1,field_value2,message)
{
    if (field_value1 == field_value2) {
        error_message = error_message + "* " + message + "\n";
        error=true;
    }
}



function check_email(field_name,message)
{

 emailStr=form.elements[field_name].value;
 
        if (form.elements[field_name].value=="")
            {

               error_message = error_message + "* " + message + "\n";
                error=true;
            }
    else
    {
        
            var checkTLD=1;
            var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
            var emailPat=/^(.+)@(.+)$/;
            var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
            var validChars="\[^\\s" + specialChars + "\]";
            var quotedUser="(\"[^\"]*\")";
            var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
            var atom=validChars + '+';
            var word="(" + atom + "|" + quotedUser + ")";
            var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
            var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
            var matchArray=emailStr.match(emailPat);
        
            if (matchArray==null)
            {
                   error_message = error_message + "* " + "Email address seems incorrect (check @ and .'s)" + "\n";
                error=true;
                return false;

            }
            
            //note from here
            
              var user=matchArray[1];
                var domain=matchArray[2];
                for (i=0; i<user.length; i++) {
                    if (user.charCodeAt(i)>127) {
                   error_message = error_message + "* " + "The emailid contains invalid characters." + "\n";
                error=true;

                    }
                }
                
                
                
                for (i=0; i<domain.length; i++) {
                    if (domain.charCodeAt(i)>127) {
                   error_message = error_message + "* " + "The domain name contains invalid characters." + "\n";
                error=true;
                    }
                }
                if (user.match(userPat)==null) {
                   error_message = error_message + "* " + "The emailid doesn't seem to be valid." + "\n";
                error=true;
                
                }
                var IPArray=domain.match(ipDomainPat);
                if (IPArray!=null) {
                    for (var i=1;i<=4;i++) {
                        if (IPArray[i]>255) {
                   error_message = error_message + "* " + "Destination IP address is invalid!" + "\n";
                error=true;
                        
                        }
                    }
                }
                var atomPat=new RegExp("^" + atom + "$");
                var domArr=domain.split(".");
                var len=domArr.length;
                for (i=0;i<len;i++) {
                    if (domArr[i].search(atomPat)==-1) {
                       error_message = error_message + "* " + "The domain name does not seem to be valid." + "\n";
                    error=true;
                    
                    }
                }
            
                if (len<2) {
                   error_message = error_message + "* " + "This emailid is missing a hostname!" + "\n";
                error=true;

                }
            
            //note upto here
            
            
            
    
    }
}



/*
This function checks whether the value given for the numeric field  column is valid numeric or not.
if it is not numeric it gives the appropriate messgae
*/



function check_numeric(field_name,message)
{
     if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) 
     {

        var field_value = form.elements[field_name].value;


        if (isNaN(field_value))
        {
         error_message = error_message + "* " + message + "\n";
          error = true;
          }
  }

}




/*

This function checks whether the value given for the Date field  column is valid Date or not.
if it is not valid it gives the appropriate messgae

*/




function Date_format_check(field_name,message)
{

    var str = form.elements[field_name].value;
        
    
    if(str!="")
    {

        var i = 0, count = str.length, j = 0;
        while ((str.charAt(i) != "/" && str.charAt(i) != "-") && i < count)
        i++;
        
        if (i == count || i > 2)
        {
             error_message = error_message + "* " + message + "\n";
              error = true;
        }

        var addOne = false;
        if (i == 2) addOne = true;

        j = i+1;
        i = 0;

        while ((str.charAt(i+j) != "/" && str.charAt(j+i) != "-") && i+j < count)
        i++;

        if (i+j == count || i > 2) 
        {
         error_message = error_message + "* " + message + "\n";
              error = true;
        }

        j = i+3;
        i = 0;

        if (addOne) j++;

        while (i+j < count)
        i++;


        if (i != 2 && i != 4) 
        {
        error = true;
        }
        }
    
}



/*

This function checks whether the value given for the  field  empty or not

*/

function isEmpty(s)
{   
    return ((s == null) || (s.length == 0))
}




/*

This function checks whether the value given for the  field  empty or tabspace or whitespace and returns the New String.

*/

function replaceAll (s, fromStr, toStr)
{
    var new_s = s;
    for (i = 0; i < 100 && new_s.indexOf (fromStr) != -1; i++)
    {
        new_s = new_s.replace (fromStr, toStr);
    }
    return new_s;
}





/*

This function Converts the date format to dd/mm/yy or dd-mm-yy or dd/mm/yyyy or dd-mm-yyyy format

*/

function start_date_format(field_name,message)
{
  if ((form.arrivalMonth.value != "") && (form.arrivalDay.value != "") && (form.arrivalYear.value != "")) {
    var  startdate=form.arrivalMonth.value + "/" +form.arrivalDay.value + "/" + form.arrivalYear.value;
     return startdate
     
    }
   
    else {
        error_message = error_message + "* " + message + "\n";
    error=true;
    }

}




/*

This function Converts the date format to dd/mm/yy or dd-mm-yy or dd/mm/yyyy or dd-mm-yyyy format

*/

function end_date_format(field_name,message)
{

 if ((form.departMonth.value != "") && (form.departDay.value != "") && (form.departYear.value != "")) 
    {
       var enddate =form.departMonth.value + "/" +form.departDay.value + "/" + form.departYear.value;
       return enddate;
    }
   
    else 
    {
  
        error_message = error_message + "* " + message + "\n";
    error=true;
    }

}




/*

This function gives the error message passed from the calling function

*/

function error_message(message)
{
      error_message = error_message + "* " + message + "\n";
      error = true;
  
}




/*

This function passed the form passed in the function and validate the field value accordingly

*/


function check_form(form_name) 
{
  if (submitted == true)
  {
    //alert("This form has already been submitted. Please press Ok and wait for this process to be completed.");
    return true;
  }

   error = false;
   form = form_name;

   check_validate();

  if (error == true)
  {
    alert(error_message);
    return false;
  }
  else
  {
    submitted = true;
    return true;
  }
}





function Check_Lengthlow(field_name,message,lenval)
{
	var lenval1
	lenval1=form.elements[field_name].value
	var lval
	lval=lenval1.length;
    if(lval < lenval)
		{
		error_message = error_message + "* " + message + "\n";	
		error=true;
		}
}


function Check_Lengthhigh(field_name,message,lenval)
{
	var lenval1
	lenval1=form.elements[field_name].value
	var lval
	lval=lenval1.length;
	if(lval> lenval)
		{
		error_message = error_message + "* " + message + "\n";	
		error=true;
		}
}


function find_error(message)
{
	error_message = error_message + "* " + message + "\n";	
		error=true;
}



function showvalue(gt,ids,lt) {
    var isNetscape = false;
    if (navigator.appName == "Netscape") {
        isNetscape = true;
        document.captureEvents(Event.KEYPRESS);
        //document.captureEvents(Event.KEYUP);
    }
    gt.onkeypress=CheckKeyPress;
    function CheckKeyPress(evt) {
        gts=gt.value;
        window.document.getElementById(ids).innerHTML="<p align='right'><font class='formlabel'>"+(gts.length+1)+ " of " + lt + " characters</font>"
        var myKeycode = isNetscape ? evt.which : window.event.keyCode;

        if(gts.length <= lt) {
            return true;
        }
        else {
            if  (myKeycode==8||myKeycode==0) {
                return true;
            }
            else {
                alert("Maximum length is " + lt + " Characters");
                return false;
            }
        }
    }
}


function callcounts(thisval,idval,ck,lt) {
    ccount=thisval.length
    window.document.getElementById(idval).innerHTML="<p align='right'><font class='formlabel'>"+ccount+" of "+ lt + " characters</font>"

    if(thisval.length > lt) {
        thisval=thisval.substring(0,lt);
        if (ck == 1) {
            window.document.form1.txthoteldesc.value=thisval;
        }
        
        alert("Maximum length is " + lt + " Characters");
        ccount=thisval.length
        window.document.getElementById(idval).innerHTML="<p align='right'><font class='formlabel'>"+ccount+" of "+ lt + " characters</font>"
    }
}

function getOffsetLeft(o){
    var ol=o.offsetLeft;
    while((o=o.offsetParent)!=null){
        ol+=o.offsetLeft;
    }
    return ol
}

function getOffsetTop (o) {
    var ot=o.offsetTop;
    while((o=o.offsetParent)!=null){
        ot+=o.offsetTop;
    }
    return ot
}

function libGetLoc(o){
    var c=new
    Object();
    c.x=getOffsetLeft(o);
    c.y=getOffsetTop(o);
    return c
}

function move_vertical(moved, unmoved){
    var b=document.getElementById(moved);
    var a=document.getElementById(unmoved);
    if (!a || !b) return false;
    if (document.body.scrollTop<getOffsetTop(a)) {
        b.style.top=getOffsetTop(a)+"px";
    } 
    else b.style.top=document.body.scrollTop+15+"px";
    return true;
}

