//config
var ROOT_URL = "/";
var REDIR_RESPONSE_CODE = 307;
var MAIN_SLIDER_POSITION = 'left';


$(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").dialog("open");
  });

  $(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();
  
  //remove border from last child in footer
  $('#footer ul li:last-child').css('border','none');
  
  //show offers desc on mouse over
  $(".offer").hover(
		  function () {
		    $(this).find('.desc').stop(true, true).fadeIn(400);
		    //$(this).switchClass($(this).attr("id")+"img","none", 800);
		  }, 
		  function () {
			  $(this).find('.desc').stop(true, true).fadeOut(400);
			  
		  } 
	);
		$.History.bind(function(state){
			if(state == 'homepage')slideToPage(1,2);
			if(state == 'contact')slideToPage(1,1);
			if(state == 'web_stranky')slideToPage(1,3,3);
			if(state == 'streaming')slideToPage(1,3,4);
			if(state == 'outsourcing')slideToPage(1,3,5);
			if(state == 'portals')slideToPage(1,3,6);
			if(state == 'mobiles')slideToPage(1,3,7);
			if(state == 'programs')slideToPage(1,3,8);
			if(state == 'event_1')slideToPage(2,2);
			if(state == 'event_2')slideToPage(2,3);
			if(state == 'event_3')slideToPage(2,4);
			if(state == 'event_4')slideToPage(2,5);
			
			//push google analytics page hit
			_gaq.push(['_trackPageview', state]);
			
	    });
  
});

$(function() {

	// initialize scrollable
	$(".scrollable").scrollable().navigator("#main_navi");

});

//initialize sliders
$(function () {

	$('#sliderMain').anythingSlider({
		  startStopped   : true,
		  theme			 : 'adesign',
		  toggleControls : true,
		  startPanel     : 1,
		  buildArrows    : false,
		  hashTags       : true,
		  animationTime  : 1000,
		  resizeContents : true,
		  appendControlsTo: ".hide",
		  infiniteSlides : false
	  });
	$('#subSliderLeft').anythingSlider({
		  startStopped   : true,
		  theme			 : 'adesign',
		  startPanel     : 2, // homepage
		  toggleControls : true,
		  buildArrows    : false,
		  hashTags       : true,
		  animationTime  : 1000,
		  resizeContents : true,
		  appendControlsTo: ".hide",
		  infiniteSlides : false
	  });
	$('#subSliderRight').anythingSlider({
		  startStopped   : true,
		  theme			 : 'adesign',
		  toggleControls : true,
		  buildArrows    : false,
		  hashTags       : true,
		  animationTime  : 1000,
		  resizeContents : true,
		  appendControlsTo: ".hide",
		  infiniteSlides : false
	  });
	
	$('#sliderMob').anythingSlider({
	  startStopped   : false,
	  toggleControls : false,
	  appendControlsTo: ".hide",
	  buildArrows    : true,
	  hashTags       : false,
	  animationTime  : 500,
	  startPanel     : 0,
	  width          : 510, 
	  height         : 600 
	});
	$('#sliderPortals').anythingSlider({
    startStopped   : false,
    toggleControls : false,
    appendControlsTo: ".portalControls",
    buildArrows    : true,
    hashTags       : false,
    animationTime  : 500,
    startPanel     : 0,
    width          : 810,
    height         : 315     
  });
	
	$('#sliderWebs').anythingSlider({
    startStopped   : false,
    toggleControls : false,
    appendControlsTo: ".websControls",
    buildArrows    : true,
    hashTags       : false,
    animationTime  : 500,
    startPanel     : 0,
    width          : 450,
    height         : 350      
  });
	
	$('#sliderPrograms').anythingSlider({
    startStopped   : false,
    toggleControls : false,
    appendControlsTo: ".programsControls",
    buildArrows    : true,
    hashTags       : false,
    animationTime  : 500,
    startPanel     : 0,
    width          : 810,
    height         : 355     
  });
	
	$('#sliderStream').anythingSlider({
    startStopped   : false,
    toggleControls : false,
    appendControlsTo: ".streamControls",
    buildArrows    : true,
    hashTags       : false,
    animationTime  : 500,
    startPanel     : 0,
    width          : 380, 
    height         : 460       
  });
	
 });


function slideToPage(slider,toPage,pageId){
	
  //just animate to top of the page first
  //$("html").animate({ scrollTop: 0 }, "slow"); 
  //$("html").scrollTop(0);
  
	// slider ids    	       0              1                 2
	var currentSlider = ['#sliderMain','#subSliderLeft','#subSliderRight'];
	var mainSliderPosition = ['','left','right'];
	
	function slide(slider,mainPosition,toPage){
		$(currentSlider[slider]).data('AnythingSlider').options.animationTime = 0;
		$(currentSlider[slider]).anythingSlider(toPage,function(){
			$('#sliderMain').anythingSlider(mainPosition,function(){
  		  //MAIN_SLIDER_POSITION = mainSliderPosition[mainPosition];
				$(currentSlider[slider]).data('AnythingSlider').options.animationTime = 1000;
			});
		});
		
	}
	
	MAIN_SLIDER_POSITION = mainSliderPosition[$('#sliderMain').data('AnythingSlider').currentPage];
	
	if(MAIN_SLIDER_POSITION == 'left' && slider == 1){
		//hide templates on third slide li
		if(toPage == 1 || toPage == 2){}
		else $(currentSlider[slider] + ' .sub-page').hide();
		$('.sub-page_id_'+pageId).show();
		$(currentSlider[slider]).anythingSlider(toPage, function(){
			
		});
	}
	if(MAIN_SLIDER_POSITION == 'right' && slider == 2){
		$('#subSliderRight .page').show();
		
		$(currentSlider[slider]).data('AnythingSlider').options.animationTime = 1000;
		//alert($(currentSlider[slider]).data('AnythingSlider').options.animationTime);
		$(currentSlider[slider]).anythingSlider(toPage);
	}
	if(MAIN_SLIDER_POSITION == 'left' && slider == 2){
		$('#subSliderRight .page').hide();
		$('#subSliderRight .page_id_'+(toPage)).show();
		slide(slider,2,toPage);
	}
	if(MAIN_SLIDER_POSITION == 'right' && slider == 1){
		$(currentSlider[slider]).data('AnythingSlider').options.animationTime = 0;
		slide(slider,1,toPage);
	}
	
}



/* must be called after dom modification to activate new elements*/
function bindings()
{
	 
	  //initialize button elements
	  $( "button, input:submit, input:button" ).button();
	  
	  bindMouseEvents();
}


/**
* 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;
} 


/**
* 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");

}

