
var film = false;
var is_over = false;
var wrapper = false;
var transiting = false;
var wrapper_binded = false;
var film_w = false;
var wrapper_w = false;
var animating = false;
var current_left = 0;
var speed = 280; //px.s-1
var zone = 0;
		var bodySize = {};
		bodySize.x = bodySize.y = 0;


function disableSelection(target){
	if (typeof target.onselectstart!="undefined") //IE route
		target.onselectstart=function(){return false;};
	else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
		target.style.MozUserSelect="none";
	else //All other route (ie: Opera)
		target.onmousedown=function(){return false;};
	}

var current_opacity = 1;

function bind_opacity()
{
	$('.item .small',film)
	.bind('mouseenter',function(){
		$(this).stop().animate({opacity:1},330);
	}).bind('mouseout',function(){
		$(this).stop().animate({opacity:current_opacity},330);
	});
}

function unbind_opacity()
{
	$('.item',film).unbind('mouseover').unbind('mouseout');
}

var screen_mode = false;

$(document).ready(function(){
	init();
	$('.preview:not(.video)').live('click',function(event){close_pic(event)});
	disableSelection(document.getElementById('page'));
	
	var tmp_f = document.getElementById('film');
	if(tmp_f)
		disableSelection(tmp_f);
	
	$('.item',film).each(function(i,n){
		disableSelection(document.getElementById('image_'+$('.image_id',n).val()));
	});
	
//	$('.item',film).draggable();
//	
//	$('#lightbox .middle').droppable();
	
//	$('#film img.small').css({'opacity':current_opacity});
	bind_opacity();
	
	$("#slider").slider({
		min:0,
		max:100,
		step:1,
		slide: function(event, ui) {
			var n_left = film_w - wrapper_w +740;

			if($('#lightbox .container .lbox_item').length == 0)
				n_left += 80;
				
			n_left = Math.round(n_left * ui.value/100);
			
			n_left = n_left > 0 ? 0 : n_left;
			
			$(wrapper).stop().animate({
					left: n_left
			},1200);
			
			
		}
		
	});
	
	$('#archives').bind('change',function(){
		var val = $(this).val();
		if($.trim(val) != '')
		{
			document.location.replace(val);
		}
	})
	
	$('.item',film)
	.bind('click',function(event){
		
		if ($('div.view', $(this)).length > 0) 
			return;
		$('.wrapper_clients', film).fadeOut('fast');
		
		if (wrapper_binded) {
			unbind_wrapper();
		}
		slider_disappear(true);
		
		$('.item.loading').removeClass('loading loaded');
		
		$('img.small', $(this)).stop().hide().addClass('hide');
		
		var elem = $('.large', $(wrapper));
		if (elem.length > 0) {
			elem.find('img.preview').unbind('load');
			elem.removeClass('large').width(parseInt($('.width_l', $(elem)).val())).find('div.view').remove();
			elem.find('img.small').removeClass('hide').show().trigger('mouseout');
		}
		
		if ($('input[name=video]', $(this)).length > 0) {
			
			
				var n_width = parseInt($('.width_v', $(this)).val()) + 80;
				
				
				$(this).addClass('large').css({
					width: n_width
				});
				
				var offset = (film_w / 3 - n_width / 2) * 1.4;
				
				offset = offset < 80 ? 80 : (offset > 800 ? 800 : offset);
				
				offset = 85;
				
				var left2 = -$(this).position().left + offset;
				transiting = true;
				$(wrapper).stop().animate({
					left: left2
				}, 500, 'easeOutQuad', function(){
					var el = $('div.large img.preview');
					transiting = false;
					fade_this($(el));
				});
				
				$(this).append(unescape($('.image', $(this)).val()));
				var so = new SWFObject(servername + 'player.swf','mpl','800','520','10');
				so.addParam('allowfullscreen','true');
				so.addParam('allowscriptaccess','always');
				so.addParam('wmode','opaque');
				so.addVariable('file',$('input[name=video]', $(this)).val());
				so.addVariable('backcolor','000000');
				so.addVariable('frontcolor','AAAAAA');
				so.addVariable('autostart','true');
				so.addVariable('stretching','fill');
				so.write('video_' + $('input.image_id', $(this)).val());
				$('#video_' + $('input.image_id', $(this)).val()).css('visibility', 'visible');
		}
		else {
		
			if (screen_mode) {
			
			
				var n_width = parseInt($('.width_v', $(this)).val()) + 80;
				
				
				$(this).addClass('large').css({
					width: n_width
				});
				
				var offset = (film_w / 3 - n_width / 2) * 1.4;
				
				offset = offset < 80 ? 80 : (offset > 800 ? 800 : offset);
				
				offset = 85;
				
				var left2 = -$(this).position().left + offset;
				transiting = true;
				$(wrapper).stop().animate({
					left: left2
				}, 500, 'easeOutQuad', function(){
					var el = $('div.large img.preview');
					transiting = false;
					fade_this($(el));
				});
				
				$(this).addClass('loading').append(unescape($('.image', $(this)).val()));
			}
			else {
			
				var n_width = parseInt($('.width_s', $(this)).val()) + 60;
				
				
				$(this).addClass('large').css({
					width: n_width
				});
				
				var offset = (film_w / 3 - n_width / 2) * 1.4;
				
				offset = offset < 80 ? 80 : (offset > 800 ? 800 : offset);
				
				offset = 85;
				
				var left2 = -$(this).position().left + offset;
				transiting = true;
				$(wrapper).stop().animate({
					left: left2
				}, 500, 'easeOutQuad', function(){
					var el = $('div.large img.preview');
					transiting = false;
					fade_this($(el));
				});
				$(this).addClass('loading').append(unescape($('.image_s', $(this)).val()));
			}
		}
	});
	
	$(window).bind('resize',function(){
		
		
		
		
		bodySize.x = $(this).width();
		bodySize.y = $(this).height();
		
		
		var tptop =  $('#template_top').height() + $('#template_top').offset().top;

		var f_height = bodySize.y - tptop - 550 - 25;
		f_height = f_height > 135 ? 135 : (f_height < 45 ? 45 : f_height);
		
//		$('#footer').height(80);
//		$('#footer').height(f_height);
				
				
		film_w = film.width();
		wrapper_w = wrapper.width();
		zone = film_w / 4; 
		var left = Math.round((bodySize.x  - 1000) * 160 / 700 + 40);
		left = left < 40 ? 40 : left;
//		$('#footer, #template_top').css('left' , left); 
//		$('#footer').css('left' , 43); 
//		$('#template_top').css('left' , 95);
		var f_top = (bodySize.y - film.height()-30) / 2   ;
		
		var abheight = (bodySize.y - (tptop+175) - f_height);
		var abheight2 = abheight+80;
		abheight = abheight < 200 ? 200 : abheight;
		abheight2 = abheight2 < 200 ? 200 : abheight2;
		
		$('#artist_bio').css({left:85, top:(tptop+75)}).height(abheight);
		$('#contact-box').css({left:85, top:(tptop+35)}).height(abheight);
		
//		if($('#lightbox:visible').length > 0)
//		{
//			var he_l = bodySize.y - 180;
//			he_l = he_l > 0 ? he_l : 0;
//			$('#lightbox').height(he_l);
//		}
		
		
		if(screen_mode)
		{
			f_top = f_top < 130 ? 130 : f_top;
		}
		else
		{
			f_top = f_top < 130 ? 130 : f_top;
		} 
		
		if(bodySize.x < 1100 || bodySize.y < 680)
		{
			screen_mode = false;
		}
		else
		{
			screen_mode = true;
		}
		
		film.css('top',f_top);
				
	});
	$(window).trigger('resize');
	
	
	
	$(this).bind('keydown',function(event){
		var cancelKey = false;

		switch(event.keyCode)
		{
			case 39:
			case 38:	// up arrow
				get_next();
				cancelKey = true;
				break;
			case 40:	// down arrow
			case 37:
				get_previous();
				cancelKey = true;
				break;
			case 27://escape
				close_pic(event);
				break;
		}
		if (cancelKey) {
			event.cancelBubble = true;
			if (event.stopPropagation) 
				event.stopPropagation();
			return (false);
		}
	}).bind('scroll',function(event){
		event.cancelBubble = true;
		if(event.stopPropagation)
			event.stopPropagation(); return false;
	}).bind('keypress',function(event){
				var cancelKey = false;

		switch(event.keyCode)
		{
			case 39:
			case 38:	// up arrow
				cancelKey = true;
				break;
			case 40:	// down arrow
			case 37:
				cancelKey = true;
				break;
			case 27://escape
				break;
		}
		if (cancelKey) {
			event.cancelBubble = true;
			if (event.stopPropagation) 
				event.stopPropagation();
			return (false);
		}
	});
	bind_wrapper();
});


