﻿// JScript File
var mmtab1  = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
function ValidDate(strDate)
{
var validDate  = /^((31(?! (FEB|APR|JUN|SEP|NOV)))|((30|29)(?! FEB))|(29(?= FEB (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8]) (JAN|FEB|MAR|MAY|APR|JUL|JUN|AUG|OCT|SEP|NOV|DEC) ((1[6-9]|[2-9]\d)\d{2})$/;
 
    if((strDate!=""))
    {
        if (!strDate.replace(/-/g, " ").toUpperCase().match(validDate)) 
        {
            return false;
        }
        else
            return true;
    }
    else
        return false;
}
function SetFocus()
{
    if($get("hdnErrorControl").value!="")
    $get($get("hdnErrorControl").value).focus();
    
    $get("hdnErrorControl").value="";
}

function ValidateSearchDtls()
{
   $get("lblPopupMsgTitle").innerHTML = "Error";
   
   if (document.forms[0].lstOrigin.length==0)
    {
        $get("lblPopupMsgText").innerHTML="Please Click on find for selecting an Origin";
        $get("hdnErrorControl").value="btnOFind";
		$find("mpePopupMsg").show(); 
		return false;  
    }
    
    if($get("lstOrigin").selectedIndex==-1)
    {
        $get("lblPopupMsgText").innerHTML="Please select an Origin.";
        $get("hdnErrorControl").value="lstOrigin";
	    $find("mpePopupMsg").show();
	    return false;    
    }
    
    
    if (document.forms[0].lstDest.length==0)
    {
        $get("lblPopupMsgText").innerHTML="Please Click on find for selecting a Destination";
        $get("hdnErrorControl").value="btnDFind";
		$find("mpePopupMsg").show(); 
		return false;  
    }
    
    if($get("lstDest").selectedIndex==-1)
    {
        $get("lblPopupMsgText").innerHTML="Please select a Destination.";
        $get("hdnErrorControl").value="lstDest";
	    $find("mpePopupMsg").show();
	    return false;    
    }
    
    var OriginLcnCode=$get("lstOrigin").options[$get("lstOrigin").selectedIndex].value;  
    var DesLcnCode = $get("lstDest").options[$get("lstDest").selectedIndex].value;
    
    var OriginLcn=$get("lstOrigin").options[$get("lstOrigin").selectedIndex].text;  
    var DesLcn = $get("lstDest").options[$get("lstDest").selectedIndex].text;
    
    $get("hdnOriginLcnCode").value=OriginLcnCode;
    $get("hdnDesLcnCode").value=DesLcnCode;
    
    $get("hdnOriginLcn").value=OriginLcn;
    $get("hdnDesLcn").value=DesLcn;
    
    if(OriginLcnCode==DesLcnCode)
    {
        $get("lblPopupMsgText").innerHTML="Please enter a different Orgin or Destination.";
        $get("hdnErrorControl").value="lstOrigin";
        $find("mpePopupMsg").show();
        
        return false;
    }
        
    
    if(!ValidDate($get("txtETDStart").value))
    {
        $get("lblPopupMsgText").innerHTML="Please enter a valid Origin ETD (From) date in DD-MON-YYYY format.";
        $get("hdnErrorControl").value="txtETDStart";
        $find("mpePopupMsg").show();
        
        return false;
    }
    
    if(!ValidDate($get("txtETDEnd").value))
    {
        $get("lblPopupMsgText").innerHTML="Please enter a valid Origin ETD(To) date in DD-MON-YYYY format.";
        $get("hdnErrorControl").value="txtETDEnd";
        $find("mpePopupMsg").show();
        return false;
    }

    var strDateDiff = datediff(chgdate(document.forms[0].txtETDStart.value,'DD-MON-YYYY','MM-DD-YYYY'),
										 chgdate(document.forms[0].txtETDEnd.value,'DD-MON-YYYY','MM-DD-YYYY'));                           
    
    if ( strDateDiff < 0)
	{
		$get("lblPopupMsgText").innerHTML="Origin ETD From date may not be greater than ending date.";
        $get("hdnErrorControl").value="txtETDStart";
        $find("mpePopupMsg").show();
        return false;
	}
	if ( strDateDiff > 280)
	{
		$get("lblPopupMsgText").innerHTML="You can view the data related to Departure for a maximum duration of 9 months.";
		$get("hdnErrorControl").value="txtETDEnd";
		$find("mpePopupMsg").show();
		return false;
	}
    
    
    
    if($get("txtETAStart").value!="")
    {
        if(!ValidDate($get("txtETAStart").value))
        {
            $get("lblPopupMsgText").innerHTML="Please enter a valid Destination ETA (From) arrival date in DD-MON-YYYY format.";
            $get("hdnErrorControl").value="txtETAStart";
            $find("mpePopupMsg").show();
            
            return false;
        }
    }
    
    if($get("txtETAEnd").value!="")
    {
        if(!ValidDate($get("txtETAEnd").value))
        {
            $get("lblPopupMsgText").innerHTML="Please enter a valid (To) arrival date in DD-MON-YYYY format.";
            $get("hdnErrorControl").value="txtETAEnd";
            $find("mpePopupMsg").show();
            
            return false;
        }
    }
    
    if(($get("txtETAStart").value!="")&&($get("txtETAEnd").value!=""))
    {
        var strDateDiff = datediff(chgdate(document.forms[0].txtETAStart.value,'DD-MON-YYYY','MM-DD-YYYY'),
										     chgdate(document.forms[0].txtETAEnd.value,'DD-MON-YYYY','MM-DD-YYYY'));
	    if ( strDateDiff < 0)
	    {
		    $get("lblPopupMsgText").innerHTML="From date may not be greater than ending date.";
            $get("hdnErrorControl").value="txtETAStart";
            $find("mpePopupMsg").show();
            return false;
	    }
	    if ( strDateDiff > 280)
	    {
		    $get("lblPopupMsgText").innerHTML="You can view the data related Arrival for a maximum duration of 9 months.";
		    $get("hdnErrorControl").value="txtETAEnd";
		    $find("mpePopupMsg").show();
		    return false;
        }
    }
    
    
    if(($get("txtETAStart").value!="")&&($get("txtETDStart").value!=""))
    {
        var strDateDiff = datediff(chgdate(document.forms[0].txtETAStart.value,'DD-MON-YYYY','MM-DD-YYYY'),
										     chgdate(document.forms[0].txtETDStart.value,'DD-MON-YYYY','MM-DD-YYYY'));         
	    if ( strDateDiff > 0)
	    {
		    $get("lblPopupMsgText").innerHTML="Origin ETD Date may not be greater than Destination ETA.";
		    $get("hdnErrorControl").value="txtETAStart";
		    $find("mpePopupMsg").show();
		    return false;
	    }
     }   
   $get("txtOrigin").value="";
   $get("txtDestination").value="";  
    
    P2POutPutDtls();
    return true;
}

function P2POutPutDtls()
{   
    var OriginLcnCode = $get("lstOrigin").options[$get("lstOrigin").selectedIndex].value;
    var DesLcnCode = $get("lstDest").options[$get("lstDest").selectedIndex].value;
    var OriginLcnName = $get("lstOrigin").options[$get("lstOrigin").selectedIndex].text;
    var DesLcnName = $get("lstDest").options[$get("lstDest").selectedIndex].text;
    
    var strOpenUrl = getLocationUrl()+"P2PVesselHistory_v2.aspx?"+
             "p_depdate1="+$get("txtETDStart").value+
             "&p_depdate2="+$get("txtETDEnd").value+
             "&p_arvdate1="+$get("txtETAStart").value+
             "&p_arvdate2="+$get("txtETAEnd").value+
             "&p_cargo_orgn_multi="+OriginLcnCode+
             "&p_cargo_dest_multi=" + DesLcnCode +
             "&p_cargo_orgn_multi_name=" + OriginLcnName +
             "&p_cargo_dest_multi_name=" + DesLcnName +
             "&p_trade_uid="+"&Popup=Y"+"";
             
		window.open(strOpenUrl,"window")
}

function checkURLExists(url)
{
      var req;    
      req = new ActiveXObject("Msxml2.XMLHTTP");      
      req.open("GET", url, false);
		  req.send("");
      return req.statusText;
}


function ServiceDetails()
{
    if($get("lstServices").selectedIndex==-1)
        {
            $get("lblPopupMsgText").innerHTML="Please select a Service";
            $get("hdnErrorControl").value="lstServices";
		    $find("mpePopupMsg").show();   
        }
        else
        {
            var SVCCode=$get("lstServices").options[$get("lstServices").selectedIndex].value;  
            if(SVCCode.indexOf('-'))
            {
                var arrMappingSVC = SVCCode.split("-");
                //var SVCUrl = $get("hdnSvcURL").value+"htm/services/service_"+arrMappingSVC[0]+".htm";
                var SVCUrl = $get("hdnSvcURL").value+"/UIStatic/Services/service_"+arrMappingSVC[0]+".aspx";
            }
            else
            {
                //var SVCUrl = $get("hdnSvcURL").value+"htm/services/service_"+SVCCode+".htm";
                var SVCUrl = $get("hdnSvcURL").value+"/UIStatic/Services/service_"+arrMappingSVC[0]+".aspx";
            }
            
            window.open(SVCUrl,"window");
        }
       
    return false;
}

function FleetDetails()
{
        $get("lblPopupMsgTitle").innerHTML = "Error";
        if($get("lstFleet").selectedIndex==-1)
        {
            $get("lblPopupMsgText").innerHTML="Please select a Vessel";
            $get("hdnErrorControl").value="lstFleet";
		    $find("mpePopupMsg").show();   
        }
        else
        {
          var VslCode=$get("lstFleet").options[$get("lstFleet").selectedIndex].value;  
          var strOpenUrl = getLocationUrl()+"P2PVesselInfo_v2.aspx?"+
                     "Vsl="+VslCode+"&Popup=Y";
          window.open(strOpenUrl,"window");
        }
     return false;   
}

function LineLcnCutOffDtls()
{
     $get("lblPopupMsgTitle").innerHTML = "Error";
    if (document.forms[0].lstCutOffLcn.length==0)
    {
        $get("lblPopupMsgText").innerHTML="Please Click on Find button against CutOff Location";
        $get("hdnErrorControl").value="btnLcnFind";
		$find("mpePopupMsg").show();   
    }
    else
    {
        if($get("lstCutOffLcn").selectedIndex==-1)
        {
            $get("lblPopupMsgText").innerHTML="Please select a location for Cut off details";
            $get("hdnErrorControl").value="lstCutOffLcn";
		    $find("mpePopupMsg").show();   
        }
        else
        {
          var LcnCode=$get("lstCutOffLcn").options[$get("lstCutOffLcn").selectedIndex].value;  
          var strOpenUrl = getLocationUrl()+"LineLcnCutOffDetails_v2.aspx?"+
                     "Lcn="+LcnCode+"&Popup=Y";
          window.open(strOpenUrl,"window");
        }
    }
    return false;

}

function PopulateSearchDtls(strRowId,strGridId,introw)
{
   
   var x = $get(strRowId).cells;
   
   $get("lstOrigin").innerHTML="";
   var Origin = document.getElementById("lstOrigin");
   var oOption = document.createElement("OPTION");
   oOption.value = x[1].innerHTML;
   oOption.text = x[2].innerHTML
   Origin.options.add(oOption);
   Origin.options[0].selected=true
    
   $get("lstDest").innerHTML="";
   var Dest = $get("lstDest");
   var dOption = document.createElement("OPTION");
   dOption.value = x[3].innerHTML;
   dOption.text = x[4].innerHTML
   Dest.options.add(dOption);
   Dest.options[0].selected=true

   UncheckALLRadioButtons(strGridId);
   $get("txtOrigin").value="";
   $get("txtDestination").value="";   
   objradio=x[0].getElementsByTagName("input");
   objradio[0].checked=true;
   
   
}

function UncheckALLRadioButtons(strGridId)
{
    intMaxRows = $get(strGridId).rows.length;
    var Y;
    for(i=1;i<intMaxRows; i++)
    {
        Y=$get(strGridId).rows[i].cells;
        //alert(Y.innerHTML);
        if (Y[0]!=null)
        {
            objInput=Y[0].getElementsByTagName("input");
            objInput[0].checked=false;
        }
        
    }
}

function test(strRowId,strGridId,introw)
{
    var x = $get(strRowId).cells;
    alert(x[2].innerHTML);
}
function PopulateSearchFutureDtls(strRowId,strGridId,introw)
{
   
   var x = $get(strRowId).cells;
   
   $get("lstOrigin").innerHTML="";
   var Origin = document.getElementById("lstOrigin");
   var oOption = document.createElement("OPTION");
   oOption.value = x[1].innerHTML;
   oOption.text = x[2].innerHTML
   Origin.options.add(oOption);
   Origin.options[0].selected=true
    
   $get("lstDest").innerHTML="";
   var Dest = $get("lstDest");
   var dOption = document.createElement("OPTION");
   dOption.value = x[3].innerHTML;
   dOption.text = x[4].innerHTML
   Dest.options.add(dOption);
   Dest.options[0].selected=true
   // CurrDate In "MM-DD-YYYY Format"
   var d = new Date();
   var month  = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
   var strDate=d.getDate();
   if (parseInt(strDate)<10)
   {
        strDate="0" + strDate;
   }
   var CurrDate=month[d.getMonth()]+"-"+strDate+"-"+d.getFullYear();
  
   //Getting the next two week date -- that is CurrDate+14. 
   var FutureDate=IncrementDate(CurrDate,14,null)
  
   $get("txtETDStart").value=chgdate(CurrDate, 'MM-DD-YYYY', 'DD-MON-YYYY')
   $get("txtETDEnd").value=FutureDate;
   
   $get("txtETAStart").value="";
   $get("txtETAEnd").value="";
   
   
   
   UncheckALLRadioButtons(strGridId);
   
   var OriginLcnCode=$get("lstOrigin").options[$get("lstOrigin").selectedIndex].value;  
    var DesLcnCode = $get("lstDest").options[$get("lstDest").selectedIndex].value;
    
    var OriginLcn=$get("lstOrigin").options[$get("lstOrigin").selectedIndex].text;  
    var DesLcn = $get("lstDest").options[$get("lstDest").selectedIndex].text;
    
    $get("hdnOriginLcnCode").value=OriginLcnCode;
    $get("hdnDesLcnCode").value=DesLcnCode;
    
    $get("hdnOriginLcn").value=OriginLcn;
    $get("hdnDesLcn").value=DesLcn;
    
    $get("txtOrigin").value="";
    $get("txtDestination").value="";  
    
    
   var OriginLcnCode=$get("lstOrigin").options[$get("lstOrigin").selectedIndex].value;
   var DesLcnCode = $get("lstDest").options[$get("lstDest").selectedIndex].value;
   var OriginLcnName = $get("lstOrigin").options[$get("lstOrigin").selectedIndex].text;
   var DesLcnName = $get("lstDest").options[$get("lstDest").selectedIndex].text;
   
   var strOpenUrl = getLocationUrl()+"P2PVesselHistory_v2.aspx?"+
             "p_depdate1="+$get("txtETDStart").value+
             "&p_depdate2="+$get("txtETDEnd").value+
             "&p_arvdate1="+$get("txtETAStart").value+
             "&p_arvdate2="+$get("txtETAEnd").value+
             "&p_cargo_orgn_multi="+OriginLcnCode+
             "&p_cargo_dest_multi=" + DesLcnCode +
             "&p_cargo_orgn_multi_name=" + OriginLcnName +
             "&p_cargo_dest_multi_name=" + DesLcnName +
             "&p_trade_uid="+"";
                        
    window.open(strOpenUrl,"window")
       
    
    __doPostBack('btnSubmit','');
   
    //return false;
      
   
}

function TodaysDate()
{
   var month=new Array(12);
   var month  = new Array(1,2,3,4,5,6,7,8,9,10,11,12);
   
}

function ClearSearchDtls()
{
    $get("lstOrigin").innerHTML="";
    $get("lstDest").innerHTML="";
    $get("txtETDStart").value="";
    $get("txtETDStart").value="";
    $get("txtETDEnd").value="";
    $get("txtETAStart").value="";
    $get("txtETAEnd").value="";
    $get("txtOrigin").value="";
    $get("txtDestination").value="";
    $get("txtOrigin").focus();

}

function getLocationUrl()
{
		strLocation = window.location.href;
		intPos = strLocation.indexOf("P2PMainNew.aspx");
		strLocationPrefix = strLocation.substr(0,intPos);
		return strLocationPrefix;
}



 function IncrementDate( indate, delta_days, fmt) 
 {
      // indate must be "MM-DD-YYYY"
      // Given a date and a number to add, return new date.
      // alert("indate="+indate+" delta="+delta_days);
      var tmpdt = indate;
      if (fmt == null)
         fmt="DD-MON-YYYY"; // default if no format passed.
      
      if (tmpdt.indexOf('-')) {

         var mm = tmpdt.substr(0,2);
         if ( mm.substr(0,1)=="0" )
            mm = mm.substr(1,1);
         mm = parseInt(mm);

         var dd = tmpdt.substr(3,2);
         if (dd.substr(0,1)=="0")
            dd = dd.substr(1,1);
         dd = parseInt(dd);

         var yy = tmpdt.substr(6);
         yy = parseInt(yy);
         var xflg = 0;

         if (delta_days > 0) 
         {
           
           if (mm == 2 && isleap(yy) )
              mmtab1[1] = 29;
           else
              mmtab1[1] = 28;

           if ((dd+delta_days) > mmtab1[(mm-1)]) 
           {
              delta_days = delta_days - (mmtab1[(mm-1)]-dd);
              mm = mm + 1;
              if (mm > 12) 
              {
                 yy = yy + 1;
                 mm = 1;
              }
              dd = delta_days;
           }
           else 
           {
              dd = dd + delta_days;

           }

         }
         

         var vdd = dd.toString(10);
         var vmm = mm.toString(10);
         var vyy = yy.toString(10);

         if ( vdd.length == 1)
            vdd = "0"+ vdd;
         if ( vmm.length == 1)
            vmm = "0"+ vmm;

         tmpdt = vmm+"-"+vdd+"-"+vyy;
         if (fmt != "MM-DD-YYYY")
            tmpdt = chgdate(tmpdt, 'MM-DD-YYYY', fmt);
         return tmpdt;
      }
      return "ERROR";
   }


function ValidateOrgDest(sFld)
{   
    $get("lblPopupMsgTitle").innerHTML = "Error";
	if (sFld == "txtOrigin" )
	{
	    
	    
	    if (($get("txtOrigin").value=="")||(document.forms[0].txtOrigin.value.length < 2 ))
	    {
	    	$get("lblPopupMsgText").innerHTML="Please enter atleast 2 characters for Origin.";
		    $get("hdnErrorControl").value="txtOrigin";
		    $find("mpePopupMsg").show();
            return false;
	    }
	    
	}
	
	if (sFld == "txtDestination" )
	{
	
	     if (($get("txtDestination").value=="")||(document.forms[0].txtDestination.value.length < 2 ))
	    {
	       
            $get("lblPopupMsgText").innerHTML="Please enter atleast 2 characters for Destination.";
		    $get("hdnErrorControl").value="txtDestination";
		    $find("mpePopupMsg").show();
            return false;
           
	    }
	}
	
	if (sFld == "txtDestination" )
	{
	
	     if (($get("txtDestination").value=="")||(document.forms[0].txtDestination.value.length < 2 ))
	    {
	       
            $get("lblPopupMsgText").innerHTML="Please enter atleast 2 characters for Destination.";
		    $get("hdnErrorControl").value="txtDestination";
		    $find("mpePopupMsg").show();
            return false;
           
	    }
	}
	
	if (sFld == "txtCutOff" )
	{
	
	     if (($get("txtCutOff").value=="")||(document.forms[0].txtCutOff.value.length < 2 ))
	    {
	       
            $get("lblPopupMsgText").innerHTML="Please enter atleast 2 characters for Cutoff Locations.";
		    $get("hdnErrorControl").value="txtCutOff";
		    $find("mpePopupMsg").show();
            return false;
           
	    }
	}
	
    return true;
}

function CountryPortDtls()
{
    $get("lstPorts").focus();
    var Ports = document.getElementById("lstPorts");
    Ports.options[0].selected=true
    
}






