﻿
    YAHOO.namespace("example.calendar");
     //var searchType="all";
     var bShow=false;
     var MultysearchType="";
     var calType="first";
     var from="";
     var to="";
     var from1,from2,from3;
     var firstDate=new Date();
     var secondDate=new Date();    
     function init() {
     var month;
     this.today = new Date();
     var DateDiff;
     var AddDay;
     var thisMonth = this.today.getMonth();
     var thisDay = this.today.getDate();
     var thisYear = this.today.getFullYear();
     if(searchTypeCal=='flight')
     {
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=1;
     AddDay=4;
     }
     else if(searchTypeCal=='hotel')
     {
     from=document.getElementById("txtCheckin");
     to=document.getElementById("txtCheckout");
     this.link1 = document.getElementById('dateLink1_H');
     this.link2 = document.getElementById('dateLink2_H');
      DateDiff=1;
       AddDay=0;
     }
      else if(searchTypeCal=='car')
     {
     from=document.getElementById("txtcarDepart");
     to=document.getElementById("txtcarReturn");
     this.link1 = document.getElementById('dateLink1_C');
     this.link2 = document.getElementById('dateLink2_C');
     DateDiff=1;
     AddDay=1;
     }
     else if(searchTypeCal=='Intlflight')
     {
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=2;
     AddDay=3;
     }
     if(searchTypeCal=='flightResult' || searchTypeCal=='IntlflightResult'  || searchTypeCal=='vacResult')
     {
     
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=1;
     AddDay=2;     
     }
     else if(searchTypeCal=='hotelResult')
     {     
     from=document.getElementById("txtCheckin");
     to=document.getElementById("txtCheckout"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=1;
     AddDay=0;
     }
     else if(searchTypeCal=='deal')
     {     
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=0;
     AddDay=1;
     }
        if(searchTypeCal=='multicity' || searchTypeCal=='multicityResult'||searchTypeCal=="Intlflight" ||searchTypeCal=="IntlflightResult" || searchTypeCal=='car'|| searchTypeCal=='hotel')
        {

               from1=document.getElementById("txtDepart1");
               from2=document.getElementById("txtDepart2");
               from3=document.getElementById("txtDepart3");
               this.link3 = document.getElementById('dateLink3');
               this.link4 = document.getElementById('dateLink4');
               this.link5 = document.getElementById('dateLink5');
               DateDiff=1;
               AddDay=2;
               today.setDate(this.today.getDate()+AddDay);
               this.today.setMonth(this.today.getMonth());
               this.today.setFullYear(this.today.getFullYear());
               month=today.getMonth()+1;
               if(from1.value=='mm/dd/yyyy'|| from1.value=='')
               {
               from1.value=month+"/"+today.getDate()+"/"+today.getFullYear()
               }
               if(from2.value=='mm/dd/yyyy'|| from2.value=='')
               {
               from2.value=month+"/"+today.getDate()+"/"+today.getFullYear()
               }
               if(from3.value=='mm/dd/yyyy'|| from3.value=='')
               {
               from3.value=month+"/"+today.getDate()+"/"+today.getFullYear()
               }
        }
      if(searchType=='all')
       {

             today.setDate(this.today.getDate()+AddDay);
             this.today.setMonth(this.today.getMonth());
             this.today.setFullYear(this.today.getFullYear());
             month=today.getMonth()+1;
                  if(from.value=='' ||from.value=='mm/dd/yyyy')
                   {  
                      from.value=month+"/"+today.getDate()+"/"+today.getFullYear()
                      firstDate.setDate(today.getDate());
                      firstDate.setMonth(today.getMonth());
                      firstDate.setFullYear(today.getFullYear());                       
                   }
                   else
                   { 
                       var fromDate= from.value.split('/');
                       firstDate.setDate(fromDate[1]);
                       firstDate.setMonth(parseInt(fromDate[0])-1);
                       firstDate.setFullYear(fromDate[2]);                
                  }
                  if(to.value=='' ||to.value=='mm/dd/yyyy')
                   {   
                       today.setDate(this.today.getDate()+DateDiff);
                       thisMonth = this.today.getMonth();
                       thisDay = this.today.getDate();
                       thisYear = this.today.getFullYear();
                       month=today.getMonth()+1;
                       to.value=month+"/"+today.getDate()+"/"+today.getFullYear()                  
                       secondDate.setDate(today.getDate());
                       secondDate.setMonth(today.getMonth());
                       secondDate.setFullYear(today.getFullYear());                      
                   }
                   else
                   {
                       var todate=to.value.split('/');
                       secondDate.setDate(todate[1]);
                       secondDate.setMonth(parseInt(todate[0])-1);
                       secondDate.setFullYear(todate[2]);
                   } 
            }
          
      YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar2up("YAHOO.example.calendar.cal1","container1",(thisMonth+1)+"/"+thisYear,(thisMonth+1)+"/"+thisDay+"/"+thisYear);
      YAHOO.example.calendar.cal1.title = "Select&nbsp;date:";
      YAHOO.example.calendar.cal1.setChildFunction("onSelect",setDate1);
      YAHOO.example.calendar.cal1.render();
    }

    function showCalendar1(type) {


      bShow=true;
      calType="first";
      var pos;
      YAHOO.example.calendar.cal1.hide();
     // var pos=YAHOO.util.Dom.getXY(link1)
      var posLink;
       if(searchType=="multi")
       {
          MultysearchType=type;
          if(type=='1')
          {
           changeDateMulti(type);   
           document.getElementById("divFirst").style.display="block";
           pos= YAHOO.util.Dom.getXY(link3);
           posLink=link3;
          }
          else if(type=='2')
          { 
           changeDateMulti(type);
           document.getElementById("divSecond").style.display="block";
           pos= YAHOO.util.Dom.getXY(link4);
           posLink=link4;
          }
          else if(type=='3')
          {
           changeDateMulti(type);
           document.getElementById("divThird").style.display="block";
           pos= YAHOO.util.Dom.getXY(link5);
           posLink=link5;
          }
      }
      else
      { 
        posLink=link1;
        changeDate1();
        pos = YAHOO.util.Dom.getXY(link1);
      } 
      YAHOO.example.calendar.cal1.outerContainer.style.display='block';
      document.getElementById("Divcontainer1").style.display='block';
      document.getElementById("Divcontainer1").style.top = pos[1]+posLink.offsetHeight+1 + "px";
      document.getElementById("Divcontainer1").style.left = pos[0] + "px";
      YAHOO.util.Dom.setXY(YAHOO.example.calendar.cal1.outerContainer, [pos[0],pos[1]+posLink.offsetHeight+1]);
     }

    function showCalendar2(type) {
      calType="second";
      bShow=true;
      YAHOO.example.calendar.cal1.hide();
      changeDate2();
      var pos;
      pos = YAHOO.util.Dom.getXY(link2);
      YAHOO.example.calendar.cal1.outerContainer.style.display='block';
      document.getElementById("Divcontainer1").style.display='block';
      document.getElementById("Divcontainer1").style.top = pos[1]+link1.offsetHeight+1 + "px";
      document.getElementById("Divcontainer1").style.left = pos[0] + "px";
      YAHOO.util.Dom.setXY(YAHOO.example.calendar.cal1.outerContainer, [pos[0],pos[1]+link2.offsetHeight+1]);
    }

    function setDate1() {
     var date1 = YAHOO.example.calendar.cal1.getSelectedDates()[0];
     var month=date1.getMonth()+1;
      if(searchType=="multi")
       {  if(MultysearchType=='1')
          {
              from1.value=month+"/"+date1.getDate()+"/"+date1.getFullYear()
              
              var toDate=new Date(date1);
              var chkDate=new Date(from2.value);
              if(chkDate<toDate)
              {
              from2.value=month+"/"+date1.getDate()+"/"+date1.getFullYear()
              from3.value=month+"/"+date1.getDate()+"/"+date1.getFullYear()
              }
              showMsg('1');
          }
         else if(MultysearchType=='2')
          {   
              document.getElementById("divSecond").style.display="block";
              from2.value=month+"/"+date1.getDate()+"/"+date1.getFullYear()
              var toDate=new Date(date1);
              var chkDate=new Date(from3.value);
              if(chkDate<toDate)
              {
              from3.value=month+"/"+date1.getDate()+"/"+date1.getFullYear()
              }
              showMsg('2');
          }
         else if(MultysearchType=='3')
          {
              from3.value=month+"/"+date1.getDate()+"/"+date1.getFullYear()
              showMsg('3');
          }
            
      }
      else 
          {
          if(calType=="first")
          {
          from.value=month+"/"+date1.getDate()+"/"+date1.getFullYear()
          }
          else
          {
          to.value=month+"/"+date1.getDate()+"/"+date1.getFullYear() 
          } 
          var toDate=new Date(date1);
          var chkDate=new Date(to.value);
          if(chkDate<toDate)
          {
              toDate.setDate(toDate.getDate()+2);
              toDate.setMonth(toDate.getMonth());
              toDate.setYear(toDate.getFullYear());  
              month=toDate.getMonth()+1;          
              to.value=month+"/"+toDate.getDate()+"/"+toDate.getFullYear()
              changeDate2();           
          } 
      }
    
      CloseCalendar();
    }

   function setDate2() {    
      var date2 = YAHOO.example.calendar.cal1.getSelectedDates()[0];
      var month=date2.getMonth()+1;
      to.value=month+"/"+date2.getDate()+"/"+date2.getFullYear()     
      CloseCalendar();
    }

    function changeDate1() {
      calType="first";
     
      var datefrom=from.value.split('/');
      var cMonth=Number(datefrom[0])-1;
      firstDate.setDate(datefrom[1]); 
      firstDate.setMonth(cMonth);
      firstDate.setFullYear(datefrom[2]);
      YAHOO.example.calendar.cal1.select(datefrom[0]+"/"+datefrom[1]+"/"+datefrom[2]);
      YAHOO.example.calendar.cal1.setMonth(cMonth);
      YAHOO.example.calendar.cal1.setYear(Number(datefrom[2]));
      YAHOO.example.calendar.cal1.render();
    }
     function changeDateMulti(type) {
      var datefrom
      calType="first";
      if(type=='1')
      {
        datefrom=from1.value.split('/');
      }
      else if(type=='2')
      {
        datefrom=from2.value.split('/');
      }
      else if(type=='3')
      {  
      datefrom=from3.value.split('/');
      }
      var cMonth=parseInt(datefrom[0])-1;
      firstDate.setDate(datefrom[1]);
      firstDate.setMonth(cMonth);
      firstDate.setFullYear(datefrom[2]);
      YAHOO.example.calendar.cal1.select(datefrom[0]+"/"+datefrom[1]+"/"+datefrom[2]);// modify on 14/07/10
      YAHOO.example.calendar.cal1.setMonth(cMonth);
      YAHOO.example.calendar.cal1.setYear(Number(datefrom[2]));
      YAHOO.example.calendar.cal1.render();      
    }

    function changeDate2() {
      calType="second";
      var dateTo=to.value.split('/');
      var cMonth=Number(dateTo[0])-1;
      secondDate.setDate(dateTo[1]);
      secondDate.setMonth(cMonth);
      secondDate.setFullYear(dateTo[2]);
      YAHOO.example.calendar.cal1.select(dateTo[0]+"/"+dateTo[1]+"/"+dateTo[2]);
      YAHOO.example.calendar.cal1.setMonth(cMonth);//set the 2nd cal month
      YAHOO.example.calendar.cal1.setYear(Number(dateTo[2]))
      YAHOO.example.calendar.cal1.render();
    }  

    YAHOO.util.Event.addListener(window, "load", init);    
  
    function CloseCalendar()
    {
        YAHOO.example.calendar.cal1.hide();
        YAHOO.example.calendar.cal1.hide();
        document.getElementById("Divcontainer1").style.display='none';
    }
    
   function initCalander() {
        var month;
        this.today = new Date();
        var DateDiff;
        var AddDay;
        var thisMonth = this.today.getMonth();
        var thisDay = this.today.getDate();
        var thisYear = this.today.getFullYear();
    if(searchTypeCal=='flight')
     {
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=1;
     AddDay=4;
     }
     else if(searchTypeCal=='hotel')
     {
     from=document.getElementById("txtCheckin");
     to=document.getElementById("txtCheckout");
     this.link1 = document.getElementById('dateLink1_H');
     this.link2 = document.getElementById('dateLink2_H');
     DateDiff=1;
     AddDay=0;
     }
      else if(searchTypeCal=='car')
     {
     from=document.getElementById("txtcarDepart");
     to=document.getElementById("txtcarReturn");
     this.link1 = document.getElementById('dateLink1_C');
     this.link2 = document.getElementById('dateLink2_C');
     DateDiff=1;
     AddDay=1;
     }
     else if(searchTypeCal=='Intlflight')
     {
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=2;
     AddDay=3;
     }
     if(searchTypeCal=='flightResult' || searchTypeCal=='IntlflightResult'  || searchTypeCal=='vacResult')
     {
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=1;
     AddDay=2;
     }
     else if(searchTypeCal=='hotelResult')
     {
     from=document.getElementById("txtCheckin");
     to=document.getElementById("txtCheckout"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=1;
     AddDay=0;
     }
     else if(searchTypeCal=='deal')
     {
     from=document.getElementById("txtDepart");
     to=document.getElementById("txtReturn"); 
     this.link1 = document.getElementById('dateLink1');
     this.link2 = document.getElementById('dateLink2');
     DateDiff=0;
     AddDay=1;
     }     
       today.setDate(this.today.getDate()+AddDay);
       this.today.setMonth(this.today.getMonth());
       this.today.setFullYear(this.today.getFullYear());
       month=today.getMonth()+1;
          if(from.value=='' ||from.value=='mm/dd/yyyy')
           { 
              from.value=month+"/"+today.getDate()+"/"+today.getFullYear()
              firstDate.setDate(today.getDate());
              firstDate.setMonth(today.getMonth());
              firstDate.setFullYear(today.getFullYear());               
           }
           else
           { 
               var fromDate= from.value.split('/');
               firstDate.setDate(fromDate[1]);
               firstDate.setMonth(parseInt(fromDate[0])-1);
               firstDate.setFullYear(fromDate[2]);        
           }
          if(to.value=='' ||to.value=='mm/dd/yyyy')
           {   
               today.setDate(this.today.getDate()+DateDiff);
               thisMonth = this.today.getMonth();
               thisDay = this.today.getDate();
               thisYear = this.today.getFullYear();
               month=today.getMonth()+1;
               to.value=month+"/"+today.getDate()+"/"+today.getFullYear()          
               secondDate.setDate(today.getDate());
               secondDate.setMonth(today.getMonth());
               secondDate.setFullYear(today.getFullYear());              
           }
           else
           {
               var todate=to.value.split('/');
               secondDate.setDate(todate[1]);
               secondDate.setMonth(parseInt(todate[0])-1);
               secondDate.setFullYear(todate[2]);
           } 

    }
