﻿
var MvClasseElementiSubmit = "mvAjaxBtn";
var MvClasseElementiSpinner = "spinnerLoading";
var AbsolutePath = "";
var AdvEditorsLang = "";
function inizializza() {
    var js = /f\.js(\?.*)?$/;
    //alert("init");
    $$('head script[src]').findAll(function(s) {
        return s.src.match(js);
    }).each(function(s) {
        //alert(s.src);
        AbsolutePath = s.src.replace(js, '');
        //alert(AbsolutePath);
    });

}
function getAbsolutePath() {
    var outS = "";
    var js = /f\.js(\?.*)?$/;
    $$('head script[src]').findAll(function(s) {
        return s.src.match(js);
    }).each(function(s) {
        //alert(s.src);
        outS = s.src.replace(js, '');

        //alert(AbsolutePath);
    });
    //alert(outS);
    return outS;
}
function getInstallationPath() {
    var outS = "";
    var js = /scripts\/mv\/f\.js(\?.*)?$/i;
    $$('head script[src]').findAll(function(s) {
        return s.src.match(js);
    }).each(function(s) {
        outS = s.src.replace(js, '');
    });
    return outS;
}
function aggiungiSpinner(el) {


    var newI = new Element('img');
    newI.writeAttribute('class', MvClasseElementiSpinner + ' hidden');
    newI.writeAttribute('src', AbsolutePath + 'images/spinner.gif');
    newI.writeAttribute('alt', 'Loading');
    newI.writeAttribute('title', 'Loading');

    el.insert({ 'after': newI });
}
function rimuoviSpinner() {
    //$('spinnerLoading').remove();
    //$('spinnerLoading').addClassName('hidden');
}
function mostraSpinner(form) {
    form.select('.' + MvClasseElementiSpinner).each(function(el) {
        //alert("ciao");
        el.removeClassName('hidden');
    });
}
function mostraSpinnerEl(event) {
    var el = Event.element(event);
    // risalgo su al primo elemento di tipo MvClasseElementiSubmit
    var parent = el.up();
    var cName = MvClasseElementiSubmit; //.substr(1);
    while (parent && !parent.hasClassName(cName)) {
        parent = parent.up();
    }

    // cerco l'elemento spinner
    if (parent.next().hasClassName(MvClasseElementiSpinner)) {
        parent.next().removeClassName('hidden');
    }

}

function nascondiSpinner(form) {
    form.select('.' + MvClasseElementiSpinner).each(function(el) {
        el.addClassName('hidden');
    });

}

function inserisciSpinners() {
    $$('.' + MvClasseElementiSubmit).each(function(el) {
        if (typeof el.down('input') !== 'undefined')
            if (el.down('input').hasClassName('mvNOAjax')) {
            //alert("escludo");
            return;
        }
        //alert(el);
        aggiungiSpinner(el);
    });
}
function rimuoviSpinners() {
    $$('.' + MvClasseElementiSpinner).each(function(el) {
        el.remove();
    });
}
function agganciaSceltaLingua() {
    //alert(getInstallationPath());
    $('InterfaceLanguage').observe('change', cambiaLingua);

}
function cambiaLingua(event) {
    //alert(Form.Element.getValue($('InterfaceLanguage')));
    var lingua = Form.Element.getValue($('InterfaceLanguage'));

    location.href = getInstallationPath() + "?lang=" + lingua;
}

//var mces = [];
//var nMces = 0;
function toggleAdvEd(a, txtAreaName) {
    Element.hide(a);

    var simpleEd = {
        mode: "exact",
        theme: "advanced",
        theme_advanced_buttons1: "bold,italic,underline,link,unlink,bullist,blockquote,undo,|,justifyleft,justifycenter,justifyright,justifyfull",
        theme_advanced_buttons2: "",
        theme_advanced_buttons3: ""
        //theme: "simple"
        , width: '100%'
        , height: '400'
        , language: AdvEditorsLang
        , plugins: "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras"
    };
    var advEd = {
        mode: "exact",
        theme: "advanced"
        , theme_advanced_disable: "help,image"
        , language: AdvEditorsLang
        , width: '100%'
        , height: '400'
        , plugins: "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras"
    };


    var txtArea = $(txtAreaName);
    if (txtArea.hasClassName('mceAdvanced')) {
        new tinymce.Editor(txtAreaName, advEd).render();
        //mces[nMces] = txtAreaName;
    }
    else if (txtArea.hasClassName('mceSimple')) {
        new tinymce.Editor(txtAreaName, simpleEd).render();
        //mces[nMces] = txtAreaName;
    }
    //nMces++;
}

