//config
var ROOT_URL = "http://fvu.analyticadesign.sk/htdocs/";
var REDIR_RESPONSE_CODE = 307;

  /**
* Write good message
*/
function writeGoodMessage(message)
{
  $("#good_message").html(message);
  $("#good_message").css("display","block");
  $("#error_message").html("");
  $("#error_message").css("display","none");
}

/**
* Write error message
*/
function writeErrorMessage(message)
{
  $("#good_message").html("");
  $("#good_message").css("display","none");
  $("#error_message").html(message);
  $("#error_message").css("display","block");
}

/**
* Write error message
*/
function appendErrorMessage(message)
{
  $("#good_message").html("");
  $("#good_message").css("display","none");
  $("#error_message").html($("#error_message").html()+"<br>"+message);
  $("#error_message").css("display","block");

}

$(document).ready(function(){
  
  $(document).ajaxStart(function(){
    if($("#progressDialog").length==0)
    {
      $("body").append('<div id="progressDialog"><img src="'+ROOT_URL+'ressources/images/ajax-loader.gif"></div>');
      $("#progressDialog").dialog({
        autoOpen: false,
        title: 'Nahrávam'
      });
    }
    $("#progressDialog").parent().addClass("box-shadow");
    $("#progressDialog").dialog("open");
  });

  //init on hover menu scrollmenu
  $('#scrollMenu li ul').css({position: 'absolute'});
  $('#scrollMenu li').hover(function(){
	  	$(this).css({background: 'url('+ROOT_URL+'ressources/images/top_menu_hover.png)', color: '#ddd'});
	  	$(this).find('ul').stop(true, true).animate({opacity: "show"});
	  },function(){
		$(this).css({background: 'url('+ROOT_URL+'ressources/images/top_menu.png)', color: '#fff'});
	  	$(this).find('ul').stop(true, true).animate({opacity: "hide"});
	  });
  $('#scrollMenu li ul li').hover(function(){
	  	$(this).css({background: "#971111"});
	  	$(this).find('a').css({color: "#fff"});
	  },function(){
	  	$(this).css({background: "transparent"});
	  	$(this).find('a').css({color: "#971111"});
	  });
  
  $(document).ajaxComplete(function(event, XMLHttpRequest, ajaxOptions){
    $("#progressDialog").dialog("close");
  });
  
  $(document).ajaxError(function(event, XMLHttpRequest, ajaxOptions){
    $("#progressDialog").dialog("close");
    //check default errors for special handling
    if (XMLHttpRequest.status==REDIR_RESPONSE_CODE)
    {
      document.location= $.parseJSON(XMLHttpRequest.responseText);
    }
  });
  
  bindings();
});

function bindings()
{

	  //initialize button elements
	  $( "button, input:submit, input:button" ).button();
	  
	  bindMouseEvents();
}

/**
 * 
 * callback for filtered rows, if you needed to preserve striped lines colors
 * http://www.picnet.com.au/picnet_table_filter.html
 */
var filterRowIndex = 0;
var filterTotalCount=0;
function filterMatchRowCallback(state, tr, textTokens)
{
  if (filterRowIndex == 0) {
    tr.addClass('table_odd_row').removeClass('table_even_row');
    filterRowIndex=1;
  }
  else{
    tr.addClass('table_even_row').removeClass('table_odd_row');
    filterRowIndex=0;
  };
 
  filterTotalCount++;
  return true;
}

function stripeTableLines(tableBody)
{
	tableBody.children().each(function(index) {
		filterMatchRowCallback(null,$(this));
	});

}

function filterFinishedCallback(filterStates)
{
	$("#totalRows").html(filterTotalCount);
	filterTotalCount=0;
}


/**
* Bind mouse events to icon classes
*/
function bindMouseEvents()
{
  $('.ui-state-default').unbind("mouseover");
  $('.ui-state-default').unbind("mouseout");
  $('.ui-state-default').mouseover(function(){
    $(this).addClass("ui-state-active");
  });
  $('.ui-state-default').mouseout(function(){
    $(this).removeClass("ui-state-active");
  });
}

function dump(arr,level) { //equivalent function with php print_r
  var dumped_text = "";
  if(!level) level = 0;

  //The padding given at the beginning of the line.
  var level_padding = "";
  for(var j=0;j<level+1;j++) level_padding += "    ";
  
  if(typeof(arr) == 'object') { //Array/Hashes/Objects
    for(var item in arr) {
      var value = arr[item];
 
      if(typeof(value) == 'object') { //If it is an array,
        dumped_text += level_padding + "'" + item + "' ...\n";
        dumped_text += dump(value,level+1);
      } else {
        dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
      }
    }
  } else { //Stings/Chars/Numbers etc.
  dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
  }
  return dumped_text;
} 

