 function get_id(id) {

    pos = id.indexOf("[") + 1;
    last = id.indexOf("]");
    return id.substr(pos, last - pos);

 }

 function check_form(form) {

   result = (!form.login.value || !form.password.value) ? false : true;
   return result;

 }

 function select_color(value) {

    document.testform.color.value = value;

 }

 function check_testform() {

   return true;

 }

 function showbar(obj, visible) {

    obj.style.backgroundImage = 'url(' + ((visible == true) ? bar.src  : blank.src) + ')';

    if (visible == false) {

       document.getElementById("caption").innerHTML = "Select font to view info";
       document.getElementById("preview").style.visibility = "hidden";

    } else {

       document.getElementById("preview").style.visibility = "visible";
       id = get_id(obj.id);
       document.getElementById("caption").innerHTML = "<b>" + fontname[id] + "</b>";
       document.getElementById("type").innerHTML = fonttype[id];
       document.getElementById("size").innerHTML = fontsize[id] + " Kbytes";
       document.getElementById("date").innerHTML = fontdate[id];
       document.getElementById("rating").innerHTML = rating[id];
       document.getElementById("downs").innerHTML = downloads[id];
       document.getElementById("views").innerHTML = views[id];

    }

 }

 var bar = new Image();
 bar.src = "site_images/select.gif";

 var blank = new Image();
 blank.src = "site_images/blank.gif";

 window.onload = function() {

   var obj = getElementsByClassName('font', 'td');

   for (var i = 0; i < obj.length; i++) {

         obj[i].onmouseover = new Function('showbar(this, true)');
         obj[i].onmouseout = new Function('showbar(this, false)');

  }

   var obj = getElementsByClassName('star', 'img');

   for (var i = 0; i < obj.length; i++) {

         obj[i].onmouseover = new Function('check(this)');
         obj[i].onclick = new Function('update_rating(this)');
  }

 }

 var star = new Array();
 var gstar = new Array();

 for (var i = 0; i < 10; i++) {

   star[i] = new Image();
   gstar[i] = new Image();
   star[i].src = "star/" + i + ".gif";
   gstar[i].src = "star/" + i + "g.gif";

 }

 function getElementsByClassName(classname, tag) {

  var anchs =  document.getElementsByTagName(tag);
  var total_anchs = anchs.length;
  var regexp = new RegExp('\\b' + classname + '\\b');
  var class_items = new Array();

  for(var i=0;i<total_anchs;i++) {
   var this_item = anchs[i];
   if(regexp.test(this_item.className)) {
    class_items.push(this_item);
   }
  }
 return class_items;
 }

 function check(obj) {

     if (already_vote == true) return false;

     var src = obj.id;
     elem = src.charAt(1);

     for (var i = (eval(elem) + 1); i < 10; i++) {

          stargrey(i); 
     }     

     for (var i = 0; i <= elem; i++) {

          document.getElementById("a" + i).src = star[i].src;
      //    document.getElementById("a" + i).style.width = "20";
      //    document.getElementById("a" + i).style.height = "20"; 
     }
 }


 function clear_star() {

     if (already_vote == true) return false;

     for (var i = 0; i < 10; i++) {
 
        stargrey(i); 

     }
 }

 function stargrey(id) {

   var elem = document.getElementById("a" + id);

   elem.src = gstar[id].src;
//   elem.style.width = "18";
//   elem.style.height = "18"; 

 }

var req;

 function processStateChange(){
  if (req.readyState == 4){
    if (req.status == 200){
  change_rating(req.responseText);
    } 
 }
 }

 function change_rating(data) {

   var dat = data.split(";");
   document.getElementById("rating").innerHTML = dat[0];
   document.getElementById("votes").innerHTML = dat[1];
 
   rat = Math.round(dat[0]);
   check(document.getElementById("a" + rat));

   already_vote = true;

 }

function update_rating(obj) { 

  if (already_vote == true) return false;

  var src = obj.id;
  vote = src.charAt(1);
  
  URL = "update_rating.php?vote=" + vote + "&font_id=" + font;

  if (window.XMLHttpRequest){
    req = new XMLHttpRequest();
    req.onreadystatechange = processStateChange;
    req.open("GET", URL, true);
    req.send(null);
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req) {
    req.onreadystatechange = processStateChange;
    req.open("GET", URL, true);
    req.send();
    }
  }
}