// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function drawRating(id, rating, colour) {
  if (rating == null)
    rating = $("review_" + id).value * 2;
  for (var i=1; i <= 10; i++) {
    if (i <= rating)
      filename = "/images/star_" + (colour == "blue" ? "blue" : "gold");
    else
      filename = "/images/star_grey";
    filename += (i % 2 == 1 ? "_left.gif" : "_right.gif");
    $(id + "__" + i).src = filename;
  }
}


function hoverRating(elem, colour) {
  var id = elem.id.substring(0, elem.id.indexOf("__"));
  var rating = elem.id.substring(elem.id.indexOf("__")+2);
  drawRating(id, rating, colour);
}

function selectRating(elem, colour) {
  var id = elem.id.substring(0, elem.id.indexOf("__"));
  var rating = elem.id.substring(elem.id.indexOf("__")+2);
  $("review_" + id).value = rating/2;
  drawRating(id, rating, colour);
}


// Fades out the current image and replaces it with a new image.
function changeImage(imageID, newSrc) {
  var fadeDuration = 0.25;	// this is seconds
  var elem = $(imageID);
  new Effect.Fade(imageID, {duration:fadeDuration, from:1.0, to:0.05, delay:0});
  setTimeout(function() { elem.src = newSrc; }, fadeDuration*1000);
  setTimeout(function() { new Effect.Appear(imageID, {duration:fadeDuration, from:0.05, to:1.0, delay:0}) }, fadeDuration*1000);
}


// Generates a URL Reference (for posts) from a string.  Essentially, this takes
// a string and replaces all spaces with underscores and then removes all 
// invalid characters for a URL.
function generate_url_ref(str) {
  // replace spaces with underscore
  var str = str.toLowerCase().gsub(' ', '_');
  
  // remove invalid characters
  var urlRef = '';
  var validChars = /[A-Z,a-z,0-9,_,\-,]/
  for (var i=0; i < str.length; i++) {
    if (str[i].match(validChars))
      urlRef = urlRef + str[i];
  }
  
  return urlRef;
}
