var tempRetDate,tempRetMMYear,tempRetDay,tempDptDay,tempDptDate,tempDptMMYear;
var Type;
function showCalender(service,type)
{
	if(service=="F")
	{
		if(type=="D")
			{
				showCalendarControl(document.FlightSearch.FDptDate,document.FlightSearch.FDptMMYear,document.FlightSearch.FDayMonth,"Dep",document.FlightSearch.FRetDate,document.FlightSearch.FRetMMYear,document.FlightSearch.FDayMonthRet);
			}
			else
			{
				showCalendarControl(document.FlightSearch.FRetDate,document.FlightSearch.FRetMMYear,document.FlightSearch.FDayMonthRet);
			}
	}
	if(service=="FH")
	{
		if(type=="D")
			{
				showCalendarControl(document.FltHtlSearch.FHDptDate,document.FltHtlSearch.FHDptMMYear,document.FltHtlSearch.FHDayMonth,"Dep",document.FltHtlSearch.FHRetDate,document.FltHtlSearch.FHRetMMYear,document.FltHtlSearch.FHDayMonthRet);
			}
			else
			{
				showCalendarControl(document.FltHtlSearch.FHRetDate,document.FltHtlSearch.FHRetMMYear,document.FltHtlSearch.FHDayMonthRet);
			}
	}
	if(service=="H")
	{
		if(type=="D")
			{
				showCalendarControl(document.HotelSearch.HDptDate,document.HotelSearch.HDptMMYear,document.HotelSearch.HDptDay,"Dep",document.HotelSearch.HRetDate,document.HotelSearch.HRetMMYear,document.HotelSearch.HRetDay);
			}
			else
			{
				showCalendarControl(document.HotelSearch.HRetDate,document.HotelSearch.HRetMMYear,document.HotelSearch.HRetDay);
			}
	}
}
function getDayString(gDateValue)
	{
		if(gDateValue=="0")
		{
		dayName="Sun"
		}
		else if(gDateValue=="1")
		{
		dayName="Mon"
		}
		else if(gDateValue=="2")
		{
		dayName="Tue"
		}
		else if(gDateValue=="3")
		{
		dayName="Wed"
		}
		else if(gDateValue=="4")
		{
		dayName="Thu"
		}
		else if(gDateValue=="5")
		{
		dayName="Fri"
		}
		else if(gDateValue=="6")
		{
		dayName="Sat"
		}
		return dayName;

	}
function GetMonth(mon)
{
switch(mon)
	{
	case 0: return "JAN"; break;
	case 1: return "FEB"; break;
	case 2: return "MAR"; break;
	case 3: return "APR"; break;
	case 4: return "MAY"; break;
	case 5: return "JUN"; break;
	case 6: return "JUL"; break;
	case 7: return "AUG"; break;
	case 8: return "SEP"; break;
	case 9: return "OCT"; break;
	case 10: return "NOV"; break;
	case 11: return "DEC"; 
	}
}
function positionInfo(object) {

  var p_elm = object;

  this.getElementLeft = getElementLeft;
  function getElementLeft() {
    var x = 0;
    var elm;
    if(typeof(p_elm) == "object"){
      elm = p_elm;
    } else {
      elm = document.getElementById(p_elm);
    }
    while (elm != null) {
      x+= elm.offsetLeft;
      elm = elm.offsetParent;
    }
    return parseInt(x,10);
  }

  this.getElementWidth = getElementWidth;
  function getElementWidth(){
    var elm;
    if(typeof(p_elm) == "object"){
      elm = p_elm;
    } else {
      elm = document.getElementById(p_elm);
    }
    return parseInt(elm.offsetWidth,10);
  }

  this.getElementRight = getElementRight;
  function getElementRight(){
    return getElementLeft(p_elm) + getElementWidth(p_elm);
  }

  this.getElementTop = getElementTop;
  function getElementTop() {
    var y = 0;
    var elm;
    if(typeof(p_elm) == "object"){
      elm = p_elm;
    } else {
      elm = document.getElementById(p_elm);
    }
    while (elm != null) {
      y+= elm.offsetTop;
      elm = elm.offsetParent;
    }
    return parseInt(y,10);
  }

  this.getElementHeight = getElementHeight;
  function getElementHeight()
	{
    var elm;
    if(typeof(p_elm) == "object")
	{
      elm = p_elm;
    }
	else
	{
      elm = document.getElementById(p_elm);
    }
    return parseInt(elm.offsetHeight,10);
  }

  this.getElementBottom = getElementBottom;
  function getElementBottom(){
    return getElementTop(p_elm) + getElementHeight(p_elm);
  }
}

