/*
var articleMapping = {
  full: {
    preCopy: null,
    fields: ['supertitle', 'title', 'subtitle', 'intro', 'text', 'publishedfrom', 'author', 'multimedia'],
    postCop: null
  },
  editor: {
    preCopy: null,
    fields: ['supertitle', 'title', 'subtitle', 'intro', 'text', 'publishedfrom', 'publishedto', 'author'],
    postCop: null
  },
  portlet: {
    preCopy: null,
    fields: ['title', 'publishedfrom'],
    postCop: null
  },
  header: {
    preCopy: null,
    fields: ['supertitle', 'title', {'picture': function() {return 'abc';}}],
    postCop: null
  },
  banner: {
    preCopy: null,
    fields: ['supertitle', 'title', 'multimedia'],
    postCop: null
  }
};

// abstract function for preCopy and postCopy
function preCopy(a) {
  var data = {};
  data.result = null; //
  data.done = false; // return true for no further copying fields 
  return data;
};

// kopiranje članka 
function copyArticle(a, view) {
  var result = {};
  if(articleMapping[view].preCopy) {
    var data = articleMapping[view].preCopy(a);
    if(data.done) {
      return data.result;
    }
  }
  var f, field;
  for(f in articleMapping[view].fields) {
    field = articleMapping[view].fields[f];
    result[field] = a[field];
  };
  if(articleMapping[view].postCopy)
    result = articleMapping[view].postCopy(result);
  return result;
};
*/
/*
var fa = [];
fa.title = 'naslov';
fa.supertitle = 'nadnaslov';
alert(uneval(copyArticle(fa, 'header')));
// procitati dokument osjecaj cekanja

napraviti funkcije za kreiranje izbornika:
 -prepareMenus - slanje zahtjeva za podacima i brisanje postojećih izbornika sa animacijom
 -createMenus - nakon dohvata podataka kreiranje izbornika sa animacijom
 
eventi na hover i click neka budu live
*/

var dlgAlertOptions = {
	//autoOpen: false,
	awidth: 420,
	aheight: 550,
	modal: true,
	show: 'fade',
	hide: 'fade',
	title: 'Poruka',
	resizable: false,
	buttons: {
		"Zatvori": function() { 
			$(this).dialog("close"); 
		} 
	}
};

function formatStr(str) {
  var i;
  for(i = 1; i < arguments.length; i++) {
    str = str.replace('{' + (i - 1) + '}', arguments[i]);
  };
  return str;
}

function dlgAlert(s) {
  $('#alert').text(s).dialog(dlgAlertOptions);
}

function detectLanguage() {
  return 'hr';
}

function writeLanguages(json) {
  var i, l, $template = $('#langid'), el = $template, defLang = detectLanguage().toUpperCase();
  for(i = 0; i < json.list.length; i++) {
    l = json.list[i];
    el = el.clone().attr('id', 'cat' + l.id).text(l.caption).removeClass('selected');
    if(defLang === l.caption.toUpperCase()) {
      el.addClass('selected');
    }
    $template.after(el);
  }
  $template.remove(); // clean-up template
}

function getLanguages() {
  $.ajax({
    url: 'category.php',
    //async: false,
    dataType: 'json',
    data: {
      id: 0, // all languages
      method: 'revlist',
      level: 1
    },
    success: function(json) {
      writeLanguages(json);
      getMenus();
    }
  });
} 

function prepareMenuArticle(contMenu) {
  contMenu.find('.title').text('');
  contMenu.find('.intro').text('');
  //contMenu.find('img').attr('src', '');
}

function writeMenuArticle(contMenu, json) {
  if(!json.length) {
    return;
  }
  var a = json[0];
  contMenu.find('.title').text(a.title);
  if(a.intro) {
    contMenu.find('.intro').text(a.intro);
  }
  else {
    contMenu.find('.intro').html(a.body);
  }
  if((a.multimedia) && (a.multimedia.length)) {
    contMenu.find('img').attr('src', 'image.php?var=menu&item=' + a.multimedia[0].item);
  }
}

