/*
function bindListing(){
  $('.listItem a').unbind('click').click(function(){
    $.get($(this).attr('href'), function(data){
      $('#main-content').delay(800).fadeOut(200, function(){
        $('#main-content').html(data).slideDown(1000);
      });
    });
  return false;
  });
}
*/

function buildListUrl(urlbase, paramname, paramlist, uriencode) {
  var queryurl = urlbase;
  for (idx in paramlist){
    queryurl = queryurl + paramname + ':list='+paramlist[idx]+'&';
  }
  if (uriencode){
    return encodeURI(queryurl);
  } else { return queryurl }
}

function switchContentModes(){
  bc = $('#button-content');
  bl = $('#button-listing');
  mc = $('#main-content');
  lc = $('#listing-content');
  if (bc.hasClass('selected')){
    bc.removeClass('selected');
    bl.addClass('selected');
    mc.fadeOut('fast',function(){
      lc.fadeIn('fast');
    });
  } else {
    bl.removeClass('selected');
    bc.addClass('selected');
    lc.fadeOut('fast',function(){
      mc.fadeIn('fast');
    });
  }
};

function getHistory() {
    $.getJSON('/ascr/getHistory', function(data) {
      $('#history-list').hide(0, function(){
        
        var hlist='';
        data.reverse();
        var ndata=data.slice();
        if (data.length > 20) { ndata=data.slice(0,20); }
        for (hitem in ndata){
          var nodecat = ndata[hitem].node.split(':')[0];
          var nodename = ndata[hitem].node.split(':')[1];
          var nodequery = ndata[hitem].query;
          hlist=hlist + '<span class="node '+ nodecat +'" index="'+ hitem +'" nodeid="'+ ndata[hitem].node  +'">'+ nodename +'</span>';
        }
        $(this).html(hlist).slideDown('fast', function(){
          $('#history-list .node').click(function(){
            var nodequery = data[parseInt($(this).attr('index'))].query;
            var nodeid = $(this).attr('nodeid');

            glob_taglist = Array();
            glob_taglist.push(nodeid);
            $.getJSON('/fnssite/ascrGetTagMapJSON',{'tagid':nodeid}, function(data) {
              rgraph.loadJSON(data);
              rgraph.graph.eachNode(function(n) {
                var pos = n.getPos();
                pos.setc(0, 0);
              });
              rgraph.compute('end');
              rgraph.fx.animate({
                modes:['polar'],
                duration: 1000
              });
            });

            var taglisturl = buildListUrl('/fnssite/modGetItemsByTag?', 'taglist', nodequery, false);
            $.get(encodeURI(taglisturl), function(data){
               $('#main-content, #listing-content').delay(800).fadeOut(200, function(){
                 $('#button-listing, #button-content').removeClass('selected');
                 $('#button-listing').addClass('selected');
                 $('#listing-content').html(data).slideDown(1000);
               });
            });
            
          });
        });
      });
    });
}


$(document).ready(function() {
  $('#button-content, #button-listing').click(function(){switchContentModes()});
  getHistory();
});


function decorateRelatedTags() {
  $("#boxtags .node").hover(function() {
    var appnode = $(this).clone();
    appnode.attr("tagid",appnode.attr("tagid").trim());
    appnode.css({"opacity":0.3});
    appnode.appendTo($("#content-taglist"));
  },function() {
    var tagid = $(this).attr("tagid").trim();
    $('span[tagid|='+tagid+']',"#content-taglist").remove();
  });
}

function filterListing() {
  function togglesel(item){
    if (item.hasClass('selected')){
      item.removeClass('selected');
    } else { item.addClass('selected')}
    if ($('#meta-filter .init').length) {
      $('#meta-filter .init').removeClass('init');
    } 
    if (!$('#meta-filter .selected').length) {
      $('#meta-filter .filter').addClass('init');
    }

  }
  $("#meta-filter .filter").click(function(){
    togglesel($(this));
    if ($("#meta-filter .filter.selected").length) {
      $('#content-listing .listItem').hide(0);
    } else {
      $('#content-listing .listItem').show('fast');
    }
    $("#meta-filter .filter.selected").each(function(){
      $('#content-listing .listItem.'+$(this).attr('filterclass')).show('fast');
    });
  });

}