function unbind_wrapper(){
	$(wrapper).unbind();
	wrapper_binded = false;
	current_opacity = 0.17;
	$('img.small',wrapper).css('opacity',current_opacity);
}

function init()
{
	film = $('#film');
	wrapper = $('.wrapper',film);
}

var side = false;

function bind_wrapper()
{
	
	$('img.small', wrapper).bind('mouseover',function(event){
		if((event.pageX > (3 * zone)) || (event.pageX < zone))
		{
			if(animating)
				return false;
			$(this).trigger('mouseenter',[event.pageX]);
		}
		else
		{
			if(animating)
				$(this).trigger('mouseleave');
		}
	})
	$(wrapper)
	.bind('mouseenter',function(event, pageX){
		
		if(!event.pageX)
			event.pageX = pageX

		var n_left = 0;
		var c_left = parseInt($(wrapper).css('left'));
		
		n_left = false;
		
		//scroll droit
		if(event.pageX > 3 * zone)
		{
				side = false;
				n_left = film_w - wrapper_w +740;
//				if($('.large',film).length == 0)

				if($('#lightbox .container .lbox_item').length == 0)
					n_left += 80;
					
				n_left = n_left > 0 ? 0 : n_left;

		}
		//scroll gauche
		else
		{
			if(event.pageX < zone)
			{
			side = true;
			n_left = 0;
			} 
		}

		if(n_left === false)
			return;
		
		var acceleration = false;
		var diff = Math.abs(c_left - n_left);
		
		if(Math.abs(n_left - c_left) > (4 * speed))
			acceleration = true;
		
		animating=true;
		slider_disappear();
//		unbind_opacity();
		$('#film img.small').css({'opacity':current_opacity});
		
		if(!acceleration)
		{
			var duration = diff * 1000 / speed;
			$(wrapper).stop().animate({left:n_left}, duration, 'easeOutQuad', function(){animating=false;slider_appear();});
		}
		else
		{
			var duration = Math.abs(diff - speed) * 1000 / speed;
			if(side)
				var transition = c_left + speed/2;
			else
				var transition = c_left - speed/2;
			$(wrapper).stop().animate({left: transition},1000,'easeInSine', function(){$(this).animate({left:n_left}, duration, 'linear', function(){animating=false;slider_appear();})});
		}
		
	})
	.bind('mouseleave',function(){
		if(!animating)
		{
			return;
		}
		animating=false;
		slider_appear();
		if(side)
			var left = ($(wrapper).offset().left + speed/2);
		else
			var left = ($(wrapper).offset().left - speed/2);
		$(wrapper).stop().animate({left:left},1200, function(){});
	});
	wrapper_binded = true;
}

