/*
   file: utility.js
   usage: utility javascript file
   created: October 12, 2009
   author: Calvin Chan
   copyright: Total Website Solutions Inc
*/

// adopted from Sons of Suckerfish
sfHover = function() {
  var sfEls = document.getElementById("menuh").getElementsByTagName("LI");
  for (var i=0; i<sfEls.length; i++) {
    sfEls[i].onmouseover=function() {
      this.className+=" sfhover";
    }
    sfEls[i].onmouseout=function() {
      this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
    }
  }
}

function setWindowHeight()
{
  var contentDiv = document.getElementById("maincontent");
  var newHeight = 0;

  if ( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    newHeight = window.innerHeight;
  } else if ( document.documentElement && 
              ( document.documentElement.clientWidth || 
                document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    newHeight = document.documentElement.clientHeight;
  } else if ( document.body && 
              ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    newHeight = document.body.clientHeight;
  }

  var divHeight = newHeight - 150;

  contentDiv.style.maxHeight = "" + divHeight + "px";
}

function contactFormResponse() 
{
  var dataStr;
  var form = document.forms['EmailForm'];
    
  form.submit.blur();
  form.submit.disabled = true;
  dataStr = form.elements[0].name;
  dataStr += "=";
  dataStr += encodeURIComponent(form.elements[0].value);
  for ( var i = 1; i < form.elements.length; i++ ) 
  {
      dataStr += "&";
      dataStr += form.elements[i].name;
      dataStr += "=";
      dataStr += encodeURIComponent(form.elements[i].value);
  }
    
  postDataGetText( 'cgi-bin/contact.cgi', dataStr, show_contactResponse );
}

function rafFormResponse() 
{
  var dataStr;
  var form = document.forms['RafForm'];
    
  form.submit.blur();
  form.submit.disabled = true;
  dataStr = form.elements[0].name;
  dataStr += "=";
  dataStr += encodeURIComponent(form.elements[0].value);
  for ( var i = 1; i < form.elements.length; i++ ) 
  {
      dataStr += "&";
      dataStr += form.elements[i].name;
      dataStr += "=";
      dataStr += encodeURIComponent(form.elements[i].value);
  }
    
  postDataGetText( 'cgi-bin/raf.cgi', dataStr, show_rafResponse );
}

function show_contactResponse( htmlText )
{
  document.getElementById("contact_form").innerHTML = htmlText;
}

function show_rafResponse( htmlText )
{
  document.getElementById("raf").innerHTML = htmlText;
}

function show_main( htmlText )
{
  document.getElementById("maincontent").innerHTML = htmlText;
}

function postDataGetText(urlToCall, dataToSend, functionToCallBack)
{ 
  var XMLHttpRequestObject = false; 

  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new 
     ActiveXObject("Microsoft.XMLHTTP");
  }

  if(XMLHttpRequestObject) {
    XMLHttpRequestObject.open("POST", urlToCall); 
    XMLHttpRequestObject.setRequestHeader('Content-Type', 
      'application/x-www-form-urlencoded'); 

    XMLHttpRequestObject.onreadystatechange = function() 
    { 
      if (XMLHttpRequestObject.readyState == 4 && 
        XMLHttpRequestObject.status == 200) {
          functionToCallBack(XMLHttpRequestObject.responseText); 
          delete XMLHttpRequestObject;
          XMLHttpRequestObject = null;
      } 
    }

    XMLHttpRequestObject.send(dataToSend); 
  }
}

