
var xmlObs=new Array();

function isNull(a) {
    return typeof a == 'object' && !a;
}

//get the xml page for attr,rating
function rate(attr,rating,lrid) {
  
  var i = xmlObs.length;
  var j = i+1;
  var min_range=0;
  var max_range=5;
    
  var url = 'http://www.bestcatbreeds.com/wp-content/themes/rqps/get_rating_data.php?attr='+attr+'&rating='+rating+'&list_rank_id='+lrid;
  
  try {
    xmlObs[j] = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlObs[j] = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) { // client is not using IE
      xmlObs[j] = new XMLHttpRequest();
    } 
  }
  
  var xmlhttp = xmlObs[j];

  var temp = '';
  
    xmlhttp.open("GET", url,true); 
 	
    xmlhttp.onreadystatechange = function() { 

      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
    
          ratingContent = xmlhttp.responseXML; 

          //the selected rating
          var old_rating_element = ratingContent.getElementsByTagName("selected");
          var old_rating = old_rating_element[0].firstChild.nodeValue;

          //the message (above the rating buttons)
          var message_element = ratingContent.getElementsByTagName("message");
          var message = message_element[0].firstChild.nodeValue;
   
          //total votes
          var votes_element = ratingContent.getElementsByTagName("votes");
          var votes = votes_element[0].firstChild.nodeValue;
        
          //average
          var average_element = ratingContent.getElementsByTagName("average");
          var average = average_element[0].firstChild.nodeValue;
        
          //rating bar
          var rating_bar_element = ratingContent.getElementsByTagName("percentage");
          var rating_bar_width = rating_bar_element[0].firstChild.nodeValue;
     
          //rating bar
          var rank_element = ratingContent.getElementsByTagName("rank");
          var rank = rank_element[0].firstChild.nodeValue;
          
          //user feedback (this appears below the rating button box)
          var user_feedback_element = ratingContent.getElementsByTagName("userfeedback");
          if (user_feedback_element[0].firstChild) { // there will be no value if they've already voted
          	var user_feedback = user_feedback_element[0].firstChild.nodeValue;
          } else {
          	user_feedback = '';
          }
          
          //set all rating buttons to be unclickable
          for(var i=min_range;i<=max_range;i++) {
            var el = document.getElementById('radio_'+i);
           
            el.style.className="rating_button_disabled";
          }
           
          //to change the selected image
          var el = document.getElementById('radio_'+old_rating);
         	el.style.className="rating_button_selected";
          //set the message
          document.getElementById('rating_title').innerHTML = message;
          
          //votes
          document.getElementById('rqps_num_votes').innerHTML = votes;
          
          //average
          document.getElementById('rqps_average').innerHTML = average;
          
          //rating_bar
          document.getElementById('rqps_rating_bar').style.width = rating_bar_width+'%';
          
          //rank
          document.getElementById('rqps_rank').innerHTML = rank;
          
          //user feed back
          document.getElementById('user_feedback').innerHTML = user_feedback;
          
      } // end if
    } // end func

    xmlhttp.send(null); 

} // end func getXMLContent