var oTidyBrowser = {};

$(document).ready(
	function() {
		// email címek védelmére:
		$("a.antispam").each( function(i, email) { email.href = email.href.replace('http://', 'mailto:').replace('.anti.spam.', '@').replace('/', ''); });

		// lekerekítés:
		//$("div.header").append('<span class="ct_tl"></span><span class="ct_tr"></span>');
		//$("div.footer").append('<span class="ct_bl"></span><span class="ct_br"></span>');

		// a target="_blank" nem XHTML valid, ezért class="popup" :)
		$("a.popup").each( function() { $(this).attr('target', '_blank'); });

		// legördülő menü:
		$("div.menu > ul > li").hover(
			function(){ $('ul', this).css({display:'block',opacity:0}).stop().animate({opacity:1},300); },
			function(){ $('ul', this).stop().animate({opacity:0},300,null,function(){$(this).hide();}); }
		);
		// a legördülő menük szélessége ne legyen kisebb, mint "amiből kinő"
		$("div.menu ul ul").each( function() {
			if ( $(this).parent().width() > $(this).width() ) {
				$(this).width( $(this).parent().width() );
			}
		});

		// gombok hover eseményei:
		$("a.button, input.button").hover(
			function(){ $(this).parent().addClass("button_hover"); },
			function(){ $(this).parent().removeClass("button_hover"); }
		);

		resizable_textarea();

		$("div.expandable dt").click( function() { $(this).parent().toggleClass("active"); } );

		// táblázatoknál a hover esemény + a teljes soron történő kattintás:
		$("table.datatable tbody tr").each( function() {
			if ( $("a", $(this)).size() == 1 && $("a", $(this)).attr("href") != "#" ) {
				$(this).css({cursor:"pointer"});
				$(this).click( function() { window.location.href = $("a", $(this)).attr("href"); });
			}
		});
		$("table.datatable tbody tr").mouseover( function(){ $(this).addClass("active"); }).mouseout( function(){ $(this).removeClass("active"); } );

		// Segítség dobozok lekerekítése:
		$("div.helpbox").append("<div class='corner_tl'></div><div class='corner_tr'></div><div class='corner_bl'></div><div class='corner_br'></div>");

		// füles megoldás:
		$("div.multitab > div.tabbed").each( function(i, tabbed) {
			$("li", $(tabbed)).each( function(j, li) {
				$(li).click( function() {
					$("li", $(this).parent()).removeClass("active");
					$(this).addClass("active");
					// TODO: ezt át kellene írni szebbre:
					$(this).parent().parent().parent().children("div.tab").removeClass("visible");
					$($(this).parent().parent().parent().children("div.tab").get(j)).addClass("visible");
					$(this).blur();
				});
			});
			// ha nincs kinyitva:
			if (!$("ul > active.li", tabbed).size()) {
				if( document.location.hash ) {
					var l = false;
					$("ul > li > a", tabbed).each( function(i, a) {
						if ($(a).attr("href") == document.location.hash) {
							$(a).parent().click();
							l = true;
						}
					});
					if (!l) $("ul > li:first", tabbed).click();
				} else {
					$("ul > li:first", tabbed).click();
				}
			}
		});

		// űrlapok:
		$("input.validate-number").keyup( function(e) {
			if (e.keyCode <= 40 && e.keyCode >= 37 ) return; // nyilakkal ne foglalkozzon ( IE miatt kell ):
			$(this).val( $(this).val().replace(/[^0-9.,]/ig,'') );
		});
		$("form.validator").each( function() {
			var form = $(this);
			$("input.textfield, input.checkboxfield, textarea, select", form).keyup( function(){
				form_validator_check( form );
			}).change( function(){
				form_validator_check( form );
			}).attr("autocomplete", "off");
			form_validator_check( form );
			$("div.error", form).hide();
			form.submit( function(){ return form_validator_submit(form); } );
		})
		
		// magyarázó szövegek az input mezőben:
		$('input.explanatory').focus( function() {
			// ha megegyezik a default értékkel, akkor az érték legyen üres:
			if( $(this).val() == $(this).get(0).defaultValue ) { $(this).val(''); }
		}).blur( function() {
			// ha nem írtunk oda semmit, akkor a magyarázó szöveget tegyük vissza:
			if(!$(this).val()) { $(this).val( $(this).get(0).defaultValue ); }
		});		



	}
);

