// JavaScript Document
/*
                               - MUST HAVE JQUERY LOADED BEFORE THIS SCRIPT -
							   - @author: szeredai akos -
							   - © Procab Studio 2011
*/

// pauseresume //

/*
jQuery plugin : pause resume animation
Created by Joe Weitzel
BOX Creative LLC
http://plugins.jquery.com/project/Pause-Resume-animation
*/
var diapDisabled = false;
jQuery.fn.startAnimation = function(  params, duration, easing, callback ) {
	$(this).animate( params, duration, easing, callback );
	var data = { target:this.get(0), params: params, duration: duration, easing: easing, callback: callback,
				startTime: new Date().getTime(), timePlayed: 0, timeRemaining: 0 };
	if( !jQuery.pauseableAnimations ) {
		jQuery.extend({ pauseableAnimations: new Array( data ) });
	} else {
		for( var i in jQuery.pauseableAnimations ) {
			if( jQuery.pauseableAnimations[i].target == this.get(0) ) {
				jQuery.pauseableAnimations[i] = data;
			} else {
				jQuery.pauseableAnimations.push( data );
			};
		};
	};
};
jQuery.fn.pauseAnimation = function() {
	if( jQuery.pauseableAnimations ) {
		for(var i in jQuery.pauseableAnimations ) {
			if( jQuery.pauseableAnimations[i].target == this.get(0) ) {
				$(this).stop();
				var now = new Date().getTime();
				var data = jQuery.pauseableAnimations[i];
				data.timePlayed += ( now - data.startTime );
				data.timeRemaining = data.duration - data.timePlayed;
				if( data.timePlayed > data.duration ) {
					var newArray = new Array();
					for( var p in jQuery.pauseableAnimations ) {
						if( jQuery.pauseableAnimations[p] != data ) newArray.push( jQuery.pauseableAnimations[p] );
					};
					jQuery.pauseableAnimations = newArray.length > 0 ? newArray : null;
					delete newArray;
					return this;
				};
				break;
			};
		};
	};
	return this;
};
jQuery.fn.resumeAnimation = function() {
	if( jQuery.pauseableAnimations ) {
		for(var i in jQuery.pauseableAnimations ) {
			var data = jQuery.pauseableAnimations[i];
			if( data.target == this.get(0) ) {
				this.animate( data.params, data.timeRemaining, data.easing, data.callback );
				data.startTime = new Date().getTime();
				return this;
			};
		};
	};
};


// ie crap //

function getInternetExplorerVersion()
{
  var rv = 24; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

// iPad //
var isiPad = navigator.userAgent.match(/iPad/i) != null;
// iPad end //



function bringFwChild(child) // v1.2
{
	var container = $(child).parent();
	var cCount = container.children().size();
	var j=0;
	for (j=0; j < cCount; j++)
	{
		container.children().eq(j).css('z-index', String(j));
	}
	$(child).css('z-index', String(cCount+1));
}


// reloads the landing page ini functions

$(document).ready(
function () {
    activateDiaFilm();
    $('body').css('min-height', ($(window).height() + 1) + 'px');
    $('a').focusin(function () { $(this).focus() });
	if (getInternetExplorerVersion() < 8)
	{
		$('a').click(function () { $(this).blur() });
	}
});




// main menu //
$('.menubar').ready(
	function () {
		
	    $('.mi0').mousedown(function (event) { $('<span class="abs miOver0">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi0').attr('href'); }) });
	    $('.mi1').mousedown(function (event) { 
			if (getInternetExplorerVersion() < 9)
			{$('#subm0').show()}
			else
			{ $('#subm0').fadeIn(200) }
			
			$('<span class="abs miOver1">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); } );
		});
	    $('.mi2').mousedown(function (event) { $('<span class="abs miOver2">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi2').attr('href'); }) });
	    $('.mi3').mousedown(function (event) { $('<span class="abs miOver3">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi3').attr('href'); }) });
	    $('.mi4').mousedown(function (event) { $('<span class="abs miOver4">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi4').attr('href'); }) });
	    $('.mi5').mousedown(function (event) { $('<span class="abs miOver5">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi5').attr('href'); }) });
	    $('.mi6').mousedown(function (event) { $('<span class="abs miOver6">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi6').attr('href'); }) });
	    $('.mi7').mousedown(function (event) { $('<span class="abs miOver7">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi7').attr('href'); }) });
	    $('.mi8').mousedown(function (event) { $('<span class="abs miOver8">&nbsp;</span>').appendTo($(event.target)).fadeOut(300, function () { $(this).remove(); document.location = $('.mi8').attr('href'); }) });

	    setupSubMenu();
	}
);
// sub menus //