function createMenuArticle(contMenu, catID) {
  $.ajax({
    url: 'article.php',
    //async: false,
    dataType: 'json',
    data: {
      id: catID,
      limit: 1,
      method: 'virtual',
      view: 'menu'
    },
    success: function(json) {
      writeMenuArticle(contMenu, json);
    }
  });
  prepareMenuArticle(contMenu);
}

function createSubmenu(cont, mlist, level) {
  var i;
  for(i = 0; i < mlist.length; i++) {
    cont.append($("<div></div>").attr('id', 'cat-' + mlist[i].id).text(mlist[i].caption).addClass('level' + level).addClass('megasubmenu'));
    if(mlist[i].list) {
      createSubmenu(cont, mlist[i].list, level + 1);
    }
  }
}

function writeMegaDrop(m) {
  var el;
  if(m.list) {
    el = $('#submenu-template').clone().attr('id', 'submenu-' + m.id);
    createSubmenu(el, m.list, 1);
    $('#topBanner').before(el);
    createMenuArticle(el, m.id);
  }
}

function prepareMenus() {
  $('#mainMenu ol').empty();
  $('#mainCentralContainer .submenu').remove();
}

function writeMenus(json) {
  var i, m, template = $('#mm-template'), el, newID, cont = $('#mainMenu ol'), bAnimation = true;
  for(i = 0; i < json.list.length; i++) {
    m = json.list[i];
    el = template.clone();
    newID = 'mm-' + m.id;
    el.attr('id', newID).find('a').removeAttr('class').addClass('uiicon').addClass('icon-' + m.shortname).next().text(m.caption);
    if(bAnimation) {
      el.hide();
    };
    cont.append(el);
    writeMegaDrop(m);
  }
  if(bAnimation) {
    cont.children().each(function(a, b) {
        setTimeout(function() {
          $(b).fadeIn(500, function() {
            $(this).css('display', 'block');
          });
        }, 200 * a);
    });
  }
}

function getDropMenu() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  $.ajax({
    url: 'category.php',
    //async: false,
    dataType: 'json',
    data: {
      id: lang,
      method: 'revlist',
      level: 3
    },
    success: writeMenus
  });
  prepareMenus();
}

function createOneLevelSubmenu(id) {
  function writeOneLevelSubmenu(json) {
    if(!json.list.length) {
      return;
    }
    var i, m, $template = $('#csm-template'), el = $template.clone().attr('id', 'csm-' + id).empty(), elBefore = $('#portletViewer > .header .toolbar');
    for(i = 0; i < json.list.length; i++) {
      m = json.list[i];
      el.append($('<div></div>').attr('id', 'ctm-' + m.id).addClass('category-menu').text(m.caption).show());
    }
    elBefore.before(el);
  }

  $.ajax({
    url: 'category.php',
    //async: false,
    dataType: 'json',
    cache: true,
    //contentType: "application/json",
    //data: "id=" + id + "&method=revlist&level=1",
    data: {
      id: id,
      method: 'revlist',
      level: 1
    },
    success: function(json) {
      writeOneLevelSubmenu(json);
    }
  });
}

function hideArticle(a) {
  if(a.length) {
    a.removeClass('fullarticle').addClass('miniarticle').find('.cntScroller').scrollLeft(0).find('.scroller').width(0);
  }
//    var $s = $('.cntScroller', $(this).parent());
//        $s.animate({scrollLeft: newP}, 'slow');
}

function prepareArticles() {
  //$('#articlecontainer').empty();
  hideArticle($('#articlecontainer .fullarticle'));
  //$('#articlecontainer .miniarticle').slideUp();
  $('#articlecontainer .miniarticle').remove(); // save template
  $('#articlecontainer .nodata').remove();
}

