/*

To Do:
1) Add date range from and to restriction - i.e. forward only from today or from ##/##/#### to ##/##/#### only...
2) Add time option to output - i.e. ##/##/#### 12:00:00 AM/PM - maybe add default time value as well

*/ 
var firstShowCheckinDate=2 
var firstShowCheckoutDate 

var todayStringF = "Today is"

var ctlEndDate="01/01/1970"
var format="mm/dd/yyyy"
var type=""
var iCalWidth = 155
var iCalHeight = 135
var	fixedX = -1 // x position (-1 if to appear below control)
var	fixedY = -1 // y position (-1 if to appear below control)
var startAt = 0 // 0 - sunday ; 1 - monday
var showWeekNumber = 0	// 0 - don't show; 1 - show
var showToday = 1		// 0 - don't show; 1 - show
var imgDir = "controls/calendar/"	// directory for images ... e.g. var imgDir="/img/"
var bShowFullDayName = false //whether to display T or Tue on day headings
	 
//UI vars for control messages
var gotoString = "Go To Current Month"
var todayString = "Today is"

var weekString = "Wk"
//    var scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically."
//    var scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically."
var scrollLeftMessage = "Click to scroll to the previous month. Hold the mouse button to scroll automatically."
var scrollRightMessage = "Click to scroll to the next month.  Hold the mouse button to scroll automatically."
var selectMonthMessage = "Click to select a month."
var selectYearMessage = "Click to select a year."
var selectDateMessage = " " // do not replace [date], it will be replaced by date.

//vars related to whether data was selected and what each data point selected was
var crossobj="", crossMonthObj, crossYearObj;
var crossYearObj;
var monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected;
var monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2;
var ctlNow, dateFormat, nStartingYear;

//form elements to place selected date(s) into
var ctlToPlaceValue, ctlToPlaceEndDateValue;

var bPageLoaded=false

var ie=document.all //check to see browser type
var dom=getObj

var ns4=document.layers
var today =	new	Date()
var dateNow	 = today.getDate()
var monthNow = today.getMonth()
var yearNow	 = today.getYear()
var imgsrc = new Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
var img	= new Array()


var bShow = false;
var objName;
var noOfYears;

var forwardallow= '0';
var backallow= '0';

var langType;

var caltype;
var DateFlage=0;
var dec= 0;
var CalendarType=2;// 1 for single Calendar and 2 for double
var dateIsSelected= false;
var monthActual = '0';


/* hides <select> and <applet> objects (for IE only) */
var dom=getObj

var iframeObj2 =false;

function getObj(objID) 
{
	if (document.getElementById)
	{
		if (document.getElementById(objID)==null)
		objID="ctl00_cphContent_"+objID;
		
		return document.getElementById(objID)
	}
	else if (document.all)
	{
		if (document.all(objID)==null)
		objID="ctl00_cphContent_"+objID;
		
		return document.all[objID];
	}
	else if (document.layers)
	{
		if (document.layers(objID)==null)
		objID="ctl00_cphContent_"+objID;
				
		return document.layers[objID];
	}
}

//* call in popUpCalendarUser()
// Find the element's offsetTop and offsetLeft relative to the BODY tag.
function hideElement( elmID, overDiv )
{  
	if(ie)
	{
		for( i = 0; i < document.all.tags( elmID ).length; i++ )
		{
			obj = document.all.tags( elmID )[i];
			if( !obj || !obj.offsetParent )
			{
				continue ;
			}
		    objLeft   = obj.offsetLeft;
		    objTop    = obj.offsetTop;
		    objParent = obj.offsetParent;

		    while( objParent.tagName.toUpperCase() != "BODY" )
		    {
			    objLeft  += objParent.offsetLeft;
			    objTop   += objParent.offsetTop;
			    objParent = objParent.offsetParent;
		    }


		    objHeight = obj.offsetHeight;
		    objWidth = obj.offsetWidth;
		    if (overDiv !=null)
		    {
			    if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
			    else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
			    else if( overDiv.offsetTop >= ( objTop + objHeight ));
			    else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
			    else
			    {
				    //obj.style.visibility = "hidden";	           
			    }
		    }
	    }
	}	
}   
  
 /*
	* unhides <select> and <applet> objects (for IE only)
	*/
//* call in hideCalendar()
function showElement( elmID )
{
	if( ie )
	{
		for( i = 0; i < document.all.tags( elmID ).length; i++ )
		{
			obj = document.all.tags( elmID )[i];
			if( !obj || !obj.offsetParent )
			{
				 continue;
			}
	    	obj.style.visibility = "";
	   }
    }
}

// * get day month year and description
// * call in addHoliday ()
function HolidayRec (d, m, y, desc)
{
	this.d = d
	this.m = m
	this.y = y
	this.desc = desc
}

var HolidaysCounter = 0
var Holidays = new Array()
// * add holidays get day,month,year and description
function addHoliday (d, m, y, desc)
{
	Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )
}

//write div containing calendar and place holders for cal header and calendar content
if (dom)// dom=documnet.getElementId
{
	for	(i=0;i<imgsrc.length;i++)
	{
		img[i] = new Image
		img[i].src= imgDir + imgsrc[i]
	}
		//Create iFrame object in document
		document.write ("<IFRAME id=iframeObj2 style='position:absolute;border:0px;height:1px;width:1px;src=blank.htm;'></IFRAME>")
	
    if(CalendarType==2)
    {    
	    document.write ("<div onclick='bShow=true' id='calendar' class='div-style'>")
	    document.write("<table width=310 cellpadding=0  cellspacing=0 class='table-style' height=" + iCalHeight + "  >")
	    document.write("<tr class='title-background-style'><td height=13>")
	    document.write("<table cellpadding=0   cellspacing=0 width=100%><tr><td class='title-style' height=13 valign=top>")
	    document.write("<span id='caption'></span></td><td align=right width=15>")
	    document.write(" ")
	    document.write(" </a></td></tr></table></td>")
	    document.write("<td class=divisionline  height=13 align=right >")
	    document.write("<table cellpadding=0  cellspacing=0  width=146><tr><td class='title-style' height=13 valign=top>")
	    document.write("<span id='caption1'></span></td><td align=right width=15><a onclick=javascript:hideCalendar();>")     	                                                                    
	    document.write("<img src='"+imgDir+"close.gif' width='15' id='closeimg' height='13' border='0'")
	    document.write(" alt='Close the calendar'></a></td></tr></table></td>")
	    document.write("</tr><tr>")
		
	    document.write("<td  class='body-style' valign=top><span id='content'></span></td><td  class='body-style' valign=top style='border-left:solid 1px #184453;'><span id='content1'></span></td></tr>")
    }
    else
    {
	    document.write ("<div onclick='bShow=true' id='calendar' class='div-style'>")
	    document.write("<table width="+ iCalWidth + " cellpadding=1 cellspacing=0  class='table-style' height=" + iCalHeight + ">")
	    document.write("<tr class='title-background-style'><td height=13>")
	    document.write("<table cellpadding=0  cellspacing=0 width=100%><tr><td class='title-style' height=13 valign=top>")
	    document.write("<span id='caption'></span></td><td align=right width=15><a href='javascript:hideCalendar()'>")
	    document.write("<img src='"+imgDir+"close.gif' width='15' id='closeimg' height='13' border='0'")
	    document.write(" alt='Close the Calendar'></a></td></tr></table></td></tr><tr><td class='body-style'")
	    document.write(" valign=top><span id='content'></span></td></tr>")
    }
  
    if(CalendarType==2)
    {
	    if (showToday==1)
	    {
		   document.write ("<tr class='today-style'><td><span id='lblToday' class='body-style'></span></td><td class=divisionline ><span id='lblToday1' class='body-style'></span></td></tr>")
	    }
    }
    else
    {
  
	    if (showToday==1)
	    {
		    document.write ("<tr class='today-style'><td><span id='lblToday' class='body-style'></span></td></tr>")
	    }
    }
		
	document.write ("</table></div><div id='selectMonth' class='div-style' style=\"width:58px\">")
	document.write("</div><div id='selectYear' class='div-style'></div>");
}

var	monthName =	new	Array("January","February","March","April","May","June","July","August","September","October","November","December")
var	monthName2 = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC")
	
