// Adatküldés
var http_request = false;
var targetElementId;
var funcForEnd;
/**
 * Adat küldés és fogadás
 * 
 * @param string url
 * @param array parameters
 * @param string contentTarget
 * @param string [optional] funcName 
 * @return bool
 */
$.ajaxSetup ({  
    cache: false  
});

$(function() {
    // lightbox képmegjelenítő indítása lightbox osztályokon
    $('a.lightbox').lightBox(); // Select all links with lightbox class
});

$(document).ready(function(){
    // pirobox képmegjelenítő illesztése
    $().piroBox({
        my_speed: 600, //animation speed
        bg_alpha: 0.5, //background opacity
        radius: 4, //caption rounded corner
        scrollImage : false, // true == image follows the page, false == image remains in the same open position
        pirobox_next : 'piro_next', // Nav buttons -> piro_next == inside piroBox , piro_next_out == outside piroBox
        pirobox_prev : 'piro_prev',// Nav buttons -> piro_prev == inside piroBox , piro_prev_out == outside piroBox
        close_all : '.piro_close',// add class .piro_overlay(with comma)if you want overlay click close piroBox
        slideShow : 'slideshow', // just delete slideshow between '' if you don't want it.
        slideSpeed : 6 //slideshow duration in seconds(3 to 6 Recommended)
    });
    
    // INPUT Mezők színkiemelése
    $("input[type=text]").focus(function(){
        // Select field contents
        $(this).toggleClass("highlight");
    });
    $("input[type=text]").focusout(function(){
        // Select field contents
        $(this).toggleClass("highlight");
    });

    // banerek klikkelésének beírása adatbázisba
    $(".banner").click(function(){

        // banner id száma
        var id = $(this).attr("id");
        
        $.ajax({
            type: "POST",
            cache: false,
            url: "/modules/6/public/bannerClick.inc.php",
            data: "id="+id,
            success: function(html) {
            // alert(html);
            }
        });

    });

});

function communication(url, parameters, contentTarget, fname) {
    
    // ha szeretnénk a feldolgozás végén futtatni egy function-t   a zárójelpár nem kell a string végére   
    if (fname) {
        funcForEnd = fname;
    }
    
    // beállítjuk a targetet
    targetElementId = $("#"+contentTarget).get(0); 
    http_request = false;
    // Mozilla, Safari,...
    if (window.XMLHttpRequest) { 
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/html');
        }
        
    } 
    // IE
    else if (window.ActiveXObject) { 
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }    
    
    if (!http_request) {
        alert('Cannot create XMLHTTP instance');
        return false;
    }
    
    http_request.onreadystatechange = stateChanged;
    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", parameters.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.send(parameters);
   
}

// Befejező művelet. Beírjuk a visszakapott választ a target element helyére
function stateChanged() {
    
    if (http_request.readyState >= 1 && http_request.readyState <= 3) {
        
        targetElementId.innerHTML = '<div style="margin-left: auto; margin-right: auto; padding: 5px 0px 5px 0px; color: #FFF;">Betöltés...</div>';
        
    } else if (http_request.readyState == 4) {
        
        if (http_request.status == 200) {
            
            var result = http_request.responseText;
            targetElementId.innerHTML = result;
            // ha kell akkor functiont futtatunk a végén
            if (funcForEnd) {
                eval(funcForEnd + '()');
            }
        
        } else {
        
            targetElementId.innerHTML = '<div style="margin-left: auto; margin-right: auto; padding: 5px 0px 5px 0px; color: #FFF;">Nem sikerült az adatok betöltése</div>';
        
        }
        
    } else {
        
        targetElementId.innerHTML = '<div style="margin-left: auto; margin-right: auto; padding: 5px 0px 5px 0px; color: #FFF;">Nem sikerült az adatok betöltése</div>';
        
    }
   
}
/** ------------------- INPUT FOCUS/BLUR --------------------- */
var backCol;
var textCol;

// Egy input mezőre fókuszál színkiemeléssel

function focusField(elementId) {
    
    var targetId = $("#"+elementId).get(0); 
    
    backCol = targetId.style.backgroundColor;
    textCol = targetId.style.color;
    
    targetId.style.backgroundColor = '#D6E9FF';
    targetId.style.color = '#000';
    
}

