// hlasky, ktere jdou primo z JS
var global_langs_arr = {
	"text_prilis_dlouhy" : {
		"cz" : "Text je příliš dlouhý",
		"sk" : "Text je príliš dlhý",
		"en" : "Too long"
	},
	"pocet_pismen" : {
		"cz" : "Počet písmen",
		"sk" : "Počet znakov",
		"en" : "Char counter"
	},
	"prilis_mnoho_slov" : {
		"cz" : "Zadáno příliš mnoho slov",
		"sk" : "Zadáno příliš mnoho slov",
		"en" : "Too much words"
	},
	"pocet_slov" : {
		"cz" : "Počet slov",
		"sk" : "Počet slov",
		"en" : "Word counter"
	}
};

function form_typ_filtru_disable(typ)
{
	if ( 2 != typ )
	{
		$("#form_platnost_od").attr("disabled", "disabled");
		$("#form_platnost_do").attr("disabled", "disabled");
		$("#form_konec_platnosti").attr("disabled", "");
	}
	else
	{
		$("#form_konec_platnosti").attr("disabled", "disabled");
		$("#form_platnost_od").attr("disabled", "");
		$("#form_platnost_do").attr("disabled", "");
	}
}

function main_init(current_lang)
{
    $.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);
    $.browser.msie7 = /MSIE 7\.0/i.test(window.navigator.userAgent);

	var margin_top_homepage = "183px";
	var margin_top = "155px";

    if($.browser.msie6)
	{
		margin_top = "165px";
		margin_top_homepage = "193px";
	}

	if ($.browser.msie7)
	{
		margin_top = "165px";
		margin_top_homepage = "198px";
	}

	$("#js_rozsirene_vyhledavani").toggle();
	$("#content:not(.homepage)").css("margin-top", margin_top);

	$("#js_link_rozsirene_vyhledavani").click( function() {
		$("#js_rozsirene_vyhledavani").toggle();

		if($("#content").css("margin-top") == margin_top_homepage)
		{
			$("#content").css("margin-top", margin_top);
		}
		else
		{
			$("#content").css("margin-top", margin_top_homepage);
		}
		return false;
	} );
}

/**
 * Skryj pole pro CAPTCHA overeni pokud ma uzivatel zapnuty JS
 */
function js_captcha()
{
	$('#js_captcha').empty();
	$('#js_captcha').append(js_captcha_var);
	$('#js_captcha_all').hide();
}

function changeVisibility()
{
	//	$('*[@class=visibility_hidden]').each(
	$('*.visibility_hidden').each(
		function(){
			$(this).removeClass('visibility_hidden');
		}
	);

	$('*.visibility_visible').each(
		function(){
			$(this).removeClass('visibility_visible');
			$(this).addClass('visibility_hidden');
		}
	);
}


/**
 * Overeni IC
 * stavy:
 * 	- Jiz zaregistrovana na WWW
 * 	- Nezaregistrovana na WWW a je v db ABC
 * 	- Nezaregistrovana na WWW a neni v db ABC
 */