function alignScroller(scroller) {
  var iWidth = 0;
  if(!scroller) {
    scroller = $('.fullarticle .multimedia .cntScroller .scroller');
  }
  $('span', scroller).each(function() {
//  $('.fullarticle .multimedia .cntScroller .scroller span').each(function() {
    iWidth = iWidth + $(this).outerWidth(true) + 1; // add 1 for safe rounded width
  });
  //$('.fullarticle .multimedia .cntScroller .scroller').width(iWidth);
  scroller.width(iWidth);
//  scroller.css('width', 'auto');
}

function openArticle(a, bNoScroll) {
  a.removeClass('miniarticle').addClass('fullarticle');
  alignScroller();
  if(!bNoScroll) {
    $('html, body').animate({scrollTop: a.offset().top - 15}, 'slow');
  } 
}

function assignTag(a, el) {
  var i, tag = a.tag, contTag = el.find('.tag'), item;
  contTag.empty();
  for(i = 0; i < tag.length; i++) {
    item = $('<span></span>').addClass('item').text(tag[i].tagvalue);
    if((i > 0) && (i < tag.length)) {
      contTag.append($('<span>, </span>'));
    }
    contTag.append(item);
  }
}

function assignAttribute(a, el) {
  var att = a.attribute;
  el.find('.attList').remove();
  if(!att.length) {
    return;
  }
  el.find('.multimedia').after($('<div></div>').addClass('attList'));
  var contAttribute = el.find('.attList');
  var i, item, iAdd = 0;
  for(i = 0; i < att.length; i++) {
    if(!att[i].value.length) {
      continue;
    }
    iAdd++;
    item = $('<div></div>');
    if((iAdd % 2) === 0) {
      item.addClass('attEven');
    }
    else {
      item.addClass('attOdd');
    }
    item.append($('<span></span>').addClass('attField').text(att[i].attributename + ':'));
    item.append($('<span></span>').addClass('attValue').html(att[i].display));
    contAttribute.append(item);
  }
  if(!att.length) {
    contAttribute.hide();
  }
}

function safeLink(strLink) {
  var strResult = strLink;
  if(strLink.indexOf('@') > 0) {
    if(strLink.indexOf('mailto:') === -1) {
      strResult = 'mailto:' + $.trim(strLink);
    }
  }
  else if(strLink.indexOf('http') === -1) {
    strResult = 'http://' + $.trim(strLink);
  }
  return strResult;
}

function assignLink(a, el) {
  var link = a.link;
  var contLink = el.find('.link');
  contLink.empty();
  contLink.css('display', '');
  var i, item;
  if(link.length) {
    contLink.append($('<div class="header langHR">poveznice</div>'));
    contLink.append($('<div class="header langEN">links</div>'));
  }
  for(i = 0; i < link.length; i++) {
    item = $('<a></a>').addClass('item').attr('alt', link[i].caption).attr('href', safeLink(link[i].address)).attr('target', '_blank').attr('title', link[i].description).text(link[i].caption);
    contLink.append(item);
  }
  if(!link.length) {
    contLink.hide();
  }
}

function assignDocument(a, el) {
  var doc = a.document;
  var contDocument = el.find('.document');
  contDocument.empty();
  contDocument.css('display', '');
  var i, item;
  var docSrc = 'image.php?';
  var bDownload = true;
  if(bDownload) {
    docSrc = docSrc + 'dl=1&';
  }
  docSrc = docSrc + 'item=';
  if(doc.length) {
    contDocument.append($('<div class="header langHR">datoteke za preuzimanje</div>'));
    contDocument.append($('<div class="header langEN">download</div>'));
  }
  for(i = 0; i < doc.length; i++) {
    item = $('<a></a>').addClass('item').attr('alt', doc[i].caption).attr('href', docSrc + doc[i].item).attr('title', doc[i].description).text(doc[i].caption);
    if(!bDownload) {
      item.attr('target', '_blank');
    }
    //img = $('<img />').addClass('item').attr('alt', mm[i].description).attr('src', imgSrc + mm[i].item).attr('title', mm[i].caption).data('info', mm[i]);
    contDocument.append(item);
  }
  if(!doc.length) {
    contDocument.hide();
  }
}

