$(document).ready(function(){

  //$.ajaxSetup({ cache: false});
  var currentUser = false;
  var userType = 0;
  function noImplementation(s) {
    if(s) {
      s += ' ';
    }
    else {
      s = '';
    }
    s += 'not implemented';
    dlgAlert(s);
  }

  function loginMsgHide(lm) {
    lm.hide("slide", {direction: "right"}, 1000);
  }

  function loginMsgShow(lm) {
    lm.show("slide", {direction: "right"}, 1000);
  }

  function setUser(strUserName) {
    if(currentUser && ((userType === 2) || (userType === 3))) {
      $('.icon-edit').addClass('editEnabled');
    }
    else {
      $('.editEnabled').removeClass('editEnabled');
    }
    var lm = $('.logmessage');
    lm.stop().hide().text(strUserName);
    if(!currentUser) {
      if(strUserName) {
        loginMsgShow(lm);
        setTimeout(function() {
            loginMsgHide(lm);
          }, 2000);
      }
      $('.selecteduser').removeClass('icon-userall').addClass('icon-useradmin');
    }
    else {
      loginMsgShow(lm);
      $('.selecteduser').addClass('icon-userall').removeClass('icon-useradmin');
    }
  }

  function increaseFontSize() {
    var fs = $('#articlecontainer').css('font-size');
    fs = parseInt(fs, 10);
    fs = fs + 1;
    if((fs >= 10) && (fs <= 20)) {
      $('#articlecontainer').css('font-size', fs + 'px');
    }
  }
  
  function decreaseFontSize() {
    var fs = $('#articlecontainer').css('font-size');
    fs = parseInt(fs, 10);
    fs = fs - 1;
    if((fs >= 10) && (fs <= 20)) {
      $('#articlecontainer').css('font-size', fs + 'px');
    }
  }

  function init() {
    //$('.submenu').hide();
//    $('.submenu:eq(0)').show();
    //$('#mailform').hide();
    //$('#searchingsorting').hide();
    $('#fromdate, #todate').datepicker({
      changeMonth: true,
  		changeYear: true
    });

    $('.icon-decreasefont').click(decreaseFontSize);
    $('.icon-increasefont').click(increaseFontSize);
    currentUser = false;
    setUser();
    $('.showresults').click(function() {
      getArticles();
      return false;
      $.ajax({
        type: 'POST',
        url: 'article.php',
        //async: false,
        dataType: 'json',
        data: $(this).parents('form').serialize(),
        success: function(json) {
          dlgAlert(json);
        }
      });
      return false;
    });
/*
    $('link').each(function(i) {
      if(i)
        this.disabled = true;
    });
*/
    initData();
    initEdit();
    initEditorMM();    
  }

  $('.mail:visible .sendForm').click(function() {
    $.ajax({
      type: 'POST',
      url: 'email.php',
      //async: false,
      dataType: 'json',
      data: $('.mail:visible').serialize(),
      success: function(json) {
        dlgAlert(json.status.message);
      }
    });
    return false;
  });

  function hideMenu() {
    setTimeout(conditionalHideMenu, 500);
  }

  function getSubmenu(obj) {
    return $('#submenu-' + obj.id.substr(3));
  }
  
  $('#mainMenu li').live('mouseover', 
    function() {
      var sm = getSubmenu(this);
      $(this).data('insideMenu', true);
      sm.stop(true, true);
      conditionalHideMenu();
      var l = $(this).offset().left;
      var iMargin = $(document).width() / 2 + 485;
      if((l + sm.outerWidth()) > iMargin) {
        l = iMargin - sm.outerWidth();
      }
      sm.css('left', l);
      //sm.fadeIn();
      sm.show();
      if(!$(this).hasClass('selectedCategory')) {
        $('.uiicon', this).css('visibility', 'visible');
      }
    }
  );

  $('#mainMenu li').live('mouseout', 
    function() {
      //var sm = getSubmenu(this);
      //sm.data('insideMenu', false);
      $(this).data('insideMenu', false);
      hideMenu();
  });

  $('.submenu').live('mouseover',
    function() {
      //$(this).data('insideCategorySelector', true);
      $('#mm-' + this.id.substr(8)).data('insideCategorySelector', true);
    }
  );

  $('.submenu').live('mouseout',
    function() {
      //$(this).data('insideCategorySelector', false);
      $('#mm-' + this.id.substr(8)).data('insideCategorySelector', false);
      hideMenu();
  });

  $('.toolbar .icon-search').click(function() {
    $('#searchingsorting').show();
  });

  $('.toolbar .icon-form').click(function() {
    $('#mailform').show();
  });

  $('#searchingsorting .closeSearchingSorting').click(function() {
    $('#searchingsorting').hide();
  });
  
  $('#searchingsorting .showresults').click(function() {
    $('#searchingsorting').hide();
  });
  
  $('#mailform .closeMailform').click(function() {
    $('#mailform').hide();
  });
  
  $('#mailform .sendForm').click(function() {
    $('#mailform').slideUp();
  });

  $('.portlet > .header > .icon-addArticle').click(function() {
    var pi = $('.item:hidden', $(this).parents('.portlet'));
    if(!pi.length) {
      return;
    }
    pi.filter(':first').slideDown();
  });

  $('.portlet > .header > .icon-removeArticle').click(function() {
    var pi = $('.item:visible', $(this).parents('.portlet'));
    if(pi.length <= 3) {
      return;
    }
    pi.filter(':last').slideUp();
  });

  $('#articlecontainer').live('click', function(e) {
    var $this = $(e.target), article;
    
    if(!$this.hasClass('showhide')) {
      $this = $this.parents('.showhide');
    }
//    if(!$this.hasClass('miniarticle')) {
//      $this = $this.parents('.miniarticle');
//    }
    if($this.length) {
      //$this.switchClass('miniarticle', 'fullarticle', 1000);
	  //$('.fullarticle').switchClass('fullarticle', 'miniarticle', 1000);
      article = $this;
      if(!$this.hasClass('miniarticle')) {
        article = $this.parents('.miniarticle');
      }
      if(article.hasClass('miniarticle')) {
        hideArticle($('.fullarticle'));
        openArticle(article);
      }
			//var bSameWidth = ($('.scroller', $this)[0].scrollWidth == $('.cntScroller', $this)[0].scrollWidth);
    }
    $this = $(e.target);
    if($this.parents('.document')) {
      if($this.attr('href') !== '#') {
        return;
      }
    }
    return false;
  });

  $('.icon-articleOff').live('click', function() {
    hideArticle($(this).parents('.fullarticle'));
    return false;
  });

  $('.icon-changesort').live('click', function() {
    var a = $('#articlecontainer .fullarticle, #articlecontainer .miniarticle');
    a.each(function(i, a) {
      if(i > 0) {
        $('#articlecontainer').prepend(this);
      }
    });
  });

  function showInput(gs, w, f) {
    gs.stop().animate({'width': '' + w + 'px'}, 200, function() {
      if(f !== undefined) {
        f.focus();
      }
    });
  }
  
  function hideInput(gs) {
    gs.stop().animate({'width': '1px'}, 1200, function() {
      gs.hide();
      gs.css('width', '');
    }); 
  }

  $('#topMenu .icon-search').click(function() {
    var $s = $('#globalsearch');
    if($s.is(':hidden')) {
      $s.focus();
    }
    else {
      $s.blur();
    }
    return false;
  });
  
  $('#globalsearch').keypress(function(e) {
    var lang = $('#topMenu .language.selected')[0].id.substr(3);
    var strSearch = $.trim($('#globalsearch').val());
    if((e.keyCode === 13) && (strSearch.length)) {
      prepareSearchSort('global', strSearch, false);
      getArticles();
      return false;
    }
    else if(e.keyCode === 27) {
      $(this).blur();
    }
  });

  $('#sortbyattribute').change(function() {
    $('#sortform').find('input[name=sorttype]').val(['attribute']);
  });

  $('#filterbyattribute').change(function() {
    //var $thisVal = parseInt($(this).val(), 10);
    var $thisVal = $(this).val();
    if(($thisVal === '1') || ($thisVal === '6')) {
      $('#intervalvalues').hide();
      $('#investorvalues').show();
    }
    else if(($thisVal !== 'all') && ($thisVal !== '1') && ($thisVal !== '6')) {
      $('#intervalvalues').show();
      $('#investorvalues').hide();
    }
    else {
      $('#intervalvalues').hide();
      $('#investorvalues').hide();
    }
  });
  $('#filterbyattribute').change();

  $('#publishdate').change(function() {
    //var $thisVal = parseInt($(this).val(), 10);
    var $thisVal = $(this).val();
    if($thisVal === 'interval') {
      $('#publishintervalvalues').show();
      $('#fromdate').focus();
    }
    else {
      $('#publishintervalvalues').hide();
    }
  });
  $('#publishdate').change();
  
  function login(user, pass) {
    $.ajax({
      url: 'user.php',
      //async: false,
      type: 'POST',
      dataType: 'json',
      data: {
        user: user,
        pass: pass
      },
      success: function(json) {
        var strMessage;
        if(json.error) {
          currentUser = false;
          strMessage = json.error.message;
        }
        else {
          hideInput($('.user-login'));
          userType = parseInt(json.type, 10);
          //alert(json.user + ', ' + json.type);
          if(userType === 0) { // blocked
            currentUser = false;
            strMessage = '';
          }
          else if(userType === 1) { // regular
            currentUser = true;
            strMessage = json.user;
          }
          else if(userType === 2) { // editor
            currentUser = true;
            strMessage = json.user + ' (urednik)';
          }
          else if(userType === 3) { // admin
            currentUser = true;
            strMessage = json.user + ' (admin)';
          }
        }
        setUser(strMessage);
      }
    });
  }
  
  $('#login-user, #login-pass').keypress(function(e) {
    if(e.keyCode === 13) {
      login($('#login-user').val(), $('#login-pass').val());
      return false;
    }
  });

  $('#globalsearch').focus(function() {
    showInput($(this), 150);
  });

  $('#globalsearch').blur(function() {
    hideInput($(this));
  });

  $('.selecteduser').click(function() {
/*
    var $this = $(this);
    if(!$this.hasClass('selecteduser')) {
      $('.selecteduser').removeClass('selecteduser');
      $this.addClass('selecteduser');
      if($this.hasClass('icon-userall')) {
        currentUser = 'unlogged';
      }
      else if($this.hasClass('icon-useradmin')) {
        currentUser = 'logged';
      }
      setUser();
    }
*/
    var $s = $('#login-user');
    if(currentUser) {
      currentUser = false;
      login(false);
      setUser();
    }
    else if($s.is(':hidden') && (!currentUser)) {
      showInput($('.user-login'), 160, $s);
    }
    else {
      hideInput($('.user-login'));
//      login($('#login-user').val(), $('#login-pass').val());
/*      
      if() {
      }
      else {
        hideInput($('.user-login'));
      }
*/
    }
    return false;
  });

  var iBg = 1;

  function getNextBG() {
    var headerArticle = $('#topBanner .headerarticle');
    var mm = headerArticle.data('info').multimedia;
    if(!mm.length) {
      return;
    }
    var iMaxBg = mm.length - 1;
    iBg = iBg + 1;
    if(iBg > iMaxBg) {
      iBg = 0;
    }
    //var strBg = '' + iBg;
    //if(strBg.length < 2)
      //strBg = '0' + strBg;//.substr(1);
    //return 'url(css/standard/images/bg/bp_' + strBg + '.jpg)';
    return 'url("image.php?item=' + mm[iBg].item + '")';
  }

  function setBackground() {
    var iFadeOutTime = 1500;
    var iFadeInTime = 5000;

    var $bgBanner = $('#bgBanner');
    $bgBanner.stop(true, true);

    $bgBanner.animate({'opacity': '1'}, iFadeOutTime, function() {
        $('#topBanner').css('background-image', getNextBG());
      })
      .delay(iFadeInTime)
      .animate({'opacity': '0'}, iFadeOutTime, function() {
        $bgBanner.css('background-image', getNextBG());
        setTimeout(setBackground, iFadeInTime);
      });
  }

  setTimeout(setBackground, 15000);

  var imgViewer = {
    img: 0,
    mm: null,
    bBreak: true,
    timer: null,
    $cntViewer: $('#imageviewer'),
    $cntImage: $('#cntImage'),
    $cImg: $('#cntImage .loading'),
    $cImgShow: $('#cntImage .show'),
    $imgDescription: $('#imgDescription'),
    $imgStatus: $('#imgStatus'),
    $playPauseImage: $('#playPauseImage'),
    $prevImage: $('#prevImage'),
    $nextImage: $('#nextImage'),
    cImgCount: 0,
    animation: false
  };
   
  function slideShow() {
//    if(imgViewer.bBreak)
//      return;
    //var imgs = [];//['css/standard/images/bg/bp_01.jpg', 'css/standard/images/icons_hover.png', 'css/standard/images/logo.png'];
    imgViewer.img++;
    if(imgViewer.img < 0) {
      imgViewer.img = imgViewer.cImgCount + imgViewer.img;
    }
    if(imgViewer.img >= imgViewer.cImgCount) {
      imgViewer.img = imgViewer.img - imgViewer.cImgCount;
    }
    var mmItem = $('.item:eq(' + imgViewer.img + ')', imgViewer.mm).data('info');
    imgViewer.animation = true;
    imgViewer.$cImg.attr('src', 'image.php?item=' + mmItem.item);
    imgViewer.$cntImage.fadeOut(function() {
      var strDescription = mmItem.caption;
      if(mmItem.description) {
        strDescription = strDescription + ' - ' + mmItem.description;
      }
      imgViewer.$imgDescription.text(strDescription);
      imgViewer.$imgStatus.text('slika ' + (imgViewer.img + 1) + '/' + imgViewer.cImgCount);
      imgViewer.animation = false;
    });
  }
  
  function switchPlayPauseIcons() {
    if(imgViewer.bBreak) {
      $('.hint', imgViewer.$playPauseImage).removeClass('pause').addClass('play');
    }
    else {
      $('.hint', imgViewer.$playPauseImage).removeClass('play').addClass('pause');
    }
  }
  
  $('.fullarticle .multimedia .item').live('click', function() {
    clearTimeout(imgViewer.timer);
    imgViewer.img = -1;
    imgViewer.cImgCount = 0;
    imgViewer.mm = $(this).parents('.multimedia');
    var clicked = this;
    imgViewer.cImgCount = $('.item', imgViewer.mm).each(function(c) {
      if(this === clicked) {
        imgViewer.img = c - 1;
        return false;
      }
    }).length;
    $('body').animate({scrollTop: (imgViewer.mm.parents('.fullarticle').offset().top - 15)}, 'slow');
    imgViewer.bBreak = imgViewer.cImgCount < 2; // true if only 1 image
    switchPlayPauseIcons();
    imgViewer.$cntImage.hide();
    $('#backViewer').height($(document).height());
    $('#backViewer').show();
    imgViewer.$cntViewer.fadeIn();
    slideShow();
  });

  imgViewer.$cImg.load(function() {
    imgViewer.$cntImage.stop(true, true);
    imgViewer.$cntImage.hide();
    imgViewer.$cImgShow.attr('src', imgViewer.$cImg.attr('src'));
    var mmItem = $('.item:eq(' + imgViewer.img + ')', imgViewer.mm).data('info');
    var imgWidth = parseInt(mmItem.info.substr(0, mmItem.info.indexOf('x')), 10);
    var imgHeight = parseInt(mmItem.info.substr(mmItem.info.indexOf('x') + 1), 10);
    //var iPadding = imgViewer.$cntImage.outerWidth() - imgViewer.$cntImage.width();
    //imgViewer.$imgDescription.width(this.width);
    var resize = {
      //left: ($(window).width() - this.width - iPadding) / 2,
      //top: imgViewer.mm.offset().top,
      //top: $('html, body').scrollTop() + (($(window).height() - imgHeight) / 2),
      width: imgWidth,//this.width,
      //height: imgViewer.$cntImage.outerHeight(true) + $('#imageNavigator').outerHeight(true) 
      height: imgHeight + $('#imageNavigator').outerHeight(true) + 15 + imgViewer.$imgDescription.height() //imgViewer.$cntImage.height() + $('#imageNavigator').outerHeight(true) + 15 
    };
    $('body').stop(true, true);
    
    //resize.top = $('html, body').scrollTop() + (($(window).height() - 30 - resize.height) / 2);
    resize.top = $(window).scrollTop() + (($(window).height() - 30 - resize.height) / 2);
    clearTimeout(imgViewer.timer);
    imgViewer.$cntViewer.animate(resize, function () {
      imgViewer.$cntImage.fadeIn();
      if(!imgViewer.bBreak) {
        imgViewer.timer = setTimeout(slideShow, 5000);
      }
    });
  });
  
  imgViewer.$cntViewer.click(function() {
    clearTimeout(imgViewer.timer);
    imgViewer.bBreak = !imgViewer.bBreak;
    switchPlayPauseIcons();
    if(!imgViewer.bBreak) {
      imgViewer.timer = setTimeout(slideShow, 500);
    }
    return false;
  });

  $('#closeViewer').click(function() {
    clearTimeout(imgViewer.timer);
    imgViewer.$cntViewer.fadeOut(function() {
      $('#backViewer').hide();
    });
    return false;

  });

  imgViewer.$cntViewer.keypress(function(e) {
    if(e.keyCode === 27) {
      $('#closeViewer').click();
    }
    else if(e.keyCode === 37) {
      $('#prevImage').click();
    }
    else if(e.keyCode === 39) {
      $('#nextImage').click();
    }
    return false;
  });
  
  $('#prevImage').click(function() {
    clearTimeout(imgViewer.timer);
    imgViewer.img -= 2;
    slideShow();
    return false;
  });
  
  $('#nextImage').click(function() {
    clearTimeout(imgViewer.timer);
    slideShow();
    return false;
  });
  
  $('#backViewer').click(function() {
    $('#closeViewer').click();
  });

  $('.multimedia .prev, .multimedia .next').live('click', function() {
    var $s = $('.cntScroller', $(this).parent());
    var p = $s.scrollLeft();
    var newP = 0;
    if($(this).hasClass('prev')) {
      $('span', $s).each(function(index, el){
        var w = $(el).outerWidth(true);
        if((newP + w) < p) {
          newP += w;
        }
        else {
          return false;
        }
      });
    }
    else {
      var sw = $s.width();
      var pw = p + sw;
      $('span', $s).each(function(index, el) {
        if(newP <= pw) {
          newP += $(el).outerWidth(true);
        }
        else {
          return false;
        }
      });
      newP -= sw;
    }
    if(newP !== p) {
      $s.animate({scrollLeft: newP}, 'slow');
    }
  });

  $('#portletViewer .header .category, .category-submenu').live('mouseover',
    function() {
      var $this = $(this);
      if($this.hasClass('category')) {
        var csm = $('#csm-' + this.id.substr(4));
        csm.css({left: $this.position().left + 'px', top: $this.position().top + $this.height() + 'px'}).addClass('lastSelected').show();
      }
      else {
        $this.show();
      }
    }
  );

  $('#portletViewer .header .category, .category-submenu').live('mouseout', 
    function() {
      $('.lastSelected').removeClass('.lastSelected').hide();
    }
  );

  init();
  
/*  
  $('#portletViewer .header .category, .category-submenu').hover(
    function() {
      var $this = $(this);
      if($this.hasClass('category')) {
        var csm = $('#csm-' + this.id.substr(3));
        csm.css({left: $this.position().left + 'px', top: $this.position().top + $this.height() + 'px'}).addClass('lastSelected').show();
      }
      else
        $this.show();
    }
    ,
    function() {
      $('.lastSelected').removeClass('.lastSelected').hide();
    }
  );
*/
});

