/**
 * Ellenőrzi egy email cím formai helyességét
 *
 * @param   String      email       Ellenőrizendő email
 *
 * @return  Boolean     true, ha az email nem üres és formailag helyes
 */
function validEmail(email) {
    if (email=="" || email== null) {
        return false;
    } else {
        var emailReg = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/; // valid
        if (!emailReg.test(email)) { // if syntax is valid
            return false;
        }
        return true;
    }
}

/**
 * Lekérdezi és visszaadja a megadott stílusosztályba tartozó elemeket
 *
 * @param   string      name        A keresett osztály neve
 *
 * @return  Array       A keresett stílusosztályba tartozó tartozó elemek tömbje
 */
function getElementsByClass(name) {
    var found = 0;
    var elems = new Array();
    var alltags = document.getElementsByTagName("*");
    if (alltags) {
        for (i=0; i < alltags.length; i++) {
            if (alltags[i].className == "") {
                continue;
            }
            classes = alltags[i].className.split(" ");
            for (ii=0; ii<classes.length; ii++) {
                if (classes[ii] == name) {
                    elems[found++] = alltags[i];
                    continue;
                }
            }
        }
    }
    return(elems);
}

/**
 * Megkeresi az adott elem legelső megadott típusú parent elemét
 *
 * Ha a paraméterben átadott objektum típusa azonos a kerestt típussal, akkor
 * önmagát adja vissza.
 *
 * @param       Object      element     Elem, amelynek a parentjét kell keresni
 * @param       string      tagName     Szülő elem típusa
 *
 * @return      Object      A keresett szülő objektum
 */
function getParent(element, tagName) {
    if (element == null) {
        return null;
    } else if (element.nodeType == 1 && element.tagName.toLowerCase() == tagName.toLowerCase()) {
        return element;
    } else {
        return getParent(element.parentNode, tagName);
    }
}

/**
 * Hozzárendel egy objektumhoz egy eseménykezelőt
 *
 * @param   Object          object      Az objektum, amihez az eseménykezelőt rendelni kell
 * @param   DOMString       type        Az esemény típusa
 * @param   EventListener   listener    Eseménykezelő függvény neve
 */
function addEvent(object, type, listener) {
    if (object.addEventListener) {
        object.addEventListener(type, listener, true);
        return true;
    } else if (object.attachEvent) {
        return object.attachEvent("on"+type, listener);
    } else {
        return false;
    }
}
$(document).ready(function(){
	initLightbox();
	initDialog();
});
initDialog = function(){
	$("a.popup[href*=fogalom]").click(function(){
		var href = $(this).attr("href").split("/");
		$.getJSON('/ajax.php', {"action":"fogalom", "data":href[href.length-1]}, function(data){
			data["descript"] += '<p style="margin:10px 0 0;border-top: 1px dotted #777"><a href="http://www.iceklima.hu/">iceklima.hu</a></p>';
			$("<div/>").html(data["descript"]).dialog({
				title: "Fogalomtár: " + data["title"],
				width: 600,
				buttons: {
					"Ok": function() {
						$(this).dialog("close");
					}
				}
			});
		});
		return false;
	});
}
initLightbox = function(attr){
	if (!$.fn.lightbox){ return; }
	$.addCSS($.getBaseUrl()+'css/lightbox.css');
	setLightbox();
};
setLightbox = function(element){
	var
		index = 0,
		groups = {},
		attr = attr || "rel",
		set = {
			overlayOpacity: 0.37,
			fileLoadingImage : $.getBaseUrl()+'images/loading.gif',
			fileBottomNavCloseImage : $.getBaseUrl()+'images/closelabel.gif',
			strings : {
				help: ' \u2190 / P - előző kép\u00a0\u00a0\u00a0\u00a0\u2192 / N - következő kép\u00a0\u00a0\u00a0\u00a0ESC / X - ablak bezárása',
				prevLinkTitle: 'Előző kép',
				nextLinkTitle: 'Következő kép',
				prevLinkText:  '&laquo;&nbsp;előző',
				nextLinkText:  'következő&nbsp;&raquo;',
				closeTitle: 'Ablak&nbsp;bezárása',
				image: 'Képek:&nbsp;',
				of: '/'
			}
		};

	$.each($("["+attr+"*=lightbox]", element), function(i, obj){
		var name = /(lightbox[^\s]*)/.exec($(obj).attr(attr))[0];
		if (name == "lightbox"){ name = "_"+(index++); }
		if (typeof groups[name] == 'undefined'){ groups[name] = []; }

		groups[name].push(obj);
	});
	$.each(groups, function(i, group){
		$(group).lightbox(set);
	});
};