var _FFrv;
var _isFF=false;
var _isIE=false;
var _isOpera=false;
var _isKHTML=false;
var _isMacOS=false;
var old_target = null;
var previewHeight;
var previewWidth;
var verticalOffset = 5;
var horizontalOffset = 3;
var top = 0;
var left = 30;
var slideSpeed = 20;
var currentImage;
var currentMLS;
var scrolling = false;
var timeout;
var ajaxSearchController = '/utils/ajax_search_controller';
var ajaxSearchRentalController = '/utils/ajax_search_rental_controller';
var ajaxDetailsController = '/utils/ajax_details_controller';
var ajaxRentalDetailsController = '/utils/ajax_rental_details_controller';
var ajaxInquireController = '/utils/ajax_inquire_controller';
var ajaxValidateController = '/utils/ajax_validate_controller';
var ajaxBookingController = '/utils/ajax_booking_controller';
var qCalendar;
var qNights;
var qTypes;
var map;
var geocoder;
var bounds;
var initPhase = true;
var mlsNo = '';
var dialogs_theme = 'alphacube';
var mapWin;
var firstImage = new Array();
var bigImages = new Array();
var bigImagesLabels = new Array();
var allImages = new Array();
var allLabels = new Array();
var old_targets = new Array();
var city;
var dialogs_title = "Maui Kai";
var popupWin = null;
var thisCity;
var thisPoint;
var thisPointHash;
var icon;
var currItem = -1;
var markerCount = 0;
var prevMLS = 0;
var nextMLS = 0;
var propIcon = new Array();

var dp_cal;
var dp_xml;
var calendarPopUp;
var calendarPopUp2;
var addEndDate;

function init() {
    if(navigator.userAgent.indexOf('Macintosh')!= -1)_isMacOS=true;
    if((navigator.userAgent.indexOf('Safari')!= -1)||(navigator.userAgent.indexOf('Konqueror')!= -1))
	_isKHTML=true;
    else if(navigator.userAgent.indexOf('Opera')!= -1){
	_isOpera=true;
	_OperaRv=parseFloat(navigator.userAgent.substr(navigator.userAgent.indexOf('Opera')+6,3));
    }
    else if(navigator.appName.indexOf("Microsoft")!=-1)
	_isIE=true;
    else{
	_isFF=true;
	_FFrv=parseFloat(navigator.userAgent.split("rv:")[1])
    }
	//so_init();
	initTimer();
	calendarPopUp = new EpochPrime($('calendarDate'),dp_xml);
	calendarPopUp2 = new EpochPrime($('calendarDate'),dp_xml,addEndDateFn);
}

