﻿/*********************************************Calender *********************************************************/
var js_commn=new JF_Common();
var GlMapstat="N";
function JF_LoadHtlPge()
{
    JF_SetSlide();
    //setTimeout('JF_Play();',3000);
//    if(document.getElementById("hid_latitude"))
//    {
//    if(document.getElementById("hid_latitude").value != "" && document.getElementById("hid_longitude").value != "")
//    JF_SetGmap(document.getElementById("hid_latitude").value, document.getElementById("hid_longitude").value, document.getElementById("hid_est_nam").value, document.getElementById("Hid_NonSecureServer").value);
//    }
    
    if(document.getElementById('img_prv')) document.getElementById('img_prv').style.display="none";
    if(document.getElementById('hid_mnu_cnt'))
    {
        if(document.getElementById('hid_mnu_cnt').value <6)
        {
           
            if(document.getElementById('img_nxt')) document.getElementById('img_nxt').style.display="none";
        }
    }
    
        
}
function JF_Calender(id,obj)
{
    try
    {         
        var objCal=new PopUpCalendar();
        objCal.turnOffOnYearSpan(true);
        objCal.CurrentDate(document.getElementById("hid_Serverdt").value);
          if(id == 'sle_chkindt')
	        objCal.CheckInDate(true);
        objCal.show(document.getElementById(id),'dd-mm-yyyy',obj);       
    }
    catch(e)
    {
       alert("Cal:"+e.description);
    }
}
function JF_CalOnblur(objid)
{   
  try
    { 
        var objDate = new JF_Date();
        objDate.CurrentSrvrDate(document.getElementById("hid_Serverdt").value);
        objDate.DayFormatOption("F");
        objDate.FormatControlVal(objid);
    }
    catch(e)
    {
       alert("Cal Valid:"+e.description);
    }
}
function JF_CalOnchange()
{
  try
    {
        var objDate = new JF_Date();
        objDate.CurrentSrvrDate(document.getElementById("hid_Serverdt").value);
        objDate.DayFormatOption("F");
        objDate.FormatControlVal('sle_chkindt');
        objDate.FormatDeptDate('sle_chkindt','sle_chkoutdt');
        
     }
    catch(e)
    {
       alert("Cal Valid:"+e.description);
    }
}


