/**
 *  NetGo.hu NetShop v3 Engine JS
 *  Copyright(c) NetGo.hu Kft. (http://www.netgo.hu)
 *  Version: 1.1
 */
$(document).ready(function(){
    $(".content_drop_down_close").each(function(){
        var hide='.content_drop_down_hide';
        if($(this).parent().children(hide).css('display')=='block') {
            $(this).data('show','yes');
        }
        else {
            $(this).data('show','no');
        }
        $(this).click(function(e){            
            if($(this).data('show')=='yes') {
                $(this).data('show','no');
                $(this).parent().children(hide).hide();
            }
            else {
                $(this).data('show','yes');
                $(this).parent().children(hide).show();
            }
            e.preventDefault();
        })
    });
});

function tabs(tabs_id,tabs_class,input_hidden,tabs_div,tabs_active,tab_selected,editor_hidden,effect)
{
    if (!tabs_class) tabs_class = 'tab_buttons';
    if (!input_hidden) input_hidden = 'active_tab';
    if (!tabs_div) tabs_div = 'tabs';
    if (!tabs_active) tabs_active = 'tabs_active';
    if (!tab_selected) tab_selected = 'tab_selected';
    if (!editor_hidden) editor_hidden = 'editor_type';

    var form = $('#'+$('#'+tabs_id).closest('form').attr('id'));
    var tab_input = form.find('input[name="'+input_hidden+'"]').val();

    if ($(tab_input).length > 0)
    {
        $(tab_input).addClass(tabs_active);
    }
    else
    {
        tab_input = '#'+form.find('.'+tabs_div+':first').attr('id');
        form.find('input[name="'+input_hidden+'"]').val(tab_input);
        $(tab_input).addClass(tabs_active);
    }

    //ie7-nél teljes útvonal kerül bele a href-be, nekünk csak a vége kell
    form.find('.'+tabs_class+' ul li a').each(function(){
        var this_href = $(this).attr('href').split('/');
        this_href = this_href[this_href.length-1];
        if (this_href == tab_input)
        {
            $(this).addClass(tab_selected);
        }
    });

    var editor_type = form.find('input[name="'+editor_hidden+'"]').val();
    var last_active_textarea = $(tab_input).find('.'+editorClass+':last').attr('id');
    if (editor_type === 'ckeditor')
    {
        $(tab_input).find('.'+editorClass).each(function(){
            //megkeressük az editorhoz tartozó hidden-t amiben a konfigurációk vannak eltárolva
            var ckreplace = form.find('input[name="editor_config_'+$(this).attr('id')+'"]').val();
            var config = new Object();
            ckreplace = ckreplace.split('|');
            //összeállítjuk a config-értékét
            $.each(ckreplace, function(index, value) { 
                value = value.split('::');
                config[value[0]] = value[1];
            });
            if (config['on'])
            {
                var onload_object = new Object();
                var onload_functions = config['on'].split('##');
                $.each(onload_functions,function(index, value){
                    value = value.split(':');
                    var value_array = value[1].split('->');
                    var fe = '';
                    var er = '';
                    if (value_array[1])
                    {
                        fe = value_array[0];
                        er = value_array[1];
                    }
                    else
                    {
                        fe = '';
                        er = value_array[0];
                    }
                    var dynamic_function = new Function(fe,"return "+er);
                    onload_object[value[0]] = dynamic_function;
                });
                config['on'] = onload_object;
            }
            //a toolbar értékéből még tömböt kell képezzünk
            var toolbar_array = config['toolbar'].split(',,');
            $.each(toolbar_array, function(index, value) { 
                if (value !== '/')
                {
                    toolbar_array[index] = value.split(',');
                }
            });
            config['toolbar'] = toolbar_array;
            //mivel string az értéke át kell alakítani boolen tipusra
            if (config['entities'] === 'false')
            {
                config['entities'] = false;
            }
            //létrehozzuk az editort a megadott beállításokkal
            CKEDITOR.replace($(this).attr('id'),config);
        });
    }
    else if (editor_type === 'tiny_mce')
    {
        $(tab_input).find('.'+editorClass).each(function(){
            var tinymce_config = form.find('input[name="editor_config_'+$(this).attr('id')+'"]').val();
            var config = new Object();
            if (tinymce_config)
            {
                tinymce_config = tinymce_config.split(',,');
                $.each(tinymce_config, function(index,value){
                    value = value.split(':');
                    config[value[0]] = value[1];
                });
            }
            if (!tinyMCE.get($(this).attr('id')))
            {
                tinyMCE.init(config);
            }
        });
    }

    //megkeressük melyik tab-ra lett kattintva
    $('#'+tabs_id).find('ul li a').each(function(){
        $(this).click(function(e){
            e.preventDefault();
            //Ha megy valamilyen effect pl.: slideDown akkor addig amíg nem fejeződik be nem megyünk át másik tab-ra
            if (form.data('effecting') !== 1)
            {
                //ie7-nél teljes útvonal kerül bele a href-be, nekünk csak a vége kell
                var tab_href = $(this).attr('href').split('/');
                tab_href = tab_href[tab_href.length-1];
                form.find('.'+tab_selected).removeClass(tab_selected);

                form.bind('keypress', function(e) {
                    if(e.keyCode==13){
                        $(this).submit( function(ev){
                            ev.preventDefault();
                        });
                    }
                });

                $(this).addClass(tab_selected);
                var new_tab = $(tab_href);
                var old_tab = $(form.find('input[name="'+input_hidden+'"]').val());
                if (!(form.find('input[name="'+input_hidden+'"]').val()))
                {
                    old_tab = $(form.find('.'+tabs_active));
                }
                if (form.find('input[name="'+input_hidden+'"]').val() !== tab_href)
                {
                    form.find('input[name="'+input_hidden+'"]').val(tab_href);
                    //tab ablak megjelenítése effektel
                    switch(effect[0])
                    {
                        case 'animate' :
                            old_tab.hide();
                            form.data('effecting',1);
                            new_tab.show();
                            new_tab.css('position','relative');
                            new_tab.css('left','-'+new_tab.width()+'px');
                            new_tab.animate({
                                "left": "0px"
                            },effect[1], function() {
                                form.data('effecting',0)
                            });
                        case 'slide' :
                            old_tab.hide();
                            form.data('effecting',1);
                            new_tab.slideDown(effect[1],function(){
                                form.data('effecting',0)
                            });
                        case 'fade' :
                            old_tab.hide();
                            form.data('effecting',1);
                            new_tab.fadeIn(effect[1],function(){
                                form.data('effecting',0)
                            });
                        default :
                            old_tab.removeClass(tabs_active);
                            new_tab.addClass(tabs_active);
                    }
                    if (editor_type === 'ckeditor')
                    {
                        new_tab.find('.'+editorClass).each(function(){
                            //megkeressük az editorhoz tartozó hidden-t amiben a konfigurációk vannak eltárolva
                            var ckreplace = form.find('input[name="editor_config_'+$(this).attr('id')+'"]').val();
                            var config = new Object();
                            ckreplace = ckreplace.split('|');
                            //összeállítjuk a config-értékét
                            $.each(ckreplace, function(index, value) { 
                                value = value.split('::');
                                config[value[0]] = value[1];
                            });
                            if (config['on'])
                            {
                                var onload_object = new Object();
                                var onload_functions = config['on'].split('##');
                                $.each(onload_functions,function(index, value){
                                    value = value.split(':');
                                    var value_array = value[1].split('->');
                                    var fe = '';
                                    var er = '';
                                    if (value_array[1])
                                    {
                                        fe = value_array[0];
                                        er = value_array[1];
                                    }
                                    else
                                    {
                                        fe = '';
                                        er = value_array[0];
                                    }
                                    var dynamic_function = new Function(fe,"return "+er);
                                    onload_object[value[0]] = dynamic_function;
                                });
                                config['on'] = onload_object;
                            }
                            //a toolbar értékéből még tömböt kell képezzünk
                            var toolbar_array = config['toolbar'].split(',,');
                            $.each(toolbar_array, function(index, value) { 
                                if (value !== '/')
                                {
                                    toolbar_array[index] = value.split(',');
                                }
                            });
                            config['toolbar'] = toolbar_array;
                            //mivel string az értéke át kell alakítani boolen tipusra
                            if (config['entities'] === 'false')
                            {
                                config['entities'] = false;
                            }
                            //létrehozzuk az editort a megadott beállításokkal
                            CKEDITOR.replace($(this).attr('id'),config);
                        });
                        //megszüntetjük a régi tabon lévő ckeditorokat
                        old_tab.find('.'+editorClass).each(function()
                        {
                            if (CKEDITOR.instances[$(this).attr('id')] !== undefined)
                            {
                                CKEDITOR.instances[$(this).attr('id')].destroy();
                            }
                        });
                    }
                    else if (editor_type === 'tiny_mce')
                    {
                        new_tab.find('.'+editorClass).each(function(){
                            var tinymce_config = form.find('input[name="editor_config_'+$(this).attr('id')+'"]').val();
                            var config = new Object();
                            if (tinymce_config)
                            {
                                tinymce_config = tinymce_config.split(',,');
                                $.each(tinymce_config, function(index,value){
                                    value = value.split(':');
                                    config[value[0]] = value[1];
                                });
                            }
                            if (!tinyMCE.get($(this).attr('id')))
                            {
                                tinyMCE.init(config);
                            }
                        });
                        old_tab.find('.'+editorClass).each(function()
                        {
                            if (tinyMCE.get($(this).attr('id')) !== undefined)
                            {
                                tinyMCE.execCommand('mceRemoveControl', true, $(this).attr('id'));
                            }
                        });
                    }
                }
            }
        });
    });
}

