

function updateElement(id, url, highlightid)
  {
    new Ajax.Updater(id, url, {onComplete:function(request){new Effect.Highlight(highlightid);}, evalScripts:true, asynchronous:true});
  }
  
function submitAJAXForm(formid, posturl, updateid, opts)
  {
    
    if(opts == undefined)
      {
        opts = new Object();
        opts.msg_start = null;
        opts.msg_done = null;
        opts.redirect_url = null;
      }
      
    if(opts.msg_start != undefined)
      {
        //new Effect.Fade("zcontent", {to:0.3});
        alertStatus(opts.msg_start);
      }
    
    if(opts.msg_done != undefined && opts.redirecturl != undefined)
      {
        new Ajax.Updater(updateid, posturl, {onComplete:function(request){
          myRedirect(opts.msg_done, opts.redirecturl);
          }, parameters:Form.serialize(formid), evalScripts:true, asynchronous:true});
      }
    else
      new Ajax.Updater(updateid, posturl, {parameters:Form.serialize(formid), evalScripts:true, asynchronous:true});
  }


function hideStatus() {
  $('zstatus').innerHTML = "";
  
  $('zstatus').style.display = "none";
}

function alertStatus(msg) {
  $('zstatus').innerHTML = msg;
  
  $('zstatus').style.display = "block";
}

function myRedirect(msg, url)
  {
    alertStatus(msg);

    setTimeout('myRedirectHelper(\'' + url + '\')', 3000);
  }

function myRedirectHelper(url)
  {
    window.location = url;
  }

function confirmAJAXDelete(updateid, url, msg_start, msg_done, redirecturl)
  {
    if(confirm("Are you sure you wish to delete this record?"))
      {
        new Effect.Fade("zcontent", {to:0.3});
        
        alertStatus(msg_start);
        new Ajax.Updater(updateid, url, {onComplete:function(request){myRedirect(msg_done, redirecturl);}, evalScripts:true, asynchronous:true});
      }
  }
  
function confirmDelete(url)
  {
    if(confirm("Are you sure you wish to delete this record?"))
      {
        document.location = url;
      }
  }

function verifyShowing()
  {
    mls = document.showing.mls_number.value;
    agent1 = document.showing.agent_id[document.showing.agent_id.selectedIndex].value;
    agent2 = document.showing.agent_name.value;

    errormsg = "";

    pass = false;

    if(mls == "")
      errormsg += "Please enter an MLS number.\n";
    else
      pass = true;

    if(agent1 == "0" && agent2 == "")
      {
        errormsg += "Please choose an agent.\n"
        pass = false;
      }
    else
      {
        pass = true;
      }

    if(errormsg != "")
      alert(errormsg);

    return pass;
  }

function donothing()
  {
  }


function toggleFormatting() {

  var fguide = document.getElementById("formatguide");

  if(fguide.style.display == "none")
    fguide.style.display = "block";
  else
    fguide.style.display = "none";
}






function validateForm(formname)
  {
    var formobj = document.getElementById(formname);
    
    var name = formobj.name.value;
    var phone = formobj.phone.value;
    var email = formobj.email.value;

    var errormsg = "";

    var pass = false;

    if(name == "")
      errormsg += "Please enter your Name in the contact field.\n";
    else
      pass = true;

    if(phone == "")
      errormsg += "Please enter your Phone.\n";
    else if (checkInternationalPhone(phone)==false)
      errormsg += "Please enter a valid Phone Number.\n";
    else
      pass = true;

    if(!isEmailAddr(email))
      {
        errormsg += "Please enter a valid e-mail address.\n"
        pass = false;
      }
    else
      {
        pass = true;
      }

    if(errormsg != "")
      {
        pass = false;

        alert(errormsg);
        return pass;

      }
    else
      return pass;
  }
  


function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		formField.focus();
		result = false;
	}
   
  return result;

}
function validRequired(formField,fieldLabel)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}

	return result;
}
function isEmailAddr(email)
{
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(email)) return true;
    else return false;
}  
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}




// Copyright 2006-2007 javascript-array.com

var TimeOut         = 300;
var currentLayer    = null;
var currentitem     = null;
var currentLayerNum = 0;
var noClose         = 0;
var closeTimer      = null;

// Open Hidden Layer
function mopen(n)
{
    var l  = document.getElementById("menu"+n);
    var mm = document.getElementById("mmenu"+n);
	
    if(l)
    {
        mcancelclosetime();
        l.style.visibility='visible';

        if(currentLayer && (currentLayerNum != n))
            currentLayer.style.visibility='hidden';

        currentLayer = l;
        currentitem = mm;
        currentLayerNum = n;			
    }
    else if(currentLayer)
    {
        currentLayer.style.visibility='hidden';
        currentLayerNum = 0;
        currentitem = null;
        currentLayer = null;
	}
}

// Turn On Close Timer
function mclosetime()
{
    closeTimer = window.setTimeout(mclose, TimeOut);
}

// Cancel Close Timer
function mcancelclosetime()
{
    if(closeTimer)
    {
        window.clearTimeout(closeTimer);
        closeTimer = null;
    }
}

// Close Showed Layer
function mclose()
{
    if(currentLayer && noClose!=1)
    {
        currentLayer.style.visibility='hidden';
        currentLayerNum = 0;
        currentLayer = null;
        currentitem = null;
    }
    else
    {
        noClose = 0;
    }

    currentLayer = null;
    currentitem = null;
}

// Close Layer Then Click-out
document.onclick = mclose;