var speed = 300;
var timer  = 0;
var mapping = null;

var selected_tab=null;

function debug(msg)
{
	$('#articles_list_items').text($('#articles_list_items').text()+msg+"<br>");
}

function autoScroll(enable)
{
	if (enable && !timer)		
		timer=setInterval("getAbstract_moveDown()",5000);
	else {
		clearInterval(timer)
		timer =null;
	}
}

function makeTabSelected(tab)
{
	$("#abstract-tabs-con-id span").removeClass("selected")
	tab.addClass("selected");
	
	if (selected_tab)
		selectTab(selected_tab);	
}

function selectTab(tabId)
{	    

		
		var $tabs =  $("#abstract-tabs-content");
		if ($tabs.queue("fx").length>0)
			return
			
		selected_tab=null;
		
		var distance = distanceToTab(tabId);

		if (distance>0)
				getAbstract_moveDown(distance)
		else
				getAbstract_moveUp(Math.abs(distance))

}

function getAbstract_moveUp(count)
{
	var $tabs =  $("#abstract-tabs-content");
	var childHeight = 0;
	if (count == undefined)
		count=1
		
	
	if (count+1>= $tabs.children().length)
		return

	if (count>=1)
	{
  		
  		for (var i =0; i < count;i++)
  		{
  			var firstChild = $tabs.children().filter(':first-child')
    		firstChild.before($tabs.children().filter(':last-child'));    	    	    		
    		childHeight += firstChild.height();
    	}
    	$tabs.scrollTop(childHeight);
    	var animParams = {scrollTop: "0px"};    	
    	$tabs.animate(animParams, speed*count,selectProperTab());    	
    }
}

function selectProperTab(elm)
{
	
	var items = $("#abstract-tabs-content").children();
	
	if (! items.length)
		return
	
	if (! mapping)
	{		
		mapping = new Array();
		for (i=0; i<items.length;i++)
		{
			element_active_id=parseInt(items.eq(i).attr("id").substring(14));
			mapping[element_active_id]=i+1;
		}
	}
	element_active = (elm == undefined ) ? items.filter(':first-child') : $(elm);
	
	makeTabSelected($('#abstract-tabs-con-id .'+ element_active.attr("class").substring(14)));	
	
	element_active_id=mapping[parseInt(element_active.attr("id").substring(14))];
	
	$(".frontpage-el-footer div.progress").css("width",Math.round(element_active_id/items.length*100)+"%");
	
}

function getAbstract_moveDown(count)
{
	var $tabs =  $("#abstract-tabs-content");
	
	if (count == undefined)
		count=1
				
	if (count+1>= $tabs.children().length)
		return
		
	if (count>=1)
	{
  		
  		var firstChild = $tabs.children().filter(':first-child')
    	var childHeight = firstChild.height();
    	var animParams = {scrollTop: count*childHeight};
    	
    	
    	$tabs.animate(animParams, speed*count,function() {
		  	for (var i =0; i < count;i++)
    			$tabs.append($tabs.children().filter(':first-child'));
    		$tabs.scrollTop(0);    		    		
    		selectProperTab();
    	});
	}
}

function getArticles_moveUp(count)
{
	var $tabs =  $("#articles_list_items");
	var childHeight = 0;
	if (count == undefined)
		count=1
		
	if (count+3>= $tabs.children().length)
		return
	
	if (count>=1)
	{
  		
/*  		for (var i =0; i < count;i++)
  		{
  			var firstChild = $tabs.children().filter(':first-child')
    		firstChild.before($tabs.children().filter(':last-child'));    	    	    		
    		childHeight += firstChild.height();
    	}*/
    	//$tabs.scrollTop(childHeight);
  		var firstChild = $tabs.children().filter(':first-child')
    	var childHeight = firstChild.height();
    	var animParams = {scrollTop: $tabs.scrollTop() - childHeight};
    	$tabs.animate(animParams, speed*count, "", function() {
			handleArticleArrows();
		});
		
	}
}

function getArticles_moveDown(count)
{
	var $tabs =  $("#articles_list_items");
	
	if (count == undefined)
		count=1
				
	if (count+3>= $tabs.children().length)
		return
		
	if (count>=1)
	{
  		
  		var firstChild = $tabs.children().filter(':first-child');
    	var childHeight = firstChild.height();
    	var animParams = {scrollTop: $tabs.scrollTop()+count*childHeight};
    	
    	
    	$tabs.animate(animParams, speed*count,function() {
		  	//for (var i =0; i < count;i++)
    			//$tabs.append($tabs.children().filter(':first-child'));
    		//$tabs.scrollTop(0);    		    		
			handleArticleArrows();
    		selectProperTab();
		});
	}
}

