var Vote = Class.create({
    initialize: function(element){
        
	    this.root = element;
		this.orginalCount = Element.select(this.root , 'img.selected').size();

	  	  var photoId = $('photoId').innerHTML;	
		  var cookieVote = getCookie("cookieVote") ? getCookie("cookieVote") : "";  
	      var voteFlag = true;
	      var cookieViewTmp = cookieVote.split('_');     
	      for(var i=0; i<cookieViewTmp.size(); i++){
	         if(cookieViewTmp[i] == photoId){
	            voteFlag = false;
	            break;  
	         }
	      }
  		
        if(voteFlag){
			Element.select(this.root , 'img').each(function(img) {
	
		        Event.observe(img , 'mouseover' , function(event) {
					var img = Event.element(event);
					Element.addClassName(img , 'selected');
					
					$A(Element.up(img , 'a').previousSiblings()).each(function (a) {
						Element.down(a , 'img').addClassName('selected');
					});
					
					$A(Element.up(img , 'a').nextSiblings()).each(function (a) {
						Element.down(a , 'img').removeClassName('selected');
					});
		        });
					
				Event.observe(img , 'mouseout' , function(event) {
					var img = Event.element(event);
					
				    $A(Element.up(img , 'a').previousSiblings()).each(function (a) {
						Element.down(a , 'img').removeClassName('selected');
					});
								
					Element.removeClassName(img , 'selected');
		            		
					var imgs = Element.select(this.root , 'img');
					var simgs = imgs.slice(0 , this.orginalCount);
					$A(simgs).invoke('addClassName' , 'selected');			
				}.bind(this));
						
			}.bind(this));
		} else {
		   $('votetext').addClassName('hideelem');
		}
	}	
});

document.observe("dom:loaded", function(event){
	$$('div.rateable').each(function(element) {
		new Vote(element);
	})
});


function voteAction(imgId){
	 var photoId = $('photoId').innerHTML;	
	 var cookieVote = getCookie("cookieVote") ? getCookie("cookieVote") : "";  
     var voteFlag = true;
     var cookieViewTmp = cookieVote.split('_');     
     for(var i=0; i<cookieViewTmp.size(); i++){
         if(cookieViewTmp[i] == photoId){
            voteFlag = false;
            break;  
         }
     }
			
	if(voteFlag) {
	    setCookie("cookieVote",cookieVote + ((cookieVote!="")? "_" : "") + photoId);
	    
		var img = $(imgId);
		new Ajax.Request('/votes/new/id/' + photoId + '/rate/' + img.alt , {
			onSuccess: function(transport) {
				var res = transport.responseJSON;
				if(res.status != 'error') {
					$('voteinfo').update(res.text);					
					$('votetext').addClassName('hideelem');
					
					Element.addClassName(img , 'selected');									
 				    $A(Element.up(img , 'a').previousSiblings()).each(function (a) {
					  Element.down(a , 'img').addClassName('selected');
				    });				
				 } else {
				   $('voteinfo').update(res.text);
				}
			}.bind(this),
			onLoading: $('voteinfo').update('<img src="'+staticDomain+'/img/ajax-loader3.gif" />')
		});
	}			
}	
