var Ratings = {
	stars:0,
	step:0,
	comments:0,
	active:-1,
	oldstar:0,
	
	addEvent:function(element,eventname,eventfunction){
		if(element.addEventListener)
			element.addEventListener(eventname,eventfunction,1)
		else if(element.attachEvent)
			element.attachEvent('on'+eventname,eventfunction)
		else
			element['on'+eventname] = eventfunction
	},
	
	ajax:function(pos){
		//alert('Ajax:'+pos);
		var tbCalling = findInput("text", "tbCallingFrame");
		var fileRatings = findInput("text", "fileRatings");
		CallServer(pos + "," + $.galleria.index, "");
		var fileRatings_array = fileRatings.defaultValue.split(",");
		fileRatings.defaultValue = "";
		for (i = 0; i < fileRatings_array.length; i=i+3) {
		    if (fileRatings_array[i] == $.galleria.index) {
		        fileRatings_array[i+1] = pos+"";
		    }
		    fileRatings.defaultValue += fileRatings_array[i] + "," + fileRatings_array[i+1] + "," +
		        fileRatings_array[i+1] + ",";
		}
		fileRatings.defaultValue = fileRatings.defaultValue.substring(0,
		    fileRatings.defaultValue.length-1);
	},
	
	init:function(){
		step = 0;
		oldstar = new Array();
		var ratings = document.getElementById('ratings');
		var fileRating, avgRating;
		if (ratings != null) {
		    stars = ratings.getElementsByTagName('I');
		    comments = ratings.getElementsByTagName('DIV');
		    // first check if the art is rated
	    //	var tbCalling = findInput("text", "tbCallingFrame");
		    var fileRatings = findInput("text", "fileRatings");
		    var fileRatings_array = fileRatings.defaultValue.split(",");
		    for (i = 0; i < fileRatings_array.length; i=i+3) {
		    //    if (fileRatings_array[i] == tbCalling.value) {
		    if (fileRatings_array[i] == $.galleria.index) {
		            fileRating = fileRatings_array[i+1];
		            avgRating = fileRatings_array[i+2];
		            break;
		        }
		    }
		    // user is viewing own portfolio
		    if (fileRating == -2) {
		        step = 1;
		        for(var i = 0; i < avgRating; i++){
			        //oldstar.push(stars[i].className);
			        stars[i].className = 'normal';
		        }
		        for(var i = avgRating; i < stars.length; i++) {
		            stars[i].className = 'active';
		        }
		        comments[0].style.display='none';
		        comments[1].style.display='none';
		        comments[2].style.display='none';
		    // if user isn't logged in
		    } else if (fileRating == -1) {
		        step = 1;
		        for(var i = 0; i < avgRating; i++){
			        //oldstar.push(stars[i].className);
			        stars[i].className = 'normal';
		        }
		        for(var i = avgRating; i < stars.length; i++) {
		            stars[i].className = 'active';
		        }
		        comments[0].style.display='none';
		        comments[1].style.display='none';
		        comments[2].style.display='';
		    // if this work has not been rated
		    } else if (fileRating == 0) {
		        for(var i = 0; i < avgRating; i++){
			        stars[i].className = 'normal';
			        Ratings.addStarEvent(stars[i],i);
			        oldstar.push(stars[i].className);
		        }
		        for(var i = avgRating; i < stars.length; i++) {
		            stars[i].className = 'active';
		            Ratings.addStarEvent(stars[i],i);
		            oldstar.push(stars[i].className);
		        }
		        comments[0].style.display='';
		        comments[1].style.display='none';
		        comments[2].style.display='none';
		    } else {
		        step = 1;
		        for(var i = 0; i < fileRating; i++){
			        //oldstar.push(stars[i].className);
			        stars[i].className = 'blue';
		        }
		        for(var i = fileRating; i < stars.length; i++) {
		            stars[i].className = 'active';
		        }
		        comments[0].style.display='none';
		        comments[1].style.display='';
		        comments[2].style.display='none';
		    }
    		
    		
		    /*var clear = ratings.getElementsByTagName('B');
		    if( clear[0] ){
			    Ratings.addClearEvent(clear[0]);
		    }*/
        }
		
	},

	addClearEvent:function(clear){
		Ratings.addEvent(clear,'click',function(){
			if( step == 1 ){
				for(var i = 0; i < stars.length; i++)
					stars[i].className = oldstar[i];
				step = 0;
				comments[0].style.display='';
				comments[1].style.display='none';
				Ratings.ajax(0);
			}
		});
		Ratings.addEvent(clear,'mouseover',function(){
			if( step == 1 )
				for(var i = 0; i < stars.length; i++)
					stars[i].className = oldstar[i];
		});
		Ratings.addEvent(clear,'mouseout',function(){
			if( step == 1 )
				for(var i = 0; i < stars.length; i++){
					if( i <= active )
						stars[i].className = 'blue';
					else
						stars[i].className = oldstar[i];
				}
		});
	},

	addStarEvent:function( star, pos ){
		Ratings.addEvent(star,'mouseover',function(){
			if( step == 0 ) {
				for(var i = 0; i <= pos; i++)
					stars[i].className = 'blue'
				for(var i = parseInt(pos)+1; i < stars.length; i++)
				    stars[i].className='active'
		    }
		});
		Ratings.addEvent(star,'mouseout',function(){
			if( step == 0 ) {
			//	for(var i = 0; i <= pos; i++)
					//stars[i].className = oldstar[i];
				for(var i = 0; i < stars.length; i++)
					stars[i].className = oldstar[i];
			}		
		});
		Ratings.addEvent(star,'click',function(){
		    if (step == 0) {
			    step = 1;
			    active = pos;
			    comments[0].style.display='none';
			    comments[1].style.display='';
			    Ratings.ajax(parseInt(pos)+1);
			    for(var i = 0; i < stars.length; i++) {
				    if( i <= pos )
					    stars[i].className = 'blue';
				    else
			    //		stars[i].className = oldstar[i];
			            stars[i].className = 'active';
			    }  
			 }         
		});
	}
}