function bindSearchresults() {
  switchContentModes();
  filterListing();
}

function bindNodes(nodes){
 nodes.click(function(){
     glob_taglist = Array();
     glob_taglist.push($(this).attr('tagid'));
     $.getJSON('/fnssite/ascrGetTagMapJSON',{'tagid':$(this).attr('tagid')}, function(data) {
       rgraph.loadJSON(data);
       rgraph.graph.eachNode(function(n) {
         var pos = n.getPos();
         pos.setc(0, 0);
       });
       rgraph.compute('end');
       rgraph.fx.animate({
         modes:['polar'],
         duration: 1000
       });
     });

     var taglisturl = buildListUrl('/fnssite/modGetItemsByTag?', 'taglist', Array($(this).attr('tagid')),false);
     // var taglisturl = '/fnssite/modGetItemsByTag?taglist:list=' + $(this).attr('tagid');
     $.get(encodeURI(taglisturl), function(data){
       $('#main-content').delay(800).fadeOut(200, function(){
         $('#button-listing, #button-content').removeClass('selected');
         $('#button-listing').addClass('selected');
         $('#listing-content').html(data).slideDown(1000);
       });
     });
  return false;
  });

} 

function bindContentmeta(){
  bindNodes($('#content_meta .node'));
}
function bindTagCloud(){
  bindNodes($('#content a'));
}

function bindListing() {
  filterListing();
  decorateRelatedTags();
  $('#content-taglist .node').click(function(){
    if (glob_taglist.length>1) {
      var taglisturl= '/fnssite/modGetItemsByTag?';
      var n_glob_taglist = Array();
      for (elem in glob_taglist) {
        if (!(glob_taglist[elem]==String($(this).attr('tagid')))) {
          n_glob_taglist.push(glob_taglist[elem]);
        }
      }
      glob_taglist = n_glob_taglist;
      for (tagid in glob_taglist) {
        taglisturl = taglisturl +  'taglist:list='+glob_taglist[tagid]+'&';
      }
      $.get(encodeURI(taglisturl), function(data){
        $('#main-content').delay(800).fadeOut(200, function(){
          $('#button-listing, #button-content').removeClass('selected');
          $('#button-listing').addClass('selected');
          $('#listing-content').html(data).slideDown(1000);
        });
      });
    } 
    return false;
  });
  
  $('#content-listing_meta .node').click(function(){
      $.getJSON('/fnssite/ascrGetTagMapJSON',{'tagid':$(this).attr('tagid')}, function(data) {
       rgraph.loadJSON(data);
       rgraph.graph.eachNode(function(n) {
         var pos = n.getPos();
         pos.setc(0, 0);
       });
       rgraph.compute('end');
       rgraph.fx.animate({
         modes:['polar'],
         duration: 1000
       });
     });
     var taglisturl = '/fnssite/modGetItemsByTag?';
     glob_taglist.push($(this).attr('tagid'));
     for (tagid in glob_taglist) {
       taglisturl = taglisturl +  'taglist:list='+glob_taglist[tagid]+'&';
     }
     $.get(encodeURI(taglisturl), function(data){
       $('#main-content').delay(800).fadeOut(200, function(){
          $('#button-listing, #button-content').removeClass('selected');
          $('#button-listing').addClass('selected');
          $('#listing-content').html(data).slideDown(1000);
       });
     });
  return false;
  });
} 

function renderLastQuery() {
  $.getJSON('/ascr/getHistory', function(data) {
     var lastquery = data.pop().query;
     var taglisturl = buildListUrl('/fnssite/modGetItemsByTag?', 'taglist', lastquery,false);
     $.get(encodeURI(taglisturl), function(data){
         $('#listing-content').html(data);
     });
    
  });  
}