function JF_CalOnchange1()
{
  try
    {
        var objDate = new JF_Date();
        objDate.CurrentSrvrDate(document.getElementById("hid_Serverdt").value);
        objDate.DayFormatOption("F");
        objDate.FormatControlVal('sle_ckin_date');
        objDate.FormatDeptDate('sle_ckin_date','sle_ckout_date');
        
     }
    catch(e)
    {
       alert("Cal Valid:"+e.description);
    }
}
/*********************************************Gmap*********************************************************/
function JF_SetGmap(lat,longi,htlnam,domainurl)
{
   try
    {  
    GlMapstat="Y";
         var mapObj = new JF_Gmap();
         mapObj.SetMapObj("dv_htlmap",false,'657','442'); 
         mapObj.SetMapZoom(16);
         if(document.getElementById('Hid_MapZoom')) mapObj.SetLoadZoom(document.getElementById('Hid_MapZoom').value);         
         mapObj.HtlNamMarkerReq(true);
         mapObj.SetLatitude(lat);
         mapObj.SetLongitude(longi);
         mapObj.SetHtlName(htlnam); 
         mapObj.SetMapIcon("map_office_icon.png");
         mapObj.SetMapIconSize(20,34);
         mapObj.SetDomainUrl(domainurl+"images/");
         mapObj.MarkerToolTipReq(false);       
         mapObj.Loadmap();
         
    }
    catch(e)
    {
       alert(e.description);
    }

}
function JF_ShowMap(as_flg)
{


	if(as_flg == 'M')
	{
		document.getElementById('dv_htlmap').style.display = '';
		document.getElementById('dv_htlDtl').style.display = 'none';
		document.getElementById('dv_reqst').style.display = 'none';
		document.getElementById('li_Det').style.background = 'url(images/hm_nav_bg.jpg) no-repeat';
		document.getElementById('li_Map').style.background = 'url(images/btn_tours.jpg) no-repeat';
		document.getElementById('sp_dtls').style.color="#183d8d";
		document.getElementById('sp_Map').style.color="white";
        if(document.getElementById('sp_Req'))document.getElementById('sp_Req').style.color="#183d8d";
        
		document.getElementById('liReq').style.background = 'url(images/hm_nav_bg.jpg) no-repeat';
		if(GlMapstat=="N")
		{
            if(document.getElementById("hid_latitude"))
            {
                if(document.getElementById("hid_latitude").value != "" && document.getElementById("hid_longitude").value != "")
                JF_SetGmap(document.getElementById("hid_latitude").value, document.getElementById("hid_longitude").value, document.getElementById("hid_est_nam").value, document.getElementById("Hid_NonSecureServer").value);
            }
        }
	}
	if(as_flg == 'D')
	{
		document.getElementById('dv_htlmap').style.display = 'none';
		document.getElementById('dv_htlDtl').style.display = '';
		document.getElementById('dv_reqst').style.display = 'none';
		document.getElementById('li_Map').style.background = 'url(images/hm_nav_bg.jpg) no-repeat';
		document.getElementById('li_Det').style.background = 'url(images/btn_tours.jpg) no-repeat';
		document.getElementById('liReq').style.background = 'url(images/hm_nav_bg.jpg) no-repeat';
		document.getElementById('sp_dtls').style.color="white";
		document.getElementById('sp_Map').style.color="#183d8d";
       if(document.getElementById('sp_Req')) document.getElementById('sp_Req').style.color="#183d8d";
        
	}
	if(as_flg == 'R')
	{
		document.getElementById('dv_htlmap').style.display = 'none';
		document.getElementById('dv_htlDtl').style.display = 'none';
		document.getElementById('dv_reqst').style.display = '';
		document.getElementById('li_Map').style.background = 'url(images/hm_nav_bg.jpg) no-repeat';
		document.getElementById('li_Det').style.background = 'url(images/hm_nav_bg.jpg) no-repeat';
		document.getElementById('liReq').style.background = 'url(images/btn_tours.jpg) no-repeat';
		document.getElementById('sp_dtls').style.color="#183d8d";
		document.getElementById('sp_Map').style.color="#183d8d";
        if(document.getElementById('sp_Req'))document.getElementById('sp_Req').style.color="white";
   
	}
}

function JF_ViewRates()
{
    var objDate = new JF_Date();    
    objDate.CurrentSrvrDate(document.getElementById("hid_Serverdt").value)
    if(!objDate.isValidFromAndToDate('sle_chkindt', 'Check-in Date','sle_chkoutdt', 'Check-out Date')) return false;
    
    if(objDate.isDateMoreThanYear('sle_chkindt'))
    {        
        alert("Check-in Date should not be more than a year.");
        return false;
    }    
    var js_numofNights = objDate.NumOfNights('sle_chkindt','sle_chkoutdt');
    if(js_numofNights > 15)
    {    var tel=document.getElementById("hid_ConTel").value
        var email= document.getElementById("hid_ConEmail").value   
        alert('Please contact us by phone or email if you would like to book for more than 15 nights.\rOur long stay rates are heavily discounted. \r Phone: +'+tel+', Email:'+email+'');return false;
    }    
    document.forms[0].action="bhrcv1_hotel_rates.aspx";
    document.forms[0].submit();

}
/************************************************Nearby Hotels*****************************************************/
function JF_DisplayPage(idisppage,icnt)
{
   if(JF_GetObject('div_nearbyhtl_'+idisppage))
   {
       JF_GetObject('div_nearbyhtl_'+idisppage).style.display ='none';
       if(JF_GetObject('div_nearbyhtl_'+icnt))
         JF_GetObject('div_nearbyhtl_'+icnt).style.display ='';
   }
}
/****************************************************General *******************************************************/
function JF_GetObject(sobj)
{
   if (document.getElementById(sobj)== null)
     return(document.getElementsByName(sobj))
   else
     return(document.getElementById(sobj))            
}

function JF_ShowVKnw()
{
if(document.getElementById("dv_weknow"))document.getElementById("dv_weknow").style.display ='none';
document.getElementById("dv_VstAdds").style.display ='';
document.getElementById("dv_VstImg").style.display ='';
if(document.getElementById("dv_VstStImg"))document.getElementById("dv_VstStImg").style.display ='';
if(document.getElementById("dv_Vstvknw"))document.getElementById("dv_Vstvknw").style.display ='';
}


