function getUrlParam(name)
{
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )    return "";
    else return results[1];
}

function tlUpdateFields(cal)
{
    var date = cal.selection.get();
    if (date)
	{
        date = Calendar.intToDate(date);
        document.getElementById("tl-select-date").value = Calendar.printDate(date, "%d");
        document.getElementById("tl-select-month").value = Calendar.printDate(date, "%Y-%m");
    }
}

function tlBindCalendar()
{
    var min = new Date();
    var max = new Date();

	min.setDate(min.getDate() + 1);
    max.setMonth(min.getMonth() + 11);

	var cal = Calendar.setup({
        'onSelect' : function(cal) { tlUpdateFields( cal ); cal.hide() },
        'inputField' : "tl-select-date-hidden",
        'min' : min,
        'max' : max,
        'bottomBar' : false,
        'align': 'Tl'
    });

    cal.selection.set(min);

    if (getUrlParam("select-date") != "")
    {
        document.getElementById("tl-select-date").value = getUrlParam("select-date");
    }
    else
    {
        document.getElementById("tl-select-date").value = Calendar.printDate(min, "%d");
    }

	var monthSelect = document.getElementById("tl-select-month");
    var curDate = new Date();
	curDate.setDate(1);


    var el = monthSelect.options[0];
    el.parentNode.removeChild(el);

    for ( var i=1; i<=12; i++ )
    {
        var option = document.createElement('option');
        option.value = Calendar.printDate(curDate, "%Y-%m");
        var label = document.createTextNode( Calendar.printDate(curDate, "%B '%y") );
        option.appendChild(label);
        monthSelect.appendChild(option);
        curDate.setMonth( curDate.getMonth() + 1 );
    }

    if (getUrlParam("select-month") != "")
    {
        monthSelect.value = getUrlParam("select-month");
    }

    if (getUrlParam("nights") != "")
    {
        document.getElementById("tl-nights").value = getUrlParam("nights");
    }

    if (getUrlParam("adults") != "")
    {
        document.getElementById("tl-adults").value = getUrlParam("adults");
    }

    if (getUrlParam("date") != "")
    {
        document.getElementById("tl-date").value = getUrlParam("date");
    }


	document.getElementById("tl-calendar-btn").onclick = function ()
	{
		cal.popup("tl-calendar-btn", "Tl");
	}

     	$("#tl-submit-btn").click( function( ev ){
         	ev.preventDefault();
                var startDate = document.getElementById("tl-select-month").value + "-" + document.getElementById("tl-select-date").value;
		document.getElementById("tl-date").value = startDate;

		if ( $("#tl-hotel-stars").attr("class") == "hotel-select" )
         	{
         		if ( $( "#tl-hotel-stars" ).val() )
                 	{
                   		$( "#tl-search-form" ).attr("action", "/" + $( "#tl-hotel-stars" ).val() + "/reservation" + $( "#tl-search-form" ).attr("action") );
        	 	}
                 	else
                 	{
        	   		$( "#tl-search-form" ).attr("action", "/reservation" + $( "#tl-search-form" ).attr("action") );
                 	}
         	}
         	$("#tl-search-form").submit();
	})
}
