/*
   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 objMenuh = document.getElementById("menuh");

  if ( objMenuh != null ) {
    var sfEls = objMenuh.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 mainDiv = document.getElementById("mainbody");
  var contentDiv = document.getElementById("content");
  var maincontentDiv = document.getElementById("maincontent");
  var winWidth = 0;
  var winHeight = 0;

  if ( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    winWidth = window.innerWidth;
    winHeight = window.innerHeight;
  } else if ( document.documentElement && 
              ( document.documentElement.clientWidth || 
                document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    winWidth = document.documentElement.clientWidth;
    winHeight = document.documentElement.clientHeight;
  } else if ( document.body && 
              ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    winWidth = document.body.clientWidth;
    winHeight = document.body.clientHeight;
  }
  // center window horizontally
  var newSpace = winWidth - 1000;
  var newGap = 0;

  if ( newSpace > 0 ) {
    newGap = newSpace / 2;
  }
  mainDiv.style.left = "" + newGap + "px";

  // adjust the window height
  var divHeight = winHeight - 225;
  contentDiv.style.height = "" + divHeight + "px";

}

function contactFormResponse() 
{
  var dataStr;
  var form = document.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( 'contact.php', 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 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); 
  }
}


