function lastSibling(node)
{
  var tempObj=node.parentNode.lastChild;
  while(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
  {
    tempObj=tempObj.previousSibling;
  }
  return (tempObj.nodeType==1)?tempObj:false;
}

function firstSibling(node)
{
  var tempObj=node.parentNode.firstChild;
  while(tempObj.nodeType!=1 && tempObj.nextSibling!=null)
  {
    tempObj=tempObj.nextSibling;
  }
  return (tempObj.nodeType==1)?tempObj:false;
}

function closestSibling(node,direction)
{
  var tempObj;
  if(direction==-1 && node.previousSibling!=null)
  {
    tempObj=node.previousSibling;
    while(tempObj.nodeType!=1 && tempObj.previousSibling!=null)
    {
       tempObj=tempObj.previousSibling;
    }
  }
  else if(direction==1 && node.nextSibling!=null)
  {
    tempObj=node.nextSibling;
    while(tempObj.nodeType!=1 && tempObj.nextSibling!=null)
    {
      tempObj=tempObj.nextSibling;
    }
  }
  return tempObj.nodeType==1?tempObj:false;
}

function insert_flash(flash_src, flash_width, flash_height, flash_title) {
  document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + flash_width + '" height="' + flash_height + '" title="' + flash_title + '"><param name="wmode" value="transparent"/><param name="movie" value="' + flash_src + '" /><param name="quality" value="high" /><embed src="' + flash_src + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + flash_width + '" height="' + flash_height + '" scale="noborder" wmode="transparent"></embed></object>');
}

function checkemail(str) {
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  return filter.test(str);
}

function numbersOnly(evt) {
  evt = (evt) ? evt : window.event;
  var charCode = (evt.which) ? evt.which : evt.keyCode;
  if (charCode > 31 && (charCode < 48 || charCode > 57)) {
    return false;
  }
  return true;
}

function lettersOnly(evt) {
  evt = (evt) ? evt : event;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
    ((evt.which) ? evt.which : 0));
  if (charCode > 32 && (charCode < 65 || charCode > 90) && 
    (charCode < 97 || charCode > 122)) {
    return false;
  }
  return true;
}

function isEnterKey(evt) {
  evt = (evt) ? evt : event;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : 
    ((evt.which) ? evt.which : 0));
    
  if (charCode == 13)
    return true;
  else
    return false;
}

function init_validate_form(form_name, form_data, error_box) {
  if (error_box == false)
    eval("document." + form_name + ".onsubmit = function() { return validate_form('" + form_name + "', form_data, false, false); } ");
  else
    eval("document." + form_name + ".onsubmit = function() { return validate_form('" + form_name + "', form_data, '" + error_box + "', false); } ");
  
  eval("var current_form = document." + form_name);
  for (var i = 0; i < current_form.length; i++) {
    for (var j = 0; j < form_data.length; j++) {
      if (current_form[i].name == form_data[j][0]) {
        if (error_box == false)
          eval("document." + form_name + "." + current_form[i].name + ".onblur = function() { validate_form('" + form_name + "', form_data, false, '" + current_form[i].name + "'); } ");
        else
          eval("document." + form_name + "." + current_form[i].name + ".onblur = function() { validate_form('" + form_name + "', form_data, '" + error_box + "', '" + current_form[i].name + "'); } ");
      }
    }
  }
}

function validate_form(form_name, temp_form_data, error_box, field_name) {
  var eval_validate_str = "var eval_validate_return = true; ";
  if (error_box != false) 
    eval_validate_str += "var error_box_str = document.getElementById('" + error_box + "').innerHTML; ";
  
  if (field_name != "") {
    for (var j = 0; j < temp_form_data.length; j++) {
      if (temp_form_data[j][0] == field_name) {
        var form_data = new Array();
        form_data[0] = temp_form_data[j]; break;
      }
    }
  }
  else
    var form_data = temp_form_data;
  
  for (var i = 0; i < form_data.length; i++) {
    if (error_box == false) {
      if (form_data[i][1].indexOf("func:") == 0)
        eval_validate_str += "if (!" + form_data[i][1].replace('func:', '') + "(document." + form_name + "." + form_data[i][0] + ".value)) ";
      else
        eval_validate_str += "if (document." + form_name + "." + form_data[i][0] + "." + form_data[i][1] + ") ";
      eval_validate_str += "{ document.getElementById('" + form_data[i][0] + "_error').innerHTML = '" + form_data[i][2] + "'; eval_validate_return = false } ";
      eval_validate_str += "else document.getElementById('" + form_data[i][0] + "_error').innerHTML = ''; ";
    }
    else {
      eval_validate_str += "error_box_str = error_box_str.replace('" + form_data[i][2] + " <br>', ''); ";
      eval_validate_str += "error_box_str = error_box_str.replace('" + form_data[i][2] + " <BR>', ''); "; //fix ie
      if (form_data[i][1].indexOf("func:") == 0)
        eval_validate_str += "if (!" + form_data[i][1].replace('func:', '') + "(document." + form_name + "." + form_data[i][0] + ".value)) ";
      else
        eval_validate_str += "if (document." + form_name + "." + form_data[i][0] + "." + form_data[i][1] + ") ";
      eval_validate_str += "{ error_box_str += '" + form_data[i][2] + " <br>'; eval_validate_return = false } ";
    }
  }
  if (error_box != false) 
    eval_validate_str += "document.getElementById('" + error_box + "').innerHTML = error_box_str";

  eval(eval_validate_str); 
  return eval_validate_return;
}

function womGo(){
  for(var i = 0;i < woms.length;i++)
    eval(woms[i]);
}

function womAdd(func){
  woms[woms.length] = func;
}

var woms = new Array();

window.onload = womGo;