function handle_editors(form_id,editor_hidden)
{
    if (!editor_hidden) editor_hidden = 'editor_type';
    var form = $('#'+form_id);
    var editor_type = form.find('input[name="'+editor_hidden+'"]').val();
    
    if (editor_type === 'ckeditor')
    {
        form.find('.'+editorClass).each(function(){
            //megkeressük az editorhoz tartozó hidden-t amiben a konfigurációk vannak eltárolva
            var ckreplace = form.find('input[name="editor_config_'+$(this).attr('id')+'"]').val();
            var config = new Object();
            ckreplace = ckreplace.split('|');
            //összeállítjuk a config-értékét
            $.each(ckreplace, function(index, value) { 
                value = value.split('::');
                config[value[0]] = value[1];
            });
            if (config['on'])
            {
                var onload_object = new Object();
                var onload_functions = config['on'].split('##');
                $.each(onload_functions,function(index, value){
                    value = value.split(':');
                    var value_array = value[1].split('->');
                    var fe = '';
                    var er = '';
                    if (value_array[1])
                    {
                        fe = value_array[0];
                        er = value_array[1];
                    }
                    else
                    {
                        fe = '';
                        er = value_array[0];
                    }
                    var dynamic_function = new Function(fe,"return "+er);
                    onload_object[value[0]] = dynamic_function;
                });
                config['on'] = onload_object;
            }
            //a toolbar értékéből még tömböt kell képezzünk
            var toolbar_array = config['toolbar'].split(',,');
            $.each(toolbar_array, function(index, value) { 
                if (value !== '/')
                {
                    toolbar_array[index] = value.split(',');
                }
            });
            config['toolbar'] = toolbar_array;
            //mivel string az értéke át kell alakítani boolen tipusra
            if (config['entities'] === 'false')
            {
                config['entities'] = false;
            }
            //létrehozzuk az editort a megadott beállításokkal
            CKEDITOR.replace($(this).attr('id'),config);
        });
    }
    else if (editor_type === 'tiny_mce')
    {
        form.find('.'+editorClass).each(function(){
            var tinymce_config = form.find('input[name="editor_config_'+$(this).attr('id')+'"]').val();
            var config = new Object();
            if (tinymce_config)
            {
                tinymce_config = tinymce_config.split(',,');
                $.each(tinymce_config, function(index,value){
                    value = value.split(':');
                    config[value[0]] = value[1];
                });
            }
            tinyMCE.init(config);
        });
    }
}

