var height = 200;
var width = 300;
var brick_start = new Array();
var layer = 0; 
var lang = new Array();
var clicked = 0;
var mixed = 0;
var start_time = new Date();
var end_time = new Date();

function run_rotators() {
	
	$('#new_clientsRotator').scrollable({
        circular: true,
        items: 'ul',
        next: '#nextSlide',
        prev: '#prevSlide'
    });
    
    $('#new_clientsRotator li').each(function() {
        var contHeight = $(this).height();
        var img = $(this).find('img');
        var imgHeight = img.height();
        var oldPadding = img.css('padding-top');
        
        var diff = (contHeight - imgHeight) / 2 ;
        
        img.css({
            'padding-top': diff+'px'
        });
        
//        alert( contHeight + 'px\n'+imgHeight+'px' );
    });
       $('#new_clientsRotator_big').scrollable({
           circular: true,
           items: 'ul',
           next: '#nextSlide',
           prev: '#prevSlide'
       });

       $('#new_clientsRotator_big a').each(function() {
           var contHeight = $(this).height();
           var img = $(this).find('img');
           var imgHeight = img.height();
           var oldPadding = img.css('padding-top');

           var diff = (contHeight - imgHeight) / 2 ;

           img.css({
               'padding-top': diff+'px'
           });

    //               alert( contHeight + 'px\n'+imgHeight+'px' );
       });
}

function localize(lang) {
	str = new Array();
	
	if(!lang) lang = $('#lang').attr('class');
	
	switch(lang) {
	case 'en':
		str.label_lang = "Choose language";
		str.label_gender = "Choose gender";
		str.label_mood = "Choose mood";
		str.label_skip = "SKIP";
		str.label_loading = "Loading";
		str.loading_error = "Error while content loading";
		break;
	case 'pl':	
		str.label_lang = "Wybierz język";
		str.label_gender = "Wybierz płeć";
		str.label_mood = "Wybierz nastrój";
		str.label_skip = "POMIŃ";
		str.label_loading = "ładowanie";
		str.loading_error = "Błąd w pobieraniu strony";
		break;
	case 'gr':
		str.label_lang = "Επιλέξτε τη γλώσσα";
		str.label_gender = "Διαλέξτε το φύλο";
		str.label_mood = "Επιλέξτε διάθεση";
		str.label_skip = "SKIP";
		str.label_loading = "Φόρτωση";
		str.loading_error = "Σφάλμα κατά τη φόρτωση του περιεχομένου";
		break;
	}
	return str;
}

