﻿//global variables:
var pagecache = {};
pagecache.calendar = "";
pagecache.stayselector = "";
var _ctrlCache = "";
var _calendarCache;
var seldate;
var goutdate;
var uniqueid;
var calPostAction;
var starrating = "";
var CtrlLoading2 = "";

//var ExitPopupURL = "";
//var Destination = "";

//core functions: 
function RefreshControl(slot, id, xid, attributes, uniqueid) {
	var browsestring = UnsecureURL + 'ajax/refresh.aspx?ctrl=' + id + '&xid=' + xid  +'&destination=' + Destination + '&coupid=' + CouponCode + attributes;
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("GET", browsestring, true);
	var newcontent = "";

	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
				newcontent = xmlhttp.responseText;
				LoadItem(slot, newcontent);
				UpdateCache(newcontent, id, uniqueid);
				DoPostActions(slot, id, xid, attributes, uniqueid);
			}
			else {
				newcontent = "";
			}
		}
		
	}

	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.send(null);
}

function SubmitFormAjax(id, xid, attributes, formvalues) {
	var browsestring = UnsecureURL + 'ajax/refresh.aspx?ctrl=' + id + '&xid=' + xid + attributes;
	var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("POST", browsestring, true);

	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			if (xmlhttp.status == 200) {
                DoPostFormActions(id, xid, attributes, formvalues);
			}
			else {
			}
		}
	}

	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlhttp.setRequestHeader("Content-length", formvalues.length);
    xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.send(formvalues);
}

function DoPostFormActions(id, xid, attributes, formvalues)
{
    if (id == "SubmitReview")
    {
        if (formvalues.indexOf("=review") > -1)
        {
            var switchelem = document.getElementById("ReviewFormContainer");
            switchelem.className = "suc-smt";
        }
        
        if (formvalues.indexOf("=comment") > -1)
        {
            var switchelem = document.getElementById("comments-" + formvalues.split("&")[3].split("=")[1]);
            switchelem.className = "comment-suc";
        }

    }
}

function DoPostActions(slot, id, xid, attributes, uniqueid)
{
    var test = document.getElementById(slot);
    
    if (id == "StayCalendar")
    {
        try
        {
            calPostAction(id, xid, attributes, uniqueid);
        }
        catch(er)
        {
            var test = null;
        }

    }
    
    if (id == "StaySummary")
    {
        if (datesarray)
        {
            for (n = 0; n < datesarray.length; n++)
            {
                var dcell = document.getElementById(uniqueid + "-" + datesarray[n][0]);
                
                if (datesarray[n][1] != "")
                {
                    dcell.childNodes[0].childNodes[1].innerHTML = datesarray[n][1];
                }

                if (n == datesarray.length - 1 && dcell.className.indexOf(" selected") == -1)
                {
                    dcell.className += " selected-end";
                }
                else if (n == 0 && dcell.className.indexOf(" selected") == -1)
                {
                    dcell.className += " selected-start";
                }
                else if (dcell.className.indexOf(" selected") == -1)
                {
                    dcell.className += " selected";
                }
            }


            SetElementClass(CtrlLoading2, "hide-loading");
        }
        else
        {
            ClearCalendar(uniqueid);
        }

    }
}

//unit gallery code:
function LoadUnitGallery(galleryid)
{
    if ($.browser.msie && $.browser.version == '6.0') 
        $('select').css({display:'none'});
    
    $('div.fader').css({display:'block'});
    
    $('div.' + galleryid).fadeIn(400);
    //poupUp_height('div.gallery-popup');
}

function UnloadUnitGallery(galleryid)
{
	$('div.' + galleryid).fadeOut(400, function(){
	    $('div.fader').css({display:'none'});
	     if ($.browser.msie && $.browser.version == '6.0') $('select').css({display:'block'});
	});
}


function LoadItem(slot, newcontent) {
	var ctrl = document.getElementById(slot);

	if (ctrl != null && slot != "PropertyMap" && slot != "AreaMap") {
		ctrl.innerHTML = newcontent;
	}
	
	if (slot == "PropertyMap" || slot == "AreaMap")
	{
	    var newScript = document.createElement("script");
	    newScript.type = "text/javascript";
	    newScript.text = newcontent;
	    document.getElementsByTagName("head")[0].appendChild(newScript);
	}
	
	if (slot.indexOf("staysummary") != -1)
	{
	    var scripttext = newcontent.split("<script>");
	    
	    if (scripttext.length > 1)
	    {
	        var split2 = scripttext[1].split("</script>");
	        var newscript = document.createElement("script");
	        newscript.type = "text/javascript";
	        newscript.text = split2[0];
	        document.getElementsByTagName("head")[0].appendChild(newscript);
	    }
	    var test = null;
     
        SetElementClass(CtrlLoading2, "hide-loading");
	}
    else if (slot.indexOf("ReviewList") != -1)
    {
        var switchelem = document.getElementById("ReviewsContainer");
        switchelem.innerHTML = newcontent;
    }	
    
}

function runScripts(e) {
	if (e.nodeType != 1) return; //if it's not an element node, return
 
	if (e.tagName.toLowerCase() == 'script') {
		eval(e.text); //run the script
	}
	else {
		var n = e.firstChild;
		while ( n ) {
			if ( n.nodeType == 1 ) runScripts( n ); //if it's an element node, recurse
			n = n.nextSibling;
		}
	}
}

function UpdateCache(newcontent, id, uniqueid) {
	if (id == "StayCalendar") {
		pagecache.calendar = newcontent;
	}

	if (id == "StaySelector") {
		pagecache.stayselector = newcontent;
		initScrollPane(uniqueid);
	}
}


function Search(destination) {

	var re = "/(0?[1-9]|1[012])[- /.](0 ? [1 - 9] | [12][0 - 9] | 3[01])[ - /.](20)?\d\d/";

    var searchterm = "";
    
    
    if (destination == null || destination == "")
    {
        searchterm = document.getElementById("destination").value;
    }
    else
    {
        searchterm = destination;
    }
    
    var destinationcheck = searchterm.replaceAll(" ", "");
    
    if (destinationcheck == "" || destinationcheck.length < 2)
    {
        searchterm = "";
    }


	var flex1 = document.getElementById("flexableDate").checked;
    var flex2 = document.getElementById("flexableDate2").checked;
    var flexmonth = document.getElementById("flexMonth").checked;
    var sday = document.getElementById("StartDays").value;
    var Chin = document.getElementById("CheckInDate").value;
    var Chout = document.getElementById("CheckOutDate").value;
    var weeks  = document.getElementById("staySelection").value;
    var days1  = document.getElementById("InDays").value;
    var days2  = document.getElementById("OutDays").value;

    var cin = "";
    var cout = "";
    var tin = "";
    var tout = "";
    var flex = "off";
    
    //top section -- is radio button selected?
    if (flexmonth == true)
    {
        cin = sday;  
        flex = "on";      
        
	    var coutdate = new Date(cin);
	    //add  staySelection weeks
	    var newcoutdate = new Date(coutdate.getTime() + 7*weeks *24*60*60*1000);
	    
	    cout = formatDate2(newcoutdate, "MM/DD/YYYY");
	    
    }
    else
    {
        cin = Chin;
        cout = Chout;
        
    }

    if (flex1 == false)
    {
        days1 = 0;
    }
    
    if (flex2 == false)
    {
        days2 = 0;
    }
    
    //alert(UnsecureURL + "searchresults.aspx?destination=" + searchterm + "&cin=" + cin + "&cout=" + cout + "&flex=" + flex + "&tin=" + tin + "&tout=" + tout + "&page=1&sort=&cid=&flex=" + flex);	
	if (searchterm == null || searchterm == "" || searchterm == "Search ABetterStay: Enter Destination"|| searchterm == "Enter Destination" || !ValidateForm.isGoodStringData("Search", searchterm, "Destination") || !ValidateForm.isStringLengthOk(searchterm, 2)) {
		//var e = "<font size=2pt> <strong>Please enter a destination</strong></font>.<br /><font size=1pt>ex: Hawaii; Aspen, CO; Amalfi coast, Italy</font>";
		//ErrorControl.renderErrorWindow(e);
		window.alert("Please enter a valid destination.");
        
	}
	else 
	{
	        searchterm = encodeURIComponent(searchterm);
	        window.location.href = UnsecureURL + "searchresults.aspx?destination=" + searchterm + "&cin=" + cin + "&cout=" + cout +  "&tin=" + days1 + "&tout=" + days2 + "&page=1&sort=&cid=&flex=" + flex + "&sstart=" + sday + "&wk=" + weeks + "&chin=" + Chin + "&chout=" + Chout + "&fx1=" + flex1 + "&fx2=" + flex2 + "&d1=" + days1 + "&d2=" + days2;
	}
		
}

function SearchBlog()
{
   var searchterm = document.getElementById("blogsrch").value;
   window.location.href = UnsecureURL + "blog/search.aspx?q=" + searchterm;
}


function ClearSearch(obj)
{
    if (obj.value.indexOf("Enter Destination") >= 0)
    {
        obj.value = "";
    }
}

function AdjustAdvanceSearchStrip()
{

    if(document.getElementById("srchCriteria") != null)
    {
        if (document.getElementById("srchCriteria").innerHTML.length < 4)
        {
                 ClearAdvanceSearch();
        }
        else{

            //document.getElementById("adv-clear").style.visibility = "visible";
            document.getElementById("adv-clear").className = "clear-img2";
            document.getElementById("adv-text").className = "search-more-text2";
            document.getElementById("adv-days").className = "input-data2";
            document.getElementById("lblAdvanceSearch").innerHTML = "<a href=\"javascript:OpenSearchOptions();\"><b>Change</b></a>";
            
        }
         
    }


}
function ClearAdvanceSearch()
{
    document.getElementById("lblAdvanceSearch").innerHTML = "<a href=\"javascript:OpenSearchOptions();\"><b>Advanced search options</b></a>";
    //document.getElementById("adv-clear").style.visibility = "hidden";
    document.getElementById("adv-clear").className = "clear-img";
    document.getElementById("adv-text").className = "search-more-text";
    document.getElementById("adv-days").className = "input-data";
        
    var srchCriteria = document.getElementById("srchCriteria");
    srchCriteria.innerHTML ="";
    
    SetDefaultSearchParameters();
}		    
                
function SetSearchParametersFromHeader()
{
    //don't set these unless destination is defined:
    var dest = decodeURIComponent(querySt("destination"));
    var st = decodeURIComponent(querySt("sstart"));
    
    if (dest == null) return;
    if (dest == "undefined") return;
    if (st == null) return;
    if (st == "undefined") return;
    
    if(st.length > 0)
    {
        var d1 = 0;
        var d2 = 0;
        
        var flexin = eval(querySt("tin"));
        var flexout = eval(querySt("tout"));
        
        var flexon = querySt("flex");
        
        if (flexon == "off")
        {
            if (flexin > 0)
            {
                d1 = 1;
            }
            
            if (flexout > 0)
            {
                d2 = 1;
            }
        }
        
        var sstring = decodeURIComponent(querySt("destination")).replaceAll("+", " ");
        
        if (sstring == "undefined")
        {
            
        }
        else
        {
            document.getElementById("destination").value = sstring;
        }
        
        document.getElementById("CheckInDate").value = decodeURIComponent(querySt("cin"));
        document.getElementById("CheckOutDate").value = decodeURIComponent(querySt("cout"));
        document.getElementById("StartDays").value = st;
        document.getElementById("InDays").value = querySt("tin");
        document.getElementById("OutDays").value = querySt("tout");
        document.getElementById("flexableDate").checked = d1;
        document.getElementById("flexableDate2").checked = d2;
        document.getElementById("staySelection").value = querySt("wk");
        
        if( querySt("flex") == "off")
        {
            document.getElementById("exactDate").checked = true;
            exactlyDays();
        }
        if( querySt("flex") == "on")
        {
            document.getElementById("flexMonth").checked = true;
            flexableDays();
        }
        if(document.getElementById("flexableDate").checked == true)
        {
            clickCheckbox1();
        }
        if(document.getElementById("flexableDate2").checked == true)
        {
            clickCheckbox2();
        }
//        if(document.getElementById("flexableDate").checked ==true)
//        {
//            flexableDays();
//        }
        storeSearchCriteria();
        AdjustAdvanceSearchStrip();
    }
}

