/* Preload Images */
var imgs = new Array();
imgs[0] = new Image();
imgs[0].src = "images/bg/submenu_triangle_on.gif";
imgs[1] = new Image();
imgs[1].src = "images/icons/contact_on.gif";
imgs[2] = new Image();
imgs[2].src = "images/icons/home_on.gif";
imgs[3] = new Image();
imgs[3].src = "images/icons/directions_on.gif";
imgs[4] = new Image();
imgs[4].src = "images/icons/spec_sheet_on.gif";


/* Gets the current year for copyright info */
function writeCurrentYear(){
  var date = new Date();
  document.write(date.getFullYear());
}



/* Image Rollovers */
function rollover(id){
  var img = $(id);
  if(img && img.src){
    img.src = img.src.replace(/(\.[a-z0-9]+)$/i,'_on$1');
  }
}

function rollout(id){
  var img = $(id);
  if(img && img.src){
    img.src = img.src.replace(/_on(\.[a-z0-9]+)$/i,'$1');
  }
}


/* Get dom element */
function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string') 
      element = document.getElementById(element); 
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}


/*
 *  Form Validation
 */

function validateForm(f){
  
  var errors = "(ERROR) The following must be corrected:\n\n";
  var count = 0;
  var errField = null;
  
  for(var i = 0; i < f.elements.length; i++){
    var field = f.elements[i];  

    var type = field.type;
    var value = field.value;
    var name = field.name;
    
    // Not checking optional or disabled
    if(field.isOptional || field.disabled) continue;
    
    if(type == "text" || type == "textarea" || type == "select-one" || type == "password" || type == "file") {
      
      // Empty check
      if(isEmpty(value)) {
        errors += (++count) + ". " + convertName(name) + " cannot be left blank\n";        
        continue;
      }   
    
      // Email check
      if(field.isEmail && !isEmail(value)) {
        errors += (++count) + ". " + convertName(name) + " must be a valid address\n";
        continue;
      }  
      
      errField = (!errField) ? errField = field : errField;
    }
  }
  
  if(count > 0) {
    alert(errors);    
    if(errField) errField.focus();    
    return false;
  }   
  return true;
}

function isEmpty(str){
  return (str == null) || (trim(str).length == 0);
}

function isEmail(str){
  var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
  return re.test(str);
}

function trim(str){
  return str.replace( /\s+$/g, "" );
}

function convertName(str){
  str = str.charAt(0).toUpperCase() + str.substr(1);
  return str.replace(/_/g, " ");
}

function setFieldFocus(form){  
  
  if(form != null && form.elements[0] != null) {  
    for(var i = 0; i < form.length; i++){
      if(form.elements[i].type != "hidden" &&
         !form.elements[i].disabled &&
         !form.elements[i].readOnly){
           form.elements[i].focus();
           break;         
      }    
    }
  }
}