function setupSubMenu()
{
	$('#subm0').hide();
	
	// close trigers //
	if (getInternetExplorerVersion() < 9)
	{
		$('.menubar').mouseleave( function () { $('#subm0').hide(0) } );
		$('.mi0').mouseenter( function () { $('#subm0').hide(0) } );
		$('.mi2').mouseenter( function () { $('#subm0').hide(0) } );
	}
	else
	{
		$('.menubar').mouseleave( function () { $('#subm0').fadeOut(500) } );
		$('.mi0').mouseenter( function () { $('#subm0').fadeOut(500) } );
		$('.mi2').mouseenter( function () { $('#subm0').fadeOut(500) } );
	}
}



// =========================================================================================================== //
// page initialisation and unload ============================================================================ //
// =========================================================================================================== //

// ======= homepage ======= //

var homeImgRollTimeout;
var homeCurrentImg = 0;

function LoadHomepage ()
{
	if ($('#diaporama').height() < 119)
	{
		$('#diaporama').animate({height:'119px'}, 750);
		$('.homeMenu').animate({height:'225px'}, 750);
	}
	$('.pageBottomFade').css('display', 'none');
	$('.homeBg').css('height', String($(window).height() - 222) + 'px');
	
	setHomeImagesRoll();
}
function UnloadHomepage ()
{
	$('#diaporama').animate({height:'0px'}, 750);
	$('.homeMenu').animate({height:'110px'}, 750);
	$('.pageBottomFade').css('display', 'block');
	
	clearTimeout(homeImgRollTimeout);
}


function setHomeImagesRoll()
{
	if(isiPad) { return; }
	
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
		
	var topPoint = ($(window).height() - 222 - 875) / 2;

	for (i=0; i<$('#homeRoll').children('img').size(); i++)
	{
		$('#homeRoll').children('img').eq(i).css('left', enerPoint + 'px');
		$('#homeRoll').children('img').eq(i).css('top', '0px');
	}
	
	$('#homeRoll').children('img').eq(homeCurrentImg).css('left', targetpoint + 'px');
	
	homeImgRollTimeout = setTimeout('homeImgRoll()', 7000);
}
function homeImgRoll ()
{
	if(isiPad) { return; }
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
	
	var exitPoint = -1920;
	
	var prevIm;
	var nextIm;
	
	homeCurrentImg++;
	if (homeCurrentImg == $('#homeRoll').children('img').size())
	{ homeCurrentImg = 0 }
	
	prevIm = homeCurrentImg - 1;
	if (prevIm < 0)
	{ prevIm = $('#homeRoll').children('img').size() - 1 }
	
	nextIm = homeCurrentImg + 1;
	if (nextIm == $('#homeRoll').children('img').size())
	{ nextIm = 0 }
	
	$('#homeRoll').children('img').eq(prevIm).animate({left:exitPoint + 'px'}, 1000);
	$('#homeRoll').children('img').eq(homeCurrentImg).animate({left:targetpoint + 'px'}, 1000);
	$('#homeRoll').children('img').eq(nextIm).css('left', enerPoint + 'px');
	
	
	
	homeImgRollTimeout = setTimeout('homeImgRoll()', 7000);
}