function slider_disappear(bool)
{
	if(bool === true)
		$('#slider_wrapper').fadeOut();
}
function slider_appear(bool)
{
	var left = parseInt($(wrapper).css('left'));
	var n_left = film_w - wrapper_w +740;

	if($('#lightbox .container .lbox_item').length == 0)
		n_left += 80;
		
	var value = Math.round(100 * left / n_left);
	if(bool === true)
		$('#slider_wrapper').fadeIn();
	$('#slider').slider('option','value',value);
}


function close_pic(event)
{
	
		event.cancelBubble = true;
		if(event.stopPropagation)
			event.stopPropagation();
		$('.wrapper_clients',film).fadeIn('fast');
		var elem = $('.large',$(wrapper));
		if (elem.length > 0) {
			elem.removeClass('large').width(parseInt($('.width_l',$(elem)).val())).find('div.view').remove();
			elem.find('img.small').removeClass('hide').show();
		}
		
		if(parseInt(wrapper.css('left')) < 0)
		{
				var m_left = film_w - wrapper_w + 740 ;
				if($('#lightbox .container .lbox_item').length == 0)
					m_left += 80;
				var n_left = parseInt(wrapper.css('left'));
				
				n_left = n_left < m_left ? m_left : n_left;
				n_left = n_left > 0 ? 0 : n_left;
			wrapper.animate({'left':n_left});
		}
		else
		{
			wrapper.animate({
				'left': 0
			});
		}
		
		bind_wrapper();
		slider_appear(true);
		
		current_opacity = 1;
		$('img.small',wrapper).css('opacity',current_opacity);
}







