//----------------------------------------------------------------------------
// 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("sonoran-sun-resort.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 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 VerifyUserSignupForm()
{
    if ($('#member_first_name').val() == '') {
        $('#modalDialog').html('<p>Please specify your first name.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#member_last_name').val() == '') {
        $('#modalDialog').html('<p>Please specify your last name.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#member_email').val() == '') {
        $('#modalDialog').html('<p>Please specify your email address.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#member_password1').val() == '') {
        $('#modalDialog').html('<p>Please create your password.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#member_password2').val() == '') {
        $('#modalDialog').html('<p>Please re-type your password.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#member_password1').val() != $('#member_password2').val()) {
        $('#modalDialog').html('<p>Password and password confirmation must be the same.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#home_phone').val() == '') {
        $('#modalDialog').html('<p>Please specify your phone number.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#home_state_id').val() == '' || $('#home_state_id').val() == 0) {
        $('#modalDialog').html('<p>Please specify your state.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#home_city').val() == '') {
        $('#modalDialog').html('<p>Please specify your city.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#home_zip').val() == '') {
        $('#modalDialog').html('<p>Please specify your zip code.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    if ($('#home_address').val() == '') {
        $('#modalDialog').html('<p>Please specify your home address.</p>')
            .dialog('option', 'title', 'New Account Sign Up')
            .dialog('open');
        return false;
    }
    return true;
}

function VerifyLoginForm()
{
    if ($('#member_email').val() == '') {
        $('#modalDialog').html('<p>Please enter you email address!</p>')
            .dialog('option', 'title', 'Login to Your Account')
            .dialog('open');
        return false;
    }
    if (!checkemail($('#member_email').val())) {
        $('#modalDialog').html('<p>'+$('#member_email').val()+' is not a valid email address!</p>')
            .dialog('option', 'title', 'Login to Your Account')
            .dialog('open');
        return false;
    }
    if ($('#member_password').val() == '') {
        $('#modalDialog').html('<p>Please enter you password!</p>')
            .dialog('option', 'title', 'Login to Your Account')
            .dialog('open');
        return false;
    }
    return true;
}
function VerifyForgotForm()
{
    if ($('#forgot_email').val() == '') {
        $('#modalDialog').html('<p>Please enter you email address!</p>')
            .dialog('option', 'title', 'Forgot Your Password')
            .dialog('open');
        return false;
    }
    if (!checkemail($('#forgot_email').val())) {
        $('#modalDialog').html('<p>'+$('#forgot_email').val()+' is not a valid email address!</p>')
            .dialog('option', 'title', 'Forgot Your Password')
            .dialog('open');
        return false;
    }
    return true;
}

function VerifyHomePageSearchForm()
{
    if ($('#mortgage_payment').val() == '' || $('#mortgage_payment').val() == 0) {
        $('#modalDialog').html('<p>Please select max mortgage payment.</p>')
            .dialog('option', 'title', 'Buyers, Search Homes')
            .dialog('open');
        return false;
    }
    if ($('#state').val() == '' || $('#state').val() == 0) {
        $('#modalDialog').html('<p>Please select a state.</p>')
            .dialog('option', 'title', 'Buyers, Search Homes')
            .dialog('open');
        return false;
    }
    return true;
}

function verifyReferAFriendForm()
{
    return_flag = false;
    entered_email = false;
    is_error = false;
    for (i=1; i <= 4; i++) {
        email_tag = document.getElementById('refer_email_' + i);
        check_value = 'email address #' + i;
        if (!isBlank(email_tag.value) && email_tag.value != check_value) {
            if (!checkemail(email_tag.value)) {
                $('#modalDialog').html('<p>Please specify a valid email address!</p>')
                    .dialog('option', 'title', 'Email To A Friend')
                    .dialog('open');
                email_tag.focus();
                is_error = true;
            } else {
                entered_email = true;
            }
        }
    }
    if (!is_error && !entered_email) {
        $('#modalDialog').html('<p>No emails were entered. Please specify at least one email.</p>')
            .dialog('option', 'title', 'Email To A Friend')
            .dialog('open');
    }
    image_code_tag = document.getElementById('image_code');
    if (!is_error && entered_email) {
        if (isBlank(image_code_tag.value)) {
            $('#modalDialog').html('<p>Please enter Image Code.</p>')
                .dialog('option', 'title', 'Email To A Friend')
                .dialog('open');
            image_code_tag.focus();
            return_flag = false;
            is_error = true;
            return false;
        }
    }
    if (!is_error && entered_email) {
        return_flag = true;
    }
    return return_flag;
}

function verifyNewsletterSubscribe()
{
    return_flag = true;
    tag = document.getElementById('newsletter_email');
    if (isBlank(tag.value) || tag.value == 'email address') {
        $('#modalDialog').html('<p>Please specify a valid email address!</p>')
            .dialog('option', 'title', 'Stay Connected')
            .dialog('open');
        tag.focus();
        return_flag = false;
    }
    if (((!isBlank(tag.value) && !checkemail(tag.value)) || tag.value == 'email address') && return_flag) {
        $('#modalDialog').html('<p>Please specify a valid email address!</p>')
            .dialog('option', 'title', 'Stay Connected')
            .dialog('open');
        tag.focus();
        return_flag = false;
    }
    return return_flag;
}

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');");
}