function assignMultimedia(a, el) {
  el.find('.multimedia').css('display', '');
  var mm = a.multimedia;
  var scroller = el.find('.multimedia .cntScroller .scroller');
  scroller.empty();
  var i, item, img, imgSrc = 'image.php?var=thumb&item=';
  for(i = 0; i < mm.length; i++) {
    item = $('<span></span>');
    img = $('<img />').addClass('item').attr('alt', mm[i].description).attr('src', imgSrc + mm[i].item).attr('title', mm[i].caption).data('info', mm[i]).removeAttr('width').removeAttr('height');
    item.append(img);
    scroller.append(item);
    img.load(function() {
      alignScroller($(this).parent().parent());
      //alignScroller($(this).parents('.scroller'));
      //alignScroller(scroller);
    });
  }
  if(!mm.length) {
    el.find('.multimedia').hide();
  }
}

function writeArticle(a, el) {
  assignTag(a, el);
  assignAttribute(a, el);
  assignDocument(a, el);
  assignLink(a, el);
  assignMultimedia(a, el);
  el.find('.supertitle').text(a.supertitle);
  el.find('.title').text(a.title);
  el.find('.subtitle').text(a.subtitle);
  el.find('.published').text(a.publishfrom);
  el.find('.intro').text(a.intro);
  el.find('.text').html(a.body);
  el.find('.author').text(a.author);
  return el;
}

function writeArticles(json) {
  var i, a, cDisplay = 0, $template = $('#art-template'), el, elAppend = $('#articlecontainer'), bAnimation = false, lang = $('#topMenu .language.selected')[0].id.substr(3);
  for(i = 0; i < json.list.length; i++) {
    a = json.list[i];
    if((i === 0) && (a.category === lang)) { // first article in root category display only in header banner
      writeHeader(a);
      continue;
    } 
    cDisplay++;
    el = $template.clone().attr('id', 'art-' + a.id);
    el = writeArticle(a, el);
    elAppend.append(el);
    if(bAnimation) {
      el.hide();
    }
    else {
      el.show();
    }
    if((json.list.length === 1) || ((json.list.length === 2) && (a.category === lang))) {
      openArticle(el, (a.category === lang));
    }
  }
  if(!cDisplay && !i) {
    if($('#portletViewer .header .globalSearchResult').length) { // found articles
      elAppend.append($('<div class="nodata langHR">Nije pronađen ni jedan članak</div>'));
      elAppend.append($('<div class="nodata langEN">No article found</div>'));
    }
    else {
      elAppend.append($('<div class="nodata langHR">U izabranoj kategoriji nema sadržaja</div>'));
      elAppend.append($('<div class="nodata langEN">There is no content in the selected category</div>'));
    }
  }
  else if(bAnimation){
    elAppend.children().each(function(a, b) {
        setTimeout(function() {
            $(b).show("fade", {direction: "right"}, 0);
        }, 100*a);
    });
  }
}

function refreshCategorySearchSortAttributes() {
  var cat = $('#portletViewer > .header .category:last');
  var attList = cat.data('attlist'), i, el, at;
  var filterbyattribute = $('#filterbyattribute'), sortbyattribute = $('#sortbyattribute').empty();
  filterbyattribute.find('option[value!=all]').remove();
  for(i = 0; i < attList.length; i++) {
    at = attList[i];
    el = $('<option></option>').text(at.filtername).attr('value', at.attribute);
    filterbyattribute.append(el);
    sortbyattribute.append(el.clone());
  }
}

function selectOption(el) {
  el.each(function() {
    var $this = $(this);
    if($this.css('display') !== 'none')
      this.selected = true;
  });
}

