﻿jQuery(function($) {
	var flash_intro_pause = 16000; //1000 miliseconds = 1 second
	var flash_intro_playing = true;

	$('#navigation > ul > li:last').addClass('last');
	$('.footer-top li.widget_text').addClass('darker-col');
	$('.footer-top ul.shell').append('<div class="cl" />');
	$('#navigation > ul > li > ul > li > a').wrapInner('<span />').find('> span').unwrap();
	$('#navigation a[href$="/services/"]').click(function() {
		return false;
	});

	$('#navigation > ul > li > ul').each(function() {
		var child_lis = $(this).find('> li');
		var first_li = $(child_lis[0]);
		var childwidth = parseInt(first_li.css('width')) + parseInt(first_li.css('paddingLeft')) +
						 parseInt(first_li.css('paddingRight')) + parseInt(first_li.css('marginLeft')) +
						 parseInt(first_li.css('marginRight')) + child_lis.length;
		$(this).width(childwidth*child_lis.length);
	});

	var homepage_menu_ul = $('.homepage_menu > ul');
	var homepage_menu_lis = homepage_menu_ul.find('> li');
	homepage_menu_ul.width((homepage_menu_lis.width() * homepage_menu_lis.length) + homepage_menu_lis.length);
	homepage_menu_ul.find('> li:last').addClass('last');

	var window_width = $(window).width();
	var slider = $('.slider');
	var holder = $('.slider .holder');
	var panels = $('.slider .panel');
	var panel_width = $(panels[0]).outerWidth();
	var duration = 700;
	var pause = 5000;
	var current_slide = 1;
	slide_timeout = false;
	var current_panel = null;
	var controls_holder = slider.find('.controls_holder');
	var controls = controls_holder.find('> a');

	panels.each(function() {
		try {
			if ($(this).index() != 0) {
				$(this).fadeTo(0, 0.3);
			}
			$(this).width($(this).find('img').width());
			$(this).height($(this).find('img').height());
			$(this).find('.single_slide_link').width($(this).width());
			$(this).find('.single_slide_link').height($(this).height());
			if (holder.height() < $(this).height()) {
				holder.height($(this).outerHeight(true));
				slider.height(holder.height() + 30);
			}
		} catch (e) {
			return;
		}
	});

	panels.each(function() {
		if ($(this).height() < holder.height()) {
			$(this).css('marginTop', (holder.height() - $(this).outerHeight(true)) / 2);
		}
	});

	$('.slider .flash_intro_panel').each(function() {
		var extra_space = $(window).width() - $(this).width();
		$(this).css('paddingLeft', (extra_space*0.5) - parseInt($(this).parent().css('paddingLeft'))).css('paddingRight', extra_space*0.5);
	});
	
	controls_holder.width(0);
	controls.each(function() {
		controls_holder.width(controls_holder.width() + $(this).outerWidth(true));
	});
	
	function center_slider() {
		panel_width = $(panels[0]).outerWidth();
		var window_width = $(window).width();
		$('.slider .holder').css('paddingLeft', (window_width - panel_width)*0.5);
	}

	$(window).resize(function() {
		center_slider();
	});
	center_slider();
	
	function slide_to(index) {
		clearTimeout(slide_timeout);
		slide_timeout = false;
		
		var holder_left = 0;
		if (index) {
			var i = 0;
			panels.each(function() {
				if ($(this).index() < index) {
					holder_left += $(panels[i]).outerWidth(true);
				}
				++i;
			});
			holder_left -= (($(window).width() - $(panels[index]).outerWidth(true)) / 2) - parseInt(holder.css('paddingLeft'));
		}
		holder.animate({left: '-' + holder_left + 'px'}, duration);
		$('.slider .holder .panel:eq(' + index + ')').fadeTo(duration, 1).siblings().fadeTo(duration, 0.3);
		$('.slider .controls a:eq(' + index + ')').addClass('current').siblings().removeClass('current');
		current_slide = index + 1;
		
		clearTimeout(slide_timeout);
		slide_timeout = false;
		slide_timeout = setTimeout(function() {
			slide_next();
		}, pause);
		$('.panel .description').stop(true, true).fadeOut('fast');
	}
	
	function slide_next() {
		clearTimeout(slide_timeout);
		slide_timeout = false;
		
		if (current_slide < panels.length) {
			slide_to(current_slide);
		} else {
			slide_to(0);
		}
	}
	
	function slide_prev() {
		clearTimeout(slide_timeout);
		slide_timeout = false;

		if (current_slide > 1) {
			slide_to(current_slide-2);
		} else {
			slide_to(panels.length-1);
		}
	}
	
	$('#slideNext').click(function() {
		clearTimeout(slide_timeout);
		slide_timeout = false;
		
		slide_next();
		return false;
	});
	
	$('#slidePrev').click(function() {
		clearTimeout(slide_timeout);
		slide_timeout = false;
		
		slide_prev();
		return false;
	});
	
	$('.slider .controls a').click(function() {
		slide_to($(this).attr('rel') - 1);
		return false;
	});
	
	slide_timeout = setTimeout(function() {
		$('.slider .controls a:eq(' + (current_slide - 1) + ')').click();
	}, 8000);

	
	function freeze_slider() {
		if (slide_timeout) {
			clearTimeout(slide_timeout);
			slide_timeout = false;
		}
	}

	slider.mouseover(function() {
		freeze_slider();
	}).mousemove(function() {
		freeze_slider();
	}).hover(function() {
		freeze_slider();
	}, function() {
		if (flash_intro_playing) {
			return;
		}
		slide_timeout = setTimeout(function() {
			slide_next();
		}, pause/2);
	});
	
	var desc_fade_timeout = null;
	$('.slider .info-icon').mouseover(function() {
		$('.slider .panel:eq(' + (current_slide-1) + ') .description:hidden').stop(true, true).fadeIn('fast');
	}).live('mouseout', function() {
		var th = $(this);	
		clearTimeout(desc_fade_timeout);
		desc_fade_timeout = setTimeout(function() {
			th.prev('.description').stop(true, true).fadeOut('fast');
		}, 500);
	})
	
	$('.description').mouseout(function(e) {
		if( $(e.relatedTarget).parents('.description').length || e.eventPhase != 2 ) return;
		clearTimeout(desc_fade_timeout);
		$(this).stop(true, true).fadeOut('fast');
	}).live('mouseover', function(e) {
		clearTimeout(desc_fade_timeout);
	});
	$('.slider .info-icon').click(function() {
		return false;
	});

	$('#navigation > ul > li, .homepage_menu > ul > li').hover(function() {
		$(this).find('> ul').stop(true, true).slideDown();
	}, function() {
		$(this).find('> ul').stop(true, true).slideUp();
	});
	
	$('#sidebar > ul > li > ul > li > a ').click(function(){
		if($(this).parent().find('ul.inner').length!=0){
			if($(this).parent().find('ul.inner').is(":visible")){
				return false;
			} else { 
				$('ul.inner').slideUp();
				$('#sidebar > ul > li > ul > li').removeClass('active');
				
				$(this).parent().find('ul.inner').slideToggle();
				$(this).parent().addClass('active');
			}
			return false
		}
	});
	
	$('.gallery .img').hover(function(){
		$(this).find('a img').fadeTo(200, 0.7);
	}, function(){
		$(this).find('a img').fadeTo('fast', 1);
	});
   
	$('.logos a img').hover(function(){
		$(this).fadeTo(150, 0.7);
	}, function(){
		$(this).fadeTo(150, 1);
	});
   
   $(".service").hover(function() {
		if(!($(this).find(".tooltip").is(':animated')))
    	{
	    		$(this).find(".tooltip").slideDown();
	    		$(this).css('z-index', '10000');
	    }
		}, function(e) {
			$(this).css('z-index', '100');
			$(this).find(".tooltip").slideUp();
	});
   
	var controls_holder = $('.controls-holder').width();
	$('.controls-holder').css({
		width: controls_holder+'px',
		display: 'block',
		float: 'none'
	});

	if ($('body').hasClass('single-slide')) {
		$('#back_to_portfolio').attr('href', $('#back_to_portfolio').attr('href') + '#/#' + $.address.hash());
	}

	if ( $('.controls').length ) {
		var slide_number = Math.max($.address.hash() - 1, 0);
		if (  $('body').is('.single-slide') ) {
			slide_number = 0;
		};
		slide_to(slide_number);
		if ($('#flash_intro').length) {
			freeze_slider();
			setTimeout(function() {
				if (!slide_timeout) {
					slide_next();
					flash_intro_playing = false;
				}
			}, flash_intro_pause);
		}
	}

	if ($.browser.msie && parseInt($.browser.version) < 8) {
		$('.postmetadata .comments_link').hide().show();
	}
});
