var unblur = function()
{
	this.blur();	
};

var fixOutlineProperty = function()
{
	var links = document.getElementsByTagName("a");
	
	for(var i = 0; i < links.length; i++)
	{
		links.item(i).onfocus = unblur;	
	}
};

var hoverTeaser = function(teaser) 
{
	var $teaser = $(teaser);
	var $teaser_text = $teaser.find(".text");
	if(!$teaser_text.find(".animate-click").length)
	{
		$teaser_text.css({"bottom" : "-23px"}).append('<span class="animate-click type">' + application.translations[request.lang].main.click_here + '</span>');
		($teaser_text.parent()).css("overflow", "hidden");
	}
	var css_bottom = $teaser.find(".text").css("bottom");
	var bottom_init_value = 0
	
	if($.browser.msie && ($.browser.version).indexOf("6.0") > -1)
		bottom_init_value = -1;
		
	$teaser.hover(function() { $teaser_text.stop().animate({bottom : bottom_init_value}, 250); }, function() { $teaser_text.stop().animate({bottom : css_bottom}, 250); });
};

var initMenu = function()
{
	if(jQuery.browser.msie)
	{
		var $nodes = $("#navigation li");
		for(var i = 0; i < $nodes.length; i++)
		{
			if($($nodes[i]).hasClass("has-children"))
			{
				$($nodes[i]).hover(
					function()
					{
						$(this).addClass("hover");
						if($(this).hasClass("nav_active"))
							$(this).addClass("has-children-hover");
					}
					,
					function()
					{
						$(this).removeClass("hover").removeClass("has-children-hover");
					}
				);
			}
	
		}
	}

    var i = 0;
	var image = new Image();

	images = new Array();
	images[0] = "images/menu_active_left.png";
	images[1] = "images/menu_active_right.png";
	images[2] = "images/arrow_down_white.gif";
	images[3] = "images/navigation_li_right.png";
	images[4] = "images/navigation_li_left.png";
	images[5] = "images/navigation_bg.png";
	images[6] = "images/nav_bg_ul.jpg";
	images[6] = "images/navigation_footer_bg.png";
	images[7] = "images/img.pack.gif";
	
	for(i = 0; i <= images.length; i++) 
	{
		image.src = images[i];
	}
};

var HeadBarCaller = "";

var initHeadBarLayer = function()
{		
	if($("#head-bar-login") != null)
	{	
		$("#head-bar-layer .status-default").show();
	
		$("#head-login-form").submit(loginUser);
		$("#head-login-password").bind("keyup", function(event) {
			if((window.event && event.keyCode == 13) | (event.which && event.which == 13))
			{
				$("#head-login-form .btn-grey-head").click();
			};
		});
		$("#head-bar-layer input[id]").bind("focus", function() { 
			if(!$(this).val().length && !$(this).hasClass($(this).attr("id") + "-over"))
				$(this).addClass($(this).attr("id") + "-over");
		}).bind("blur", function() { 
			if(!$(this).val().length && $(this).hasClass($(this).attr("id") + "-over"))
				$(this).removeClass($(this).attr("id") + "-over");
		});
		
		$("#head-bar-layer input[id]").each(function() {
			if($(this).val().length && !$(this).hasClass($(this).attr("id") + "-over"))
				$(this).addClass($(this).attr("id") + "-over");										 
		});
		
		$("#head-lost-password-form").submit(requestPassword);
		$("#head-bar-login #head-login, #head-lost-password").click(slideHeadBarSelector);
		$(".slide-head-bar").click( function() { $("#head-bar-login #head-login").click(); return false; } );
	}
};

var slideHeadBarSelector = function()
{	
	var caller_changed = true;
	var toslide = -1;
	if(HeadBarCaller == this.id)
	{
		caller_changed = false;
	}
	
	HeadBarCaller = this.id;
	if(caller_changed)
	{
		$("#head-bar-layer .login-status").text("").hide();
		$("#head-bar-layer .status-default").show();
		if(this.id == "head-login" || $(this).hasClass("slide-head-bar"))
		{	
			$("#head-lost-password-layer").hide();		
			$("#head-login-layer").animate({ opacity: "show" }, "fast");
		}
		else
		{
			$("#head-login-layer").hide();
			$("#head-lost-password-layer").animate({ opacity: "show" }, "fast");	
		}
		toslide = $("#head-bar-layer").outerHeight(true);
		return slideHeadBar({slidepoint : toslide});
	}
	else
	{
		$("#head-bar-layer .login-status").text("").hide();
		$("#head-bar-layer .status-default").show();
		return slideHeadBar({slidepoint : "auto"});
	}
};

