//----------------------------------------------------------------------------
// Code to determine the browser and version.
//----------------------------------------------------------------------------
function Browser() {
  var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isOP    = false;  // Opera
  this.isNS    = false;  // Netscape
  this.version = null;

  ua = navigator.userAgent;

  s = "Opera";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isOP = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as Netscape 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }

  s = "MSIE";
  if ((i = ua.indexOf(s))) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
}


function isBlank(val) {
        if (val.length == 0) { return true; }
        for (var i=0; i < val.length; i++) {
                if ((val.charAt(i) != ' ') && (val.charAt(i) != "\t") && (val.charAt(i) != "\n")) { return false; }
        }
        return true;
}

function redirectPage(page) {
  return false; //for now
}


function checkAll2(checkboxes,flag,button) {
  var newValue=true;
    if(flag.value=='true') {
    newValue=true;
        flag.value='false';
        button.value='Uncheck All';
    } else {
    newValue=false;
        flag.value='true';
        button.value='Check All';
    }

    for(var i=0;i<checkboxes.length;i++) {
        checkboxes[i].checked = newValue;
    }

  return true;
}

function checkAll(checkboxes,value) {
  value = true;
    for(var i=0;i<checkboxes.length;i++) {
        checkboxes[i].checked = value;
    }
}
function checkemail(str){
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (filter.test(str)) return true; else return false;
}

function checkurl(str) {
  var filter=/^http\:\/\/((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?).*$/i
  if (filter.test(str)) return true; else return false;
}

function validateCreditCard(s) {
var v = "0123456789";
var w = "";
for (var i=0; i < s.length; i++) {
x = s.charAt(i);
if (v.indexOf(x,0) != -1)
w += x;
}
var j = w.length / 2;
if (j < 6.5 || j > 8 || j == 7) return false;
var k = Math.floor(j);
var m = Math.ceil(j) - k;
var c = 0;
for ( i=0; i<k; i++) {
a = w.charAt(i*2+m) * 2;
c += a > 9 ? Math.floor(a/10 + a%10) : a;
}
for ( i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
return (c%10 == 0);
}

function checklogin(str) {
  var filter=/^[\w-\ ]{4,16}$/i
  if (filter.test(str)) return true; else return false;
}

function checkpassword(str) {
  var filter=/^[\w-\ ]{6,16}$/i
  if (filter.test(str)) return true; else return false;
}

function checkdate(str) {
  var filter=/^\d\d\d\d-\d\d-\d\d$/
  if (filter.test(str)) return true; else return false;
}

function checkdate2(str) {
  var filter=/^\d{1,2}\/\d{1,2}\/\d{2,4}$/
  if (filter.test(str)) return true; else return false;
}

function check_usdate(str) {
  var filter=/^\d{1,2}\/\d{1,2}\/\d{2,4}$/
  if (filter.test(str)) return true; else return false;
}

function compare_dates(date1, date2){
  var arrDate1 = date1.split("/");
  var arrDate2 = date2.split("/");
  var rdate1= new Date(arrDate1[2],arrDate1[0]-1,arrDate1[1]);
  var rdate2= new Date(arrDate2[2],arrDate2[0]-1,arrDate2[1]);
  if ( rdate1 > rdate2) return false; else return true;
}


function compare_dates_strong(date1, date2){
  var arrDate1 = date1.split("/");
  var arrDate2 = date2.split("/");
  var rdate1= new Date(arrDate1[2],arrDate1[0]-1,arrDate1[1]);
  var rdate2= new Date(arrDate2[2],arrDate2[0]-1,arrDate2[1]);
  if ( rdate1 >= rdate2) return false; else return true;
}

function date_tousformat(date) {
  var y=date.getFullYear();
  var m=date.getMonth()+1;
  var d=date.getDate();
  if (m<10) m='0'+m;
  if (d<10) d='0'+d;
  return m+'/'+d+'/'+y;
}

function checkoccupants(str) {
  var filter=/^\d$/
  if (filter.test(str)) return true; else return false;
}

function checknumber(str) {
  var filter=/^\d+$/
  if (filter.test(str)) return true; else return false;
}

function checkprice(str) {
  var filter=/^\d*(\.\d+)?$/
  if (filter.test(str)) return true; else return false;
}

function checkanynumber(str) {
  var filter=/^[\d\-]*(\.\d+)?$/
  if (filter.test(str)) return true; else return false;
}

function popUp(URL)
{
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=800,height=660,left = 0,top = 0');");
}

function openPopup(theURL,w, h) {
        var left = (screen.width - w) / 2;
        var top = (screen.height - h) / 2;
        var twindow=window.open(theURL,'_blank',"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,left="+left+",top="+top+",width="+w+",height="+h);
        twindow.focus();
}

function replaceLocation(href) {
    window.open(href,'_self',"",false);
    return;
}

function openPage(file,target) {
    if (target != '')
        target.window.location.href = file;
    else
        window.location.href = file;
}

function ShowTip(fArg) {
  var tooltipOBJ = (document.getElementById) ? document.getElementById('tt' + fArg) : eval("document.all['tt" + fArg + "']");
  if (tooltipOBJ != null) {
    var tooltipLft = (document.body.offsetWidth?document.body.offsetWidth:document.body.style.pixelWidth) - (tooltipOBJ.offsetWidth?tooltipOBJ.offsetWidth:(tooltipOBJ.style.pixelWidth?tooltipOBJ.style.pixelWidth:380)) - 30;
    var tooltipTop = 10;
    if  (navigator.appName == 'Netscape')  {
      tooltipTop = (document.body.scrollTop>=0?document.body.scrollTop+10:event.clientY+10);
      tooltipOBJ.style.top = tooltipTop+"px";
      tooltipOBJ.style.left = tooltipLft+"px";
    } else {
      tooltipTop = (document.body.scrollTop>=0?document.body.scrollTop+10:event.clientY+10);
      tooltipTop = (document.body.scrollTop>=0?document.body.scrollTop+10:event.clientY+10);
      if ((event.clientX > tooltipLft) && (event.clientY < (tooltipOBJ.scrollHeight?tooltipOBJ.scrollHeight:tooltipOBJ.style.pixelHeight) + 10)) {
        tooltipTop = (document.body.scrollTop?document.body.scrollTop:document.body.offsetTop) + event.clientY + 20;
      }
      tooltipOBJ.style.left = tooltipLft;
      tooltipOBJ.style.top = tooltipTop;
    }
    tooltipOBJ.style.visibility = "visible";
  }
}

function HideTip(fArg) {
  var tooltipOBJ = (document.getElementById) ? document.getElementById('tt' + fArg) : eval("document.all['tt" + fArg + "']");
  if (tooltipOBJ != null) {
    tooltipOBJ.style.visibility = "hidden";
  }
}

function changeCurentPage(page_tag, curl) {
  var page_id=page_tag.options[page_tag.selectedIndex].value;
  eval("parent.location='"+curl+"&page="+page_id+"'");
}


function set_page_header(title)
{
	if (document.referrer && document.getElementById('page_header_id') != null) {
		var ref = document.referrer.toLowerCase();
		if (ref != '' && ref.indexOf("google") != -1 && ref.indexOf("sun.myadminarea.com") != -1) {
			var tag = document.getElementById('page_header_id');
			tag.innerHTML = title;
		}
	}
}

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

function disallowBDateStatic(date)
{
    if ( date < low_limit_dateb )  return true; else return false;
}

function AdateChangedStatic(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 BdateChangedStatic(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;
            }
        }
    }
}

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

