/**
 * showIN
 * @brief switch inDigg-tab
 * @param[in]  tab       Tab index
 **/
function showIN( tab ) {
	if( "undefined" == typeof( ingame_path) || "undefined" == typeof( leaf_id ))
		return;

	var tab, cache;
	var url = ingame_path + 'in/a/1/l/' + leaf_id;
	switch( tab ) {
		case "upcoming":
			url += "/u/1";
			tab = 1;
			break;
		case "mostPopular24":
			url += "/m/86400";
			tab = 2;
			break;
		case "mostPopularEver":
			url += "/m/0";
			tab = 3;
			break;
		case "mostPopular":
		default:
			tab = 0;
			break;
	}
  new Ajax.Updater('ajax_content', url, {
  		method: 'get',
      evalScripts: true,

      onCreate: function() {
        $( 'ajax_loader' ).style.display = "block";
        showTab( 'IN', tab );
      },
      onComplete: function() {
        $( 'ajax_loader' ).style.display = "none";
      },
      onSuccess: function(transport) {
        $( 'ajax_content' ).innerHTML = transport.responseText;
      },
      onFailure: function() {
        $( 'content' ).innerHTML = "Es ist ein Fehler aufgetreten";
      }
  });
}

/**
 * vote
 * @brief vote for a content and update vote count
 * @param[in]  id       Content id
 **/
function vote( id ) {
	if( "undefined" == typeof( ingame_path) )
		return;

	var url = ingame_path + 'in/vote/a/1/c/' + id;
	new Ajax.Request( url, {
		method: 'get',
		onSuccess: function(transport) {
			$('in_' + id).innerHTML = transport.responseText;
      $('in_' + id).className = 'in_icon_voted';
      $('vote_in_url_' + id).href = "#";
		}
	});
}

/**
 * out
 * @brief mark content as OUT and hide it
 * @param[in]  id       Content id
 * @param[in]  reason   Reason
 **/
function out( id, reason ) {
	if( "undefined" == typeof(ingame_path) )
		return;

	var reasonPart = "undefined" == typeof(reason) ? '' : '/reason/' + reason;
	new Ajax.Request(
		ingame_path + 'in/out/a/1/c/' + id + reasonPart,
		{ method: 'get' }
	);

	$( 'news_' + id ).style.display = "none";
	$( 'out_options_' + id ).style.display = "none";
	$( 'out_' + id ).style.display = "block";
}

/**
 * unout
 * @brief make an out'd news visible again
 * @param[in]  id       Content id
 * @param[in]  baseurl  Base URL
 **/
function unout( id, baseurl ) {

	new Ajax.Request( baseurl + 'in/unout/a/1/c/' + id, { method: 'get' } );
	$( 'news_' + id ).style.display = "block";
	$( 'out_' + id ).style.display = "none";
	$( 'unout_options_' + id ).style.display = "none";
}

var currentTab = new Array();

function showTab( tablist, tab ) {
	if ( "undefined" == typeof currentTab[ tablist ] ) {
		currentTab[ tablist ] = getCurrentTab( tablist );
	}

	getTabListNode( tablist, currentTab[ tablist ] ).className = "";
	getTabListNode( tablist, tab ).className = "current";

	currentTab[ tablist ] = tab;
}

function getCurrentTab( tablist ) {
	var node = $( "tablist" + tablist );
	for ( var i = 0; i < node.childNodes.length; i++ ) {
		if ( "li" == node.childNodes[ i ].nodeName.toLowerCase() ) {
			if ( "current" == node.childNodes[ i ].className ) {
				return i - 1;
			}
		}
	}
	return 0;
}

function getTabListNode( tablist, tab ) {
	var node = $( "tablist" + tablist );
	var count = 0;
	for ( var i = 0; i < node.childNodes.length; i++ ) {
		if ( "li" == node.childNodes[ i ].nodeName.toLowerCase() ) {
			if ( count == tab ) {
				return node.childNodes[ i ];
			}
			count++;
		}
	}
	return null;
}

/* style switcher */

function setStyle( title ) {
   var i, a, main;
   for( i=0; (a = document.getElementsByTagName("link")[i]); i++ ) {
     if( a.getAttribute( "rel" ).indexOf( "style" ) != -1 && a.getAttribute( "title" )) {
       a.disabled = true;
       if( a.getAttribute("title") == title )
	 a.disabled = false;
     }
   }
}

 /** loadComments
  * @brief Load comments via ajax
  * @author Christoph Kappel <unexist@dorfelite.net>
  * @param[in]  id       Content id
  * @param[in]  baseurl  Base URL
  **/

function loadComments(id, baseurl)
{

  new Ajax.Updater("comments_" + id,
    baseurl + "comments/ajax/c/" + id + "/p/1",
    {
  		method: 'get',
      evalScripts: true,

      /* Callbacks */
      onLoading: function() {
        Element.show("comments_link_spinner_" + id);
      },
      onComplete: function() {
        Element.hide("comments_link_spinner_" + id);
        Element.hide("comments_link_ajax_" + id);
        Element.show("comments_link_" + id);
      },
      onSuccess: function() {
        Element.show("comments_" + id); ///< Avoid juddering
      }
    }
  );
}