function homeRollLeft()
{
	if(isiPad)
	{
		var rndImg = Math.round(  ($('#homeRoll').children('img').size()-1) * Math.random() );
		for (i=0; i<$('#homeRoll').children('img').size(); i++)
		{
			if (i != rndImg)
			{
				$('#homeRoll').children('img').eq(i).remove();
			}
		}
		
		return;
	}
	clearTimeout(homeImgRollTimeout);
	
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
	
	var exitPoint = -1920;
	
	var prevIm;
	var nextIm;
	
	homeCurrentImg--;
	if (homeCurrentImg < 0)
	{ homeCurrentImg = $('#homeRoll').children('img').size() - 1 }
	
	prevIm = homeCurrentImg - 1;
	if (prevIm < 0)
	{ prevIm = $('#homeRoll').children('img').size() - 1 }
	
	nextIm = homeCurrentImg + 1;
	if (nextIm == $('#homeRoll').children('img').size())
	{ nextIm = 0 }
	
	$('#homeRoll').children('img').eq(prevIm).css("left", exitPoint + 'px');
	$('#homeRoll').children('img').eq(homeCurrentImg).css("left", exitPoint + 'px');
	$('#homeRoll').children('img').eq(homeCurrentImg).animate({left:targetpoint + 'px'}, 1000);
	$('#homeRoll').children('img').eq(nextIm).animate({left:enerPoint + 'px'}, 1000);
	
	homeImgRollTimeout = setTimeout('homeImgRoll()', 10000);
}
function homeRollRight()
{
	if(isiPad) { return; }
	clearTimeout(homeImgRollTimeout);
	
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
	
	var exitPoint = -1920;
	var prevIm;
	var nextIm;
	
	homeCurrentImg++;
	if (homeCurrentImg == $('#homeRoll').children('img').size())
	{ homeCurrentImg = 0 }
	
	prevIm = homeCurrentImg - 1;
	if (prevIm < 0)
	{ prevIm = $('#homeRoll').children('img').size() - 1 }
	
	nextIm = homeCurrentImg + 1;
	if (nextIm == $('#homeRoll').children('img').size())
	{ nextIm = 0 }
	
	$('#homeRoll').children('img').eq(prevIm).animate({left:exitPoint + 'px'}, 1000);
	$('#homeRoll').children('img').eq(homeCurrentImg).animate({left:targetpoint + 'px'}, 1000);
	$('#homeRoll').children('img').eq(nextIm).css('left', enerPoint + 'px');
	
	homeImgRollTimeout = setTimeout('homeImgRoll()', 10000);
}


// ======= roll500 mobile, webdesign, social, ecommerce ======= //
var roll500Timeout;
var roll500Current = 0;

$(document).ready( function () { if ($('#roll500').size() > 0) { loadRoll500() } } )
function loadRoll500()
{
	roll500Current = 0;
	
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
	
	for (i=0; i<$('#roll500').children('img').size(); i++)
	{
		$('#roll500').children('img').eq(i).css('left', enerPoint + 'px');
	}
	$('#roll500').children('img').eq(roll500Current).css('left', targetpoint + 'px');
	roll500Timeout = setTimeout('roll500()', 7000);
}

function unloadRoll500()
{
	clearTimeout(roll500Timeout);
}

function roll500()
{
	
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
	
	var exitPoint = -1920;
	
	var prevIm;
	var nextIm;
	
	roll500Current++;
	if (roll500Current == $('#roll500').children('img').size())
	{ roll500Current = 0 }
	
	prevIm = roll500Current - 1;
	if (prevIm < 0)
	{ prevIm = $('#roll500').children('img').size() - 1 }
	
	nextIm = roll500Current + 1;
	if (nextIm == $('#roll500').children('img').size())
	{ nextIm = 0 }
	
	$('#roll500').children('img').eq(prevIm).animate({left:exitPoint + 'px'}, 1000);
	$('#roll500').children('img').eq(roll500Current).animate({left:targetpoint + 'px'}, 1000);
	$('#roll500').children('img').eq(nextIm).css('left', enerPoint + 'px');
	
	roll500Timeout = setTimeout('roll500()', 7000);
}

function roll500Left()
{
	clearTimeout(roll500Timeout);
	
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
	
	
	var exitPoint = -1920;
	var prevIm;
	var nextIm;
	
	roll500Current--;
	if (roll500Current < 0)
	{ roll500Current = $('#roll500').children('img').size() - 1 }
	
	prevIm = roll500Current - 1;
	if (prevIm < 0)
	{ prevIm = $('#roll500').children('img').size() - 1 }
	
	nextIm = roll500Current + 1;
	if (nextIm == $('#roll500').children('img').size())
	{ nextIm = 0 }
	
	$('#roll500').children('img').eq(prevIm).css("left", exitPoint + 'px');
	$('#roll500').children('img').eq(roll500Current).css("left", exitPoint + 'px');
	$('#roll500').children('img').eq(roll500Current).animate({left:targetpoint + 'px'}, 1000);
	$('#roll500').children('img').eq(nextIm).animate({left:enerPoint + 'px'}, 1000);
	
	roll500Timeout = setTimeout('roll500()', 10000);
}