function handleArticleArrows() {
	var tabs =  $("#articles_list_items");
	if (tabs.scrollTop() <= 0) {
		$('.article-arrow-top').addClass('hidden');
	} else {
		$('.article-arrow-top').removeClass('hidden');
	}
	height = -168;
	$('.articleList_item').each( function () {
		height += $(this).height();
	})
	if (tabs.scrollTop() >= height ) {
		$('.article-arrow-bottom').addClass('hidden');
	} else {
		$('.article-arrow-bottom').removeClass('hidden');
	}
		
}


function distanceToTab(tabId)
{
  		var $tabs =  $("#abstract-tabs-content");
  		var scrollItems = $tabs.children()
  		var totalItems = scrollItems.length;

  		for (var i=0; i<totalItems; i++)
  		{
  			if (scrollItems.eq(i).attr("class").indexOf(tabId)>0)
  				return ((totalItems-i)<i) ? i-totalItems :  i
  		}
  		return 0
}

function do_scroll(obj)
{
    if (elm_queued || obj)
    {
        elm_animating=obj ? obj : elm_queued;
        elm_queued=null;
        $("#abstract-tabs-content").scrollTo( $(elm_animating), 250, function(){
            elm_animating=null;
            do_scroll();
        });
    }
}

$(document).ready(function()
{
	// print page button
	$("#print > img").click(function(){window.print();return false;});

	// zoomable images
	$("a.zoomable").fancybox();

	// login form submit
	$('.login-button input').click( function ()
	{
		var form_submited=$('#login_right').get(0)
		superchallenge_pass(form_submited);
		form_submited.submit();
	});

	// thickbox popups
	$("a.thickbox").each(function(i){
		if ( ! $(this).is('.bookmark') && !  $(this).is('.inline') ) // Do NOT apply to bookmark button
		{
			/*var L = parseInt(get_url_param('L'));
			if ( L > 0 ) {
				L = 'L='+L+'&';
			} else {
				L = '';
			}*/
			var href = $(this).attr('href');

			if ( href.indexOf('?') > 0 ) {
				href += "&amp;";
			} else {
				href += "?";
			}

			if ( href.indexOf('?')==-1 ) {
				href += "?";
			}

			//if ( $(this).is('.inline') ) href += "height=300&width=300";
			var pid = parseInt( $("#pid").text() );
			if ( $(this).is('.iframe') ) {
                href += "pid="+pid+"&amp;TB_iframe=true&amp;height=200&amp;width=720";
    			$(this).attr('href',href);
            }
		}
	});

	// Loginbox open/close
	$("#login-main-content-con > div").attr("style" , "top: -" + $('#login-main-content-con > div').height() + "px");
	$("#login-main-content-con").addClass('hidden');
	
	$("#login-info-box").toggle(
		function () {
			$(".button-open a img").attr('src',"fileadmin/img/page-construct/button-close-login-content.png");
			$("#login-main-content-con").removeClass('hidden');
			$("#login-main-content-con > div").stop();
			$("#login-main-content-con > div").animate({"top": "0px"}, "slow");
		},
		function () {
			$(".button-open a img").attr('src',"fileadmin/img/page-construct/button-open-login-content.png");
			$("#login-main-content-con > div").stop();
			$("#login-main-content-con > div")
			.animate({"top": -$('#login-main-content-con > div').height()}, "slow", function() {
				$("#login-main-content-con").addClass('hidden');
			});
		}
	);
	
	// Loginbox submit on enter press
	$("#pass").keypress(function(e){
		if(e.which==13) {
			var form_submited=$('#login_right').get(0)
			superchallenge_pass(form_submited);
			form_submited.submit();
		}
	});

	$( '#flags a' ).mouseover(
		function(){
			if ( $(this).attr("title") == "English") {
				$("#flag-description").css({color:'#696969'});
				$("#flag-description").text("ENGLISH");
			}
			if ( $(this).attr("title") == "German") {
				$("#flag-description").css({color:'#696969'});
				$("#flag-description").text("GERMAN");
			}
		});
	$( '#flags a' ).mouseout(
		function(){
			$("#flag-description" ).text( "." );
			$("#flag-description").css({color:'#fff'});
	});
	
/*	$( '#icons a' ).mouseover(
		function(){
			$("#icons-description").text( $(this).attr("title") );
	}).mouseout(
		function(){
			$("#icons-description" ).text( "" );
	});*/
	
	$('.hover_menu a').mouseover( function() {
		$('.hover_menu a').not($(this)).each( function() {
			$(this).addClass('inactive');
		});
	}).mouseout( function() {
		$('.hover_menu a').removeClass('inactive');
	});

	$("#btnAddToFavorites").jFav();
	$("#btnAddToFavorites-video").jFav();

	$("a.movie_click").fancybox({ 'zoomSpeedIn': 300, 'zoomSpeedOut': 300, 'overlayShow': false });

	// remove language selector if no languages
	if ( $.trim( $("#flags").html() ) == "" ) {
		$("#lang-con").remove();
	}

    // first initial rotator        

    $("#abstract").hover(
      function () {
      	autoScroll(false);
      	if ($("#abstract-tabs-content").children().length>2)
      	{      	
        	$(".abstract-arrow-top").removeClass('hidden');
        	$(".abstract-arrow-bottom").removeClass('hidden');
        }
      },
      function () {
      	autoScroll(true);
        $(".abstract-arrow-top").addClass('hidden');
        $(".abstract-arrow-bottom").addClass('hidden');
      }
    );

	selectProperTab();

    $("#abstract-tabs-con-id span").click(
      function () {
      	var $tabs =  $("#abstract-tabs-content");
      	var tabId=$(this).attr('class').substring(0,15);
      	      	
      	makeTabSelected($(this));
      	selected_tab=tabId;
      	selectTab(tabId);      	
      },
      function () {
      }
    );
    
    autoScroll(true);
    
    $("#abstract-tabs-content").children().hover (
    	function ()
    	{
    		selectProperTab(this)
    	},
    	function ()
    	{
    		selectProperTab()
    	}
    );
    	
    $(".abstract-arrow-top").click(function () { getAbstract_moveUp() });
    $(".abstract-arrow-bottom").click(function () {getAbstract_moveDown() });
	
    $(".article-arrow-top").mousedown(function () {getArticles_moveUp() });
    $(".article-arrow-bottom").mousedown(function () {getArticles_moveDown() });

});