function overeniIC()
{
	var x = $.get("/registrace/overeniIC/",
		{ic: $('#form_ic').val(), stat:$("#form_stat").val()},
		function(data){
			if ( !isXmlResponse(data) ) return;

			$('#js_neplatne_ic').removeClass("display_block");
			$('#js_neplatne_ic').addClass("display_none");
			$('#js_jiz_registrovana').removeClass("display_block");
			$('#js_jiz_registrovana').addClass("display_none");
			$('#js_nesouhlasi_ic_stat').removeClass("display_block");
			$('#js_nesouhlasi_ic_stat').addClass("display_none");
//
			$('#form_ic').attr("style", "background-color:white;");
			$("#ico_ic_ne").remove();

			// neplatne ico
			if ( $(data).find('result').text() == "-1")
			{
				$('#js_neplatne_ic').removeClass("display_none");
				$('#js_neplatne_ic').addClass("display_block");
				$("#ico_ic_ne").remove();
				$("#form_ic").after("<img id=\"ico_ic_ne\" src=\"/images/web/cancel.png\" alt=\"\" />");
			}
			// firma je jiz zaregistrovana
			else if ( $(data).find('result').text() == "-2")
			{
				$('#form_ic').val( $(data).find('ic').text() );
				$('#js_jiz_registrovana').removeClass("display_none");
				$('#js_jiz_registrovana').addClass("display_block");
			}
			// nesouhlasi IC a STAT
			else if ( $(data).find('result').text() == "-4")
			{
				$('#js_nesouhlasi_ic_stat').removeClass("display_none");
				$('#js_nesouhlasi_ic_stat').addClass("display_block");
//				$("#ico_ic_ne").remove();
//				$("#form_ic").after("<img id=\"ico_ic_ne\" src=\"/images/web/cancel.png\" alt=\"\" />");
			}
			else
			{
				$('#js_obecne_udaje').removeClass("display_none");
				$('#js_obecne_udaje').addClass("display_block");
				$('#form_ic').val( $(data).find('ic').text() );
//				$('#form_ic').attr("readonly", "readonly");
//				$('#form_stat').attr("disabled", "disabled");
				$('#form_zkontrolovat_ic').attr("disabled", "disabled");
				$('#form_zkontrolovat_ic').addClass("display_none");
				$('#form_heslo').attr("disabled", "disabled");
				$('#form_overeni_hesla').attr("disabled", "disabled");

				// firma neni zaregistrovana, ale je v db
				if ( $(data).find('result').text() == "-3")
				{
					// predvypln formular
					$('#form_last_send_ic').val( $('#form_ic').val() );
					$('#form_nazev').val( $(data).find('nazev').text() );
					$('#form_dic').val( $(data).find('dic').text() );
					$('#form_web').val( $(data).find('www').text() );
					$('#form_ulice').val( $(data).find('ulice').text() );
					$('#form_psc').val( $(data).find('psc').text() );
					$('#form_zakladni_popis_cz').val( $(data).find('zakladni_popis_cz').text() );
					$('#form_zakladni_popis_sk').val( $(data).find('zakladni_popis_sk').text() );
					$('#form_zakladni_popis_en').val( $(data).find('zakladni_popis_en').text() );

					// pro nastaveni obce pri nacitani udaju o firme z db pri prvotnim nacteni formulare
					if ( $('#form_mesto').attr("type") != "text" )
					{
						$("#form_mesto").remove();
						$("#js_mesto").append('<input type="text" name="form_mesto" id="form_mesto" />');
					}

					$('#form_mesto').val($(data).find('obec_id').text());
					doplnitDlePsc();
				}
		  		else
		  		{
				}
			}
  		}
  	);
}


/**
 * Upravuje select se seznamem obci, dle zadaneho PSC
 * WHERE PSC LIKE 'NN%'
 */
function doplnitDlePsc()
{

	var x = $.get("/registrace/doplnitDlePsc/",
		{psc: $('#form_psc').val(), obec_id:$("#form_mesto").val()},
		function(data)
		{
			$("#form_mesto").remove();
			$('#form_mesto_checkbox').attr("checked", "");
  			if ( data )
			{
				$("#js_mesto").append('<select name="form_mesto" id="form_mesto" onchange="doplnDleObce()">' + data + '</select>');
				doplnDleObce();
			}
			else
			{
				$("#js_mesto").append('<select disabled="disabled" name="form_mesto" id="form_mesto" onchange="doplnDleObce()">' + data + '</select>');
			}
			// FIX: nastavoval se neexistujici prvek
//			var aux = $("#form_mesto").val();
			$("#form_mesto option").each(function(i){
		  		if ( $(this).val() == $("#form_obec_id").val() )
		  		{
					$("#form_mesto").val($("#form_obec_id").val());
				}
			});
  		}
  	);

}

/**
 * Na zaklade vybrane obce doplni dalse pole formulare, ktere jsou na obci zavisle.
 * (PSC, kraj, stat)
 */