function CalendarControl() 
{

  var calendarId = 'CalendarControl';
  var currentYear = 0;
  var currentMonth = 0;
  var currentDay = 0;

  var selectedYear = 0;
  var selectedMonth = 0;
  var selectedDay = 0;

  var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
  var dateField = null;

//this.changeMonthInc = changeMonthInc;
function changeMonthInc(change) 
	{
    currentMonth += change;
    currentDay = 0;
    if(currentMonth > 12) 
		{
      	currentMonth = 1;
      	currentYear++;
    	} 
		else if(currentMonth < 1)
		{
      	currentMonth = 12;
      	currentYear--;
    	}
  }  
  function getProperty(p_property)
	{
    var p_elm = calendarId;
    var elm = null;

    if(typeof(p_elm) == "object")
		{
     	 elm = p_elm;
    	} else 
		{
      	elm = document.getElementById(p_elm);
    	}
    
	if (elm != null)
		{
      	if(elm.style)
			{
        	elm = elm.style;
        	if(elm[p_property])
				{
          		return elm[p_property];
        		}
				else 
				{
          		return null;
       			}
      		} 
			else 
			{
        	return null;
      		}
    	}
  }

  function setElementProperty(p_property, p_value, p_elmId)
		{
    	var p_elm = p_elmId;
    	var elm = null;

    	if(typeof(p_elm) == "object")
			{
      		elm = p_elm;
    		} 
			else 
			{
      		elm = document.getElementById(p_elm);
    		}
    	
		if((elm != null) && (elm.style != null))
			{
      		elm = elm.style;
      		elm[ p_property ] = p_value;
    		}
 		 }

  function setProperty(p_property, p_value) 
	{
    setElementProperty(p_property, p_value, calendarId);
  	}

  function getDaysInMonth(year, month) 
	{
    return [31,((!(year % 4 ) && ( (year % 100 ) || !( year % 400 ) ))?29:28),31,30,31,30,31,31,30,31,30,31][month-1];
 	}

  function getDayOfWeek(year, month, day) 
	{
    var date = new Date(year,month-1,day)
    return date.getDay();
  	}

  this.clearDate = clearDate;
  function clearDate() 
	{
    dateField.value = '';
    hide();
  	}

this.setDate = setDate;
function setDate(year, month, day) 
{
var MMyearTemp,daytemp;
	
MMyearTemp=month+""+year;
if(MMyearTemp.length==5)
	{
	MMyearTemp="0"+MMyearTemp;
	}
daytemp=day;
selectField(MMyearTemp,tempDptMMYear);
addOption(tempDptDay.id,tempDptDate.id,tempDptMMYear.id,false)
document.getElementById(tempDptDate.id).options[daytemp].selected=true;
document.getElementById(tempDptDay.id).value=" "+getDayString(new Date(year,month-1,day).getDay())
if(Type=="Dep")
	{
	try
		{
		var daytemp1=document.getElementById(tempRetDate.id).value;
		var MMyearTemp1=document.getElementById(tempRetMMYear.id).value
		var ddDater=new Date(parseInt(year,10),parseInt(parseInt(month,10)-1,10),parseInt(day,10))
		if(new Date(parseInt(MMyearTemp1.substring(2,6),10),parseInt(parseInt(MMyearTemp1.substring(0,2),10)-1,10),parseInt(daytemp),10) <  new Date(ddDater.getFullYear(),ddDater.getMonth(),ddDater.getDate()))
			{
            selectField(MMyearTemp,tempRetMMYear);
            addOption(tempRetDay.id,tempRetDate.id,tempRetMMYear.id,false)
            document.getElementById(tempRetDate.id).options[daytemp].selected=true;
            document.getElementById(tempRetDay.id).value=" "+getDayString(new Date(year,month-1,day).getDay())
    	}
		}catch(ex){}
	} 
hide();
return;
}

this.changeMonth = changeMonth;
function changeMonth(change) 
{
currentMonth += change;
currentDay = 0;
if(currentMonth > 12) 
	{
	currentMonth = 1;
	currentYear++;
	} 
	else if(currentMonth < 1)
	{
   currentMonth = parseInt(12+currentMonth,10);
	currentYear--;
	}
calendar = document.getElementById(calendarId);
calendar.innerHTML = calendarDrawTable();
}

  this.changeYear = changeYear;
  function changeYear(change) 
	{
    currentYear += change;
    currentDay = 0;
    calendar = document.getElementById(calendarId);
    calendar.innerHTML = calendarDrawTable();
  	}

  function getCurrentYear() 
	{
//    var year = new Date().getFullYear();
	var year = new Date().getFullYear();
    if(year < 1900) year += 1900;
    return year;
  	}

  function getCurrentMonth() 
	{
    return new Date().getMonth() + 1;
  	} 

  	function getCurrentDay() 
		{
    	return new Date().getDate();
  		}

function calendarDrawTable() 
{
var dayOfMonth = 1;
var validDay = 0;
var startDayOfWeek;
var daysInMonth;
var i;
var table="<table  bgcolor='#FF6600'>";
var NoCal=2;
try
{
	
	NoCal=document.getElementById("Search").value;
	if(NoCal=="")
		{
			NoCal=2
		}
}catch(ex)
{
	NoCal=2;
}
if(NoCal==2)
	{
	//table=table+"<tr><td  class='previous' style='border-bottom:1px solid #FCB17F'><a href='javascript:changeCalendarControlMonth(-5);'>&lt;</a><a href='javascript:changeCalendarControlMonth(-5);'>&lt;</a></td>"
	//table=table+"<td style='border-bottom:1px solid #FCB17F; font-weight:bold; color:#ffffff;'>Select Your Travel Date  </td>";
	//table=table+"<td  class='next' align='right' style='border-bottom:1px solid #FCB17F'><a href='javascript:changeCalendarControlMonth(1);'>&gt;</a><a href='javascript:changeCalendarControlMonth(1);'>&gt;</a></td>";  //<a href='javascript:changeCalendarControlYear(1);'>
	//table=table+"</tr>"
	table=table+"<tr><td class='previous' colspan='2'>&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:changeCalendarControlMonth(-3);'>&lt;</a><a href='javascript:changeCalendarControlMonth(-3);'>&lt;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='border-bottom:1px solid #FCB17F; font-weight:bold; color:#ffffff;'>Select Your Travel Date</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:changeCalendarControlMonth(1);'>&gt;</a><a href='javascript:changeCalendarControlMonth(1);'>&gt;</a><td></tr>";
	
	}else
	{
	table=table+"<tr><td class='previous'>&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:changeCalendarControlMonth(-1);'>&lt;</a><a href='javascript:changeCalendarControlMonth(-1);'>&lt;</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='javascript:changeCalendarControlMonth(1);'>&gt;</a><a href='javascript:changeCalendarControlMonth(1);'>&gt;</a><td></tr>";
	}

table=table+"<tr>";
for(i=1;i<=NoCal;i++)
    { 
    if(i!=1)
        {
        changeMonthInc(1)
        }
	dayOfMonth = 1;
	validDay = 0;
	startDayOfWeek = getDayOfWeek(currentYear, currentMonth, dayOfMonth);
	daysInMonth = getDaysInMonth(currentYear, currentMonth);
	css_class = null; //CSS class for each day
	table = table + "<td><table cellspacing='0' cellpadding='0' border='0'>";
	table = table + "<tr class='header'>";
	table = table + "  <td colspan='7' class='title' bgcolor='#ffffff' style='color:#000; padding:3px 0 3px 0;'>" + months[currentMonth-1] + "&nbsp;&nbsp;&nbsp;" + currentYear + "</td>";
	table = table + "</tr>";
	table = table + "<tr bgcolor=lightblue><th bgcolor=red>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th></tr>";

    for(var week=0; week < 6; week++) 
		{
      	table = table + "<tr>";
      	for(var dayOfWeek=0; dayOfWeek < 7; dayOfWeek++)
			 {
			 if(week == 0 && startDayOfWeek == dayOfWeek) 
					{
					validDay = 1;
					} 
					else if (validDay == 1 && dayOfMonth > daysInMonth) 
					{
					validDay = 0;
					}

        	if(validDay) 
				{
         		 if (dayOfMonth == selectedDay && currentYear == selectedYear && currentMonth == selectedMonth) 
					{
            		css_class = 'current';
          			} 
					else if (dayOfWeek == 0 || dayOfWeek == 6) 
					{
					css_class = 'weekend';
					} 
					else 
					{
					 css_class = 'weekday';
					}
					var DMY=new Date();
					var perDate=new Date(DMY.getFullYear(),DMY.getMonth(),DMY.getDate());
					var CurDate= new Date(currentYear,currentMonth-1,dayOfMonth);
					var LastDate=new Date(DMY.getFullYear(),DMY.getMonth()+11,DMY.getDate());
					if(CurDate<perDate || CurDate>LastDate)
						{
	          			table = table + "<td><a class='"+css_class+"'><strike><font color='#c1c1c1'>"+dayOfMonth+"</font></strike></a></td>";
						}
						else
						{
						table = table + "<td><a class='"+css_class+"' href=\"javascript:setCalendarControlDate("+currentYear+","+currentMonth+","+dayOfMonth+")\">"+dayOfMonth+"</a></td>";
						}
         				dayOfMonth++;
       			} 
				else
				{
       			table = table + "<td class='empty'>&nbsp;</td>";
	   			}
			}
			table = table + "</tr>";
    	}
		table = table + "</table></td>";
		}
table=table+"</tr>"
table = table +"<tr class='header'><th colspan='"+NoCal+"' style='padding: 3px;'><a href='javascript:hideCalendarControl();'><font color=black><b>Close</b></font></a></th></tr>"
table = table +"</table>";
return table
}
    
    
   
this.show = show;
function show(temDD,temMMYear) 	
{
can_hide = 0;
if (dateField == temDD) 
    {
    return;
    } 
    else 
    {
    dateField = temDD;
    }
   
if(dateField) 	
	{
	try 
	    {
	    selectedMonth = parseInt(document.getElementById(temMMYear.id).value.substring(0,2),10);
	    selectedYear = parseInt(parseInt(document.getElementById(temMMYear.id).value.substring(2,6),10),10);
	    selectedDay = parseInt(document.getElementById(temDD.id).value,10);
	    } catch(e) {}
	}
if (!(selectedYear && selectedMonth && selectedDay)) 
    {
    selectedMonth = getCurrentMonth();
    selectedDay = getCurrentDay();
    selectedYear = getCurrentYear();
    }

currentMonth = selectedMonth;
currentDay = selectedDay;
currentYear = selectedYear;
if(document.getElementById)
	{
	calendar = document.getElementById(calendarId);
	calendar.innerHTML = calendarDrawTable(currentYear, currentMonth);
	setProperty('display', 'block');
	
	  var fieldPos = new positionInfo(tempDptDay);
	  var calendarPos = new positionInfo(calendarId);
	
	  var x = fieldPos.getElementLeft();
	  var y = fieldPos.getElementBottom();
	  setProperty('left', x + "px");
	  setProperty('top', y + "px");
	
	  if (document.all) 
		  {
			setElementProperty('display', 'block', 'CalendarControlIFrame');
			setElementProperty('left', x + "px", 'CalendarControlIFrame');
			setElementProperty('top', y + "px", 'CalendarControlIFrame');
			setElementProperty('width', calendarPos.getElementWidth() + "px", 'CalendarControlIFrame');
			setElementProperty('height', calendarPos.getElementHeight() + "px", 'CalendarControlIFrame');
		  }
	}
}

this.hide = hide;
function hide() 
{

	  setProperty('display', 'none');
	  setElementProperty('display', 'none', 'CalendarControlIFrame');
	  dateField = null;
	
}

  this.visible = visible;
  function visible() {
	
    return dateField
  }

  this.can_hide = can_hide;
  var can_hide = 0;
}