function roll500Right()
{
	clearTimeout(roll500Timeout);
	var enerPoint = $(window).width();
	var targetpoint = ($(window).width() - 1920) / 2;
	
	
	var exitPoint = -1920;
	var prevIm;
	var nextIm;
	
	roll500Current++;
	if (roll500Current == $('#roll500').children('img').size())
	{ roll500Current = 0 }
	
	prevIm = roll500Current - 1;
	if (prevIm < 0)
	{ prevIm = $('#roll500').children('img').size() - 1 }
	
	nextIm = roll500Current + 1;
	if (nextIm == $('#roll500').children('img').size())
	{ nextIm = 0 }
	
	$('#roll500').children('img').eq(prevIm).animate({left:exitPoint + 'px'}, 1000);
	$('#roll500').children('img').eq(roll500Current).animate({left:targetpoint + 'px'}, 1000);
	$('#roll500').children('img').eq(nextIm).css('left', enerPoint + 'px');
	
	roll500Timeout = setTimeout('roll500()', 10000);
}


// ======= webdesign ======= //

function loadWebdesign ()
{
	loadRoll500();
	currentUnloadFunc = 'unLoadWebdesign();';
}
function unLoadWebdesign ()
{
	unloadRoll500();
}


// ======= mobile ======= //

function loadMobile ()
{
	loadRoll500();
	currentUnloadFunc = 'unloadMobile();';
}
function unloadMobile ()
{
	unloadRoll500();
}


// ======= social ======= //

function loadSocial ()
{
	loadRoll500();
	currentUnloadFunc = 'unloadSocial();';
}
function unloadSocial ()
{
	unloadRoll500();
}

// ======= ecommerce ======= //

function loadEcommerce ()
{
	loadRoll500();
	currentUnloadFunc = 'unloadSocial();';
}
function unloadEcommerce ()
{
	unloadRoll500();
}


// =========================================================================================================== //
//  homepage diafilm ========================================================================================= //
// =========================================================================================================== //


function activateDiaFilm()
{
	
	
	// set the width
	var diaW = $('#diapT1').children().size() * 130;
	
	$('#diapT1').css('width', diaW + 'px');
	$('#diapT2').css('width', diaW + 'px');
	
	$('#diapT1').css('left', '0px');
	$('#diapT2').css('left', diaW + 'px');
	
	if (diapDisabled)
	{
		$('#diapT1').css('width', '1080px');
		$('#diapT2').css('display', 'none');
		return;
	}
	
	$('#diapT1').startAnimation({left:'-' + diaW + 'px'}, 2000 * $('#diapT1').children().size(), 'linear', function () {deActivateDiaFilm(); activateDiaFilm(); } );
	$('#diapT2').startAnimation({left:'0px'}, 2000 * $('#diapT1').children().size(), 'linear');
	
	$('#diapT1').pauseAnimation(); $('#diapT2').pauseAnimation();
	$('#diaporama').mouseover(function () { $('#diapT1').resumeAnimation(); $('#diapT2').resumeAnimation() });
	$('#diaporama').mouseleave(function () { $('#diapT1').pauseAnimation(); $('#diapT2').pauseAnimation() });
}
function deActivateDiaFilm()
{
	$('#diapT1').dequeue();
	$('#diapT2').dequeue();
	$('#diapT1').clearQueue();
	$('#diapT2').clearQueue();
}


// =========================================================================================================== //
//  portfolio ================================================================================================ //
// =========================================================================================================== //


function SetupPortfolio (domE) {

    var cont = $(domE);
	/*if (cont.attr('dat'))
	{ return; }

	cont.attr('dat', 'set');*/
	
	cont.find('.portBox').mouseenter(function (event) { $(this).children('.portShort').fadeIn(100) } );
	cont.find('.portBox').mouseleave(function (event) { $(this).children('.portShort').fadeOut(300) } );
	//cont.find('.portBox').mouseup( function (event) { $(this).children('.portShort').fadeOut(0); } );
}


// =========================================================================================================== //
//  mobile banner animation ================================================================================== //
// =========================================================================================================== //

$(document).ready( function () { if ($('#mobileBanner').size() > 0) { activateMob() } } )

var bannerObj = {};
var mobImages = [];
var currentMobImgage = 0;
var mobBannerTimeout;

