
///////////// HORISONTAL MENU FUNCTIONS ////////////////////////////////////////////////////////

var menuArray = new Array();
menuArray[0] = 0;
menuArray[1] = 0;
menuArray[2] = 0;
 
var submenuElArray = new Array();
submenuElArray[0]="hor_sub1";
submenuElArray[1]="hor_sub2";
submenuElArray[2]="hor_sub3";

var submenuTdElArray = new Array();
submenuTdElArray[0]="hor_td1";
submenuTdElArray[1]="hor_td2";
submenuTdElArray[2]="hor_td3";

var submenuArray = new Array();
submenuArray[0]=0;
submenuArray[1]=0;
submenuArray[2]=0;

//// Next level of submenu ///

var menu1Array = new Array();
menu1Array[0] = 0;
menu1Array[1] = 0;
menu1Array[2] = 0;

var submenu1ElArray = new Array();
submenu1ElArray[0]="hor_sub4";
submenu1ElArray[1]="hor_sub5";
submenu1ElArray[2]="hor_sub6";

var submenu1Array = new Array();
submenu1Array[0]=0;
submenu1Array[1]=0;
submenu1Array[2]=0;

function HorSwitchMenu (obj)
{
   if(document.getElementById)
   {
      var el = document.getElementById(obj);

      for ( var i=0; i < submenuElArray.length; i++ )
      {
         var elMenu = document.getElementById(submenuElArray[i]);
         elMenu.style.display = "none";
      }
      el.style.display = "block";
   }
}

function SetMenuOn (id)
{
   //alert("SetMenuOn: id=" + id);

   if ( menuArray[id] == 0 )
   {
     HorSwitchMenu (submenuElArray[id]);
   }
   menuArray[id] = 1;

   var el = document.getElementById(submenuTdElArray[id]);
   el.className = "menulink_hover";
   
   document.all.brahms.src="sound/menu" + id + ".wav";
}

function SetMenuOff (id)
{
   //alert("SetMenuOff: id=" + id);

   menuArray[id] = 0;
   DelayCloseSubmenu(id);

}

function SetSubmenuOn (id)
{
   //alert ( "SetSubmenuOn: id=" +id );

   submenuArray[id] = 1;

}

function CloseSubmenu (id)
{
   //alert("CloseSubmenu: id=" + id);

   if (document.getElementById)
   {     
     var el = document.getElementById(submenuElArray[id]);
     if ( menuArray[id] == 0 && submenuArray[id] == 0 )
     {
        el.style.display = "none";
        var el1 = document.getElementById(submenuTdElArray[id]);
        el1.className = "menulink";
     }     
  }
}

function DelayCloseSubmenu (id)
{
   //alert("DelayCloseSubmenu: id=" +id);

   submenuArray[id] = 0;
   var functionCall = "CloseSubmenu('" + id + "')";
   //alert(functionCall);
   setTimeout ( functionCall, 500 );

}

function OutHorSubmenu (el)
{ 
  el.style.background='url(images/hor_submenu.gif)';
}

function OverHorSubmenu (el)
{
  el.style.background='url(images/hor_submenu_o.gif)';
  //alert(el.id);
 // document.all.brahms.src="sound/" + el.id + ".wav";
 document.all.brahms.src="sound/default.wav"; 
}

//// Next level of submenu ///

function SetMenuOn1 (parent_menu_id, id, el1)
{
   //alert("SetMenuOn1: id=" + id);

   if (document.getElementById)
   {
      var el = document.getElementById(submenu1ElArray[id]);
      el.style.display = "block";

      menu1Array[id] = 1;
      closeUnselectedSubmenu (id);

      document.all.brahms.src="sound/default.wav";
      
      OverHorSubmenu(el1);
   }
}

function SetMenuOff1 (parent_menu_id, id, el1)
{
   //alert("SetMenuOff1: id=" + id);

   menu1Array[id] = 0;
   DelayCloseSubmenu1(parent_menu_id, id);

   OutHorSubmenu(el1);
}

function SetSubmenuOn1 (parent_menu_id, id)
{
   //alert ("SetSubmenuOn1: id=" + id);
   submenu1Array[id] = 1;
   SetMenuOn (parent_menu_id);
}

function CloseSubmenu1 (parent_menu_id, id)
{
   //alert("CloseSubmenu1: id=" + id);
   //alert("CloseSubmenu1: parent_menu_id=" + parent_menu_id); 

   if (document.getElementById)
   {     
     var el = document.getElementById(submenu1ElArray[id]);
     if ( menu1Array[parent_menu_id] == 0 && submenu1Array[id] == 0 )
     {
        el.style.display = "none";
        var result = isSubmenuOpened ();
        //alert (result);
        if ( result == "no" )
        { 
          SetMenuOff ( parent_menu_id );
          //alert ("Alla");
        }
     }
  }
}

function DelayCloseSubmenu1 (parent_menu_id, id)
{
   //alert("DelayCloseSubmenu1: id=" +id);

   submenu1Array[id] = 0;
   var functionCall = "CloseSubmenu1('" + parent_menu_id + "','" + id + "')";
   //alert(functionCall);
   setTimeout ( functionCall, 500 );
}

function isSubmenuOpened ()
{
  var result = "no";
  for ( var i=0; i < submenu1Array.length; i++ )
  {
    if ( submenu1Array[i] == 1 )
    {
      result = "yes";
    } 
  }  
  return result;
}

function closeUnselectedSubmenu (id)
{
  //alert ("closeUnselectedSubmenu: id=" + id);
  for ( var i=0; i < submenu1Array.length; i++ )
  {
    if ( i != id )
    {
      var el = document.getElementById(submenu1ElArray[i]);
      el.style.display = "none";
      submenu1Array[i] = 0;
      //alert (submenu1ElArray[i]);
    } 
  }  
}


// -----------------------------------------------

// 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;
}

// -----------------------------------------------

