Movie = {
	seeOptions : function(where)
	{
		jQuery(where+".seeOptions div.sn a span.arrow").hover(
			function(){
				jQuery(this).parents('div.sn').children("ul").show();
				jQuery(this).parents('div.sn').addClass('over');
				jQuery(this).parents('div.sn').children("a span.arrow").addClass("arrow_hover");
			},
			function(){
				jQuery(this).parents('div.sn').children("ul").hide();
				jQuery(this).parents('div.sn').removeClass('over');
				jQuery(this).parents('div.sn').children("a span.arrow").removeClass("arrow_hover");
			}
		);

		jQuery(where+".seeOptions div.sn ul").hover(
			function(){
				jQuery(this).parents('div.sn').children("ul").show();
				jQuery(this).parents('div.sn').addClass('over');
			},
			function(){
				jQuery(this).parents('div.sn').children("ul").hide();
				jQuery(this).parents('div.sn').removeClass('over');
			}
		);
	},
	
	setRatingsClasses : function(a)
	{
		li = a.parent('li');
		ul = li.parent('ul');
		
		current = li.attr('class').split(' ')[0].split('__')[1];
		current = parseInt(current);
		
		i=1;
		ul.children('li').each(function(e){
			jQuery(this).removeClass('over');
			jQuery(this).removeClass('over'+i);
			
			if(i<=current)
			{
				jQuery(this).addClass('over');
				jQuery(this).addClass('over'+i);
			}
			i++;
		});
	},
	
	cleanRatings : function(ul){
		i=1;
		ul.children('li').each(function(e){
			jQuery(this).removeClass('over');
			jQuery(this).removeClass('over'+i);
			i++;
		});
	},
	
	ratingTitle : function(where)
	{
		jQuery(where+'.starsRating li a').hover(
			function()
			{
				Movie.setRatingsClasses(jQuery(this));
			}
		);
		
		jQuery(where+'.starsRating').hover(
			function()
			{
				return false;
			},
			function()
			{
				li = jQuery(this).children('li.rating_average');
				if(li.length == 1)
				{
					Movie.setRatingsClasses(li.children('a'));
				} else {
					Movie.cleanRatings(jQuery(this));
				}
			}
		);
	},
	
	mark : function(where)
	{
		jQuery(where+'.seeOptions a').click(function(){
			href = jQuery(this).attr('href');
			href_data = href.split('/');
			movie_id = href_data[3];
			a = jQuery(this);
			
			pageTracker._trackPageview(href);
			
			jQuery.get(href+'True/', function(data){
				data = data.split('|');
				if(data[0]!='true'){ alert(data[1]); } else {
					divs = a.parents('div.seeOptions').children('div');
					if(a.parent().hasClass('active'))
					{
						divs.removeClass('active');
						divs.removeClass('noactive');
						divs.children('ul').children('li').removeClass('noactive');
						divs.children('ul').children('li').removeClass('active');
						
						jQuery('#movie-'+movie_id+' .cover').removeClass('mark-nw');
						jQuery('#movie-'+movie_id+' .cover').removeClass('mark-ws');
						jQuery('#movie-'+movie_id+' .cover').removeClass('mark-sn');
						jQuery('#movie-'+movie_id+' .cover span.see').html();
						
					} else {
						divs.addClass('noactive');
						divs.children('ul').children('li').addClass('noactive');
						divs.removeClass('active');
						divs.children('ul').children('li').removeClass('active');
						
						if(a.hasClass('times'))
						{
							a.parent().parent().parent().removeClass('noactive');
							a.parent().parent().parent().addClass('active');
						}
						
						a.parent().removeClass('noactive');
						a.parent().addClass('active');
					}
					
					jQuery('#movie-'+movie_id+' .cover').removeClass('mark-nw');
					jQuery('#movie-'+movie_id+' .cover').removeClass('mark-ws');
					jQuery('#movie-'+movie_id+' .cover').removeClass('mark-sn');
					jQuery('#movie-'+movie_id+' .cover').addClass(data[1]);
					jQuery('#movie-'+movie_id+' .cover span.see').html(data[2]);
				}
			});
			
			return false;
		});
	},
	
	set_see : function(movie_id)
	{
		jQuery('#seeOptionsMovie-'+movie_id+'.seeOptions div.sn').addClass('active');
		
		jQuery('#movie-'+movie_id+' .cover').removeClass('mark-nw');
		jQuery('#movie-'+movie_id+' .cover').removeClass('mark-ws');
		jQuery('#movie-'+movie_id+' .cover').removeClass('mark-sn');
		
		jQuery('#movie-'+movie_id+' .cover').addClass('mark-sn');
		jQuery('#movie-'+movie_id+' .cover span.see').html('Já vi');
	},
	
	favorite : function(where)
	{
		jQuery(where+'a.favorite').click(function(){
			href = jQuery(this).attr('href');
			href_data = href.split('/');
			movie_id = href_data[3];
			a = jQuery(this);
			
			pageTracker._trackPageview(href);
			
			jQuery.getJSON(href+'True/', function(data){
				if(data.error){ alert(data.error); } else {
					if(data.action == 'added')
					{
						a.addClass('removeFarorite');
						if(a.hasClass('favoriteShortcut'))
							a.text('Remover');
						else
							a.text('Remover dos favoritos');
						
						if(data.see.action == 'added')
						{
							Movie.set_see(movie_id);
						}
					}
					
					if(data.action == 'deleted')
					{
						a.removeClass('removeFarorite');
						if(a.hasClass('favoriteShortcut'))
							a.text('Adicionar');
						else
							a.text('Adicionar aos favoritos');
					}
				}
			});
			
			return false;
		});
	},
	
	vote : function(where)
	{
		jQuery(where+'ul.starsRating li a').click(function(){
			href = jQuery(this).attr('href');
			href_data = href.split('/');
			movie_id = href_data[4];
			a = jQuery(this);
			
			pageTracker._trackPageview(href);
			
			jQuery.getJSON(href+'True/', function(data){
				
				if(data.error){ alert(data.error); } else {
					ul = a.parent('li').parent('ul');
					ul.children('li').removeClass('over');
					ul.children('li').removeClass('rating_average');
					
					ul.children('li.star__'+data.average_rating).addClass('rating_average over');
					ul.children('li.star__'+data.average_rating).prevAll().addClass('over');
					
					if(data.action == 'added')
					{
						ul.next('div.user_current_rating').slideUp(function(){
							ul.next('div.user_current_rating').html(data.html_current_rating);
							ul.next('div.user_current_rating').slideDown();
						});
						
						if(data.see.action == 'added')
						{
							Movie.set_see(movie_id);
						}
					}
					
					if(data.action == 'deleted')
					{
						ul.next('div.user_current_rating').slideUp();
					}
				}
			});
				
			return false;
		});
	},
	
	review : function(where)
	{
		if(where.length <= 0)
		{
			where = "#fancy_div ";
		}
		
		jQuery(where+'#actions form').submit(function(){
			href = jQuery(where+'#actions form').attr('action');
			href_data = href.split('/');
			
			body = jQuery(where+'#actions form #id_body').val();
			if(body!="")
			{
				pageTracker._trackPageview(href);
				
				jQuery.post('/marcar/opiniao'+href, {body:body}, function(data){
					if(data!='true'){alert(data);} else {
						jQuery.fn.fancybox.close();
					}
				});
			} else {
				jQuery.fn.fancybox.close();
			}
			return false;
		});
	},
	
	init : function(where)
	{
		Movie.seeOptions(where);
		Movie.ratingTitle(where);
		Movie.mark(where);
		Movie.vote(where);
		Movie.review(where);
		Movie.favorite(where);
	}
}