var HeadBarHeight = 0;

var slideHeadBar = function(settings)
{
	var headbar = $("#head-bar");
	var headbarlayer = $("#head-bar-layer");
	var headbarlayer_height = headbarlayer.outerHeight(true);
	var headbar_bg_height = 133;
	var toslide = -1;
	
	//init
	if(HeadBarHeight == 0)
	{
		HeadBarHeight = headbar.outerHeight(true);
	}	

	//settings
	if(settings == undefined)
	{
		settings = new Object();
	}
	else
	{
		if(settings.slidepoint != "undefined")
			toslide = settings.slidepoint != "auto" ? settings.slidepoint + HeadBarHeight : false;	
	}
	
	headbarlayer.css("display", "block").css("display", "block");

	var height_to_slide = headbarlayer_height + HeadBarHeight;

	if(headbar.attr("class").indexOf("slided") > -1)
	{
		height_to_slide = HeadBarHeight;
		if(!toslide)
		{	
			headbarlayer.animate({ opacity: "hide" }, "fast");
			$("#head-bar-layer div .status-default").fadeOut("normal");
		}
	}
	
	if(toslide)
	{
		height_to_slide = toslide;		
		headbarlayer.animate({ opacity: "show" }, "fast");
		$("#head-bar-layer div .status-default").fadeIn("normal");
	}

	if(height_to_slide != HeadBarHeight)
	{
		if(toslide > headbar.outerHeight(true) | !toslide)
			headbar.css("background-position", "0 -" + (headbar_bg_height - height_to_slide) + "px");
		headbar.addClass("slided");
	}
	else
		headbar.removeClass("slided");
		
	if(!$.browser.msie | ($.browser.msie & $.browser.version.indexOf("6.0") == -1)) {
		$("#search").animate({top : height_to_slide});
		$("#wrapper").animate({paddingTop : height_to_slide});
	}
	headbar.css("cursor", "default").animate({height : height_to_slide}, "normal", function() { 
		headbar.css("background-position", "0 -" + (headbar_bg_height - height_to_slide) + "px");
		if(settings.callback != undefined) 
			settings.callback(); 
	});
	
	return false;
};


var fixPNGs = function()
{
	$(".jqtransformdone, .box, #navigation, #feedback").pngFix({selectorOnly : false});
	$(".teaser_universal, .last_portfolio").pngFix({sizingMethod : "scale", selectorOnly : false});
	$("#fancy_overlay").pngFix({sizingMethod : "scale"});
	$("#footer").pngFix();
};

var SearchFieldInitialized = false;

var initSearchField = function()
{
	if($("#search").length)
	{
		var search_field = $("#search");
		var classchange = false;

		var desktop_width = window.screen.width;
		
		var classname = ""; 
		
		if($(window).width() <= (1008 + 199 + 55)) // Site width + Search width + (Margins + Scroller)
		{
			classname = "search-adjusted";
			if(!search_field.hasClass("search-adjusted"))
			{
				classchange = true;	
			}
		}
		else
		{
			classname == "";
			if(search_field.hasClass("search-adjusted"))
			{
				classchange = true;	
			}
		}
			
		if(search_field.attr("class") != classname)
		{	
			search_field.removeAttr("style");
			if(SearchFieldInitialized)
				search_field.hide();		
		}
			 
		if(classname == "") 
		{
			search_field.removeAttr("class");
			if(classchange)
				search_field.animate({ opacity: "show" }, "slow");	
			else
				search_field.animate({ opacity: "show" }, 0);		
		}
		else
		{
			search_field.css("margin", "-10px 0 0 10px").css("padding", "10px 10px 0 0"); //IE6 Bugfix?
			$("#search > span").css("background", "#FFF");
			search_field.attr("class", classname).animate({ opacity: "show" }, "slow");
		}
		SearchFieldInitialized = true;
	}
	
	searchOnScroll();
};

