/***********************************************
* Switch Menu script- by Martial B of http://getElementById.com/
* Modified by Dynamic Drive for format & NS4/IE4 compatibility
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var persistmenu="yes" //"yes" or "no". Make sure each SPAN content contains an incrementing ID starting at 1 (id="sub1", id="sub2", etc)
var persisttype="sitewide" //enter "sitewide" for menu to persist across site, "local" for this page only

if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}

function InitMenu(obj){
	if(document.getElementById){
	var el = document.getElementById(obj);
	var ar = document.getElementById("masterdiv").getElementsByTagName("span"); //DynamicDrive.com change
	for (var i=0; i<ar.length; i++){
		if (ar[i].className=="submenu") //DynamicDrive.com change
		ar[i].style.display = "none";
	}
	if ( el != null )
	el.style.display = "block";	
	}
}

function SwitchMenu(obj){
	if(document.getElementById){
	var el = document.getElementById(obj);
	var ar = document.getElementById("masterdiv").getElementsByTagName("span"); //DynamicDrive.com change
		if(el.style.display != "block"){ //DynamicDrive.com change
			/*for (var i=0; i<ar.length; i++){
				if (ar[i].className=="submenu") //DynamicDrive.com change
				ar[i].style.display = "none";
			}*/
			el.style.display = "block";
		}else{
			el.style.display = "none";
		}
	}
}

