/**
* Inline vzdálená editace
*
* Knihovna pro umožnění inline editace na vzdáleném serveru
*
* @category Knihovny funkcí
* @copyright Copyright (c) 2016 Foxtrot Technologies s.r.o. (www.foxtrot.cz)
* @version 1.1, 2016-05-07
*
* Použití uživatelské
* ===================
*
* Stiskem shift+ctrl+alt+e se zapne/vypne editační mód
* Klikem na podsvícený objekt je zobrazeno menu s akcemi
*
* Použití programátorské
* ======================
*
* Instalace
* ---------
* 1) Celý adresář OEeditor musí být podadresářem rootu webu
* 2) V HEAD nalinkovat všechny JS v adresáři OEeditor
* 3) V HEAD nalinkovat CSS všechny v adresáři OEeditor
* 4) Na stránce umožnit showWait =
* a) v images mít obrázek wait_icon.gif
* b) na stránce div s ID "wait_icon_cont" a třídou "hidden"
*
* Programování
* ------------
* 1) V menu výběru objektu zobrazen atribut objektu NAME; pokud není pak ID
* 2) Atribut noOE (nemusí být hodnota) vynechá ze zpracování (stejné jako když není uvedeno ID)
* 3) Atribut noedit (nemusí být hodnota) zamezí volbu Upravit/Změnit
* 4) Atribut nodelete (nemusí být hodnota) zamezí volbu Smazat
* 5) Vložení šablony
* a) V adresáři OEedit/templates musí existovat textový soubor templates.def. Soubor je ve formátu JSON.
* b) Má-li se pro některý objekt na stránce nabíze volba vložení šablony, musí být v tomto souboru nadefinovány, které šablony se daného objektu týkají (jsou pro něj dostupné) - viz příklad níže
* c) Musí být v adresář OEedit/templates soubor s definicí šablony (text, který je přenesen do cílového objektu na stránce). Pokud se v textu vyskytuje řetězec %TEMPLATE_SEQUENCE_ID%, je nahrazen sekvenčním číslem unikátním pro výskyt vkládané šablony
*
* Příklad definičního souboru šablony:
* ------------------------------------
*
* {
* "ID_objektu_do_kterého_bude_vkládáno_viz_5.b_výše": {
* "id_prefix": "text_kterým_začíná_ID_kontejneru_vkládané_šablony => musí_být_v_šabloně_nadefinován",
* "templates": {
* "libovolné_ID_šablony": {
* "fle": "název_soubor_kde_je_šablona_nadefinována_viz_5.c_výše",
* "name": "název_šablony_který_bude_v_menu_zobrazován_uživateli"
* }
*
* a_dále_to_stejné_odděleno_čárkou_pro_všechny_další_dostupné_šablony_které_uživatel_může_do_tohoto_objektu_vkládat
* }
* }
*
* a_dále_to_stejné_odděleno_čárkou_pro_všechny_další_objekty_na_stránce_kam_je_možné_vkládat_šablony
* }
*
* Příklad šablony:
* ------------------------------------
*
*
*
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac nisl nec purus blandit elementum eu ac massa. Mauris nec purus feugiat, mollis lorem a, suscipit turpis. Cras justo turpis, bibendum eget urna sed, ornare varius sapien. Sed consectetur sodales scelerisque. Integer ornare ornare risus, eu venenatis mauris sollicitudin nec. Aenean et justo viverra ex rhoncus mattis at id arcu. Etiam non felis non enim sollicitudin fermentum vitae eget velit. Duis maximus id justo at fermentum.
*
*
*/
var OE_is_editing = false;
var OE_hl_elems = [];
var OE_editor_instance;
var OE_editor_html = "";
var OE_edited_obj = "";
var OE_done_actions = [];
var OE_last_action = {};
var OE_templates = {};
OE_templates.hlavni_main_container = {id_prefix: "article_container_", templates: []};
OE_templates.hlavni_main_container.templates.push({templ_name: "article_foto", name:"Článek (foto, nadpis, text)"});
OE_templates.hlavni_main_container.templates.push({templ_name: "article", name:"Článek (nadpis, text)"});
OE_templates.hlavni_main_container.templates.push({templ_name: "empty", name:"Textový kontejner"});
OE_templates.story_main_container = {id_prefix: "article_container_", templates: []};
OE_templates.story_main_container.templates.push({templ_name: "article_foto", name:"Článek (foto, nadpis, text)"});
OE_templates.story_main_container.templates.push({templ_name: "article", name:"Článek (nadpis, text)"});
OE_templates.story_main_container.templates.push({templ_name: "empty", name:"Textový kontejner"});
OE_templates.game_main_container = {id_prefix: "article_container_", templates: []};
OE_templates.game_main_container.templates.push({templ_name: "article_foto", name:"Článek (foto, nadpis, text)"});
OE_templates.game_main_container.templates.push({templ_name: "article", name:"Článek (nadpis, text)"});
OE_templates.game_main_container.templates.push({templ_name: "empty", name:"Textový kontejner"});
OE_templates.aero_main_container = {id_prefix: "article_container_", templates: []};
OE_templates.aero_main_container.templates.push({templ_name: "article_foto", name:"Článek (foto, nadpis, text)"});
OE_templates.aero_main_container.templates.push({templ_name: "article", name:"Článek (nadpis, text)"});
OE_templates.aero_main_container.templates.push({templ_name: "empty", name:"Textový kontejner"});
$(document).ready(function()
{
$( document ).keydown(function(e)
{
if(e.shiftKey && e.ctrlKey && e.altKey && e.which == 69)
{
if($("#OE_exit_butt").length == 1)
{
OE_finish_edit();
}
else
{
OE_is_editing = true;
OE_hl_elems = [];
$("