function alert_window(content,style,right,bottom,fadein,delay,speed)
{
    if (!right) right = 50;
    if (!bottom) bottom = 50;
    if (!fadein) fadein = 1000;
    if (!delay) delay = 1000;
    if (!speed) speed = 2000;
    !style ? style = 'alert_window' : style;

    var $new_alert_window = $('<div class="'+style+'" style="right: '+right+'px;bottom: '+bottom+'px;">'+content+'</div>');
    $('body').append($new_alert_window);
    $($new_alert_window).fadeIn(fadein);
    $($new_alert_window).delay(delay).animate({
        "bottom": $(window).height()+"px"
    },speed, function() {
        $(this).remove();
    });
}

//bármilyen html elemet a képernyő közepére igazít
jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

//1. paraméter a title
//2. paraméter a form id-je
//3. paraméter a hidden input mezők id-je vesszővel elválasztva
//4. paraméter a hidden input mezők értéke vesszővel elválasztva
//5. paraméter a dialog ablakba írt szöveg
//6. paraméter a dialog ablak igen gombja,id-nek a "go_dialog_ok"-ot kell adni
//7. paraméter a dialog ablak nem gombja,id-nek a "go_dialog_no"-ot kell adni
//8. paraméter a dialog ablak szélességét lehet megadni
//9. paraméter a az ablak id-je (ha meg van adva akkor ajaxosan töltjük a tartalmat)
//10. paraméter a POST vagy GET beállítása
function dialog(title,form,hidden_id,hidden_value,text,ok_button,no_button,width,window_id,method)
{
    if ($('#dialog').length == 0)
    {
        $windowContainer = $('<div id="dialog" class="dialog window-container"></div>');
        $titleBar = $('<div class="window-titleBar"></div>');
        $titleBar.append('<div class="window-titleBar-leftCorner"></div>');
        $titleBarContent = $('<div class="window-titleBar-content"><div class="window-titleBar-padding">' + title + '</div></div>');
        $titleBar.append($titleBarContent);
        $titleBar.append('<div class="window-titleBar-rightCorner"></div>');
        $windowContent = $('<div class="window-content"><div class="window-padding"></div></div>');
        $windowStatusBar = $('<div class="window-statusBar"></div>');
        $windowContainer.append($titleBar);
        if (text) $windowContent.append(text);
        if (ok_button) $windowContent.append(ok_button);
        if (no_button) $windowContent.append(no_button);
        if (width) $windowContainer.css('width',width+'px');
        $windowContainer.append($windowContent);
        $windowContainer.append($windowStatusBar);
        $('body').append($windowContainer);
        //a dailog ablakot középre igazítjuk
        $windowContainer.center();
        $('#'+form).submit( function(ev){
            ev.preventDefault();
        });
        $('#dialog_ok').click(function(){
            if (hidden_id.length > 0 && hidden_value.length > 0)
            {
                hidden_id = hidden_id.split(',');
                hidden_value = hidden_value.split(',');
                $.each(hidden_id,function(index, value)
                {
                    if ($('#'+value).length > 0)
                    {
                        $('#'+value).val(hidden_value[index]);
                    }
                });
            }
            if (window_id) //AJAX
            {
                method=(method=='POST'?true:false);
                $.load_content(window_id,method);
                $windowContainer.remove();
            }
            else
            {
                $('#'+form).unbind('submit').submit();
            }

        })
        $('#dialog_no').click(function(){
            $('#dialog').remove();
            $('#'+form).unbind('submit');
        })
    }
}
$('a').click(function(event){
    event.preventDefault();
});

