/* init is required by calendar */
function popupcalinit() {
	popupcal = new YAHOO.widget.Calendar2up("popupcal","calsearchdiv");
   	popupcal.pages[0].minDate = YAHOO.widget.DateMath.add(new Date(), YAHOO.widget.DateMath.DAY, 0);
   	popupcal.pages[1].minDate = YAHOO.widget.DateMath.add(new Date(), YAHOO.widget.DateMath.DAY, 0);
	popupcal.pages[0].Options.MULTI_SELECT = true; 
	popupcal.pages[1].Options.MULTI_SELECT = true;
	
	popupcal.pages[0].renderCellDefault = renderCellDefault;
	popupcal.pages[1].renderCellDefault = renderCellDefault;
	
	popupcal.render();
	popupcal.setChildFunction("onSelect", popupSelect);
	popupcal.setChildFunction("onDeselect", popupDeSelect);
};


/* overload renderCellDefault() */
var renderCellDefault = function(workingDate, cell) {
	cell.innerHTML = "";
	var link = document.createElement("a");

	link.href="javascript:void(null);";
	link.name=this.id+"__"+workingDate.getFullYear()+"_"+(workingDate.getMonth()+1)+"_"+workingDate.getDate();

	if(this.isDateOOM(workingDate)) {
        cell.innerHTML = "&nbsp;";
	}
	else {
    	link.appendChild(document.createTextNode(this.buildDayLabel(workingDate)));
		cell.appendChild(link);
        totalSelected = this.getSelectedDates().length;
        selected = this.getSelectedDates();
        if(totalSelected == 2) {
            if(selected[0].valueOf() < selected[1].valueOf()) {
                first = selected[0];
                second = selected[1];
            }
            else {
                first = selected[1];
                second = selected[0];
            }
            if(workingDate.valueOf() > first.valueOf() && workingDate.valueOf() < second.valueOf()) {
                YAHOO.util.Dom.addClass(cell,'interselect');
            }
        }
	}
};

/* onSelect for multi-select with just two clicks */
var popupSelect = function(rd) {
    window.calendarClick = true;
	rds = new String(rd);
	rs = rds.split(",");
	recent = new Date(rs[0], rs[1] - 1, rs[2]);
	popuptotalSelected = popupcal.getSelectedDates().length;
	selected = popupcal.getSelectedDates();
	if(popuptotalSelected > 2) {
		for(var i=0; i<selected.length; i++) {
			if(recent.toString() !== selected[i].toString()) {
				popupcal.deselect(selected[i]);
			}
		}
		popupcal.render();
	}
	if(popuptotalSelected == 2) {
		popupcal.render();
		
		/* calculate dates */
		selected = popupcal.getSelectedDates();
		if(selected[0].valueOf() < selected[1].valueOf()) {
			first = selected[0];
			second = selected[1];
		}
		else {
			first = selected[1];
			second = selected[0];
		}
		firstStr = (first.getMonth() + 1) + "/" + first.getDate() + "/" + first.getFullYear();
		secondStr = (second.getMonth() + 1) + "/" + second.getDate() + "/" + second.getFullYear();
		document.getElementById('start_date').value = firstStr;
		document.getElementById('end_date').value = secondStr;
		document.getElementById('searchdates').style.display = 'none';
		document.getElementById('quicksearch-body-calendar').innerHTML = firstStr + '-' + secondStr;
	}
};

/* onDeselect for multi-select */
var popupDeSelect = function(rd) {
	popuptotalSelected = popupcal.getSelectedDates().length;
	if(popuptotalSelected == 1) {
		popupcal.render();
		document.getElementById("ratesdiv").innerHTML = '';
		document.getElementById("ratesdiv").className = '';
	}
}

function hideCalendar()
{
    var o = document.getElementById('searchdates');
    o.style.display = 'none';
}


function showCalendar() {
    var o = document.getElementById('searchdates');
    o.style.display = 'block';
}