/*
 Class that defines a standard ratings component.
*/
// Messages for display above the individual ratings units. The length of the
// array also defines how many units to include in the component.
yg_Ratings.Msgs = new Array
(
 "Pésima",
 "Mala",
 "Regular",
 "Buena",
 "Excelente"
);
// Path for all images.
var path = "http://us.a1.yimg.com/e1.yimg.com/i/cine/";
// Image for set units.
yg_Ratings.UnitY = path + "selected.gif";
// Image for set units <= the mouse over point.
yg_Ratings.UnitYMouseOver = path + "selected.gif";
// Image for set units > the mouse over point.
yg_Ratings.UnitYMouseLess = path + "star_blank.gif";
// Image for unset units.
yg_Ratings.UnitN = path + "empty.gif";
// Image for unset units <= the mouse over point.
yg_Ratings.UnitNMouseOver = path + "hover.gif";
function yg_Ratings(id)
{
 // The id parameter is the name (a string) of the variable to which the
 // instance is assigned. (The variable is sent along to event handlers,
 // so it must be in the global scope.)
 var i, t;
 var attributes;
 var h1, h2;
 var d = document;
 this.rating = 0;
 this.is_quickrate = true;
 this.quickrate_signature = false;
 attributes = 'class="ygrtngs" id="' + id + '"';
 h1 = 'onMouseOut="return yg_Ratings_mouseOut(' + id + ');"';
 d.write('<div ' + attributes + ' ' + h1 + '>');
 d.write('<div class="message">&nbsp;</div>');
 for (i = 1; i <= yg_Ratings.Msgs.length; i++)
 {
 h1 = 'onMouseOver="return yg_Ratings_mouseOver(' + id + ', ' + i + ');"';
 h2 = 'onClick="return yg_Ratings_click(' + id + ', ' + i + ');"';
 d.write('<span class="unit "' + h1 + ' ' + h2 + '>');
 d.write('<img src="' + yg_Ratings.UnitN + '" />');
 d.write('<input type="hidden" name="' + id + i +'" value="n" />');
 d.write('</span>');
 }
 d.write('</div>');
 this.parent = document.getElementById(id);
 this.images = this.parent.getElementsByTagName("img");
 this.inputs = this.parent.getElementsByTagName("input");
 this.msg = this.parent.getElementsByTagName("div")[0];
}
function yg_Ratings_set(n, oflag)
{
 // The n parameter is the unit to set (starting at 1). Set oflag to true
 // when the mouse is outside of the ratings component, or you're not sure.
 if (arguments.length < 2)
 oflag = true;
 this.rating = n;
 this.update(n, oflag);
}
function yg_Ratings_setMsg(m)
{
 var children = this.msg.childNodes;
 var node;
 for (var i = 0; i < children.length; i++)
 {
 node = children[i];
 if (node.nodeType == 3)
 {
 // Using 0xA0 prevents the browser from collapsing empty messages.
 if (m == "")
 node.nodeValue = unescape("%A0");
 else
 node.nodeValue = m;
 }
 }
}
function yg_Ratings_get()
{
 return this.rating;
}
function yg_Ratings_update(n, oflag)
{
 // The oflag parameter is true when the mouse is outside of the ratings
 // component. The n parameter is the
 if (oflag)
 this.setMsg("");
 else
 this.setMsg(yg_Ratings.Msgs[n - 1]);
 for (i = 1; i <= yg_Ratings.Msgs.length; i++)
 {
 if (i == this.rating)
 this.inputs[i - 1].setAttribute("value", "y");
 else
 this.inputs[i - 1].setAttribute("value", "n");
 if (oflag)
 {
 if (i <= this.rating)
 this.images[i - 1].src = yg_Ratings.UnitY;
 else
 this.images[i - 1].src = yg_Ratings.UnitN;
 }
 else
 {
 if (i <= n)
 {
 if (i <= this.rating)
 this.images[i - 1].src = yg_Ratings.UnitYMouseOver;
 else
 this.images[i - 1].src = yg_Ratings.UnitNMouseOver;
 }
 else
 {
 if (i <= this.rating)
 this.images[i - 1].src = yg_Ratings.UnitYMouseLess;
 else
 this.images[i - 1].src = yg_Ratings.UnitN;
 }
 }
 }
 return true;
}
function yg_Ratings_click(obj, n)
{
 obj.set(n, false);
 if(obj.is_quickrate && obj.quickrate_signature){
 code = "window.location.href='"+obj.is_quickrate_href+"/quickreview?qr="+obj.rating+"&sig="+obj.quickrate_signature+"';";
 setTimeout(code,1);
 }
 return true;
}
function yg_Ratings_mouseOver(obj, n)
{
 obj.update(n, false);
 return true;
}
function yg_Ratings_mouseOut(obj)
{
 obj.update(0, true);
 return true;
}
yg_Ratings.prototype.set = yg_Ratings_set;
yg_Ratings.prototype.setMsg = yg_Ratings_setMsg;
yg_Ratings.prototype.get = yg_Ratings_get;
yg_Ratings.prototype.update = yg_Ratings_update;