function doplnDleObce()
{
	if ( $.trim($('#form_mesto').val()) != '' )
	{
		var x = $.get("/registrace/doplnDleObce/",
			{obec_id: $('#form_mesto').val()},
			function(data)
			{
				$('#form_psc').val( $(data).find('psc').text() );
				$('#form_kraj').val( $(data).find('kraj_id').text() );
	  		}
	  	);
	}
}

function zobrazMestoTxt()
{
	if ( $('#form_mesto_checkbox').attr("checked") )
	{
		$('#form_doplnit_dle_psc').attr("disabled", "disabled");

		if ( $('#form_mesto').attr("type") != "text" )
		{
			$("#form_mesto").remove();
			$("#js_mesto").append('<input type="text" name="form_mesto" id="form_mesto" />');
		}
		else
		{
			$('#form_mesto').attr("disabled", "");
		}
	}
	else
	{

		$('#form_doplnit_dle_psc').attr("disabled", "");
		doplnitDlePsc();
	}
}

/**
 * Vratila se XML odpoved ze serveru?
 *
 * @param mixed data
 * @return bool
 */
function isXmlResponse(data)
{
	if ( typeof data != "object" )
	{
		alert('Neočekávaná chyba: ' + data);
		return false;
	}
	return true
}

function div_toggle(div_id)
{
	$("#" + div_id).toggle();
	return false;
}

function pobocky_hide_all(pobocky_id)
{
//	$("#" + pobocky_id + " div").hide();
	$("#" + pobocky_id).hide();

}

function textareaInsertString(textarea_id, entity_str)
{
	var textarea = document.getElementById(textarea_id);
	if (!textarea) { return false; }
	if (textarea.setSelectionRange) {
  		var sel_start = textarea.selectionStart;
  		var sel_end = textarea.selectionEnd;

  		textarea.value = textarea.value.substring(0, sel_start) + entity_str + textarea.value.substring(sel_end);
  		textarea.focus();
  		var caret_pos = sel_start + entity_str.length;
  		textarea.setSelectionRange(caret_pos, caret_pos);
  	}
  	else if (document.selection) {
  		textarea.focus();
  		document.selection.createRange().text = entity_str;
  }
  	return false;
}

function kontaktniUdajeProfilu()
{
	$("#js_kontaktni_udaje_profilu").empty();
	var x = $.get("/profil-kontaktni-udaje/" + $("#form_kontaktni_osoba_id").val() + "/",
		{},
		function(data)
		{
			$("#js_kontaktni_udaje_profilu").prepend(data);
		}
	);
}

/**
 *
 * @param date datum format dd.mm.yy
 * @param int days	pocet dni ktere k datu pridat
 */
function plus_days(date, days)
{
	var a = date.split('.');

	if ( a.length == 3 )
	{
		var dt = new Date(Number(a[2]), Number(a[1]) - 1, Number(a[0]) + days);
		var y = dt.getYear();
		if ( y < 1900 )
			y += 1900;
		var m = dt.getMonth() + 1;
		var d = dt.getDate();

		return (d < 10 ? '0' + d : d) + '.' + (m < 10 ? '0' + m : m) + '.' + y;
	}

	return '';
}

function AddFavorite(linkObj,addUrl,addTitle)
{
  if (document.all && !window.opera)
  {
    window.external.AddFavorite(addUrl,addTitle);
    return false;
  }
  else if (window.opera && window.print)
  {
    linkObj.title = addTitle;
    return true;
  }
  else if ((typeof window.sidebar == 'object') && (typeof window.sidebar.addPanel == 'function'))
  {
    /*if (window.confirm('Přidat oblíbenou stránku jako nový panel?'))
    {
      window.sidebar.addPanel(addTitle,addUrl,'');
      return false;
    } */
  }
  return false;
}


// SLIDER
function getMaxHeight(className){
  var arr = new Array();
  var elems = document.getElementsByTagName("div");
  for(var i = 0; i < elems.length; i++){
    var elem = elems[i];
    var id = elem.offsetHeight;
    var cls = elem.className;
    if(cls == className){
      arr[arr.length] = id;
    }
  }
  return Math.max.apply( Math, arr );
}