var hibat_elrejtjuk = true;
var esc_beallitva = false;
function form_validator_check(form) {
	$("div.error", form).remove();
	var email_filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	$("input.validate-email", form).each( function(i, input) { if ( $(input).val() && !email_filter.test($(input).val()) ) $(input).parent().append("<div class='error'><span></span><label>"+label("Kérem valós email címet adjon meg!")+"</label></div>"); });
	$("input.required, select.required, textarea.required", form).each( function(i, input) { if ( !$(input).val() ) $(input).parent().append("<div class='error'><span></span><label>"+label("Kérem a kötelező mezőket kitölteni!")+"</label></div>"); });
	// ha létezik extra ellenőrzés:
	if ( $(form).attr("extra_ellenorzes") ) eval($(form).attr("extra_ellenorzes")+'()');
	if (hibat_elrejtjuk) $("div.error", form).hide();
}

function form_validator_submit(form) {
	hibat_elrejtjuk = false;
	if (!esc_beallitva) {
		// Esc-re eltünnek a hibaüzenetek:
		$(document).keydown(function(e) { if (e.keyCode == 27) { $("form.validator div.error").remove(); hibat_elrejtjuk = true; } } );
		esc_beallitva = true;
	}
	form_validator_check(form);
	if ( $("div.error", form).size() ) { $("div.error", form).show(); return false; }
	$(form).animate({'opacity':.5},300);
	$(form).blur();
	$(form).prepend('<div class="waiting"></div><div class="waitinganim">'+label('Kérem várjon!')+'</div>');
	$("div.waiting, div.waitinganim", form).css('position','absolute');
	return true;
}

var lang = 'hu';
var labels = {};
function label(str) {
	if (typeof labels[str] == "string") return labels[str];
	return str;
}

function resizable_textarea() {
	$('textarea:not(.processed)').each( function() {
		var textarea = $(this).addClass('processed'), staticOffset = null;
		$(this).wrap('<div class="resizable-textarea"><span></span></div>').parent().append($('<div class="grippie"></div>').mousedown(startDrag));
		var grippie = $('div.grippie', $(this).parent())[0];
		grippie.style.marginRight = (grippie.offsetWidth - $(this)[0].offsetWidth) +'px';
		function startDrag(e) {
			staticOffset = textarea.height() - e.pageY;
			textarea.css('opacity', 0.25);
			$(document).mousemove(performDrag).mouseup(endDrag);
			return false;
		}
		function performDrag(e) {
			textarea.height(Math.max(32, staticOffset + e.pageY) + 'px');
			if(!isLeftClick(e)) endDrag(e);
			return false;
		}
		function isLeftClick(e) {
			return (e.which && e.which == 1) || (e.button && e.button == 1);
		};
		function endDrag(e) {
			$(document).unbind('mousemove', performDrag).unbind('mouseup', endDrag);
			textarea.css('opacity', 1);
		}
	});
}

//Flash Player 9 Fix (http://blog.deconcept.com/2006/07/28/swfobject-143-released/)
if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};});};

function getFlashVersion() { var v = 0; if ( navigator.plugins && navigator.mimeTypes.length ) { var x = navigator.plugins["Shockwave Flash"]; if( x && x.description ) { var y = x.description; v = y.charAt( y.indexOf( '.' ) - 1 ); } } else { result = false; for( var i = 15; ( ( i >= 3 ) && ( result != true ) ); i-- ) { execScript('on error resume next: result = IsObject( CreateObject( "ShockwaveFlash.ShockwaveFlash.' + i + '" ) )', 'VBScript' ); v = i; } if( v == 15) return 0; } return v; }
jQuery.browser.flashVersion = getFlashVersion();

function appendFlash(obj, params) {
	// alapértelmezett paraméterek hozzáadása:
	var defaultParams = { version: 6, width: '100%', height: '100%', flashVars: '', wmode: 'transparent', scale: 'scale', salign: 'tl', name: ''};
	params = $.extend({}, defaultParams, params);
	// csak akkor szĂˇmoljuk meg az OBJECT-eket, ha mindenkĂ©ppen szĂĽksĂ©ges:
	if (!params.name) params.name = 'flash'+($('object').size()+1);
	// flash verziĂł ellenĹ‘rzĂ©se:
	if (jQuery.browser.flashVersion < parseInt(params.version) ) {
		$(obj).append('<a href="http://macromedia.com/go/flashplayer" target="_blank">'+label('KĂ©rem tĂ¶ltse le a legĂşjabb Flash lejĂˇtszĂłt!')+'</a>');
		return;
	}
	// fĂˇjlnĂ©vhez a timestamp hozzĂˇadĂˇsa:
	params.src += (params.src.indexOf('?')!=-1?"&":"?")+(new Date()).getTime();
	// Flash beillesztĂ©se:
	$(obj).append('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+params.version+',0,0,0" width="'+params.width+'" height="'+params.height+'" id="'+params.name+'">'+
		'<param name="movie" value="'+params.src+'" />'+
		'<param name="scale" value="'+params.scale+'" />'+
		'<param name="wmode" value="'+params.wmode+'" />'+
		'<param name="salign" value="'+params.salign+'" />'+
		'<param name="quality" value="high" />'+
		'<param name="allowScriptAccess" value="sameDomain" />'+
		'<param name="quality" value="high" />'+
		'<param name="swliveconnect" value="true"/>'+
		'<param name="FlashVars" value="'+params.flashVars+'" />'+
		'<embed name="'+params.name+'" src="'+params.src+'" scale="'+params.scale+'" salign="'+params.salign+'" wmode="'+params.wmode+'" width="'+params.width+'" height="'+params.height+'" flashvars="'+params.flashVars+'" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" swLiveConnect="true" />'+
	'</object>');
}