function activateMob()
{
	bannerObj = $('#mobileBanner');
	
	bannerObj.css('overflow', 'visible');
	$('.content').width($(window).width());
	$('.content').css('overflow', 'hidden');
	
	for (i=0; i< bannerObj.children('img').size(); i++)
	{
		mobImages.push(bannerObj.children('img').eq(i));
		if (i!=0)
		{
			// hide //
			if (getInternetExplorerVersion() < 9)
			{ mobImages[i].hide() }
			else { mobImages[i].fadeTo(0, 0) }
		}
		mobImages[i].css('z-index', String(i));
		mobImages[i].css('left', String(($(window).width() - 1920) / 2) + 'px');
	}
	
	bannerObj.children('.leftRollB').attr('onclick', "");
	bannerObj.children('.rightRollB').attr('onclick', "");
	
	bannerObj.children('.leftRollB').click(mobLeft);
	bannerObj.children('.rightRollB').click(mobRight);
	
	bannerObj.children('.leftRollB').css('z-index', String(i));
	bannerObj.children('.rightRollB').css('z-index', String(i + 1));
	
	mobBannerTimeout = setTimeout('mobRight()', 6000);
	bringFwChild('.homeMenu');
}

function mobLeft()
{
	// hide //
	if (getInternetExplorerVersion() < 9)
	{ mobImages[currentMobImgage].hide() }
	else { mobImages[currentMobImgage].fadeTo(1000, 0) }
	
	currentMobImgage--;
	if (currentMobImgage < 0) { currentMobImgage = mobImages.length - 1 }
	
	// show //
	if (getInternetExplorerVersion() < 9)
	{ mobImages[currentMobImgage].show() }
	else { mobImages[currentMobImgage].fadeTo(1000, 1) }
	
	clearTimeout(mobBannerTimeout);
	mobBannerTimeout = setTimeout('mobRight()', 6000);
}

function mobRight()
{
	// hide //
	if (getInternetExplorerVersion() < 9)
	{ mobImages[currentMobImgage].hide() }
	else { mobImages[currentMobImgage].fadeTo(1000, 0) }
	
	currentMobImgage++;
	if (currentMobImgage == mobImages.length) { currentMobImgage = 0 }
	
	// show //
	if (getInternetExplorerVersion() < 9)
	{ mobImages[currentMobImgage].show() }
	else { mobImages[currentMobImgage].fadeTo(1000, 1) }
	
	clearTimeout(mobBannerTimeout);
	mobBannerTimeout = setTimeout('mobRight()', 6000);
}

// =========================================================================================================== //
//  footer language selector ================================================================================= //
// =========================================================================================================== //

function initFooterLangSlk()
{
	$('#lngsc').mouseenter( function () {$('#lngss').show()} );
	$('#lngsc').children('img').mouseenter( function () {$('#lngss').show()} );
	$('#lngss').mouseleave( function () {$('#lngss').hide()} );
}


// =========================================================================================================== //
//  MOBILE BROWSER OPTIMISATIONS - homepage ================================================================== //
// =========================================================================================================== //

function optimiseMobileHome()
{
	if (isiPad)
	{
		$('body').css('width', '1240px');
		$('body').css('height', '930px');
		$('body').css('overflow', 'hidden');
		
		$('.homeBg').css('height', String(930 - 225) + 'px');
		$('.homeBg').css('overflow', 'hidden');
		$('.homeMenu').css('top', String(930-225)+'px');
	}
}

// =========================================================================================================== //
//  twitter feed                      ================================================================================= //
// =========================================================================================================== //

function twitterCallback(twitters) {
    var statusHTML = [];
    var upperBound = twitters.length - 1;
    for (var i = 0; i <= upperBound; i++) {
        var username = twitters[i].user.screen_name;
        var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function (url) {
            return '<a href="' + url + '" target="_blank">' + url + '</a>';
        }).replace(/\B@([_a-z0-9]+)/ig, function (reply) {
            return reply.charAt(0) + '<a href="http://twitter.com/' + reply.substring(1) + '"   target="_blank">' + reply.substring(1) + '</a>';
        });
        if (i == upperBound) {
            statusHTML.push('<div class="rel procabTwittBox" style="padding-bottom:0px;">' + status + '</div>');
        }
        else {
            statusHTML.push('<div class="rel procabTwittBox">' + status + '</div>');
        }
    }
    $('#twitter_update_list').html(statusHTML.join(''));
}

var d = new Date();
$(function () {
    $.ajax({
        url: 'http://twitter.com/statuses/user_timeline/14778542.json?callback=twitterCallback&count=3' + '&time=' + d.getTime(),
        cache: false,
        type: 'GET',
        dataType: 'jsonp',
        timeout: 3000
    });
});