var Slider = {
	position : 0,
	width : 180,//754,//180,
	maxPos : null,
	timerHandler: null, //handler prave beziciho timeru
  	timerDelay: 5000, //cas jak dlouho se bude cekat
  	direction: true, // smer minuleho pohybu
  	init : function() {
	    this.maxPos = $('.imgCell').length*this.width;
	    $('.slider').css('width',this.maxPos+'px');
	    var pls = ($.browser.opera)?91:20;
	    var height = getMaxHeight('imgCell')+pls;
	    $('.sliderBtn').css('height',height+'px');
	    $('.slider').css('height',(height-20)+'px');
	    $('.sliderBtn').click(function (event) {
	    	var direction = $(this).is('.left'); // left=true | right=false
			Slider.direction = direction;
	      	Slider.slide(direction);
	      	Slider.restartAutomatic();
	    });
	    this.startAutomatic();
  	},
  	startAutomatic: function() {
  		var parent = this;

  		this.timerHandler = setTimeout( function(){
  			parent.slide(parent.direction);
  			parent.startAutomatic();
  		}, parent.timerDelay);

  	},
  	restartAutomatic: function() {
  		if ( null != this.timerHandler )
	    {
	    	clearTimeout(this.timerHandler);
	    	this.timerHandler = null;
	    	this.startAutomatic();
		}
  	},
  	slide : function(direction) {
		if ( this.position == 0 && this.maxPos > 725 )
		{
			this.position = -702;
		}
		else
		{
			this.position = 0;
		}

	    $('.slider').css('margin-left',this.position+'px');
  	}
}

// upravuje pocitani znaku pro FF vs IE, O
function countLetters(str)
{
	var aux_length = str.split("\n").length - 1;
	return str.replace(/\r/g, "").length + aux_length;
}

// pocitadlo znaku
var txtControl = {
  init: function(e){
    var txtForm = $(e);
    var maxLength = 500;
    var eClass = $(e).attr('class').split(' ');
    var bottom = 3;
    var right = 25;
    $.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);
    for(i in eClass){
      if(eClass[i].substr(0,10) == 'maxLength_')
        maxLength = eClass[i].substr(10)*1;
    }
    txtForm.parent('div').css('position','relative');
    if($.browser.msie6){
      txtForm.parent('div').css('height',txtForm.parent('div').height()+'px');
      bottom = 5;
      right = 30;
    }
    txtForm.parent('div').append('<div style="position:absolute;bottom:'+bottom+'px;right:'+right+'px;">' + global_langs_arr["pocet_pismen"][global_current_lang] + ': <span class="txtControlLength" style="font-weight: bold;">0</span></div>');

    txtForm.parent('div').find(".txtControlLength").html(countLetters(txtForm.val()) + '');

    txtForm.keyup(function () {
      var error = (txtForm.parent('div').find('.inputError').length > 0)?true:false;
	  var length = countLetters(txtForm.val());

      txtForm.parent('div').find(".txtControlLength").html(length+'');
      if(length > maxLength && !error){
        error = true;
        txtForm.addClass('form_false');
        txtForm.parent('div').append('<div class="inputError">' + global_langs_arr["text_prilis_dlouhy"][global_current_lang] + '. (max. '+maxLength+') </div>');

      }
      if(length <= maxLength && error){
        error = false;
        txtForm.removeClass('form_false');
        txtForm.parent('div').find('.inputError').remove();
      }
    });
  }
}

function cntLetters()
{
	// kontrola delky textu textarea s id form_obsah_cz
	// inicializuje objekty s class="countLetters", pro urceni max. delky textu pridat class maxLength_{max}, napr. maxLength_500
	$('textarea.countLetters').each(function(){
		//$('#form_obsah_cz, #form_titulek_cz').each(function(){
    	txtControl.init(this);
	});
	$('input.countLetters').each(function(){
    	txtControl.init(this);
	});
}

/**
 * Spocitej slova
 */