function gotoAncor() {
    if (!_isKHTML) {
        var mypage = document.location.href.replace( /(.*)#.*/, "$1");
        document.location.href = mypage + "#ancor";
    }
}

function bookmark(){
    var title=document.title;
    var url=document.location.href.replace( /(.*)#.*/, "$1");

    if ((window.sidebar) && (window.sidebar.addPanel)) {
        try { window.sidebar.addPanel(title, url,""); } catch (e) {}
    } else if( window.opera && window.print ) {
        var mbm = document.createElement('a');
        mbm.setAttribute('rel','sidebar');
        mbm.setAttribute('href',url);
        mbm.setAttribute('title',title);
        mbm.click();
    } else if( document.all ) {
        window.external.AddFavorite( url, title);
    }
}

function showFind(formId){
    if (formId == 1){
            unactiveFormId = 2;
    } else {
            unactiveFormId = 1;
    }
    $('findForm'+formId).style.display='block';
    $('findForm'+unactiveFormId).style.display='none';
    $('Button'+formId).className="active";
    $('Button'+unactiveFormId).className="";
}

function hideFilterForms() {
    $('top_part').style.display = 'none';
    $('bottom_part').style.display = 'none';
    $('empty_part').style.display = '';
    obj = $('filter_switcher');
    if (obj) {
        obj.innerHTML = 'Show Filter';
        obj.onclick = function() { showFilterForms(); return false; }
    }
}

function showFilterForms() {
    $('top_part').style.display = '';
    $('bottom_part').style.display = '';
    $('empty_part').style.display = 'none';
    obj = $('filter_switcher');
    if (obj) {
        obj.innerHTML = 'Hide Filter';
        obj.onclick = function() { hideFilterForms(); return false; }
    }
}

function checkEmailForm() {
    var i,argName;
    var re = /\s*,\s*/;
    var splittedStrings = $('check').value.split(re);
    if (splittedStrings.length && splittedStrings[0]) {
        for(i=0;i<splittedStrings.length;i++) {
            obj = document.getElementById(splittedStrings[i]);
            if(!obj || !obj.value.length) {
                alertMsg("Empty field '"+splittedStrings[i]+"'");
                return false;
            }
            if (obj.name.match(/^email(.*?)/)) {
                if (!isValidEmail(obj.value)) {
                    alertMsg("Wrong email format");
                    return false;
                }
            }
        }
        return true;
    } else {
        return true;
    }
}

function isValidEmail(str) {
    return str.match(new RegExp("^([a-zA-Z0-9_]|\\-|\\.)+@(([a-zA-Z0-9_]|\\-)+\\.)+[a-zA-Z]{2,4}$"));
}

function checkFields() {
    var i, a=checkFields.arguments;
    for(i=0;i<a.length;i++) {
        obj = document.getElementById(a[i]);
        if(!obj.value.length) {
            alertMsg("Empty field "+obj.name);
            return false;
        }
        if (obj.name.match(/^email(.*?)/)) {
            if (!isValidEmail(obj.value)) {
                alertMsg("Wrong email format");
                return false;
            }
        }
    }
    return true;
}

function ensureNumeric(e) {
  var k = (typeof e.charCode == "undefined" ? e.keyCode : e.charCode);
  if (k < 32 || e.ctrlKey || e.altKey || e.metaKey)
    return true;
  return (k >= 48 && k <= 57);
}

function ensureAlphaDigit(e) {
  var k = (typeof e.charCode == "undefined" ? e.keyCode : e.charCode);
  if (k < 32 || e.ctrlKey || e.altKey || e.metaKey)
    return true;
  return ((k >= 48 && k <= 57) || (k >= 65 && k <= 90) || (k >= 97 && k <= 122));
}

function showBigImage(key) {
    $('big_photo').src = '/img/progress2.gif'
    $('big_photo').src = bigImages[key];
    $('big_photo').alt = $('big_photo').title = bigImagesLabels[key];
    if ($('picture_label'))
        $('picture_label').innerHTML = bigImagesLabels[key];
    if (old_target!=null) {
        var oldElem = document.getElementsByName('icon_'+old_target);
        if (oldElem)
            oldElem[0].style.border = '2px Solid #F3F6E0';
    }
    old_target = key;
    var newElem = document.getElementsByName('icon_'+key);
    newElem[0].style.border = '2px Solid #16456f';
}

function showBigImage2(prop_id, key) {
    $('big_photo_'+prop_id).src = '/img/progress2.gif'
    $('big_photo_'+prop_id).src = bigImages[prop_id][key];
    $('big_photo_'+prop_id).alt = $('big_photo_'+prop_id).title = bigImagesLabels[prop_id][key];
    if ($('picture_label_'+prop_id))
        $('picture_label_'+prop_id).innerHTML = bigImagesLabels[prop_id][key];
    if (old_targets[prop_id]!=null) {
        var oldElem = document.getElementsByName('icon_'+prop_id+'_'+old_targets[prop_id]);
        if (oldElem)
            oldElem[0].style.border = '2px Solid #F3F6E0';
    }
    old_targets[prop_id] = key;
    var newElem = document.getElementsByName('icon_'+prop_id+'_'+key);
    newElem[0].style.border = '2px Solid #16456f';
}

function showBigImageID(key) {
    $('big_photo').src = '/img/progress2.gif'
    if (typeof bigImages[key]=='string')
        $('big_photo').src = '/utils/show_picture_from_db?id='+bigImages[key]+'&maxw=400&maxh=640';
    else
        $('big_photo').src = '/img/no_image.png';
    if (old_target!=null) {
        var oldElem = document.getElementsByName('icon_'+old_target);
        if (oldElem)
            oldElem[0].style.border = '2px Solid #F3F6E0';
    }
    old_target = key;
    var newElem = document.getElementsByName('icon_'+key);
    newElem[0].style.border = '2px Solid #16456f';
}

function getNextImage() {
    if (parseInt(old_target)+1<=bigImages.length-1) {
        showBigImage(parseInt(old_target)+1);
    } else
        showBigImage(0);
}

function getPrevImage() {
    if (parseInt(old_target)-1<0) {
        showBigImage(bigImages.length-1);
    } else
        showBigImage(parseInt(old_target)-1);
}

function scrollRight(speed) {
    var tbl = $('preview_layer');
    if (left>=30) {
        tbl.style.left = 30+'px';
        scrolling = false;
        return;
    }
    if (left>=30) {
        scrolling = false;
        return;
    }
    left += speed;
    tbl.style.left = left+'px';
    timeout = setTimeout('scrollRight('+speed+')',slideSpeed);
}

function scrollLeft(speed) {
    var tbl = $('preview_layer');
    if (tbl)
        previewWidth = $('preview_layer').clientWidth;
    else
        return;
    if (left<325-previewWidth) {
        scrolling = false;
        return;
    }
    left -= speed;
    tbl.style.left = left+'px';
    timeout = setTimeout('scrollLeft('+speed+')',slideSpeed);
}

function shiftPreviewStop() {
    scrolling = false;
    clearTimeout(timeout);
    return;
}

function shiftPreview(speed) {
    if (scrolling)
        return false;
    else {
        scrolling = true;
        if (speed>0)
            scrollRight(Math.abs(speed));
        else
            scrollLeft(Math.abs(speed));
    }
}

function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {
    var x = Math.round(num * Math.pow(10,dec));
    if (x >= 0) n1=n2='';
    var y = (''+Math.abs(x)).split('');
    var z = y.length - dec;
    y.splice(z, 0, pnt);
    while (z > 3) {
        z-=3;
        y.splice(z,0,thou);
    }
    var r = curr1+n1+y.join('')+n2+curr2;
    return r;
}

function formatPrice(num) {return formatNumber(num, 0, ',', '', '', '', '', '');}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function addHandler(element,type,func){
    if(element.addEventListener){
        element.addEventListener(type,func,false);
    }else if(element.attachEvent){
        element.attachEvent('on'+type,func);
    }
}

function removeHandler(element,type,func){
    if(element.removeEventListener){
        element.removeEventListener(type,func,false);
    }else if(element.attachEvent){
        element.detachEvent('on'+type,func);
    }
}

function assignAjaxEvent() {
    var obj = $('location');
    addHandler(obj,'change',doNewAjaxRequest);
    for (i=0; i<$('ajaxpropsearch').elements.length; i++) {
        var obj = $('ajaxpropsearch').elements[i];
        switch (obj.type) {
            case 'checkbox':
            case 'select':
                removeHandler(obj,'click',doAjaxRequest);
                addHandler(obj,'click',doAjaxRequest);
                break;
            default:
                removeHandler(obj,'change',doAjaxRequest);
                addHandler(obj,'change',doAjaxRequest);
                break;
        }
    }
}

function checkAndSubmit(frm, cls) {
    if(checkEmailForm()) {
        doInquireRequest(frm, cls);
        return true;
    } else {
        return false;
    }
}

function checkAndSubmit2(frm, cls) {
    if(checkEmailForm()) {
        if ($('password1').value != $('password2').value) {
            alertMsg('Passwords are not identical');
        } else {
            doInquireRequest(frm, cls);
            return true;
        }
    }
    return false;
}

function checkAndSubmit3(elem) {
    if(checkFields(elem)) {
        signupRequest('&'+elem+'='+$(elem).value+'&curClass=EmailUsers');
        $(elem).value = '';
        return true;
    } else {
        return false;
    }
}

function doInquireRequest(frm, cls) {
    args = 'curClass='+cls;
    var formElements = Form.getElements(frm);
    for (i=0; i<formElements.length; i++) {
        var obj = formElements[i];
        if (!obj.id.length)
            continue;
        switch (obj.type) {
            case 'checkbox':
                args += "&"+escape(obj.name)+'='+obj.checked;
                break;
            default:
                args += "&"+escape(obj.id)+'='+escape(obj.value);
            break;
        }
    }
    inquireRequest(args);
}

function inquireRequest(request) {
	new Ajax.Request(ajaxInquireController, {
		method:'post',
		parameters: request,
		onSuccess: function(transport){
			var response = transport.responseText.evalJSON();
			MsgBox(response.info);
		},
		onFailure: function(){ return false; /*alert('Something went wrong...')*/ }
	});
}

function signupRequest(request) {
	new Ajax.Request(ajaxInquireController, {
		method:'post',
		parameters: request,
		onSuccess: function(transport){
			var response = transport.responseText.evalJSON();
			if (!toBoolean(response.success))
				alertMsg(response.info);
			else
				alertMsg("Confirmation letter have been sent to your Email address");
		},
		onFailure: function(){ return false; /*alert('Something went wrong...')*/ }
	});
}

function closePopup() {
    if (popupWin)
        popupWin.close();
    Dialog.closeInfo();
}

function MsgBox(msg) {
    Dialog.alert('<br>'+msg, {title:dialogs_title, className:dialogs_theme, width:500, height:120, showEffect: Element.show, hideEffect: Element.hide, okLabel:'OK', buttonClass: 'okButton', ok:function(win) {closePopup(); return true;} });
}

function alertMsg(msg) {
    Dialog.alert('<br>'+msg, {title:dialogs_title, className:dialogs_theme, width:500, height:120, showEffect: Element.show, hideEffect: Element.hide, okLabel:'OK', buttonClass: 'okButton'});
}

function showProgress() {
    Dialog.info("", {className:'alert', width:16, height:16, showProgress: true, showEffect: Element.show, hideEffect: Element.hide});
}

function hideProgress() {
    Dialog.closeInfo();
}
var liveCamContent;
function showECardsPopup() {
    if ($('live_camera') && $('live_camera_hider')) {
	$('live_camera').style.display = 'none';
	$('live_camera_hider').style.display = 'block';
    }
    popupWin = new Window({title:'Maui Kai', url: '/popups/ecards', className:dialogs_theme, width:450, height:620, showEffect: Element.show, hideEffect: Element.hide, resizable:false, closable:true, minimizable: false, maximizable:false, draggable: true, destroyOnClose: true, onClose: function(win) {if ($('live_camera') && $('live_camera_hider')){$('live_camera_hider').style.display='none';$('live_camera').style.display='block';}closePopup(); return true;}});
    popupWin.showCenter(true);
    /*
    popupWin.setAjaxContent("/popups/ecards", {method:'get'}, true, true);
    popupWin.setZIndex(10000);
    */
}

function showReservationPopup() {
//    showProgress();
    popupWin = new Window({title:'Maui Kai', className:dialogs_theme, width:570, height:400, showEffect: Element.show, hideEffect: Element.hide, resizable:false, closable:true, minimizable: false, maximizable:false, draggable: true, destroyOnClose: true, onClose: closePopup});
    popupWin.setAjaxContent("/popups/reservation", {method:'get'}, true, true);
    popupWin.setZIndex(10000);
}

function showRequestAvailabilityPopup(id) {
//    showProgress();
    popupWin = new Window({title:'Maui Kai', className:dialogs_theme, width:570, height:650, showEffect: Element.show, hideEffect: Element.hide, resizable:false, closable:true, minimizable: false, maximizable:false, draggable: true, destroyOnClose: true, onClose: closePopup});
    popupWin.setAjaxContent("/popups/inquire?id="+id, {method:'get'}, true, true);
    popupWin.setZIndex(10000);
}

function showPrintVersionPopup(id) {
//    showProgress();
    popupWin = new Window({title:'Maui Kai', className:dialogs_theme, width:600, height:650, showEffect: Element.show, hideEffect: Element.hide, resizable:false, closable:true, minimizable: false, maximizable:false, draggable: true, destroyOnClose: true, onClose: closePopup});
    popupWin.setAjaxContent("/popups/print_version?id="+id, {method:'get'}, true, true);
    popupWin.setZIndex(10000);
}

function showSendToFriendPopup(id) {
//    showProgress();
    popupWin = new Window({title:'Maui Kai', className:dialogs_theme, width:600, height:450, showEffect: Element.show, hideEffect: Element.hide, resizable:false, closable:true, minimizable: false, maximizable:false, draggable: true, destroyOnClose: true, onClose: closePopup});
    popupWin.setAjaxContent("/popups/send_to_friend?id="+id, {method:'get'}, true, true);
    popupWin.setZIndex(10000);
}

function showRequestInfoPopup(id) {
//    showProgress();
    popupWin = new Window({title:'Maui Kai', className:dialogs_theme, width:600, height:450, showEffect: Element.show, hideEffect: Element.hide, resizable:false, closable:true, minimizable: false, maximizable:false, draggable: true, destroyOnClose: true, onClose: closePopup});
    popupWin.setAjaxContent("/popups/request_info?id="+id, {method:'get'}, true, true);
    popupWin.setZIndex(10000);
//    hideProgress();
}

function showTermsPopup() {
    var elem = $('terms');
    if (!elem) return;
    popupWin = new Window({title:'', className:dialogs_theme, width:500, height:600, showEffect: Element.show, hideEffect: Element.hide, destroyOnClose:true, draggable:false, resizable:false, minimizable:false, maximizable:false, onDestroy:function(win){elem.style.display='none';closePopup();}});
    popupWin.setContent(elem);
    elem.style.display = '';
    popupWin.showCenter(true);
}

function showActivity(evnt, num) {
    var elem = $('activity_popup_'+num);
    if (!elem) return;
    var px = (_isIE || _isOpera) ? evnt.clientX+ieTrueBody().scrollLeft : evnt.pageX;
    var py = (_isIE || _isOpera) ? evnt.clientY+ieTrueBody().scrollTop : evnt.pageY;
    if (_isIE)
    	var h = 'auto';
    else if (_isKHTML && !_isMacOS)
    	var h = 200;
    else
    	var h = 'auto';
    popupWin = new Window({title:'', className:dialogs_theme, width:250, height:h, left:px-35, top:py-20, showEffect: Element.show, hideEffect: Element.hide, destroyOnClose:true, draggable:false, resizable:false, minimizable:false, maximizable:false, onDestroy:function(win){elem.style.display='none';closePopup();}});
    popupWin.setContent(elem);
    elem.style.display = '';
    popupWin.show(true);
}

function toBoolean(inputString){
    if(typeof(inputString)=="string")
        inputString=inputString.toLowerCase();
    switch(inputString){
        case "1":
        case "true":
        case "yes":
        case "y":
        case "on":
        case 1:
        case true:
        return true;
        break;
    default: return false;
    }
}

// Sets cookie values. Expiration date is optional//
function setCookie(name, value, expire) {
  document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}

function getCookie(nm) {
  if (document.cookie.length > 0) {
    var re1 = /\s*;\s*/;
    var cooks = document.cookie.split(re1);
    var re2 = /\s*=\s*/;
    for ( i=0; i<cooks.length; i++ ) {
            var parts = cooks[i].split(re2,2);
            if (nm == parts[0]) {
                return unescape(parts[1]);
            }
    }
  }
  return "";
}

function deleteCookie(Name)
{
  expireDate = new Date;
  expireDate.setDate(expireDate.getDate()-1);
  document.cookie = Name + "=; expires=" + expireDate.toGMTString();
}

function ieTrueBody(){
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function zDate(x){
    return(x<0||x>9?'':'0')+ x;
}

function calendarInit(elemName, callback) {
    var obj = $('base_calendar_'+elemName);
    // memory leaks preventing
    if (obj==null) {
        dp_cal  = new EpochPrime($(elemName),dp_xml,callback);
        dp_cal.show();
    } else if (toBoolean(obj.style.display == '')) {
        obj.style.display = 'none';
    } else {
        obj.style.display = '';
    }
}

function checkQuickSearch() {
    var dt = $('check_in').value;
    if (!dt.match(new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}$"))) {
        alert('Choose Arrival Date');
        return false;
    }
    $('quicksearch').submit();
    return true;
}

function checkDateFormat(str) {
    if (!str.match(new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$"))) {
        return false;
    }
    return true;
}

function updateQNights() {
    var dateList = $('qcheck_in');
    if (dateList && dateList.value)
        qCalendar = dateList.value;
    quickSearchDateChanged();
}

function updateQCNights() {
    if (getCookie('qcheck_in')!='undefined')
        qCalendar = getCookie('qcheck_in');
    var dateList = $('qcheck_in');
    if (dateList && qCalendar)
        dateList.value = qCalendar;
    if (getCookie('qnights'))
        qNights = getCookie('qnights');
    var nightsList = $('qnights');
    if (nightsList && qNights)
        nightsList.value = qNights;
    quickSearchDateChanged();
}

function searchDateChanged() {
    var dateList = $('check_in');
    if (dateList) {
        var disabled = !dateList.value ? true : false;
        $('nights').disabled = disabled;
    }
}

function quickSearchDateChanged() {
/*
    var dateList = $('qcheck_in');
    if (dateList) {
        var disabled = !dateList.value ? true : false;
        $('qnights').disabled = disabled;
    }
*/
}

function qSearchAdjust() {
    var f = $('qsearch');
    if (f) {
	if (!$('qcheck_in').value.length) {
		alert('Select check in date');
		return false;
	}
	if (!checkDateFormat($('qcheck_in').value)) {
		alert('Wrong check in date');
		return false;
	}
	if (!$('qcheck_out').value.length) {
		alert('Select check out date');
		return false;
	}
	if (!checkDateFormat($('qcheck_out').value)) {
		alert('Wrong check out date');
		return false;
	}
	validateStayLength(f,$('qcheck_in').value,$('qcheck_out').value,$('qbedrooms').value);
    }
}

function validateStayLength(f,date1,date2,bedrooms) {
	new Ajax.Request(ajaxValidateController, {
		method:'post',
		parameters: 'action=validateStayLength&date1='+date1+'&date2='+date2,
		onSuccess: function(transport){
			var response = transport.responseText.evalJSON();
			if (!toBoolean(response.success)) {
				alert(response.info);
				return false;
			}
			if (f) {
				var inp = document.createElement('input');
				inp.setAttribute('type','hidden');
				inp.setAttribute('name','check_in');
				inp.setAttribute('value',date1);
				f.appendChild(inp);
				inp = document.createElement('input');
				inp.setAttribute('type','hidden');
				inp.setAttribute('name','check_out');
				inp.setAttribute('value',date2);
				f.appendChild(inp);
				inp = document.createElement('input');
				inp.setAttribute('type','hidden');
				inp.setAttribute('name','bedrooms');
				inp.setAttribute('value',bedrooms);
				f.appendChild(inp);
				setCookie('qcheck_in',date1);
				setCookie('qcheck_out',date2);
				setCookie('qbedrooms',bedrooms);
				f.submit();
			}
		},
		onFailure: function(){ return false; /*alert('Something went wrong...')*/ }
	});
}

function qsPrepare() {
    if (getCookie('qcheck_in')!='undefined')
        qCalendar = getCookie('qcheck_in');
    var dateList = $('check_in');
    if (dateList && qCalendar)
        dateList.value = qCalendar;
    if (getCookie('qtypes'))
        qTypes = getCookie('qtypes');
    var typesList = $('roomtype');
    if (typesList && qTypes)
        typesList.value = qTypes;
//    qsDateChanged();
}

function qsAdjust() {
    var f = $('quicksearch');
    if (f) {
	if (!$('check_in').value.length) {
		alert('Select check in date');
		return false;
	}
	if (!checkDateFormat($('check_in').value)) {
		alert('Wrong check in date');
		return false;
	}
	if (!$('check_out').value.length) {
		alert('Select check out date');
		return false;
	}
	if (!checkDateFormat($('check_out').value)) {
		alert('Wrong check out date');
		return false;
	}
	validateStayLength(f,$('check_in').value,$('check_out').value,$('bedrooms').value);
    }
}

function qsDateChanged() {
    var dateList = $('check_in');
    if (dateList) {
        var disabled = !dateList.value ? true : false;
        $('nights').disabled = disabled;
    }
}

function getAvailability(roomID,sleeps,chkIn,chkOut) {
    var f = $('qsearch');
    if (f) {
        var inp = document.createElement('input');
        inp.setAttribute('type','hidden');
        inp.setAttribute('name','check_in');
        inp.setAttribute('value',chkIn);
        f.appendChild(inp);
        inp = document.createElement('input');
        inp.setAttribute('type','hidden');
        inp.setAttribute('name','check_out');
        inp.setAttribute('value',chkOut);
        f.appendChild(inp);
        inp = document.createElement('input');
        inp.setAttribute('type','hidden');
        inp.setAttribute('name','roomtype');
        inp.setAttribute('value',roomID);
        f.appendChild(inp);
        if (parseInt(sleeps)) {
		inp = document.createElement('input');
		inp.setAttribute('type','hidden');
		inp.setAttribute('name','bedrooms');
		inp.setAttribute('value',sleeps);
		f.appendChild(inp);
        }
        f.submit();
    }
}

function getSpecialsAvailability(roomID,sleeps,chkIn,chkOut,special,stype) {
    var f = $('bookingForm');
    if (f) {
        var inp = document.createElement('input');
        inp.setAttribute('type','hidden');
        inp.setAttribute('name','check_in');
        inp.setAttribute('value',chkIn);
        f.appendChild(inp);
        inp = document.createElement('input');
        inp.setAttribute('type','hidden');
        inp.setAttribute('name','check_out');
        inp.setAttribute('value',chkOut);
        f.appendChild(inp);
        inp = document.createElement('input');
        inp.setAttribute('type','hidden');
        inp.setAttribute('name','roomtype');
        inp.setAttribute('value',roomID);
        f.appendChild(inp);
        inp = document.createElement('input');
        inp.setAttribute('type','hidden');
        inp.setAttribute('name','id');
        inp.setAttribute('value',special);
        f.appendChild(inp);
        if (parseInt(sleeps)) {
		inp = document.createElement('input');
		inp.setAttribute('type','hidden');
		inp.setAttribute('name','bedrooms');
		inp.setAttribute('value',sleeps);
		f.appendChild(inp);
        }
        f.submit();
    }
}

function quickSearchAdjust() {
    if (sc!='')
        $('check_in').value = sc;
    if (sn!='')
        $('nights').selectedIndex = sn-1;
    if (sr!='')
        $('bedrooms').selectedIndex = sr;
}

function qsPrepare() {
    if (getCookie('qcheck_in')!='undefined')
        qCalendar = getCookie('qcheck_in');
    var dateList = $('qcheck_in');
    if (dateList && qCalendar)
        dateList.value = qCalendar;
    if (getCookie('qnights'))
        qNights = getCookie('qnights');
    var nightsList = $('qnights');
    if (nightsList && qNights)
        nightsList.value = qNights;
    quickSearchDateChanged();
}

function booking(id) {
    var check_in, check_out, adults_num, children_num, bedrooms, nights;
    $('prop_id').value = id;
    if ($('check_in'))
        check_in = $('check_in').value;
    else if ($('qcheck_in'))
        check_in = $('qcheck_in').value;
    else if ($('checkin'))
        check_in = $('checkin').value;
    else if (getCookie('check_in'))
        check_in = getCookie('check_in');
    else
        check_in = "";
    if ($('check_out'))
        check_out = $('check_out').value;
    else if ($('qcheck_out'))
        check_out = $('qcheck_out').value;
    else if ($('checkout'))
        check_out = $('checkout').value;
    else if (getCookie('check_out'))
        check_out = getCookie('check_out');
    else
        check_out = "";
    if ($('nights'))
        nights = $('nights').value;
    else if (getCookie('nights'))
        nights = getCookie('nights');
    else
        nights = 2;
    if ($('bedrooms'))
        bedrooms = $('bedrooms').value;
    else if (getCookie('bedrooms'))
        bedrooms = getCookie('bedrooms');
    else
        bedrooms = 1;
    var f = $('bookingForm');
    var inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','check_in');
    inp.setAttribute('value',check_in);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','check_out');
    inp.setAttribute('value',check_out);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','nights');
    inp.setAttribute('value',nights);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','bedrooms');
    inp.setAttribute('value',bedrooms);
    f.appendChild(inp);
    f.submit();
}

function booking2(special_id, prop_id, stype) {
    var check_in;
    var nights;
    $('special_id').value = special_id;
    $('prop_id').value = prop_id;
    if ($('check_in'))
        check_in = $('check_in').value;
    else if ($('checkin'))
        check_in = $('checkin').value;
    else if (getCookie('check_in'))
        check_in = getCookie('check_in');
    else
        check_in = "";
    if ($('check_out'))
        check_out = $('check_out').value;
    else if ($('qcheck_out'))
        check_out = $('qcheck_out').value;
    else if ($('checkout'))
        check_out = $('checkout').value;
    else if (getCookie('check_out'))
        check_out = getCookie('check_out');
    else
        check_out = "";
    if ($('bedrooms'))
        bedrooms = $('bedrooms').value;
    else if (getCookie('bedrooms'))
        bedrooms = getCookie('bedrooms');
    else
        bedrooms = 1;
    var f = $('bookingForm');
    var inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','check_in');
    inp.setAttribute('value',check_in);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','check_out');
    inp.setAttribute('value',check_out);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','bedrooms');
    inp.setAttribute('value',bedrooms);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','s_type');
    inp.setAttribute('value',stype);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','special_id');
    inp.setAttribute('value',special_id);
    f.appendChild(inp);
    inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','prop_id');
    inp.setAttribute('value',prop_id);
    f.appendChild(inp);
    f.submit();
}
function bookingSpecials(id) {
    var f = $('bookingForm');
    var inp = document.createElement('input');
    inp.setAttribute('type','hidden');
    inp.setAttribute('name','special_id');
    inp.setAttribute('value',id);
    f.appendChild(inp);
    f.submit();
}

function select_thumb(n) {
    for (i=1;i<=3;i++){
        document.all["card"+i].style.borderColor="#FDF5E8";
    }
    document.all["card"+n].style.borderWidth="3";
    document.all["card"+n].style.borderColor="#E99211";
    document.forms[0].Card.value=n;
}

function addEndDateFn() {
	if ($('check_in') && $('check_out')) {
		var dt = new Date($('check_in').value);
		var dt2 = new Date(dt.getFullYear(),dt.getMonth()+1,dt.getDate()+parseInt(addEndDate)-1,dt.getHours(),dt.getMinutes(),dt.getSeconds(),999);
		var endLabel = zDate(dt2.getMonth() ? dt2.getMonth() : 12)+'/'+zDate(dt2.getDate())+'/'+dt2.getFullYear();
		$('check_out').value = endLabel;
	}
}

function createSWFObj(file, thePlayerId, container, width, height, wmode) {
    var flashvars = {
        autostart:true
    }

    var params = {
        allowfullscreen:"true",
        allowscriptaccess:"always",
        wmode: wmode ? wmode : 'window'
    }

    var attributes = {
        id:thePlayerId,
        name:thePlayerId
    }
    swfobject.embedSWF(file, container, width, height, "9.0", false, flashvars, params, attributes);
}