/**************************************************************
   AUTHOR:  Pat Heard (fullahead.org)
   DATE:    2006.04.06
   PURPOSE: Javascript function code base
 **************************************************************/

/* Gets an 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;
}

/* Sets innerHTML of an element */
function setInnerHTML(id, value){
  var elem = $(id);
  if(elem){
    elem.innerHTML = value;
  }
}


/* Gets the current year for copyright info */
function getCurrentYear(){
  var date = new Date();
  document.write(date.getFullYear());
}



/* Show and hide functions for the templates */
function show(id) {
  var elem = $(id);
  if(elem && elem.style){
    elem.style.display = "block";
  }
}

function hide(id) {
  var elem = $(id);
  if(elem && elem.style){
    elem.style.display = "none";
  }
}


/* Clears and fills the value of input fields */
function clearValue(field, value){
  if(field && field.value == value){
    field.value = "";  
  }  
}

function fillValue(field, value){
  if(field && trim(field.value) == ""){
    field.value = value;  
  }
}



/* Form Validation */

function validateForm(f){
  
  var errors = "The following must be corrected:\n\n";
  var count = 0;
  
  for(var i = 0; i < f.elements.length; i++){
    var field = f.elements[i];  
    
    if(field.isOptional || field.disabled) continue;
    
    var type = field.type;
    var value = field.value;
    var name = field.name;
    var fieldName = field.fieldName;

    
    if(type == "text" || type == "textarea" || type == "select-one" || type == "password" || type == "file") {
      
      // Empty check
      if(isEmpty(value)) {
        errors += (++count) + ". " + fieldName + " cannot be left blank\n";
        continue;
      }      
    
      // Email Check
      if(field.isEmail && !isEmail(value)) {
        errors += (++count) + ". " + fieldName + " is not valid\n";
        continue;
      }    
    }
  }
  
  if(count > 0) {
    alert(errors);
    return false;
  }   
  return true;
}


function isEmpty(str){
  return (str == null) || (trim(str).length == 0);
}

function isEmail(str){
  if(isEmpty(str)) return false;
  var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i
  return re.test(str);
}


function trim(str){
  return str.replace( /\s+$/g, "" );
}