$(function() {
	debug = true;
	$.wbAjaxLock = 0;
	$.wbAjaxType = "POST";
	$.wbAjaxFormPars = false;
	$.wbAjaxSaveState = false;
	$.wbAjaxPositionState = 0;
	$.wbAjaxBack = true;
	$.wbAjaxScrollLock = false;
	$.refreshAnim = true;

	jQuery.fx.interval = 50;
	if ($.browser.msie && ($.browser.version < 9)) jQuery.fx.off = true;

    audioPlayerInit = function() {
        $("#mainContent a.WBLink").each(function() {
            var $this = $(this);
            if ($this.attr("href").split('.').pop().toLowerCase() == "mp3") {
              var id = "mp3_player_"+Math.round(Math.random()*10000);
              $this.after("<div id='"+id+"'></div>");
              swfobject.embedSWF($.publicbase+"public/flash/mp3player.swf", id, "260", "40", "9.0.0", "expressInstall.swf", { mp3Url: $this.attr("href"), mp3Title: $this.attr("title") }, {});
              $this.remove();
            }
        });
    }

	videoPlayerInit = function () {
		$(".flash_default, .WBFlash").each(function(){
		  var el = $(this);
		  var id = "video_player_"+Math.round(Math.random()*10000);
		  el.after("<div id='"+id+"'></div>");
		  swfobject.embedSWF($.publicbase+"public/flash/vplayer.swf", id, "480", "360", "9.0.0", "expressInstall.swf", { vurl: el.attr("alt") }, {allowFullScreen: true, bgcolor: "#000000"});
		  el.remove();
		});
	}

	loading = function (status) {
		return;
		if (status) {
			$("#loader").css({ opacity: 1, display: "block" }).stop().animate({ opacity: 1 }, 200, "swing", function() { if ($.browser.msie && ($.browser.version < 9)) this.style.removeAttribute('filter'); });
		  	if ($.refreshAnim && !$.browser.msie) {
			  $("#mainContent").stop().animate({ opacity: 0 }, 200, "swing");
		  	}
		} else {
		 	$("#loader").stop().css({ opacity: 0, display: "none" });

		  	if ($.refreshAnim && !$.browser.msie) {
				$("#mainContent").stop().css({ opacity: 1 });
		  	} else {
		  		$.refreshAnim = true;
		  	}
		}
	}

	setSearchLinks = function () {
		if ($("#searchForm").length && $.trim($("#searchForm input[name='search']").val()) != "" ) {
			var searchQuery = $("#searchForm").serialize();
			$(".pagination a").each(function(){
				$(this).attr("href", $(this).attr("href").split("?")[0]+"?"+searchQuery);
			});
		}
	}

	$.executeRemoteLink = function($this) {
		$.wbAjaxFormPars = false;
		$.wbAjaxBack = false;
		$.wbAjaxPositionState = $('html').scrollTop();

		if ($this.hasClass("noRefreshAnim")) $.refreshAnim = false;
		else $.refreshAnim = true;

		if ($this.hasClass("scrollLock")) $.wbAjaxScrollLock = true;
		else $.wbAjaxScrollLock = false;

		var uri = $this.attr('href').replace($.base,'');

		if ($this.hasClass("historyLock")) $.wbAjaxLoad(uri);
		else {
			$.history.back = false;
			$.history.load(uri);
		}

		return true;
	}

	$.executeRemoteForm = function($this) {
		if ($("#dayCheck").length > 0 && $("#dayCheck").val() == 0) {
			alert(window.daycheckError);
			return false;
		}

		if ($this.hasClass("validForm"))
		{
			var error = $.validate($this);
			if (error !== false) {
				$("#mainContent div.validError").html(error);
				$('html, body').animate({scrollTop: $("#mainContent").offset().top}, 'slow');
				return false;
			}
		}

		if ($this.hasClass("validForm2"))
		{
			var error = $.validate($this);
			if (error !== false) {
				$("#mainContent div.error").html(error).stop().fadeIn('fast').animate({ opacity: 0.9 }, 10000, function() {
                    $("#mainContent div.error").stop().fadeOut('fast');
                });
                $("#mainContent div.error").click(function() { $("#mainContent div.error").stop().fadeOut('fast'); });
				//$('html, body').animate({scrollTop: $("#mainContent").offset().top}, 'slow');
                $.mainForm.first();
				return false;
			}
		}

		var fileform = false;
		$this.children().find("input[type='file']").each(function() {
			if ($(this).val() !== '') fileform = true;
		});

		if (fileform) return true;

		if ($this.hasClass("noRefreshAnim")) $.refreshAnim = false;
		else $.refreshAnim = true;

		if ($this.hasClass("scrollLock")) $.wbAjaxScrollLock = true;
		else $.wbAjaxScrollLock = false;

		$.wbAjaxBack = false;
		$.wbAjaxPositionState = $('html').scrollTop();

		var frag = window.location.toString().split("#")[1];
		var uri = "";

		if ($this.attr("method").toLowerCase() == "get") {
			$.wbAjaxType = "GET";

			$.wbAjaxFormPars = $this.serialize();

			uri = $this.attr('action').replace($.base,'') + "?" + $.wbAjaxFormPars;
			$.wbAjaxFormPars = false;

		} else {
			$.wbAjaxFormPars = $this.append("<input type='hidden' name='ajax' value='true' />").serializeArray();
			$this.children("input[name='ajax']").remove();

			uri = $this.attr('action').replace($.base,'');
		}

		if (!uri.length) uri = '/';

		if ($this.hasClass("historyLock")) $.wbAjaxLoad(uri);
		else {
			$.history.back = false;
			$.history.load(uri);
		}

		if ($.wbAjaxSaveState !== false) {
			if (frag) window.location = $.wbAjaxSaveState;
			$.wbAjaxSaveState = false;
		}
		return false;
	}

	$.setRemoteLink = function(el) {
		el.unbind("click.remote").bind('click.remote', function(e) {
			e.preventDefault();
			var $this = $(this);
			if ($this.hasClass("remoteConfirm")) {
				if (confirm($this.attr("lang"))) return $.executeRemoteLink($this);
				else return true;
			} else return $.executeRemoteLink($this);
		});
	}

	$.setRemoteForm = function(el) {
		el.unbind("submit.remote").bind('submit.remote', function() {
			return $.executeRemoteForm($(this));
		});
	}

	setRemoteLinks = function (remoteLinkContainer) {
		if ((typeof remoteLinkContainer == "undefined") || (typeof remoteLinkContainer == "null")) remoteLinkContainer = "";
		else remoteLinkContainer += " ";

		$(remoteLinkContainer + 'a.remote').each(function (i) {
			return $.setRemoteLink($(this));
	    });

		$(remoteLinkContainer + 'form.remote').each(function (i) {
			return $.setRemoteForm($(this));
	    });

	}

	var xhr;
	$.wbAjaxLoad = function(url) {
		if (xhr) {
			$.wbAjaxLock = 0;
			xhr.abort();
		}

		if (!$.wbAjaxLock) {
			$.wbAjaxLock = 1;

			var pars = ($.wbAjaxFormPars?$.wbAjaxFormPars:{ ajax: 'true' });

			loading(1);

			if (!$.wbAjaxScrollLock && ($.wbAjaxBack === false)) {
				var mTop = $("#mainContent").offset().top;
				var scTop = $('html').scrollTop() || $('body').scrollTop();
				if (scTop > mTop) $('html, body').animate({ scrollTop: 0 }, 'slow');
			}

			if ($("#searchContent .gsc-tabsArea").length) $("#searchContent .gsc-tabsArea").removeClass("gsc-tabsArea").addClass("gsc-tabsAreaInvisible");
			if ($("#searchContent .gsc-resultsbox-visible").length) $("#searchContent .gsc-resultsbox-visible").removeClass("gsc-resultsbox-visible").addClass("gsc-resultsbox-invisible");

			$("#searchContent").hide();

			xhr = $.ajax({
				type: $.wbAjaxType,
				url: $.base+url,
				data: pars,
				dataType: "html",
				complete: function (data, status) {
					$("#mainContent").html(data.responseText);

					if (typeof _gaq == "object") _gaq.push(['_trackPageview', "/" + url]);

					loading(0);

					initFunctions("#mainContent");

					if (!$.wbAjaxScrollLock) {
						if ($.wbAjaxBack === false) {
							$.wbAjaxBack = true;
						} else {
							$('html, body').animate({ scrollTop: $.wbAjaxPositionState }, "fast");
						}
					}

					$.wbAjaxScrollLock = false;
				}
			});

			$.wbAjaxType = "POST";
		}
	}

	initFunctions = function (remoteLinkContainer) {
		if ((typeof remoteLinkContainer == "undefined") || (typeof remoteLinkContainer == "null")) remoteLinkContainer = "";

		var $basket = $("#basket");
		if ($basket.length) {
			if (window.location.href.replace('#', '').search(/\/rendeles.*/gi) >= 0) {
				$basket.fadeOut('fast');
			} else {
				$basket.fadeIn('fast');
			}
		}

		$.wbAjaxLock = 0;
		setRemoteLinks(remoteLinkContainer);
        audioPlayerInit();
		videoPlayerInit();
		setSearchLinks();
		$.wbGallery.init();
		$.changeMenuActive();
	}

	initWbPage = function () {
		initFunctions();

		$.history.init(function(url) {
			if ($.trim(url)==="") { return; }

			var loc = window.location.toString().split("#")[0];

			if (($.base != loc) && !$.wbAjaxFormPars) {
				if ($.history.back) {
					var backLink = loc.split($.base);
					if (backLink.length > 1) {
						window.location = $.base + "#" + backLink[1];
					}
				} else {
					window.location = $.base + "#" + url.split("?")[0];
				}
			} else {
				$.wbAjaxLoad(url);
			}

			$.history.back = true;
		});
	}

	checkIE6 = function () {
	    return ($.browser.msie && parseInt($.browser.version)<7);
	}

	checkIE = function () {
	    return ($.browser.msie);
	}


	addTag = function (str) {
		var selection = "";
		var value = $("#commentText").val();
		var range = $("#commentText").getSelection();
		var before = value.substring(0, range.start);
		var after = value.substring(range.end, value.length);

		if ((range.text.length > 0) || (str != "img" && str != "url")) {
			if ((str == "url" || str == "img") && range.text.substr(0,7) != "http://" ) {
				range.text = "http://" + range.text;
			}
			var trailing = "";
			if (range.text[range.length-1] == " ") {
				range.text = range.text.substring(0, range.length-1);
				trailing = " ";
			}
    		var selection = "["+str+"]" + range.text + "[/"+str+"]";
			$("#commentText").val(before + selection + trailing + after);
		} else if (str == "url") {
			if (selection = prompt("Adja meg az urlt!","http://")) {
				$("#commentText").val(before + "[url]" + selection + "[/url] " + after);
			}
		} else if (str == "img") {
			if (selection = prompt("Adja meg a kép url-t!","http://")) {
				$("#commentText").val(before + "[img]" + selection + "[/img] " + after);
			}
		}
	};

	htmlToBBCode = function (s) {
		s = $.trim(s);

		function rep(re, str) {
			s = s.replace(re, str);
		};

		rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
		rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
		rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
		rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
		rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
		rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
		rep(/<font>(.*?)<\/font>/gi,"$1");
		rep(/<img.*?src=\"(.*?)\".*?>/gi,"[img]$1[/img]");
		rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
		rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");
		rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");
		rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");
		rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");
		rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");
		rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");
		rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");
		rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");
		rep(/<\/(strong|b)>/gi,"[/b]");
		rep(/<(strong|b)>/gi,"[b]");
		rep(/<\/(em|i)>/gi,"[/i]");
		rep(/<(em|i)>/gi,"[i]");
		rep(/<\/u>/gi,"[/u]");
		rep(/<u>/gi,"[u]");
		rep(/<br \/>/gi,"\n");
		rep(/<br\/>/gi,"\n");
		rep(/<br>/gi,"\n");
		rep(/<p>/gi,"");
		rep(/<\/p>/gi,"\n");
		rep(/&nbsp;/gi," ");
		rep(/&quot;/gi,"\"");
		rep(/&lt;/gi,"<");
		rep(/&gt;/gi,">");
		rep(/&amp;/gi,"&");
		rep(/&undefined;/gi,"'"); // quickfix
		return s;
	}

	initWbPage();
});