function get_next()
{
	var current = $('.item.large',film);
	if (current.length == 0) 
		return false;
	else {
		current = current.next('.item');
		if(current.length == 0)
			return false;
	}
	
	$(current).trigger('click');
}
function get_previous()
{
	var current = $('.item.large',film);
	if (current.length == 0)  
		return false;
	else {
		current = current.prev('.item');
		if(current.length == 0)
			return false;
	}
	$(current).trigger('click');
}




function loaded_this(el)
{
	$(el).closest('.item').addClass('loaded');
	
	if(!transiting)
		fade_this(el);
}




function fade_this(el)
{
	var item = $(el).closest('.item');
	
	if(!item.hasClass('loaded'))
		return false;
	
	item.removeClass('loading');
	$(el).css('display','none').css('visibility','visible').fadeIn();
}





$('.lbox_item').live('mouseover',function(){$(this).find('.remover').show().css('display','block');});
$('.lbox_item').live('mouseout',function(){$(this).find('.remover').hide();});

$('#lightbox .top .scroll').bind('mouseenter',function(){
	
	var cont = $('#lightbox .container');
	var top = 0;
	var diff = Math.abs(parseInt($('#lightbox .container').css('top')) - top);
	if(diff<1)
		return false;
	
	var duration = diff * 3500 / speed;
	cont.stop().animate({top:top}, duration);
}).bind('mouseout',function(){
	$('#lightbox .container').stop();
});
$('#lightbox .bottom .scroll').bind('mouseenter',function(){
	
	var cont = $('#lightbox .container');
	var top = $('#lightbox .middle').height() - cont.height();
	
	top = top < 0 ? top : 0;  
	var diff = Math.abs(parseInt($('#lightbox .container').css('top')) - top);
	if(diff<1)
		return false;
	
	var duration = diff * 3500 / speed;
	cont.stop().animate({top:top}, duration);
}).bind('mouseout',function(){
	$('#lightbox .container').stop();
});


function update_lightbox()
{
	
	var image_ids = [];
	$('#lightbox .container input.image_id').each(function(i,n){
		image_ids.push($(n).val());
	});
	
	$.ajax({
		type: "POST",
		url: servername + "ajaxfeedback.php",
		data: {
			action: "LIGHTBOX",
			image_ids:image_ids
		},
		success: function(data){
			return;
		}
	});
}

function add_to_lightbox(id)
{
	if($('#light_item_'+id).length > 0)
		return false;
		
	$('#lightbox .middle .container').append(unescape($('#image_'+id).parent().find('.lightbox').val()));
	$('#lightbox').animate({right:0});
	update_lightbox();
	lbox_realign();
}
function remove_from_lightbox(el)
{
	$(el).closest('.lbox_item').fadeOut('fast',function(){$(this).remove();update_lightbox();if ($('#lightbox .container .lbox_item').length == 0) {
		$('#lightbox').animate({
			right: -100
		});
	}});
	
	
	
	
}

function lbox_realign()
{
	
	var cont = $('#lightbox .container');
	var top = $('#lightbox .middle').height() - cont.height();
	
	top = top < 0 ? top : 0;  
	var diff = Math.abs(parseInt($('#lightbox .container').css('top')) - top);
	if(diff<1)
		return false;
	
	cont.stop().animate({top:top}, 'fast');
}


function clear_lightbox()
{
	$('#lightbox .container').empty().css('top',0);
	$('#lightbox').animate({right:-100});
	update_lightbox();
}

function print_lightbox()
{
	var image_ids = [];
	$('#lightbox .container input.image_id').each(function(i,n){
		image_ids.push($(n).val());
	})
	$('#print_pdf input').val(image_ids);
	$('#print_pdf').submit();
}

