/******************************************************************************
 * authors: Jan "Hlava" Hlavicka (avaloh@avaloh.cz)
 * created: 10.2.2008
 * last update: 18.5.2009
 * description: basic function of cmsvalham JS kernel (PREFIX: vh_)
 * ***************************************************************************/


function vh_confirm(label) {
    return confirm(label);
}

function vh_oe_submit(name, frm, conf, action) {
    if (conf && !vh_confirm(conf)) return false;
    var frmo = document.getElementById(frm);
    var hid = document.createElement("input");
    if (name) {
        hid.setAttribute("type", "hidden");
        hid.setAttribute("name", "form_type");
        hid.setAttribute("value", name);
    }
    if (action) frmo.setAttribute("action", action);
    frmo.appendChild(hid);
    frmo.submit(name);
    return false;
}

function vh_uploadFilesAddField(link) {
    count_of_upload++;
    var form = link.parentNode;
    var inputs = form.getElementsByTagName('input');

    var newinput = document.createElement('input');
    newinput.type = 'file';
    newinput.name = 'file' + count_of_upload;

    var br = document.createElement('br');

    link.parentNode.removeChild(link);

    form.insertBefore(newinput, inputs[0]);
    form.insertBefore(link, inputs[1]);
    form.insertBefore(br, inputs[1]);

    return false;
}


function jsTranslate(name) {
  var locale = new Object;
  locale.loading = "Nahrávám";
  locale.loadingPleaseWait = "Nahrávám data, prosím čekejte...";
  locale.confirmDeleteImage = "Opravdu chcete smazat obrázek?";
  locale.needFillTypedefName = "Musíte vyplnit název nového pole.";
  locale.orderSaved = 'Změna pořadí byla uložena';
  locale.gallery_fnChanged = 'Obrázek byl přejmenován';
  return locale[name];
}


function vhEffChangeTo(num) {
vheffactual = num;
clearTimeout(vh_efftimer);
$('#vh_eff_item_'+num).fadeIn("slow", function(){
    $('#eff_buttons').find('.active').removeClass('active');
    $($('#eff_buttons').find("div")[num]).addClass('active');
    $('.valham_effect_active').fadeOut("slow", function (){
        $('#vh_eff_item_'+num).attr('class','valham_effect_active');
        vh_efftimer = setTimeout(vh_effect_slideshow, vhefftimeperiod);
    }).attr('class',
    'valham_effect_inactive');
});
//$('#eff_buttons:active').attr('class', 'vh_eff_but inactive');
}


function vh_effect_slideshow() {
clearTimeout(vh_efftimer);
var max = $('#eff_buttons').find("div").length;
if (max == 1) return;
vheffactual++;
if (vheffactual == max) vheffactual = 0;
vhEffChangeTo(vheffactual);
}


var ctg_newfielddef = 0;
function ctg_addNewField() {
var fld_name = $('#ctg_typedef_new_form').find('input')[0].value;
var fld_select = $('#ctg_typedef_new_form').find('select')[0].value;
if (!fld_name) {
alert(jsTranslate('needFillTypedefName'));
return false;
}
$('#ctg_typedef_new_form').fadeOut(function() {
$('#ctg_typedef_new_form').find('input')[0].value = '';
});

$('#ctg_typedef_nofields').fadeOut("fast");
$('#ctg_typedef_fields').show();

var hooks = $('.deffield_new_hook');
var tmp;
var ipts;
for (var i=0;i<hooks.length;i++) {
    tmp = $(hooks[i]).clone();
    $(tmp).removeClass('deffield_new_hook');
    tmp.removeAttr('style');
    if (i==0) {
        tmp.html('<a href="#">'+fld_name+'</a>');
    } else {
        ipts = tmp.find('input');
        $(ipts[0]).attr("value", fld_name);
        $(ipts[0]).attr("name", "ctg_new_fielddef_"+ctg_newfielddef);
        $(tmp.find('select')[0]).attr('name','ctg_typdef_field_type_'+ctg_newfielddef);
        $(tmp.find('select')[0]).attr('value',fld_select);
        $(ipts[1]).attr("name","ctg_imgd_"+ctg_newfielddef);
        $(ipts[2]).attr("name","ctg_cardd_"+ctg_newfielddef);
        ctg_newfielddef++;
    }
    $('#accordion').append(tmp);
}
$('#accordion').accordion("destroy");
$('#accordion').accordion();

return false;
}

function removeFromDefinition(elm) {
var d = elm.parentNode.parentNode.parentNode;
var p = d.parentNode;
var ds = $(p).find('div');
var index;
for (var i=0;i<ds.length;i+=8) {
    if (ds[i] == d) {
        index = i/8;
        break;
    }
}
p.removeChild(ds[i]);
p.removeChild($(p).find("h3")[index]);
$('#accordion').accordion("destroy");
$('#accordion').accordion();
}
function saveGalleryOrder(event, ui) {
    var divs = $("#gallery_sortable").find(".gallery_file_hp");
    var params = "";
    var tmp;
    for (var i=0;i<divs.length;i++) {
       tmp = $(divs[i]).text().trim();
       if (i>0) params += "&";
       params += "s_";
       params += i.toString();
       params += "=";
       params += tmp;
    }
    ajaxNoResponse("vh_module_gallery::saveSort", params);
    vh_gallery_admin_notify("orderSaved");
}

function vh_gallery_admin_notify(text) {
    var notdiv = document.createElement("div");
    $(notdiv).hide();
    $(notdiv).text(jsTranslate(text));
    $("#gallery_edit_notification_hook").append(notdiv);
    $(notdiv).fadeIn().delay(1600).fadeOut();
}

function vh_gallery_changeFileTitle(elm) {
    var fn = $(elm).attr("name");
    var value = $(elm).val();

    var params = "fn=";
    params +=fn;
    params +="&value=";
    params += value;
    ajaxNoResponse("vh_module_gallery::changeFileTitle", params);
    vh_gallery_admin_notify("gallery_fnChanged");
}

function changeLanguageTo(name,to) {
    var old = document.getElementById(name);
    var inputs = old.parentNode.getElementsByTagName("input");
    var pdiv = false;
    var ta = false;
    var nw = false;
    var nh = false;
    var tb = false;
    if (inputs.length < 1) {
        inputs = old.parentNode.parentNode.getElementsByTagName("textarea");
    }
    if (inputs.length < 1) {
        inputs = old.parentNode.parentNode.getElementsByTagName("textarea");
        pdiv = true;
    }
    for (var i=0;i<inputs.length;i++) {
        // i supouse using style attribute only with wysiwyg editor
        if (pdiv || inputs[i].getAttribute("style")) {
            pdiv=true;
            if (inputs[i].parentNode.getAttribute("class") == "shown-language") {
                tb = inputs[i].parentNode.getElementsByTagName("table");
                nw = tb[0].style.width;
                nh = tb[0].style.height;
            }
            inputs[i].parentNode.setAttribute("class", "hidden-language");
        } else {
            inputs[i].setAttribute("class", "hidden-language");
        }
    }

    if (pdiv) {
        old.parentNode.setAttribute("class", "shown-language");
        tb = old.parentNode.getElementsByTagName("table");
        tb[0].style.width = nw;
        tb[0].style.height = nh;
    } else {
        old.setAttribute("class", "shown-language");
    }

    var n = document.getElementById("lang_"+name);

    var atag = n.parentNode.getElementsByTagName("a");
    for (var i=0;i<atag.length;i++) {
        atag[i].setAttribute("class", "choice");
    }

    n.setAttribute("class", "current");

    return false;
}

