/*
 * MAKE MULTILANGUAGE TREATMENT OF FORMS TRANSPARENT AND REFRESH CAPTCHA
 */


// On page load
$(document).ready(function(){
    var filters = new Array("input.multilanguage[type='text']", "select.multilanguage", "textarea.multilanguage");

    // Detect the presence of tinyMCE
    var tinyMCE_enabled = false;
    if (typeof tinyMCE != "undefined") {
       tinyMCE_enabled = true;
    }




    function switch_multilanguage_values(from, to) {
        toggle_multilanguage_values(from, 'store');
        toggle_multilanguage_values(to, 'get');
    }

    function get_multilanguage_index(language) {
        var lang_index = -1;
        var multilanguage_options = $("a.multilanguage").get();
        for (index = 0; index < multilanguage_options.length; index++) {
            option = multilanguage_options[index];
            if (option.rel == language) {
                lang_index = index;
            }
        }

        if (lang_index == -1) {
            alert("Language index for language not found: " + language)
        } else {
            return lang_index;
        }
    }

    function toggle_multilanguage_values(language, operation) {

        if (operation != 'store' && operation != 'get') {
            alert('toggle_multilanguage_values operation must be store or get');
        }

        var focused = false;
        lang_index = get_multilanguage_index(language);

        for (filter in filters) {
            if (!focused) {
                $(filters[filter]+':first').focus();
                focused = true;
            }

            // Cycling through all multi language TEXT fields, and toggle contents
            var multilanguage_fields = $(filters[filter]).get();
            var tinyMCE_field = null;
            for (index = 0; index < multilanguage_fields.length; index++) {
                plain_field = multilanguage_fields[index]
                multilanguage_field = $("input[type='hidden'][name='" + plain_field.id + "_multilanguage[]']").get();

                if (tinyMCE_enabled) {
                    tinyMCE_field = tinyMCE.get(plain_field.id)
                    if (typeof tinyMCE_field == "undefined") {
                        tinyMCE_field = null;
                    }
                }



                if (operation == 'store') {
                    // Store current value
                    if (tinyMCE_field == null)
                        multilanguage_field[lang_index].value = plain_field.value
                    else
                        multilanguage_field[lang_index].value = tinyMCE_field.getContent()
                    $("a.multilanguage[rel='" + language + "']").attr("class", "multilanguage");
                } else {
                    // Put new value
                    if (tinyMCE_field == null)
                        plain_field.value = multilanguage_field[lang_index].value
                    else
                        tinyMCE_field.setContent(multilanguage_field[lang_index].value)
                    $("a.multilanguage[rel='" + language + "']").attr("class", "multilanguage multilanguage_active");
                }
            }
        }

    }




    // Assigning function to click on multilanguage link
    $('a.multilanguage').click(function(){
        // What language was chosen by user?
        var chosen_language = this.rel;
        // What is the current language?
        var current_language = $("a.multilanguage_active").attr("rel");
        switch_multilanguage_values(current_language, chosen_language);
        return false;
    });

    // Assigning function to click on submit multilanguage form
    $('input[type="submit"].multilanguage').click(function(){
        // Store current language values before submitting form
        var current_language = $("a.multilanguage_active").attr("rel");
        toggle_multilanguage_values(current_language, 'store');
        return true;
    });
    
    // When page loads, fill in current values if needed
    if ($("a.multilanguage").get().length > 0) {
        toggle_multilanguage_values($("a.multilanguage_active").attr("rel"), 'get');
        
        for (filter in filters) {
            // Cycling through all multi language TEXT fields, and mark their labels (visual thing)
            $(filters[filter]).prev('label').addClass('multilanguage');
        }
    }
    
    
    captcha = $("img[class='captcha']");
    captcha.css({cursor: "pointer"});
    captcha.click(function(){
        old = this.src
        base = old.substring(0, old.lastIndexOf(".")+4);
        this.src = base + "?" + Math.round(Math.random()*100000);
    });    


    $("input[type='submit']").click(function(){
        block_screen();
        return true;
    }); 


    popups = $("a.popup")

    popups.click(function(){
        window.open($(this).attr('href'));
        return false;
    });

    popups.css({ backgroundImage: "url(/templates/default/Default/LayoutManager/bin/popup_black.gif)", backgroundPosition: "right 0", backgroundRepeat: "no-repeat", paddingRight: "16px" });

}); 


/* Pre-load an "loading" image */
var loading_animation = "/templates/default/Default/LayoutManager/bin/loadingAnimation.gif";
loadedAnimation = new Image();// preload image
loadedAnimation.src = loading_animation;

/* Blocks the screen from user interaction */
function block_screen() {
    
    if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
        $("body","html").css({height: "100%", width: "100%"});
        $("html").css("overflow","hidden");
        if (document.getElementById("modal_iframe_hider") === null) {//iframe to hide select elements in ie6
            $("body").append("<iframe id='modal_iframe_hider'></iframe><div id='modal_overlay'></div>");
        }
    }else{//all others
        if(document.getElementById("modal_overlay") === null){
            $("body").append("<div id='modal_overlay'></div>");
        }
    }
    
    var userAgent = navigator.userAgent.toLowerCase();
    if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
        $("#modal_overlay").addClass("modal_overlay_mac_ff_bg");//use png overlay so hide flash
    }else{
        $("#modal_overlay").addClass("modal_overlay_bg");//use background and opacity
    }

    $("body").append("<div id='modal_load'><img src='"+loadedAnimation.src+"' /></div>");//add loader to the page

    $("#modal_modal").css({display:"block"}); //for safari using css instead of show
    $('#modal_load').show(15);//show loader
}    


/*
function addEvent(elm, evType, fn, useCapture) {
    if (elm.addEventListener) {
        elm.addEventListener(evType, fn, useCapture);
        return true;
    } else if (elm.attachEvent) {
        var r = elm.attachEvent('on' + evType, fn);
        return r;
    } else {
        elm['on' + evType] = fn;
    }
}
*/
