function bookmark_link(title, url)
{
    if (window.sidebar) { // firefox
	   window.sidebar.addPanel(title, url, "");
    } else if(window.opera && window.print){ // opera
	   var elem = document.createElement('a');
	   elem.setAttribute('href',url);
	   elem.setAttribute('title',title);
	   elem.setAttribute('rel','sidebar');
	   elem.click();
    }
    else if(document.all) { // ie
	   window.external.AddFavorite(url, title);
    }
}

function write_bookmark_link (name, title, url)
{
    if (window.sidebar || (window.opera && window.print) || document.all) {
        document.write('<a href="javascript:;" onclick=' + "'javascript:bookmark_link(" + '"' + title + '","' + url + '"' + ")'>" + name + '</a>');
    }
}

function showDialogText(dialog_key)
{
    if (typeof popup_texts === 'undefined') {
        alert('popup_texts does not exist!');
    } else {
        if (typeof popup_texts[ dialog_key ] === 'undefined') {
            alert(dialog_key + ' does not exist!')
        } else {
            $('#modalDialog').html(popup_texts[ dialog_key ].html).dialog('option', 'title', popup_texts[ dialog_key ].title).dialog('open');
        }
    }
}

function update_reservation_prices_with_insurance(reservation_id, flag_tag)
{
    if (flag_tag.checked == true) {
        xajax_ajax_update_reservation_prices_with_insurance(reservation_id, 1);
    } else {
        xajax_ajax_update_reservation_prices_with_insurance(reservation_id, 0);
    }
}

function update_prereservation_prices_with_insurance(startdate, enddate, unit_id, occupants, occupants_small, flag_tag)
{
    if (flag_tag.checked == true) {
        xajax_ajax_update_prereservation_prices_with_insurance(startdate, enddate, unit_id, occupants, occupants_small, 1);
    } else {
        xajax_ajax_update_prereservation_prices_with_insurance(startdate, enddate, unit_id, occupants, occupants_small, 0);
    }
}

function days_between_full(date1, date2) {
    var ONE_DAY = 1000 * 60 * 60 * 24;
    var date1_ms = date1.getTime();
    var date2_ms = date2.getTime();
    var difference_ms = date1_ms - date2_ms;
    return Math.round(difference_ms/ONE_DAY);
}

function disallowADate(date)
{
    if ( date < low_limit_datea )  return true; else return false;
}

function AdateChanged(calendar)
{
    if (calendar.dateClicked) {
      var enddate_tag=document.getElementById('enddate');
      var days_tag=document.getElementById('days_number');
      var days_number=2;
      if (days_tag != null && typeof(days_tag) != 'undefined' ) {
    	  days_number=parseInt(days_tag.value);
      }
      // OK, a date was clicked, setup the end date
      var enddate=new Date(calendar.date.getFullYear(), calendar.date.getMonth(), calendar.date.getDate() + days_number );
      enddate_tag.value = enddate.print("%m/%d/%Y");
    }
}

function disallowBDate(date)
{
    if ( date < low_limit_datea )  return true; else return false;
}

function BdateChanged(calendar)
{
    if (calendar.dateClicked) {
      var startdate_tag=document.getElementById('startdate');
      var days_tag=document.getElementById('days_number');

      if (days_tag != null && typeof(days_tag) != 'undefined' ) {
    	  var days_number = days_between_full(calendar.date, Date.parseDate(startdate_tag.value, "%m/%d/%Y"));
    	  if (days_number < 1 ) {
    		  days_number=1;
    		  var startdate=new Date(calendar.date.getFullYear(), calendar.date.getMonth(), calendar.date.getDate() - days_number );
    		  startdate_tag.value=startdate.print("%m/%d/%Y");
    	  }
    	  if ( days_tag.selectedIndex != null ) {
    		  days_tag.selectedIndex = days_number-1;
    	  } else {
    		  days_tag.value = days_number;
    	  }
      }
    }
}
