
var timers = Array ();

Evonux.Control = {}


/**
 * Display message 
 */
Evonux.Control.showMsg = function (prefix, text)
{    
    $('msg-' + prefix).innerHTML = text;
    $('msg-box-' + prefix).style.display = "block";
}

/**
 * Reload a sorted list (grid)
 */
Evonux.Control.reloadList = function (prefix, params)
{
    var		frm = $('frm-' + prefix);

    Evonux.Page.get ('module=' + frm.module.value + '&action=getlist&update=1' + (params ? params : ''), 'list-' + prefix);
}

/**
 * Disable all inactive tabs in panel
 */
Evonux.Control.showTab = function (num, len)
{
    for (var i = 0; i < len; i++)
    {
	$('tab_' + i).removeClass ("active");
	$('pane_' + i).removeClass ("active");
    }
    $('tab_' + num).addClass ("active");
    $('pane_' + num).addClass ("active");
}

/**
 * Update checkbox hidden value
 */
Evonux.Control.updateCheckbox = function (chk)
{
    var		name;

    name = chk.name.substring (0, chk.name.length - 4);
    $(name).value = (chk.checked ? '1' : '0');
}

/**
 * User logout if message confirmed
 */
Evonux.Control.logout = function (msg)
{
    if (confirm (msg))
    {
	Evonux.Page.get ('module=user&action=logout');
    }
}

/**
 * Init all wysiwyg textareas
 */
Evonux.Control.initWysiwyg = function ()
{
	tinyMCE.init (
	{
	    /* Interface configuration */
	    document_base_url: U_ROOT + '/',
	    mode : "textareas",
	    editor_selector : "simple",
	    theme : "simple",
	    language : "fr",
	    content_css : U_ROOT + "/css/main.css",

	    /* Display */
	    width: "665",
	    height: "200"
	});
 
	tinyMCE.init(
	{
	    /* Interface configuration */
	    dialog_type: 'modal',
	    document_base_url: U_ROOT + '/',
	    mode : "textareas",
            editor_selector : "advanced",
            theme : "advanced",
            language : "fr",
            content_css : U_ROOT + "/css/main.css",

	    /* Display */
	    width: "665",
	    height: "400",

	    /* Cleanup */
	    cleanup_on_startup : true,
	    cleanup: true,

	    /* Plugins */
            plugins : "inlinepopups,contextmenu,save,advlink,advimage,style,layer,table,advhr,advimage,advlink,emotions,iespell,insertdatetime,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,visualchars,nonbreaking,xhtmlxtras,template",
            theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect,|,image,link,unlink,template",
            theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,unlink,anchor,cleanup,help,code,|,insertdate,inserttime,|,forecolor,backcolor,|,visualchars",
            theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
	    theme_advanced_blockformats : "p,div,h1,h2,h3,h4",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "bottom",		
            theme_advanced_resizing : true,
            extended_valid_elements : "iframe[src|width|height|name|align],a[name|class|href|target|title|onclick],img[class|src|border|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style],input[type|name|value|class|size|maxlength|onclick],object[width|height],param[name|value],embed[classid|codebase|width|height|align|src|type|allowfullscreen|flashvars]",

	    /* Advanced plugins */
	    external_link_list_url : U_ROOT + "/?module=tools&action=getWebpagesList&dyn=1",
            external_image_list_url : U_ROOT + "/?module=tools&action=getFilesList&dyn=1",
            template_external_list_url : U_ROOT + "/?module=tools&action=getTemplatesList&dyn=1",

            // URLs behavior
            relative_urls: false,
            convert_urls: false,
            document_base_url : U_ROOT + "/",
            remove_script_host: true
       });	
}

/**
 * Load WYSIWYG components
 */
Evonux.Control.loadWysiwyg = function ()
{
    $$('textarea.wysiwyg').each (function (el)
	{
	    tinyMCE.execCommand('mceAddControl', false, el.id);
	});
}

/**
 * Unload WYSIWYG components
 */
Evonux.Control.unloadWysiwyg = function ()
{
    $$('textarea.wysiwyg').each (function (el)
	{
	    tinyMCE.execCommand('mceRemoveControl', false, el.id);
	});
}

/**
 * Save all Wysiwyg buffers
 */
Evonux.Control.saveWysiwyg = function ()
{
    tinyMCE.triggerSave ();
}

/**
 * Get a radio group value
 */
Evonux.Control.getRadioValue = function (group)
{
    var		len = group.length;

    for (var i = 0; i < len; i++)
    {
	if (group[i].checked)
	    {
		return group[i].value;
	    }
    }
    console.log (group.name + " = " + group.value);

    return 0;
}

/**
 * Swap 2 items contents
 */

Evonux.Control.swapContents = function (div1, div2)
{
    var buffer = $(div1).innerHTML;
    $(div1).innerHTML = $(div2).innerHTML;
    $(div2).innerHTML = buffer;
}

/**
 * Make blink 
 */
Evonux.Control.blink = function (div, timer)
{
    if (!$(div))
    return;

    clearInterval (timers[timer]);
    $(div).style.visibility = ($(div).style.visibility == "hidden" ? "visible" : "hidden");
    timers[timer] = setInterval ("Evonux.Control.blink ('" + div + "', " + timer + ");", $(div).style.visibility == "visible" ? 1000 : 200);
}


/**
 * Upload file
 */

Evonux.Control.submitFile = function ()
{
    var		frm = $('frm-file');

    frm.submit ();
}