/*******************************************General**************************************************************/

function JF_CallAjax(CallBackMethod,RqXml,opt,classid)
{
    jsgetdata=null;
	jsgetdata = new LSGetData();
	jsgetdata.SetParam(RqXml);
	jsgetdata.SetAsycMethod(CallBackMethod);
	jsgetdata.SetErrMethod("JF_ErrorAjax");
	jsgetdata.ShowDiv(false);
	jsgetdata.SetOptionFlag(opt);
	jsgetdata.SetClassId(classid);
	jsgetdata.GetData();
}
function JF_ErrorAjax(error,opt)
{
    try   
    {     
       alert(error);        
    }
    catch(exp)
    {      
      alert("Error Ajax:"+exp.message);      
    }  
}
function JsStringBuilder()
{
	var _AppndString="";	
	this.Append = Append;
	this.ToString = ToString;
	function Append(sData)
	{
		_AppndString = _AppndString.concat(sData);
	}
	function ToString()
	{
		return _AppndString;
	}
}
function JF_GetNodeval(xmlobj,tagname,inodecnt)
 {
  try   
    { 
       if(xmlobj && 
          xmlobj.getElementsByTagName(tagname).length >0 &&
          xmlobj.getElementsByTagName(tagname)[inodecnt] !=null)
          {
            return xmlobj.getElementsByTagName(tagname)[inodecnt].childNodes[0].nodeValue;
          }
       else
          return "";      
    }
    catch(exp)
    {      
      return "";
    } 
}
 function JF_Innertext(obj)
 {
   if(document.all)
     return obj.innerText;
   else
     return obj.textContent;
 } 
function JF_ObjectPosition(obj) 
{
      var curleft=curtop=height = 0;
      //var height=0;
      if (obj.offsetParent) 
      {
        height=obj.offsetHeight;
        do
         {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
         } 
        while (obj = obj.offsetParent);
        
      }
      return [curleft,curtop,height];
}
function JF_SetRateDesc(sval)
{            
    try
    {
        if(sval !="")
        {
            var sb = new JsStringBuilder();
            sb.Append(sval.substring(0,1).toUpperCase());
            sb.Append(sval.substring(1,(sval.length)).toLowerCase());
            return sb.ToString();
        }
        else
          return sval;
    }
    catch(exp)
    {  
       return sval;
    }
}

function JF_Vst()
{
var xm = new LSCreateXML();
    xm.StartTag("root");
    xm.AddParam("Guid",JF_GetObject("Hid_Guid").value);
    xm.AddParam("SiteId",JF_GetObject("hid_siteid").value);
    xm.AddParam("CustCd",JF_GetObject("hid_cust_cd").value);
    xm.EndTag();
    JF_CallAjax("JF_GetDtl",xm.GetXml(),"","VISITCENTER");
}
function JF_GetDtl()
{
var output=jsgetdata.OutPut();
JF_ShowVKnw();
var J_Vid=document.getElementById("sle_VCen").value;
var xmlobj
var stat="";
                //output=output.replace(/&amp;lt;BR&amp;gt;/g,"&lt;BR&gt;");    
                xmlobj = FnXMLObject(output);  
                var xmldtls=xmlobj.getElementsByTagName("row");
                    if(xmldtls.length >0)
                    {
                        for (var j=0;j<xmldtls.length;j++)
                        {  
                        if(xmldtls[j].attributes.getNamedItem("assn_desc").value==J_Vid)
                        {
                        stat="Y";
                            document.getElementById("dv_desc").innerHTML=xmldtls[j].attributes.getNamedItem("assn_desc").value
                             document.getElementById("dv_VstAdds").innerHTML=xmldtls[j].attributes.getNamedItem("address").value
                             document.getElementById("dv_VImg").innerHTML="<img src=\"images/"+xmldtls[j].attributes.getNamedItem("img_nam").value+"\" width=\"389\" height=\"226\" style=\"margin-top:10px;\" />";
                             
                        }
                        }  
                        } 
                        
                        if(stat!="Y")
                        {
                        if(document.getElementById("dv_weknow"))document.getElementById("dv_weknow").style.display ='';
                            document.getElementById("dv_VstAdds").style.display ='none';
                            document.getElementById("dv_VstImg").style.display ='none';
                        if(document.getElementById("dv_VstStImg"))document.getElementById("dv_VstStImg").style.display ='none';
                        if(document.getElementById("dv_Vstvknw"))document.getElementById("dv_Vstvknw").style.display ='none';
                        
                        }

}

