function addLoadEvent(func){
 var oldOnload = window.onload;
 if(typeof window.onload != 'function'){
  window.onload = func;
 } else {
  window.onload = function() {
   oldOnload();
   func();
  }
 }
}
function prepareChooser(){
 if(!document.getElementsByTagName) return false;
 if(!document.getElementById) return false;
 if(!document.getElementById("chooser")) return false;
 var chooser = document.getElementById("chooser");
 var links = chooser.getElementsByTagName("li");
 for(var i=0; i < links.length; i++){
  links[i].onclick = function() {
   switch_faq(this);
   return false;
  }
 }
}
function switch_faq(chosen){
 if(!document.getElementsByTagName) return false;
 if(!document.getElementById) return false;
 //take the chosen class off the old one
 if(!document.getElementById("chooser")) return false;
 var chooser = document.getElementById("chooser");
 var lis = chooser.getElementsByTagName("li");
 for(var i=0; i < lis.length; i++){
  if(lis[i].className == 'chosen'){
   lis[i].className = '';
  }
 }
 //apply the chosen class to the chosen
 chosen.className = 'chosen';
 //hide the old faqs
 var faqs = document.getElementById("top-faqs").getElementsByTagName("div");
 for(var i=1; i < faqs.length; i++){
  if(faqs[i].className == 'viewed-top-faqs'){
   faqs[i].className = 'hide';
  }  
 }
 //display the new faqs
 var qname = chosen.getAttribute('title');
 document.getElementById(qname).className = 'viewed-top-faqs';
}
function prepareQuestionFeedback(){
 if(!document.getElementsByTagName) return false;
 if(!document.getElementById) return false;
 if(!document.getElementById("fb-yes")) return false;
 var fbYes = document.getElementById("fb-yes");
 fbYes.onclick = function() {
  feedbackGood();
  return false;
 }
 if(!document.getElementById("fb-no")) return false;
 var fbNo = document.getElementById("fb-no");
 fbNo.onclick = function() {
  feedbackBad();
  return false;
 }
}
function feedbackGood(){
 if(!document.getElementById("fb-answer")) return false;
 var qAnswerer = document.getElementById("answerer").innerHTML;
 var fbAnswer = document.getElementById("fb-answer");
 var ajLink = document.getElementById('fb-yes').getAttribute('href');
 //do an ajax call to register the feedback
 ajaxCall(ajLink, sCfbGood = function(){
								if (xmlhttp.readyState==4){// 4 = "loaded"
									if (xmlhttp.status==200){// 200 = "OK"
										//dont really need to tell the user if it went well or not - it doesnt matter to them
										//alert('sucess');
									}else{
										//dont need to tell them of any error - but it would be nice to let us know
										alert("Problem retrieving data:" + xmlhttp.statusText);
									}
								}
							});
 fbAnswer.innerHTML = "Thanks. We'll let "+qAnswerer+" know that you thought this answer was useful.";
}
function feedbackBad(){
 var fbAnswer = document.getElementById("fb-answer");
 fbAnswer.innerHTML = "Maybe this question wasn't for you. Take a look at the <a onclick=\"highlight('related-questions');\" href=\"#related\">related questions</a> below, or <a href=\"contact\">contact us<a>.";
}
//highlight stuff
function highlight(id){
 if(!document.getElementById(id)) return false;
 var el = document.getElementById(id);
 el.className = 'highlight';
}
//ajax stuff
var xmlhttp;
function ajaxCall(url, rf){
 xmlhttp=null;
 if (window.XMLHttpRequest){// code for Firefox, Opera, IE7, etc.
  xmlhttp=new XMLHttpRequest();
 } else if (window.ActiveXObject){// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
 if (xmlhttp!=null){
  xmlhttp.onreadystatechange=rf;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
 }else{
  alert("Your browser does not support XMLHTTP.");
 }
}
addLoadEvent(prepareChooser);
addLoadEvent(prepareQuestionFeedback);