﻿var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator.userAgent.toLowerCase();

function roll_over(img_name, img_src)
       { 
            if(img_name != null && img_src != null)
            {
                var contr = document.getElementById(img_name);
                if(contr != null )
                {
                    contr.src = img_src;
                }
            }    
       }

function addOnload(newFunction)
{
	var oldOnload = window.onload;
	if (typeof oldOnload == "function")
	{
		window.onload = function()
		{
			if (oldOnload)
			{
				oldOnload();
			}
			newFunction();
		}
	}
	else 
	{
		window.onload = newFunction;
	}
}
function addOnUnload(newFunction)
{ 
	var oldOnUnload = window.onunload; 
	if (typeof oldOnUnload == "function") 
	{ 
		window.onunload = function()
		{ 
			if (oldOnUnload)
			{ 
				oldOnUnload();
			} 
			newFunction();
		}
	}
	else 
	{
		window.onunload = newFunction;
	}
}
function openPopupWindow(url,width,height,scrollbars,windowname)
{
	var hnd;
	if(scrollbars==null)
	{
		scrollbars="yes";
	}
	if(url.indexOf("https://")!=-1)
	{
		url=url.replace("https://","http://");
	}
	if(windowname==undefined)
	{
		hnd=window.open(url,"Hotelnet","toolbar=no,location=0,status=no,menubar=0,scrollbars="+scrollbars+",resizable=0,width="+width+",height="+height+",left=200,top=100")
	}
	else
	{
		hnd=window.open(url,windowname,"toolbar=no,location=0,status=no,menubar=0,scrollbars="+scrollbars+",resizable=0,width="+width+",height="+height+",left=200,top=100")
	}
	hnd.focus();
}
function SetUniqueRadioButton(nameregex,current) 
{  
	re=new RegExp(nameregex);
	for(i=0;i<document.forms[0].elements.length;i++)  
	{ 
		elm=document.forms[0].elements[i]; 
		if(elm.type=='radio') 
		{  
			if(re.test(elm.name)) 
			{  
				elm.checked=false;
			}  
		}
	}
	current.checked=true;
}
function ShowWaitPage()  
{ 
	var lyr=getElemRefs('WaitPage'); 
	if(lyr&&lyr.css) 
	{  
		lyr.style.display='block';
		var wrap=xGetElementById('divWrap');
		if(wrap)  
		{ 
			wrap.style.visibility='hidden';
		}
		ShowDivShim(lyr);
	}
}
function ShowDivShim(oDiv) 
{ 
	var bgDiv =  xGetElementById('WaitBgDiv'); 
	xWidth(bgDiv,xClientWidth()); 
	xHeight(bgDiv,1020); 
	xTop(oDiv,xScrollTop()); 
	xLeft(oDiv,xScrollLeft());
}
function HideWaitPage()  
{ 
	var lyr = getElemRefs('WaitPage');
	if (lyr && lyr.css) 
	{
		lyr.style.visibility = "hidden";
	}
	HideDivShim();
}
function HideDivShim() 
{ 
	var IfrRef = document.getElementById('divShim'); 
	IfrRef.style.visibility = 'hidden';
}
function trimSpaces(str) 
{ 
	str = str.replace(/^\s+/, "");  
	str = str.replace(/\s+$/, ""); 
	return str; 
}
function getElemRefs(id) 
{
	var el = (document.getElementById)? document.getElementById(id): (document.all)? document.all[id]: (document.layers)? getLyrRef(id,document): null;
	if (el)
	{ 
		el.css = (el.style)? el.style: el; 
	}
	return el; 
}
function CheckDropDown(sDropdownIDs,sMessageLabel,sProvider,sRoomOccupancy,iGuestCount,sRoomType)
{
    var arrDropDownIDs = new Array();
    var iTotalBeds = 0; 

    /* Block of code to reset any previously set messages.*/
    var obj = document.getElementById(sMessageLabel);
    if (obj != null) {
        if (obj.childNodes != null && obj.childNodes.length > 0) {
            for (j = 0; j < obj.childNodes.length; j++) {
                obj.removeChild(obj.childNodes[j]);
            }
        }
    }

    /* get all the dropdownlist ids in an array.*/
    if (sDropdownIDs != null) {
        arrDropDownIDs = sDropdownIDs.split("|");
    }  
    
    for (i = 0; i < arrDropDownIDs.length - 1; i++) {
        var oDropDownValue = document.getElementById(arrDropDownIDs[i]).value;
        if (oDropDownValue != null && oDropDownValue > 0) {
            iTotalBeds += parseInt(oDropDownValue);
        }
    }

    if (iTotalBeds > 0) {
        return true;
    }
    else {
        var newText = document.createTextNode("Check the number of rooms selected against no. of persons.");
        obj.appendChild(newText);
        return false;
    }
}
function externalLinks() { 
if (!document.getElementsByTagName) return; 
var anchors = document.getElementsByTagName("a"); 
for (var i=0; i<anchors.length; i++) { 
var anchor = anchors[i]; 
if (anchor.getAttribute("href") && 
anchor.getAttribute("rel") == "external") 
anchor.target = "_blank"; 
} 
} function xResizeTo(e,w,h){xWidth(e,w);xHeight(e,h);}
function xClientWidth(){var w=0;if(xOp6Dn) w=window.innerWidth;else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientWidth)w=document.documentElement.clientWidth;else if(document.body && document.body.clientWidth)w=document.body.clientWidth;else if(xDef(window.innerWidth,window.innerHeight,document.height)){w=window.innerWidth;if(document.height>window.innerHeight) w-=16;}return w;}
function xClientHeight(){var h=0;if(xOp6Dn) h=window.innerHeight;else if(document.compatMode == 'CSS1Compat' && !window.opera && document.documentElement && document.documentElement.clientHeight)h=document.documentElement.clientHeight;else if(document.body && document.body.clientHeight)h=document.body.clientHeight;else if(xDef(window.innerWidth,window.innerHeight,document.width)){h=window.innerHeight;if(document.width>window.innerWidth) h-=16;}return h;}
function xWidth(e,w){if(!(e=xGetElementById(e))) return 0;if (xNum(w)) {if (w<0) w = 0;else w=Math.round(w);}else w=-1;var css=xDef(e.style);if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {w = xClientWidth();}else if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {if(w>=0) {var pl=0,pr=0,bl=0,br=0;if (document.compatMode=='CSS1Compat') {var gcs = xGetComputedStyle;pl=gcs(e,'padding-left',1);if (pl !== null) {pr=gcs(e,'padding-right',1);bl=gcs(e,'border-left-width',1);br=gcs(e,'border-right-width',1);}else if(xDef(e.offsetWidth,e.style.width)){e.style.width=w+'px';pl=e.offsetWidth-w;}}w-=(pl+pr+bl+br);if(isNaN(w)||w<0) return;else e.style.width=w+'px';}w=e.offsetWidth;}else if(css && xDef(e.style.pixelWidth)) {if(w>=0) e.style.pixelWidth=w;w=e.style.pixelWidth;}return w;}
function xHeight(e,h){if(!(e=xGetElementById(e)))return 0;if (xNum(h)) {if (h<0) h = 0;else h=Math.round(h);}else h=-1;var css=xDef(e.style);if (e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {h = xClientHeight();}else if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {if(h>=0) {var pt=0,pb=0,bt=0,bb=0;if (document.compatMode=='CSS1Compat') {var gcs = xGetComputedStyle;pt=gcs(e,'padding-top',1);if (pt !== null) {pb=gcs(e,'padding-bottom',1);bt=gcs(e,'border-top-width',1);bb=gcs(e,'border-bottom-width',1);}else if(xDef(e.offsetHeight,e.style.height)){e.style.height=h+'px';pt=e.offsetHeight-h;}}h-=(pt+pb+bt+bb);if(isNaN(h)||h<0) return;else e.style.height=h+'px';}h=e.offsetHeight;}else if(css && xDef(e.style.pixelHeight)) {if(h>=0) e.style.pixelHeight=h;h=e.style.pixelHeight;}return h;}
function xGetElementById(e){if(typeof(e)!='string') return e;if(document.getElementById) e=document.getElementById(e);else if(document.all) e=document.all[e];else e=null;return e;}function xHasPoint(e,x,y,t,r,b,l){if (!xNum(t)){t=r=b=l=0;}else if (!xNum(r)){r=b=l=t;}else if (!xNum(b)){l=r; b=t;}var eX = xPageX(e), eY = xPageY(e);return (x >= eX + l && x <= eX + xWidth(e) - r &&y >= eY + t && y <= eY + xHeight(e) - b );}
function xStr(s){for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])!='string') return false;}return true;}
function xNum(){for(var i=0; i<arguments.length; ++i){if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;}return true;}
function xDef(){for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}return true;}
function xTop(e, iY){if(!(e=xGetElementById(e))) return 0;var css=xDef(e.style);if(css && xStr(e.style.top)) {if(xNum(iY)) e.style.top=iY+'px';else {iY=parseInt(e.style.top);if(isNaN(iY)) iY=0;}}else if(css && xDef(e.style.pixelTop)) {if(xNum(iY)) e.style.pixelTop=iY;else iY=e.style.pixelTop;}return iY;}
function xVisibility(e, bShow){if(!(e=xGetElementById(e))) return null;if(e.style && xDef(e.style.visibility)) {if (xDef(bShow)) e.style.visibility = bShow ? 'visible' : 'hidden';return e.style.visibility;}return null;}
function xZIndex(e,uZ){if(!(e=xGetElementById(e))) return 0;if(e.style && xDef(e.style.zIndex)) {if(xNum(uZ)) e.style.zIndex=uZ;uZ=parseInt(e.style.zIndex);}return uZ;}
function xLeft(e, iX){if(!(e=xGetElementById(e))) return 0;var css=xDef(e.style);if (css && xStr(e.style.left)) {if(xNum(iX)) e.style.left=iX+'px';else {iX=parseInt(e.style.left);if(isNaN(iX)) iX=0;}}else if(css && xDef(e.style.pixelLeft)) {if(xNum(iX)) e.style.pixelLeft=iX;else iX=e.style.pixelLeft;}return iX;}
function xMoveTo(e,x,y){xLeft(e,x);xTop(e,y);}
function xHide(e){return xVisibility(e,0);}
function xOffsetLeft(e){if (!(e=xGetElementById(e))) return 0;if (xDef(e.offsetLeft)) return e.offsetLeft;else return 0;}
function xOffsetTop(e){if (!(e=xGetElementById(e))) return 0;if (xDef(e.offsetTop)) return e.offsetTop;else return 0;}
function xPageX(e){if (!(e=xGetElementById(e))) return 0;var x = 0;while (e) {if (xDef(e.offsetLeft)) x += e.offsetLeft;e = xDef(e.offsetParent) ? e.offsetParent : null;}return x;}
function xPageY(e){if (!(e=xGetElementById(e))) return 0;var y = 0;while (e) {if (xDef(e.offsetTop)) y += e.offsetTop;e = xDef(e.offsetParent) ? e.offsetParent : null;}return y;}
function xParent(e, bNode){if (!(e=xGetElementById(e))) return null;var p=null;if (!bNode && xDef(e.offsetParent)) p=e.offsetParent;else if (xDef(e.parentNode)) p=e.parentNode;else if (xDef(e.parentElement)) p=e.parentElement;return p;}
function xScrollLeft(e, bWin){var offset=0;if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {var w = window;if (bWin && e) w = e;if(w.document.documentElement && w.document.documentElement.scrollLeft) offset=w.document.documentElement.scrollLeft;else if(w.document.body && xDef(w.document.body.scrollLeft)) offset=w.document.body.scrollLeft;}else {e = xGetElementById(e);if (e && xNum(e.scrollLeft)) offset = e.scrollLeft;}return offset;}
function xScrollTop(e, bWin){var offset=0;if (!xDef(e) || bWin || e == document || e.tagName.toLowerCase() == 'html' || e.tagName.toLowerCase() == 'body') {var w = window;if (bWin && e) w = e;if(w.document.documentElement && w.document.documentElement.scrollTop) offset=w.document.documentElement.scrollTop;else if(w.document.body && xDef(w.document.body.scrollTop)) offset=w.document.body.scrollTop;}else {e = xGetElementById(e);if (e && xNum(e.scrollTop)) offset = e.scrollTop;}return offset;}
function xShow(e) {return xVisibility(e,1);}
function xDisplay(e,s){if(!(e=xGetElementById(e))) return null;if(e.style && xDef(e.style.display)) {if (xStr(s)) e.style.display = s;return e.style.display;}return null;}
function xGetComputedStyle(oEle, sProp, bInt){var s, p = 'undefined';var dv = document.defaultView;if(dv && dv.getComputedStyle){s = dv.getComputedStyle(oEle,'');if (s) p = s.getPropertyValue(sProp);}else if(oEle.currentStyle) {var a = sProp.split('-');sProp = a[0];for (var i=1; i<a.length; ++i) {c = a[i].charAt(0);sProp += a[i].replace(c, c.toUpperCase());}   p = oEle.currentStyle[sProp];}else return null;return bInt ? (parseInt(p) || 0) : p;}
/* function to open the pop up or calender*/
function openPopupOrCalender(e,sType,oTextBox,sDateFormat)
{
 e= e||event;        
 if(e.keyCode == 32) 
 {
  if(sType == 'CAL')
    {
      oCal.select(oTextBox,'CalendarLink',sDateFormat);           
    }
    if(sType == 'HELP')
    {
      openPopupWindow('/PopupWindow.aspx?Page=InfantsHelp',350,200);          
    }
    return false;
 }
}
/* function to Expand & Collapse the Repeater's Rows containing Hotel Information from LiveSearch.*/
function switchMenu(rowDiv,rmDiv,bookLink,img1,img2,sRowType,sCssClass) 
{       
   	var oRmDiv = document.getElementById(rmDiv);
	var oBookLink = document.getElementById(bookLink);
	var oRowDiv = document.getElementById(rowDiv);
	var oImg1 = document.getElementById(img1);
	var oImg2 = document.getElementById(img2);		
	
	if (oRmDiv.style.display != "none" ) 
	{	  
		oRmDiv.style.display = 'none';
		oBookLink.style.display = '';
		oImg1.src='/Images/bullet_expand_small.gif';
	    oImg2.src='/Images/expand_small.gif';	    	
	    oImg1.title="Expand";
	    oImg2.title="Expand";	    
	  
        if(sRowType == "Item" && sCssClass == "ssrowGrayLivSr")
        {
            oRowDiv.style.backgroundColor = "#ffffff";	    
        }
        else if(sRowType == "AlternatingItem" && sCssClass == "sssrowWhiteLivSr")
        {
            oRowDiv.style.backgroundColor = "#eeeeee";	    
        }	 
        else if(sRowType == "AlternatingItem" && sCssClass == "ssrowGrayLivSr")
        {
            oRowDiv.style.backgroundColor = "#ffffff";	
        }  
	}
	else  
	{	 
	    oImg1.src='/Images/bullet_collapse_small.gif';	    	    
	    oImg2.src='/Images/collapse_small.gif';
	    oImg1.title="Collapse";
	    oImg2.title="Collapse";
		oRmDiv.style.display = '';
		oBookLink.style.display = 'none';						       
        oRowDiv.style.backgroundColor = "#d0eaea";        
	}
}
function AdjustLocationIndicatorStyle(oLocationIndicator)
{     
     if(oLocationIndicator!=null)
     {
       oLocationIndicator.style.width = "auto";
     }
}
/*Calendar popup js codes-- strats here */
function getAnchorPosition(anchorname) { var useWindow=false; var coordinates=new Object(); var x=0,y=0; var use_gebi=false, use_css=false, use_layers=false; if (document.getElementById) { use_gebi=true; } else if (document.all) { use_css=true; } else if (document.layers) { use_layers=true; } if (use_gebi && document.all) { x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]); y=AnchorPosition_getPageOffsetTop(document.all[anchorname]); } else if (use_gebi) { var o=document.getElementById(anchorname); x=AnchorPosition_getPageOffsetLeft(o); y=AnchorPosition_getPageOffsetTop(o); } else if (use_css) { x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]); y=AnchorPosition_getPageOffsetTop(document.all[anchorname]); } else if (use_layers) { var found=0; for (var i=0; i<document.anchors.length; i++) { if (document.anchors[i].name==anchorname) { found=1; break; } } if (found==0) { coordinates.x=0; coordinates.y=0; return coordinates; } x=document.anchors[i].x; y=document.anchors[i].y; } else { coordinates.x=0; coordinates.y=0; return coordinates; } coordinates.x=x; coordinates.y=y; return coordinates; } function getAnchorWindowPosition(anchorname) { var coordinates=getAnchorPosition(anchorname); var x=0; var y=0; if (document.getElementById) { if (isNaN(window.screenX)) { x=coordinates.x-document.body.scrollLeft+window.screenLeft; y=coordinates.y-document.body.scrollTop+window.screenTop; } else { x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset; y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset; } } else if (document.all) { x=coordinates.x-document.body.scrollLeft+window.screenLeft; y=coordinates.y-document.body.scrollTop+window.screenTop; } else if (document.layers) { x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset; y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset; } coordinates.x=x; coordinates.y=y; return coordinates; } function AnchorPosition_getPageOffsetLeft (el) { var ol=el.offsetLeft; while ((el=el.offsetParent) != null) { ol += el.offsetLeft; } return ol; } function AnchorPosition_getWindowOffsetLeft (el) { return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft; } function AnchorPosition_getPageOffsetTop (el) { var ot=el.offsetTop; while((el=el.offsetParent) != null) { ot += el.offsetTop; } return ot; } function AnchorPosition_getWindowOffsetTop (el) { return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop; } var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat'); function LZ(x) {return(x<0||x>9?"":"0")+x} function isDate(val,format) { var date=getDateFromFormat(val,format); if (date==0) { return false; } return true; } function compareDates(date1,dateformat1,date2,dateformat2) { var d1=getDateFromFormat(date1,dateformat1); var d2=getDateFromFormat(date2,dateformat2); if (d1==0 || d2==0) { return -1; } else if (d1 > d2) { return 1; } return 0; } function formatDate(date,format) { format=format+""; var result=""; var i_format=0; var c=""; var token=""; var y=date.getYear()+""; var M=date.getMonth()+1; var d=date.getDate(); var E=date.getDay(); var H=date.getHours(); var m=date.getMinutes(); var s=date.getSeconds(); var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k; var value=new Object(); if (y.length < 4) {y=""+(y-0+1900);} value["y"]=""+y; value["yyyy"]=y; value["yy"]=y.substring(2,4); value["M"]=M; value["MM"]=LZ(M); value["MMM"]=MONTH_NAMES[M+11]; value["NNN"]=MONTH_NAMES[M+11]; value["d"]=d; value["dd"]=LZ(d); value["E"]=DAY_NAMES[E+7]; value["EE"]=DAY_NAMES[E]; value["H"]=H; value["HH"]=LZ(H); if (H==0){value["h"]=12;} else if (H>12){value["h"]=H-12;} else {value["h"]=H;} value["hh"]=LZ(value["h"]); if (H>11){value["K"]=H-12;} else {value["K"]=H;} value["k"]=H+1; value["KK"]=LZ(value["K"]); value["kk"]=LZ(value["k"]); if (H > 11) { value["a"]="PM"; } else { value["a"]="AM"; } value["m"]=m; value["mm"]=LZ(m); value["s"]=s; value["ss"]=LZ(s); while (i_format < format.length) { c=format.charAt(i_format); token=""; while ((format.charAt(i_format)==c) && (i_format < format.length)) { token += format.charAt(i_format++); } if (value[token] != null) { result=result + value[token]; } else { result=result + token; } } return result; } function _isInteger(val) { var digits="1234567890"; for (var i=0; i < val.length; i++) { if (digits.indexOf(val.charAt(i))==-1) { return false; } } return true; } function _getInt(str,i,minlength,maxlength) { for (var x=maxlength; x>=minlength; x--) { var token=str.substring(i,i+x); if (token.length < minlength) { return null; } if (_isInteger(token)) { return token; } } return null; } function getDateFromFormat(val,format) { val=val+""; format=format+""; var i_val=0; var i_format=0; var c=""; var token=""; var token2=""; var x,y; var now=new Date(); var year=now.getYear(); var month=now.getMonth()+1; var date=1; var hh=now.getHours(); var mm=now.getMinutes(); var ss=now.getSeconds(); var ampm=""; while (i_format < format.length) { c=format.charAt(i_format); token=""; while ((format.charAt(i_format)==c) && (i_format < format.length)) { token += format.charAt(i_format++); } if (token=="yyyy" || token=="yy" || token=="y") { if (token=="yyyy") { x=4;y=4; } if (token=="yy") { x=2;y=2; } if (token=="y") { x=2;y=4; } year=_getInt(val,i_val,x,y); if (year==null) { return 0; } i_val += year.length; if (year.length==2) { if (year > 70) { year=1900+(year-0); } else { year=2000+(year-0); } } } else if (token=="MMM"||token=="NNN"){ month=0; for (var i=0; i<MONTH_NAMES.length; i++) { var month_name=MONTH_NAMES[i]; if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) { if (token=="MMM"||(token=="NNN"&&i>11)) { month=i+1; if (month>12) { month -= 12; } i_val += month_name.length; break; } } } if ((month < 1)||(month>12)){return 0;} } else if (token=="EE"||token=="E"){ for (var i=0; i<DAY_NAMES.length; i++) { var day_name=DAY_NAMES[i]; if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) { i_val += day_name.length; break; } } } else if (token=="MM"||token=="M") { month=_getInt(val,i_val,token.length,2); if(month==null||(month<1)||(month>12)){return 0;} i_val+=month.length;} else if (token=="dd"||token=="d") { date=_getInt(val,i_val,token.length,2); if(date==null||(date<1)||(date>31)){return 0;} i_val+=date.length;} else if (token=="hh"||token=="h") { hh=_getInt(val,i_val,token.length,2); if(hh==null||(hh<1)||(hh>12)){return 0;} i_val+=hh.length;} else if (token=="HH"||token=="H") { hh=_getInt(val,i_val,token.length,2); if(hh==null||(hh<0)||(hh>23)){return 0;} i_val+=hh.length;} else if (token=="KK"||token=="K") { hh=_getInt(val,i_val,token.length,2); if(hh==null||(hh<0)||(hh>11)){return 0;} i_val+=hh.length;} else if (token=="kk"||token=="k") { hh=_getInt(val,i_val,token.length,2); if(hh==null||(hh<1)||(hh>24)){return 0;} i_val+=hh.length;hh--;} else if (token=="mm"||token=="m") { mm=_getInt(val,i_val,token.length,2); if(mm==null||(mm<0)||(mm>59)){return 0;} i_val+=mm.length;} else if (token=="ss"||token=="s") { ss=_getInt(val,i_val,token.length,2); if(ss==null||(ss<0)||(ss>59)){return 0;} i_val+=ss.length;} else if (token=="a") { if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";} else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";} else {return 0;} i_val+=2;} else { if (val.substring(i_val,i_val+token.length)!=token) {return 0;} else {i_val+=token.length;} } } if (i_val != val.length) { return 0; } if (month==2) { if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { if (date > 29){ return 0; } } else { if (date > 28) { return 0; } } } if ((month==4)||(month==6)||(month==9)||(month==11)) { if (date > 30) { return 0; } } if (hh<12 && ampm=="PM") { hh=hh-0+12; } else if (hh>11 && ampm=="AM") { hh-=12; } var newdate=new Date(year,month-1,date,hh,mm,ss); return newdate.getTime(); } function parseDate(val) { var preferEuro=(arguments.length==2)?arguments[1]:false; generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d'); monthFirst=new Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d'); dateFirst =new Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M'); var checkList=new Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'monthFirst':'dateFirst'); var d=null; for (var i=0; i<checkList.length; i++) { var l=window[checkList[i]]; for (var j=0; j<l.length; j++) { d=getDateFromFormat(val,l[j]); if (d!=0) { return new Date(d); } } } return null; } function PopupWindow_getXYPosition(anchorname) { var coordinates; if (this.type == "WINDOW") { coordinates = getAnchorWindowPosition(anchorname); } else { coordinates = getAnchorPosition(anchorname); } this.x = coordinates.x; this.y = coordinates.y; } function PopupWindow_setSize(width,height) { this.width = width; this.height = height; } function PopupWindow_populate(contents) { this.contents = contents; this.populated = false; } function PopupWindow_setUrl(url) { this.url = url; } function PopupWindow_setWindowProperties(props) { this.windowProperties = props; } function PopupWindow_refresh() { if (this.divName != null) { if (this.use_gebi) { document.getElementById(this.divName).innerHTML = this.contents; } else if (this.use_css) { document.all[this.divName].innerHTML = this.contents; } else if (this.use_layers) { var d = document.layers[this.divName]; d.document.open(); d.document.writeln(this.contents); d.document.close(); } } else { if (this.popupWindow != null && !this.popupWindow.closed) { if (this.url!="") { this.popupWindow.location.href=this.url; } else { this.popupWindow.document.open(); this.popupWindow.document.writeln(this.contents); this.popupWindow.document.close(); } this.popupWindow.focus(); } } } function PopupWindow_showPopup(anchorname) { this.getXYPosition(anchorname); this.x += this.offsetX; this.y += this.offsetY; if (!this.populated && (this.contents != "")) { this.populated = true; this.refresh(); } if (this.divName != null) { if (this.use_gebi) { document.getElementById(this.frmName).style.width = document.getElementById(this.divName).offsetWidth; document.getElementById(this.frmName).style.height = document.getElementById(this.divName).offsetHeight - 5; /* document.getElementById(this.divName).style.left = this.x + "px";  document.getElementById(this.frmName).style.left = this.x + document.getElementById(this.divName).offsetWidth + "px"; */ /* document.getElementById(this.divName).style.top = this.y + "px";   document.getElementById(this.frmName).style.top = this.y - 8 + "px"; */ document.getElementById(this.divName).style.visibility = "visible"; document.getElementById(this.frmName).style.visibility = "visible"; } else if (this.use_css) { document.getElementById(this.frmName).style.width = document.getElementById(this.divName).offsetWidth; document.getElementById(this.frmName).style.height = document.getElementById(this.divName).offsetHeight - 5; document.all[this.divName].style.left = this.x; document.all[this.frmName].style.left = this.x + document.getElementById(this.divName).offsetWidth; document.all[this.divName].style.top = this.y; document.all[this.frmName].style.top = this.y - 8; document.all[this.divName].style.visibility = "visible"; document.all[this.frmName].style.visibility = "visible"; } else if (this.use_layers) { document.getElementById(this.frmName).style.width = document.getElementById(this.divName).offsetWidth; document.getElementById(this.frmName).style.height = document.getElementById(this.divName).offsetHeight - 5; document.layers[this.divName].left = this.x; document.layers[this.frmName].left = this.x + document.getElementById(this.divName).offsetWidth; document.layers[this.divName].top = this.y; document.layers[this.frmName].top = this.y - 8; document.layers[this.divName].visibility = "visible"; document.layers[this.frmName].visibility = "visible"; } } else { if (this.popupWindow == null || this.popupWindow.closed) { if (this.x<0) { this.x=0; } if (this.y<0) { this.y=0; } if (screen && screen.availHeight) { if ((this.y + this.height) > screen.availHeight) { this.y = screen.availHeight - this.height; } } if (screen && screen.availWidth) { if ((this.x + this.width) > screen.availWidth) { this.x = screen.availWidth - this.width; } } var avoidAboutBlank = window.opera || ( document.layers && !navigator.mimeTypes['*'] ) || navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled ); this.popupWindow = window.open(avoidAboutBlank?"":"about:blank","window_"+anchorname,this.windowProperties+",width="+this.width+",height="+this.height+",screenX="+this.x+",left="+this.x+",screenY="+this.y+",top="+this.y+""); } this.refresh(); } } function PopupWindow_hidePopup() { if (this.divName != null) { if (this.use_gebi) { document.getElementById(this.divName).style.visibility = "hidden"; document.getElementById(this.frmName).style.visibility = "hidden"; } else if (this.use_css) { document.all[this.divName].style.visibility = "hidden"; document.all[this.frmName].style.visibility = "hidden"; } else if (this.use_layers) { document.layers[this.divName].visibility = "hidden"; document.layers[this.frmName].visibility = "hidden"; } } else { if (this.popupWindow && !this.popupWindow.closed) { this.popupWindow.close(); this.popupWindow = null; } } } function PopupWindow_isClicked(e) { if (this.divName != null) { if (this.use_layers) { var clickX = e.pageX; var clickY = e.pageY; var t = document.layers[this.divName]; if ((clickX > t.left) && (clickX < t.left+t.clip.width) && (clickY > t.top) && (clickY < t.top+t.clip.height)) { return true; } else { return false; } } else if (document.all) { var t = window.event.srcElement; while (t.parentElement != null) { if (t.id==this.divName) { return true; } t = t.parentElement; } return false; } else if (this.use_gebi && e) { var t = e.target; while (t.parentNode != null) { if (t.id==this.divName) { return true; } t = t.parentNode; } return false; } return false; } return false; } function PopupWindow_hideIfNotClicked(e) { if (this.autoHideEnabled && !this.isClicked(e)) { this.hidePopup(); } } function PopupWindow_autoHide() { this.autoHideEnabled = true; } function PopupWindow_hidePopupWindows(e) { for (var i=0; i<popupWindowObjects.length; i++) { if (popupWindowObjects[i] != null) { var p = popupWindowObjects[i]; p.hideIfNotClicked(e); } } } function PopupWindow_attachListener() { if (document.layers) { document.captureEvents(Event.MOUSEUP); } window.popupWindowOldEventListener = document.onmouseup; if (window.popupWindowOldEventListener != null) { document.onmouseup = new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();"); } else { document.onmouseup = PopupWindow_hidePopupWindows; } } function PopupWindow() { if (!window.popupWindowIndex) { window.popupWindowIndex = 0; } if (!window.popupWindowObjects) { window.popupWindowObjects = new Array(); } if (!window.listenerAttached) { window.listenerAttached = true; PopupWindow_attachListener(); } this.index = popupWindowIndex++; popupWindowObjects[this.index] = this; this.divName = null; this.frmName = null; this.popupWindow = null; this.width=0; this.height=0; this.populated = false; this.visible = false; this.autoHideEnabled = false; this.contents = ""; this.url=""; this.windowProperties="toolbar=no,location=no,status=no,menubar=no,scrollbars=auto,resizable,alwaysRaised,dependent,titlebar=no"; if (arguments.length>0) { this.type="DIV"; this.divName = arguments[0]; this.frmName = arguments[1]; } else { this.type="WINDOW"; } this.use_gebi = false; this.use_css = false; this.use_layers = false; if (document.getElementById) { this.use_gebi = true; } else if (document.all) { this.use_css = true; } else if (document.layers) { this.use_layers = true; } else { this.type = "WINDOW"; } this.offsetX = 0; this.offsetY = 0; this.getXYPosition = PopupWindow_getXYPosition; this.populate = PopupWindow_populate; this.setUrl = PopupWindow_setUrl; this.setWindowProperties = PopupWindow_setWindowProperties; this.refresh = PopupWindow_refresh; this.showPopup = PopupWindow_showPopup; this.hidePopup = PopupWindow_hidePopup; this.setSize = PopupWindow_setSize; this.isClicked = PopupWindow_isClicked; this.autoHide = PopupWindow_autoHide; this.hideIfNotClicked = PopupWindow_hideIfNotClicked; } function CalendarPopup() { var c; if (arguments.length>0) { c = new PopupWindow(arguments[0],arguments[1]); } else { c = new PopupWindow(); c.setSize(150,175); } c.offsetX = -152; c.offsetY = 25; c.autoHide(); c.monthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December"); c.monthAbbreviations = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"); c.dayHeaders = new Array("S","M","T","W","T","F","S"); c.returnFunction = "CP_tmpReturnFunction"; c.returnMonthFunction = "CP_tmpReturnMonthFunction"; c.returnQuarterFunction = "CP_tmpReturnQuarterFunction"; c.returnYearFunction = "CP_tmpReturnYearFunction"; c.weekStartDay = 0; c.isShowYearNavigation = false; c.displayType = "date"; c.disabledWeekDays = new Object(); c.disabledDatesExpression = ""; c.yearSelectStartOffset = 2; c.currentDate = null; c.todayText=""; c.cssPrefix=""; c.isShowNavigationDropdowns=false; c.isShowYearNavigationInput=false; window.CP_calendarObject = null; window.CP_targetInput = null; window.CP_targetLabel = null; window.CP_dateFormat = "MM/dd/yyyy"; c.copyMonthNamesToWindow = CP_copyMonthNamesToWindow; c.setReturnFunction = CP_setReturnFunction; c.setReturnMonthFunction = CP_setReturnMonthFunction; c.setReturnQuarterFunction = CP_setReturnQuarterFunction; c.setReturnYearFunction = CP_setReturnYearFunction; c.setMonthNames = CP_setMonthNames; c.setMonthAbbreviations = CP_setMonthAbbreviations; c.setDayHeaders = CP_setDayHeaders; c.setWeekStartDay = CP_setWeekStartDay; c.setDisplayType = CP_setDisplayType; c.setDisabledWeekDays = CP_setDisabledWeekDays; c.addDisabledDates = CP_addDisabledDates; c.setYearSelectStartOffset = CP_setYearSelectStartOffset; c.setTodayText = CP_setTodayText; c.showYearNavigation = CP_showYearNavigation; c.showCalendar = CP_showCalendar; c.hideCalendar = CP_hideCalendar; c.getStyles = getCalendarStyles; c.refreshCalendar = CP_refreshCalendar; c.getCalendar = CP_getCalendar; c.select = CP_select; c.setCssPrefix = CP_setCssPrefix; c.showNavigationDropdowns = CP_showNavigationDropdowns; c.showYearNavigationInput = CP_showYearNavigationInput; c.copyMonthNamesToWindow(); return c; } function CP_copyMonthNamesToWindow() { if (typeof(window.MONTH_NAMES)!="undefined" && window.MONTH_NAMES!=null) { window.MONTH_NAMES = new Array(); for (var i=0; i<this.monthNames.length; i++) { window.MONTH_NAMES[window.MONTH_NAMES.length] = this.monthNames[i]; } for (var i=0; i<this.monthAbbreviations.length; i++) { window.MONTH_NAMES[window.MONTH_NAMES.length] = this.monthAbbreviations[i]; } } } function CP_tmpReturnFunction(y,m,d) { if (window.CP_targetInput!=null) { var dt = new Date(y,m-1,d,0,0,0); if (window.CP_calendarObject!=null) { window.CP_calendarObject.copyMonthNamesToWindow(); } window.CP_targetInput.value = formatDate(dt,window.CP_dateFormat); if(window.CP_targetLabel !=null) { var weekday=new Array(7); weekday[0]="Sun"; weekday[1]="Mon"; weekday[2]="Tue"; weekday[3]="Wed"; weekday[4]="Thu"; weekday[5]="Fri"; weekday[6]="Sat"; window.CP_targetLabel.innerHTML = weekday[dt.getDay()]; } } else { alert('Use setReturnFunction() to define which function will get the clicked results!'); } } function CP_tmpReturnMonthFunction(y,m) { alert('Use setReturnMonthFunction() to define which function will get the clicked results!\nYou clicked: year='+y+' , month='+m); } function CP_tmpReturnQuarterFunction(y,q) { alert('Use setReturnQuarterFunction() to define which function will get the clicked results!\nYou clicked: year='+y+' , quarter='+q); } function CP_tmpReturnYearFunction(y) { alert('Use setReturnYearFunction() to define which function will get the clicked results!\nYou clicked: year='+y); } function CP_setReturnFunction(name) { this.returnFunction = name; } function CP_setReturnMonthFunction(name) { this.returnMonthFunction = name; } function CP_setReturnQuarterFunction(name) { this.returnQuarterFunction = name; } function CP_setReturnYearFunction(name) { this.returnYearFunction = name; } function CP_setMonthNames() { for (var i=0; i<arguments.length; i++) { this.monthNames[i] = arguments[i]; } this.copyMonthNamesToWindow(); } function CP_setMonthAbbreviations() { for (var i=0; i<arguments.length; i++) { this.monthAbbreviations[i] = arguments[i]; } this.copyMonthNamesToWindow(); } function CP_setDayHeaders() { for (var i=0; i<arguments.length; i++) { this.dayHeaders[i] = arguments[i]; } } function CP_setWeekStartDay(day) { this.weekStartDay = day; } function CP_showYearNavigation() { this.isShowYearNavigation = (arguments.length>0)?arguments[0]:true; } function CP_setDisplayType(type) { if (type!="date"&&type!="week-end"&&type!="month"&&type!="quarter"&&type!="year") { alert("Invalid display type! Must be one of: date,week-end,month,quarter,year"); return false; } this.displayType=type; } function CP_setYearSelectStartOffset(num) { this.yearSelectStartOffset=num; } function CP_setDisabledWeekDays() { this.disabledWeekDays = new Object(); for (var i=0; i<arguments.length; i++) { this.disabledWeekDays[arguments[i]] = true; } } function CP_addDisabledDates(start, end) { if (arguments.length==1) { end=start; } if (start==null && end==null) { return; } if (this.disabledDatesExpression!="") { this.disabledDatesExpression+= "||"; } if (start!=null) { start = parseDate(start); start=""+start.getFullYear()+LZ(start.getMonth()+1)+LZ(start.getDate());} if (end!=null) { end=parseDate(end); end=""+end.getFullYear()+LZ(end.getMonth()+1)+LZ(end.getDate());} if (start==null) { this.disabledDatesExpression+="(ds<="+end+")"; } else if (end ==null) { this.disabledDatesExpression+="(ds>="+start+")"; } else { this.disabledDatesExpression+="(ds>="+start+"&&ds<="+end+")"; } } function CP_setTodayText(text) { this.todayText = text; } function CP_setCssPrefix(val) { this.cssPrefix = val; } function CP_showNavigationDropdowns() { this.isShowNavigationDropdowns = (arguments.length>0)?arguments[0]:true; } function CP_showYearNavigationInput() { this.isShowYearNavigationInput = (arguments.length>0)?arguments[0]:true; } function CP_hideCalendar() { if (arguments.length > 0) { window.popupWindowObjects[arguments[0]].hidePopup(); } else { this.hidePopup(); } } function CP_refreshCalendar(index) { var calObject = window.popupWindowObjects[index]; if (arguments.length>1) { calObject.populate(calObject.getCalendar(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])); } else { calObject.populate(calObject.getCalendar()); } calObject.refresh(); } function CP_showCalendar(anchorname) { if (arguments.length>1) { if (arguments[1]==null||arguments[1]=="") { this.currentDate=new Date(); } else { this.currentDate=new Date(parseDate(arguments[1])); } } this.populate(this.getCalendar()); this.showPopup(anchorname); } function CP_select(inputobj, linkname, format) { if(arguments[4]!=null) window.CP_targetLabel = arguments[4]; var selectedDate=(arguments.length>3)?arguments[3]:null; if (!window.getDateFromFormat) { alert("calendar.select: To use this method you must also include 'date.js' for date formatting"); return; } if (this.displayType!="date"&&this.displayType!="week-end") { alert("calendar.select: This function can only be used with displayType 'date' or 'week-end'"); return; } if (inputobj.type!="text" && inputobj.type!="hidden" && inputobj.type!="textarea") { alert("calendar.select: Input object passed is not a valid form input object"); window.CP_targetInput=null; return; } if (inputobj.disabled) { return; } window.CP_targetInput = inputobj; window.CP_calendarObject = this; this.currentDate=null; var time=0; if (selectedDate!=null) { time = getDateFromFormat(selectedDate,format) } else if (inputobj.value!="") { time = getDateFromFormat(inputobj.value,format); } if (selectedDate!=null || inputobj.value!="") { if (time==0) { this.currentDate=null; } else { this.currentDate=new Date(time); } } window.CP_dateFormat = format; this.showCalendar(linkname); } function getCalendarStyles() { var result = ""; var p = ""; if (this!=null && typeof(this.cssPrefix)!="undefined" && this.cssPrefix!=null && this.cssPrefix!="") { p=this.cssPrefix; } result += "<STYLE>\n"; result += "."+p+"cpYearNavigation,."+p+"cpMonthNavigation { background-color:none; text-align:center; vertical-align:top; text-decoration:none; color:#00487B; line-height:15px; font-weight:bold; bo rder:1px solid red; }\n"; result += "."+p+"cpDayColumnHeader, ."+p+"cpYearNavigation,."+p+"cpMonthNavigation,."+p+"cpCurrentMonthDate,."+p+"cpCurrentMonthDateDisabled,."+p+"cpOtherMonthDate,."+p+"cpOtherMonthDateDisabled,."+p+"cpCurrentDate,."+p+"cpCurrentDateDisabled,."+p+"cpTodayText,."+p+"cpTodayTextDisabled,."+p+"cpText { font-family:arial; font-size:8pt; }\n"; result += "TD."+p+"cpDayColumnHeader { text-align:center; border-bottom:1px solid #3D8DC7; color:#00487B; font-weight:bold; padding-top:2px; }\n"; result += "."+p+"cpCurrentMonthDate, ."+p+"cpOtherMonthDate, ."+p+"cpCurrentDate { text-align:center; text-decoration:none; }\n"; result += "."+p+"cpCurrentMonthDateDisabled, ."+p+"cpOtherMonthDateDisabled, ."+p+"cpCurrentDateDisabled { color:#D0D0D0; text-align:right; text-decoration:none; }\n"; result += "."+p+"cpCurrentMonthDate { color:#00487B; }\n"; result += "."+p+"cpCurrentDate { color:#fff; }\n"; result += "."+p+"cpCurrentDate a { color:#fff; }\n"; result += "."+p+"cpCurrentDate a:hover { color:#fff; }\n"; result += "."+p+"cpOtherMonthDate { color:#808080; }\n"; result += "TD."+p+"cpCurrentDate { background-color:#587E5C; color:#000; }\n"; result += "TD."+p+"cpCurrentDateDisabled { border-width:1px; border:solid thin #FFAAAA; }\n"; result += "TD."+p+"cpTodayText, TD."+p+"cpTodayTextDisabled { border-top:1px solid #3D8DC7;text-align:center;padding-top:2px;; }\n"; result += "A."+p+"cpTodayText, SPAN."+p+"cpTodayTextDisabled { height:20px; }\n"; result += "A."+p+"cpTodayText { color:#00487B;font-weight:bold; }\n"; result += "."+p+"cpTodayTextDisabled { color:#D0D0D0; }\n"; result += "."+p+"cpBorder { border:none; }\n"; result += "</STYLE>\n"; return result; } 
function CP_getCalendar() {	var now = new Date(); if (this.type == "WINDOW") { var windowref = "window.opener."; } else { var windowref = ""; }	var result = ""; if (this.type == "WINDOW") { result += "<HTML><HEAD><TITLE>Calendar</TITLE>"+this.getStyles()+"</HEAD><BODY MARGINWIDTH=0 MARGINHEIGHT=0 TOPMARGIN=0 RIGHTMARGIN=0 LEFTMARGIN=0>\n"; result += '<CENTER><TABLE WIDTH=100% BORDER=0 BORDERWIDTH=0 CELLSPACING=0 CELLPADDING=0>\n';}
	else {
		result += '<TABLE CLASS="'+this.cssPrefix+'cpBorder" WIDTH=152 BORDER=0 BORDERWIDTH=0 CELLSPACING=0 CELLPADDING=4>\n';
		result += '<TR><TD ALIGN=CENTER style="padding-top:7px">\n';
		result += '<CENTER>\n';
		}	
	if (this.displayType=="date" || this.displayType=="week-end") {
		if (this.currentDate==null) { this.currentDate = now; }
		if (arguments.length > 0) { var month = arguments[0]; }
			else { var month = this.currentDate.getMonth()+1; }
		if (arguments.length > 1 && arguments[1]>0 && arguments[1]-0==arguments[1]) { var year = arguments[1]; }
			else { var year = this.currentDate.getFullYear(); }
		var daysinmonth= new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
		if ( ( (year%4 == 0)&&(year%100 != 0) ) || (year%400 == 0) ) {
			daysinmonth[2] = 29;
			}
		var current_month = new Date(year,month-1,1);
		var display_year = year;
		var display_month = month;
		var display_date = 1;
		var weekday= current_month.getDay();
		var offset = 0;
		
		offset = (weekday >= this.weekStartDay) ? weekday-this.weekStartDay : 7-this.weekStartDay+weekday ;
		if (offset > 0) {
			display_month--;
			if (display_month < 1) { display_month = 12; display_year--; }
			display_date = daysinmonth[display_month]-offset+1;
			}
		var next_month = month+1;
		var next_month_year = year;
		if (next_month > 12) { next_month=1; next_month_year++; }
		var last_month = month-1;
		var last_month_year = year;
		if (last_month < 1) { last_month=12; last_month_year--; }
		var date_class;
		if (this.type!="WINDOW") {
			result += "<TABLE WIDTH=144 BORDER=0 BORDERWIDTH=0 CELLSPACING=0 CELLPADDING=0>";
			}
		result += '<TR>\n';
		var refresh = windowref+'CP_refreshCalendar';
		var refreshLink = 'javascript:' + refresh;
		if (this.isShowNavigationDropdowns) {
			result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="78" COLSPAN="3"><select CLASS="'+this.cssPrefix+'cpMonthNavigation" name="cpMonth" onChange="'+refresh+'('+this.index+',this.options[this.selectedIndex].value-0,'+(year-0)+');">';
			for( var monthCounter=1; monthCounter<=12; monthCounter++ ) {
				var selected = (monthCounter==month) ? 'SELECTED' : '';
				result += '<option value="'+monthCounter+'" '+selected+'>'+this.monthNames[monthCounter-1]+'</option>';
				}
			result += '</select></TD>';
			result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="10">&nbsp;</TD>';
			result += '<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="56" COLSPAN="3"><select CLASS="'+this.cssPrefix+'cpYearNavigation" name="cpYear" onChange="'+refresh+'('+this.index+','+month+',this.options[this.selectedIndex].value-0);">';
			for( var yearCounter=year-this.yearSelectStartOffset; yearCounter<=year+this.yearSelectStartOffset; yearCounter++ ) {
				var selected = (yearCounter==year) ? 'SELECTED' : '';
				result += '<option value="'+yearCounter+'" '+selected+'>'+yearCounter+'</option>';
				}
			result += '</select></TD>';
			}
		else {
			if (this.isShowYearNavigation) {
				result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="10"><A CLASS="'+this.cssPrefix+'cpMonthNavigation" HREF="'+refreshLink+'('+this.index+','+last_month+','+last_month_year+');">&lt;</A></TD>';
				result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="58"><SPAN CLASS="'+this.cssPrefix+'cpMonthNavigation">'+this.monthNames[month-1]+'</SPAN></TD>';
				result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="10"><A CLASS="'+this.cssPrefix+'cpMonthNavigation" HREF="'+refreshLink+'('+this.index+','+next_month+','+next_month_year+');">&gt;</A></TD>';
				result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="10">&nbsp;</TD>';
				result += '<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="10"><A CLASS="'+this.cssPrefix+'cpYearNavigation" HREF="'+refreshLink+'('+this.index+','+month+','+(year-1)+');">&lt;</A></TD>';
				if (this.isShowYearNavigationInput) {
					result += '<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="36"><INPUT NAME="cpYear" CLASS="'+this.cssPrefix+'cpYearNavigation" SIZE="4" MAXLENGTH="4" VALUE="'+year+'" onBlur="'+refresh+'('+this.index+','+month+',this.value-0);"></TD>';
					}
				else {
					result += '<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="36"><SPAN CLASS="'+this.cssPrefix+'cpYearNavigation">'+year+'</SPAN></TD>';
					}
				result += '<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="10"><A CLASS="'+this.cssPrefix+'cpYearNavigation" HREF="'+refreshLink+'('+this.index+','+month+','+(year+1)+');">&gt;</A></TD>';
				}
			else {
			    var currentTime = new Date()
    			if (month-1 == currentTime.getMonth() && currentTime.getFullYear() == year)
        			result += '<TD>&nbsp;</TD>\n';
				else
				    result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="22"><A CLASS="'+this.cssPrefix+'cpMonthNavigation" HREF="'+refreshLink+'('+this.index+','+last_month+','+last_month_year+');">&lt;&lt;</A></TD>\n';
				
				result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="100"><SPAN CLASS="'+this.cssPrefix+'cpMonthNavigation">'+this.monthNames[month-1]+' '+year+'</SPAN></TD>\n';
				result += '<TD CLASS="'+this.cssPrefix+'cpMonthNavigation" WIDTH="22"><A CLASS="'+this.cssPrefix+'cpMonthNavigation" HREF="'+refreshLink+'('+this.index+','+next_month+','+next_month_year+');">&gt;&gt;</A></TD>\n';
				}
			}
		result += '</TR></TABLE>\n';
		result += '<TABLE WIDTH=120 BORDER=0 CELLSPACING=0 CELLPADDING=1 ALIGN=CENTER>\n';
		result += '<TR>\n';
		for (var j=0; j<7; j++) {
			result += '<TD CLASS="'+this.cssPrefix+'cpDayColumnHeader" WIDTH="14%"><SPAN CLASS="'+this.cssPrefix+'cpDayColumnHeader">'+this.dayHeaders[(this.weekStartDay+j)%7]+'</TD>\n';
			}
		result += '</TR>\n';
		for (var row=1; row<=6; row++) {
			result += '<TR>\n';
			for (var col=1; col<=7; col++) {
				var disabled=false;
				if (this.disabledDatesExpression!="") {
					var ds=""+display_year+LZ(display_month)+LZ(display_date);
					eval("disabled=("+this.disabledDatesExpression+")");
					}
				var dateClass = "";
				if ((display_month == this.currentDate.getMonth()+1) && (display_date==this.currentDate.getDate()) && (display_year==this.currentDate.getFullYear())) {
					dateClass = "cpCurrentDate";
					}
				else if (display_month == month) {
					dateClass = "cpCurrentMonthDate";
					}
				else {
					dateClass = "cpOtherMonthDate";
					}
				if (disabled || this.disabledWeekDays[col-1]) {
				    if (dateClass != "cpOtherMonthDate")
					    result += '	<TD CLASS="'+this.cssPrefix+dateClass+'"><SPAN CLASS="'+this.cssPrefix+dateClass+'Disabled">'+display_date+'</SPAN></TD>\n';
					else
					    result += '	<TD CLASS="'+this.cssPrefix+dateClass+'">&nbsp;</TD>\n';
					}
				else {
					var selected_date = display_date;
					var selected_month = display_month;
					var selected_year = display_year;
					if (this.displayType=="week-end") {
						var d = new Date(selected_year,selected_month-1,selected_date,0,0,0,0);
						d.setDate(d.getDate() + (7-col));
						selected_year = d.getYear();
						if (selected_year < 1000) { selected_year += 1900; }
						selected_month = d.getMonth()+1;
						selected_date = d.getDate();
						}
						if (dateClass != "cpOtherMonthDate")
    					    result += '	<TD CLASS="'+this.cssPrefix+dateClass+'"><A HREF="javascript:'+windowref+this.returnFunction+'('+selected_year+','+selected_month+','+selected_date+');'+windowref+'CP_hideCalendar(\''+this.index+'\');" CLASS="'+this.cssPrefix+dateClass+'">'+display_date+'</A></TD>\n';
    					else
    					    result += '	<TD CLASS="'+this.cssPrefix+dateClass+'">&nbsp;</TD>\n';
					}
				display_date++;
				if (display_date > daysinmonth[display_month]) {
					display_date=1;
					display_month++;
					}
				if (display_month > 12) {
					display_month=1;
					display_year++;
					}
				}
			result += '</TR>';
			}
		var current_weekday = now.getDay() - this.weekStartDay;
		if (current_weekday < 0) {
			current_weekday += 7;
			}
		result += '<TR>\n';
		result += '	<TD COLSPAN=7 ALIGN=CENTER CLASS="'+this.cssPrefix+'cpTodayText">\n';
		if (this.disabledDatesExpression!="") {
			var ds=""+now.getFullYear()+LZ(now.getMonth()+1)+LZ(now.getDate());
			eval("disabled=("+this.disabledDatesExpression+")");
			}
		if (disabled || this.disabledWeekDays[current_weekday+1]) {
			result += '		<SPAN CLASS="'+this.cssPrefix+'cpTodayTextDisabled">'+this.todayText+'</SPAN>\n';
			}
		else {
			result += '		<A CLASS="'+this.cssPrefix+'cpTodayText" HREF="javascript:'+windowref+this.returnFunction+'(\''+now.getFullYear()+'\',\''+(now.getMonth()+1)+'\',\''+now.getDate()+'\');'+windowref+'CP_hideCalendar(\''+this.index+'\');">'+this.todayText+'</A>\n';
			}
		result += '		<BR>\n';
		result += '	</TD></TR></TABLE></CENTER></TD></TR></TABLE>\n';
	}	
	if (this.displayType=="month" || this.displayType=="quarter" || this.displayType=="year") {
		if (arguments.length > 0) { var year = arguments[0]; }
		else { 
			if (this.displayType=="year") {	var year = now.getFullYear()-this.yearSelectStartOffset; }
			else { var year = now.getFullYear(); }
			}
		if (this.displayType!="year" && this.isShowYearNavigation) {
			result += "<TABLE WIDTH=144 BORDER=0 BORDERWIDTH=0 CELLSPACING=0 CELLPADDING=0>";
			result += '<TR>\n';
			result += '	<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="22"><A CLASS="'+this.cssPrefix+'cpYearNavigation" HREF="javascript:'+windowref+'CP_refreshCalendar('+this.index+','+(year-1)+');">&lt;&lt;</A></TD>\n';
			result += '	<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="100">'+year+'</TD>\n';
			result += '	<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="22"><A CLASS="'+this.cssPrefix+'cpYearNavigation" HREF="javascript:'+windowref+'CP_refreshCalendar('+this.index+','+(year+1)+');">&gt;&gt;</A></TD>\n';
			result += '</TR></TABLE>\n';
			}
		}	
	if (this.displayType=="month") {
		
		result += '<TABLE WIDTH=120 BORDER=0 CELLSPACING=1 CELLPADDING=0 ALIGN=CENTER>\n';
		for (var i=0; i<4; i++) {
			result += '<TR>';
			for (var j=0; j<3; j++) {
				var monthindex = ((i*3)+j);
				result += '<TD WIDTH=33% ALIGN=CENTER><A CLASS="'+this.cssPrefix+'cpText" HREF="javascript:'+windowref+this.returnMonthFunction+'('+year+','+(monthindex+1)+');'+windowref+'CP_hideCalendar(\''+this.index+'\');" CLASS="'+date_class+'">'+this.monthAbbreviations[monthindex]+'</A></TD>';
				}
			result += '</TR>';
			}
		result += '</TABLE></CENTER></TD></TR></TABLE>\n';
		}
	if (this.displayType=="quarter") {
		result += '<BR><TABLE WIDTH=120 BORDER=1 CELLSPACING=0 CELLPADDING=0 ALIGN=CENTER>\n';
		for (var i=0; i<2; i++) {
			result += '<TR>';
			for (var j=0; j<2; j++) {
				var quarter = ((i*2)+j+1);
				result += '<TD WIDTH=50% ALIGN=CENTER><BR><A CLASS="'+this.cssPrefix+'cpText" HREF="javascript:'+windowref+this.returnQuarterFunction+'('+year+','+quarter+');'+windowref+'CP_hideCalendar(\''+this.index+'\');" CLASS="'+date_class+'">Q'+quarter+'</A><BR><BR></TD>';
				}
			result += '</TR>';
			}
		result += '</TABLE></CENTER></TD></TR></TABLE>\n';
		}
	if (this.displayType=="year") {
		var yearColumnSize = 4;
		result += "<TABLE WIDTH=144 BORDER=0 BORDERWIDTH=0 CELLSPACING=0 CELLPADDING=0>";
		result += '<TR>\n';
		result += '	<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="50%"><A CLASS="'+this.cssPrefix+'cpYearNavigation" HREF="javascript:'+windowref+'CP_refreshCalendar('+this.index+','+(year-(yearColumnSize*2))+');">&lt;&lt;</A></TD>\n';
		result += '	<TD CLASS="'+this.cssPrefix+'cpYearNavigation" WIDTH="50%"><A CLASS="'+this.cssPrefix+'cpYearNavigation" HREF="javascript:'+windowref+'CP_refreshCalendar('+this.index+','+(year+(yearColumnSize*2))+');">&gt;&gt;</A></TD>\n';
		result += '</TR></TABLE>\n';
		result += '<TABLE WIDTH=120 BORDER=0 CELLSPACING=1 CELLPADDING=0 ALIGN=CENTER>\n';
		for (var i=0; i<yearColumnSize; i++) {
			for (var j=0; j<2; j++) {
				var currentyear = year+(j*yearColumnSize)+i;
				result += '<TD WIDTH=50% ALIGN=CENTER><A CLASS="'+this.cssPrefix+'cpText" HREF="javascript:'+windowref+this.returnYearFunction+'('+currentyear+');'+windowref+'CP_hideCalendar(\''+this.index+'\');" CLASS="'+date_class+'">'+currentyear+'</A></TD>';
				}
			result += '</TR>';
			}
		result += '</TABLE></CENTER></TD></TR></TABLE>\n';
		}
	if (this.type == "WINDOW") {
		result += "</BODY></HTML>\n";
		}
	return result;
}

function CheckValue(elementId, errorPnl) {
    var ddShow = document.getElementById(elementId);
    var divErr = document.getElementById(errorPnl);
    if (ddShow != null && divErr != null) {
        if (ddShow.options[ddShow.selectedIndex].value == -1) {
            divErr.style.display = "block";
        }
        else {
            divErr.style.display = "none";
            return true;
        }
    }
    return false;
}
function ToggleMenu(DivId) {
    var oCityDiv = document.getElementById("CityDiv");
    var oHotelDiv = document.getElementById("pnlHotels");
    var HotelDivDisplay = "block";
    var HotelMenuImageSrc = "/images/bullet_collapse.gif";
    var HotelMenuImageToolTip = "Collapse section";
    var CityDivDisplay = "none";
    var CityMenuImageSrc = "/images/bullet_expand.gif";
    var CityMenuImageToolTip = "Expand section";

    if (DivId == "pnlHotels") {
        if (oHotelDiv.style.display == "none") {
            HotelDivDisplay = "block";
            HotelMenuImageSrc = "/images/bullet_collapse.gif";
            HotelMenuImageToolTip = "Collapse section";
            CityDivDisplay = "none";
            CityMenuImageSrc = "/images/bullet_expand.gif";
            CityMenuImageToolTip = "Expand section";
        }
        else {
            HotelDivDisplay = "none";
            HotelMenuImageSrc = "/images/bullet_expand.gif";
            HotelMenuImageToolTip = "Expand section";
            CityDivDisplay = "block";
            CityMenuImageSrc = "/images/bullet_collapse.gif";
            CityMenuImageToolTip = "Collapse section";
        }
    }
    else if (oCityDiv != null) {
        if (oCityDiv.style.display == "none") {
            HotelDivDisplay = "none";
            HotelMenuImageSrc = "/images/bullet_expand.gif";
            HotelMenuImageToolTip = "Expand section";
            CityDivDisplay = "block";
            CityMenuImageSrc = "/images/bullet_collapse.gif";
            CityMenuImageToolTip = "Collapse section";
        }
        else {
            HotelDivDisplay = "block";
            HotelMenuImageSrc = "/images/bullet_collapse.gif";
            HotelMenuImageToolTip = "Collapse section";
            CityDivDisplay = "none";
            CityMenuImageSrc = "/images/bullet_expand.gif";
            CityMenuImageToolTip = "Expand section";
        }
    }

    oHotelDiv.style.display = HotelDivDisplay;
    document.getElementById("HotelMenuImage").src = HotelMenuImageSrc;
    document.getElementById("HotelMenuImage").alt = HotelMenuImageToolTip;
    document.getElementById("HotelMenuImage").title = HotelMenuImageToolTip;
    if (oCityDiv != null) {
        oCityDiv.style.display = CityDivDisplay;
        document.getElementById("CityMenuImage").src = CityMenuImageSrc;
        document.getElementById("CityMenuImage").alt = CityMenuImageToolTip;
        document.getElementById("CityMenuImage").title = CityMenuImageToolTip;
    }
}