var options = '';
var curMonthOffset = 0;
var curDates;

function getNewProp(selObj) {
  getAjaxNewProp(selObj.options[selObj.selectedIndex].value);
}

function getAjaxNewProp(val) {
    new Ajax.Request('/changeprop',
    {
        method:'post',
        parameters: 'id='+val,
        onSuccess: function(transport){
            eval("self.location='"+document.location.href+"'");
        },
        onFailure: function(){ alert('Something went wrong...') }
    });
}

function getAjaxObject(url) {
    if ($('startdate').value && $('enddate').value) {
        $('innerTable').innerHTML = '<img src="images/progress2.gif" width="90" height="16">';
        new Ajax.Request(url,
        {
            method:'post',
            parameters: 'start='+$('startdate').value+'&end='+$('enddate').value+options,
            onSuccess: function(transport){
                var response = transport.responseText || '';
                $('innerTable').innerHTML = response;
                sortables_init();
            },
            onFailure: function(){ alert('Something went wrong...') }
        });
    } else {
        alert("You must specify both dates");
    }
}

function getAjaxCalendar(offset, months) {
    $('innerTable').innerHTML = '<img src="images/progress2.gif" width="90" height="16">';
    new Ajax.Request('/getcalendars',
    {
        method:'post',
        parameters: 'offset='+offset+'&months='+months,
        onSuccess: function(transport){
                var response = transport.responseText || 'Calendar is unavailable';
                $('innerTable').innerHTML = response;
        },
        onFailure: function(){ alert('Something went wrong...') }
    });
}

function getAjaxPage(url, method, params) {
    $('content').innerHTML = '<img src="images/progress2.gif" width="90" height="16">';
    new Ajax.Request(url,
    {
        method: method,
        parameters: params,
        onSuccess: function(transport){
                var response = transport.responseText || 'Calendar is unavailable';
                $('content').innerHTML = response;
        },
        onFailure: function(){ alert('Something went wrong...') }
    });
}

function doOwnerReserve() {
    var guest = $('txtGuestName').value.replace(/^\s+|\s+$/g,'');
    if (!guest.length) {
        alert('Guest name is empty');
        return false;
    }
    var parts = guest.split(' ');
    if (parts.length<2) {
        alert('Give a full Guest name');
        return false;
    }
    var params = 'startdate='+$('startdate').value+'&nights='+$('nights').value+'&type='+$('resType').value+'&name='+guest+'&comment='+$('txtComments').value+'&reserve=true';
    getAjaxPage('/utils/ajax_ownerreserve_controller', 'post', params);
}

function setOptions(url) {
    options = '';
    if ($('sortOrder'))
        options += "&sort="+$('sortOrder').value;
    if ($('showType'))
        options += "&type="+$('showType').value;
    if ($('showStatus'))
        options += "&status="+$('showStatus').value;
    getAjaxObject(url);
}

function switchCalendar(elemName) {
    var obj = $('base_calendar_'+elemName);
    if (obj) {
        if (obj.style.display == '') {
            obj.style.display = 'none';
        } else {
            obj.style.display = '';
        }
    }
}

function getNextMonths() {
    if (curMonthOffset+2<12)
        curMonthOffset+=2;
    getAjaxCalendar(curMonthOffset, 2);
    setArrows();
}

function getPrevMonths() {
    if (curMonthOffset-2>=0)
        curMonthOffset-=2;
    getAjaxCalendar(curMonthOffset, 2);
    setArrows();
}

function setArrows() {
    $('rarrow').innerHTML = (curMonthOffset>=10) ?
        "<img src='images/rarrow_off.png' width='24' height='24' border='0' alt=''>" :
        "<a onmouseout='MM_swapImgRestore()' onmouseover=\"MM_swapImage('ImageRA','','images/rarrow_over.png',1)\" onclick='getNextMonths()'><img src='images/rarrow_out.png' width='24' height='24' border='0' alt='Next Two Months' title='Next Two Months' id='ImageRA'></a>";
    $('larrow').innerHTML = (curMonthOffset<=0) ?
        "<img src='images/larrow_off.png' width='24' height='24' border='0' alt=''>" :
        "<a onmouseout='MM_swapImgRestore()' onmouseover=\"MM_swapImage('ImageLA','','images/larrow_over.png',1)\" onclick='getPrevMonths()'><img src='images/larrow_out.png' width='24' height='24' border='0' alt='Previuos Two Months' title='Previuos Two Months' id='ImageLA'></a>";
}

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];}
}
