/*******************************************************************************
  Watermark - by Clem Flory (with jQuery)
    http://cjflory.cor22.com/
*******************************************************************************/
$(document).ready(function() {
  var deftext = "email address";
  var ml_email = document.getElementById("ml_email");
  $("#ml_email").focus(function(){
    if(ml_email.value == deftext) {
      ml_email.className = "value";
      ml_email.value = "";
    }
  });
  $("#ml_email").blur(function(){
    if(ml_email.value == "") {
      ml_email.className = "empty";
      ml_email.value = deftext;
    }
  });
});


/*******************************************************************************
  DropDown Menus - by SpiceBrains (with jQuery)
    http://javascript-array.com/scripts/jquery_simple_drop_down_menu/
*******************************************************************************/
var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;

function jsddm_open()
{  jsddm_canceltimer();
   jsddm_close();
   ddmenuitem = $(this).find('ul').css('visibility', 'visible');}

function jsddm_close()
{  if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');}

function jsddm_timer()
{  closetimer = window.setTimeout(jsddm_close, timeout);}

function jsddm_canceltimer()
{  if(closetimer)
   {  window.clearTimeout(closetimer);
      closetimer = null;}}

$(document).ready(function()
{  $('#ulmenu > li').bind('mouseover', jsddm_open)
   $('#ulmenu > li').bind('mouseout',  jsddm_timer)});

document.onclick = jsddm_close;


/*******************************************************************************
  Form Validator - by Clem Flory
    http://cjflory.cor22.com/
*******************************************************************************/
// Empty String regular expression (to test if a string is empty).
var emptyString = /^\s*$/ ;

function formVal(theform) {
  var errs = 0;
  var emsg = "";
  
  if(fieldVal(theform.name,     'Name is required!',    '',       '')                   == false) {errs+=1;emsg+="\n  -Please verify your Name";}
  if(fieldVal(theform.email,    'Email is required!',   'email',  'Email is invalid!')  == false) {errs+=1;emsg+="\n  -Please verify your Email Address";}
  if(fieldVal(theform.phone,    '',                     'phone',  'Phone is invalid!')  == false) {errs+=1;emsg+="\n  -Please verify your Phone Number";}
  if(fieldVal(theform.captcha,  'Number is required!',  '',       '')                   == false) {errs+=1;emsg+="\n  -Please verify the Antispam number";}
  if(fieldVal(theform.message,  'Message is required!', '',       '')                   == false) {errs+=1;emsg+="\n  -Please verify your Message";}

  if (errs == 1) alert('There is a field which needs correction before sending\n'+emsg);
  if (errs >  1) alert('There are fields which need correction before sending\n'+emsg);
	if (errs == 0) { theform.submit.disabled = true; theform.cancel.disabled = true; }
	return (errs==0);
}

function fieldVal(field,req,val,valmsg) {
  var row = document.getElementById(field.id+'_row');
  var err = document.getElementById(field.id+'_error');

  // Check if field is required
  if (req != '') {
    // Field is required, make sure there is a value
    if (emptyString.test(field.value)) {
      row.className = "error";
      err.innerHTML = req;
      return false;
    } else {
      // Field is not empty, check if it should
      // be validated. If so, validate it.
      if (emptyString.test(val)) {
        // Field does not need to be validated
        row.className = "";
        if(field.id == 'captcha'){ err.innerHTML = "Enter the number"; }
        else { err.innerHTML = ""; }
        return true;
      } else {
        return checkValid(field,val,valmsg);
      }
    }
  } else {
    // Field not required, but does it need validated?
    if (emptyString.test(val)) {
      // Field does not need to be validated
      row.className = "";
      if(field.id == 'captcha'){ err.innerHTML = "Enter the number"; }
      else { err.innerHTML = ""; }
      return true;
    } else {
      if (emptyString.test(field.value)) {
        // Field does not need to be validated, because it's empty
        row.className = "";
        if(field.id == 'captcha'){ err.innerHTML = "Enter the number"; }
        else { err.innerHTML = ""; }
        return true;
      } else {
        return checkValid(field,val,valmsg);
      }
    }
  }
}

function checkValid(field,val,valmsg) {
  var row = document.getElementById(field.id+'_row');
  var err = document.getElementById(field.id+'_error');
  // Field needs validated
  var regExpr;

  // Validate the email
  if (val == 'email') {
    regExpr = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    if (regExpr.test(field.value)) {
      // Field is OK
      row.className = "";
      if(field.id == 'captcha'){ err.innerHTML = "Enter the number"; }
      else { err.innerHTML = ""; }
      return true;
    }
    else {
      // Field did not validate successfully
      row.className = "error";
      err.innerHTML = valmsg;
      return false;
    }
  }

  // Validate the phone
  else if (val == 'phone') {
    // Validate the phone number using regular expressions.
    regExpr = /^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/ ;
    if (regExpr.test(field.value)) {
      // Field is OK
      row.className = "";
      if(field.id == 'captcha'){ err.innerHTML = "Enter the number"; }
      else { err.innerHTML = ""; }
      return true;
    }
    else {
      // Field did not validate successfully
      row.className = "error";
      err.innerHTML = valmsg;
      return false;
    }
  }
}