var searchOnScroll = function() {
	var search_field = $("#search");
	
	if(search_field.length && !search_field.hasClass("search-adjusted"))
	{
		var value = 0;
		if(document.documentElement.scrollTop != "undefined" && document.documentElement.scrollTop != 0)
			value = document.documentElement.scrollTop;
		else
		{
			if(document.body.scrollTop != "undefined" && document.body.scrollTop != 0)
				value = document.body.scrollTop;
		}
		if($.browser.msie & $.browser.version.indexOf("6.0") > -1)
		{	
			if($("#head-bar").length)
			{
				$("#search").css("top", Math.max(0, value - $("#head-bar").outerHeight(true)) + "px");
			}
			else if(!$("#head-bar").length)
			{
				$("#search").css("top", value + "px");	
			}
		}
		else
		{ 
			$("#search").addClass("search-fixed").css("top", $("#head-bar").outerHeight(true) + "px");
			/*if(value > $("#head-bar").outerHeight(true))
			{
				$("#search").addClass("search-fixed");
			}
			else
			{
				$("#search").removeClass("search-fixed");
			}*/
		}
	}
};

var styleForms = function()
{
	$("#head-login-form").jqTransform({checkbox : true});
	$("#head-quicklist-form").jqTransform();
	$("#search-field-wrapper").jqTransform();
	$("#wrapper form").jqTransform();
	$("#feedback form").jqTransform();
	$(".swfupload_filename").css("display", "block");
};

$(window).load(function() { $("#head-bar-fastaccess form").jqTransform(); });

var initFancyBox = function()
{
	$("a.overlay").fancybox({
		'overlayShow' : true,
		'overlayOpacity' : 0,
		'zoomSpeedIn' : 250,
		'zoomSpeedOut' : 200
	});
}

var feedbackOnScroll = function() 
{
	var value = 0;
	var $feedback = $("#feedback");
	if(document.documentElement.scrollTop != "undefined" && document.documentElement.scrollTop != 0)
		value = document.documentElement.scrollTop;
	else if(document.body != null)
	{
		if(document.body.scrollTop != "undefined" && document.body.scrollTop != 0)
			value = document.body.scrollTop;
	}

	if($.browser.msie && $.browser.version.indexOf("6.0") > -1)
		$feedback.css({top : $("#head-bar").outerHeight() + 250, marginTop : value});
	else
		$feedback.css({top : $("#head-bar").outerHeight() + 250, marginTop : 0});
	
	if($(window).height() > 600)
	{
		if($.browser.msie)
		{	
			$feedback.css({top : value, marginTop : 250});	
		}
		else
		{
			$feedback.addClass("feedback-fixed");	
		}
	}
	else
	{
		if($.browser.msie && $.browser.version.indexOf("6.0") > -1)
			$feedback.css({top : $("#head-bar").outerHeight() + 170, marginTop : 0});
		else
			$feedback.css({top : $("#head-bar").outerHeight() + 170, marginTop : 0});
		$feedback.removeClass("feedback-fixed");
	}
}

var initFeedback = function()
{
	$feedback = $("#feedback");
	$feedback_content = $("#feedback-content");
	
	$feedback.show();
	$("#feedback-clip").click(toggleFeedback);
	
	if($.browser.msie && $.browser.version.indexOf("6.0") > -1)
	{
		$("#feedback-clip").mouseover(function() {
			$(this).get(0).runtimeStyle.filter = "none";
			$(this).css("background", "url(images/btn_feedback_white.gif) no-repeat");
		}).mouseout(function() {
			if(!$(this).parent().hasClass("feedback-toggled"))
			{
				$(this).css("background", "url(images/btn_feedback.png) no-repeat");
				$(this).pngFix({sizingMethod : "crop"});
			}
		});
	}
	$feedback_content.show();

/*	if($.browser.msie && $.browser.version.indexOf("6.0") > -1)
		$feedback.css({top : "50%", marginTop : ($feedback_content.outerHeight() * -1)});
	else
		$feedback.css({top : "50%", marginTop : ($feedback_content.outerHeight() / 2 * -1)});*/

	feedbackOnScroll();
}

var initFB = function()
{
	FB.init("876985e593c392050a6bc9c76b3976c5", "custom/modules/fb/xd_receiver.htm"); 	
}