function makeFlash() {
	$("div.makeflash").each( function(i, flash) {
		var p = {}; eval("p = {"+flash.title+"}");
		appendFlash(flash, p);
		flash.title = '';
	});
}


function findPosX(obj) { var curleft = 0; if (obj.offsetParent) { while (obj.offsetParent) { curleft += obj.offsetLeft; obj = obj.offsetParent; } } else if (obj.x) curleft += obj.x; return curleft; }
function findPosY(obj) { var curtop = 0; if (obj.offsetParent) { while (obj.offsetParent) { curtop += obj.offsetTop; obj = obj.offsetParent; } } else if (obj.y) curtop += obj.y; return curtop; }


function naptar(obj) {
	obj.setAttribute("autocomplete", "off");

	var x = findPosX(obj);
	var y = findPosY(obj)+obj.offsetHeight-1;

	var d = new Date();

	if ($("#naptar").size()) {
		$("#naptar").css({'left':x+'px', 'top':y+'px'});
		return;
	}

	$("body").append('<div id="naptar"><select></select> <select></select></div>');
	$("#naptar").css({'left':x+'px', 'top':y+'px', 'z-index':'1000'});

	var elso_select = $("#naptar select:first");
	for (var i = 1900; i <= 2030; i++) {
		$(elso_select).append("<option>"+i+"</option>");
	}
	$(elso_select).val( d.getFullYear() );

	var honapok = ["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"];

	var masodik_select = $("#naptar select:last");
	for (var i = 0; i < honapok.length; i++) {
		$(masodik_select).append('<option value="'+i+'">'+honapok[i]+'</option>');
	}
	$(masodik_select).val( d.getMonth() );

	$("#naptar select").change( function() { naptar_change(obj); } );

	$("#naptar").append('<div class="fejlec"><span>H<\/span><span>K<\/span><span>Sz<\/span><span>Cs<\/span><span>P<\/span><span>Sz<\/span><span>V<\/span></div>');
	$("#naptar").append('<div class="napok"></div>');

	if ($.browser.msie) { $("#naptar").append('<iframe src="about:blank"></iframe>'); }

	naptar_change(obj);
	// kis késleltetéssel kell hozzáadni az elvevő függvényt
	setTimeout(function() {$(document).click(checkClick);}, 10);
}

function naptar_change(obj) {
	var naptar = document.getElementById("naptar");
	if (!naptar) return;
	var evhonap = naptar.getElementsByTagName("select");
	var d  = new Date($(evhonap[0]).val(), $(evhonap[1]).val(), 1);
	var d2 = new Date($(evhonap[0]).val(), (1+parseInt($(evhonap[1]).val())), 0);
	var d0 = new Date($(evhonap[0]).val(), $(evhonap[1]).val(), 0);

	$("#naptar div.napok *").remove();

	elozo = d.getDay(); if (!elozo) elozo = 7;
	
	for (var i = 1; i < elozo; i++) {
		$("#naptar div.napok").append('<span>'+(d0.getDate()-elozo+i+1)+'<\/span>');
	}
	for (var i = 1; i <= d2.getDate(); i++) {
		$("#naptar div.napok").append('<span><a href="#" rel="'+$(evhonap[0]).val()+'-'+(parseInt( $(evhonap[1]).val() )+1)+'-'+i+'">'+i+'<\/a><\/span>');
	}
	utolso = d2.getDay(); if (!utolso) utolso = 7;
	for (var i = utolso; i < 7; i++) {
		$("#naptar div.napok").append('<span>'+(1+i-utolso)+'<\/span>');
	}
	$('#naptar a').click( function() {
		$(obj).val( $(this).attr('rel') );
		$(obj).trigger('keypress');
		checkClick(document.body);
		return false;
	})
	if ($.browser.msie) {
		$("#naptar iframe").css({ 'height':$("#naptar").height()+'px', 'opacity':0 });
	}
}
function checkClick(e) {
	var naptar = document.getElementById("naptar");
	if ($("#naptar").size() && !isChild(e.target ,naptar)) {
		$("#naptar").remove();
		$(document).unbind('click', checkClick)
	}
}
function isChild(s, d) {
	if (s == d) return true;
	if (s) return isChild(s.parentNode,d);
	return false;
}