function get_cookie(Name) { 
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) { 
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function onloadfunction(){
/*if (persistmenu=="yes"){
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=get_cookie(cookiename)
if (cookievalue!="")
document.getElementById(cookievalue).style.display="block"
}*/

  var el = document.getElementById(page_id);
  if ( el != null )
  {
     el.style.color = "red";
     el.style.background='url(../../gen_html/images/submenu_a.gif)';
  }
}

function savemenustate(){
var inc=1, blockid=""
while (document.getElementById("sub"+inc)){
if (document.getElementById("sub"+inc).style.display=="block"){
blockid="sub"+inc
break
}
inc++
}
var cookiename=(persisttype=="sitewide")? "switchmenu" : window.location.pathname
var cookievalue=(persisttype=="sitewide")? blockid+";path=/" : blockid
document.cookie=cookiename+"="+cookievalue
}

if (window.addEventListener)
window.addEventListener("load", onloadfunction, false)
else if (window.attachEvent)
window.attachEvent("onload", onloadfunction)
else if (document.getElementById)
window.onload=onloadfunction

if (persistmenu=="yes" && document.getElementById)
window.onunload=savemenustate

function OutMenu (el)
{
  el.style.background='url(../../gen_html/images/menu.gif)';
}

function OverMenu (el)
{ 
  el.style.background='url(../../gen_html/images/menu_o.gif)';
}

function OutSubmenu (el)
{ 
//  el.style.background="#ffffff";
  el.style.background='url(../../gen_html/images/submenu.gif)';
  if ( el.style.color != "red")
  {
    el.style.color="#404040";
  }
}

function OverSubmenu (el)
{
// el.style.background="#808080";
  el.style.background='url(../../gen_html/images/submenu_o.gif)';
  if ( el.style.color != "red")
  {
     el.style.color="#410070";
  }
}

function getOverImgId (el)
{
   return ( el.id + '_img' );
}

function OutSubmenu1 (el)
{ 
   el.getElementsByTagName("span")[0].style.display = "block";   

   var over_img             = document.getElementById( getOverImgId (el) );
   over_img.style.display = "none"; 
   //alert(getOverImgId (el) + " : " + over_img);
}

function OverSubmenu1 (el)
{
  el.getElementsByTagName("span")[0].style.display = "none";   

  var over_img             = document.getElementById( getOverImgId (el) );
  over_img.style.display = "block"; 

  //alert(getOverImgId (el) + " : " + over_img);
}

function ChangePage (el, page_name, tmpl_id)
{
   ChangePage1 (el.id, page_name, tmpl_id)
}

function ChangePage2 ( submenu_id, page_name )
{
  SwitchMenu( submenu_id );
  ChangePage1 ( submenu_id, page_name, 1 );
}

///////////// HORISONTAL MENU FUNCTIONS ////////////////////////////////////////////////////////

var hor_menu1=0;
var hor_menu2=0;

var hor_submenu1=0;
var hor_submenu2=0;

function HorSwitchMenu(obj)
{
   if(document.getElementById)
   {
      var el = document.getElementById(obj);
      var ar = document.getElementById("hor_masterdiv").getElementsByTagName("span"); 
      for (var i=0; i<ar.length; i++)
      {
          if (ar[i].className=="hor_submenu") ar[i].style.display = "none";
      }
      el.style.display = "block";
   }
}

function SetMenuOn(id)
{
   //alert("SetMenuOn");
   if(id == 1)
   {
      if ( hor_menu1 == 0 )
           HorSwitchMenu('hor_sub1');
      var el = document.getElementById('hor_td1');
      el.className = "menulink_hover";
      hor_menu1 = 1;
   }
   if(id == 2)
   {
      if ( hor_menu2 == 0 )
           HorSwitchMenu('hor_sub2');
      hor_menu2 = 1;
   }
}

function SetMenuOff(id)
{
   //alert("SetMenuOff");
   if(id == 1)
   {
      hor_menu1 = 0;
   }
   if(id == 2)
   {
      hor_menu2 = 0;
   }
   DelayCloseSubmenu(id);
}

function SetSubmenuOn(sub_id)
{
   //alert("SetSubmenuOn");
   if(sub_id == 1)
   {
      hor_submenu1 = 1;
   }
   if(sub_id == 2)
   {
      hor_submenu2 = 1;
   }
}

function CloseSubmenu(sub_id)
{
   //alert("CloseSubmenu: hor_menu1=" + hor_menu1 + "hor_submenu1=" + hor_submenu1);
   if(document.getElementById)
   {
      if(sub_id == 1)
     {
        var el   = document.getElementById('hor_sub1');
        if(hor_menu1==0 && hor_submenu1 == 0)
        {
           el.style.display = "none";
           var el = document.getElementById('hor_td1');
           el.className = "menulink";
        }
     }
     if(sub_id == 2)
     {
        var el = document.getElementById('hor_sub2');
        if(hor_menu2==0 && hor_submenu2 == 0)
        {
            el.style.display = "none";
        }
     }
  }
}

function DelayCloseSubmenu(sub_id)
{
   //alert("DelayCloseSubmenu");
   if(sub_id == 1)
   {
      hor_submenu1 = 0;
      setTimeout("CloseSubmenu('1')", 350);  
   }
   if(sub_id == 2)
   {
      hor_submenu2 = 0;
      setTimeout("CloseSubmenu('2')", 350);  
   }
}

function OutHorSubmenu (el)
{ 
  el.style.background='url(../../gen_html/images/hor_submenu.gif)';
}

function OverHorSubmenu (el)
{
  el.style.background='url(../../gen_html/images/hor_submenu_o.gif)';
}

// -----------------------------------------------

// these are functions of form fields validation

// -----------------------------------------------

function checkContactForm ()
{

  if (!validRequired(contact_form.FirstName, "First Name"))
      return false;

  if (!validRequired(contact_form.LastName, "Last Name"))
      return false;

  if (!validRequired(contact_form.DaytimePhone, "Daytime Phone"))
      return false;

  if (!validPhone(contact_form.DaytimePhone, "Daytime Phone"))
      return false;

  if (!validEmail(contact_form.Email, "Email Address"))
      return false;

  if (!validRequired(contact_form.Message, "Message"))
      return false;
 
  if (!checkTextareaLength(contact_form.Message, "Message"))
      return false;

  validateText(contact_form.Message);

  return true;
}

function checkContactForm1 ()
{

  if (!validRequired(contact_form.FirstName, "First Name"))
      return false;

  if (!validRequired(contact_form.LastName, "Last Name"))
      return false;

  if (!validRequired(contact_form.DaytimePhone, "Daytime Phone"))
      return false;

  if (!validPhone(contact_form.DaytimePhone, "Daytime Phone"))
      return false;

  if (!validEmail(contact_form.Email, "Email Address"))
      return false;

  if (!validRequired(contact_form.Message, "Message"))
      return false;
 
  if (!checkTextareaLength(contact_form.Message, "Message"))
      return false;

  validateText(contact_form.Message);

  if (!validRequired(contact_form.Street, "Street"))
      return false;

  if (!validRequired(contact_form.City, "City"))
      return false;

  if (!validRequired(contact_form.Province, "Province"))
      return false;

  if (!validRequired(contact_form.PostalCode, "PostalCode"))
      return false;

  return true;
}

function checkContactForm2 ()
{

  if (!validRequired(contact_form.FirstName, "First Name"))
      return false;

  if (!validRequired(contact_form.LastName, "Last Name"))
      return false;

  if (!validRequired(contact_form.DaytimePhone, "Daytime Phone"))
      return false;

  if (!validPhone(contact_form.DaytimePhone, "Daytime Phone"))
      return false;

  if (!validEmail(contact_form.Email, "Email Address"))
      return false;

  if (!validRequired(contact_form.fFirstName, "Friend's First Name"))
      return false;

  if (!validRequired(contact_form.fLastName, "Friend's Last Name"))
      return false;

  if (!validRequired(contact_form.fDaytimePhone, "Friend's Daytime Phone"))
      return false;

  if (!validPhone(contact_form.fDaytimePhone, "Friend's Daytime Phone"))
      return false;

  if (!validEmail(contact_form.fEmail, "Friend's Email Address"))
      return false;

  if (!validRequired(contact_form.Message, "Message"))
      return false;
 
  if (!checkTextareaLength(contact_form.Message, "Message"))
      return false;

  validateText(contact_form.Message);

  return true;
}

function checkTextareaLength(formField, fieldLabel)
{
  var result = true;

  if(formField.value.length > 2000)
  {
     alert('Number of characters for the "' + fieldLabel +'" field exceeds max: 2,000');
     formField.focus();
     result = false;
  }

  return result;    
}

function checkTextareaLength1(formField, fieldLabel, length)
{
  var result = true;

  if(formField.value.length > length)
  {
     alert('Number of characters for the "' + fieldLabel +'" field exceeds max: ' + length);
     formField.focus();
     result = false;
  }

  return result;    
}

function validRequired(formField, fieldLabel)
{
  var result = true;
	
  if (formField.value == "")
  {
     alert('Please enter a value for the "' + fieldLabel +'" field');
     formField.focus();
     result = false;
  }
	
  return result;
}

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validEmail(formField,fieldLabel)
{
  var result = true;

  if (!validRequired(formField,fieldLabel))
     result = false;
	
  if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
  {
     alert("Please enter a complete email address in the form: yourname@yourdomain.com");
     formField.focus();
     result = false;
  }
   
  return result;
}

function allDigits(str)
{
  return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
  var result = true;

  // Note: doesn't use regular expressions to avoid early Mac browser bugs	
  for (var i=0;i<str.length;i++)
  if (charset.indexOf(str.substr(i,1))<0)
  {
    result = false;
    break;
  }
	
  return result;
}

function validateText(formField)
{
  var in_str  = formField.value;
  var out_str = "";
  for ( var i = 0; i < formField.value.length; i++ )
  {
     var chCode = in_str.charCodeAt(i);
     // (< 60) (> 62) (' 39) (" 34)
     if ( chCode == 39 || chCode == 34 )
     {
       out_str = out_str + '`';
     }

     if( chCode != 39 && chCode != 34 )
     {
       out_str = out_str + in_str.charAt(i);
       //alert (out_str + " : " + in_str.charAt(i));
     }
  }
  //alert(out_str);

  //var re = /\n/g;
  //var out_str1 = out_str.replace (re, "<br>");

  //formField.value = out_str1;  
  formField.value = out_str;  

}

function showText(formField)
{
  var in_str  = formField.value;

  var re = /<br>/g;
  var out_str = in_str.replace (re, "\n");

  formField.value = out_str;  
}

function validPhone(formField,fieldLabel)
{
  var result = true;
  if (!validRequired(formField,fieldLabel))
     result = false;
	
  if (!inValidCharSet(formField.value, " -0123456789"))
  {
     alert('Use only digits for the"' + fieldLabel +'" field');

     formField.focus();
     result = false;
  }
   
  return result;
}

// -----------------------------------------------