function jf_menu(js_id,js_li_id,js_cid)
{

document.getElementById('hid_Cur').value=js_cid;
var tcnt=document.getElementById('hid_mnu_cnt').value;
if(document.getElementById(js_li_id))
{
    document.getElementById(js_li_id).style.backgroundColor="#FFFFFF";
    document.getElementById(js_li_id).style.borderBottom="solid 2px #ffffff";
    
    
    var oldid=document.getElementById('hid_li_id').value;
    if(oldid !=js_li_id)
    {
     document.getElementById(oldid).style.backgroundColor="";
     document.getElementById(oldid).style.borderBottom="solid 2px #b1cede";
     }
     
     document.getElementById('hid_li_id').value=js_li_id;
}
for(var i=1; i<tcnt;i++)
{
    if(document.getElementById('dvmnu_'+i))
    {
    if(js_id=='dvmnu_'+i)document.getElementById('dvmnu_'+i).style.display ='';
        else document.getElementById('dvmnu_'+i).style.display ='none';
    }
}

}

function JF_SaveMail()
{
    var js_email=js_commn.GetObj('sle_Email');
     if(!js_commn.JF_ChkNoQuotes(js_email,'Email'))return false;
    if(!js_commn.isValidEmail(js_email,'Email'))return false;
	    var xm = new LSCreateXML();
        xm.StartTag("REGUserEmail");
        xm.AddParam("guid",document.getElementById("Hid_Guid").value);
        xm.AddParam("Site_id",document.getElementById("hid_siteid").value);
        xm.AddParam("Email_id",document.getElementById("sle_Email").value);
        xm.EndTag();
        JsCallAjax("JF_Reslt",xm.GetXml(), "REGUSREMAIL", false);
}
function JF_Reslt()
{
    try
    {
        js_retstring = js_Ajx_ts.OutPut();
               
    }
    catch(excep){}
}




