/*
//////////////////////////////////////////////////////////////////////
//                                                                  //
//  File name:   js.js                                              //
//  Description: Javascript for Vivid Wind Web Solutions            //
//  Last edited: May 3rd, 2009                                      //
//  Author:      Stephen Gomori                                     //
//  Contact:     webmaster at vividwind dot com                     //
//                                                                  //
//////////////////////////////////////////////////////////////////////
*/

addOnLoadEvent(setCharCount);
addOnLoadEvent(prepareForm);
addOnLoadEvent(preparePopUps);

function addOnLoadEvent(newFunc){
  var oldOnload = window.onload;
  if (typeof window.onload != 'function'){
    window.onload = newFunc;
  }else{
    window.onload = function(){
      if (oldOnload) {
        oldOnload();
      }
      newFunc();
    };
  }
}

function setCharCount(){

  if (!document.getElementById){
    return;
  }
  
  if (!document.getElementById('message')){
    return;
  }
  
  document.getElementById('message').onkeyup = function(){
    getCharCount();
  }
  document.getElementById('reset').onclick = function(){
    document.getElementById('char_count').innerHTML='Character count: 0, Max: 1500';
    document.getElementById('f_name').value = '';
    document.getElementById('l_name').value = '';
    document.getElementById('email').value = '';
    document.getElementById('phone').value = '';
    document.getElementById('message').value = '';
    return false;
  }
}


function preparePopUps(){

  if (!document.getElementById){
    return;
  }
  
  if (!document.getElementsByTagName('a')){
    return;
  }
  
  var links = document.getElementsByTagName('a');
  
  for (var i=0; i<links.length; i++){
  
   if (links[i].getAttribute('class') == 'popup'){
     links[i].onclick = function(){
       var pop_up = open(this.getAttribute('href'));
	     pop_up.focus;
	     return false;
     }
   }
  }	
}

function getHTTPObject(){
  var xhr = false;
  if (window.XMLHttpRequest){
    xhr = new XMLHttpRequest();
  }else if (window.ActiveXObject){
    try{
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
      try{
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
        xhr = false;
      }
    }
  }
  return xhr;
}

function sendEmail(formData){
  var request = getHTTPObject();
  if (request){
    document.getElementById('buttons').innerHTML = 
      '<img src="images/loading.gif" height="32" width="32" alt="Loading" />';  
    request.onreadystatechange = function(){
      displayResult(request);
    };
    request.open("POST", "inc/contact.php", true);
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.send(formData);
    return true;
  }else{
    return false;
  }
}

function prepareForm(){
  if (!document.getElementById){
    return;
  }
  if (!document.getElementById('contact_form')){
    return;
  }
  document.getElementById('contact_form').onsubmit = function(){
    var formData = this.f_name.name+'='+escape(this.f_name.value)+'&'+
      this.l_name.name+'='+escape(this.l_name.value)+'&'+
      this.email.name+'='+escape(this.email.value)+'&'+
      this.phone.name+'='+escape(this.phone.value)+'&'+
      this.message.name+'='+escape(this.message.value)+'&'+
      'submitted='+escape('yes');
    
    return !sendEmail(formData);
  } 
}

function displayResult(request){
  if (request.readyState == 4){
    if ((request.status == 200) || (request.status == 304)){
      if (request.responseText.indexOf('Thank you') != -1){
        document.getElementById('content').innerHTML = request.responseText;      
      }else{
      document.getElementById('form_data').innerHTML = request.responseText;
      prepareForm();
      setCharCount();
      }
    }
  }
}

// Gets string length of textarea and prints back above form. If too big, cuts off last character.
function getCharCount(){
	
	if (!document.getElementById){
    return;
  }
  
	var field = document.getElementById('message');
	var max_length = 1500;
	
	if (field.value.length > max_length){
		field.value = field.value.substr(0, max_length); 
	}
	document.getElementById('char_count').innerHTML = 'Character count: '+field.value.length+', Max: '+max_length;
}