function handle_enter(form_id,window_id,method,hidden_ok)
{
    $('#'+form_id).bind('keypress', function(e) {
        if(e.keyCode==13){
            $('#'+form_id).submit( function(ev){
                ev.preventDefault();
                if ($('#'+hidden_ok).length > 0)
                {
                    $('#'+hidden_ok).val(1);
                }
                if (window_id)
                {
                    method=(method=='POST'?true:false);
                    $.load_content(window_id,method,form_id);
                }
            });
        }
    });
}

function select_checkbox(id,name,uniform)
{
    var form=$('#'+id);

    name=name+'[]';

    if(form.data(name) === undefined)
    {
        form.data(name,1);
    }

    form.find('input[name="'+name+'"]').each(function(){
        if (form.data(name) === 1)
        {
            if (uniform.length > 0)
            {
                $(this).attr('checked', true);
            }
            $(this).parent('span').addClass('checked');
        }
        else
        {
            if (uniform.length > 0)
            {
                $(this).attr('checked', false);
            }
            $(this).parent('span').removeClass('checked');
        }
    });
    if(form.data(name) === 1)
    {
        form.data(name,0);
    }
    else
    {
        form.data(name,1);
    }
}

function goadmin_window_open(link_id)
{

    var thisPreId = link_id.substr(0,4);
    var thisId = link_id.substr(4);
    var thisTitle = $('#'+link_id).attr('rel');
    if($("#window_" + thisId).length == 0)
    {
        open_window(thisId,0,thisTitle,0,thisPreId);
    }
    else
    {
        handle_window("window_"+thisId,thisPreId);
    }
}