/** ------------------- OPEN OR CLOSE ELEMENT  --------------- */
// kinyit vagy bezár egy elemet
function openClose(elementId) {
    
    // var targetId = $(elementId);
    
    var targetId = $("#"+elementId).get(0); 
    
    if (targetId.style.display=='block') {
        
        targetId.style.display='none';
        
    } else {
        
        targetId.style.display='block';
        
    }
    
}
/** ------------------- SWITCH CHECKBOXES  ------------------- */
// kijelöli vagy inaktívvá teszi egy form mező összes checkbox elemét
function switchCheckboxes(tForm, tLike) {
    
    var mtForm = document.forms[tForm];
    
    for( i=0; i<mtForm.elements.length; ++i ) {
        
        mtFE = mtForm.elements[i];
        
        if ((mtFE.name.substr(0, tLike.length) == tLike) && (mtFE.type = 'checkbox')) {
            
            mtFE.click();
        
        }
        
    }

}
/** ------------------- CONFIRMATION  ------------------------ */
// megerősítést kér a felhasználótól egy get típusú művelet elvégzéséhez
function confirmGet(msg, target) {
    
    var answer = confirm("Delete entry <? echo $row['id']; ?> ?")
	
    if (answer) {
		
        alert("Entry Deleted")
        window.location = "links.php?act=trackdelete&id=<? echo $row['id']; ?>";
	
    } else {
		
        alert("No action taken")
	
    }

}
// megerősítést kér a felhasználótól egy post típusú művelet elvégzéséhez
function confirmPost(msg) {
    
    var agree = confirm(msg);
    
    if (agree) {
        return true;
    } else {
        return false;
    }
    
}

var swicthDisplay = {

    toggle: function(btn, elementId) {
        
        // eltűnteti, vagy megjeleníti a hidden-div tartalmakat
        $("#"+elementId).slideToggle("normal");
        
        var btnSrc = $("#"+btn).attr('src');
        
        if ( btnSrc == '/admin/images/ico-right-arrow.png' ) {

            // megjelenítve
            $("#"+btn).attr('src', '/admin/images/ico-down-arrow.png');
            // beállítjuk a SESSION-t, hogy megjegyezzük a megnyitott státuszt
            $.ajax({
                type: "POST",
                cache: false,
                url: "/frameWork/common/sessioner.php",
                data: "elementId="+elementId+"&addElementId=true",
                success: function(data) {
                    
                }
            });

        } else {

            // eltűntetve
            $("#"+btn).attr('src', '/admin/images/ico-right-arrow.png');
            // beállítjuk a SESSION-t, hogy megjegyezzük a zárt státuszt
            $.ajax({
                type: "POST",
                cache: false,
                url: "/frameWork/common/sessioner.php",
                data: "elementId="+elementId+"&removeElementId=true",
                success: function(data) {

                }
            });

        }
        
    },
    toggleBlue: function(btn, elementId) {

        // eltűnteti, vagy megjeleníti a hidden-div tartalmakat
        $("#"+elementId).slideToggle("normal");

        var btnSrc = $("#"+btn).attr('src');

        if ( btnSrc == '/admin/images/blue-ico-right-arrow.png' ) {
            $("#"+btn).attr('src', '/admin/images/blue-ico-down-arrow.png');
        } else {
            $("#"+btn).attr('src', '/admin/images/blue-ico-right-arrow.png');
        }

    },
    toggleGreen: function(btn, elementId) {

        // eltűnteti, vagy megjeleníti a hidden-div tartalmakat
        $("#"+elementId).slideToggle("normal");

        var btnSrc = $("#"+btn).attr('src');

        if ( btnSrc == '/admin/images/green-ico-right-arrow.png' ) {
            $("#"+btn).attr('src', '/admin/images/green-ico-down-arrow.png');
        } else {
            $("#"+btn).attr('src', '/admin/images/green-ico-right-arrow.png');
        }

    },
    fixed: function(btn, elementId) {
    	
        // eltűnteti, vagy megjeleníti a hidden-div tartalmakat
        var btnSrc = $("#"+btn).attr('src');
        
        if ( btnSrc == '/admin/images/ico-right-arrow.png' ) {
            $("#"+btn).attr('src', '/admin/images/ico-down-arrow.png');
            $("#"+elementId).css('display', 'block');
        } else {
            $("#"+btn).attr('src', '/admin/images/ico-right-arrow.png');
            $("#"+elementId).slideToggle("normal");
        }
    	
    }
    
    
};