function prepareSearchSort(strType, strSearch, catID) {
  // $.datepicker.setDefaults($.datepicker.regional['en']); // sloziti da se na promjenu jezika promijeni postavka datepickera
  var searchf = $('#searchform');
  var sortf = $('#sortform');
  var bGlobal = !catID;
  if(bGlobal) {
    $('#portletViewer > .header .category:visible').remove();
    catID = $('#topMenu .language.selected')[0].id.substr(3);
  }
  if(strType === 'default') {
    searchf.find('#searchtext').val(strSearch);
    searchf.find('#searchtag').val('');
    searchf.find('input[name=domain]').val(['active']);
    selectOption(searchf.find('#publishdate option[value=all]'));
    $('#publishdate').change();
    selectOption(searchf.find('#filterbyattribute option[value=all]'));
    $('#filterbyattribute').change();
    selectOption(searchf.find('#limit option[value=all]'));
    searchf.find('#allcategories').val(bGlobal ? 'yes' : 'no');
    searchf.find('#categorysearch').val(catID);
    selectOption(sortf.find('#sortbyattribute option[value=1]'));
    sortf.find('input[name=sorttype]').val(['newest']);
    if(!bGlobal) {
      refreshCategorySearchSortAttributes();
      $('#portletViewer .header .toolbar .sortedFiltered').show();
    }
  }
  else if(strType === 'tag') {
    prepareSearchSort('default', '', false);
    searchf.find('#searchtag').val(strSearch);

    var elPrepend = $('#portletViewer > .header');
    elPrepend.find('.globalSearchResult').remove();
    elPrepend.prepend($('<span></span>').addClass('langHR globalSearchResult').text('Članci označeni sa ključnom riječi "' + strSearch + '"'));
    elPrepend.prepend($('<span></span>').addClass('langEN globalSearchResult').text('Articles with tag "' + strSearch + '"'));

    $('#portletViewer .icon-search').hide();
    $('.toolbar .icon-form').hide();
    $('#mainMenu .selectedCategory').removeClass('selectedCategory');
    $('#portletViewer .header .toolbar .sortedFiltered').hide();
  }
  else if(strType === 'global') {
    prepareSearchSort('default', strSearch, false);

    var elPrepend = $('#portletViewer > .header');
    elPrepend.find('.globalSearchResult').remove();
    elPrepend.prepend($('<span></span>').addClass('langHR globalSearchResult').text('Rezultat pretraživanja "' + strSearch + '"'));
    elPrepend.prepend($('<span></span>').addClass('langEN globalSearchResult').text('Search results "' + strSearch + '"'));

    $('#portletViewer .icon-search').hide();
    $('.toolbar .icon-form').hide();
    $('#mainMenu .selectedCategory').removeClass('selectedCategory');
    $('#portletViewer .header .toolbar .sortedFiltered').hide();
  }
  else {
    dlgAlert('unknown prepare search/sort type ' + strType);
  }
}

function getFilter() {
  var f = $('#searchform');
  var result = {
    searchtext: f.find('#searchtext').val(),
    searchtag: f.find('#searchtag').val(),
    domain: f.find('[name=domain]:checked').val(),
    publishdate: f.find('#publishdate').val(),
    filterbyattribute: f.find('#filterbyattribute').val(),
    frominterval: f.find('#frominterval').val(),
    tointerval: f.find('#tointerval').val(),
    attributevalue: f.find('#investorlist').val(),
    limit: f.find('#limit').val(),
    global: f.find('#allcategories').val(),
    id: f.find('#categorysearch').val() // category
  };
  if(result.publishdate === 'interval') {
    result.fromdate = f.find('#fromdate').val();
    result.todate = f.find('#todate').val();
  }
  return result;
}

function getSort() {
  var f = $('#sortform'), st = f.find('input:[name=sorttype]:checked').val();
  var result = {
    sorttype: st
  };
  if(st === 'attribute') {
    result.sortbyattribute = f.find('#sortbyattribute').val()
  }
  return result;
}

