﻿// JScript File

/* AJAX Star Rating v1.0.1, Programming by Ulyses */
/* Updated September 4th, 2007 */ 

var starGo='', starNum=0; 
var enableMove = true;
var steps = null;     

function $(v) { 
    return(document.getElementById(v)); 
}

function $S(v) { 
    return(document.getElementById(v).style); 
}

function agent(v) { 
    return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); 
}

function absPos(o) { 
    var r={x:o.offsetLeft,y:o.offsetTop}; 
    if(o.offsetParent) { 
        var v=absPos(o.offsetParent); r.x+=v.x; r.y+=v.y; 
    } 
    return(r); 
} 

function xy(e,v) { 
    return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX)); 
} 

/*
* Updates the Value of the Voting after a Click
*/
function starUpdate(e,o) { 
    var v=parseInt($('starUser'+starNum).innerHTML); 
    v = GetValueForStep(v);
    
    if(v <= 100) //Maximum is 100%
    {    
        starNum=o.id.substr(4); 
        $('starCurr'+starNum).value =v;         
        o.parentElement.getElementsByTagName("input")[0].value = v;    
    }
}

function GetValueForStep(value)
{
    if(steps == null)   //No Step defined
        return value;
    var add = 0;
    if(value % steps != 0)
        add = 1;
        
    return (parseInt(value/steps) +1) * steps;
}

/*
* Reverts the Stars when nothing is clicked
*/
function starRevert() { 
    var v=parseInt($('starCurr'+starNum).value);     
    $S('starCurr'+starNum).width=Math.round(v*84/100)+'px';     
    $('starUser'+starNum).innerHTML=(v>0?Math.round(v)+'%':''); 
    $('starUser'+starNum).style.color='#888'; 
    document.onmousemove=''; 
}

function starCurr(e,o) 
{ 	
    function starMove(e) 
    { 
        if(enableMove  == false)
        {            
            return;
        }
            
        var p=absPos($('star'+starNum)); 
        starNum=o.id.substr(4); 		
        var eX=xy(e)-p.x, eY=xy(e,1)-p.y;						
        
        if(eX<1 || eX>84 || eY<0 || eY>19) 
        { 
            starGo=''; 
            //ClearStars(e, o);
            starRevert(); 
        } 
        else 
        { 
            $S('starCurr'+starNum).width=eX+'px'; 
            $S('starUser'+starNum).color='#111'; 
            $('starUser'+starNum).innerHTML=Math.round(eX/84*100)+'%'; 
        }			
    } 	
    if(!starGo) 
    { 
        starGo=1; document.onmousemove=starMove; 
    } 
} 

function InitDisplay(value, starNum)
{   
    if(document.getElementById('starCurr'+starNum) != null)
    {   
        $S('starCurr'+starNum).width=(value*84/100)+'px';    
        $('starCurr'+starNum).value = value;
    }    
}