function SetDefaultSearchParameters()
{
    
    if( document.getElementById("CheckInDate") == null) return;
    var today = new Date();
    var tommor = new Date(today.getTime() + 24*60*60*1000);
    var fourdays = new Date(today.getTime() + 96*60*60*1000);
    if(document.getElementById("flexMonth") == null) return;
    document.getElementById("flexMonth").checked = true;
    flexableDays();
    document.getElementById("CheckInDate").value = formatDate2(today,"MM/DD/YYYY");
    document.getElementById("CheckOutDate").value = formatDate2(fourdays,"MM/DD/YYYY");
    
    if(document.getElementById("StartDays") == null) return;
    document.getElementById("StartDays").value = formatDate2(today,"MM/DD/YYYY");
    
    document.getElementById("staySelection").value = 8;
    //document.getElementById("destination").value = "";
}

function querySt(ji) {
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i=0;i<gy.length;i++) {
        ft = gy[i].split("=");
        if (ft[0] == ji) {
               return ft[1];
         }
    }
}

function queryStPair(ji)
{
    var outstr = "&" + ji + "=";
    var test = querySt(ji);
    
    if (test != null && test != "undefined")
    {
        outstr = outstr + test;
    }
    
    return outstr;
}

var getElementsByClassName = function(className, tag, elm) {
	if (document.getElementsByClassName) {
		getElementsByClassName = function(className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
			nodeName = (tag) ? new RegExp("\\b" + tag + "\\b", "i") : null,
			returnElements = [],
			current;
			for (var i = 0,
			il = elements.length; i < il; i += 1) {
				current = elements[i];
				if (!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function(className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
			classesToCheck = "",
			xhtmlNamespace = "http://www.w3.org/1999/xhtml",
			namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace) ? xhtmlNamespace: null,
			returnElements = [],
			elements,
			node;
			for (var j = 0,
			jl = classes.length; j < jl; j += 1) {
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch(e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function(className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
			classesToCheck = [],
			elements = (tag === "*" && elm.all) ? elm.all: elm.getElementsByTagName(tag),
			current,
			returnElements = [],
			match;
			for (var k = 0,
			kl = classes.length; k < kl; k += 1) {
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for (var l = 0,
			ll = elements.length; l < ll; l += 1) {
				current = elements[l];
				match = false;
				for (var m = 0,
				ml = classesToCheck.length; m < ml; m += 1) {
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

//Weather control, map support code:
function LoadAreaWeather(xid)
{
    RefreshControl('AreaWeather', 'Weather', xid, '&ctx=AreaPage', '');
}


function LoadPropWeather(xid, cid)
{
    RefreshControl('PropertyWeather', 'Weather', xid, '&ctx=PropertyPage&c=' + cid, '');
}


function LoadPropMap(xid, cid)
{
    RefreshControl('PropertyMap', 'Map', xid, '&ctx=PropertyPage&c=' + cid, '');
}


function LoadAreaMap(xid)
{
    RefreshControl('AreaMap', 'Map', xid, '&ctx=AreaPage', '');
}


///////////////////////////////
// -- Calendar Code Begin -- //
///////////////////////////////
///////////////////////////////


//sets the link function that executes when you click on a unit tab
function SetTabLinks(dt, xid, c, dtout)
{
    var tabs = getElementsByClassName("tabset");
    
    //parse the value for each node and change accordingly:
    
    for (var m = 0; m < tabs[1].childNodes.length; m++)
    {

        if (tabs[1].childNodes[m].nodeName.toLowerCase() == "li")
        {
            var unit = tabs[1].childNodes[m].childNodes[0].hash;
            unit = unit.substring(1, unit.length);
            tabs[1].childNodes[m].onclick = new Function("CalendarOracle('" + c + "', '" + unit + "', '" + xid + "', '" + dt + "', '" + dtout + "', 'UnitAuto')");
        }
        
    }
}

//Get calendar cells by class name:
function GetCellsByClass(u, classname)
{
    var selectedCells = new Array();
    
    var cal = document.getElementById( u + "-calholder");

    if (cal.childNodes.length > 0)
    {
        var monthLeft = cal.childNodes[1].childNodes[0].childNodes[0].childNodes[0].childNodes[0].getElementsByTagName("td");
        var monthRight = cal.childNodes[1].childNodes[0].childNodes[0].childNodes[0].childNodes[2].getElementsByTagName("td");

        for (var j = 0; j < monthLeft.length; j++)
        {
            var testcell = monthLeft[j];
            
            
            if (testcell.className.indexOf(classname) >= 0)
            {
                selectedCells.push(testcell);
            }
        }
        

        for (var k = 0; k < monthRight.length; k++)
        {
            var testcell2 = monthRight[k];
            
            if (testcell2.className.indexOf(classname) >= 0)
            {
                selectedCells.push(testcell2);
            }
        }
    }
    
    return selectedCells;
}

//takes as input an array of objects, sets a class modifier on the first child node
function SetCellsClass(ccollection, classname)
{
    for (var a = 0; a < ccollection.length; a++)
    {
        ccollection[a].className += " " + classname;
    }
}


//takes as input an array of objects, removes the class modifier from the first child node
function RemoveCellsClass(ccollection, classname)
{
    for (var n = 0; n < ccollection.length; n++)
    {
        var loc = ccollection[n].className.indexOf(" " + classname);
        ccollection[n].className = ccollection[n].className.substring(0, loc);
    }
}


//update summary
function UpdateSummary(u, dtin, dtout, xid)
{
    var parent = document.getElementById("summary-" + u).getElementsByTagName("*");
    var deals = getElementsByClassName("deal-info");
    
    var saveprices = getElementsByClassName("save-pr");
    
    if (deals.length == 0)
    {
        deals = getElementsByClassName("no-inventory");
    }
    
    var indt = document.getElementById("chkindt-" + u);
    var outdt = document.getElementById("chkoutdt-" + u);
    
    //Reset dates:
    if (dtin != "")
    {
        indt.value = dtin;
    }
    else
    {
        indt.value = "MM/DD/YYYY";
    }
    
    
    if (dtout != "")
    {
        outdt.value = dtout;
    }
    else
    {
        outdt.value = "MM/DD/YYYY";
    }
    
    //Remove book link:
    for (var a = 0; a < parent.length; a++)
    {
        if (parent[a].id == "BookLink")
        {
            parent[a].outerHTML = "<A id='BookLink'>Review and Book</A>";
            parent[a].parentNode.className = "button-inactive";
        }
    }
    
    //Clear Deals text
    for (var b = 0; b < deals.length; b++)
    {

        deals[b].attributes["class"].value = "no-inventory";
        if(document.all)
        {
             deals[b].innerText = "";
        } 
        else
        {
            deals[b].textContent = "";
        }

    }
    
    //Clear Total Savings span
    for (var d = 0; d < saveprices.length; d++)
    {
        saveprices[d].attributes["class"].value = "";
        
        if (document.all)
        {
            saveprices[d].innerText = "";
        }
        else
        {
            saveprices[d].textContent = "";
        }
    }
    
    //Clear Total Price and Stay Nights
    for (var c = 0; c < parent.length; c++)
    {
        if (parent[c].id == "TotalPrice")
        {
            parent[c].value = "";
        }
        
        if (parent[c].id == "TotalStayLength")
        {
            parent[c].value = "";
        }
    }
    
    //Update Stay Summary if in and out dates are specified:
    if (dtin != "" && dtout != "")
    {
            var refreshstring = queryStPair("c") + "&u=" + u + '&cin=' + dtin + '&cout=' + dtout;
            refreshstring = refreshstring + queryStPair("destination") + queryStPair("sstart") + queryStPair("tin") + queryStPair("tout");
            refreshstring = refreshstring + queryStPair("flex") + queryStPair("wk") + queryStPair("d1") + queryStPair("d2") + queryStPair("chin");
            refreshstring = refreshstring + queryStPair("chout") + queryStPair("fx1") + queryStPair("fx2");
            
            RefreshControl("staysummary-" + u, 'StaySummary', xid, refreshstring, u);
    }
}


function PreviousMonth(dt, xid, c, u) {

    calPostAction = new Function();

    UpdateSummary(u, "", "", xid);
    
    seldate = null;
    goutdate = null;
    
	var sdt = "";
    var test = new Array()
    test = window.location.search.split('&');
    
    if (test.length > 0)
    {
        for (j = 0; j < test.length; j++)
        {
            if (test[j].indexOf("start=") > 0)
            {
                sdt = test[j].substr(7, 10);
            }
        }
    }

	var newdate = getPrevMonth(dt);
	var D = new Date(newdate);
	var datestring = formatDate2(D, "MM/DD/YYYY");
	
	SetTabLinks(datestring, xid, c, '');
	
	RefreshControl(u + '-calholder', 'StayCalendar', xid, '&prevdate=' + datestring + '&c=' + c + '&u=' + u + '&cin=' + datestring, u);

    //parse the value for each node and change accordingly:
    
 

}


function NextMonth(dt, xid, c, u) {

    calPostAction = new Function();
    
    UpdateSummary(u, "", "", xid);
	
	seldate = null;
	goutdate = null;
	
	var sdt = "";
    var test = new Array()
    test = window.location.search.split('&');
    
    if (test.length > 0)
    {
        for (j = 0; j < test.length; j++)
        {
            if (test[j].indexOf("start=") > 0)
            {
                sdt = test[j].substr(7, 10);
            }
        }
    }

	var newdate = getNextMonth(dt);
	var D = new Date(newdate);
	var datestring = formatDate2(D, "MM/DD/YYYY");
    
    SetTabLinks(datestring, xid, c, '');

	RefreshControl(u + '-calholder', 'StayCalendar', xid, '&nextdate=' + datestring + '&c=' + c + '&u=' + u + '&cin=' + datestring, u);

}

function ThisMonth(dt, xid, c, u, sdt, dtout) {
	//clearitem(u + "-selectorholder");
	//clearitem(u + "-calholder");
	
	if (dtout == null)
	{

	}
	else
	{
	    goutdate = dtout;
	}
	
	var dtone = new Date(dt);
	var dttwo = new Date(goutdate);
	
	var refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dt + '&sstart=' + sdt;
	seldate = dt;
	
	if (dttwo > dtone)
	{
	    refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dt + '&nextdate=' + dt + '&sstart=' + sdt;
	}
	
	if (dttwo < dtone)
	{
	    refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dt + '&prevdate=' + dt + '&sstart=' + sdt;
	}

	RefreshControl(u + '-calholder', 'StayCalendar', xid, refreshstring, u);
}


//Returns an integer specifying the state of the calendar:
// 0 -- Do nothing
// 1 -- First/Subsequent load with no dates selected
// 2 -- First load with check in selected
// 3 -- First load check in, check out selected
// 4 -- Subsequent load with no dates selected
// 5 -- Subsequent load with check in selected
// 6 -- Subsequent load with check in, check out selected
// 7 -- no refresh, check in selected
// 8 -- no refresh, check out selected
// 9 -- Pop-up calendar, date out < date in
function CalStateLogic(dt, dtout, u, source)
{
    //get querystring state: cin, cout, flex
    var qsin = querySt("cin");
    var qsout = querySt("cout");
    var qsflex = querySt("flex");
    
    //get current calendar state: no cells selected, one cell, many cells
    var selectedcells = GetCellsByClass(u, "selected");
    
    if (source == "UnitsTab")
    {
    
        if (qsflex == "on")
        {
            return 2;
        }
        
        if (qsout != null)
        {
            return 3;
        }
        
        if (qsin != null)
        {
            return 2;
        }
        
        return 1;
    }
    
    if (source == "UnitSelected")
    {
        return 0;
    }
    
    if (source == "UnitNotSelected")
    {
        if (seldate == null && goutdate == null)
        {
            return 4;
        }
        
        if (qsflex == "on")
        {
            return 5;
        }
    
        if (dtout != "")
        {
            return 6;
        }
        
        if (dt != "")
        {
            return 5;
        }
    }
    
    if (source == "UnitAuto")
    {
        if (seldate == null && goutdate == null)
        {
            return 4;
        }
    
        if (dtout != "")
        {
            return 6;
        }
        
        if (dt != "")
        {
            return 5;
        }
    }
    
    if (source == "CalendarPromoDay" || source == "CalendarAvailableDay")
    {
        
        if (selectedcells.length == 0 || selectedcells.length > 1)
        {
            return 7;
        }
        else if (selectedcells.length == 1)
        {
            return 8;
        }
        
    }
    
    if (source == "PopupCal")
    {
        
        if (dtout == "MM/DD/YYYY")
        {
            return 7;
        }
        
        var indt = new Date(dt);
        var outdt = new Date(dtout);
        var maxdt = new Date(indt.getTime() + 1000*60*60*24*60);
        
        if (outdt < indt || outdt > maxdt)
        {
            return 9;
        }
        else
        {
            return 6;
        }
        
        return 0;

    }

    return 0;
}



// All clicks that affect the calendar call this function
function CalendarOracle(c, u, xid, dtin, dtout, source)
{
  
   var step = CalStateLogic(dtin, dtout, u, source);
 
    calPostAction = new Function();
  
    if (step == 1)
    {
        //load cal, don't highlight check-in date, reset summary data:
        
        seldate = null;
        goutdate = null;

        UpdateSummary(u, "", "", xid);
        
	    var refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dtin + '&sstart=';
	    RefreshControl(u + '-calholder', 'StayCalendar', xid, refreshstring, u);
        
    }
    else if (step == 2)
    {
   
        var cal = document.getElementById(u + "-calholder");
        
        UpdateCache(cal.innerHTML, "StayCalendar", u);
        
        UpdateSummary(u, dtin, "", xid);
        
        seldate = dtin;
        goutdate = null;
        
        // highlight selected date:
        var cell = document.getElementById(u + "-" + dtin);
        
        if (cell != null)
        {
            cell.className += " selected-start";
        }
        // update the rest of the calendar:
        var cal = GetCellsByClass(u, "");
        
        for (var a = 0; a < cal.length; a++)
        {
            if (cal[a].id.indexOf(u) > -1)
            {
                var celldt = new Date(cal[a].id.split("-")[1]);
                var checkdt = new Date(dtin);
                
                if (celldt < checkdt)
                {   
                    cal[a].className += " not-before";
                }
                if (celldt > checkdt)
                {   
                    cal[a].className += " not-after";
                }
                
            }
        }
        
    }
    else if (step == 3)
    {
        
        seldate = dtin;
        goutdate = dtout;

        var dt1 = new Date(dtin);
        var dt2 = new Date(dtout);
        
        var cal = document.getElementById(u + "-calholder");
        
        UpdateCache(cal.innerHTML, "StayCalendar", u);

        if (dt2 < dt1)
        {
            goutdate = null;
            UpdateSummary(u, dtin, "", xid);
        }
        else
        {
            UpdateSummary(u, dtin, dtout, xid);
           
            SetTabLinks(dtin, xid, c, dtout);

            var daysselected = (dt2 - dt1) / (60 * 60 * 24 * 1000);
            for (var d = 0; d <= daysselected; d++)
            {
                var dnow = new Date(dt1.getTime() + (d * 60 * 60 * 24 * 1000));
                var dnowstring = formatDate2(dnow, "MM/DD/YYYY");
                
                var dcell = document.getElementById(u + "-" + dnowstring);
                
                if (d == 0)
                {
                    dcell.className += " selected-start";
                }
                else if (d == daysselected)
                {
                    dcell.className += " selected-end";
                }
                else
                {
                    dcell.className += " selected";
                }

            }
            
        }
    }
    else if (step == 4)
    {
    
        seldate = null;
        goutdate = null;

        UpdateSummary(u, "", "", xid);
        
	    var refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dtin + '&sstart=';
	    RefreshControl(u + '-calholder', 'StayCalendar', xid, refreshstring, u);
	    
    }
    else if (step == 5)
    {
    
        UpdateSummary(u, dtin, "", xid);
        //set seldate, goutdate:
        seldate = dtin;
        goutdate = null;
        
 	    calPostAction = function CalPost(id, xid, refreshstring, u)
	    { 
	    
	        SetTabLinks(seldate, xid, "", "")
            
            // highlight selected date:
            var cell = document.getElementById(u + "-" + seldate);
            
            if (cell != null)
            {
                cell.className += " selected-start";
            }
            // update the rest of the calendar:
            var cal = GetCellsByClass(u, "");
            
            for (var a = 0; a < cal.length; a++)
            {
                if (cal[a].id.indexOf(u) > -1)
                {
                    var celldt = new Date(cal[a].id.split("-")[1]);
                    var checkdt = new Date(seldate);
                    
                    if (celldt < checkdt)
                    {   
                        cal[a].className += " not-before";
                    }
                    else if (celldt > checkdt)
                    {
                        cal[a].className += " not-after";
                    }
                    
                }
            }
	    } 
        
	    var refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dtin + '&sstart=';
	    RefreshControl(u + '-calholder', 'StayCalendar', xid, refreshstring, u);
	    
    }
    else if (step == 6)
    {
    
        //set seldate, goutdate:
        seldate = dtin;
        goutdate = dtout;
        
	    calPostAction = function CalPost(id, xid, refreshstring, u)
	    {
            var dt1 = new Date(seldate);
            var dt2 = new Date(goutdate);

            if (dt2 < dt1)
            {
                UpdateSummary(u, seldate, "", xid);
                goutdate = null;
            }
            else
            {
                UpdateSummary(u, seldate, goutdate, xid);
                SetTabLinks(seldate, xid, c, goutdate)

                var daysselected = (dt2 - dt1) / (60 * 60 * 24 * 1000);
                for (var d = 0; d <= daysselected; d++)
                {
                    var dnow = new Date(dt1.getTime() + (d * 60 * 60 * 24 * 1000));
                    var dnowstring = formatDate2(dnow, "MM/DD/YYYY");
                    
                    var dcell = document.getElementById(u + "-" + dnowstring);
                    
                    if (dcell != null)
                    {
                        if (d == 0)
                        {
                            dcell.className += " selected-start";
                        }
                        else if (d == daysselected)
                        {
                            dcell.className += " selected-end";
                        }
                        else
                        {
                            dcell.className += " selected";
                        }
                    }

                }
                
            }
	    }
	    
	    var refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dtin + '&sstart=';
	    RefreshControl(u + '-calholder', 'StayCalendar', xid, refreshstring, u);
	    
    
    }
    else if (step == 7)
    {
    
        var cell = document.getElementById(u + "-" + dtin);
        
        if (cell != null)
        {
            if (cell.className.indexOf("no-check-in") == -1)
            {
                //clear calendar:
                ClearCalendar(u);
                
                //we've changed the calendar html, so re-select the cell:
                cell = document.getElementById(u + "-" + dtin);
                //cell clicked, one day highlighted:
                UpdateSummary(u, dtin, "", xid);
                
                //set seldate, goutdate:
                seldate = dtin;
                goutdate = null;
                
                SetTabLinks(dtin, xid, c, "")
                
                // highlight selected date:
                
                
                if (cell != null)
                {
                    cell.className += " selected-start";
                }
                // update the rest of the calendar:
                var cal = GetCellsByClass(u, "");
                
                for (var a = 0; a < cal.length; a++)
                {
                    if (cal[a].id.indexOf(u) > -1)
                    {
                        var celldt = new Date(cal[a].id.split("-")[1]);
                        var checkdt = new Date(dtin);
                        
                        if (celldt < checkdt)
                        {   
                            cal[a].className += " not-before";
                        }
                        else if (celldt > checkdt)
                        {
                            cal[a].className += " not-after";
                        }
                        
                    }
                }
            }
        }
        else
        {
         
         UpdateSummary(u, dtin, "", xid);
            //set seldate, goutdate:
            seldate = dtin;
            goutdate = null;
            
 	        calPostAction = function CalPost(id, xid, refreshstring, u)
	        { 
    	    
	            SetTabLinks(seldate, xid, "", "")
                
                // highlight selected date:
                var cell = document.getElementById(u + "-" + seldate);
                
                if (cell != null)
                {
                    cell.className += " selected-start";
                }
                // update the rest of the calendar:
                var cal = GetCellsByClass(u, "");
                
                for (var a = 0; a < cal.length; a++)
                {
                    if (cal[a].id.indexOf(u) > -1)
                    {
                        var celldt = new Date(cal[a].id.split("-")[1]);
                        var checkdt = new Date(seldate);
                        
                        if (celldt < checkdt)
                        {   
                            cal[a].className += " not-before";
                        }
                        else if (celldt > checkdt)
                        {
                            cal[a].className += " not-after";
                        }
                        
                    }
                }
	        } 
            
	        var refreshstring = '&c=' + c + '&u=' + u + '&cin=' + dtin + '&sstart=';
	        RefreshControl(u + '-calholder', 'StayCalendar', xid, refreshstring, u);
        }

    }
    else if (step == 8)
    {

        goutdate = dtin;
        
        var cell = document.getElementById(u + "-" + dtin);
        var cell2 = document.getElementById(u + "-" + seldate);

        var dt1 = new Date(seldate);
        var dt2 = new Date(dtin);

        if (dt2 <= dt1)
        {
            goutdate = null;
        }
        else
        {
            CtrlLoading2 = u + "-loading2";
            SetElementClass(CtrlLoading2, "loading-price");

            var notCells = GetCellsByClass(u, "not");
            
            RemoveCellsClass(notCells, "not");
            
            UpdateSummary(u, seldate, dtin, xid);
        
            SetTabLinks(seldate, xid, c, dtin) 
        }
    }
    else if (step == 9)
    {
        UpdateSummary(u, dtin, "", xid);
    }
}

//function PopUpCalUpdate(c, u, xid, dtin, dtout)
//{

//    var din = null;
//    var dout = null;
//    
//    if (dtin != null && dtin != "MM/DD/YYYY")
//    {
//        din = new Date(dtin);
//    }
//    
//    if (dtout != null && dtout != "MM/DD/YYYY")
//    {
//        dout = new Date(dtout);
//    }
// 
//    var selectedCells = GetCellsByClass(u, "selected-");
//    
//    if (dout == null)
//    {
//        seldate = dtin;
//        
//        RemoveCellsClass(selectedCells, "selected-day");
//        
//        SetTabLinks(dtin, xid, c, '');
//        
//        var cell = document.getElementById(u + "-" + dtin);
//        cell.childNodes[0].className += " selected-day";
//    }
//    else
//    {
//        //if din > dout, do nothing and reset check-out to MM/DD/YYYY
//        
//        if (din > dout)
//        {
//            var outdatebox = document.getElementById("chkoutdt-" + u);
//            
//            outdatebox.value = "MM/DD/YYYY";
//        }
//        else
//        {
//            seldate = dtin;
//            
//            RemoveCellsClass(selectedCells, "selected-day");
//        
//            //set dates on tabs
//            SetTabLinks(dtin, xid, c, dtout);
//            
//            //highlight the selected stay, get stay info via AJAX
//            var daysselected = (dout - din) / (60 * 60 * 24 * 1000);
//            
//            for (var d = 0; d <= daysselected; d++)
//            {
//                var dnow = new Date(din.getTime() + (d * 60 * 60 * 24 * 1000));
//                var dnowstring = formatDate2(dnow, "MM/DD/YYYY");
//                
//                var dcell = document.getElementById(u + "-" + dnowstring);
//                
//                dcell.childNodes[0].className += " selected-day";
//            }
//            
//            var refreshstring = queryStPair("c") + "&u=" + u + '&cin=' + dtin + '&cout=' + dtout;
//            refreshstring = refreshstring + queryStPair("destination") + queryStPair("sstart") + queryStPair("tin") + queryStPair("tout");
//            refreshstring = refreshstring + queryStPair("flex") + queryStPair("wk") + queryStPair("d1") + queryStPair("d2") + queryStPair("chin");
//            refreshstring = refreshstring + queryStPair("chout") + queryStPair("fx1") + queryStPair("fx2");
//            
//            RefreshControl("staysummary-" + u, 'StaySummary', xid, refreshstring, u);
//        }
//    
//    }
    
//}


//function GetStaysForDate(dt, xid, u, dtout, c) {

//// Get current state of calendar -- are any days selected?
//    //CalStateLogic(dt, u);

//    var parent = document.getElementById("summary-" + u).getElementsByTagName("*");
//    var deals = getElementsByClassName("deal-info");
//    
//    if (deals.length == 0)
//    {
//        deals = getElementsByClassName("no-inventory");
//    }
//    
//    var indt = document.getElementById("chkindt-" + u);
//    var outdt = document.getElementById("chkoutdt-" + u);
//    
//    for (var a = 0; a < parent.length; a++)
//    {
//        if (parent[a].id == "BookLink")
//        {
//            parent[a].outerHTML = "<A id='BookLink'>Review and Book</A>";
//        }
//    }
//    
//    for (var b = 0; b < deals.length; b++)
//    {
//        var t = deals[b];
//        
//        deals[b].attributes["class"].value = "no-inventory";
//        deals[b].innerText = "";
//    }


//    var selectedCells = GetCellsByClass(u, "selected-day");
//    
//    
//    if (selectedCells.length == 0)
//    {
//        indt.value = dt;
//        seldate = dt;
//        outdt.value = "MM/DD/YYYY";
//        
//        if (dt == null)
//        {
//            indt.value = "MM/DD/YYYY";
//        }
//        
//        SetTabLinks(dt, xid, c, '');
//        
//        if (dtout != null && dt != null)
//        {
//            
//            var dt1 = new Date(dt);
//            var dt2 = new Date(dtout);
//            
//            if (dt2 > dt1)
//            {
//                outdt.value = dtout;
//                
//                SetTabLinks(dt, xid, c, dtout);
//                
//                var daysselected = (dt2 - dt1) / (60 * 60 * 24 * 1000);
//                for (var d = 1; d <= daysselected; d++)
//                {
//                    var dnow = new Date(dt1.getTime() + (d * 60 * 60 * 24 * 1000));
//                    var dnowstring = formatDate2(dnow, "MM/DD/YYYY");
//                    
//                    var dcell = document.getElementById(u + "-" + dnowstring);
//                    
//                    dcell.childNodes[0].className += " selected-day";
//                }
//                
//                
//                var refreshstring = queryStPair("c") + "&u=" + u + '&cin=' + formatDate2(dt1, "MM/DD/YYYY") + '&cout=' + formatDate2(dt2, "MM/DD/YYYY");
//                refreshstring = refreshstring + queryStPair("destination") + queryStPair("sstart") + queryStPair("tin") + queryStPair("tout");
//                refreshstring = refreshstring + queryStPair("flex") + queryStPair("wk") + queryStPair("d1") + queryStPair("d2") + queryStPair("chin");
//                refreshstring = refreshstring + queryStPair("chout") + queryStPair("fx1") + queryStPair("fx2");
//                
//                RefreshControl("staysummary-" + u, 'StaySummary', xid, refreshstring, u);
//            }
//        }
//        
//        if (dt != null)
//        {
//            var cell = document.getElementById(u + "-" + dt);
//            
//            if (cell != null)
//            {
//                cell.childNodes[0].className += " selected-day";
//            }
//        }
//    }
//    
//    if (selectedCells.length == 1)
//    {
//        var cell = document.getElementById(u + "-" + dt);
//        var cell2 = selectedCells[0];
//        
//        var dstring = cell2.id.substring(cell2.id.indexOf("-") + 1, cell2.id.length);

//        var dt1 = new Date(dstring);
//        var dt2 = new Date(dt);

//        if (dt2 < dt1)
//        {
//            //do nothing
//        }
//        else
//        {
//        
//            SetTabLinks(dstring, xid, c, dt)
//                
//            outdt.value = dt;
//            //cell.childNodes[0].className += " selected-day";

//            var daysselected = (dt2 - dt1) / (60 * 60 * 24 * 1000);
//            for (var d = 1; d <= daysselected; d++)
//            {
//                var dnow = new Date(dt1.getTime() + (d * 60 * 60 * 24 * 1000));
//                var dnowstring = formatDate2(dnow, "MM/DD/YYYY");
//                
//                var dcell = document.getElementById(u + "-" + dnowstring);
//                
//                dcell.childNodes[0].className += " selected-day";
//            }

//            var refreshstring = queryStPair("c") + "&u=" + u + '&cin=' + formatDate2(dt1, "MM/DD/YYYY") + '&cout=' + formatDate2(dt2, "MM/DD/YYYY");
//            refreshstring = refreshstring + queryStPair("destination") + queryStPair("sstart") + queryStPair("tin") + queryStPair("tout");
//            refreshstring = refreshstring + queryStPair("flex") + queryStPair("wk") + queryStPair("d1") + queryStPair("d2") + queryStPair("chin");
//            refreshstring = refreshstring + queryStPair("chout") + queryStPair("fx1") + queryStPair("fx2");
//            
//            RefreshControl("staysummary-" + u, 'StaySummary', xid, refreshstring, u);
//        }

//    }
//    
//    if (selectedCells.length > 1)
//    {
//        indt.value = dt;
//        outdt.value = "MM/DD/YYYY";
//        
//        var parent = document.getElementById("summary-" + u).getElementsByTagName("*");

//        //clear total price and stay nights
//        for (var a = 0; a < parent.length; a++)
//        {
//            if (parent[a].id == "TotalPrice")
//            {
//                parent[a].value = "";
//            }
//            
//            if (parent[a].id == "TotalStayLength")
//            {
//                parent[a].value = "";
//            }
//        }
//        
//        //ClearCalendar(u);
//        
//        SetTabLinks(dt, xid, c, '');
//        
//        RemoveCellsClass(selectedCells, "selected-day");

//        var cell = document.getElementById(u + "-" + dt);
//        cell.childNodes[0].className += " selected-day";
//    }
//}


function ClearCalendar(u) {
	if (pagecache.calendar == "") {
		SetCalendarCache(u);
	}

	var cal = document.getElementById(u + "-calholder");
	cal.innerHTML = pagecache.calendar;
	
//    var calheader = document.getElementById("sCal-" + u);
//    
//    if (calheader != null)
//    {
//        if (calheader.className == "options frame-highlighted" && cal.className.indexOf("dimed") == -1)
//        {
//            cal.className = cal.className + " dimed";
//        }
//    }

}

function ClearStays(u) {
	if (pagecache.stayselector == "") {
		SetStayCache(u);
	}
	
	var stays = document.getElementById(u + "-selectorholder");
	stays.innerHTML = pagecache.stayselector;

}

function SetCalendarCache(u) {
	var cal = document.getElementById(u + "-calholder");
	pagecache.calendar = cal.innerHTML;
}

function SetStayCache(u){
    var sty = document.getElementById(u + "-selectorholder");
    pagecache.stayselector = sty.innerHTML;
}

function AfterLoadStays()
{

}

function getNextMonth(date) {

    //convert input day to new date:
	var D = new Date(date);
	
	D.setDate(1);
	
	D.setMonth(D.getMonth() + 1);
	
	return formatDate2(D, "MM/DD/YYYY");
}

function getPrevMonth(date) {
    //convert input day to new date:
	var D = new Date(date);
	
	D.setDate(1);
	
	D.setMonth(D.getMonth() - 1);
	
	return formatDate2(D, "MM/DD/YYYY");
}

function updating(ctlname) {
//	var ctrlUpdating = document.getElementById(ctlname);

//	if (ctrlUpdating != null) {
//		ctrlUpdating.innerHTML = "<strong><span><b>Finding best rates...</b><div> &nbsp; </div></span></strong>";
//	}
}

function clearitem(ctlname) {
	var ctrlclear = document.getElementById(ctlname);
	if (ctrlclear != null) {
		ctrlclear.innerHTML = "";
	}
}

function cleartotals(u) {

    if (document.getElementById("form" + u) != null)
    {
        var finalcheckin = document.getElementById("form"+u)["FinalCheckinDate"];
	    var finalcheckout = document.getElementById("form"+u)["FinalCheckoutDate"];
	    var totalstay = document.getElementById("form"+u)["TotalStayLength"];
	    //var finalpromotion = document.getElementById("form"+u)["FinalPromotion"];
	    var finalprice = document.getElementById("form"+u)["FinalPrice"];
    	
	    var ElemCheckIn = document.getElementById("ElemCheckIn" + u);
	    var ElemCheckOut = document.getElementById("ElemCheckOut" + u);
	    var ElemStay = document.getElementById("ElemStay" + u);
	    var ElemPrice = document.getElementById("ElemPrice" + u);
	    var bookbutton = document.getElementById("form"+u)["bookbutton"];

	    finalcheckin.value = "";
	    finalcheckout.value = "";
	    totalstay.value = "";
	    //finalpromotion.innerText = "";
	    finalprice.value = "";
    	
	    ElemCheckIn.attributes["class"].value = "";
	    ElemCheckOut.attributes["class"].value = "";
	    ElemStay.attributes["class"].value = "";
	    ElemPrice.attributes["class"].value = "";
    	
	    bookbutton.attributes["class"].value = "button";
	    bookbutton.disabled = true;
    	
	    var sPrice = document.getElementById("sPrice-" + u);
    	
	    if (sPrice != null)
        {
            sPrice.className = "options frame-next";
        }
        
        
        var priceholder = document.getElementById(u + '-priceholder');
    	
	    if (priceholder != null)
	    {
	        priceholder.className = "price";
	    }
    }

}

function HighLightTotal(u) {

	var ElemCheckIn = document.getElementById("ElemCheckIn"+u);
	var ElemCheckOut = document.getElementById("ElemCheckOut"+u);
	var ElemStay = document.getElementById("ElemStay"+u);
	var ElemPrice = document.getElementById("ElemPrice"+u);
	
	ElemCheckIn.attributes["class"].value = "active";
	ElemCheckOut.attributes["class"].value = "active";
	ElemStay.attributes["class"].value = "active";
	ElemPrice.attributes["class"].value = "active";

    UnhighlightStaySelector(u);
}

function UnhighlightStaySelector(u)
{
	var stayholder = document.getElementById('part-' + u);
	
	if (stayholder != null)
	{
	    stayholder.className = "part";
	}
	
	var sLOS = document.getElementById("sLOS-" + u);
	
    if (sLOS != null)
    {
        sLOS.className = "options frame-next";
    }
}

function HighLightCalendar(u)
{
    var cal = document.getElementById(u + "-calholder");
    if (cal != null)
    {
        cal.className = "calendar highlighted";
    }
    
    var sCal = document.getElementById("sCal-" + u);
    
    if (sCal != null)
    {
        sCal.className = "options frame-highlighted";
    }

}

function UnhighlightCalendar(u)
{
    var cal = document.getElementById(u + "-calholder");
    if (cal != null)
    {
        cal.className = "calendar dimed";
    }
    
    var sCal = document.getElementById("sCal-" + u);
    if (sCal != null)
    {
        sCal.className = "options frame-next";
    }
}

function initScrollPane(u) {
	// vslide -- #part-test is the important thing to name properly...
	$('#part-' + u).galleryScrollV({
		btUp: 'a.up',
		btDown: 'a.down',
		holderList: 'div.list-hold',
		scrollElParent: 'ul.list-1',
		scrollEl: 'li',
		liHeight: 49
	});

}


//Register and Login support code:
function OpenSignIn()
{
    //close other toolbar items:
    CloseRegister();
    CloseHelp();
    
    var signindiv = document.getElementById("logindialog");
    signindiv.style.visibility = "visible";   
    signindiv.style.position = "absolute";
    signindiv.style.top = 61 + "px";
    signindiv.style.left = 287 + "px";
    signindiv.style.zIndex = 4;
    signindiv.style.background = "White";
    signindiv.style.border = "1px solid #000";
}


//function CloseSignIn()
//{
//    var signindiv = document.getElementById("logindialog");
//    signindiv.style.visibility = "hidden";   
//    signindiv.style.position = "relative";
//    signindiv.style.zIndex = 0;
//    signindiv.style.background = "";
//    signindiv.style.border = "";
//}


function OpenRegister()
{
    //close other toolbar items:
    CloseSignIn();
    CloseHelp();
    
    var registerdiv = document.getElementById("register");
    registerdiv.style.visibility = "visible";
    registerdiv.style.position = "absolute";
    registerdiv.style.top = 61 + "px";
    registerdiv.style.left = 401 + "px";
    registerdiv.style.zIndex = 4;
    registerdiv.style.background = "White";
    registerdiv.style.border = "1px solid #000";
}


function CloseRegister()
{
    var registerdiv = document.getElementById("register");
    registerdiv.style.visibility = "hidden";
    registerdiv.style.position = "relative";
    registerdiv.style.zIndex = 0;
    registerdiv.style.background = "";
    registerdiv.style.border = "";
}

function OpenHelp()
{    
    var helpdiv = document.getElementById("helpme");
    helpdiv.style.visibility = "visible";
    helpdiv.style.position = "absolute";
    helpdiv.style.top = 67 + "px";
    helpdiv.style.left = 700 + "px";
    helpdiv.style.zIndex = 40;

}

function CloseHelp()
{
    var helpdiv = document.getElementById("helpme");
    helpdiv.style.visibility = "hidden";
    helpdiv.style.position = "relative";
    helpdiv.style.zIndex = 0;

}


function OpenFeeInfo(loc)
{
    var tp;
    var rt;
    
    if (loc == "right")
    {
        tp = 435;
        rt = 1;
    }
    
    if (loc == "left")
    {
        tp = 330;
        rt = 613;
    }
    var feeinfodiv = document.getElementById("FeeDiv");
    feeinfodiv.style.visibility = "visible";
    feeinfodiv.style.position = "absolute";
    feeinfodiv.style.top = tp + "px";
    feeinfodiv.style.right = rt + "px";
    feeinfodiv.style.zIndex = 4;
    feeinfodiv.style.background = "White";
    feeinfodiv.style.border = "1px solid #000";
}

function CloseFeeInfo()
{
    var feeinfodiv = document.getElementById("FeeDiv");
    feeinfodiv.style.visibility = "hidden";
    feeinfodiv.style.zIndex = 0;
    feeinfodiv.style.background = "";
    feeinfodiv.style.border = "";
}

//function ProcessSignIn()
//{
//    
//    var uname=document.getElementById('username').value;
//    var pwd=document.getElementById('password1').value; 
//    var postData = "u="+uname+"&p="+pwd;
//    var url = SwitchURL + "Ajax/Login_Process.aspx"
//    
////	var browsestring = 'ajax/refresh.aspx?ctrl=' + id + '&xid=' + xid + attributes;
//	var xmlhttp = new XMLHttpRequest();
//	xmlhttp.open("POST", url, true);
//	var newcontent = "";

//	xmlhttp.onreadystatechange = function() 
//	{
//		if (xmlhttp.readyState == 4) 
//		{
//			if (xmlhttp.status == 200) 
//			{
//				var loginResult=eval( "(" + xmlhttp.responseText + ")" );
//				LoadUser(loginResult);
//				CloseSignIn();
////				UpdateCache(newcontent, id, uniqueid);
//			}
//			else {
//				newcontent = "";
//				CloseSignIn();
//			}
//		}
//	}

//	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//    xmlhttp.setRequestHeader("Content-length", postData.length);
//    xmlhttp.setRequestHeader("Connection", "close");
//	xmlhttp.send(postData);
//}


//function ProcessSignOut()
//{
//    
//    var postData = "l=logout";
//    var url = SwitchURL + "Ajax/Login_Process.aspx"
//    
////	var browsestring = 'ajax/refresh.aspx?ctrl=' + id + '&xid=' + xid + attributes;
//	var xmlhttp = new XMLHttpRequest();
//	xmlhttp.open("POST", url, true);
//	var newcontent = "";

//	xmlhttp.onreadystatechange = function() 
//	{
//		if (xmlhttp.readyState == 4) 
//		{
//			if (xmlhttp.status == 200) 
//			{
//				//var loginResult=eval( "(" + xmlhttp.responseText + ")" );
//				UnloadUser();
//				CloseSignIn();
////				UpdateCache(newcontent, id, uniqueid);
//			}
//			else {
//				newcontent = "";
//				CloseSignIn();
//			}
//		}
//	}

//	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//    xmlhttp.setRequestHeader("Content-length", postData.length);
//    xmlhttp.setRequestHeader("Connection", "close");
//	xmlhttp.send(postData);

//}


//function ProcessRegister()
//{
//    var uname=document.getElementById('fnr').value;
//    var lname=document.getElementById('lnr').value;
//    var email=document.getElementById('emr').value;
//    var pwd=document.getElementById('rpassword').value; 
//    var postData = "fn="+uname+"&ln="+lname+"&em="+email+"&pwd="+pwd+"&t=c";
//    var url = SwitchURL + "Ajax/Account_Process.aspx"
//    
////	var browsestring = 'ajax/refresh.aspx?ctrl=' + id + '&xid=' + xid + attributes;
//	var xmlhttp = new XMLHttpRequest();
//	xmlhttp.open("POST", url, true);
//	var newcontent = "";

//	xmlhttp.onreadystatechange = function() 
//	{
//		if (xmlhttp.readyState == 4) 
//		{
//			if (xmlhttp.status == 200) 
//			{
//				var loginResult=eval( "(" + xmlhttp.responseText + ")" );
//				LoadUser(loginResult);
//				CloseRegister();
////				UpdateCache(newcontent, id, uniqueid);
//			}
//			else {
//				newcontent = "";
//				CloseRegister();
//			}
//		}
//	}

//	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//    xmlhttp.setRequestHeader("Content-length", postData.length);
//    xmlhttp.setRequestHeader("Connection", "close");
//	xmlhttp.send(postData);
//}


function LoadUser(userobj)
{
    //load user details to use on book.aspx page and elsewhere:
    var signinout = document.getElementById("loginGradient");
    
    signinout.innerHTML = "<strong class=\"headerfonts\">Welcome, " + userobj.customer.firstName + " " + userobj.customer.lastName + "</strong>";
    signinout.innerHTML = signinout.innerHTML + "<div><input type=\"submit\" onclick=\"javascript:ProcessSignOut()\" value=\"Log Out\" class=\"headerfonts\"/></div>";
    signinout.innerHTML = signinout.innerHTML + "<div style=\"float:right;font-size:11px\"><a href=\"javascript:CloseSignIn()\" class=\"headerfonts\">Close</a></div>";
    
    var register = document.getElementById("registerGradient");
    

    //<div>Email Address:</div>
    //<div><input type="text" name="emr"  id="emr" maxlength="80"/></div>
    register.innerHTML = "<div style=\"padding:10px 10px 10px 10px;\">";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">First Name:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"text\" name=\"fnr\" id=\"fnr\" maxlength=\"25\" value='" + userobj.customer.firstName + "' class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">Last Name:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"text\" name=\"lnr\"  id=\"lnr\" maxlength=\"40\" value='" + userobj.customer.lastName + "' class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">Email Address:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"text\" name=\"emr\"  id=\"emr\" maxlength=\"80\" value='" + userobj.customer.email + "' class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div style=\"float:right;font-size:11px\"><a href=\"javascript:CloseRegister()\" class=\"headerfonts\">Close</a></div>";
    register.innerHTML = register.innerHTML + "</div>";
}

function UnloadUser()
{
    var signinout = document.getElementById("loginGradient");
    var register = document.getElementById("registerGradient");
    
    signinout.innerHTML = "<span style='text-align:left;'> <strong  class=\"headerfonts\">Sign in to personalize your experience:</strong></span>";
    signinout.innerHTML = signinout.innerHTML + "<div style=\"padding:10px 10px 10px 10px;\" id=\"SignInOut\">";
    signinout.innerHTML = signinout.innerHTML + "<div class=\"headerfonts\">Email Address:</div>";
    signinout.innerHTML = signinout.innerHTML + "<div><input type=\"text\"  name=\"username\" id=\"username\" maxlength=\"80\" class=\"headerfonts\"/></div>"; 
    signinout.innerHTML = signinout.innerHTML + "<div class=\"headerfonts\">Password:</div>";
    signinout.innerHTML = signinout.innerHTML + "<div><input type=\"password\" id=\"password1\" name=\"password\" maxlength=\"64\" class=\"headerfonts\"/></div>";
    signinout.innerHTML = signinout.innerHTML + "<div><input type=\"checkbox\" name=\"rememberme\" id=\"rememberme\" value=\"ON\" class=\"headerfonts\"/>Remember Me.</div>";
    signinout.innerHTML = signinout.innerHTML + "<div><input type=\"submit\" onclick=\"javascript:ProcessSignIn()\" value=\"Log In\" class=\"headerfonts\"/></div>";
    signinout.innerHTML = signinout.innerHTML + "<div style=\"float:right;font-size:11px\"><a href=\"javascript:CloseSignIn()\" class=\"headerfonts\">Close</a></div>";
    signinout.innerHTML = signinout.innerHTML + "</div>";
    
    
    register.innerHTML = "<span style=\"text-align:left;\">";
    register.innerHTML = register.innerHTML + "<strong  class=\"headerfonts\">Register to personalize your experience:</strong></span>";
    register.innerHTML = register.innerHTML + "<div style=\"padding:10px 10px 10px 10px;\">";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">First Name:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"text\" name=\"fnr\" id=\"fnr\" maxlength=\"25\" class=\"headerfonts\"/></div>"; 
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">Last Name:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"text\" name=\"lnr\" id=\"lnr\" maxlength=\"40\" class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">Email Address:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"text\" name=\"emr\" id=\"emr\" maxlength=\"80\" class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">Confirm Email:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"text\" name=\"cemr\" id=\"cemr\" maxlength=\"80\" class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">Password:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"password\" name=\"password\"  id=\"rpassword\" maxlength=\"64\" class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div class=\"headerfonts\">Confirm Password:</div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"password\" name=\"cpassword\"  id=\"cpassword\" maxlength=\"64\" class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div><input type=\"submit\" onclick=\"javascript:ProcessRegister()\" value=\"Register\" class=\"headerfonts\"/></div>";
    register.innerHTML = register.innerHTML + "<div style=\"float:right;font-size:11px\"><a href=\"javascript:CloseRegister()\" class=\"headerfonts\">Close</a></div>";
    register.innerHTML = register.innerHTML + "</div>";
}


//Client-side Validation:
var ValidateForm = {
	validate: function(id) {
		var formFlag = false;
		formFlag = ValidateForm.isEmpty(id);
		return formFlag;
	},

	isEmpty: function(id) {
		var tempElement = document.getElementById(id).value;
		if (tempElement.length == 0) {
			switch (id) {
			case "destination":
				var msg = "<font size=2pt> <strong>Please enter a destination.</strong></font><br /><font size=1pt>ex: Hawaii; Aspen CO; Amalfi coast, Italy</font>";
				ErrorControl.renderErrorWindow(msg);
				return false;
				break;

			case "fn":
				var msg = "<font size=2pt> <strong>You did not enter your first name.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "pfn":
				var msg = "<font size=2pt> <strong>You did not enter your first name.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "ln":
				var msg = "<font size=2pt> <strong>You did not enter your last name.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "pln":
				var msg = "<font size=2pt> <strong>You did not enter your last name.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "em":
				var msg = "<font size=2pt> <strong>You did not enter your email.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "cem":
				var msg = "<font size=2pt> <strong>You did not confirm your email.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;

			case "password":
				var msg = "<font size=2pt> <strong>You did not enter your password.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "password1":
				var msg = "<font size=2pt> <strong>You did not enter your password.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "username":
				var msg = "<font size=2pt> <strong>You did not enter your username.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;

			case "cpassword":
				var msg = "<font size=2pt> <strong>You did not confirm your password.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "add1":
				var msg = "<font size=2pt> <strong>Address is required.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "city":
				var msg = "<font size=2pt> <strong>City is required.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "state":
				var msg = "<font size=2pt> <strong>State is required.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "zip":
				var msg = "<font size=2pt> <strong>Zipcode is required.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			case "country":
				var msg = "<font size=2pt> <strong>Country is required.</strong></font>";
				ErrorControl.renderErrorWindow(msg);
				return true;
				break;
			} //END Switch
		}

	},
	isChecked: function(chk) {
		if (document.getElementById(chk).checked) return true;
		else {
			var msg = "Please agree to the terms and conditions.";
			window.alert(msg);
			return false;
		}
	},
	isStateCorrect: function(statefield, countryfield) {
	    if (document.getElementById(countryfield).value == "1" || document.getElementById(countryfield).value == "255")
	    {
	        if (document.getElementById(statefield).value != "none")
	        {
	            return true;
	        }
	        else
	        {
	            var msg = "State required for customers within the United States";
	            window.alert(msg);
	            return false;
	        }

	    }
	    else
	    {
	        return true;
	    }
	
	},
	isDateOk: function(month, year) {

		if (document.getElementById(month).value == "" || typeof(document.getElementById(month)) == "undefined" || document.getElementById(year).value == "" || typeof(document.getElementById(year)) == "undefined") {
			var msg = "Expiration date is required.";
			window.alert(msg);
			return false;

		}
		else {
			if (document.getElementById(month).value.length < 2 || document.getElementById(year).value.length < 4) {
				var msg = "Date should be in the mm/yyyy format, e.g.: 02/2011";
				window.alert(msg);
				return false;
			}
			else 
			{
			    var today = new Date();
			    var ldate = new Date();
			    var cdate = new Date();
			    
			    var lmonth = today.getMonth();
			    var lyear = today.getFullYear();
			    
			    var ldate = Date.parse("01/" + (lmonth + 1) + "/" + lyear);
			    var cdate = Date.parse("01/" + document.getElementById(month).value + "/" + document.getElementById(year).value)
                
                if (cdate < ldate)
                {
                    var msg = "Credit card expiration date has passed. Please reenter the date or try a different card.";
                    window.alert(msg);
                    return false
                }
			    else
			    {
			        return true;
			    }

			}
			return true;
		}

	},

	isGoodData: function(id, type, location) {
		var ret = false;
		var subject = document.getElementById(id).value;

		var expSearch = "^[0-9a-zA-Z'.,\\s\&]{1,75}$";
		var expName = "^[a-zA-Z'\\-\\s]{1,100}$";
		var expStreet = "^[0-9a-zA-Z'.,#\\-\\s]{1,100}$";
		var expEmail = "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$";
		var expCC = "^[0-9a-zA-Z]{1,16}$";
		var expPhone = "^[01]?[- .]?(\\([2-9]\\d{2}\\)|[2-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}$";
		var expZip = "^[0-9a-zA-Z.,#\\-\\s]{1,20}$";
		var expMonth = "^[0-9]{1,2}$";
		var expYear = "^[0-9]{1,4}$";
		var expFreeText = "^[0-9a-zA-Z'.,#\\-\\s]{1,1000}$";

		if (type == "Search") {
			var re = RegExp(expSearch);
			ret = re.test(subject);
		}
		else if (type == "Name") {
			var re = RegExp(expName);
			ret = re.test(subject);
		}
		else if (type == "Street") {
			var re = RegExp(expStreet);
			ret = re.test(subject);
		}
		else if (type == "Email") {
			var re = RegExp(expEmail);
			ret = re.test(subject);
		}
		else if (type == "CC") {
			var re = RegExp(expCC);
			ret = re.test(subject);
		}
		else if (type == "Phone") {
			var re = RegExp(expPhone);
			ret = re.test(subject);
		}
		else if (type == "Zip") {
			var re = RegExp(expZip);
			ret = re.test(subject);
		}
		else if (type == "Month") {
			var re = RegExp(expMonth);
			ret = re.test(subject);
		}
		else if (type == "Year") {
			var re = RegExp(expYear);
			ret = re.test(subject);
		}
		else if (type == "FreeText") {
			var re = RegExp(expFreeText);
			ret = re.test(subject);
		}
		else {
			ret = false;
		}

		if (ret == false) {
			var eStr = "You entered invalid data in the " + location + " field.";
			window.alert(eStr);
		}

		return ret;

	},
	
		isGoodStringData: function(type, subject, location) {
		var ret = false;

		var expSearch = "^[0-9a-zA-Z'.,\\s\&]{1,75}$";
		var expName = "^[a-zA-Z'\\-\\s]{1,100}$";
		var expStreet = "^[0-9a-zA-Z'.,#\\-\\s]{1,100}$";
		var expEmail = "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$";
		var expCC = "^[0-9a-zA-Z]{1,16}$";
		var expPhone = "^[01]?[- .]?(\\([2-9]\\d{2}\\)|[2-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}$";
		var expZip = "^[0-9a-zA-Z.,#\\-\\s]{1,20}$";
		var expMonth = "^[0-9]{1,2}$";
		var expYear = "^[0-9]{1,4}$";
		var expFreeText = "^[0-9a-zA-Z'.,#\\-\\s]{1,1000}$";

		if (type == "Search") {
			var re = RegExp(expSearch);
			ret = re.test(subject);
		}
		else if (type == "Name") {
			var re = RegExp(expName);
			ret = re.test(subject);
		}
		else if (type == "Street") {
			var re = RegExp(expStreet);
			ret = re.test(subject);
		}
		else if (type == "Email") {
			var re = RegExp(expEmail);
			ret = re.test(subject);
		}
		else if (type == "CC") {
			var re = RegExp(expCC);
			ret = re.test(subject);
		}
		else if (type == "Phone") {
			var re = RegExp(expPhone);
			ret = re.test(subject);
		}
		else if (type == "Zip") {
			var re = RegExp(expZip);
			ret = re.test(subject);
		}
		else if (type == "Month") {
			var re = RegExp(expMonth);
			ret = re.test(subject);
		}
		else if (type == "Year") {
			var re = RegExp(expYear);
			ret = re.test(subject);
		}
		else if (type == "FreeText") {
			var re = RegExp(expFreeText);
			ret = re.test(subject);
		}
		else {
			ret = false;
		}

		if (ret == false) {
			var eStr = "You entered invalid data in the " + location + " field.";
			window.alert(eStr);
		}

		return ret;

	},

	isLengthOk: function(id, l) {
		if (document.getElementById(id).value.length < l) {
			var msg = "A minimum of " + l + " characters are required.";

			window.alert(msg);
			return false;
		}
		else return true;
	},
	
	isStringLengthOk: function(str, l) {
		if (str.length < l) {
			var msg = "A minimum of " + l + " characters are required.";

			window.alert(msg);
			return false;
		}
		else return true;
	},
	
	showError: function(msg) {
        window.alert(msg);
	},

	trim: function(s) {
		return s.replace(/^\s+|\s+$/, '');
	},

	isEmailEqual: function(em, cem) {
		var compareFlag = false;
		if (document.getElementById(em).value != document.getElementById(cem).value) {
			var msg = "Your Email do not match. Please retype your Email.";
			window.alert(msg);
			compareFlag = false;
		}
		else compareFlag = true;
		return compareFlag;
	},

	isPasswordEqual: function(pwd, cpwd) {
		var compareFlag = false;
		if (document.getElementById(pwd).value != document.getElementById(cpwd).value) {
			var msg = "Your passwords do not match. Please retype your passwords.";
			window.alert(msg);
			compareFlag = false;
		}
		else compareFlag = true;
		return compareFlag;
	}

} //END VALIDATE FORM 

var ErrorControl = {
	renderErrorWindow: function(errMsg) {
		var err = document.getElementById("ErrorSlot");
		err.innerHTML = errMsg;
	}
}

function mouseX(evt) {
if (evt.pageX) return evt.pageX;
else if (evt.clientX)
   return evt.clientX + (document.documentElement.scrollLeft ?
   document.documentElement.scrollLeft :
   document.body.scrollLeft);
else return null;
}

function mouseY(evt) {
if (evt.pageY) return evt.pageY;
else if (evt.clientY)
   return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
else return null;
}


function OpenSearchOptions()
{
    //close other toolbar items:
	//CloseSignIn()
    //CloseRegister();
    //CloseHelp();
    
    var OpenSearchdiv = document.getElementById("moreOptions");
    OpenSearchdiv.style.visibility = "visible";  
	OpenSearchdiv.style.zIndex = 100;
	
	var hiddenmenu1 = document.getElementById("ModifyBedrooms");
	var hiddenmenu2 = document.getElementById("ModifyPrice");	
	//var hiddenmenu3 = document.getElementById("ModifyRating");
	
	
	
	if (hiddenmenu1 != null)
	{
        hiddenmenu1.style.visibility = "hidden";	
	}
	
	
	if (hiddenmenu2 != null)
	{
	    hiddenmenu2.style.visibility = "hidden";
	}

	//if (hiddenmenu3 != null)
	//{
    //    hiddenmenu3.style.visibility = "hidden";	
	//}
}


//Open and close Options

function flexableDays()
{
    
	document.flexForm.flex60.checked == true;

	if(document.flexForm.flex60.checked == true)
	{
  
	    document.exatForm.exact.checked = false;
    	
	    document.chooseDay.startDay.disabled = false;
	    document.chooseDay.daySelect.disabled = false;
      
        if (document.CheckInForm != null)
        {
	        document.CheckInForm.Checkin.disabled = true;
	        document.CheckInForm.flexable1.disabled = true;
        }

        if (document.CheckOutForm != null)
        {
            if (document.CheckOutForm.Checkout != null)
            {
	            document.CheckOutForm.Checkout.disabled = true;
            }

            if (document.CheckOutForm.flexable2 != null)
            {
	            document.CheckOutForm.flexable2.disabled = true;
            }
        }


		var form3 = document.getElementById("StartDays");
		var form1 = document.getElementById("CheckOutDate");
		var form2 = document.getElementById("CheckInDate");
	
		var showdiv1 = document.getElementById("ExaIn");
		var showdiv2= document.getElementById("ExaOut");
		var showdiv3 = document.getElementById("Flex60Days");
		
		var list1 = document.getElementById("staySelection");
		var list2 = document.getElementById("InDays");
		var list3 = document.getElementById("OutDays");
		
		var cal0 = document.getElementById("tcalico_0");
		var cal1 = document.getElementById("tcalico_1");
		var cal2 = document.getElementById("tcalico_2");
		
		cal0.onclick = function() {A_TCALS['0'].f_toggle();};
		cal1.onclick = function() {};
		cal2.onclick = function() {};
		
		form3.style.border = "1px solid #3399cc";
		form3.style.color = "#717171";
		form3.style.background = "#fff";
		form1.style.border = "1px solid #cacaca";
		form1.style.color = "#cacaca";
		form1.style.background = "#fff";
		form2.style.border = "1px solid #cacaca";
		form2.style.color = "#cacaca";
		form2.style.background = "#fff";
		
		showdiv1.style.color = "#cacaca";
		showdiv2.style.color = "#cacaca";
		showdiv3.style.color = "#575757";
		
		list1.style.border = "1px solid #3399cc";
		list1.style.color = "#717171";
		list1.style.background = "#fff";
		list2.style.border = "1px solid #cacaca";
		list2.style.color = "#cacaca";
		list2.style.background = "#fff";
		list3.style.border = "1px solid #cacaca";
		list3.style.color = "#cacaca";
		list3.style.background = "#fff";

	}
}


function exactlyDays()
{
	document.exatForm.exact.checked == true;

	if(document.exatForm.exact.checked == true)
	{
	    document.flexForm.flex60.checked = false;
    	
	    document.chooseDay.startDay.disabled = true;
	    document.chooseDay.daySelect.disabled = true;
    	
	    document.CheckInForm.Checkin.disabled = false;
	    document.CheckOutForm.Checkout.disabled = false;
	    document.CheckInForm.flexable1.disabled = false;
	    document.CheckOutForm.flexable2.disabled = false;
	
	
	//CloseCalendarStart();
	
	
		var form3 = document.getElementById("StartDays");
		var form1 = document.getElementById("CheckOutDate");
		var form2 = document.getElementById("CheckInDate");
		
		var showdiv1 = document.getElementById("ExaIn");
		var showdiv2= document.getElementById("ExaOut");
		var showdiv3 = document.getElementById("Flex60Days");
		
		var list1 = document.getElementById("staySelection");
		var list2 = document.getElementById("InDays");
		var list3 = document.getElementById("OutDays");
		
		var cal0 = document.getElementById("tcalico_0");
		var cal1 = document.getElementById("tcalico_1");
		var cal2 = document.getElementById("tcalico_2");
		
		cal0.onclick = function () {};
		cal1.onclick = function() {A_TCALS['1'].f_toggle();};
		cal2.onclick = function() {A_TCALS['2'].f_toggle();};
		
		form3.style.border = "1px solid #cacaca";
		form3.style.color = "#cacaca";
		form3.style.background = "#fff";
		form1.style.border = "1px solid #3399cc";
		form1.style.color = "#717171";
		form1.style.background = "#fff";
		form2.style.border = "1px solid #3399cc";
		form2.style.color = "#717171";
		form2.style.background = "#fff";
		
		showdiv1.style.color = "#575757";
		showdiv2.style.color = "#575757";
		showdiv3.style.color = "#cacaca";
		
		list1.style.border = "1px solid #cacaca";
		list1.style.color = "#cacaca";
		list1.style.background = "#fff";
		list2.style.border = "1px solid #3399cc";
		list2.style.color = "#717171";
		list2.style.background = "#fff";
		list3.style.border = "1px solid #3399cc";
		list3.style.color = "#717171";
		list3.style.background = "#fff";
		
	
		
		
	}
}

//document.CheckInForm.checkin.disabled = true;
//document.CheckOutForm.checkout.disabled = true;
//document.CheckInForm.flexable1.checked == false;
//document.CheckOutForm.flexable2.checked == false;

if (document.getElementById('ExaIn') != null)
{
    document.getElementById('ExaIn').style.width = 247 + "px";
}

if (document.getElementById('ExaOut') != null)
{
    document.getElementById('ExaOut').style.width = 247 + "px"
}


function clickCheckbox1(){
	if(document.CheckInForm.flexable1.checked == false){

	    document.getElementById('ExaIn').style.width = 247 + "px";
	    
	    var list1 = document.getElementById("InDays");
		list1.style.border = "1px solid #fff";
		list1.style.color = "#fff";
		list1.style.background = "#fff";

		document.CheckInForm.flexable1.checked == true;
	}

	if(document.CheckInForm.flexable1.checked == true){

		document.getElementById('ExaIn').style.width = 370 + "px";
		var list1 = document.getElementById("InDays");
		list1.style.border = "1px solid #3399cc";
		list1.style.color = "#717171";
		list1.style.background = "#fff";

		document.CheckInForm.flexable1.checked == false;
	}
}


function clickCheckbox2(){
	if(document.CheckOutForm.flexable2.checked == false){

		document.getElementById('ExaOut').style.width = 247 + "px";
		
		var list2 = document.getElementById("OutDays");
		list2.style.border = "1px solid #fff";
		list2.style.color = "#fff";
		list2.style.background = "#fff";
		
		document.CheckOutForm.flexable2.checked == true;
	}

	if(document.CheckOutForm.flexable2.checked == true){

		document.getElementById('ExaOut').style.width = 370 + "px";
		var list2 = document.getElementById("OutDays");
		list2.style.border = "1px solid #3399cc";
		list2.style.color = "#717171";
		list2.style.background = "#fff";
		
		document.CheckOutForm.flexable2.checked == false;
	}
}

function displayPopUp()
{
    try
    {
        if (ExitPopupURL == null || ExitPopupURL == "")
            return;
            
        if (!document.activeElement)
        {
            window.open("http://www.zoomerang.com/Survey/WEB22A5JLJ7CAK", "LeavePop", "width=800,height=600", "");
            window.focus();
        }
    }
    catch(er)
    {
    
    }

}

function displayHome(u)
{
    window.open("http://www.leisurelink.com/hpt/home_project/html/" + u + ".html", "HomePop", "width=1100,height=760", "");
}


//Open and close Calendars
//Open and close Calendars
//Open and close Calendars

function OpenCalendarStart()
{
    //close other toolbar items:
	//CloseSignIn()
    //CloseRegister();
    //CloseHelp();
	////CloseCalendarOut()
	////CloseCalendarIn()
    
    var OpenCalendardiv = document.getElementById("calendarStart");
    OpenCalendardiv.style.visibility = "visible";  
	OpenCalendardiv.style.zIndex = 20;	
}

function OpenCalendarIn()
{
    //close other toolbar items:
	//CloseSignIn()
    //CloseRegister();
    //CloseHelp();
	CloseCalendarOut();
    
    var OpenCalendardiv = document.getElementById("calendarIn");
    OpenCalendardiv.style.visibility = "visible";  
	OpenCalendardiv.style.zIndex = 20;	
}

function OpenCalendarOut()
{
    //close other toolbar items:
	//CloseSignIn()
    //CloseRegister();
    //CloseHelp();
	////CloseCalendarIn();
    
    var OpenCalendardiv = document.getElementById("calendarOut");
    OpenCalendardiv.style.visibility = "visible";  
	OpenCalendardiv.style.zIndex = 20;	
}




function CloseCalendarStart()
{
    var Calendardiv = document.getElementById("calendarStart");
    Calendardiv.style.visibility = "hidden";   
    Calendardiv.style.zIndex = 0;

}

function CloseCalendarIn()
{
    var Calendardiv = document.getElementById("calendarIn");
    Calendardiv.style.visibility = "hidden";   
    Calendardiv.style.zIndex = 0;

}

function CloseCalendarOut()
{
    var Calendardiv = document.getElementById("calendarOut");
    Calendardiv.style.visibility = "hidden";   
    Calendardiv.style.zIndex = 0;

}

//close Calendar by choosing date
function InDate()
{
	////CloseCalendarIn();
}

function OutDate()
{
	////CloseCalendarOut();
}

function StartDate()
{
	CloseCalendarStart();
}


//close search options

function CloseSearchOptions()
{
    var CloseSearchdiv = document.getElementById("moreOptions");
    CloseSearchdiv.style.visibility = "hidden";   
    CloseSearchdiv.style.zIndex = 0;
	
	var hiddenmenu1 = document.getElementById("ModifyBedrooms");
	var hiddenmenu2 = document.getElementById("ModifyPrice");	
	//var hiddenmenu3 = document.getElementById("ModifyRating");
	
	if (hiddenmenu1 != null)
	{
	    hiddenmenu1.style.visibility = "visible";
	}
	
	if (hiddenmenu2 != null)
	{
	    hiddenmenu2.style.visibility = "visible";
	}
	
	//if (hiddenmenu3 != null)
	//{
    //    hiddenmenu3.style.visibility = "visible";	
	//}
	
	f_tcalHideAll();
	storeSearchCriteria();
    AdjustAdvanceSearchStrip(); 
}

function storeSearchCriteria()
{
     var srchCriteria = document.getElementById("srchCriteria");
     var flexmonth = document.getElementById("flexMonth").checked;
     if (flexmonth == true)
     {
         var sday = document.getElementById("StartDays").value;
         var weeks  = document.getElementById("staySelection").value;
         if(weeks == 0){
            srchCriteria.innerHTML ="Search From <strong>" + sday + "</strong>";
         }
         else if (weeks == 1)
         {
            srchCriteria.innerHTML ="Search From <strong>" + sday + "</strong> over the next <strong>" + weeks + " week</strong>";
         }
         else
         {
            srchCriteria.innerHTML ="Search From <strong>" + sday + "</strong> over the next <strong>" + weeks + " weeks</strong>";
         }
     }
     else
     {
         var Chin = document.getElementById("CheckInDate").value;
         var Chout = document.getElementById("CheckOutDate").value;
         var days1  = document.getElementById("InDays").value;
         var days2  = document.getElementById("OutDays").value;

         var flex1 = document.getElementById("flexableDate").checked;
         var flex2 = document.getElementById("flexableDate2").checked;

         if (flex1)
         {
                Chin = Chin + "[&plusmn;" + days1 + "]";
         }
         if (flex2)
         {
                Chout = Chout + "[&plusmn;" + days2 + "]";
         }
         srchCriteria.innerHTML ="Search From <strong>" + Chin + "</strong> To <strong>" + Chout + "</strong>"; 
        
     }
     
}

function validateStartDayDate()
{
    var chooseDayForm = document.getElementById("chooseDayform");
    var DateToday = new Date();  
    var re_date = /^\s*(\d{1,2})\/(\d{1,2})\/(\d{2,4})\s*$/;
	if (!re_date.exec(chooseDayForm.StartDays.value)){
	    alert ("Invalid Start Day date: '" + chooseDayForm.StartDays.value + "'.\nAccepted format is mm/dd/yyyy.");
	    chooseDayForm.StartDays.value = formatDate2(DateToday,"MM/DD/YYYY");
		return ;
	}

}

function validateCheckInDate()
{
    var CheckInForm = document.getElementById("CheckInForm");
    var CheckOutForm = document.getElementById("CheckOutForm");
    var DateToday = new Date();  
    var re_date = /^\s*(\d{1,2})\/(\d{1,2})\/(\d{2,4})\s*$/;
	if (!re_date.exec(CheckInForm.CheckInDate.value)){
	    alert ("Invalid Check-In date: '" + CheckInForm.CheckInDate.value + "'.\nAccepted format is mm/dd/yyyy.");
	    CheckInForm.CheckInDate.value = formatDate2(DateToday,"MM/DD/YYYY");
		return ;
	}
	
	var DateCin = new Date(CheckInForm.CheckInDate.value);

    if( DateCin.valueOf() < DateToday.valueOf())
	{
	    alert("Check-In date cannot be before today.");
	    CheckInForm.CheckInDate.value = formatDate2(DateToday,"MM/DD/YYYY");
	}
	
	var NextYear = DateToday.getFullYear()+ 1  
	var MaxCDate = new Date( DateToday.getMonth()+1 + "/" +DateToday.getDate() + "/" + NextYear);

    if( DateCin.valueOf() > MaxCDate.valueOf())
	{
	    alert("Check-In date cannot be more than one year from today.");
	    CheckInForm.CheckInDate.value = formatDate2(DateToday,"MM/DD/YYYY");
	}
    
}


function validateCheckOutDate()
{
    var CheckInForm = document.getElementById("CheckInForm");
    var CheckOutForm = document.getElementById("CheckOutForm");
    
    var DateCout = new Date(CheckOutForm.CheckOutDate.value);
    var DateCin = new Date(CheckInForm.CheckInDate.value);
    
    var DateToday = new Date(); 
    var defaultCoutDate = new Date(DateCin.getTime() + 96*60*60*1000);
    var re_date = /^\s*(\d{1,2})\/(\d{1,2})\/(\d{2,4})\s*$/;
	if (!re_date.exec(CheckOutForm.CheckOutDate.value)){
	    alert ("Invalid Check-Out date: '" + CheckInForm.CheckInDate.value + "'.\nAccepted format is mm/dd/yyyy.");
	    CheckOutForm.CheckOutDate.value = formatDate2(defaultCoutDate,"MM/DD/YYYY");
		return ;
	}
    
	if( DateCout <= DateCin)
	{
	    alert("Check-Out date cannot be before Check-In date.");
	    CheckOutForm.CheckOutDate.value = formatDate2(defaultCoutDate,"MM/DD/YYYY");
	}
	
	var NextYear = DateToday.getFullYear()+ 1  
	var MaxCDate = new Date( DateToday.getMonth()+1 + "/" +DateToday.getDate() + "/" + NextYear);

    if( DateCout.valueOf() > MaxCDate.valueOf())
	{
	    alert("Check-Out date cannot be more than one year from today.");
	    CheckOutForm.CheckOutDate.value = formatDate2(defaultCoutDate,"MM/DD/YYYY");
	}
	
}

function formatDate2(dateValue, format)
{
    var fmt = format.toUpperCase();
    var re = /^(M|MM|D|DD|YYYY)([\-\/]{1})(M|MM|D|DD|YYYY)(\2)(M|MM|D|DD|YYYY)$/;
    if (!re.test(fmt)) { fmt = "MM/DD/YYYY"; }
    if (fmt.indexOf("M") == -1) { fmt = "MM/DD/YYYY"; }
    if (fmt.indexOf("D") == -1) { fmt = "MM/DD/YYYY"; }
    if (fmt.indexOf("YYYY") == -1) { fmt = "MM/DD/YYYY"; } 
    var M = "" + (dateValue.getMonth()+1);
    var MM = "0" + M;
    MM = MM.substring(MM.length-2, MM.length);
    var D = "" + (dateValue.getDate());
    var DD = "0" + D;
    DD = DD.substring(DD.length-2, DD.length);
    var YYYY = "" + (dateValue.getFullYear()); 
    var sep = "/";
    if (fmt.indexOf("-") != -1) { sep = "-"; }
    var pieces = fmt.split(sep);
    var result = ""; 

    switch (pieces[0]) 
    {
        case "M" : result += M + sep; break;
        case "MM" : result += MM + sep; break;
        case "D" : result += D + sep; break;
        case "DD" : result += DD + sep; break;
        case "YYYY" : result += YYYY + sep; break;
    }

    switch (pieces[1]) 
    {
        case "M" : result += M + sep; break;
        case "MM" : result += MM + sep; break;
        case "D" : result += D + sep; break;
        case "DD" : result += DD + sep; break;
        case "YYYY" : result += YYYY + sep; break;
    }  

    switch (pieces[2]) 
    {
        case "M" : result += M; break;
        case "MM" : result += MM; break;
        case "D" : result += D; break;
        case "DD" : result += DD; break;
        case "YYYY" : result += YYYY; break;
    }

    return result; 
}

function StayMouseOver(e, id)
{
    var selholder = document.getElementById(id + "-selectorholder");
    
    if (selholder == null) return;

    if (selholder.className.indexOf(" stay-dim") >= 0)
    {
        var midx = selholder.className.indexOf(" stay-dim");
        if (midx >=0)
        {
            selholder.className = selholder.className.substr(0, midx);
        }
    }
}

function StayMouseOut(e, id)
{
	if (!e) var e = window.event;
	//var tg = (window.event) ? e.srcElement : e.target;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	
	if (reltg == null) return;
	
	while (reltg.id.indexOf("part") == -1 && reltg.nodeName != 'BODY')
		reltg= reltg.parentNode;
	if (reltg.id.indexOf("part") >= 0) return;
    
    var selholder = document.getElementById(id + "-selectorholder");
    var priceholder = document.getElementById("sPrice-" + id);
    
    if (priceholder.className != "options frame-next")
    {
        if (selholder.className.indexOf(" stay-dim") == -1)
        {
            selholder.className = selholder.className + " stay-dim";
        }
    }

}

function CalendarMouseOver(e, cid)
{

    var calheader = document.getElementById("sCal-" + cid);
    
    if (calheader == null) return;

    if (calheader.className == "options frame-next")
    {
        var calholder = document.getElementById(cid + "-calholder");
        
        var midx = calholder.className.indexOf(" dimed");
        if (midx >=0)
        {
            calholder.className = calholder.className.substr(0, midx);
        }

    }
}


function CalendarMouseOut(e, id)
{
	if (!e) var e = window.event;
	
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	
	if (reltg == null) return;
	while (reltg.id.indexOf("calholder") == -1 && reltg.nodeName != 'BODY')
		reltg= reltg.parentNode;
	if (reltg.id.indexOf("calholder") >= 0) return;

    var calholder = document.getElementById(id + "-calholder");
    var calheader = document.getElementById("sCal-" + id);
    
    if (calheader == null) return;
    
    if (calheader.className == "options frame-next")
    {
       calholder.className = calholder.className + " dimed";
    }

}


function ShowHideStayDetails(sid)
{
    var stay = document.getElementById(sid);
    
    if (stay.className.indexOf("open") >= 0)
    {
        if (stay.className.indexOf("special") >=0)
        {
            stay.className = stay.className.replace("special-stay-open", "special-stay");
        }
        else
        {
            stay.className = stay.className.replace("stay-open", "stay");
        }
    }
    else
    {
        if (stay.className.indexOf("special-stay") >= 0)
        {
		    stay.className = stay.className.replace("special-stay", "special-stay-open");
        }
        else
        {
            stay.className = stay.className.replace("stay", "stay-open");
        }

    }

}

String.prototype.replaceAll = function( 
    strTarget, // The substring you want to replace
    strSubString // The string you want to replace in.
    ){
    var strText = this;
    var intIndexOfMatch = strText.indexOf( strTarget );
     

    // Keep looping while an instance of the target string
    // still exists in the string.
    while (intIndexOfMatch != -1){
    // Relace out the current instance.
    strText = strText.replace( strTarget, strSubString )
     

    // Get the index of any next matching substring.
    intIndexOfMatch = strText.indexOf( strTarget );
    }
     

    // Return the updated string with ALL the target strings
    // replaced out with the new substring.
    return( strText );
}


function SubmitReviewForm(c,xid)
{
    var error = false;
    if (starrating == "")
    {
        error = true;
        SetElementClass("starlabel", "require-star field-required");
    } 
    else
    {
        SetElementClass("starlabel", "require-star");
    }
        
    if (document.getElementById("rusername").value.length == 0)
    {
        error = true;
        SetElementClass("rusernamelabel", "field-required");
    }
    else
    {
        SetElementClass("rusernamelabel", "require-star");
    }
    
    if (document.getElementById("rtitle").value.length == 0)
    {
        error = true;
        SetElementClass("rtitlelabel", "field-required");
    }
    else
    {
        SetElementClass("rtitlelabel", "");
    }
    
    if (document.getElementById("rtext").value.length == 0)
    {
        error = true;
        SetElementClass("rtextlabel", "field-required");
    }
    else
    {
        SetElementClass("rtextlabel", "");
    }
     
    if (document.getElementById("remail").value.length == 0)
    {
        error = true;
        SetElementClass("remaillabel", "field-required");
    }
    else
    {
        SetElementClass("remaillabel", "");
    }

    if (document.getElementById("agree").checked  == false)
    {
        error = true;
        SetElementClass("agreelabel", "submit-comment field-required");
    }   
    else
    {
        SetElementClass("agreelabel", "submit-comment");
    }
    
    if (error) 
        return;
    
     var formvalues = "";
    
     formvalues = "rusername=" + document.getElementById("rusername").value;
     formvalues = formvalues + "&remail=" + document.getElementById("remail").value;
     formvalues = formvalues + "&rrating=" + starrating;
     formvalues = formvalues + "&rtitle=" + document.getElementById("rtitle").value;
     formvalues = formvalues + "&rtext=" + document.getElementById("rtext").value;
     formvalues = formvalues + "&revieworcomment=review";
    
     SubmitFormAjax("SubmitReview", xid, "&c=" + c, formvalues);
}

function SubmitCommentForm(rid)
{
    var error = false;

    if (document.getElementById("cusername-" + rid).value.length == 0)
    {
        error = true;
        SetElementClass("cusernamelabel-" + rid, "field-required");
    }
    else
    {
        SetElementClass("cusernamelabel-" + rid, "");
    }
    
    if (document.getElementById("ctext-" + rid).value.length == 0)
    {
        error = true;
        SetElementClass("ctextlabel-" + rid, "field-required");
    }
    else
    {
        SetElementClass("ctextlabel-" + rid, "");
    }
      
    if (document.getElementById("cemail-" + rid).value.length == 0)
    {
        error = true;
        SetElementClass("cemaillabel-" + rid, "field-required");
    }
    else
    {
        SetElementClass("cemaillabel-" + rid, "");
    }

    if (document.getElementById("cagree-" + rid).checked  == false)
    {
        error = true;
        SetElementClass("agreelabel-" + rid, "field-required");
    }   
    else
    {
        SetElementClass("agreelabel-" + rid, "");
    }
   
    if (error) 
        return;
        
     var formvalues = "";
    
     formvalues = "cusername=" + document.getElementById("cusername-" + rid).value;
     formvalues = formvalues + "&cemail=" + document.getElementById("cemail-" + rid).value;
     formvalues = formvalues + "&ctext=" + document.getElementById("ctext-" + rid).value;
     formvalues = formvalues + "&reviewid=" + rid;
     formvalues = formvalues + "&revieworcomment=comment";
    
     SubmitFormAjax("SubmitReview", "", "", formvalues);
}

function SetElementClass(idname, classname)
{
    var objElement = document.getElementById(idname);
    if (objElement == null)
        return;
        
    objElement.setAttribute("class", classname);
    objElement.className = classname;
}

function SelectStar(e)
{
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
		
    SetElementClass("star1label", "s1");
    SetElementClass("star2label", "s2");
    SetElementClass("star3label", "s3");
    SetElementClass("star4label", "s4");
    SetElementClass("star5label", "s5");
		
    if (targ.id == "star1")
    {
        starrating = "1";
        SetElementClass("star1label", "s1 v1");
    }
    
    if (targ.id == "star2")
    {
        starrating = "2";
        SetElementClass("star2label", "s2 v2");
    }
    
    if (targ.id == "star3")
    {
        starrating = "3";
        SetElementClass("star3label", "s3 v3");
    }
    
    if (targ.id == "star4")
    {
        starrating = "4";
        SetElementClass("star4label", "s4 v4");
    }
    
    if (targ.id == "star5")
    {
        starrating = "5";
        SetElementClass("star5label", "s5 v5");
    }


}

function ShowCommentsForReview(rid)
{
    var celem = document.getElementById("comments-" + rid);
    celem.className = "";
}

function HideCommentsForReview(rid)
{
    var helem = document.getElementById("comments-" + rid);
    helem.className = "hide-comment"
}


function LoadReviewPageLink(pageid, xid, cid)
{
    var formvalues = "&page=" + pageid + "&c="  + cid;

    RefreshControl('ReviewList', 'ReviewList', xid, formvalues, '');
}

function validateZIP(statefile, zipfile) 
{
    var tempElement = document.getElementById(statefile).value;
    //alert(tempElement);
    
    if (tempElement != "1")
        return true;
		
	var field = document.getElementById(zipfile).value;	
    
    //alert(field);
    
    var valid = "0123456789-";
    var hyphencount = 0;

    if (field.length!=5 && field.length!=10) 
    {
        alert("Please enter your 5 digit or 5 digit+4 zip code.");
        return false;
    }
    for (var i=0; i < field.length; i++) 
    {
        temp = "" + field.substring(i, i+1);
        if (temp == "-") 
            hyphencount++;
        
        if (valid.indexOf(temp) == "-1") 
        {
            alert("Invalid characters in your zip code.  Please try again.");
            return false;
        }
        if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) 
        {
            alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
            return false;
       }
    }
    return true;
}



var n;
var p;
var p1;
function ValidatePhone(){
p=p1.value
if(p.length==3){
	//d10=p.indexOf('(')
	pp=p;
	d4=p.indexOf('(')
	d5=p.indexOf(')')
	if(d4==-1){
		pp="("+pp;
	}
	if(d5==-1){
		pp=pp+")";
	}
	//pp="("+pp+")";
	document.bookform.CustPhone.value="";
	document.bookform.CustPhone.value=pp;
}
if(p.length>3){
	d1=p.indexOf('(')
	d2=p.indexOf(')')
	if (d2==-1){
		l30=p.length;
		p30=p.substring(0,4);
		//alert(p30);
		p30=p30+")"
		p31=p.substring(4,l30);
		pp=p30+p31;
		//alert(p31);
		document.bookform.CustPhone.value="";
		document.bookform.CustPhone.value=pp;
	}
	}
if(p.length>5){
	p11=p.substring(d1+1,d2);
	if(p11.length>3){
	p12=p11;
	l12=p12.length;
	l15=p.length
	//l12=l12-3
	p13=p11.substring(0,3);
	p14=p11.substring(3,l12);
	p15=p.substring(d2+1,l15);
	document.bookform.CustPhone.value="";
	pp="("+p13+")"+p14+p15;
	document.bookform.CustPhone.value=pp;
	//obj1.value="";
	//obj1.value=pp;
	}
	l16=p.length;
	p16=p.substring(d2+1,l16);
	l17=p16.length;
	if(l17>3&&p16.indexOf('-')==-1){
		p17=p.substring(d2+1,d2+4);
		p18=p.substring(d2+4,l16);
		p19=p.substring(0,d2+1);
		//alert(p19);
	pp=p19+p17+"-"+p18;
	document.bookform.CustPhone.value="";
	document.bookform.CustPhone.value=pp;
	//obj1.value="";
	//obj1.value=pp;
	}
}
//}
setTimeout(ValidatePhone,100)
}

function SetValidatePhone(m)
{
    if (m.value != "xxx-xxx-xxxx")
        return;
        
    m.value = "";
    
    //alert(m.value);
    
    //n=m.name;
    //p1=m
    //ValidatePhone()
}


function testphone(obj1){
p=obj1.value
//alert(p)
p=p.replace("(","")
p=p.replace(")","")
p=p.replace("-","")
p=p.replace("-","")
//alert(isNaN(p))
if (isNaN(p)==true){
alert("Check phone");
return false;
}
}


function ParseUSNumber(statefield, Phonefield) 
{
     var tempElement = document.getElementById(statefield).value;
    //alert(tempElement);
    
    if (tempElement != "1")
        return true;
  
    PhoneNumberInitialString = document.getElementById(Phonefield).value;
    var FmtStr="";
    var index = 0;
    var LimitCheck;

    LimitCheck = PhoneNumberInitialString.length;
    while (index != LimitCheck)
      {
        if (isNaN(parseInt(PhoneNumberInitialString.charAt(index))))
          { }
        else
          { FmtStr = FmtStr + PhoneNumberInitialString.charAt(index); }
        index = index + 1;
      }
    if (FmtStr.length == 10)
      {
        //FmtStr = "(" + FmtStr.substring(0,3) + ") " + FmtStr.substring(3,6) + "-" + FmtStr.substring(6,10);
        FmtStr = FmtStr.substring(0,3) + "-" + FmtStr.substring(3,6) + "-" + FmtStr.substring(6,10);
        
        document.getElementById(Phonefield).value = FmtStr;
        return true;
      }
    else
      {
        FmtStr=PhoneNumberInitialString;
        alert("United States phone numbers must have exactly ten digits.");
           return false;
   }
  }


function PlayVideo(VideSouce) 
{
    var tempElement;
          
          //alert("aaa");
   
    tempElement = document.getElementById("PhotoHolder");
    if (tempElement != null)
        tempElement.style.visibility = 'hidden'; 

    
    tempElement = document.getElementById("VideoHolder");
        // alert(tempElement);
   
    if (tempElement != null)
    {
    
        tempElement.style.visibility = 'visible'; 


        //VideSouce = "http://host.newspin360.net/grandcrownresorts/lodges/";
        
        //alert(VideSouce);
        tempElement.innerHTML = "<iframe src='" + VideSouce + "' width='440' height='330' frameborder='0'> </iframe>";

    }
    return false;
}


function CouponApply() 
{
    var tempElement;
    tempElement = document.getElementById("code");
    if (tempElement == null)
        return;
        


    //alert(tempElement.value);

}



function CouponClear() 
{
    var tempElement;
    tempElement = document.getElementById("code");
    if (tempElement == null)
        return;
        
        
    tempElement.value="";

       // alert(tempElement.value);

}