// Egy mezőre fókuszál
var focusfield = { 
    targetId: '',
    backCol: '',
    textCol: '',
    focus: function(elementId) {
        
        this.targetId = $("#"+elementId).get(0); 
        
        this.backCol = this.targetId.style.backgroundColor;
        this.textCol = this.targetId.style.color;
        
        this.targetId.style.backgroundColor = '#dbdbdb';
        this.targetId.style.color           = '#000';
        
    },
    blur: function(elementId) {
        
        this.targetId = $("#"+elementId).get(0); 
    
        this.targetId.style.backgroundColor = this.backCol;
        this.targetId.style.color           = this.textCol;
        
    }
};

// color picker beállítása // 
var picker = {
    
    putPicker: function(target) {
        
        $('#'+target).ColorPicker({
            onSubmit: function(hsb, hex, rgb, el){
                $(el).val(hex);
                $(el).ColorPickerHide();
            },
            onBeforeShow: function(){
                $(this).ColorPickerSetColor(this.value);
            }
        }).bind('keyup', function(){
            $(this).ColorPickerSetColor(this.value);
        });
        
    }
};

/**
 * richtext inicializálása
 * @param string lang Nyelv meghatározása
 * @param string target A textarea id neve
 * @param int w Szélesség meghatározása
 * @param int h magasság meghatározása  
 */

var richtext = {
    ini: function(lang, target, w, h){
        tinyMCE.init({
            theme: "advanced",
            mode: "exact",
            elements: target,
            skin : "o2k7",
            language : lang.substr(0,2),
            content_css : "../projectSetup/tinymce.css",
            plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
            theme_advanced_toolbar_location: "top",
            theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,forecolor,backcolor",
            theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
            theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,blockquote,pagebreak,|,insertfile,insertimage",
            height: h,
            width: w,
            file_browser_callback: "myFileBrowser",
            entity_encoding : "raw",
            relative_urls : false,
            convert_urls : false
        });
    },
    iniFull: function(lang, target, w, h){
        tinyMCE.init({
            theme: "advanced",
            mode: "exact",
            elements: target,
            skin : "o2k7",
            language : lang.substr(0,2),
            content_css : "../projectSetup/tinymce.css",
            plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
            theme_advanced_toolbar_location: "top",
            theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,forecolor,backcolor",
            theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
            theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,blockquote,pagebreak,|,insertfile,insertimage",
            height: h,
            width: w,
            file_browser_callback: "myFileBrowser",
            entity_encoding : "raw",
            relative_urls : false,
            convert_urls : false
        });
    }
};

/**
 * A TinyMce alkalmazás megnyitja a fileBrowsert
 */
function myFileBrowser (field_name, url, type, win) {

    var cmsURL = "/frameWork/fileManager/filemanager.php"; 
    var searchString = '?fn='+field_name+"&type=tinymce";
    
    window.open(cmsURL+searchString, 'win', 'left=20, top=20, width=540, height=500, menubar=0, toolbar=0, resizable=0, scrollbars=1, location=0, status=0, directories=0');

    return false;
    
}

/**
 * Filemanager megnyitása külső alkalmazásból
 */
var fileManager = {

    open: function(targetId) {

        var cmsURL = "/frameWork/fileManager/filemanager.php?fn="+targetId+"&type=field";
        
        window.open(cmsURL, 'fileManager', 'left=20, top=20, width=540, height=500, menubar=0, toolbar=0, resizable=0, scrollbars=1, location=0, status=0, directories=0');

    },
    clearField: function(targetId) {

        $("#"+targetId).val("");

    }

};


/**
 * Recaptcha beállítások
 */
var RecaptchaOptions = {

    theme : 'white'

};


/**
 * Metatags and friendly urls
 */