function disallowBDate(date)
{
    if ( date < low_limit_dateb )  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 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;
            }
        }
    }
}

function AdateChangedInquiry(calendar)
{
    if (calendar.dateClicked) {
        var enddate_tag=document.getElementById('inquiry_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 BdateChangedInquiry(calendar)
{
    if (calendar.dateClicked) {
        var startdate_tag=document.getElementById('inquiry_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;
            }
        }
    }
}

function disallowADatem(date)
{
    if ( date < low_limit_datea_m )  return true; else return false;
}

function disallowBDatem(date)
{
    if ( date < low_limit_dateb_m )  return true; else return false;
}

function AdateChangedInquirym(calendar)
{
    if (calendar.dateClicked) {
        var enddate_tag=document.getElementById('inquiry_m_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 BdateChangedInquirym(calendar)
{
    if (calendar.dateClicked) {
        var startdate_tag=document.getElementById('inquiry_m_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;
            }
        }
    }
}

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 validate_homepage_check_availability()
{
    var reDate = /\d{1,2}\/\d{1,2}\/\d{4}/
    if (!$('#startdate').attr('value').match(reDate)) {
        $('#modalDialog').html('<p>Please specify the check-in date. The format is mm/dd/YYYY.</p>')
            .dialog('option', 'title', 'Check Availability')
            .dialog('open');
        return false;
    }
    if (!$('#enddate').attr('value').match(reDate)) {
        $('#modalDialog').html('<p>Please specify the check-out date. The format is mm/dd/YYYY.</p>')
            .dialog('option', 'title', 'Check Availability')
            .dialog('open');
        return false;
    }
    if ($('#occupants').val() < 1) {
        $('#modalDialog').html('<p>Please specify a number of adults.</p>')
            .dialog('option', 'title', 'Check Availability')
            .dialog('open');
        return false;
    }
    return true;
}

function show_dialog_inquiry_form_for_all()
{
    $("#dialog-inquiry-m-form").dialog("open");
}

function show_popup_page(URL) {
  var day = new Date();
  var id = day.getTime();
  eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=400,left = 0,top = 0');");
}