$(document).ready(function()
		{
		Cufon.replace(".txt, #menu a, h1");
		run_rotators();
		
		function get_bricks() {
			var brick_array = new Array();
			$(".draggable").each(function(i){
				brick_array[i] = new Array();
				brick_array[i].top = $(this).css('top');
				brick_array[i].left = $(this).css('left');
			});
			if(brick_array[0]) {
				$("#reset").removeClass('dn');
				$("#mix").removeClass('dn');
			}
			return brick_array;
		}
		
		function reset_bricks(brick) {
			$(".draggable").each(function(i){
				id = "#" + $(this).attr('id') + "_data";
				$(this).animate({left: brick[i].left, top: brick[i].top},300);
				$(id).css('left',brick[i].left);
				$(id).css('top',brick[i].top);
			});
			
			mixed = 0;
		}
		
		function mix_bricks(start_brick) {
			var r = 0; 
			var tmp_left = 0;
			var tmp_top = 0;
			var id;
			
			/* create temporary array */
			var tmp_brick = new Array(); 
			for (var j in start_brick) {
				tmp_brick[j] = new Array();
				tmp_brick[j].top = start_brick[j].top;
				tmp_brick[j].left = start_brick[j].left;
			}
			
			/* calculate targets */
			$(".draggable").each(function(i){	
				r = Math.floor((10-2)*Math.random());
			
				tmp_left = tmp_brick[r].left;
				tmp_top = tmp_brick[r].top;
				
				tmp_brick[r].left = tmp_brick[i].left;
				tmp_brick[r].top = tmp_brick[i].top;
				
				tmp_brick[i].left = tmp_left;
				tmp_brick[i].top = tmp_top;
			});

			/* move bricks */
			$(".draggable").each(function(i){
				id = "#" + $(this).attr('id') + "_data";
				$(this).animate({left: tmp_brick[i].left, top: tmp_brick[i].top},300);
				$(id).css('left',tmp_brick[i].left);
				$(id).css('top',tmp_brick[i].top);
				//$(id).animate({ left: tmp_brick[i].left, top: tmp_brick[i].top},300);
			});	
			
			mixed = 1;
			d = new Date();
			start_time  = d.getTime();
		}
		
		function calculate_score(brick_set) {
			score = 1;
			
			if(!mixed) return; 
			
			$(".draggable").each(function(i){
				id = "#d" + (i+1);
				
				if($(id).css('left') != brick_set[i].left || $(id).css('top') != brick_set[i].top) {
					score = 0;
					return;
				}
			});
			
			if(score) { 
			
				d = new Date();
				end_time  = d.getTime();
				time = end_time - start_time;
				score = Math.round(time/10)/100;
				mixed = 0;
				
				$('#score').html(score);
				$('#over-score').fadeIn("slow"); //window.alert('Brawo!!');
			}
		}
                
                function save_state(id) {
			
			var opened_layer = new Array();
			
			opened_layer.left = $(id).css('left');
			opened_layer.top = $(id).css('top');
			opened_layer.zindex = $(id).css('z-index');
			opened_layer.height = $(id).css('height');
			opened_layer.width = $(id).css('width');
			opened_layer.id = id;
			
			return opened_layer;
		}
		
		function restore_state(opened_layer) {

			$(".close-button").fadeOut("slow");
                       
			if(opened_layer.id) {
                            $(opened_layer.id).html(""); /* resets content box, to make available running rotators many times */
                        }
                   
			$(opened_layer.id).animate(
				{ 
					left: opened_layer.left, 
					top: opened_layer.top, 
					width: opened_layer.width, 
					height: opened_layer.height
				},
				500,
				"linear",
				function() {
					$(opened_layer.id).css("z-index",-1);
					$(opened_layer.id).css("visibility","hidden");
					layer = 0;
				}
			);
			
			return 1;
		}
		
		/* no - AJAX button */
		$('.close-button').hover(
			function(){$(this).addClass('button-state-active');},
			function(){$(this).removeClass('button-state-active');}
		);
		
		/* AJAX */
		
		function ajSuccess() {
			run_rotators();
			
			$(".close-button").click(function(event) {
				restore_state(layer_org_values);
				event.preventDefault();
			});
			$('.close-button').hover(
				function(){$(this).addClass('button-state-active');},
				function(){$(this).removeClass('button-state-active');}
			);
			
			Cufon.replace(".txt, h1");
		}
		
		$().ajaxSend(function(r,s){
		});

		$().ajaxError(function(r,s){
			
			$(layer_org_values.id).html("<div class='ajax-loader txt1'>"+lang.loading_error+"</div>");
			Cufon.replace(".txt1");
			setTimeout(function(){layer_org_values = restore_state(layer_org_values);},2000);
		});
		
		/* AJAX - END */                
                
		
		/* app start */
		brick_start = get_bricks();
		lang = localize();
		
		$("#reset").click(function(){
			restore_state(layer_org_values);
			reset_bricks(brick_start); 
		});
		
		$("#mix").click(function(){
			restore_state(layer_org_values);
			mix_bricks(brick_start);
		});
		
		var start = new Array();
		var end = new Array();
		var dragging = 0;
		
		$(".draggable").css("cursor","move");
		
		$(".draggable").draggable({
			snap: '.bg', 
			snapTolerance: 30,
			snapMode: 'inner',
			cancel: 'div.text-field',
			scroll: false,
			
			start: function(event, ui) {
				dragging = 1;
				start.left = $(this).css('left');
				start.top = $(this).css('top');
				
				if($(this).css('z-index') < 20) {
					/* bring active layer to top */
					var zind = 0;
					$(".draggable").each(function(i){
						zind = $(this).css('z-index');
						if(zind > 1) $(this).css('z-index',zind-1);
					});
					$(this).css('z-index', 20);
				}
			},
			
			stop: function(event, ui) {
				var id;
				var data_id;
				var this_id;
				
				end.left = $(this).css('left');
				end.top = $(this).css('top');
				
				data_id = "#" + $(this).attr('id') + "_data";
				$(data_id).css('left',end.left);
				$(data_id).css('top',end.top);
				
				if(end.left == start.left && end.top == start.top) return;
				this_id = "#" + $(this).attr('id');
				
				$(".draggable").each(function(i){
					id = "#d" + (i+1);
					
					if(id != this_id && $(id).css('left') == end.left && $(id).css('top') == end.top) {
						$(id).css('z-index', 19);
						$(id).animate({left: start.left, top: start.top},300,"swing",function() {calculate_score(brick_start);});
						$(id+"_data").css('left',start.left);
						$(id+"_data").css('top',start.top);
					}
				});
				dragging = 0;
			}
		});
		
		$(".draggable").mouseover(function(){
			
			if(!dragging && $(this).css('z-index') < 20) {
				/* bring active layer to top */
				var zind = 0;
				$(".draggable").each(function(i){
					zind = $(this).css('z-index');
					if(zind > 18) $(this).css('z-index',zind-1);
				});
				$(this).css('z-index', 20);
			}
		});
		$(".draggable").mouseout(function(){

		});
		
		/* */
		var layer_org_values = new Array();
		
		$("a.ajax").click(function(event) {
			
			var myLink = document.location.toString();
			var anchor = "#" + $(this).attr("href").replace(".html","").replace("./","").replace("#","");
			var id = "#" + $(this).parent().attr('id') + "_data";
			var width1 = $(id).parent().parent().width()-40;
			var height1 = $(id).parent().parent().height()-80;
			var link = "ajax-" + $(this).attr("href");
			
			var load_image = "<div class='ajax-loader'><img src='./pic/ajax-loader.gif'></img><br><span class='txt1' id='msg'>"+lang.label_loading+"</span></div>";
			clicked = 1;
			$(this).attr("href",anchor);
			layer_org_values = save_state(id);

			if(anchor.replace("#","") != myLink.split('#')[1]) link = "ajax-" + $(this).attr("href").replace("#","") + ".html";
			else if(myLink.match('#')) link = "ajax-" + myLink.split('#')[1] + ".html"; 
			
			$(id).css("z-index",99);
			$(id).css("visibility","visible");
			$(id).html(""); /* clear content - TODO cache */
			$(id).animate({left: 10, top: 18, width: width1, height: height1},500,"linear",function() {
				$(".close-button").fadeIn("slow");
				$(id).html(load_image).load(link,{},function() {ajSuccess();});
				Cufon.replace(".txt1");
				layer = 1;
			});
			
			$(".ajax-loader").css("padding-top",height1-20);
			
			/* prevent link act as a link */
			//event.preventDefault();
		});
		
		var myFile = document.location.toString();
		if (myFile.match('#')) { 
		  var myAnchor = '#' + myFile.split('#')[1];
		  $('a.ajax[href="' + myAnchor.replace('#','') + '.html"]').click();
		} else {
		 // $('.dolmenu:first').click();
		}
		
		/* toolbar */
		var toolbar_lock = 0;
		var closing_timeout = 0;
		
		$('.toolbar-content').hover(
				function(){$(this).addClass('over-lang-hover');},
				function(){$(this).removeClass('over-lang-hover');}
			);	
		
		$("#toolbar").mouseenter(function(event) {
			if(closing_timeout == 1) {
				closing_timeout = 0;
				return 0;
			}
			if(!toolbar_lock) {
				toolbar_lock = 1;
				$(this).animate({top: 10, width: 500},500,"linear",function() { 
					toolbar_lock = 0;
				});
				$("#ping").addClass('ping-opened');
				$("#ping").removeClass('ping-closed');
			}
		});
		$("#toolbar").mouseleave(function(event) {
				closing_timeout = 1;
				setTimeout(function(){
					if(closing_timeout == 0) return 0;
					$("#toolbar").animate({top: 30, width: 50},500);
					$("#ping").removeClass('ping-opened');
					$("#ping").addClass('ping-closed');
					closing_timeout = 0;
				},1000);
		});
		
		/* toolbar - end */
		
		
		
		/* mood form */
		$("#settings").click(function() {
			$('#button-skip').addClass('dn');
			$('#button-cancel').removeClass('dn');
			$('#over').fadeIn("slow");
		});
		
		$(".over-input").removeClass('dn');
		
		$('.over-note').hover(
			function(){$(this).addClass('over-note-hover');},
			function(){$(this).removeClass('over-note-hover');}
		);
		$('.over-note').click(function(){ 
			$(this).next("input.input").click();
			if($(this).is('.note-gender')) {$('.note-gender').removeClass('over-note-selected');}
			if($(this).is('.note-mood')) {$('.note-mood').removeClass('over-note-selected');}
			$(this).addClass('over-note-selected');
		});
		$('.over-lang').hover(
			function(){$(this).addClass('over-lang-hover');},
			function(){$(this).removeClass('over-lang-hover');}
		);		
		$('.over-lang').click(function(){ 
			/* BUTTONS - Submit and SKIP */
			if($(this).is("#button-cancel")) {
				$('#over').fadeOut("slow");
				return;
			} else if($(this).is("#button-login-cancel")) {
				$('#over-login').fadeOut("slow");
				return;
			} else if($(this).is("#button-cancel")) {
				$('#over').fadeOut("slow");
				return;
			} else if($(this).is("#submit-score")) {
				$('#over-score').fadeOut("slow");
				return;
			} else if($(this).is("#submit-login")) {
				document.forms['login_form'].submit();
				return;
			} else if($(this).is("#button-skip")) {
				$('#over').fadeOut("slow");
				return;
			} else if($(this).is("#submit")) { 
				if(!$('#gender-female').attr('checked') && !$('#gender-male').attr('checked')) 
					$("#gender-male").click();
				if(!$('#mood-fun').attr('checked') && !$('#mood-smile').attr('checked') && !$('#mood-incognito').attr('checked')) 
					$("#mood-incognito").click();
				document.forms['mood-form'].submit();
				return;
			}
			/* BUTTONS - END*/
			
			/* LANGUAGE */
			$('.over-lang').removeClass('over-lang-selected');
			$(this).addClass('over-lang-selected');
			
			var id = $(this).attr('id');
			lang = localize(id);
			$(this).next("input.input").click();
			$('#ch-lang-label').html(lang.label_lang);
			$('#ch-genger-label').html(lang.label_gender);
			$('#ch-mood-label').html(lang.label_mood);
			$('#button-skip').html(lang.label_skip);
			Cufon.replace(".over-label, #button-skip");
			/* LANGUAGE - END */
		});
		
		/* mood form - END */
		
		
		$("#login-trigger").click(function() {
			//$("#login-form").dialog('open');
			$('#over-login').fadeIn("slow");
		});
		
		$("#login-form").dialog({
			bgiframe: true,
			autoOpen: false,
			width: 400,
			modal: true,
			resizable: false,
			position: ['center',30]
		});

		$(window).load(function() {
		setTimeout(function(){
			if(clicked == 0) mix_bricks(brick_start);
		},2000);});
		
		/* PORTFOLIO */
        $('.clients-foto').cycle({
                fx:    'fade',
                pager:  '.page-list',
                before: onBefore,
                timeout: 0,
                pagerAnchorBuilder: function(idx, slide) { return '.page-list span:eq(' + idx + ')';    }
        });

        function onBefore() {

                var id = $(this).attr('controler');
                id = "#"+id;
                var bg_active = id + "_active";
                if(!$(id).is('.activeSlide')) {
                        $('.activeSlide').removeClass('activeSlide');
                        $(id).addClass('activeSlide');
                }
        }
        /* PORTFOLIO - END */
          
	});

