var path;
var data;
var last_event_id;
var click_lock=false;
var browser=safari=window.navigator.userAgent.toLowerCase();
var moving=false;
// safari detector just in case
//var safari=browser.indexOf('safari')>=0 && browser.indexOf('chrome')<0;
var no_cursor_broweser=browser.indexOf('opera')>=0 || browser.indexOf('msie')>=0 ;
var works_array=[];
var films_array=[];
var first_work_id;	

$.extend({
	_enc_div: null,
	htmlenc: function(val) {
		if (this._enc_div == null) this._enc_div = $('<div />');
		this._enc_div.text(val);
		return this._enc_div.html().replace("\n", "<br />");
	},
	htmldec: function(val) {
		if (this._enc_div == null) this._enc_div = $('<div />');
		this._enc_div.html(val);
		return this._enc_div.text();
	},
	preload_images: function(images, pointer, callback) {
		if (images.length > pointer) {
			$('<img />').load(function() {
				$.preload_images(images, pointer + 1, callback);
			}).attr('src', images[pointer]);
		} else {
			callback();
		}
	}
});

var lock = false;

$(function() {
	if (lock) return;
	lock = true;

	// menu events
	var $menu_contacts_obj		= $( '#menu_contacts' ); 
	var $menu_films_obj			= $( '#menu_films' ); 
	var $menu_portfolio_objs	= $( '#menu_container .portfolio' ); 
	var $navigation_prev_obj	= $( '#navigation_prev' ); 
	var $navigation_next_obj	= $( '#navigation_next' );
	var $portfolio_view_objs	= $( '#portfolios_page div.view' );
	var $films_view_obj			= $( '#film_view' );
	
	var viewport_width 			= $( window ).width();
//	$films_view_obj.width( viewport_width );
//	$portfolio_view_objs.width( viewport_width ).css('overflow', 'hidden');
	
	// You need to specify the size of your background image here (could be done automatically by some PHP code)
	var startpicture_width		= data.startpicture_width;
	var startpicture_height		= data.startpicture_height;
	var FullscreenrOptions = { 
		'width':				startpicture_width,
		'height':				startpicture_height,
		'bgID':					'#start_picture'
	};
	// This will activate the full screen background!
	jQuery.fn.fullscreenr(FullscreenrOptions);
//////////////////////////////////////////
	$(window).resize(function() {
		$('#modal_overlay').height($(this).height()).width($(this).width());
	});


	$( '#start_button' ).click(
		function () {
			//added
			$( '#start_page' ).css('background', '#F7F7F2'); 
			$( '#start_picture' ).animate(
					{ opacity: 0}, 800, function() { 
						$( '#start_page' ).animate(
								{ opacity: 0}, 400
								);
						$( '#start_page' ).hide();}
						);
			//added
			$( '#logo_container' ).show();
			$( '#menu_container' ).show();
			$( '#menu_container li:first' ).click();
		}
	);                                                                         

//////////////////////////////////////////

	var current_film_id			= null;
	var current_portfolio_id	= null;
	var current_work_id			= null;
	
	var films					= data.films;
	var first_film_id			= films[0].id;
	var portfolios				= data.portfolios;
	var portfolios_order		= data.portfolios_order;
	
	var films_total				= 0;
	
	var media_path				= data.settings.media_root + 'images/';
//////////////////////////////////////////

	for ( i in portfolios) {
		var portfolio			= portfolios[i];
		
		works					= portfolio['works'];
		
		for ( j in works ) {
			var work				= works[j];
			
			var work_id				= work.id;
			works_array[parseInt(work_id)]=work.project
			var work_ord			= work.ord;
			var work_uid			= work.img_uid;
			var work_ext			= work.img_ext;

			var work_path			= media_path + work_id + '/' + work_uid + '/normal.' + work_ext;
			var $work_obj			= $( '#portfolio_work_' + work_id );
			var $work_picture_obj	= $( '#work_picture_' + work_id );

			$work_picture_obj.click(
				function () {
					var work_id		= get_obj_id( this, 'work_picture' );
				
					if ( work_id == current_work_id ) {
						// clicked on current work, show next
						show_next_work();
					}
					else {
						// clicked on some of prev/next works, show it
						show_work( work_id );
					}
						window.setTimeout(function() {
							
							$('.cursor_left').removeClass('cursor_left');
						$('.cursor_right').removeClass('cursor_right');
					}, 300);
				}
			).hover(
				function () {
					var work_id		= get_obj_id( this, 'work_picture' );
					var $work_obj	= $( '#portfolio_work_' + work_id );
					if ( work_id != current_work_id ) {
						$work_obj.css( 'opacity', 0.12 );
						$('.cursor_left').removeClass('cursor_left');
						$('.cursor_right').removeClass('cursor_right');

						if(no_cursor_broweser===true ) {
								$('#work_picture_'+work_id).addClass('cursor_subst');	
						}else{
								var diff=$work_obj.attr('rel')-$( '#portfolio_work_' + current_work_id ).attr('rel');
								if(diff<0) {
								$('#work_picture_'+work_id).addClass('cursor_left');
								}else if (diff>0) {
								$('#work_picture_'+work_id).addClass('cursor_right');
								}else if($work_obj.next()[0]){
								$('#work_picture_'+work_id).addClass('cursor_right');
								}
							}//if not opera
						}
				},
				function () {
					var work_id		= get_obj_id( this, 'work_picture' );
					var $work_obj	= $( '#portfolio_work_' + work_id );
					
					if ( work_id != current_work_id ) {
						$work_obj.css( 'opacity', 0.05 );
					}
				}
			);
			$work_obj.css( 'opacity', 0.05 );
		}    

		if ( works ) {
			works_total				= works.length;
		}
		else {
			works_total				= 0;
		}
	var end=5;
	}
//////////////////////////////////////////

	function get_obj_id( obj, prefix ) {
		var id;
		
		if ( obj && prefix ) {
			var pattern			= new RegExp( prefix + '_(\\d+)' );
			id					= parseInt( pattern.exec( obj.id )[1] );
		}
		return id;
	}
//////////////////////////////////////////

/////////////////////////////			
	function show_work( work_id ) {
		if ( ( current_work_id === null ) || ( current_work_id != work_id ) ) {
			function fade_in_work() {
				$work_obj.animate({'opacity':	1});
			}

/////////////////////////////			
			function move_works() {
				$container_obj.animate(
					{
						'margin-left':	new_work_left + 'px'
					},
					'slow',
					fade_in_work
				);
				// fade previous prj name opacity
				if ( current_work_id !== null) { 
				$('#portfolios_page .prj_name').animate(
						{
							"opacity": 0
						},
						200,
						function() {
							$('#portfolios_page .prj_name').html('&nbsp;&nbsp;'+works_array[current_work_id]);
							
						})
					// and show next work name
				$('.prj_name').animate(
						{
							"opacity": 1
						},
						450
					)
				}else{
					$('#portfolios_page .prj_name').css('opacity', '0');
					$('#portfolios_page .prj_name').html('&nbsp;&nbsp;'+ works_array[first_work_id]);
					$('#portfolios_page .prj_name').animate(
							{
								"opacity": 1
							},
							600
						)
				}
 			}//func
/////////////////////////////			
			var $work_obj			= $( '#portfolio_work_' + work_id );
			var $picture_obj		= $( '#portfolio_work_' + work_id + ' img' );
			var $container_obj		= $( '#portfolio_carousel_' + current_portfolio_id );

			var work_left		= $work_obj.offset().left;
			var container_left	= $container_obj.offset().left; 
			
			var new_work_left	= container_left - work_left + 40;
			
			if ( current_work_id !== null ) {
				var $old_work_obj		= $( '#portfolio_work_' + current_work_id );
				var $old_picture_obj	= $( '#portfolio_work_' + current_work_id + ' img' );

				$old_work_obj.animate(
					{
						'opacity':	0.05
					},
					move_works
				);
			}else {
				$( '#portfolio_entry_' + current_portfolio_id + ' .work' ).removeClass( 'selected' );
				$( '#portfolio_entry_' + current_portfolio_id + ' .work' ).css( 'opacity', 0.05 );
				move_works();
			}
						
			current_work_id		= work_id;
			$( '#portfolio_work_' + current_work_id ).addClass( 'selected' );

			$navigation_prev_obj.unbind('click').click(
					function () {
					if($('#menu_films').attr('rel')==1){
						$('#film_item_'+current_film_id).prev().click();
					}else{show_prev_work();}				
						return false;
					}
				);
				
				$navigation_next_obj.unbind('click').click(
					function () {
						if($('#menu_films').attr('rel')==1){
							$('#film_item_'+current_film_id).next().click();
						}else{ show_next_work();}
						return false;
					}
				);
		}
	}//func show_work
	
//////////////////////////////////////////
	function show_next_work() {
		var $current_work_obj	= get_current_work_obj();
		var $next_work_obj		= $current_work_obj.next();
		
		if ( $next_work_obj.length > 0 ) {
			var next_work_id	= get_obj_id( $next_work_obj.get()[0], 'portfolio_work' );
		
			show_work( next_work_id );
		}
	}
//////////////////////////////////////////
	function get_current_work_obj() {
		var $current_work_obj	= $( '#portfolio_work_' + current_work_id );
		
		return $current_work_obj;
	}
//////////////////////////////////////////
	function show_prev_work() {
		var $current_work_obj	= get_current_work_obj();
		var $prev_work_obj		= $current_work_obj.prev();

		if ( $prev_work_obj.length > 0 ) {
			var prev_work_id	= get_obj_id( $prev_work_obj.get()[0], 'portfolio_work' );
			
			show_work( prev_work_id );
		}
		
	}

//////////////////////////////////////////
	function select_menu_entry() {
		$(this).stop();
		$(this).animate( { 'borderBottomColor': '#9D8964' }, 'slow' ); 
	}
	
	function deselect_menu_entry() {
		$(this).stop();
		$(this).css( 'border-bottom-color', '#ffffff' );
	}
//////////////////////////////////////////
	$menu_contacts_obj.hover( select_menu_entry, deselect_menu_entry );
	$menu_films_obj.hover( select_menu_entry, deselect_menu_entry );
	$menu_portfolio_objs.hover( select_menu_entry, deselect_menu_entry );

//////////////////////////////////////////
	function remove_overlay() { 
    	$( '#modal_overlay' ).hide();

   // 	 backward animation
    	$( '#contacts_container' ).animate(
			{
				'margin-top':	'-120px'
			},
			'slow',
			function () {
				$( '#contacts_page' ).hide();
				moving=false;
			}
    	);
	}
	function create_overlay() { 
		overlay.height($(window).height()).width($( window ).width());
    	$( '#modal_overlay' ).show();
    	// get width:
    	var view_width		= null;
		var compare_id;
		
		!current_film_id ? compare_id=first_work_id : compare_id=current_work_id; 
		
		if ($('#menu_films').attr('rel')==0) { 
			view_width= $('#portfolio_work_' + compare_id).width();
		}else{
			view_width= 640;
		}
		if ( view_width < 400 ) {
			view_width		= 400;
		}
    	// show animation
		$( '#contacts_container' ).css( 'margin-top', '-120px' );
		$( '#contacts_page' ).show().width( view_width ); 
		$( '#contacts_container' ).delay(1).animate(
				{
					'margin-top':	'0px'
				},
				'slow',
				function() {moving=false;}
		);
	}
//////////////////////////////////////////
	$menu_contacts_obj.click(
		function () {
			if(moving===true)return false;
			moving=true;
			create_overlay();
			$('#modal_overlay').click(function(){
					if(moving===false){
					moving=true;
					remove_overlay();
					}
				}
			);
			return false;
		}
	);	
	//////////////////////////////////////////// 
	$menu_portfolio_objs.click(
		function () {
			$('#menu_films').attr('rel','0');

			$( '#menu_container li' ).css( 'border-bottom-color', '#ffffff' );
			$(this).css( 'border-bottom-color', '#9D8964' );
			
			var portfolio_id		= get_obj_id( this, 'menu_portfolio' );

			$( '#menu_container li' ).hover( select_menu_entry, deselect_menu_entry );
			$(this).unbind('mouseenter mouseleave');

			$( '#films_page' ).hide();
			$( '#portfolios_page .portfolio_entry' ).hide();
			$( '#portfolio_entry_' + portfolio_id ).show();
			$( '#portfolios_page' ).show();
			
			current_portfolio_id	= portfolio_id;

			 first_work_id	= portfolios[portfolio_id]['works'][0].id;
			current_work_id		= null;

			show_work( first_work_id );		

			return true;
		}
	);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	$menu_films_obj.click(
			function () {
				
				$('#menu_films').attr('rel','1');

				$( '#menu_container li' ).css( 'border-bottom-color', '#ffffff' );
				$(this).css( 'border-bottom-color', '#9D8964' );
								
				$( '#menu_container li' ).hover( select_menu_entry, deselect_menu_entry );
				$(this).unbind('mouseenter mouseleave');
				$( '#portfolios_page .portfolio_entry' ).hide();
				$( '#portfolios_page' ).hide();
				$( '#films_page' ).show();
				
				$('#film_img_'+first_film_id).hide();
				$('#play_'+first_film_id).show();

				click_lock=true;
				// show projectname here				
				$('#films_page .prj_name').css('opacity', '0');
				$('#films_page .prj_name').html('&nbsp;&nbsp;'+ films_array[current_film_id]);
				$('#films_page .prj_name').animate(
						{
							"opacity": 1
						},
						200
					)
				//> show projectname here
				var flowparams={
						"clip" : {
								 "url": path+'media/videos/'+first_film_id, 
								 "autoPlay": false
								},
						"plugins":{"controls": null	
												},
				   		"canvas": {"backgroundImage": "url("+$('#film_img_'+first_film_id).attr('src')+")"},
						"onLoad": function() {{click_lock=false;};}
						
								};

				flowplayer('play_'+first_film_id, {"src": path+'media/flowplayer-3.2.5.swf',"wmode": 'opaque'}, flowparams 
				); 
				return true;
			}
	);
//////////////////////////////////////////
for (var y in films) {
	var film=films[y];	
	films_array[film.id]=film.project;
	if(!current_film_id)current_film_id= film.id;
	if(first_film_id!=film.id)	$('#film_item_'+film.id+' img').css( 'opacity', 0.12 );
	

	$('#film_item_'+film.id).hover(function() {
		if(click_lock)return;
		var ira=$(this).attr('id');
		if($(this).attr('id')!='film_item_'+current_film_id) {
		
		$(this).css( 'opacity', 0.12 );
		$('.cursor_left').removeClass('cursor_left');
		$('.cursor_right').removeClass('cursor_right');
		// cursor
		if(no_cursor_broweser===true ) {
			$(this).addClass('cursor_subst');
		}else{
			if($(this).nextAll().is('#film_item_'+current_film_id)) { $(this).addClass('cursor_left'); }
			if($(this).prevAll().is('#film_item_'+current_film_id)) { $(this).addClass('cursor_right'); }
		}
		//> cursor
	}//if
		}, function () {//mouseleave
			if(click_lock)return;
			if($(this).attr('id')!='film_item_'+current_film_id) {
			var this_id_attr=$(this).attr('id');
			var this_id=this_id_attr.substr(10);
			if(last_event_id!=='film_img_'+this_id){
		$(this).css( 'opacity', 0.05 );
			}//if
			}//if
		}//dehover
	
	).click(function(event){
		 if(click_lock)return;
		 click_lock=true;
		 last_event_id=event.target.id;
		 last_event_type=event.type;
					//----vars
					var this_id_attr=$(this).attr('id');
					var this_id=this_id_attr.substr(10);
					var video="play_"+this_id;
					var prev_id=(current_film_id ? current_film_id : first_film_id);
					//----vars
		
			$('#play_'+prev_id).empty().hide();
			$('#film_img_'+ prev_id).show();
			var new_left=$('#film_carousel').offset().left - $(this).offset().left+40;
			$('#film_item_'+this_id).stop();
			$('#film_item_'+this_id).animate({'opacity': 1});
			$('#film_img_'+this_id).animate({'opacity': 1});
			// change prj name
			// fade previous prj name opacity
			$('#films_page .prj_name').animate(
					{
						"opacity": 0
					},
					200,
					function() {
						$('#films_page .prj_name').html('&nbsp;&nbsp;'+films_array[this_id]);
					}
				)
				// and show next work name
			$('#films_page .prj_name').animate(
					{
						"opacity": 1
					},
					450
				)

			//> change prj name
			$('#film_carousel').animate({"margin-left": new_left+'px'}, 900).delay(250).queue( function (next) {
								$('#film_img_'+this_id).hide();
								$('#'+video).show();
								var flowparams={
											"clip": {
												"url": path+'media/videos/'+this_id
											},
											"plugins": {
												"controls": null
											},
											"onLoad":  function() {
													click_lock=false;	
													//todo: check td , where cursor position is and set proper pointer	
												}
										};
									flowplayer(
										video,
										{"src": path+'media/flowplayer-3.2.5.swf',
											"wmode": 'opaque'},
										flowparams
									);//flow end
								current_film_id=this_id;
								next();
			});
	});
};//for in films
//rest of images loading
function img_loading () {
	var unloaded=$('img[src$="loader.gif"]');
	unloaded.each(function() {
		var t = $(this);
		$('<img />').load(function() {
			t.attr('src', t.attr('rel'));
		}).attr('src', t.attr("rel"));
	});
}//func
img_loading();
//>rest of images loading

var overlay	= $('<div id="modal_overlay" style="display: none;  filter: alpha(opacity=0);"><img src="'+path+'css/pixel.gif" style="width: 100%; height: 100%;"/></div>');
$('body').append(overlay);

});