var calendarControl = new CalendarControl();
function showCalendarControl(temdptDD,temdptMMyyyy,temdptDay,type,temretDD,temretMMyyyy,temretDay) // 
{
	
	tempRetDate=temretDD
	tempRetMMYear=temretMMyyyy;
	tempRetDay=temretDay;
	Type=type;
	tempDptDate=temdptDD;
	tempDptMMYear=temdptMMyyyy;
	tempDptDay=temdptDay;
	calendarControl.show(temdptDD,temdptMMyyyy);
  
}



function clearCalendarControl() {
  calendarControl.clearDate();
}

function hideCalendarControl() 
{
  if (calendarControl.visible()) 
	{
    calendarControl.hide();
  	}
}

function setCalendarControlDate(year, month, day)
 {
  calendarControl.setDate(year, month, day);
}

function changeCalendarControlYear(change) 
{
  calendarControl.changeYear(change);
}

function changeCalendarControlMonth(change) 
	{
	  	calendarControl.changeMonth(change);
	}
	
document.write("<iframe id='CalendarControlIFrame'  frameBorder='0' scrolling='no'></iframe>");
document.write("<div id='CalendarControl' id='cal' style='z-index:4;'></div>");

//src='javascript:false;'




//===========================

function createMonthoptions(MonYearField)
{
var CurrYYYY,CurrMM,CurrDD,Counter;
var i,textValue,textText,optionItem; 
currField=document.getElementById(MonYearField);
Counter=0;
var myMonths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
CurrYYYY=parseInt(document.getElementById("CurrDate").value.substring(4,8),10);
CurrMM=parseInt(document.getElementById("CurrDate").value.substring(2,4),10);
CurrDD=parseInt(document.getElementById("CurrDate").value.substring(0,2),10);
Counter=parseInt(CurrMM,10);

	try
	{
	while(currField.options.length)
		{
			d = currField.options.length - 1;
			currField.remove(d);
		}
	}catch(ex){}
for(i=0;i<=11;i++)
	{
	if(Counter==13)
		{
			Counter=1;
			CurrYYYY=CurrYYYY+1;
		}
	if(Counter<10)
		{
		textValue="0"+""+Counter+""+CurrYYYY;
		textText=myMonths[Counter-1]+"  "+CurrYYYY;
		}
		else
		{
		textValue=""+Counter+""+CurrYYYY;
		textText=myMonths[Counter-1]+"  "+CurrYYYY;
		}
		 optionItem = new Option(textText,textValue);
	
     currField.options[i] = optionItem;
     Counter=Counter+1;
	}
}