function initAdvEditorsLinks(lang) {
    AdvEditorsLang = lang;
    $$('a.advEdLink').each(function(el) {
        el.observe('click', manageAdvEdLinkClick);
    });

}
function initImgMgrLinks() {
    $$('.imgMgrLink a').each(function(el) {
        el.observe('click', manageImgMgrLinkClick);
    });
}
function manageAdvEdLinkClick(event) {
    Event.stop(event);
    var el = Event.element(event);
    var txtArea = el.up().next('textarea');
    toggleAdvEd(el, txtArea.readAttribute('id'));

}

function manageImgMgrLinkClick(event, theTitle) {
    Event.stop(event);

    var w = getPopWindowSize('w');
    var h = getPopWindowSize('h');

    //alert(w + "-" + h);
    var el = Event.element(event);
    var href = el.readAttribute('href');
    var href1 = href.toQueryParams();

    //"?n={0}&amp;f={1}&amp;v={2}#TH_{3}";
    // ho fino a v=
    var form = $('EditForm');
    if (form == null)
        form = $('aspnetForm');


    var actValue = Form.Element.getValue(form[href1.f]);
    //alert(actValue);
    var th = "TH_" + StringToFriendlyHtmlID(actValue);
    //alert(th);
    var urlTo = href + actValue + "#" + th;
    //alert(urlTo);
    var win = new Window({ className: "alphacube",
        title: theTitle,
        width: w, height: h,
        recenterAuto: true, destroyOnClose: true, minimizable: false,
        maximizable: false,
        url: urlTo, showEffectOptions: { duration: .5 },
        onClose: function(win) { updateImageFieldValue(win, href1.f); }
    });

    win.showCenter(true);
    //var theTitle = title;  //el.readAttribute('title');
    //Modalbox.show(href, { title: theTitle, width: w, height: h });
    //Modalbox.show(href, { width: '80%', height: 500 });

}

function StringToFriendlyHtmlID(s) {
    // ID and NAME tokens must begin with a letter ([A-Za-z]) 
    // and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":")

    var outS = "a" + s.replace(/ /g, '_');
    //alert(outS);
    return outS.gsub(/[^a-zA-Z0-9-_:]/, function(match) {
        //alert(match);
        return "-" + match[0].charCodeAt(0);
    });
}
function updateImageFieldValue(win, field) {
    if (win.chosenImage == null)
        return;
    var form = $('EditForm');
    if (form == null)
        form = $('aspnetForm');

    //alert(win.chosenImage);
    //var el = win.getContent().contentDocument.getElementById('fileNameLabel');


    var newValue = win.chosenImage;  //el.innerHTML;
    Form.Element.setValue(form[field], newValue);

    //    var a = form[field].next().down('a');
    //    var href = a.readAttribute('href');
    //    var primaParte = href.substr(0, href.lastIndexOf("?"));
    //    href = href.toQueryParams();
    //    href.v = newValue;

    //    var outS = "";
    //    for (var el in href) {
    //        outS += el + "="+ href[el] + "&";
    //    }
    //    outS = outS.substr(0, outS.length - 1);
    //    a.writeAttribute('href', primaParte + "?" + outS);


}

function updateTinyMces() {
    tinyMCE.triggerSave();

}

function showDetailView(event) {
    Event.stop(event);
    var el = Event.element(event);
    var href = el.readAttribute('href');

    //alert(href);
    var w = getPopWindowSize('w');
    var h = getPopWindowSize('h');
    var theTitle = "";
    var win = new Window({
        className: "alphacube",
        title: theTitle,
        width: w, height: h,
        recenterAuto: false, destroyOnClose: true, minimizable: false,
        maximizable: false,
        url: href,
        showEffectOptions: { duration: .5 }
    });


    win.showCenter(true);

}

function getPopWindowSize(sizeType) {
    var w = document.body.clientWidth;
    var h = document.body.clientHeight;
    w = parseInt(w * .8);
    h = parseInt(h * .8);
    var minW = 600;
    var minH = 500;
    if (!w || w < minW)
        w = minW;
    if (!h || h < minH)
        h = minH;

    if (sizeType == 'w')
        return w;
    else
        return h;
}

function PopupPic(url) {
    //alert(url);
    Lightview.show({
        href: url,
        rel: 'image'

    });

}


inizializza();