var meta = {

    // check friendly url
    chkFriendly: function(target, host, uniqueid) {

        $("#preloader").show();

        $.ajax({
            type: "POST",
            cache: false,
            url: "/frameWork/metaData/metaData.inc.php",
            data: "setFriendly=1&frUrl="+$('#'+target).val(),
            success: function(html) {

                var str = jQuery.trim(html);

                $('#'+target).val(str);

                $.ajax({
                    type: "POST",
                    cache: false,
                    url: "/frameWork/metaData/metaData.inc.php",
                    data: "chkFriendly=1&frUrl="+str,
                    
                    success: function(img) {
                        var lnk = 'http://'+host+'/'+str;
                        $('#'+target+'_img').html(img);
                        $('#'+target+'_msg').html('<a href="'+lnk+'" target="_blank">'+lnk+'</a>');
                        $("#preloader").hide();
                    }
                });

            }
        });

    }

};


/**
 * messages from ajax
 * messager.sendMsg('type', 'text');
 * type: success, error
 * msg: 'message text string'
 */
var messager = {

    // check friendly url
    sendMsg: function(msgType, msgTxt) {

        var msgHtml =
        "<table width=\"100%\" border=\"0\">"
        +"<tr>"
        +"<td width=\"15\"><img src=\"/admin/images/"+msgType+".png\" style=\"float: left;\" /></td>"
        +"<td>"+msgTxt+"</td>"
        +"</tr>"
        +"</table>";

        $("#system-messages-container").html("").append(msgHtml);
        
        $("#system-messages-window").slideDown('normal');
        
        setTimeout("$('#system-messages-window').slideUp('normal')", 6500);

    }

};

/**
 * Értékek validálására szolgáló függvénytár
 */
var validator = {

    /**
     * Számok validálása egész vagy lebegőpontos
     * @param str
     * @return bool
     */
    isNum: function(str) {

        if (isNaN(str)) {

            return false;

        } else {

            return true;

        }

    },
    /**
     * E-mail cím helyességének ellenőrzése
     * @param str
     * @return bool
     */
    isEmail: function(str) {

        var emailReg = new RegExp(/^([A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4})?$/i);
        return emailReg.test(str);

    }

};

/**
 * Átalakít javascript tömböt PHP-val értelmezhető tömbre
 * @param a array
 * @eturn array
 */
function js_array_to_php_array(a) {

    var a_php = "";
    var total = 0;
    for (var key in a)
    {
        ++ total;
        a_php = a_php + "s:" +
        String(key).length + ":\"" + String(key) + "\";s:" +
        String(a[key]).length + ":\"" + String(a[key]) + "\";";
    }
    a_php = "a:" + total + ":{" + a_php + "}";
    return a_php;
        
}

/**
 * MODAL WINDOW. Preloader ablakot helyez ki a publikus oldalra
 */
var publicPreloader = {

    // check friendly url
    show: function() {

        $('body div:first').before('<div id="publicPreloader"><div id="publicPreloaderContent"><img src="/projectSetup/images/preloader.gif" alt="Preloading"/></div></div>');

    },
    hide: function() {

        $('#publicPreloader').remove();

    }

};

// módosítja a nyelvi beállítást
function changeLanguage() {
    var newLangId = $('#changeSystemLang').val()
    $("#preloader").show();
    $.ajax({
        type: "POST",
        cache: false,
        url: "/admin/modules/changeLanguage/changeLanguage.inc.php",
        data: "langId="+newLangId,
        success: function() {
            location.reload(true);
        }
    });
}

/**
 * Egy modal ablakot dob be, amivel a felhasználó engedélyezhet egy form
 * submitolását, vagy visszavonhatja azt.
 * @param divId
 * @param formId
 * @param cancelBtnName
 * @param confirmBtnName
 * @return void
 */
function setConfirmModal(divId, formId, cancelBtnName, confirmBtnName) {

    var btns = {};
    btns[confirmBtnName] = function(){
        $('#'+formId).submit();
        $("#"+divId).dialog("close");
    };
    btns[cancelBtnName] = function(){
        $("#"+divId).dialog("close");
    };

    $( "#"+divId ).dialog({
        resizable: true,
        maxHeight: 300,
        maxWidth: 350,
        minWidth: 250,
        modal: true,
        buttons: btns
    });
    
};