function setSearchSortStatus() {
  var sortedBy = getSort(), filteredBy = getFilter(), strAttributeName, strSortedHR, strSortedEN, strFilteredHR, strFilteredEN;
  if(sortedBy.sorttype === 'newest') {
    strSortedHR = 'od najnovijeg članka';
    strSortedEN = 'from newest article';
  }
  else {
    strAttributeName = $('#sortform #sortbyattribute option:selected').text();
    strSortedHR = 'po atributu "' + strAttributeName + '"';
    strSortedEN = 'by attribute "' + strAttributeName + '"';
  }
  if(filteredBy.limit === 'all') {
    strFilteredHR = 'svi';
    strFilteredEN = 'all';
  }
  else {
    strFilteredHR = 'posljednjih ' + filteredBy.limit;
    strFilteredEN = 'last ' + filteredBy.limit;
  }
  $('#portletViewer .header .toolbar .sortedFiltered .langHR .sortedValue').text(strSortedHR);
  $('#portletViewer .header .toolbar .sortedFiltered .langEN .sortedValue').text(strSortedEN);
  $('#portletViewer .header .toolbar .sortedFiltered .langHR .filteredValue').text(strFilteredHR);
  $('#portletViewer .header .toolbar .sortedFiltered .langEN .filteredValue').text(strFilteredEN);
}

function getArticles(aIDSelected) {
//  var cat = $('#portletViewer > .header .category.selected');
  var cat = $('#portletViewer > .header .category:last');
  var catID = cat[0].id.substr(4);
  $('#searchform').find('#categorysearch').val(catID);
  setSearchSortStatus();
  $.ajax({
    url: 'article.php',
    //type: 'POST',
    //async: false,
    dataType: 'json',
    data: {
//      id: catID,
      method: 'list',
      view: 'full',
      //filter: $('#searchingsorting form:eq(0)').serialize(),
      filter: getFilter(),
      //sort: $('#searchingsorting form:eq(1)').serialize()
      sort: getSort()
    },
    success: function(json) {
      prepareArticles();
      writeArticles(json);
      if(aIDSelected) {
        openArticle($('#art-' + aIDSelected));
      }
    }
  });
  var strEmail = cat.data('email');
  if(strEmail) {
    $('.mail #catid').val(catID).next().text('Upit za ' + strEmail);
    $('.toolbar .icon-form').show();
  }
  else {
    $('.toolbar .icon-form').hide();
    $('#mailform').hide();
  }
  var bShowDate = cat.data('showDate');
  if(bShowDate) {
    $('#portletViewer').removeClass('nodate');
  }
  else {
    $('#portletViewer').addClass('nodate');
  }
}

function writeHeaderCategory(json, aID) {
  $('#mainMenu .selectedCategory').removeClass('selectedCategory');
  $('.header .category-submenu').remove();
  var i, m, $template = $('#shc-template'), el, elPrepend = $('#portletViewer > .header');
  $('#portletViewer > .header .category').remove();
  $('#portletViewer > .header .globalSearchResult').remove();
  $('#portletViewer .icon-search').hide();
  for(i = 0; i < json.list.length; i++) { // don't display language
    m = json.list[i];
    el = $template.clone().attr('id', 'shc-' + m.id).text(m.caption).show();
    el.data('email', m.email);
    el.data('showDate', parseInt(m.showdate, 10));
    el.data('attlist', m.attlist);
    elPrepend.prepend(el);
    if(i === 0) {
      el.addClass('selected')
      prepareSearchSort('default', '', m.id); // list only language category
      getArticles(aID);
      if(json.list.length === 1) {
        $('#portletViewer .icon-search').hide();
        $('#searchingsorting').hide();
      }
      else {
        $('#portletViewer .icon-search').show();
      }
    }
    if(i === (json.list.length - 1)) {
      el.hide();
    }
    if(i === (json.list.length - 2)) { // select show category icon in header
      $('#mm-' + m.id).addClass('selectedCategory').find('.uiicon').css('visibility', '');
    }
    createOneLevelSubmenu(m.id);
  }
}