if (startAt==0)
{
	if (bShowFullDayName == false)
	{
		dayName = new Array	("S","M","T","W","T","F","S")
	}
	else
	{
		dayName = new Array	("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
	} 
}
else
{	
	if (bShowFullDayName == false)
	{
		dayName = new Array	("M","T","W","T","F","S","S")
	}
	else
	{
		dayName = new Array	("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
	}
}

function swapImage(srcImg, destImg)
{
	if (ie)
	{
		if(backallow=='1' && srcImg=='changeLeft'  )
		{
		    getObj(srcImg).setAttribute("src",imgDir + 'left2.gif')
		}
		else if(yearSelected != yearNow && monthActual == monthNow && srcImg=='changeRight' && destImg=='right1.gif' )
		{
			getObj(srcImg).setAttribute("src",imgDir + 'right2.gif')
		}
		else
		{
		    getObj(srcImg).setAttribute("src",imgDir + destImg)
		}
    }
}

// * set header of  calender
// * call in popUpCalendarUser()
function init()
{   
	if (yearNow < 200)
		   yearNow += 1900;
		   
	if (!ns4)
	{
		crossobj=(dom)?getObj("calendar").style : ie? document.all.calendar : document.calendar
		hideCalendar()
		
		crossMonthObj=(dom)?getObj("selectMonth").style : ie? document.all.selectMonth	: document.selectMonth
		crossYearObj=(dom)?getObj("selectYear").style : ie? document.all.selectYear : document.selectYear

		monthConstructed=false;
		yearConstructed=false;

		if (showToday==1)
		{
			if (bShowFullDayName == false){
				var sToday = monthName[monthNow].substring(0,3) + " " +  dateNow +  " " + yearNow
		
			}
			else
			{ 
				var sToday = dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3) + "	" +	yearNow
			}	
						
			getObj("lblToday").innerHTML =	todayString + " <a class='today-style'  onmouseout='window.status=\"\"' title='"+gotoString+"' onmouseover=javascript:window.status=\"\";return true;>" +	sToday + "</a>"
			if(CalendarType==2)
			{
				getObj("lblToday1").innerHTML =	todayString + " <a class='today-style'  onmouseout='window.status=\"\"' title='"+gotoString+"' onmouseover=javascript:window.status=\"\";return true;>" +	sToday + "</a>"
			}
		}
			

	    ///*make calendar header fixed width so that header does not "flop" around			
				
	    sHTMLCalHead =" <table cellpadding=0 cellspacing=0 ><tr>"			
	    sHTMLCalHead+=" <td id='spanLeft' height=13 width=10 valign=top class='title-control-normal-style'"
		
	    sHTMLCalHead+=" onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.className=\"title-control-select-style\";window.status=\""
	    sHTMLCalHead+=" "+scrollLeftMessage+"\"' title=\""+scrollLeftMessage+"\" onclick='javascript:decMonth()'"
		
	    sHTMLCalHead+=" onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.gif\");"
	    sHTMLCalHead+=" this.className=\"title-control-normal-style\";window.status=\"\"' "
	    sHTMLCalHead+=" onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)' "
	    sHTMLCalHead+=" onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>"
	    sHTMLCalHead+=" <img id='changeLeft' src='"+imgDir+"left2.gif' width=10 height=11 border=0></td>"
		
	    sHTMLCalHead+=" <td id='spanRight' height=13 width=10 valign=top class='title-control-normal-style'"
	    sHTMLCalHead+=" onmouseover='swapImage(\"changeRight\",\"right2.gif\");this.className=\"title-control-select-style\";"
	    sHTMLCalHead+="window.status=\""+scrollRightMessage+"\"' title=\""+scrollRightMessage+"\" "
	    sHTMLCalHead+="onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1.gif\");"
	    sHTMLCalHead+="this.className=\"title-control-normal-style\";window.status=\"\"' "
	    sHTMLCalHead+="onclick='incMonth()' onmousedown='clearTimeout(timeoutID1);"
	    sHTMLCalHead+="timeoutID1=setTimeout(\"StartIncMonth()\",500)' onmouseup='clearTimeout(timeoutID1);"
	    sHTMLCalHead+="clearInterval(intervalID1)'><img id='changeRight' src='"+imgDir+"right1.gif'"
	    sHTMLCalHead+=" width=10 height=11 border=0></td>"
	    sHTMLCalHead+=" <td id='spanMonth' height=13 width=70 valign=top class='title-control-normal-style'"
	    sHTMLCalHead+=" onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");"
	    sHTMLCalHead+="this.className=\"title-control-select-style\";window.status=\""+selectMonthMessage+"\"'"
	    sHTMLCalHead+=" title=\""+selectMonthMessage+"\" onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");"
	    sHTMLCalHead+="this.className=\"title-control-normal-style\";window.status=\"\"' onclick='popUpMonth()'></td>"
	    sHTMLCalHead+=" <td id='spanYear' height=13 valign=top class='title-control-normal-style' "
	    sHTMLCalHead+="onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.className=\"title-control-select-style\"; "
	    sHTMLCalHead+="window.status=\""+selectYearMessage+"\"' title=\""+selectYearMessage+"\" "
	    sHTMLCalHead+="onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.className=\"title-control-normal-style\";"
	    sHTMLCalHead+="window.status=\"\"'	onclick='popUpYear()'></td>"
	    sHTMLCalHead+=" </tr></table>"
		
	    getObj("caption").innerHTML  =	sHTMLCalHead
		
	    //**************for double calendar********
	    if(CalendarType==2)	
	    {
	        sHTMLCalHead1 =" <table cellpadding=0 cellspacing=0><tr>"			
	        sHTMLCalHead1+=" <td "
	        sHTMLCalHead1+=" "
	        sHTMLCalHead1+=" <td id='spanRight' "
	        sHTMLCalHead1+=" ></td>"
	        sHTMLCalHead1+=" <td id='spanMonth1' height=13 width=70 valign=top class='title-control-normal-style1'"
	        sHTMLCalHead1+=" ></td>"
	        sHTMLCalHead1+=" <td id='spanYear1' height=13 valign=top class='title-control-normal-style1' "
	        sHTMLCalHead1+=" ></td>"
	        sHTMLCalHead1+=" </tr></table>"
    		
	        getObj("caption1").innerHTML  =	sHTMLCalHead1
	    }
	    //********************************************
	
	    bPageLoaded=true ;
	}
}

function hideCalendar()
{
	crossobj.visibility="hidden" ;
	if (crossMonthObj != null)
	{
		 crossMonthObj.visibility="hidden";
	}
	if (crossYearObj !=	null)
	{
		 crossYearObj.visibility="hidden";
	}
	
	//hide iframe
	if(iframeObj2)iframeObj2.style.display = 'none';
	
	showElement( 'SELECT' );
	showElement( 'APPLET' );
}

// * call in constructDate()
function padZero(num)
{
	return (num	< 10)? '0' + num : num ;
}

//controls formatting of date
//* call in closeCalendar(),ChDate(),constructCalendar (), 
function constructDate(d,m,y)
{   
	sTmp = dateFormat ;
	sTmp = sTmp.replace	("dd","<e>");
	sTmp = sTmp.replace	("d","<d>");
	sTmp = sTmp.replace	("<e>",padZero(d));
	sTmp = sTmp.replace	("<d>",d);
	if(type=="1"){
		sTmp = sTmp.replace (" ","/");
	  //comment this out to remove /
	}
	sTmp = sTmp.replace	("mmm","<o>");
	sTmp = sTmp.replace	("mm","<n>");
	sTmp = sTmp.replace	("m","<m>");
	sTmp = sTmp.replace	("<m>",m+1)	;	
	sTmp = sTmp.replace	("<n>",padZero(m+1));
	if(type=="1")
	{
		sTmp = sTmp.replace	("<o>",monthName[m]);
	}
	else
	{
		sTmp = sTmp.replace	("<o>",monthName2[m]);
	}
	sTmp = sTmp.replace ("yyyy",y);
	//return sTmp.replace ("yyyy",y) //original code
	if(type=="1")
	{
		return sTmp.replace (" ","/"); //comment this out to remove /
	}
	else
	{
		return sTmp.replace ("yy",padZero(y%100));
	}	
}

//handles setting of actual dat value in form field
// *call in constructCalendar()
function closeCalendar()
{
	try
	{	
	    var	sTmp;
	    hideCalendar();         
	    if(type=="1")
	    {
	        if(CalendarType==2)
	        {
	            if(DateFlage==1)
	            {
		            if(monthSelected==11)
		            {    	  
		               monthSelected=0
		               yearSelected=yearSelected+1
			        }
		            else
		            {
		               monthSelected=monthSelected+1
			        }
	            }
	        }    
			ctlToPlaceValue.value =	constructDate(dateSelected,monthSelected,yearSelected)
			
				
			if(ctlToPlaceValue.id==firstDateTextBox)
			{	 
			    caltype=firstDateTextBox;	    
				setCheckInValue(ctlToPlaceValue.value);						
				if(document.getElementById("ctl00_cphContent_btnDepartDate") !=null)
				    document.getElementById("ctl00_cphContent_btnDepartDate").click();
			 
			}
			else
			{			 	
			    caltype=secondDateTextBox;
				setCheckOutValue(ctlToPlaceValue.value);
				
				if(document.getElementById("ctl00_cphContent_btnReturnDate") !=null)
				    document.getElementById("ctl00_cphContent_btnReturnDate").click();
			}
		}		 
		else
		{
		    if(CalendarType==2)
	        {
	            if(DateFlage==1)
	            {
		            if(monthSelected==11)
		            {
            		  
			            monthSelected=0
			            yearSelected=yearSelected+1
		            }
		            else
		            {
			            monthSelected=monthSelected+1
		            }
	            }
	        }
		    ctlToPlaceValue.value =	constructDate(dateSelected,monthSelected,yearSelected)
		}			
	}
	catch(er)
	{
		alert(er);
	}  		
}

function setCheckInValue(controlValue)
{ 
	var chin=controlValue;
	var chin_array=chin.split("/")
	var Imlength=chin_array[0].length;
	var Idlength=chin_array[1].length;
	var Iylength=chin_array[2].length;
	
	var monthSubStr=chin_array[0];
	
	if(valueFormat=="0")
	{
		monthSubStr=chin_array[0].substring(0,1);
		if(monthSubStr=="0")
		{
			monthSubStr=chin_array[0].substring(1,2);
		}
		else
		{
			monthSubStr=chin_array[0]
		}
		 monthSubStr--;
	   
		 if(monthSubStr<10)
			monthSubStr="0"+monthSubStr;
	}
		
	var monthyear = chin_array[2]+ monthSubStr;
	var dayValue=chin_array[1];
	if(dayValue.substring(0,1)=="0")
		dayValue=dayValue.substring(1,2);
   
	getObj("arrivalMonthYear").value=monthyear;
	fillArrivalDate();
	getObj("arrivalDay").value=dayValue;
	fillDepartureMonth();	
	fillDepartureDate();	
	fillTextBox();	
}