Artist = {
	setFan : function()
	{
		jQuery('.fanOptions a').click(function(){
			a = jQuery(this);
			href = a.attr('href');
			
			jQuery.getJSON('/ajax'+href, function(data){
				if(data.status == 'error')
				{
					alert(data.message)
				} else {
					if(data.action == 'added')
					{
						a.parent().removeClass('anyactive');
						a.parent().addClass('active');
					}
					
					if(data.action == 'deleted')
					{
						a.parent().removeClass('active');
						a.parent().addClass('anyactive');
					}
				}
			});
			
			return false;
		});
	},
	
	init : function()
	{
		Artist.setFan()
	}
}

function showAjaxErrorMessage(event, XMLHttpRequest, ajaxOptions, thrownError)
{
	alert(ajaxOptions.ur);
}

jQuery(document).ready(function() {
	jQuery(".movieDetails .movieMedia .videos a.video").each(function(i){
		jQuery(this).attr('href', '#fancyLoading');
		jQuery(this).removeAttr('target');
	});
	
	jQuery(".movieDetails .movieMedia .videos a.video").fancybox({
		'frameWidth':644,
		'frameHeight':389,
		'overlayShow' : true,
		'zoomSpeedIn' : 600,
		'zoomSpeedOut' : 500,
		'easingIn' : 'easeOutBack',
		'easingOut' : 'easeInBack',
		'hideOnContentClick':false
	});
	
	jQuery(".movieDetails .movieMedia .videos a.video").click(function(){
		video_id = jQuery(this).attr('rev');
		
		jQuery("#fancy_left").remove();
		jQuery("#fancy_right").remove();
		
		jQuery.get('/filme/video/'+video_id+'/', function(data){
			jQuery('div#fancy_div').html(data);
		}, 'html');
	});
	
	jQuery('.movieItem span.infos span.shortcut a').fancybox({
		'hideOnContentClick':false,
		'frameHeight':390
	});
	
	jQuery('.movieItem span.infos span.shortcut a').click(
		function()
		{
			jQuery("#fancy_title").remove();
			
			a = jQuery(this);
			
			movie_id = a.parents('div.movieItem').attr('id');
			movie_id = movie_id.split('-');
			movie_id = movie_id[1];
			
			pageTracker._trackPageview('/atalho/filme/'+movie_id+'/');
			
			jQuery.get('/atalho/filme/'+movie_id+'/', function(data){
				
				jQuery('div#fancy_div').html(data);
				
				fancyWrapHeight = jQuery("#fancy_div #actions").innerHeight();
				fancyWrapHeight = fancyWrapHeight + 20;
				$("#fancy_outer").css({'height': fancyWrapHeight+'px'});
				
				Movie.init('div#fancy_div ');
				
			}, 'html');
		}
	);
	
	jQuery("#fancyLoading").ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError){
		alert('Eita, aconteceu alguma coisa que não deveria ter acontecido!');
	});
	
	jQuery("#fancyLoading").ajaxStop(function(){
		jQuery.fn.fancybox.hideLoading();
	});
	
	jQuery("#fancyLoading").ajaxStart(function(){
		jQuery.fn.fancybox.showLoading();
	});
	
	Movie.init('');
	Artist.init();
});
