var http_request = false;

function post(obj,page,div) {
    var getstr = "?";
    for (i=0; i<obj.childNodes.length; i++) {
       if (obj.childNodes[i].tagName == "INPUT") {
          if (obj.childNodes[i].type == "hidden") {
             getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
          }
          if (obj.childNodes[i].type == "text") {
             getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
          }
          if (obj.childNodes[i].type == "checkbox") {
             if (obj.childNodes[i].checked) {
                getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
             } else {
                getstr += obj.childNodes[i].name + "=&";
             }
          }
          if (obj.childNodes[i].type == "radio") {
             if (obj.childNodes[i].checked) {
                getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
             }
          }
       }   
       if (obj.childNodes[i].tagName == "SELECT") {
          var sel = obj.childNodes[i];
          getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
       }
       
    }
    makeRequest(page, getstr, div);
 }

function makeRequest(url, parameters, div) {
	http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      http_request.onreadystatechange = function() { alertContents(div); }
      http_request.open('GET', url + parameters, true);
      http_request.send(null);
}

   function alertContents(div) {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById(div).innerHTML = result;     
            // redo stars
            starRating.create('.stars');
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   
	// The widget
	var starRating = {
	  create: function(selector) {
	    // loop over every element matching the selector
	    $(selector).each(function() {
	      var $list = $('<div></div>');
	      // loop over every radio button in each container
	      $(this)
	        .find('input:radio')
	        .each(function(i) {
	          var rating = $(this).parent().text();
	          var $item = $('<a href="#"></a>')
	            .attr('title', rating)
	            .addClass(i % 2 == 1 ? 'rating-right' : '')
	            .text(rating);
	          
	          starRating.addHandlers($item);
	          $list.append($item);
	          
	          if($(this).is(':checked')) {
	            $item.prevAll().andSelf().addClass('rating');
	          }
	        });
	        // Hide the original radio buttons
	        $(this).append($list).find('label').hide();
	    });
	  },
	  addHandlers: function(item) {
	    $(item).click(function(e) {
	      // Handle Star click
	      var $star = $(this);
	      var $allLinks = $(this).parent();
	      
	      // Set the radio button value
	      $allLinks
	      	.parent()
	      	.find('input:radio[value=' + $star.text() + ']')
	      	.attr('checked', true);
	      
	      //alert($star.text());
	        
	      // Set the ratings
	      $allLinks.children().removeClass('rating');
	      $star.prevAll().andSelf().addClass('rating');
	      
	      // prevent default link click
	      e.preventDefault();
	          
	    }).hover(function() {
	      // Handle star mouse over
	      $(this).prevAll().andSelf().addClass('rating-over');
	    }, function() {
	      // Handle star mouse out
	      $(this).siblings().andSelf().removeClass('rating-over')
	    });    
	  }
	  
	}

   




