// Predigested, premasticated functions by Macromedia Dreamweaver
// Copyright 2000 Macromedia, Inc. All rights reserved.
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

// Copyright (c) 2001, 2002 by Kulitpuro Heavy Industries Ltd.
// Permission is granted to use this script provided that the above copyright
// is not altered.
function kps_disable_form_elements()
{
  var args = kps_disable_form_elements.arguments;
  var i, b;
  
  return;
  // Temporarily disabled.
  // for (i = 0; i < args.length; i++)
  // {
  //   b = MM_findObj(args[i]); if (b) b.disabled=true;
  // }
}

function kps_chg_bgcol(e, c)
{
  e.style.background=c;
}

function kps_atcount(s)
{
  // Count the number of '@' characters in a string.
  var ac = 0, i = 0;
  while (i < s.length)
  {
    if (s[i] == '@') ac++;
    i++;
  }
  return ac;
}

function kps_blank_string(s)
{
  var i = 0, b = 0;

  if (s.length < 1) return true;
  while (i < s.length)
  {
    if (s[i] == ' ') b++;
    i++;
  }
  if (b == s.length) return true;
  else return false;
}

function kps_validate_value(v, t)
{
  switch (t)
  {
    // In case of numbers, test if it is a valid number.
    case "number":
      if (isNaN(v) || kps_blank_string(v)) return false;
      else return true;
      break;

    // For strings, check for zero length strings.
    case "string":
      if (kps_blank_string(v)) return false;
      else return true;
      break;

    case "email":
      return v.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
      break;
  }
}

function kps_push_error_msg(m, s)
{
  if (m.length < 1) m = "The form contained the following errors\n\n";
  return (m + "* " + s + "\n");
}

// Parameters should be in the sequence 'fieldname', 'field_description', 'field_type'.
function kps_validate_form()
{
  var args = kps_validate_form.arguments;
  var i, b, m;

  m = '';
  for (i=0; i < args.length; i=i+3)
  {
    b = MM_findObj(args[i]);
    if (b)
    {
      if (!kps_validate_value(b.value, args[i+2]))
      {
        switch (args[i+2])
        {
        case "number":
          m = kps_push_error_msg(m, args[i+1]+" is not a number.");
          break;
        case "string":
          m = kps_push_error_msg(m, args[i+1]+" is blank.");
          break;
        case "email":
          m = kps_push_error_msg(m, args[i+1]+" is invalid.");
          break;
        }
      }
    }
    else
    {
      alert('Object '+args[i]+' not found');
      return false;
    }
  }
  if (m.length)
  {
    alert(m); return false;
  }
  else return true;
}

// From Netscape Javascript Guide
// Sets cookie values. Expiration date is optional
// abing@redberger.com: added check for zero length expire parameter.
function setCookie(name, value, expire) {
   document.cookie = name + "=" + escape(value)
   + ((expire == null || expire.length<1) ? "" : ("; expires=" + expire.toGMTString()))
}

// From Netscape Javascript Guide
function getCookie(Name) {
   var search = Name + "="
   if (document.cookie.length > 0) { // if there are any cookies
      offset = document.cookie.indexOf(search) 
      if (offset != -1) { // if cookie exists 
         offset += search.length 
         // set index of beginning of value
         end = document.cookie.indexOf(";", offset) 
         // set index of end of cookie value
         if (end == -1) 
            end = document.cookie.length
         return unescape(document.cookie.substring(offset, end))
      } 
   }
   else return;
}