function setCheckOutValue(controlValue)
{
	var chin=controlValue;
	var chin_array=chin.split("/")
	var Imlength=chin_array[0].length;
	var Idlength=chin_array[1].length;
	var Iylength=chin_array[2].length;	
	var monthSubStr=chin_array[0];
	if(valueFormat=="0")
	{
		monthSubStr=chin_array[0].substring(0,1);
		if(monthSubStr=="0")
		{
			monthSubStr=chin_array[0].substring(1,2);
		}
		else
		{
			monthSubStr=chin_array[0]
		}
		
		monthSubStr--;
	   
		if(monthSubStr<10)
			monthSubStr="0"+monthSubStr;
	}
		
	var monthyear = chin_array[2]+ monthSubStr;
	
	var dayValue=chin_array[1];	
	if(dayValue.substring(0,1)=="0")
		dayValue=dayValue.substring(1,2);
	
	getObj("departureMonthYear").value=monthyear;	
	fillDepartureDate()	
	getObj("departureDay").value=dayValue;	
	//fillTextBox();
	
	
}


/*** Start Month Pulldown ***/
//* set the interval of given method
function StartDecMonth()
{
	intervalID1=setInterval("decMonth()",80);
}

//* set the interval of given method
function StartIncMonth()
{
	intervalID1=setInterval("incMonth()",80);
}

// * if selected month is  last month of year then next month will be first month of next year
//* call in init()
function incMonth ()
{
    if ( type== 1 )
    {
        if(forwardallow == '1')
        {  
            return;
        }

        monthSelected++
    	   
        if (monthSelected>11)
        {
            monthSelected=0
            yearSelected++
        } 
    		 
        constructCalendar()
    }
    else 
    {
        monthSelected++
        if (monthSelected>11)
        {
            monthSelected=0
            yearSelected++
        }

        constructCalendar()
    }
}

// * if selected month is first month of year then month of last year is last month
// * call in init()
function decMonth ()
{
	if(type == 1)
	{	
		if(backallow == '1')
		{
			return  ;
		}
		
		swapImage('changeLeft','left2.gif');
		swapImage('changeRight','right1.gif');
		
		monthSelected--
		if (monthSelected<0) {
			monthSelected=11
			yearSelected--
		}
				
		constructCalendar()		
	}
	else
	{
		monthSelected--
		if (monthSelected<0) 
		{
	   
			monthSelected=11
			yearSelected--
		}	   
	    constructCalendar()
	
	}
}

// * call in popUpMonth() 
function constructMonth() 
{
	popDownYear()    
    var	monthName =	new	Array("January","February","March","April","May","June","July","August","September","October","November","December")
	if( type== 1 )
	{ 	
		sHTML =	""
		if(yearSelected == yearNow )
		{
		    var startMonth=cutMonthNow;
		    if(yearSelected == yearNow && monthSelected < cutMonthNow )
	        {		     
		        startMonth = parseFloat(monthNow);
	        }
		    for	(i=parseInt(startMonth,10); i<12;	i++)
		    {
			    sName =	monthName[i];
			    if(i >= monthSelected)
			    {
				    if(i == monthSelected)
				    {
				      sName =	"<B>" +	sName +	"</B>"
				    }
			    }
		        sHTML += "<tr><td id='m" + i + "' onmouseover='this.className=\"dropdown-select-style\"' onmouseout='this.className=\"dropdown-normal-style\"' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
		    }		    		
	        getObj("selectMonth").innerHTML = "<table class='dropdown-style' cellspacing=0 cellpadding=1 onmouseover='clearTimeout(timeoutID1)' onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"\",100);event.cancelBubble=true'>" + sHTML + "</table>"
	        monthConstructed=true
	    }
	    else if(yearSelected > yearNow)
	    {   
		    var startMonth=0;
    		
		    if(yearSelected==cutYearNow)
			    startMonth=parseInt(cutMonthNow,10);
    			
	         for(i=startMonth; i <= monthNow;	i++)
	         {
		         sName =	monthName[i];
		         if(i == monthSelected)
		         {
			         sName =	"<B>" +	sName +	"</B>"
		         }
    		     
		         sHTML += "<tr><td id='m" + i + "' onmouseover='this.className=\"dropdown-select-style\"' onmouseout='this.className=\"dropdown-normal-style\"' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
	         }
    	     
	         getObj("selectMonth").innerHTML = "<table class='dropdown-style' cellspacing=0 cellpadding=1 onmouseover='clearTimeout(timeoutID1)' onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" + sHTML + "</table>"
             monthConstructed=true
	    }
    }	
	else
	{
		if (!monthConstructed)
		{
		      sHTML =	""
		      for(i=0; i<12;	i++)
		      {
			    sName =	monthName[i];
			    if (i==monthSelected)
			    {
				    sName =	"<B>" +	sName +	"</B>"
			    }
			    sHTML += "<tr><td id='m" + i + "' onmouseover='this.className=\"dropdown-select-style\"' onmouseout='this.className=\"dropdown-normal-style\"' onclick='monthConstructed=false;monthSelected=" + i + ";constructCalendar();popDownMonth();event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
		      }
    		 
	          getObj("selectMonth").innerHTML = "<table class='dropdown-style'  onmouseover='clearTimeout(timeoutID1)' onmouseout='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>" + sHTML + "</table>"
	          monthConstructed=true
        }
    }
     getObj("selectMonth").style.zIndex=1000;
}

// * asign the left & top lenth of popmonth
// * call in init()
function popUpMonth() 
{
	constructMonth()
	crossMonthObj.visibility = (dom||ie)? "visible"	: "show"
	if(type=="1")
	{
	     crossMonthObj.left = parseInt(crossobj.left,10) + 20 + "px";// x offset of month selector
	     crossMonthObj.top =	parseInt(crossobj.top,10) + 16 + "px"; // y offset of month selector
	}
	else
	{
		crossMonthObj.left = (parseInt(crossobj.left,10) + 30) + "px";
		crossMonthObj.top =	(parseInt(crossobj.top,10) + 20) + "px";
	}
}

function popDownMonth()
{   
    crossMonthObj.visibility= "hidden"
}

/*** END Month Pulldown ***/
/*** Start Year Pulldown ***/
// * increase the year in popdown year in calender
function incYear()
{
	if(type == 1)
	{
		return; 
	}   
	
	for	(i=0; i<7; i++)
	{
		newYear	= (i+nStartingYear)+1
		if (newYear==yearSelected)
		{ 
			txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;"
		}
		else
		{
			txtYear =	"&nbsp;" + newYear + "&nbsp;" 
		}
		getObj("y"+i).innerHTML = txtYear
	}
	
	nStartingYear ++;
	bShow=true
}

//* decrease the year in popdown year in calender	 
function decYear()
{
	if( type== 1 )
	{
		return; 
	}
	for	(i=0; i<7; i++)
	{
		newYear	= (i+nStartingYear)-1
		if (newYear==yearSelected)
		{ 
			txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" 
		}
		else
		{ 
			txtYear =	"&nbsp;" + newYear + "&nbsp;" 
		}
		getObj("y"+i).innerHTML = txtYear
	}
	
	nStartingYear --;
	bShow=true
}

// * select the given year 
// call in constructYear()
function selectYear(nYear)
{
	yearSelected=parseInt(nYear+nStartingYear,10);

	yearConstructed=false;
	constructCalendar();
	
	popDownYear();
}

function constructYear() 
{
	if( type== 1 )
	{
	    popDownMonth()
	    sHTML =	""
	    if (!yearConstructed)
	    { 
			if ( type== 1 )
			{
			    sHTML =	"<tr><td align='center' onmouseover='this.className=\"dropdown-select-style\"' >	</td></tr>"			
			}
			else 
			{
			    sHTML =	"<tr><td align='center'	onmouseover='this.className=\"dropdown-select-style\"' onmouseout='clearInterval(intervalID1);this.className=\"dropdown-normal-style\"' onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"
			}
			
		    j =	0
		 
		   nStartingYear = parseInt(cutYearNow,10);//yearNow
		   
		   if(parseInt(cutYearNow,10)>yearNow)
				nEndingYear =parseInt(cutYearNow,10);
		   else
				nEndingYear =parseInt(cutYearNow,10)+1;
				
		   for(i=(nStartingYear); i<=(nEndingYear); i++)
		   {
			   sName =	i;
			   if (i==yearSelected)
			   {
				   sName =	"<B>" +	sName +	"</B>"
			   }
		       sHTML += "<tr><td id='y" + j + "' onmouseover='this.className=\"dropdown-select-style\"' onmouseout='this.className=\"dropdown-normal-style\"' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
		       j++;
		   }
		   
	       if (type == 1)
	       {
	           sHTML += "<tr><td align='center'> </td></tr>"
	       }
	       else
	       {
	           sHTML += "<tr><td align='center' onmouseover='this.className=\"dropdown-select-style\"' onmouseout='clearInterval(intervalID2);this.className=\"dropdown-normal-style\"' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>"
	       }
		
	       getObj("selectYear").innerHTML	= "<table width=44 class='dropdown-style' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"	+ sHTML	+ "</table>"
           yearConstructed	= true
	   }
	}
	else 
	{
		popDownMonth()
		
		sHTML =	""
		
		if (!yearConstructed)
		{
		    sHTML =	"<tr><td align='center'	onmouseover='this.className=\"dropdown-select-style\"' onmouseout='clearInterval(intervalID1);this.className=\"dropdown-normal-style\"' onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"
		    j =	0
		    nStartingYear =	yearSelected-3
		    
		    for	(i=(yearSelected-3); i<=(yearSelected+3); i++)
		    {
		        sName =	i;
			    if (i==yearSelected)
			    {
				    sName =	"<B>" +	sName +	"</B>"
			    }
		        sHTML += "<tr><td id='y" + j + "' onmouseover='this.className=\"dropdown-select-style\"' onmouseout='this.className=\"dropdown-normal-style\"' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
		        j++;
		    }
		    
		    sHTML += "<tr><td align='center' onmouseover='this.className=\"dropdown-select-style\"' onmouseout='clearInterval(intervalID2);this.className=\"dropdown-normal-style\"' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)'	onmouseup='clearInterval(intervalID2)'>+</td></tr>"
		    getObj("selectYear").innerHTML	= "<table width=44 class='dropdown-style' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>"	+ sHTML	+ "</table>"
		    yearConstructed	= true
		}
	}
}