function file_upload(form_id,file,window_id)
{
    $loader_bg = $('<div id="fileupload_loader_bg" ></div>');
    $loader_img = $('<div id="fileupload_loader" ></div>').center();
    $loader_bg.append($loader_img);
    $('body').prepend($loader_bg);
    var form = $('#'+form_id);
    form.get(0).setAttribute("action",file);
    form.append('<iframe onload="form_restore(\''+form_id+'\',\''+window_id+'\');" id="upload_iframe" name="upload_iframe" src="" style="width:0;height:0;border:0px solid #fff;"></iframe>');
    form.append('<input type="hidden" id="form_name" name="form_name" value="'+form_id+'">');
    form.attr('target','upload_iframe');
    form.submit();
}

function form_restore(form_id,window_id)
{
    setTimeout(
        function(){
            var form = $('#'+form_id);
            form.attr('target','');
            form.find('#form_name').remove();
            $('#fileupload_loader_bg').remove();
            $.load_content(window_id,true);
        },1000);
}

function multi_tags_load(form_id,url,tags,method,complete)
{
    if ($("#"+form_id).length)
    {
        method=(method=='GET'?'GET':'POST');

        $.ajax({
            type: method,
            data: $('#'+form_id).serialize(),
            url: url,
            dataType: "html",
            success: function(data) {                   
                data = '<div>'+data+'</div>';
                $.each(tags, function(to,from) {
                    var from_value = '';
                    $.each($(data).find(from),function()
                    {
                        from_value +=$(this).html();
                    });                    
                    $(to).html(from_value);
                });
            },
            complete: function(){
          
              if(complete){        
                eval(complete);
              }
            }
        });
    }
}
function content_slide(id,type,time)
{
    $obj = $('#'+id);
    
    type=(!type?'up':type);
    time=(!time?500:time);
    
    if (type=='up')
    {
        $obj.slideUp(time);
    }
    else
    {
        $obj.slideDown(time);        
    }
}
