// JavaScript Document

//HTML5 Fix for the holy IE
document.createElement("article");
document.createElement("footer");
document.createElement("header");
document.createElement("hgroup");
document.createElement("nav");

var addressEncoder = (function(){
	var map = new Array();
	var s = "abcdefghijklmnopqrstuvwxyz";
	for (var i = 0 ; i < s.length ; i++)
		map[s.charAt(i)] = s.charAt((i+13)%26);
	for (var i = 0 ; i < s.length ; i++)
		map[s.charAt(i).toUpperCase()] = s.charAt((i+13)%26).toUpperCase();

	return {
		code : function( a )
		{
			var s = "";
			for (var i = 0 ; i < a.length ; i++) {
				var b = a.charAt(i);
				s += (b>='A' && b<='Z' || b>='a' && b<='z' ? map[b] : b);
			}
			return s;
		}
	}
})()

$(function() {

	// Custom scrolbar must be first!!
	$('.content_right_txt').jScrollPane({verticalDragMaxHeight: 31, verticalDragMinHeight :31, hijackInternalLinks: true});

	// Home stage highlight

	$('.imghome').maphilight({
		stroke: false,
		fillOpacity: 0.2,
		fillColor: 'FFFFFF',
		fade: false,
		groupBy: 'rel'
	});

	// Catalogs highlight

	$('.imgcatalog').maphilight({
		stroke: false,
		fillOpacity: 0.2,
		fillColor: 'FFFFFF',
		fade: false,
		groupBy: 'rel'
	});

	$('.catalog_btn a').bind('mouseover', function() {
		$('area[rel=' + $(this).parents('.catalog_btn').attr('rel') + ']').trigger('mouseover');
	}).bind('mouseout', function() {
		$('area[rel=' + $(this).parents('.catalog_btn').attr('rel') + ']').trigger('mouseout');
	});

	$('#catalog_map area').bind('mouseover', function() {
		$('div[rel=' + $(this).attr('rel') + '] a').addClass('cat_hover');
	}).bind('mouseout', function() {
		$('div[rel=' + $(this).attr('rel') + '] a').removeClass('cat_hover');
	});



	// Main menu roll, selection & click

	var rolled = false;
	var rolled_elem = null;

	$('.menu_item_selected').each( function() {
		var pl = parseInt($(this).css("padding-left"));
		var x = $(this).position().left+pl;
		var y = $(this).position().top;
		var w = $(this).width();
		var h = $(this).height();

		var src = $(this).find('img').attr("src").replace('_off.gif','_on.png');
		$('<img src="' + src + '">').css({'position':'absolute', 'left' : x-33, 'top': y, 'cursor': 'pointer' }).appendTo($('.main_menu'));
	});

	$('.main_menu').click( function(e) {
		$('.menu_item').each( function() {
			var pl = parseInt($(this).css("padding-left"));
			var x = $(this).position().left+pl;
			var y = $(this).position().top;
			var w = $(this).width();
			var h = $(this).height();
			var xx = e.pageX;
			var yy = e.pageY;

			if ( ( yy + 2.06*xx - 2.06*x > 0 ) &&  ( yy + 2.06*xx - 2.06*(x+w+43) < 0 ) )  {
				location.href = $(this).find('a').attr('href');
			}
		});
	}).mousemove (function(e) {
		$('.menu_item').each( function() {
			var pl = parseInt($(this).css("padding-left"));
			var x = $(this).position().left+pl;
			var y = $(this).position().top;
			var w = $(this).width();
			var h = $(this).height();
			var xx = e.pageX;
			var yy = e.pageY;

			if ( ( yy + 2.06*xx - 2.06*x > 0 ) &&  ( yy + 2.06*xx - 2.06*(x+w+43) < 0 ) )  {
				var src = $(this).find('img').attr("src").replace('_off.gif','_on.png');
				if ( rolled != src ) {
					if (rolled_elem) rolled_elem.remove();
					rolled_elem = $('<img src="' + src + '">').css({'position':'absolute', 'left' : x-33, 'top': y, 'cursor': 'pointer' }).appendTo($('.main_menu'));
					rolled_elem.mouseout (function(e) {
						rolled_elem.remove();
						rolled = false;
					});
					rolled = src;
				}
			}
		})
	}).mouseleave ( function(e) {
		rolled_elem.remove();
		rolled = false;
	});



	// Submenu roll & selection
	$('.submenu_item_img, .submenu_item_txt')
		.mouseover(function(e) { $(this).parent('.submenu_item').addClass('submenu_item_selected')})
		.mouseout(function(e) { $(this).parent('.submenu_item').removeClass('submenu_item_selected')});

	$('.submenu_item_txt a').click (function(e) {
		$('.submenu_item').removeClass('submenu_item_selected1');
		$(this).parents('.submenu_item').addClass('submenu_item_selected1');
	});


	// Gallery thumbs

	$('.projects_other_images').css({width: ( $('.project_other_single_image_pack').width() + 14 )* $('.project_other_single_image_pack').length + 'px'});
	var corrw =  $('.projects_hide_right').width() + $('.projects_hide_left').width();
	var corrl = $('.projects_hide_left').width();
	if ( $('.projects_other_images').width() > $('.projects_other_images_pack').width() ) {
		$('.projects_other_images').css({"margin-left" : "-100px"});
	};
	$('.projects_other_images_pack').mousemove(function(e) {
		if ( $('.projects_other_images').width() > $(this).width() ) {
			var distance = e.pageX - $(this).offset().left - corrl;
			var percentage = distance / ( $(this).width() - corrw);
			var targetX = -Math.round(( $('.projects_other_images').width() - $(this).width() + corrw) * percentage) + parseInt($(this).css("padding-left"));
			$('.projects_other_images').stop().animate({"margin-left": [targetX+"px", "easeOutCirc"]}, { queue:false, duration:1000 });
		}

	});

	// Gallery

	$('.projects_gallery_images2').cycle({
		timeout:5000,
		delay: 10000,
		startingSlide: $('.projects_gallery_images2').attr('rel'),
		pager: '.image_buttons_in',
        pagerAnchorBuilder: pagerFactory,
		activePagerClass: 'image_button_selected',
		pagerEvent: 'click'
	});

	function pagerFactory(idx, slide) {
        return '<div class="image_button"><a href="#"><img src="' + slide.src.replace('upload/image','upload/thumb')  + '" width="40" height="40" alt="" /></a></div>';
    };

	$('.project_player a').toggle(function() {

		$('.projects_gallery_images2').cycle('pause');
		$(this).find('img').attr({ src: "/img/btn_play_images.gif"});

		}, function() {

		$('.projects_gallery_images2').cycle('resume', true);
		$(this).find('img').attr({ src: "/img/btn_pause_images.gif"});
	});


	// Gallery thumbs
	$('.image_buttons_in').css({width: ( 46 )* $('.projects_gallery_images2 img').length + 'px'});


	$('.image_buttons').mousemove(function(e) {
		if ( $('.image_buttons_in').width() > $(this).width() ) {
			var distance1 = e.pageX - $(this).offset().left;
			var percentage1 = distance1 / ( $(this).width());
			var targetX1 = -Math.round(( $('.image_buttons_in').width() - $(this).width()) * percentage1);
			$('.image_buttons_in').stop().animate({"margin-left": [targetX1+"px", "easeOutCirc"]}, { queue:false, duration:1000 });
		}

	});

	$( '.vcard span.email a' ).each( function( a )
	{
		var href = $(this).attr( 'href' );
		href = href.replace( '/contact/', '' );
		href = href.replace( /\+/, '@' );
		href = href.replace( /\+/, '.' );
		href = href.replace( 'bmw', 'pbz' );
		href = href.replace( 'mzd', 'ot' );
		$( this ).attr( 'href', 'mailto:'+ addressEncoder.code( href ) );
		$( this ).html( addressEncoder.code( href ) );
	} )

});