function selectCategory(id, aID) {
  $.ajax({
    url: 'category.php',
    //async: false,
    dataType: 'json',
    data: {
      id: id,
      method: 'list',
      level: 0
    },
    success: function(json) {
      writeHeaderCategory(json, aID);
    }
  });
}

function getMenu(obj) {
  return $('#mm-' + obj.id.substr(8));
}

function conditionalHideMenu() {
  $('#mainMenu .uiicon:visible').each(function() {
    var $this = $(this);
    var menu = $this.parent();
    var bInsideMenu = menu.data('insideMenu');
    var bInsideCategorySelector = menu.data('insideCategorySelector');
    var sm;

    if(!bInsideMenu && !bInsideCategorySelector) {
      sm = $('#submenu-' + menu[0].id.substr(3));
      sm.stop(true, true);
      sm.hide();
      //$this.fadeOut();
      if(!menu.hasClass('selectedCategory')) {
        menu.find('.uiicon').css('visibility', 'hidden');
      }
    }
  });
}

$('.megasubmenu, .category-menu, #portletViewer > .header .category, #portletNews .item, #portletSelected .item, #mainMenu li').live('click', function() {
  var $this = $(this);
  var aID;
  //alert(this.id.substr(4));
  if($this.hasClass('category')) {
    if(!$this.hasClass('selected')) {
      $('#portletViewer .category.selected').removeClass('selected');
      $this.addClass('selected').nextAll('.category').remove();
    }
    prepareSearchSort('default', '', this.id.substr(4));
    getArticles();
  }
  else if($this.hasClass('item')) {
    aID = this.id.substr(4);
    var cID = $this.find('.category')[0].id;
    cID = cID.substr(cID.indexOf('-', 5) + 1); // after 2nd '-'
    selectCategory(cID, aID);
  }
  else if(this.nodeName === 'LI') {
    selectCategory(this.id.substr(3));
  }
  else { // megasubmenu, category-menu
    selectCategory(this.id.substr(4));
    if($this.hasClass('megasubmenu')) {
      $this.parent('.submenu').data('insideCategorySelector', false);
      conditionalHideMenu();
    }
  }
});

function prepareActual() {
  $('#portletNews .item').remove();
  $('#portletNews').hide();
}

function writeActual(json) {
  var i, a, $template = $('#aap-template'), $cont = $('#portletNews .footer'), el;
  for(i = 0; i < json.length; i++) {
    a = json[i];
    el = $template.clone().attr('id', 'aap-' + a.id).hide();
    el.find('.title').text(a.title);
    el.find('.published').text(a.publishfrom + ' | ');
    el.find('.category').attr('id', 'capp-' + a.id + '-' + a.category).text(a.categoryname);
    $cont.before(el);
    if(i < 5) { // show first 3
      el.show();
    }
  }
  if(json.length) {
    $('#portletNews').fadeIn(1000);
  }
}

function refreshActual() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  $.ajax({
    url: 'article.php',
    //async: false,
    dataType: 'json',
    data: {
      method: 'virtual',
      view: 'actual',
      id: (lang === '1')? 4 : 188, // hard coded (4 for novosti, 188 for news)
      limit: 10
    },
    success: writeActual
  });
  prepareActual();
}

function prepareSelected() {
  $('#portletSelected .item').remove();
  $('#portletSelected').hide();
}

function writeSelected(json) {
  var i, a, $template = $('#asp-template'), $cont = $('#portletSelected .footer'), el;
  for(i = 0; i < json.length; i++) {
    a = json[i];
    el = $template.clone().attr('id', 'asp-' + a.id).hide();
    el.find('.title').text(a.title);
    el.find('.published').text(a.publishfrom + ' | ');
    el.find('.category').attr('id', 'cspp-' + a.id + '-' + a.category).text(a.categoryname);
    $cont.before(el);
    if(i < 5) { // show first 3
      el.show();
    }
  }
  if(json.length) {
    $('#portletSelected').fadeIn(1000);
  }
}