function Lf_Gst_Validate()
{
   var js_tit=js_commn.GetObj('sle_tit'); 
  var js_name=js_commn.GetObj('sle_name');
  var js_surname=js_commn.GetObj('sle_surname');
  var js_address=js_commn.GetObj('sle_address');
  var js_email=js_commn.GetObj('sle_Email');
  var js_ckin=js_commn.GetObj('sle_ckin_date');
  var js_ckout=js_commn.GetObj('sle_ckout_date');
  var js_tel=js_commn.GetObj('sle_tel');
  
  if(js_tit.selectedIndex==0){
    alert('Please select title');js_tit.focus();return false;}
  

    if(js_name.value==js_name.title)
    {
    alert('Please Enter First Name');js_name.focus();return false;}
    
    if(!js_commn.isNullOrEmpty(js_name,'First Name'))return false;
    if(!js_commn.JF_ChkNoQuotes(js_name,'First Name'))return false;
    
    if(js_surname.value==js_surname.title)
    {
    alert('Please Enter Last Name');js_surname.focus();return false;}
    
    if(!js_commn.isNullOrEmpty(js_surname,'Last Name'))return false;
    if(!js_commn.JF_ChkNoQuotes(js_surname,'Last Name'))return false;
    
 if(!js_commn.isNullOrEmpty(js_tel,'Telephone Number'))return false;
    if(!js_commn.JF_ChkNoQuotes(js_tel,'Telephone Number'))return false;
    
     if(!js_commn.isNullOrEmpty(js_address,'Address'))return false;
    if(!js_commn.JF_ChkNoQuotes(js_address,'Address'))return false;

   if(!js_commn.isNullOrEmpty(js_email,'Email'))return false;
    if(!js_commn.JF_ChkNoQuotes(js_email,'Email'))return false;
    if(!js_commn.isValidEmail(js_email,'Email'))return false;
    
       var objDate = new JF_Date(); 
   
    if(!objDate.isValidFromAndToDate('sle_ckin_date', 'Arrival Date', 'sle_ckout_date', 'Departure Date')) return;
    
    if(document.getElementById('cbx_ex').checked==true) document.getElementById('hid_ckrm').value="E";
    if(document.getElementById('cbx_suit').checked==true) document.getElementById('hid_ckrm').value=document.getElementById('hid_ckrm').value+","+"S";
    
    if(document.getElementById('chk_Hop').checked==true)document.getElementById('hid_Tour_dtls').value="London City Tour Hop On Hop Off";
    if(document.getElementById('chk_bath').checked==true)document.getElementById('hid_Tour_dtls').value=document.getElementById('hid_Tour_dtls').value+", Bath & Stonehenge";
    if(document.getElementById('chk_Upon').checked==true)document.getElementById('hid_Tour_dtls').value=document.getElementById('hid_Tour_dtls').value+", Startford Upon Avon & Oxford ";
    if(document.getElementById('chk_nit').checked==true)document.getElementById('hid_Tour_dtls').value=document.getElementById('hid_Tour_dtls').value+", London Tour by Night";
    if(document.getElementById('chk_castle').checked==true)document.getElementById('hid_Tour_dtls').value=document.getElementById('hid_Tour_dtls').value+",Windsor Castle  & Bath";
    if(document.getElementById('chk_oxford').checked==true)document.getElementById('hid_Tour_dtls').value=document.getElementById('hid_Tour_dtls').value+", Oxford Cambridge";
    
    
    
    if(document.getElementById('cbk_la_1').checked==true) document.getElementById('hid_ckldn').value="1";
    if(document.getElementById('cbk_la_2').checked==true) document.getElementById('hid_ckldn').value=document.getElementById('hid_ckldn').value+","+"2";
    if(document.getElementById('cbk_la_3').checked==true) document.getElementById('hid_ckldn').value=document.getElementById('hid_ckldn').value+","+"3";
    if(document.getElementById('cbk_la_4').checked==true) document.getElementById('hid_ckldn').value=document.getElementById('hid_ckldn').value+","+"4";
    if(document.getElementById('cbk_la_5').checked==true) document.getElementById('hid_ckldn').value=document.getElementById('hid_ckldn').value+","+"5";
    if(document.getElementById('cbk_stat').checked==true) 
    {
    JF_SaveMail();
    document.getElementById('hid_ckstat').value="T";
    }
    
    if(document.getElementById('hid_offr') && document.getElementById('hid_offr').value=="Y" )
    {
        Loading();
    document.forms[0].action="bhrcv1_book_mail.aspx";
    document.forms[0].submit();
    }
    else
    { 
   
     document.forms[0].action="bhrcv1_inter_srv_rqst.aspx";
    document.forms[0].submit();
    }
}

function JF_SldNxt()
{
var Cnt=document.getElementById('hid_mnu_cnt').value;
var lst=document.getElementById('hid_Last').value;
var fst=document.getElementById('hid_First').value;
if(document.getElementById('img_prv'))document.getElementById('img_prv').style.display="";
Cnt=parseInt(Cnt-1);
if(lst<Cnt)
{
lst=parseInt(lst)+1;
document.getElementById('li_'+fst).style.display="none";
document.getElementById('li_'+lst).style.display="";
fst=parseInt(fst)+1;

document.getElementById('hid_Last').value=lst
document.getElementById('hid_First').value=fst

if(document.getElementById('hid_Cur').value <fst)
{
        jf_menu('dvmnu_'+fst,'li_'+fst,fst)
}
if(lst==Cnt)if(document.getElementById('img_nxt')) document.getElementById('img_nxt').style.display="none";

}

}
function JF_SldPrv()
{
var Cnt=document.getElementById('hid_mnu_cnt').value;
var lst=document.getElementById('hid_Last').value;
var fst=document.getElementById('hid_First').value;
if(document.getElementById('img_nxt')) document.getElementById('img_nxt').style.display="";
if(fst>1)
{

fst=parseInt(fst)-1;
document.getElementById('li_'+fst).style.display="";
document.getElementById('li_'+lst).style.display="none";

lst=parseInt(lst)-1;
document.getElementById('hid_Last').value=lst
document.getElementById('hid_First').value=fst
if(document.getElementById('hid_Cur').value >lst)
{
        jf_menu('dvmnu_'+lst,'li_'+lst,lst)
}
}
if(fst==1)if(document.getElementById('img_prv')) document.getElementById('img_prv').style.display="none";


}








/************  Common Purpose Validation  ************/