//* clear the interval time 
function popDownYear() 
{
	clearInterval(intervalID1)
	clearTimeout(timeoutID1)
	clearInterval(intervalID2)
	clearTimeout(timeoutID2)
	crossYearObj.visibility= "hidden"
}

// * call in init()
function popUpYear() 
{
	var	leftOffset;
	constructYear();

	crossYearObj.visibility=(dom||ie)?"visible" : "show";
	leftOffset = parseInt(crossobj.left,10) + getObj("spanYear").offsetLeft;
	
	if(type=="1")
	{
	    if (ie)
	    {
		    leftOffset += 1 // x offset of year selector
	    }
	    crossYearObj.left =	leftOffset+ "px"
	    crossYearObj.top = parseInt(crossobj.top,10) +	16 + "px"// y offset of year selector
	}
	else 
	{   
	    leftOffset += 6
	    crossYearObj.left =	leftOffset+ "px";
	    crossYearObj.top = (parseInt(crossobj.top,10) +	20) + "px";
	}
}
	
/*** Start actual calendar code which builds string of calendar content***/
// * get the date and return number of week
// * call in constructCalender()
function WeekNbr(today)
{	
	Year = takeYear(today);
	Month = today.getMonth();
	Day = today.getDate();
	now = Date.UTC(Year,Month,Day+1,0,0,0);
	var Firstday = new Date();
	Firstday.setYear(Year);
	Firstday.setMonth(0);
	Firstday.setDate(1);
	then = Date.UTC(Year,0,1,0,0,0);
	var Compensation = Firstday.getDay();
	if (Compensation > 3) Compensation -= 4;
	else Compensation += 3;
	NumberOfWeek =  Math.round((((now-then)/86400000)+Compensation)/7);
	return NumberOfWeek;
}

//* return year
//* call in weekNbr
function takeYear(theDate)
{
	x = theDate.getFullYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}

//builds string containing HTML table that is calender
//* 
//* call in closeCalendar()
function setExpDate(iID)
{
	if(iID.substring(iID.length - 3,iID.length) == "Enr")
	{
		var ArrayOfDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		tb = iID.substring(0,iID.length - 3) + "Exp"
		obj = getObj(iID)
		dt =obj.value;
		mm = dt.substring(0,2)
		dd = dt.substring(3,5)
		yy = parseInt(dt.substring(6,10),10)
		yy = yy + parseInt(noOfYears,10)
		obj = getObj(tb);
		obj.value= mm + "/" + dd + "/" + yy
	 }	
}
	
function getDays(GivenYear)
{
	if((GivenYear % 4 == 0 && GivenYear % 100 !=0 ) || (GivenYear % 100 == 0 && GivenYear % 400 ==0 ))
		return 29;
	else
	  return 28;
}	
	
//handles building calendar - this is the function that is called by page controls to do calendar functionality
function popUpCalendarUser(ctl, ctl3)
{
//    getObj("txtDateFr").value=getObj("txtchin").value
//    getObj("txtDateTo").value=getObj("txtchout").value    
   
	ctl2=getObjSW(ctl3);
	caltype=ctl3;
	type=1 ;
	var	leftpos=0; // (x) location on page of element calling this function - used to hide selects near calendar
	var	toppos=0; // (y) location on page of element calling this function - used to hide selects near calendar
	objName = ctl2.name;
   
	try
	{		   
		if (bPageLoaded)
		{ 
			if ( crossobj.visibility ==	"hidden" )
			{
				ctlToPlaceValue = ctl2;
				if(ctlEndDate!=null)
				{
					ctlToPlaceEndDateValue = ctlEndDate;
				}
				
				dateFormat=format;			
				formatChar = " ";

				aFormat	= dateFormat.split(formatChar)
				if (aFormat.length<3)
				{
				    formatChar = "/";
				    aFormat	= dateFormat.split(formatChar);
				   
					if (aFormat.length<3)
					{				  
					    formatChar = ".";
					    aFormat	= dateFormat.split(formatChar);
					    
						if (aFormat.length<3)
						{					  
						    formatChar = "-";
						    aFormat	= dateFormat.split(formatChar)
						    if (aFormat.length<3)
						    {					  
						        // invalid date	format
							    formatChar="";
							}
					    }
				    }
			    }

				tokensChanged =	0;
				if ( formatChar	!= "" )
				{					
					//CODE CHANGE - specify delimiter on date value so can split val properly
					formatChar = "/";
					// use user's date
					x = ctl2.value ;
					
					aData =	ctl2.value.split(formatChar)
					ctl2.value = x;
					for	(i=0;i<3;i++)
					{
						if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
						{
							dateSelected = parseInt(aData[i], 10);
							tokensChanged ++;
						}
						else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
						{
							monthSelected =	parseInt(aData[i], 10) - 1 	;
							tokensChanged ++;
						}
						else if	(aFormat[i]=="yyyy")
						{
							yearSelected = parseInt(aData[i], 10);
							tokensChanged ++;
						}
					    else if	(aFormat[i]=="mmm") 
					    {
						    for	(j=0; j<12;	j++)
						    {
							    if (aData[i]==monthName[j])
							    {
							        monthSelected=j;
							        tokensChanged ++;
							    }
						    }
					    }
				    }				
			    }
			
			    if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected))
			    {
				    dateSelected = dateNow;
				    monthSelected = monthNow;
				    yearSelected = yearNow;
			    }				

			    odateSelected=dateSelected;
			    omonthSelected=monthSelected;
			    oyearSelected=yearSelected;

			    aTag = ctl;
    			
			    do
			    {
				    aTag = aTag.offsetParent;
				    leftpos	+= aTag.offsetLeft;
				    toppos += aTag.offsetTop;
			    } 
			    while(aTag.tagName!="BODY");
    		 
			    var browserName = "";

			    var ua = navigator.userAgent.toLowerCase(); 
			    if ( ua.indexOf( "opera" ) != -1 )
			    { 
				    browserName = "opera"; 
			    }
			    else if ( ua.indexOf( "msie" ) != -1 )
			    { 
				    browserName = "msie"; 
			    }
			    else if ( ua.indexOf( "safari" ) != -1 )
			    { 
				    browserName = "safari"; 
			    }
			    else if ( ua.indexOf( "mozilla" ) != -1 )
			    { 
				    if ( ua.indexOf( "firefox" ) != -1 )
				    { 
					    browserName = "firefox"; 
				    }
				    else
				    { 
					    browserName = "mozilla"; 
				    } 
			    }
			
			  
		        if(browserName == "firefox")
			    {
		            crossobj.left =	fixedX==-1 ? (ctl.offsetLeft	+ leftpos) + "px" :	fixedX+ "px";
		            crossobj.top = fixedY==-1 ?	(ctl.offsetTop +	ctl.y + ctl.offsetHeight) + "px" : fixedY + "px"; 
		        }
		        else
		        {
			        crossobj.left =	fixedX==-1 ? ctl.offsetLeft	+ leftpos + "px" :	fixedX+ "px";
		            crossobj.top = fixedY==-1 ?	ctl.offsetTop +	toppos + ctl.offsetHeight+ "px" : fixedY+ "px"; 
		        }	
    				   
			    var      preDateNow= dateNow
			    var      preMonthNow= monthNow
			    var      preYearNow=yearNow
								   
			    constructCalendar (1, monthSelected, yearSelected);
    			 
			    dateNow =  preDateNow
			    monthNow =  preMonthNow 
			    yearNow = preYearNow
    									
			    crossobj.visibility=(dom||ie)? "visible" : "show";

			    //make call to hide selects
    		   
			    hideElement('SELECT', getObjSW("calendar"));
			    hideElement('APPLET', getObjSW("calendar"));	

			    bShow = true;
			}
		}
		else
		{
		    init();	  
		}
	}
	catch(er)
	{
	    alert(er);
	}  
}



function OpenNewWin(url)
{
	if(url.length > 3)
	{
		if(url.substring(0,4) == "http")
	    	newWin = window.open(url);
		else
		{
			newWin = window.open("http://" + url);
		}
	}
	else
	{
	    newWin = window.open(url);
	}
 }
		