function addOption(DayField,DateField,MonYearField,flag)
{
var i;
var emp=document.getElementById(DateField);
var monYear=document.getElementById(MonYearField).value;

var DaysInMonth;
var selMon=parseInt(monYear.substring(0,2),10);
var selYear=parseInt(monYear.substring(2,6),10);
DaysInMonth=getDaysInMonth(selMon,selYear);
var tempDate=parseInt(document.getElementById(DateField).value,10);
while(emp.options.length)
	{
		d = emp.options.length-1;
		emp.remove(d);
	}
for(i=1;i<=parseInt(DaysInMonth,10);i++)
	{
	
	if(i<10)
		{
		textValue=i;
		textText="0"+""+i;
		}
		else
		{
		textValue=i;
		textText=i;
		}
		
	 optionItem = new Option(textText,textValue);
     emp.options[i] = optionItem;
   	}
	
   	if(flag==true)
   	{
    tempDate=parseInt(document.getElementById("CurrDate").value.substring(0,2),10);
   	emp.options[tempDate].selected=true;
	}
   	else
   	{
   	try
   	    {
        emp.options[tempDate].selected=true;
		}catch(ex)
        {
        tempDate=getDaysInMonth(selMon,selYear);
        emp.options[parseInt(tempDate,10)].selected=true;
        }
		
   	}
document.getElementById(DayField).value=" "+getDayString(new Date(selYear,selMon-1,tempDate).getDay())
}

function getDaysInMonth(strMonth,strYear)
{
var strDays	 
    switch(parseInt(strMonth,10))
    {
        case 1: strDays = 31;break; 
        case 3: strDays = 31;break; 
        case 5: strDays = 31;break; 
        case 7: strDays = 31;break; 
        case 8: strDays = 31;break; 
        case 10: strDays = 31;break; 
        case 12: strDays = 31;break; 
        case 4: strDays = 30;break; 
        case 6: strDays = 30;break; 
        case 9: strDays = 30;break; 
        case 11: strDays = 30;break; 
        case 2:
	    if((parseInt(strYear,10)%4==0 && parseInt(strYear,10)%100!=0) || (parseInt(strYear,10)%400==0))
	        {
		    strDays = 29;
		    }
		    else
		    {
		    strDays = 28;
		    }
		    
	}
	return strDays;
}