function JF_ValidateOnchange1(frmDateID)
{
     var objDate = new JF_Date();    
    objDate.DayFormatOption("F");// For Previous Date
    objDate.FormatControlVal(frmDateID);
    
}

function JF_ValidateOnchange(frmDateID)
{
     var objDate = new JF_Date();
    objDate.CurrentSrvrDate(document.getElementById(js_SrchCtrlID + '_hid_currdate').value);
    objDate.DayFormatOption("F");// For Previous Date
    objDate.FormatControlVal(frmDateID);
    objDate.FormatDeptDate(frmDateID, js_SrchCtrlID + '_sle_ChkOutDt');
}

function JF_Common()
{
    this.ShowObj=ShowObj;
    this.HideObj=HideObj;
    this.GetObj=GetObj;
    this.isNullOrEmpty=isNullOrEmpty;
    this.JF_ChkNoQuotes=JF_ChkNoQuotes;
    this.Trim=Trim;
    this.LTrim=LTrim;
    this.RTrim=RTrim;
    this.isValidEmail=isValidEmail;
    this.isNumericVal=isNumericVal;
    this.JF_ChkCreditCard=JF_ChkCreditCard;
    this.findPosX=findPosX;
    this.findPosY=findPosY;
    
    function ShowObj(val){
                var obj=GetObj(val);
                obj.style.display='block';
    }
    function HideObj(val){
                var obj=GetObj(val);
                obj.style.display='none';
    }
    function GetObj(val){
        return document.getElementById(val);
    }
    function isNullOrEmpty(as_name, as_label)
    {	
	    var js_val = Trim(as_name.value);
	    var js_err = 'N';
	    if (js_val == "" || js_val== null ) 
	    {
		    js_err= as_label + ' must  be entered.';
	    }
	    else 
	    {
		    for(var i=0;i<js_val.length;i++) 
		    if (js_val.substring(i,i+1) != ' ') break;
		    if (i>=js_val.length) 
		    {
			    js_err= as_label + ' cannot be spaces.'; 
		    }
	    }
	    if (js_err != 'N') 
	    {
		    alert(js_err);
		    as_name.focus();
		    return false;
	    }
	    return true;
    }
    function isNumericVal(as_name, as_label) 
    {
	    var j_string=as_name.value;
	    var js_err="";
	    if (isNaN(j_string)) 
	    { 
		    js_err = as_label + ' should be numeric.'; 
		    alert(js_err) ;
		    as_name.focus();
		    return false;
	    }
	    var j_str=j_string;
	    var ji_ln=j_str.length;
	    for(i=0 ; i<ji_ln; i++)	
	    {
		    js_substr=j_str.substring(i,i+1);
		    if (isNaN(parseInt(js_substr))) 
			    if(!(js_substr=="," || js_substr=="."))
			    {
				    js_err = as_label + ' should be numeric.'; 
				    alert(js_err) ;
		            as_name.focus();
				    return false;
			    } 
	    }
	    return true;
    }
    function JF_ChkNoQuotes(as_name, as_label) 
    { 
	    var js_val = as_name.value;
	    var js_err="";
	    for(var i=0;i<js_val.length;i++) 
	    { 
		    if (js_val.substring(i,i+1) == '"') break;
	    }
	    if (i<js_val.length) 
	    { 
		    js_err= as_label + ' cannot have double quotes.'; 
		    alert(js_err);
		    as_name.focus();
		    return false;
	    }
	    return true;
    }
    function Trim(str)
        {
            trim_str = RTrim(LTrim(str));            
            return trim_str;
        }
    function LTrim(str)
        {
                var whitespace = new String(" \t\n\r");
                var s = new String(str);

                if (whitespace.indexOf(s.charAt(0)) != -1) {
                    // string with leading blank(s)...
                    var j=0, i = s.length;
                    // Iterate from the far left of string until we
                    // don't have any more whitespace...
                    while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
                        j++;
                    // Get the substring from the first non-whitespace
                    // character to the end of the string...
                    s = s.substring(j, i);
                }
                return s;
        }
     function RTrim(str)
        {
                // We don't want to trip JUST spaces, but also tabs,
                // line feeds, etc.  Add anything else you want to
                // "trim" here in Whitespace
                var whitespace = new String(" \t\n\r");
                var s = new String(str);
                if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
                    // string with trailing blank(s)...

                    var i = s.length - 1;       // Get length of string
                    // Iterate from the far right of string until we
                    // don't have any more whitespace...
                    while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
                        i--;
                    // Get the substring from the front of the string to
                    // where the last non-whitespace character is...
                    s = s.substring(0, i+1);
                }
                return s;
        } 
        function findPosX(obj)
          {
            var curleft = 0;
            if(obj.offsetParent)
                while(1) 
                {
                  curleft += obj.offsetLeft;
                  if(!obj.offsetParent)
                    break;
                  obj = obj.offsetParent;
                }
            else if(obj.x)
                curleft += obj.x;
            return curleft;
          }

          function findPosY(obj)
          {
            var curtop = 0;
            if(obj.offsetParent)
                while(1)
                {
                  curtop += obj.offsetTop;
                  if(!obj.offsetParent)
                    break;
                  obj = obj.offsetParent;
                }
            else if(obj.y)
                curtop += obj.y;
            return curtop;
          }
        function isValidEmail(as_name,as_label) 
        {
	        var js_val = Trim(as_name.value);
	        var vs_error='N';
	        if ((js_val != '') && (js_val != null)) 
	        {
		        for (var i =0; i < js_val.length; i++) 
		        if (!(js_val.substring(i,i+1) >= "a"  && js_val.substring(i,i+1) <= "z"))	
		        if (!(js_val.substring(i,i+1) >= "A"  && js_val.substring(i,i+1) <= "Z"))	
		        if (!(js_val.substring(i,i+1) >= "0"  && js_val.substring(i,i+1) <= "9"))	
		        if (!(js_val.substring(i,i+1) == "."  || js_val.substring(i,i+1) == "@" || js_val.substring(i,i+1) == "-" || js_val.substring(i,i+1) == "_" || js_val.substring(i,i+1) == "%" ))
		        {
			        js_err= as_label + ' contains invalid characters.'; 
			        alert(js_err) ;
			        as_name.focus();
			        return false;
		        }
		        if (js_val.length <5 )vs_error='Y';
		        if (js_val.indexOf('@') == -1) vs_error='Y';
		        if (js_val.indexOf('.') == -1) vs_error='Y';
		        js_first=js_val.substring(0,1);
		        js_last=js_val.substring(js_val.length-1);
		        if (js_first=='@' || js_last=='@' || js_first=='.' || js_last=='.') 
		        {
			        vs_error='Y';
		        }
		        jl_pos = js_val.indexOf('@');
		        js_next = js_val.substring(jl_pos+1,jl_pos+2);
		        js_prev = js_val.substring(jl_pos-1,jl_pos);
		        if ((js_next == '.') || (js_prev == '.'))
		        {
			        vs_error='Y';
		        }
		        if (vs_error == 'Y') 
		        {
			        js_err= 'Invalid ' + as_label; 
			        alert(js_err) ;
			        as_name.focus();
			        return false;
		        }
	        }
	        return true;
        }
        
        function JF_ChkCreditCard(as_cardname,as_cardtype,as_label)  
		{
			var js_credit_card, ja_card_typ;
			ji_result=0;
			jl_num=as_cardname.value;
			ji_ln0=jl_num.length;

			/*js_credit_card = as_cardtype.options[as_cardtype.selectedIndex].value;
			if (js_credit_card!="")
			{
				ja_card_typ = js_credit_card.split("-");
			}
			
			for(x=0; x<as_cardtype.length ; x++)
				if  (as_cardtype.options[x].selected)*/
					js_credit_card = as_cardtype.value;
					js_ctype=js_credit_card ;
					{
					charac="";
					for(i=0 ; i<ji_ln0 ; i++)	
					{
						ls_substr=jl_num.substring(i,i+1);
						if (isNaN(parseInt(ls_substr))) 
						{
							if(!(ls_substr=="-" || ls_substr==" " || ls_substr=="/"))
							{
								js_msg="Your entry contains Invalid characters.  It should contain only 0-9,-(hiphen),space or /(forward slash) ";
								ji_result=-1;
							}
						}
						else	
							charac=charac+ls_substr;
					}
					jl_num=charac;
					}
					/* Check for length and Prefix*/
					if (ji_result!=-1)
					{
						ji_result=0;
						jl_num=jl_num.replace(' ','');
						ji_ln=jl_num.length;
						if(js_ctype=="VI")
						{	
							if(jl_num.substring(0,1)!="4")   
							ji_result=ji_result+1;
							if (!(ji_ln ==16 || ji_ln ==13))	
								ji_result=ji_result+2; 
						}
						if(js_ctype=="CA")
						{	
							if (!(jl_num.substring(0,2)=="51" || jl_num.substring(0,2)=="52" || jl_num.substring(0,2)=="53" || jl_num.substring(0,2)=="54" || jl_num.substring(0,2)=="55"))   
							ji_result=ji_result+1;
							if(ji_ln != 16)	
								ji_result=ji_result+2;
						}
						if(js_ctype=="AX")
						{	
							if (!(jl_num.substring(0,2)=="34" || jl_num.substring(0,2)=="37" )) ji_result=ji_result+1;
							if(ji_ln != 15)	ji_result=ji_result+2;
						}
						if(js_ctype=="DC")
						{	
							if (!(jl_num.substring(0,3)=="300" || jl_num.substring(0,3)=="301"  || jl_num.substring(0,3)=="302" || jl_num.substring(0,3)=="303" ||  jl_num.substring(0,3)=="304" || jl_num.substring(0,3)=="305" || jl_num.substring(0,2)=="36" ||  jl_num.substring(0,2)=="38" ))  
								ji_result=ji_result+1;
								if(ji_ln != 14)	
									ji_result=ji_result+2;
						}
						if(js_ctype=="DS")
						{	
							if(jl_num.substring(0,4)!="6011")  
								ji_result=ji_result+1;
								if(ji_ln != 16)	
									ji_result=ji_result+2;
						}
						if(js_ctype=="ER")
						{	
							if(!(jl_num.substring(0,4)=="2014" || jl_num.substring(0,4)=="2149"))  ji_result=ji_result+1;
							if(ji_ln != 15)	
								ji_result=ji_result+2;
						}
						if(js_ctype=="JC")
						{	
							if(!(jl_num.substring(0,1)=="3" || jl_num.substring(0,4)=="2131" || jl_num.substring(0,4)=="1800"))  
								ji_result=ji_result+1;
								if(!(ji_ln == 15 || ji_ln ==16 ))	
									ji_result=ji_result+2;
						}
							/* CHECK SUM  & Unrecognized Cards*/
							var temp=0;
							var cStat=0;
							var lC=0; 
							for(var j=ji_ln-1;j>0;j--)
							{
								var tempChar=jl_num.substring(j,j-1);
								var d=parseInt(tempChar); 
								if ((ji_ln%2) == 1) 
									temp=d*(1+((j+1)%2)); 
								else 
									temp=d*(1+(j%2)); 
										
								if (temp < 10)
									cStat = parseInt(cStat) + parseInt(temp); 
								else 
									cStat = (parseInt(cStat) + (parseInt(temp) - 9 )); 
							} 
								
							cStat = ((10-(cStat%10))%10);  
							if (jl_num !='')
								lC=jl_num.substring(jl_num.length-1,jl_num.length); 
								if ((parseInt(lC) == parseInt(cStat)) && (ji_result==0)) ji_result=0; else  ji_result=-1; 
								if(js_ctype=="U") ji_result=ji_result+8;
								if ((ji_result==0) ? (js_msg= "Card has passed validation!") : (ji_result==1) ? (js_msg="Wrong card type") : (ji_result==2) ? (js_msg="Wrong length") :  (ji_result==3) ? (js_msg="Wrong length and card type") : (ji_result==4) ? (js_msg="Wrong Checksum") : (ji_result==5) ? (js_msg="Wrong checksum and card type") : (ji_result==6) ? (js_msg="Wrong checksum and length") : (ji_result==7) ?  (js_msg="Wrong checksum, length and card type") :  (js_msg="Unidentified Card"));
								if ((ji_result==0) ? (js_msg= "Card has passed validation!") : (js_msg="Invalid Card"));
						}
						if(ji_result!=0 )
						{
							js_err = as_label + ' : '+js_msg;
							alert(js_err) ;
							as_cardname.focus();
							return false;
						}
						if(js_ctype=="VI")
						{	
							if((jl_num == "4242424242424242")) 
							{
								js_err = as_label + ': Invalid Card Number' ;
								alert(js_err) ;
							    as_cardname.focus();
								return false;
							}
						}
						return true;
		}
}

