/* -----------------------------------------------------------------------------
    @AUTHOR:  Zdenek Benak, zdenek.benak@centrum.cz
    @YEAR:    2006
    @PROJECT: MAppEngine
    @FILE:    service/editform_func.php
    @DESCR:   funkce pro zpracovani editacnich formularu
 * -------------------------------------------------------------------------- */


// ------------------------------- editace polozky -----------------------------

  function EditItem(edit_script,edit_type, item_id, item_id_name, back_script,do_not_require_confirm)
  {
    edit_script = (edit_script.indexOf("?")>-1)?(edit_script+"&"):edit_script+"?";
    back_script = str_replace("_A_ROW_NAME_",item_id,back_script);
    back_script = str_replace("&","_AMP_",back_script);
    back_script = str_replace("?","_OT_",back_script);
    switch (edit_type)
    {
      case 1: // add new item
        document.location = edit_script + "edit_type=1&edit_step=1&"+item_id_name+"="+item_id+"&back_script="+back_script;
        break;
      case 2: // edit item
        document.location = edit_script + "edit_type=2&edit_step=1&"+item_id_name+"="+item_id+"&back_script="+back_script;
        break;
      case 3: // delete item
        if (do_not_require_confirm || confirm("Skutečně chcete tuto položku trvale odstranit"))
        {
          document.location = edit_script + "edit_type=3&edit_step=1&"+item_id_name+"="+item_id+"&back_script="+back_script;
        }
        break;
      case 4: // show item detail
        page = edit_script + "edit_type=4&edit_step=1&show_menu=false&"+item_id_name+"="+item_id+"&back_script="+back_script;
        win  = window.open(page,"","width=640,height=480,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
        break;
      case 5: // copy item
        page = edit_script + "edit_type=5&edit_step=1&"+item_id_name+"="+item_id+"&back_script="+back_script;
        document.location = page;
        break;
      case 6: // restore item - nahled
        page = edit_script + "edit_type=6&edit_step=1&show_menu=false&"+item_id_name+"="+item_id+"&back_script="+back_script;
        my_win = window.open(page,"edit_article","height=490,width=750,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
        my_win.focus();
        break;
      case 7: // restore item
        if (do_not_require_confirm || confirm("Skutečně chcete obnovit položku z této zálohy?"))
        {
          page = edit_script + "edit_type=7&edit_step=1&"+item_id_name+"="+item_id+"&back_script="+back_script;
          document.location = page;
        }
      case 10: // lock item
      case 11: // lock edit
      case 12: // lock delete
      case 13: // lock view
          page = edit_script + "edit_type=8&lock_pos="+(parseInt(edit_type-10)).toString()+"&edit_step=1&"+item_id_name+"="+item_id+"&back_script="+back_script;
          document.location = page;
        break;
      case 15: // unlock item
      case 16: // unlock edit
      case 17: // unlock delete
      case 18: // unlock view
          page = edit_script + "edit_type=9&lock_pos="+(parseInt(edit_type-15)).toString()+"&edit_step=1&"+item_id_name+"="+item_id+"&back_script="+back_script;
          document.location = page;
        break;
    }
  }

// ---------------------------- hromadne mazani polozek ------------------------

  function MultiDelete(list_script,form_name,type_select)
  {
    list_script = (list_script.indexOf("?")>-1)?(list_script+"&amp;"):list_script+"?";
    delete_type = 1;
    switch (delete_type)
    {
      case 1: // delete all
        if (confirm("Skutečně chcete tuto položku trvale odstranit"))
        {
          document.location = list_script + "delete_action=1&amp";
        }
        break;
      case 2: // delete all in list
        if (confirm("Skutečně chcete tuto položku trvale odstranit"))
        {
          document.location = list_script + "delete_action=2&amp";
        }
        break;
      case 3: // delete all on current page
        if (confirm("Skutečně chcete tuto položku trvale odstranit"))
        {
          document.location = list_script + "delete_action=3&amp";
        }
        break;
     case 4: // delete all checked
        if (confirm("Skutečně chcete tuto položku trvale odstranit"))
        {
          document.location = list_script + "delete_action=4&amp";
        }
        break;
    }
  }
  
  
// --------------------- fuknce pro zobrazeni vypisu z databaze ----------------

  function DisplayItemList(list_script,item_num,ci_id)
  {
    list_script = (list_script.indexOf("?")>-1)?(list_script+"&"):(list_script+"?");
    document.location = list_script+"current_item"+ci_id+"="+item_num;
  }
  
// --------------- funkce pro editaci polozek textovym editorem ----------------

    function WysiwygEdit_TinyMce(src_form,src_field,image_path_disc,image_path_web,emode)
    {
      page             = web_root_web+"service/editors/tiny_mce/tiny_mce.php?edit_mode="+emode+"&src_form="+src_form+"&src_field="+src_field;
      page            += ("&image_path_disc="+image_path_disc+"&image_path_web="+image_path_web+"&select_func=ArticleEdited");
      my_win = window.open(page,"edit_article","height=490,width=800,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }

    function WysiwygEdit_TinyMceFull(src_form,src_field,image_path_disc,image_path_web,emode)
    {
      page             = web_root_web+"service/editors/tiny_mce/tiny_mce_full.php?edit_mode="+emode+"&src_form="+src_form+"&src_field="+src_field;
      page            += ("&image_path_disc="+image_path_disc+"&image_path_web="+image_path_web+"&select_func=ArticleEdited");
      my_win = window.open(page,"edit_article","height=490,width=800,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }


    function EditArticle(src_form,src_field,image_path_disc,image_path_web,emode)
    {
      page             = web_root_web+"service/editors/editor/simple_editor.php?edit_mode="+emode+"&src_form="+src_form+"&src_field="+src_field;
      page            += ("&image_path_disc="+image_path_disc+"&image_path_web="+image_path_web+"&select_func=ArticleEdited");
      my_win = window.open(page,"edit_article","height=490,width=800,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }

    function EditArticle2(src_form,src_field,image_path_disc,image_path_web,emode)
    {
      page             = web_root_web+"service/editors/editor2/simple_editor2.php?edit_mode="+emode+"&src_form="+src_form+"&src_field="+src_field;
      page            += ("&image_path_disc="+image_path_disc+"&image_path_web="+image_path_web+"&select_func=ArticleEdited");
      my_win = window.open(page,"edit_article","height=490,width=800,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }
    
    function PlainEditArticle(src_form,src_field)
    {
      page             = web_root_web+"service/editors/plain/plain_editor.php?src_form="+src_form+"&src_field="+src_field+"&select_func=ArticleEdited";
      my_win = window.open(page,"edit_article","height=490,width=800,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }
    
    function ArticleEdited(src_form,src_field,article_text)
    {
      if (src_field!=null)
      {
        eval ("document."+src_form+"."+src_field+".value = article_text");
        elm = document.getElementById(src_field+"_display");
        elm.innerHTML  = article_text;
      }
    }
    
    function TextEditor_SwapSize(original_size,input_id)
    {
      inp = document.getElementById(input_id);
      if (inp.style.height == original_size+"em") inp.style.height = (parseInt(original_size)*6).toString()+"em";
      else                                        inp.style.height =  original_size+"em";
    }
    
// -------------------------- funkce pro vyber barvy ---------------------------

    function ColorSelect(src_form,src_field)
    {
      page   = web_root_web+"service/popups/select_color.php?select_func=ColorSelected&selector_mode=1&src_form="+src_form+"&src_field="+src_field;
      my_win = window.open(page,"select_color","height=400,width=400,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=no");
      my_win.focus();
    }
    function ColorSelected(src_form,src_field,scolor)
    {
      if (src_field!=null)
      {
        eval ("document."+src_form+"."+src_field+".value = '"+scolor+"';");
        elm = document.getElementById(src_field+"_preview");
        elm.style.backgroundColor = scolor;
        elm.style.color = scolor;
      }
    }
    function ColorChanged(src_form,src_field)
    {
      if (src_field!=null)
      {
        scolor = eval ("document."+src_form+"."+src_field+".value");
        elm = document.getElementById(src_field+"_preview");
        elm.style.backgroundColor = scolor;
        elm.style.color = scolor;
      }
    }
    
// ------------------------- funkce pro vyber souboru --------------------------

    function FileUpload(path_disc,path_web)
    {
      page             = web_root_web+"service/file_manager/file_manager.php?path_disc="+path_disc+"&path_web="+path_web;
      page            += "&select_func=FileShow&display_dirs=1&enable_dir_browsing=1&display_path_line=1";
      my_win = window.open(page,"file_upload","height=600,width=750,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }

    function FileShow(file_path,file_path_disc,file_path_web)
    {
      page   = file_path_web;
      my_win = window.open(page,"","height=600,width=750,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }
    
    function FileSelect(src_form,src_field,path_disc,path_web)
    {
      page             = web_root_web+"service/file_manager/file_manager.php?src_form="+src_form+"&src_field="+src_field;
      page            += "&path_disc="+path_disc+"&path_web="+path_web+"&select_func=FileSelected&display_dirs=1&enable_dir_browsing=1&display_path_line=1";
      my_win = window.open(page,"file_upload","height=600,width=750,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
      my_win.focus();
    }

    function FileSelected(file_path,file_path_disc,file_path_web,src_form,src_field)
    {
      if (src_form!="" && src_field!="")
      {
        eval ("document."+src_form+"."+src_field+".value = file_path");
        ImgInputShowPreview(file_path,src_field.replace("li_",""),file_path_web,file_path_disc);
      }
      else
      {
        page   = file_path_web;
        my_win = window.open(page,"","height=600,width=750,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
        my_win.focus();
      }
    }


// --------------------- funkce zobrazeni vetsiho nahledu ----------------------

  function ShowBigImg(event,i)
  {
    elm_small = document.getElementById("pimg_"+i);
    elm_big   = document.getElementById("pimg_big_"+i);
    l = GetMouseX(event) + GetPageOffsetX()+1;
    t = GetMouseY(event) + GetPageOffsetY()+1;
    elm_big.style.position = "absolute";
    elm_big.style.left = l.toString()+"px";
    elm_big.style.top  = t.toString()+"px";
    elm_big.style.display = "";
  }
  
  function HideBigImg(i)
  {
    elm_small = document.getElementById("pimg_"+i);
    elm_big   = document.getElementById("pimg_big_"+i);
    elm_big.style.display = "none";
  }
  
// ------------------ zjistovani informaci o typech souboru --------------------

  function GetFileExtesion(file_name)
  {
    var f_arr = file_name.split(".");
    return  f_arr[f_arr.length-1].toLowerCase();
  }

  function GetFileIcon(file_extension)
  {
    file_types = new Array ();

    file_types["txt"]  = "f_txt.gif";
    file_types["rar"]  = "f_rar.gif";
    file_types["zip"]  = "f_zip.gif";
    file_types["gzip"] = "f_zip.gif";
    file_types["gz"]   = "f_zip.gif";
    file_types["gif"]  = "f_gif.gif";
    file_types["jpeg"] = "f_jpg.gif";
    file_types["jpg"]  = "f_jpg.gif";
    file_types["bmp"]  = "f_bmp.gif";
    file_types["png"]  = "f_png.gif";
    file_types["htm"]  = "f_htm.gif";
    file_types["html"] = "f_htm.gif";
    file_types["frm"]  = "f_mysql.gif";
    file_types["myd"]  = "f_mysql.gif";
    file_types["sql"]  = "f_sql.gif";
    file_types["php"]  = "f_php.gif";
    file_types["xls"]  = "f_xls.gif";
    file_types["doc"]  = "f_doc.gif";
    file_types["ppt"]  = "f_ppt.gif";
    file_types["pdf"]  = "f_pdf.gif";
    file_types["csv"]  = "f_csv.gif";


    if (file_types[file_extension]) return file_types[file_extension];
    else                            return "";

  }

  function IsImage(file_extension)
  {

    image_types = new Array ();

    image_types["gif"]  = "gif";
    image_types["jpeg"] = "jpg";
    image_types["jpg"]  = "jpg";
    image_types["png"]  = "png";

    if (image_types[file_extension]) return true;
    else                             return false;
  }
    
    
// ------------- zobrazeni nahledu obrazku zadaneho textovem poli --------------

    function ImgInputShowPreview(img_path,img_id,web_path,disc_path)
    {
        if (img_path=="") return;


        var preview_height  = 20;
        var img_full_path   = disc_path.replace(img_path,"")+"/"+img_path;

        var f_extesion = GetFileExtesion(img_path);
        var f_icon     = GetFileIcon(f_extesion);
        var is_image   = IsImage(f_extesion);
        if (!is_image && f_icon=="") f_icon = "f_file.gif";

        if (is_image || f_icon=="")
        {
          var src_small       = "../inc/imgresize.php?nwmax="+(3*preview_height)+"&amp;nh="+preview_height+"&amp;jpgquality=70&amp;image_fp="+img_full_path;
          var src_big         = "../inc/imgresize.php?nwmax="+(3*5*preview_height)+"&amp;nh="+(5*preview_height)+"&amp;jpgquality=75&amp;image_fp="+img_full_path;
        }
        else
        {
          var src_small       = "img/"+f_icon;
          var src_big         = "../inc/imgresize.php?nh=38&&image=service/img/"+f_icon;
        }

        src_small = str_replace("&amp;","&",src_small);
        src_big   = str_replace("&amp;","&",src_big);

        elm_small = document.getElementById("pimg_"+img_id);
        elm_big   = document.getElementById("pimg_big_img_"+img_id);

        if (elm_small) elm_small.src = src_small;
        if (elm_big)   elm_big.src   = src_big;

    }

// ----------------------- zobrazeni, schovani podmenu -------------------------

  function ShowHideSubmenu(mid,l1_mids)
  {
    l1_mids_arr = l1_mids.split(";");
    for (var i=0;i<l1_mids_arr.length;i++)
    {
      elm = document.getElementById(l1_mids_arr[i]);
      if (elm) elm.style.display = l1_mids_arr[i]==mid?(elm.style.display==""?"none":""):"none";
    }
  }

// ------------------------ aktualizace URL z nadpisu --------------------------

  function URL_UpdateUrlFromCaption(form,caption_field,field)
  {
    if (document[form][field+"URL_FROM_CAPTION"].checked)
    {
      document[form][field+"URL"].value = CreateURLIdFromCaption(document[form][caption_field].value);
    }
  }
