/**
 * Satura project
 * This file is part of the Satura CMS.
 *
 * @author Jan Šabat
 */

window.addEvent('domready', function(e) {
  deleteConfirm();
  rowHighlight();
  rowOneClick();
  formElementHighlight();
  openBlank();
  faketableRowClone();

  if ($('content-type')){
    setContentPageEdit();
    $('content-type').addEvent('change', function(){
      setContentPageEdit();
    });
  }
  
  moveColumns();
  
  $$('.pre-select').each(function(item, index){
    var value = item.get('value');
    item.addEvents({
      'focus': function(){
        item.select();
        item.toggleClass('focused');
      },
      'blur': function(){
        if (item.get('value') == "") item.set('value',value);
        item.toggleClass('focused');
      }
    });
  });
  
  $$('.pre-clean').each(function(item, index){
    var value = item.get('value');
    item.addEvents({
      'focus': function(){
      if (item.get('value') == value) item.set('value',"");
      item.toggleClass('focused');
      },
      'blur': function(){
        if (item.get('value') == "") item.set('value',value);
        item.toggleClass('focused');
      }
    });
  });
  
  
  milkbox = new Milkbox({ autoSize:false });
});


function openBlank(){
  $$('a[rel]').each( function(item, index ) {
    // nahrazeni rel="blank" na target="_blank"
    if(item.get('rel') == 'blank'){
      item.set('target', '_blank') ;
    }
    // prida k rel="confirm" js popup zdali pokracovat na adresu
    if(item.get('rel') == 'confirm'){
      item.addEvent('click', function(e){
        if (!confirm(item.get('title') + ' \?')){
          e.stop();
        }
      });
    }
  });
}


function ie6Confirm(){
  if (confirm(Satura.msgs.ie6confirm)){
    window.open('http://www.microsoft.com/cze/windows/internet-explorer/default.aspx');
  }
}

function editConfirm(){
  $$('a').addEvent('click',function(e){
    if (!confirm(Satura.msgs.editConfirm)) e.stop();
  });
}


function moveColumns(){
  $$('a.btn-move-top','a.btn-move-down').each( function(item,index) {
    item.addEvent('click',function(e){
      e.stop();

      var link = item.href+'?pageview=ajax';
      new Request.HTML({
        'onSuccess': function(responseTree, responseElements, responseHTML, responseJavaScript){
          if (responseHTML){
            var table = $('orderable');
            table.getElements('tr').destroy();
            table.set('html',responseHTML);
            deleteConfirm();
            moveColumns();
          }
        }
      }).get(link);
    });
  });
}


function deleteConfirm(){
  $$('.btn-delete').addEvent('click',function(e){
    var msg = this.title ? this.title : "delete ?";
    if(!confirm(msg)) e.stop();
  });
}


function rowOneClick(){
  var rows = $$('.satura-table table.hovered tr');
  rows.each(function(item, index){
    var anchors = item.getElements('a.btn-show');

    anchors.each(function(anchor){
      if (anchor.href != ""){
        item.setStyle('cursor','pointer');
        item.addEvent('click', function(){
          window.location.href = anchor.href;
        });
      }
    });
  });
}


function rowHighlight(){
  var rows = $$('.satura-table table.hovered tr');
  rows.each(function(item, index){
    item.addEvents({
      'mouseover': function(){
        item.addClass('hover');
      },
      'mouseout': function(){
        item.removeClass('hover');
      }
    });
  });
}


function formElementHighlight(){
  var els = $$('.satura-table form input, .satura-table form textarea, .satura-table form select');
  var cnfrm = false;
  els.each(function(item, index){
    item.addEvents({
      'focus': function(){
        item.toggleClass('focused');
      },
      'blur': function(){
        item.toggleClass('focused');
      },
      'change': function(){
        if (cnfrm == true) return;
        cnfrm = true;
        //editConfirm();
      }
    });
  });
}


function setContentPageEdit(){
  var content = $$("#page-content div");
  content.each(function(item, index){
    item.setStyle('display','none');
  });
  var type = $('content-type').value;
  var atype = $('page-content-'+type).setStyle('display','block');
}


function ajaxfilemanager(field_name, url, type, win) {
  var ajaxfilemanagerurl = Satura.config.tinyMcePath+"scripts/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php";
  tinyMCE.activeEditor.windowManager.open({
    url: Satura.config.tinyMcePath+"scripts/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php",
    width: 782,
    height: 440,
    inline : "yes",
    close_previous : "no"
  },{
    window : win,
    input : field_name
  });
}


tinyMCE.init({
  language : Satura.config.language,
  mode : "specific_textareas",
  editor_selector : "edit-lite",
  theme : "simple"
});