function countWords(str)
{
	var fullStr = str + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãåäæçèéêëìíîïðñòóôõöùúûüýþÿĀāĂăĄąĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıĲĳĴĵĶķĸĹĺļĻĽľĿŀŁłŃńŅņŇňŉŊŋŌōŎŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƏƒƠơƯưǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǺǻǼǽǾǿ]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãåäæçèéêëìíîïðñòóôõöùúûüýþÿĀāĂăĄąĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıĲĳĴĵĶķĸĹĺļĻĽľĿŀŁłŃńŅņŇňŉŊŋŌōŎŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƏƒƠơƯưǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǺǻǼǽǾǿ]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	return splitString.length - 1;
}

/**
 * pocitadlo slov
 */
var txtCntWords = {
  init: function(e){
    var txtForm = $(e);
    var maxLength = 50;
    var eClass = $(e).attr('class').split(' ');
    var bottom = 3;
    var right = 25;
    $.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);
    for(i in eClass){
      if(eClass[i].substr(0,10) == 'maxLength_')
        maxLength = eClass[i].substr(10)*1;
    }
    txtForm.parent('div').css('position','relative');
    if($.browser.msie6){
      txtForm.parent('div').css('height',txtForm.parent('div').height()+'px');
      bottom = 5;
      right = 30;
    }
    txtForm.parent('div').append('<div style="position:absolute;bottom:'+bottom+'px;right:'+right+'px;">' + global_langs_arr["pocet_slov"][global_current_lang] + ': <span class="txtControlLength" style="font-weight: bold;">0</span></div>');

    txtForm.parent('div').find(".txtControlLength").html(countWords(txtForm.val()) + '');

    txtForm.keyup(function () {
      var error = (txtForm.parent('div').find('.inputError').length > 0)?true:false;
	  var length = countWords(txtForm.val());

      txtForm.parent('div').find(".txtControlLength").html(length+'');
      if(length > maxLength && !error){
        error = true;
        txtForm.addClass('form_false');
        txtForm.parent('div').append('<div class="inputError">' + global_langs_arr["prilis_mnoho_slov"][global_current_lang] + '. (max. '+maxLength+') </div>');

      }
      if(length <= maxLength && error){
        error = false;
        txtForm.removeClass('form_false');
        txtForm.parent('div').find('.inputError').remove();
      }
    });
  }
}
/**
 * Pocitani slov v textarea a text prvcich s class countWords
 */
function cntWords()
{
	$('textarea.countWords').each(function(){
    	txtCntWords.init(this);
	});
	$('input.countWords').each(function(){
    	txtCntWords.init(this);
	});
}

var langs = {
  init: function(){
    $('.pn_lang').each(function(){
      var input = $(this).find('input[type="text"]');
      var txt = $(this).find('textarea');
      if($(this).is('.default') || (input.val() || txt.val())){
        $(this).find('.show_lang').attr('checked','checked');
      }else{
        $(this).find('div').hide();
      }
    });
    $('.pn_lang').each(function(){
        var self = this;
        $(this).find('.show_lang').click(function(){
          var block = $(self).find('div');
          if($(this).is(':checked')){
            block.show();
          }else{
            block.hide();
          }
        });
    });
  }
}

var lang_tabs = {
  init: function(){
    $('.lang_selector').each(function(){
      $(this).find('li').click(function(){
        var _idparts = $(this).attr('id').split('_');
        var _id = _idparts[1];
        var _lang = _idparts[2];
        $(this).parent().find('li').removeClass('here');
        $(this).addClass('here');
        $('[id^="title_'+_id+'"],[id^="obsah_'+_id+'"]').hide();
// Odstranil Hrouza - nutne kvuli novemu jQuery
//                $('[@id^="title_'+_id+'"],[@id^="obsah_'+_id+'"]').hide();
        $('#title_'+_id+'_'+_lang).show();
        $('#obsah_'+_id+'_'+_lang).show();
      });
    });
  }

}

$(document).ready(function(){
  if(document.getElementById("slider_reklama")){
	 Slider.init();
	}

	langs.init();
  	lang_tabs.init();
	cntLetters();
	cntWords();
});