var onFBLogin = function()
{
	$('#head-fb-login').hide();
	$('#fb_login_loader').show();
	
	FB.Facebook.get_sessionWaitable().waitUntilReady(function(sess){  
		loginFBUser(sess.uid, sess.session_key);	
	});
}

var onFBConnect = function()
{
	FB.Facebook.get_sessionWaitable().waitUntilReady(function(sess){  
		connectFBUser(sess.uid, sess.session_key);	
	});
}

var onFBRegister= function()
{
	$('#fb_register').hide();
	$('#fb_register_loader').show();
	
	FB.Facebook.get_sessionWaitable().waitUntilReady(function(sess){  
		loginFBUser(sess.uid, sess.session_key, true);	
	});
}

var initPageSettings = function(force)
{
	if(force == undefined || force.initSearchField != undefined)
		initSearchField();
		
	if(force == undefined || force.initHeadBarLayer != undefined)
		initHeadBarLayer();
	
	if(force == undefined || force.initMenu != undefined)
		initMenu();

	if(force == undefined || force.initFeedback != undefined)
		initFeedback();
		
	if(force == undefined || force.styleForms != undefined)
		styleForms();
		
	if(force == undefined || force.fixOutlineProperty != undefined)
		fixOutlineProperty();
		
	if(force == undefined || force.fixPNGs != undefined)
		fixPNGs();
	
	if(force == undefined || force.initFancyBox != undefined)
		initFancyBox();
		
	if(force == undefined || force.initToolTip != undefined)
	{
		/// Blog 
		$(".buttons a[title], .action-link[title]").tooltip({
							   tip: '#blog_tooltip'
							   ,position: 'center right'
							   ,offset: [-197, -130]
							   ,lazy: true
							   ,delay:0
		});			
	}
};

var initPageSettingsOnAJAXCall = function(force)
{
	ajax_force = force;
	if(ajax_force == null)
	{
		ajax_force = new Object();		
	}
	
	ajax_force.fixOutlineProperty = true;
	ajax_force.styleForms = true;
	ajax_force.fixPNGs = true;
	ajax_force.initToolTip = true;
	ajax_force.initFancyBox = true;
	
	initPageSettings(ajax_force);
};

var submitForm = function(form)
{	
	$(form).find('.form_validation_tooltip').hide();
	$(form).find(".submit-button").animate({opacity : "hide"}, "fast", function() {
		$(form).find('.form-ajax-loader').css("float", "right").show(); 	
	}); 
	form.submit();
}

var previewChangeStatus = function(type, id)
{	
	$('#overlay-tools .form-ajax-loader').show(); 
	$('#overlay-tools .submit-button').hide(); 
	
	var params = new Object();	

	if(type == "blog")
	{
		params.blog_entry_id = id;
		$.post("custom/modules/blog/blog.cfc?method=changeStatusOfBlogEntry", params, onPreviewChangeStatus, "script");
	}
	else if(type == "portfolio")
	{
		params.portfolio_id = id;
		$.post("custom/modules/portfolio/portfolio.cfc?method=changeStatusOfPortfolio", params, onPreviewChangeStatus, "script");
	}
	else if(type == "ad")
	{
		params.ad_id = id;
		$.post("custom/modules/ad/ad.cfc?method=changeStatusOfAd", params, onPreviewChangeStatus, "script");
	}
	else if(type == "ad_search")
	{
		params.ad_search_id = id;
		$.post("custom/modules/ad/ad_search.cfc?method=changeStatusOfAdSearch", params, onPreviewChangeStatus, "script");
	}
	else if(type == "video_entry")
	{
		params.video_entry_id = id;
		$.post("custom/modules/video/video.cfc?method=changeStatusOfVideoEntry", params, onPreviewChangeStatus, "script");
	}
	else if(type == "termin_entry")
	{
		params.termin_entry_id = id;
		$.post("custom/modules/appointment/appointment.cfc?method=changeStatusOfAppointment", params, onPreviewChangeStatus, "script");
	}
}
var onPreviewChangeStatus = function(obj)
{
	$('#overlay-tools .form-ajax-loader').hide(); 
	$('#overlay-tools .info').show();
};

$(document).bind("ready", function() { initPageSettings(); });

$(window).bind("resize", function() {feedbackOnScroll(); initSearchField();});
$(window).bind("scroll", function() {feedbackOnScroll(); searchOnScroll();});