function popUpCalendarAdmin(ctl,ctl2,from)
{
    if(ctl==getObj("imgCal2"))
    { 
	     if(getObj("txtFrom").value=="")
	     {
    		  return false;
	     }
    }
 
    if(ctl==getObj("imgCal4"))
    {
	    if(getObj("txtFrom2").value=="")
	    {	   
		    return false;
	    }
    }
 
    if(ctl==getObj("imgCal6"))
    {
	    if(getObj("txtFrom3").value=="")
	    {	     
		    return false;
	    }
    }
	
	type=2
	
	imgDir ="controls/calendar/"
	getObj("closeimg").src=imgDir+"close.gif"
	var	leftpos=0
	var	toppos=0
	
    init();
	 
    if(bPageLoaded)
    {
	    if ( crossobj.visibility ==	"hidden" )
	    {
		    ctlToPlaceValue	= getObj(ctl2)
		    dateFormat=format;
		    formatChar = " ";
		    aFormat	= dateFormat.split(formatChar);
		
		    if (aFormat.length<3)
		    {
		        formatChar = "/";
		        aFormat	= dateFormat.split(formatChar);
    		   
		        if (aFormat.length<3)
		        {
			         formatChar = ".";
			         aFormat	= dateFormat.split(formatChar);
			         if (aFormat.length<3)
			         {
				          formatChar = "-";
				          aFormat	= dateFormat.split(formatChar);
				          if (aFormat.length<3)
				          {
				              formatChar="";
				          }
			          }
		         }
		    }

	        tokensChanged =	0;
	        if ( formatChar	!= "" )
	        {		
		        aData =	getObj(ctl2).value.split(formatChar);
		        for	(i=0;i<3;i++)
		        {
		            if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
		            {
					    dateSelected = parseInt(aData[i], 10);
					    tokensChanged ++;
		            }
		            else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
		            {
				        monthSelected =	parseInt(aData[i], 10) - 1;
				        tokensChanged ++;
			        }
		            else if	(aFormat[i]=="yyyy")
		            {
				        yearSelected = parseInt(aData[i], 10);
				        tokensChanged ++;
			        }
		            else if	(aFormat[i]=="mmm")
		            {
			            for	(j=0; j<12;	j++)
			            {
				            if (aData[i]==monthName[j])
				            {
					            monthSelected=j;
					            tokensChanged ++;
				            }
			            }
		            }
        	    }
            }
            
	        if ((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||isNaN(yearSelected)) 
	        {			
			    dateSelected = dateNow;
			    monthSelected =	monthNow;
			    yearSelected = yearNow;
	        }
	        
			odateSelected=dateSelected;
			omonthSelected=monthSelected;
			oyearSelected=yearSelected;

		    aTag = ctl
		 
		    do 
		    {
				aTag = aTag.offsetParent;
				leftpos	+= aTag.offsetLeft;
				toppos += aTag.offsetTop;
		     } 
		     while(aTag.tagName!="BODY");
		
		      var oPosLeft = (fixedX==-1 ? ctl.offsetLeft	+ leftpos :	fixedX) + "px";
		      var oPosTop = (fixedY==-1 ?	ctl.offsetTop +	toppos + ctl.offsetHeight +	2 + "px" :	fixedY + "px") ;
			
		      if(from==1)
		      {
		          crossobj.left =	426;
		          crossobj.top = oPosTop;
		      }
		      else if(from==2)
		      {
		          crossobj.left =	600;
		          crossobj.top = oPosTop;
		      }
		      else
		      {
		          crossobj.left =	oPosLeft;
		          crossobj.top = oPosTop;
		      }	
		      	
		      constructCalendarAdmin (1, monthSelected, yearSelected);
    		 
		      crossobj.visibility=(dom||ie)? "visible" : "show"
		      bShow = true;			
		}
	}
	else
	{		
		init();
	}
}	

//handles click on Enter Key to hide calendar
document.onkeypress = function hidecal1 (e) 
{
    if(!e)
       e=event;
	if (e.keyCode==27) 
	 {
		hideCalendar();
	 }
}

//handles click on of document to hide calendar
document.onclick = function hidecal2 () 
{ 		
	if (!bShow)
	{
	    hideCalendar();
	}
	bShow = false
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////

var cutDateNow="";
var cutMonthNow="";
var cutYearNow="";

function constructCalendarAdmin()
{   
//    cutDateNow=currentDate; //parseInt(getObj("arrivalDay").value);
//    //If calendar is return date than set the cutDate to Departure date  
//    if(secondDateTextBox.indexOf(caltype)>-1)
//	{	//   alert(getObjSW(firstDateTextBox).value)
//	    cutDateNow=getObjSW(firstDateTextBox).value.split("/")[1];
//	}
// //  var month1=getObjSW("arrivalMonthYear").value.substring(4,6);
//    var year1=getObjSW("arrivalMonthYear").value.substring(0,4);
//    cutYearNow=parseInt(year1);    
////    if(valueFormat=="0")
////    {
////	    var monthNow1=cutMonthNow.substring(0,1);
////	    if(monthNow1=="0")
////	    {
////		    monthNow1=month1.substring(1,2);
////	    }
////	    else
////	    {
////		    monthNow1=month1;
////	    }
////    }   

//    if(firstDateTextBox.indexOf(caltype)>-1 && secondDateTextBox.indexOf(caltype)==-1)
//    {	
//        //If calendar is departure date then set cutMonth to current month
//	    cutMonthNow=currentMonth;
//	    if(parseInt(cutMonthNow)<10)
//	        cutMonthNow="0" + cutMonthNow;
//	}
//	else
//	{	  
//        cutMonthNow=getObjSW(firstDateTextBox).value.split("/")[0] -1;
//        if(parseInt(cutMonthNow)<10)
//	        cutMonthNow="0" + cutMonthNow;
//    }
//    
//    if(caltype=="txtDateFr")
//    {        
//        cutDateNow=dateNow;
//        cutYearNow=yearNow;
//        cutMonthNow=monthNow;
//    }
   
    if (showToday==1)
    {
	    if (bShowFullDayName == false)
	    {
		    var sToday = monthName[monthNow].substring(0,3) + " " +  dateNow +  " " + yearNow
	    }
	    else
	    { 
		    var sToday = dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3) + "	" +	yearNow
	    }				
	 }
	 
	 forwardallow= '0';
	 backallow= '0';	
   
	var arrMonVal;
	
//	if(getObj("arrivalMonthYear").options[0]==null)
//	{
//	    var chin;
//        var chin_array;
//        var chkInMonth;
//        var chkInDay;
//        var chkInYear;
//        if(caltype==secondDateTextBox)
//        {         
//            var chin=getObjSW(secondDateTextBox).value;
//            var chin_array=chin.split("/");
//            var chkInMonth=chin_array[0];
//            var chkInDay=chin_array[1];
//            var chkInYear=chin_array[2];
//        }
//        else if(caltype==firstDateTextBox)
//        {
//            var chin=getObjSW(firstDateTextBox).value;
//            var chin_array=chin.split("/");
//            var chkInMonth=chin_array[0];
//            var chkInDay=chin_array[1];
//            var chkInYear=chin_array[2];
//        }
//        
//	    var arrivalObject=new Option(chkInMonth+", "+chkInYear);
//	    var arrivalLength = getObjSW("arrivalMonthYear").options.length;
//	    getObjSW("arrivalMonthYear").options[arrivalLength]=arrivalObject;
//	}
	//arrMonVal= (getObjSW("arrivalMonthYear").options[0].value).substring(4,6) ;

	if(yearSelected == yearNow && monthSelected < cutMonthNow )
	{ 
  
		yearSelected = yearNow ;
		monthSelected = parseInt(cutMonthNow,10) ;
	}
	else if ( yearSelected != yearNow && monthSelected > monthNow )
	{		
		yearSelected = yearNow + 1 ;
		if(CalendarType==2)
		{
			if(arrMonVal==00)
			{
			   monthSelected = 11 ;
			   yearSelected = yearNow ;
			}
			else
			{			  
			   monthSelected = monthNow -1 ;
			}
		}
		else
		{
			monthSelected = monthNow ;
		}
	}
	else if  ( yearSelected != yearNow && monthSelected == monthNow )
	{ 				
		 if (CalendarType==2)
		 {			
			if(arrMonVal==00)
			{
				monthSelected = 11 ;
			    yearSelected = yearNow ;
			}
			else
			{    
				monthSelected = monthNow -1 ;
			    yearSelected = yearNow + 1 ;					   
		    }
		}
		else
		{
		    monthSelected = monthNow  ;
		    yearSelected = yearNow + 1 ;
		}								
	} 
	
	if(monthSelected != monthNow)	 
	{
		swapImage('changeLeft','left1.gif','yes')
	}

    var iDateCelWidth = (iCalWidth/7) - 4
    var dateMessage
    var	startDate =	new	Date (yearSelected,monthSelected,1)
    var	endDate	= new Date (yearSelected,monthSelected+1,1);
    endDate	= new Date (endDate	- (24*60*60*1000));
		  
    numDaysInMonth = endDate.getDate()
    datePointer	= 0 
    dayPointer = startDate.getDay() - startAt  //*var startAt = 0 // 0 - sunday ; 1 - monday   
   
   if (dayPointer<0)
   {
        dayPointer = 6
   }
 
   sHTML =	"<table	border=0 cellspacing=0 cellpadding=1 width=100%><tr>"
   
   if (showWeekNumber == 1)
   {
	 sHTML += "<td width=" + iDateCelWidth + ">"+ weekString + "</td><td width=1 rowspan=7 class='weeknumber-div-style'><img src='"+imgDir+"divider.gif' width=1></td>"
   }
   
   for(i=0; i<7; i++)
   {
	  sHTML += "<td align='right' class='dayheader-style' width=" + iDateCelWidth + ">"+ dayName[i]+"</td>"
   }
   
   sHTML +="</tr><tr>"
   
  if (showWeekNumber == 1)
  {
	 sHTML += "<td align=right width=" + iDateCelWidth + ">" + WeekNbr(startDate) + "</td>"
  }
  
  for	(var i=1; i<=dayPointer;i++)
  {
    sHTML += "<td width=" + iDateCelWidth + ">&nbsp;</td>"
  }
  
    //Start writing cells with dates in them
    for(datePointer=1; datePointer<=numDaysInMonth; datePointer++ ) //1 to number of days in month
    {
    //    
    //    if((datePointer == numDaysInMonth) && (( dayPointer % 7)  == 6 ))
    //    {
    //				
    //	  }
    //    else
    //    {
    //	    dayPointer++;
    //	  }
	    dayPointer++;
	    sHTML += "<td align=right width=" + iDateCelWidth + ">"
	    var sStyle="normal-day-style"; //regular day
	    
	    sHint = ""
	    

	    
	    // previous date of current date
	    if ((datePointer ==1)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
	    {		
		      backallow='1';
	    }
		
        if ((datePointer==cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow)) 
        {        
            if(caltype=="txtDateFr")
            {
                sStyle ="current-day-style";
            }
            else
            {
                if(cutDateNow==odateSelected)
                {
                    sStyle = "current-day-style"; 
                }
                else 
                {
                    sStyle ="normal-day-style";
                }
            } 
        } 
        else if	(dayPointer % 7 == (startAt * -1) +1)
        { 
            sStyle = "end-of-weekday-style"; 
        }
        else if	(dayPointer % 7 == 0) 
        { 
            sStyle = "end-of-weekday-style"; 
        }
		
	    //IMP COMMENTS
	    //datePointer:1 to 28 for feb current month
	    //cutDateNow:28 times for feb month
	    //monthSelected for months 0-11: 1 for feb : month selected in calendar
	    //cutMonthNowfor months 0-11: 1 for feb : always current month regardless of selected month in calendar: 10 feb 2009 then 1
	    //yearselected=year selected in calendar
	    //cutYearNow current year
		
//	    if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
//	    { 
//		     sStyle = "pre-day-style"; 
//	    }		 
//	    if(yearSelected == cutYearNow && monthSelected == (parseInt(cutMonthNow)-1))
//	    {
//		    backallow ='1';
//		    sStyle = "pre-day-style"; 
//	    }

        if ((datePointer ==1)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
        {
            
              backallow='1';
		 }
		if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow)){ 
		   
            sStyle = "pre-day-style"; 
         }
         
        if(yearSelected == cutYearNow && monthSelected == (parseInt(cutMonthNow,10)-1))
        {            
            backallow ='1';
            sStyle = "pre-day-style"; 
        }


     
		
          // next date from current date of next year sohan
          if(caltype=="txtDateFr")
          {      
	         if ((datePointer > cutDateNow-1)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
	         { 
	             if (datePointer == numDaysInMonth )
	             {		
		             forwardallow = '1';
	             }
                 sStyle = "pre-day-style"; 
	         }
          }
          else
          {
		        if ((datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
		        {     		   
			        if (datePointer == numDaysInMonth )
			        {
				         forwardallow = '1';
			        }
			        sStyle = "pre-day-style"; 
		       }
	      }		

	     //*  for sunday        
        if((dayPointer % 7 == (startAt * -1) +1)&& (datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }
        if((dayPointer % 7 == 0 )&& (datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }

        // for Next year and current year and sunday
        if	((dayPointer % 7 == (startAt * -1) +1)&& (datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }
        if	((dayPointer % 7 == 0 )&& (datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }

        if((dayPointer % 7 == 0 )&& (yearSelected == cutYearNow) && (monthSelected == (parseInt(cutMonthNow,10)-1)))
        {
            sStyle = "pre-day-style"; 
        }
        if((dayPointer % 7 == (startAt * -1) +1)&& (yearSelected == cutYearNow) && (monthSelected == (parseInt(cutMonthNow,10)-1)))
        {
            sStyle = "pre-day-style"; 
        }
    	
        if ((datePointer==odateSelected) &&	(monthSelected==omonthSelected)	&& (yearSelected==oyearSelected))
        { 
            if(datePointer != dateNow)
            {
                sStyle += " selected-day-style"; 
            }
            if	(dayPointer % 7 == 0) 
            {
                sStyle = " selected-day-style"; 
            }
        }

	    var regexp= /\"/g
	    sHint=sHint.replace(regexp,"&quot;")

             
        if(caltype=="txtDateFr")
        {
            selectDateMessage="Select [date] as your check in date";
            sHint = selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected));
            if ((datePointer < dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))//less than current date not selectable
            {
                sHTML += "<a class='"+sStyle+"' >" + datePointer + "</a>"
            }
            else if (((datePointer >= dateNow)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)) )//12 month calendar logic
            {
                sHTML += "<a class='"+sStyle+"' >" + datePointer + "</a>"
            }
            else 
            {
                sHTML += "<a class='"+sStyle+" ' style='cursor:pointer;' title=\"" + sHint + "\" onclick=javascript:dateSelected="+datePointer+";javascript:flagefirst();closeCalendar();window.status =\"\";return true;window.status=\"\";return true;>" + datePointer + "</a>"
            }
        }
        else 
        {
//            if(firstDateTextBox.indexOf(caltype)>-1)	
//		        selectDateMessage="Select [date] as your departing date";
//		    else if(secondDateTextBox.indexOf(caltype)>-1)
//		        selectDateMessage="Select [date] as your returning date";
            sHint = selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected));

            if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
            {
                sHTML += "<a class='"+sStyle+"' "+dateMessage+"  "+datePointer+"'>" + datePointer + "</a> "
            }
            else if (((datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow)) )
            {
                sHTML += "<a class='"+sStyle+"' "+dateMessage+" >" + datePointer + "</a>"
            } 
            else 
            {
                if((yearSelected == cutYearNow) && (monthSelected == (parseInt(cutMonthNow,10)-1)))
                {
                    sHTML += "<a class='"+sStyle+"' "+dateMessage+" >" + datePointer + "</a>" 
                }
                else
                {
                    sHTML += "<a class='"+sStyle+" cal' style='cursor:pointer;' title=\"" + sHint + "\" onclick=javascript:dateSelected="+datePointer+";javascript:flagefirst();closeCalendar();window.status =\"\";return true;window.status=\"\";return true;>" + datePointer + "</a>"
                }
            }
        }
        
        //if not type = 1
        //dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "
        //sHTML += "<a class='"+sStyle+"' "+dateMessage+" title=\"" + sHint + "\" href='javascript:dateSelected="+datePointer+";flagefirst();closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>"

	    sHTML +=  " "  //this give gap's between Number of dates in calendar.
	    
	    if ((dayPointer+startAt) % 7 == startAt) 
	    { 
		    sHTML += "</td></tr><tr>" 
		    if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
		    {
			    sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "</td>"
		    }
	    }
    }//ends for loop
    
	sHTML +="</tr></table>"		  
	//write string to calendar content placeholder

	getObjSW("content").innerHTML  = sHTML 
	 //getObj("content1").innerHTML  = sHTML

	getObj("spanMonth").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;<IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
	getObj("spanYear").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
	
	if(CalendarType==2)
	{
		constructCalendar1()
	}
	
	//Make iframe dimensions and position exactly as Calendar
	iframeObj2=getObj("iframeObj2");
	if(iframeObj2)
	{
	    iframeObj2.style.display = 'block';
	    iframeObj2.style.height = getObj("calendar").offsetHeight;
	    iframeObj2.style.width=getObj("calendar").offsetWidth;
	    iframeObj2.style.left=getObj("calendar").offsetLeft;
	    iframeObj2.style.top=getObj("calendar").offsetTop;	    
    }

}
function constructCalendar()
{   

    cutDateNow=currentDate; //parseInt(getObj("arrivalDay").value);
    //If calendar is return date than set the cutDate to Departure date  
    var year1=getObjSW("arrivalMonthYear").value.substring(0,4);
    if(secondDateTextBox.indexOf(caltype)>-1)
	{	//   alert(getObjSW(firstDateTextBox).value)
	    cutDateNow=getObjSW(firstDateTextBox).value.split("/")[1];
	    cutYearNow=getObjSW(firstDateTextBox).value.split("/")[2];
	}
	else
	{
	    if(year1<=yearNow)
            cutYearNow=parseInt(year1,10);
        else
            cutYearNow=yearNow;
	}

    if(firstDateTextBox.indexOf(caltype)>-1 && secondDateTextBox.indexOf(caltype)==-1)
    {	
        //If calendar is departure date then set cutMonth to current month
	    cutMonthNow=currentMonth;
	    if(parseInt(cutMonthNow,10)<10)
	        cutMonthNow="0" + cutMonthNow;
	}
	else
	{	  
        cutMonthNow=getObjSW(firstDateTextBox).value.split("/")[0] -1;
        if(parseInt(cutMonthNow,10)<10)
	        cutMonthNow="0" + cutMonthNow;
    }
    
    if(caltype=="txtDateFr")
    {        
        cutDateNow=dateNow;
        cutYearNow=yearNow;
        cutMonthNow=monthNow;
    }   
    if (showToday==1)
    {
	    if (bShowFullDayName == false)
	    {
		    var sToday = monthName[monthNow].substring(0,3) + " " +  dateNow +  " " + yearNow
	    }
	    else
	    { 
		    var sToday = dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " + dateNow + " " + monthName[monthNow].substring(0,3) + "	" +	yearNow
	    }				
	 }
	 
	 forwardallow= '0';
	 backallow= '0';	
 
   
	var arrMonVal;
	
	if(getObj("arrivalMonthYear").options[0]==null)
	{
	    var chin;
        var chin_array;
        var chkInMonth;
        var chkInDay;
        var chkInYear;
        if(caltype==secondDateTextBox)
        {         
            var chin=getObjSW(secondDateTextBox).value;
            var chin_array=chin.split("/");
            var chkInMonth=chin_array[0];
            var chkInDay=chin_array[1];
            var chkInYear=chin_array[2];
        }
        else if(caltype==firstDateTextBox)
        {
            var chin=getObjSW(firstDateTextBox).value;
            var chin_array=chin.split("/");
            var chkInMonth=chin_array[0];
            var chkInDay=chin_array[1];
            var chkInYear=chin_array[2];
        }
        
	    var arrivalObject=new Option(chkInMonth+", "+chkInYear);
	    var arrivalLength = getObjSW("arrivalMonthYear").options.length;
	    getObjSW("arrivalMonthYear").options[arrivalLength]=arrivalObject;
	}
	arrMonVal= (getObjSW("arrivalMonthYear").options[0].value).substring(4,6) ;

	if(yearSelected == yearNow && monthSelected < cutMonthNow )
	{  
		yearSelected = yearNow ;
		monthSelected = parseFloat(monthNow);
	}
	else if ( yearSelected != yearNow && monthSelected > monthNow )
	{		
		yearSelected = yearNow + 1 ;
		if(CalendarType==2)
		{
			if(arrMonVal==00)
			{
			   monthSelected = 11 ;
			   yearSelected = yearNow ;
			}
			else
			{			  
			   monthSelected = monthNow -1 ;
			}
		}
		else
		{
			monthSelected = monthNow ;
		}
	}
	else if  ( yearSelected != yearNow && monthSelected == monthNow )
	{ 				
		 if (CalendarType==2)
		 {			
			if(arrMonVal==00)
			{
				monthSelected = 11 ;
			    yearSelected = yearNow ;
			}
			else
			{    
				monthSelected = monthNow -1 ;
			    yearSelected = yearNow + 1 ;					   
		    }
		}
		else
		{
		    monthSelected = monthNow  ;
		    yearSelected = yearNow + 1 ;
		}								
	} 
	
	if(monthSelected != monthNow)	 
	{
		swapImage('changeLeft','left1.gif','yes')
	}

    var iDateCelWidth = (iCalWidth/7) - 4
    var dateMessage
    var	startDate =	new	Date (yearSelected,monthSelected,1)
    var	endDate	= new Date (yearSelected,monthSelected+1,1);
    endDate	= new Date (endDate	- (24*60*60*1000));
		  
    numDaysInMonth = endDate.getDate()
    datePointer	= 0 
    dayPointer = startDate.getDay() - startAt  //*var startAt = 0 // 0 - sunday ; 1 - monday   
   
   if (dayPointer<0)
   {
        dayPointer = 6
   }
 
   sHTML =	"<table	border=0 cellspacing=0 cellpadding=1 width=100%><tr>"
   
   if (showWeekNumber == 1)
   {
	 sHTML += "<td width=" + iDateCelWidth + ">"+ weekString + "</td><td width=1 rowspan=7 class='weeknumber-div-style'><img src='"+imgDir+"divider.gif' width=1></td>"
   }
   
   for(i=0; i<7; i++)
   {
	  sHTML += "<td align='right' class='dayheader-style' width=" + iDateCelWidth + ">"+ dayName[i]+"</td>"
   }
   
   sHTML +="</tr><tr>"
   
  if (showWeekNumber == 1)
  {
	 sHTML += "<td align=right width=" + iDateCelWidth + ">" + WeekNbr(startDate) + "</td>"
  }
  
  for	(var i=1; i<=dayPointer;i++)
  {
    sHTML += "<td width=" + iDateCelWidth + ">&nbsp;</td>"
  }
  
    //Start writing cells with dates in them
    for(datePointer=1; datePointer<=numDaysInMonth; datePointer++ ) //1 to number of days in month
    {
    //    
    //    if((datePointer == numDaysInMonth) && (( dayPointer % 7)  == 6 ))
    //    {
    //				
    //	  }
    //    else
    //    {
    //	    dayPointer++;
    //	  }
	    dayPointer++;
	    sHTML += "<td align=right width=" + iDateCelWidth + ">"
	    var sStyle="normal-day-style"; //regular day
	    
	    sHint = ""
	    

	    
	    // previous date of current date
	    if ((datePointer ==1)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
	    {		
		      backallow='1';
	    }
		
        if ((datePointer==cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow)) 
        {        
            if(caltype=="txtDateFr")
            {
                sStyle ="current-day-style";
            }
            else
            {
                if(cutDateNow==odateSelected)
                {
                    sStyle = "current-day-style"; 
                }
                else 
                {
                    sStyle ="normal-day-style";
                }
            } 
        } 
        else if	(dayPointer % 7 == (startAt * -1) +1)
        { 
            sStyle = "end-of-weekday-style"; 
        }
        else if	(dayPointer % 7 == 0) 
        { 
            sStyle = "end-of-weekday-style"; 
        }
		
	    //IMP COMMENTS
	    //datePointer:1 to 28 for feb current month
	    //cutDateNow:28 times for feb month
	    //monthSelected for months 0-11: 1 for feb : month selected in calendar
	    //cutMonthNowfor months 0-11: 1 for feb : always current month regardless of selected month in calendar: 10 feb 2009 then 1
	    //yearselected=year selected in calendar
	    //cutYearNow current year
		
//	    if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
//	    { 
//		     sStyle = "pre-day-style"; 
//	    }		 
//	    if(yearSelected == cutYearNow && monthSelected == (parseInt(cutMonthNow)-1))
//	    {
//		    backallow ='1';
//		    sStyle = "pre-day-style"; 
//	    }

        if ((datePointer ==1)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
        {
            
              backallow='1';
		 }
		if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow)){ 
		   
            sStyle = "pre-day-style"; 
         }
         
        if(yearSelected == cutYearNow && monthSelected == (parseInt(cutMonthNow,10)-1))
        {            
            backallow ='1';
            sStyle = "pre-day-style"; 
        }


     
		
          // next date from current date of next year sohan
          if(caltype=="txtDateFr")
          {      
	         if ((datePointer > cutDateNow-1)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
	         { 
	             if (datePointer == numDaysInMonth )
	             {		
		             forwardallow = '1';
	             }
                 sStyle = "pre-day-style"; 
	         }
          }
          else
          {
		        if ((datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
		        {     		   
			        if (datePointer == numDaysInMonth )
			        {
				         forwardallow = '1';
			        }
			        sStyle = "pre-day-style"; 
		       }
	      }		

	     //*  for sunday        
        if((dayPointer % 7 == (startAt * -1) +1)&& (datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }
        if((dayPointer % 7 == 0 )&& (datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }

        // for Next year and current year and sunday
        if	((dayPointer % 7 == (startAt * -1) +1)&& (datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }
        if	((dayPointer % 7 == 0 )&& (datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow))
        { 
            sStyle = "pre-day-style"; 
        }

        if((dayPointer % 7 == 0 )&& (yearSelected == cutYearNow) && (monthSelected == (parseInt(cutMonthNow,10)-1)))
        {
            sStyle = "pre-day-style"; 
        }
        if((dayPointer % 7 == (startAt * -1) +1)&& (yearSelected == cutYearNow) && (monthSelected == (parseInt(cutMonthNow,10)-1)))
        {
            sStyle = "pre-day-style"; 
        }    	
        if ((datePointer==odateSelected) &&	(monthSelected==omonthSelected)	&& (yearSelected==oyearSelected))
        {         
            if(datePointer == dateSelected||datePointer == (dateSelected+ firstShowCheckinDate+1))
            {
           
                sStyle += " selected-day-style"; 
            }
            if	(dayPointer % 7 == 0) 
            {
                sStyle = " selected-day-style"; 
            }
        }

	    var regexp= /\"/g
	    sHint=sHint.replace(regexp,"&quot;")

             
        if(caltype=="txtDateFr")
        {
            selectDateMessage="Select [date] as your check in date";
            sHint = selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected));
            if ((datePointer < dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))//less than current date not selectable
            {
                sHTML += "<a class='"+sStyle+"' >" + datePointer + "</a>"
            }
            else if (((datePointer >= dateNow)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)) )//12 month calendar logic
            {
                sHTML += "<a class='"+sStyle+"' >" + datePointer + "</a>"
            }
            else 
            {
                sHTML += "<a class='"+sStyle+" ' style='cursor:pointer;' title=\"" + sHint + "\" onclick=javascript:dateSelected="+datePointer+";javascript:flagefirst();closeCalendar();window.status =\"\";return true;window.status=\"\";return true;>" + datePointer + "</a>"
            }
        }
        else 
        {
            if(firstDateTextBox.indexOf(caltype)>-1)	
		        selectDateMessage="Select [date] as your departing date";
		    else if(secondDateTextBox.indexOf(caltype)>-1)
		        selectDateMessage="Select [date] as your returning date";
            sHint = selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected));

            if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow))
            {
                sHTML += "<a class='"+sStyle+"' "+dateMessage+"  "+datePointer+"'>" + datePointer + "</a> "
            }
            else if (((datePointer > cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected !=cutYearNow)) )
            {
                sHTML += "<a class='"+sStyle+"' "+dateMessage+" >" + datePointer + "</a>"
            } 
            else 
            {
                if((yearSelected == cutYearNow) && (monthSelected == (parseInt(cutMonthNow,10)-1)))
                {
                    sHTML += "<a class='"+sStyle+"' "+dateMessage+" >" + datePointer + "</a>" 
                }
                else
                {
                    sHTML += "<a class='"+sStyle+" cal' style='cursor:pointer;' title=\"" + sHint + "\" onclick=javascript:dateSelected="+datePointer+";javascript:flagefirst();closeCalendar();window.status =\"\";return true;window.status=\"\";return true;>" + datePointer + "</a>"
                }
            }
        }
        
        //if not type = 1
        //dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "
        //sHTML += "<a class='"+sStyle+"' "+dateMessage+" title=\"" + sHint + "\" href='javascript:dateSelected="+datePointer+";flagefirst();closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>"

	    sHTML +=  " "  //this give gap's between Number of dates in calendar.
	    
	    if ((dayPointer+startAt) % 7 == startAt) 
	    { 
		    sHTML += "</td></tr><tr>" 
		    if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
		    {
			    sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "</td>"
		    }
	    }
    }//ends for loop
    
	sHTML +="</tr></table>"		  
	//write string to calendar content placeholder

	getObjSW("content").innerHTML  = sHTML 
	 //getObj("content1").innerHTML  = sHTML

	getObj("spanMonth").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;<IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
	getObj("spanYear").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' BORDER=0>"
	
	if(CalendarType==2)
	{
		constructCalendar1()
	}
	
	//Make iframe dimensions and position exactly as Calendar
	iframeObj2=getObj("iframeObj2");
	if(iframeObj2)
	{
	    iframeObj2.style.display = 'block';
	    iframeObj2.style.height = getObj("calendar").offsetHeight;
	    iframeObj2.style.width=getObj("calendar").offsetWidth;
	    iframeObj2.style.left=getObj("calendar").offsetLeft;
	    iframeObj2.style.top=getObj("calendar").offsetTop;	    
    }

}
function getTopPos(inputObj)
{

  var returnValue = inputObj.offsetTop + inputObj.offsetHeight;
  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;
  return returnValue + getObj("calendar").offsetTop;
}

function getleftPos(inputObj)
{
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
  return returnValue + getObj("calendar").offsetLeft;
}

///////////////////////////////////////////////////////////////////////////////////////////
	
function constructCalendar1() 
{
    if(type== 1 )
    {
 	     if(monthSelected==11)
	     {
		    monthSelected=0
		    yearSelected=yearSelected+1
	     }   
	     else
	     {
	        monthSelected=monthSelected+1
	     }
    } 
	else
	{
	      monthSelected=monthSelected+1
	}
   
    var iDateCelWidth = (iCalWidth/7) - 4
    var dateMessage
    var	startDate =	new	Date (yearSelected,monthSelected,1)
    var	endDate	= new Date (yearSelected,monthSelected+1,1);
    endDate	= new Date (endDate	- (24*60*60*1000));
    numDaysInMonth = endDate.getDate()
    datePointer	= 0
	  
		  
   dayPointer = startDate.getDay() - startAt  //*var startAt = 0 // 0 - sunday ; 1 - monday
   if (dayPointer<0){
	dayPointer = 6
   }
   sHTML =	"<table	border=0 cellspacing=0 cellpadding=1 width=100%><tr>"
   if (showWeekNumber == 1){
	 sHTML += "<td width=" + iDateCelWidth + ">"+ weekString + "</td><td width=1 rowspan=7 class='weeknumber-div-style'><img src='"+imgDir+"divider.gif' width=1></td>"
   }
   for(i=0; i<7; i++){
	  sHTML += "<td align='right' class='dayheader-style' width=" + iDateCelWidth + ">"+ dayName[i]+"</td>"
   }
   sHTML +="</tr><tr>"
  if (showWeekNumber == 1){
	 sHTML += "<td align=right width=" + iDateCelWidth + ">" + WeekNbr(startDate) + "</td>"
  }
  for	(var i=1; i<=dayPointer;i++){
   sHTML += "<td width=" + iDateCelWidth + ">&nbsp;</td>"
  }
  //Start writing cells with dates in them
  for(datePointer=1; datePointer<=numDaysInMonth; datePointer++ ){
   if((datePointer == numDaysInMonth) && (( dayPointer % 7)  == 6 )){
				
	}
   else{
	dayPointer++;
	}
	sHTML += "<td align=right width=" + iDateCelWidth + ">"
	var sStyle="normal-day-style calOver"; //regular day
	if (type== 1 ){
		// previous date of current date
		if ((datePointer ==1)&&(monthSelected==monthNow)&&(yearSelected==yearNow)){
			  backallow='1';
		 }
		if ((datePointer < dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)){ 
			 sStyle = "pre-day-style"; 
		 }
		 
		 if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow)){ 
			 sStyle = "pre-day-style"; 
		 }
		 
	  // next date from current date of next year sohan
	  if(caltype=="txtDateFr")
	  {
		if ((datePointer > dateNow-1)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)){ 
			sStyle = "pre-day-style"; 
		 }
	  }
	  else
	  {
		if ((datePointer > dateNow)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)){ 
			sStyle = "pre-day-style"; 
		 }
	  }
	   
	}	  	
   if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)) { 
		 sStyle = "current-day-style"; 
	} 
   else if	(dayPointer % 7 == (startAt * -1) +1) { 
		 sStyle = "end-of-weekday-style"; 
	}
	else if	(dayPointer % 7 == 0) { 
		 sStyle = "end-of-weekday-style"; 
	}
	 //*  for sunday
   if(type==1){
//        if((dayPointer % 7 == (startAt * -1) +1)&& (datePointer < dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)){ 
//             sStyle = "pre-day-style"; 
//        }
					// for Next year and current year and sunday
		if	((dayPointer % 7 == (startAt * -1) +1)&& (datePointer > dateNow)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)){ 
			   sStyle = "pre-day-style"; 
		 }
		   if	((dayPointer % 7 == 0 )&& (datePointer > dateNow)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)){ 
			  
			   sStyle = "pre-day-style"; 
		 }
		 
		 if ((dayPointer % 7 == (startAt * -1) +1)&& (datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow)){ 
			 sStyle = "pre-day-style"; 
		 }
		 if ((dayPointer % 7 == 0 )&& (datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow)){ 
			 sStyle = "pre-day-style"; 
		 }
	}
  if ((datePointer==odateSelected) &&	(monthSelected==omonthSelected)	&& (yearSelected==oyearSelected)){ 
	sStyle += " selected-day-style"; 
	 }
	 
	sHint = ""
	for (k=0;k<HolidaysCounter;k++){
			if ((parseInt(Holidays[k].d,10)==datePointer)&&(parseInt(Holidays[k].m,10)==(monthSelected+1)))
			{
			 if ((parseInt(Holidays[k].y,10)==0)||((parseInt(Holidays[k].y,10)==yearSelected)&&(parseInt(Holidays[k].y,10)!=0)))
			  {
				 sStyle += " holiday-style";
				 sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
			  }
		}
	 }

	var regexp= /\"/g
	sHint=sHint.replace(regexp,"&quot;")

	if(type=="1"){
	   // dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "
		//sHint = selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected));
		if(caltype=="txtDateFr"){				
		selectDateMessage="Select [date] as your check in date";
		sHint = selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected));
		
			if ((datePointer < dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)){
					sHTML += "<a class='"+sStyle+"' "+dateMessage+"  "+datePointer+"'>" + datePointer + "</a>"
				}
			else if (((datePointer >= dateNow)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)) ){
					sHTML += "<a class='"+sStyle+"' "+dateMessage+"  "+datePointer+"'>" + datePointer + "</a>"
				}
				else {
									
					sHTML += "<a class='"+sStyle+"' style='cursor:pointer;' title=\"" + sHint + "\" onclick=javascript:dateSelected="+datePointer+";javascript:flageSecond();closeCalendar();window.status =\"\";return true;window.status=\"\";return true;>" + datePointer + "</a>"
			}
		   
		}
		else {
		if(firstDateTextBox.indexOf(caltype)>-1)	
		    selectDateMessage="Select [date] as your departing date";
		else if(secondDateTextBox.indexOf(caltype)>-1)
		    selectDateMessage="Select [date] as your returning date";
		sHint = selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected));
		if ((datePointer < dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow)){
					sHTML += "<a class='"+sStyle+"' "+dateMessage+"  "+datePointer+"'>" + datePointer + "</a> "
				}
			else if (((datePointer > dateNow)&&(monthSelected==monthNow)&&(yearSelected !=yearNow)) ){
					sHTML += "<a class='"+sStyle+"' "+dateMessage+"  "+datePointer+"'>" + datePointer + "</a>"
				} 
				else {
				if ((datePointer < cutDateNow)&&(monthSelected==cutMonthNow)&&(yearSelected==cutYearNow) )
				  {
						sHTML += "<a class='"+sStyle+"' "+dateMessage+"  "+datePointer+"'>" + datePointer + "</a>"
				  }
				  else
				  {
				dd=1;
				//sHTML += "<a class='"+sStyle+"' "+dateMessage+" title=\"" + sHint + "\" href='javascript:dateSelected="+datePointer+";flageSecond();closeCalendar();'>" + datePointer + "</a> "
				  sHTML += "<a class='"+sStyle+"' style='cursor:pointer;' title=\"" + sHint + "\" onclick=javascript:dateSelected="+datePointer+";javascript:flageSecond();closeCalendar();window.status =\"\";return true;window.status=\"\";return true;>" + datePointer +  "</a>"
				}
			}
		 }

	 }

	else{
		 dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "
		 sHTML += "<a class='"+sStyle+"' "+dateMessage+" title=\"" + sHint + "\" href='javascript:dateSelected="+datePointer+";flageSecond();closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>"
	  }

	 sHTML +=  " "  //this give gap's between Number of dates in calendar.
	 if ((dayPointer+startAt) % 7 == startAt) { 
		sHTML += "</td></tr><tr>" 
		if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
		  {
			sHTML += "<td align=right>" + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + "</td>"
		  }
	 }
  }
		sHTML +="</tr></table>"		  
	//write string to calendar content placeholder

	 getObj("content1").innerHTML  = sHTML 

	  if(type== 1 ){
	  if(monthSelected==0 )
	 {
	 
		monthSelected=0
		//yearSelected=yearSelected
		 
		 
		getObj("spanMonth1").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;"
		getObj("spanYear1").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;"
		
		 monthSelected=12
		 yearSelected=yearSelected-1
		 
	 }
	 }
	 
//     else 

	 if(monthSelected==12)
	 {

		 if(type== 1 ){
		monthSelected=0
		    yearSelected=yearSelected+1

		    getObj("spanMonth1").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;"
		    getObj("spanYear1").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;"
			monthSelected=12
			yearSelected=yearSelected-1
		}
		else
		{		 
			monthSelected=0
			yearSelected=yearSelected+1
			getObj("spanMonth1").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;"
			getObj("spanYear1").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;"
			monthSelected=12
		    yearSelected=yearSelected-1
		}
		
		  
	 } 
	 
	 else{
  
		getObj("spanMonth1").innerHTML = "&nbsp;" +	monthName[monthSelected] + "&nbsp;"
		getObj("spanYear1").innerHTML =	"&nbsp;" + yearSelected	+ "&nbsp;"
		}
		
	   
	if((monthSelected==0) )
	 {
		monthSelected=11
		//yearSelected=yearSelected-1
	  }
	 else
	 {
		monthSelected=monthSelected-1;
	 }
	   monthActual = monthSelected + 1 ;  
	   
		
 }
 
function flageSecond()
{
    DateFlage=1;
}

function flagefirst()
{
    DateFlage=0;
}