$(function(){
	$('ul.jd_menu').jdMenu();
	// tak toto nefunguje, takze to menim priamo v javascripte
	$('ul.jd_Menu').jdMenu({disableLinks:false});
	// Add menu hiding on document click
	$(document).bind('click', function() {
		$('ul.jd_menu ul:visible').jdMenuHide();
	});

	// correct the width of dropdown menus
	$("ul.mainmenu-second-level").each(function(i){
		var ow = $(this).parent().width();
		$(this).css('width','auto');
		$(this).css('min-width',ow);
		$(this).children("li").css('width','auto');
		$(this).children("li").css('min-width',ow);
		//$(this).find("a").css('width',ow);
	});

	// correct the width of dropdown menus for - IE bug
	$("ul.mainmenu-second-level > li").each(function(i){
		var ow = $(this).parent().width();
		$(this).children("a").css('width',ow - 34);
	});

	// if menu item has a submenu, add arrow icon
	$("ul.jd_menu > li > ul > li").each(function(i){
		if( $('ul',this).length > 0){
			$(this).addClass("hasSubmenu");
		}
	});

});

function superchallenge_pass(form) {
	var pass = form.pass.value;
	if (pass) {
		var enc_pass = MD5(pass);
		var str = form.user.value+":"+enc_pass+":"+form.challenge.value;
		form.pass.value = MD5(str);
		return true;
	} else {
		return false;
	}
}

var pw_change = 0;
function enc_form(form) {
	var pass = form['FE[fe_users][password]'].value;
	var pass_again = form['FE[fe_users][password_again]'].value;
	if ( pw_change ) {
		if ( pass != pass_again || (pass.length!=0 && pass_again.length!=0 && pass.length<5 ) ) {
			return false;
		} else {
		 if ( pass.length!=0 && pass_again.length!=0 ) {
			var enc_pass = MD5(pass);
			form['FE[fe_users][password]'].value = enc_pass;
			form['FE[fe_users][password_again]'].value = enc_pass;
		  }
		}
	}
	return true;
}

function get_url_param(name)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
}