tinyMCE.init({
  language : Satura.config.language,
  mode : "specific_textareas",
  editor_selector : "edit-full",
  entity_encoding : "raw",
  theme : "advanced",
  plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
  // Theme options
  theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontsizeselect,hr,removeformat,visualaid,|,sub,sup,|,charmap,fullscreen,|,insertlayer,absolute",
  theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,media,cleanup,help,code,|preview,|,forecolor,backcolor",
  theme_advanced_buttons3 : "tablecontrols",

  theme_advanced_toolbar_location : "top",
  theme_advanced_toolbar_align : "left",
  theme_advanced_statusbar_location : "bottom",
  theme_advanced_resizing : true,

  // Example content CSS (should be your site CSS)
  content_css : "themes/default/style.css",

  extended_valid_elements : "hr[class|width|size|noshade]",
  file_browser_callback : "ajaxfilemanager",
  paste_use_dialog : false,
  theme_advanced_resizing : true,
  theme_advanced_resize_horizontal : true,
  apply_source_formatting : true,
  force_br_newlines : true,
  force_p_newlines : false,  
  relative_urls : true,
  plugin_insertdate_dateFormat : "%d.%m.%Y"
  //onchange_callback : "editConfirm"
});


function editAreaLoad(id){
  if ($(id)){
    editAreaLoader.init({
      id: id // id of the textarea to transform
      ,start_highlight: true  // if start with highlight
      ,allow_resize: "both"
      ,allow_toggle: true
      ,word_wrap: true
      ,language: Satura.config.language
      ,syntax: "php"
    });
  }
}


function rowcloning(paramameter,rows){
  var last = null;
  var count = $(paramameter+'-count').get('value');
  var counter = count;
  lineDeleteBtn();
  $(paramameter+'-btn-lc').addEvent('click',function(e){

    var els2clone = $('row2clone');
    var clone = els2clone.clone();
    clone.removeClass('hidden');
    
    var els = clone.getElements('input');
    
    els.each(function(el, index){
      var name = el.get('name');
      name = name.replace('temp',paramameter);
      name = name.replace('0',counter);
      
      el.set('name',name);
      el.set('value','');
    });
    
    $$(rows).each(function(item){
      last = item;
    });

    clone.inject(last,'after');
    
    counter++;
    
    lineDeleteBtn();
    e.stop();
  });
}


function faketableRowClone(){
  var faketables = $$('div.fake-table.clonable');
  faketables.each(function(faketable,i){
    var orig = faketable.getElement('div.row-first');
    if (!orig) return;
    var btnct = faketable.getElement('div.btn-create.top]');
    var btncb = faketable.getElement('div.btn-create.bottom]');
    var temp = orig.clone().set('class','row');
    var counter = faketable.getElement('div[class*=row-count]').innerHTML;
    
    faketable.getElements('div.row').each(function(row){
      faketableRowCloneBtns(row);
    });
    
    orig.destroy();
    
    btnct.addEvent('click',function(e){
      counter++;
      
      clone = temp.clone();
      inputs = clone.getElements('input').each(function(input){
        input.set('name',input.get('name')+'['+counter+']');
      });
      
      clone.inject(btnct,'after');
      faketableRowCloneBtns(clone);
    });
    
    btncb.addEvent('click',function(e){
      counter++;
      
      clone = temp.clone();
      inputs = clone.getElements('input').each(function(input){
        input.set('name',input.get('name')+'['+counter+']');
      });
      
      clone.inject(btncb,'before');
      faketableRowCloneBtns(clone);
    });
  });
}


function faketableRowCloneBtns(el){
  var del = el.getElement('span[class=btn-delete]');
  del.addEvent('click',function(e){
    el.destroy();
  });
    
  var top = el.getElement('span[class=btn-move-top]');
  top.addEvent('click',function(e){
    prev = el.getPrevious('div[class=row]');
    if (prev) el.inject(prev,'before');
  });
    
  var down = el.getElement('span[class=btn-move-down]');
  down.addEvent('click',function(e){
    next = el.getNext('div[class=row]');
    if (next) el.inject(next,'after');
  });
}


function lineDeleteBtn(){
  $$('.btn-line-delete').each(function(item){
    item.addEvent('click',function(e){
      item.getParent().getParent().destroy();
      e.stop();
    });
  });
}

function addFile(item){
  var upload_number = 1;
  var more_id = item.get('name').replace(/\[(.*)/i,'');
  $('more_link_'+more_id).setStyle('display','block');
    
  $('more_btn_'+more_id).addEvent('click',function(e){
    e.stop();
    var add_more = new Element('input', {
      'type': 'file',
      'name': more_id+'['+upload_number+']'
    });

    add_more.inject($('more_'+more_id), 'bottom');
    upload_number++;
  });
}