function refreshSelected() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  $.ajax({
    url: 'article.php',
    //async: false,
    dataType: 'json',
    data: {
      method: 'virtual',
      view: 'selected',
      id: lang,
      limit: 10
    },
    success: writeSelected
  });
  prepareSelected();
}

function getMiniPortlets() {
  refreshActual();
  refreshSelected();
}

function prepareHeader() {
  $('#topBanner').hide();
}

function writeHeader(a) {
  if(a.multimedia.length) {
    $('#topBanner').css('background-image', 'url("image.php?item=' + a.multimedia[0].item + '")');
    if(a.multimedia.length > 1) {
      $('#bgBanner').css('background-image', 'url("image.php?item=' + a.multimedia[1].item + '")');
    }
  }
  else {
    $('#bgBanner').css('background-image', 'url("css/standard/images/bg/bp_04.jpg")');
  }
  var headerArticle = $('#topBanner .headerarticle');
  headerArticle.find('.supertitle').text(a.supertitle);
  headerArticle.find('.title').text(a.title);
  headerArticle.find('.intro').text(a.intro);
  headerArticle.attr('id', 'hat-' + a.id);
  headerArticle.data('info', a);
  $('#topBanner').show();
}

function getHeader() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  $.ajax({
    url: 'article.php',
    //async: false,
    dataType: 'json',
    data: {
      id: lang,
      limit: 1,
      method: 'virtual',
      view: 'banner'
    },
    success: function(json) {
      var a;
      if(!json.length) {
        return;
      }
      a = json[0];
      writeHeader(a);
    }
  });
  prepareHeader();
}

function prepareTagCloud() {
  $('#portletTags .item').empty();
  $('#portletTags').hide();
}

function writeTagCloud(json) {
  var i, tag = json.cloud, minSize = 9, maxSize = 17, l = maxSize - minSize, contTagCloud = $('#portletTags .item'), iFontSize, fsum = json.fsum, item = '';
  for(i = 0; i < tag.length; i++) {
    iFontSize = minSize + (tag[i].f / fsum * l);
    item += '<span style="font-size: ' + iFontSize + 'px;">' + tag[i].tagvalue + '</span>';
    if(i < tag.length) {
      item += ', ';
    }
  }
  if(tag.length) {
    contTagCloud.append($(item));
    $('#portletTags').fadeIn(1000);
  }
}

function getTagCloud() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  $.ajax({
    url: 'article.php',
    //async: false,
    dataType: 'json',
    data: {
      limit: 10,
      id: lang,
      method: 'tagcloud'
    },
    success: writeTagCloud
  });
  prepareTagCloud();
}

function prepareInvestorList() {
  $('#investorlist').empty();
}

function createInvestorList(json) {
  var cont = $('#investorlist'), i, e;
  for(i = 0; i < json.length; i++) {
    e = json[i];
    cont.append($('<option></option>').text(e.name).attr('value', e.name));
  }
}

function refreshInvestorList(lang) {
  $.ajax({
    url: 'article.php',
    //async: false,
    dataType: 'json',
    data: {
      id: lang,
      method: 'investorlist'
    },
    success: createInvestorList
  });
  prepareInvestorList();
}

function startUp() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  selectCategory(lang);
  refreshInvestorList(lang);
}

$('.headerLogo').live('click', function() {
  startUp();
  return false;
});

$('#portletTags .item span, #articlecontainer .fullarticle .tag span').live('click', function() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  var strTag = $(this).text();
  prepareSearchSort('tag', strTag, false);
  getArticles();
  return false;
});

function getMenus() {
  var lang = $('#topMenu .language.selected')[0].id.substr(3);
  $('body').removeAttr('class').addClass('lang' + lang);
  //getHeader();
  getDropMenu();
  getMiniPortlets();
  getTagCloud();
  startUp();
}

function initData() {
  getLanguages();
}

$('#topMenu .language').live('click', function() {
  $('#topMenu .language.selected').removeClass('selected');
  $(this).addClass('selected');
  getMenus();
  return false;
});

