var icon_x = 0;
var icon_y = 0;
var blokuj_klik = 0;

window.dhtmlHistory.create();

var back_next_button = function(newLocation, historyData) {
  wczytaj_podstrone(newLocation);
}

window.onload = function() {
  dhtmlHistory.initialize();
  dhtmlHistory.addListener(back_next_button);
};

$(window).ready(function() {
  var adres = document.location.hash;
		if(adres != ''){
		  blokuj_klik = 1;
		  wczytaj_podstrone(adres.replace('#',''));
		}
});

/*function add_text(text) {
  var n_text = $('#forum_tresc').val()+text;
  $('#forum_tresc').val(n_text);
		$('#forum_tresc').focus();
}*/

var Netscape, MSIE, Opera, Unknown, NN1, NN2, Ffox=false;
var Win, Mac, Other;
var NetscapeVer, MSIEVer, OperaVer, NetscapeOK, AlertMsg;
var strOperaPos;

var Br = 1;
Netscape = navigator.appName == "Netscape";
MSIE = navigator.appName == "Microsoft Internet Explorer";
Opera = navigator.userAgent.indexOf("Opera") > -1;
Unknown = !(Netscape || MSIE || Opera);
NetscapeOK = false;

var n;
Win = navigator.userAgent.indexOf("Win") > -1;
Mac = navigator.userAgent.indexOf("Mac") > -1;
Other = !(Win || Mac);

if(Netscape){
  NetscapeVer = parseFloat(navigator.appVersion);
  if (NetscapeVer>4){
    n = navigator.userAgent;
    if (n.indexOf("Netscape/") != -1){
      NN1 = n.substr(n.indexOf("Netscape/")+9);
      NN1 = parseFloat(NN1);
    }
    NN1 = n.substr(n.indexOf("rv:")+3);
    NN1 = parseFloat(NN1);
    if (NN1 >= "1.3"){
      NetscapeOK = true;
    }
  }
  if (NetscapeOK){
    Br="NN";
    if (n.indexOf("Firefox") != -1){
		    Ffox = true;
    }
  }
}

if(MSIE){
  n = navigator.userAgent;
  MSIEVer = n.substr(n.indexOf("MSIE ")+("MSIE ").length, 4);
  MSIEVer = parseFloat(MSIEVer);
  if(Opera){
    strOperaPos = n.indexOf("Opera/"); // "Opera " or "Opera/"
    if (strOperaPos == -1)
      OperaVer = n.substr(n.indexOf("Opera ")+("Opera ").length, 4);
    else
      OperaVer = n.substr(strOperaPos + ("Opera/").length, 4);

    OperaVer = parseFloat(OperaVer);
  }
  else{
    Br = "IE";
  }
}
else if(Opera){
  n = navigator.userAgent;
  strOperaPos = n.indexOf("Opera/");
  if (strOperaPos == -1){
    OperaVer = n.substr(n.indexOf("Opera ")+("Opera ").length, 4);
		}
  else{
    OperaVer = n.substr(strOperaPos + ("Opera/").length, 4);
  }
  OperaVer = parseFloat(OperaVer);
}

function saveCaret(elem){
  if ( elem.isTextEdit )
    elem.caretPos = document.selection.createRange();

  if (Opera && OperaVer >= 9 && dotReplacement != null){
    var oldSelectionStart = elem.selectionStart;
    var oldSelectionEnd = elem.selectionEnd;
    var selectedText = elem.value.substring(oldSelectionStart, oldSelectionEnd);
    var str1 = elem.value.substring(0, oldSelectionStart);
    var sym = str1.substring(str1.length - 1);
    if (sym == "." || sym == "#" || sym == "$"){
      elem.value = elem.value.substring(0, oldSelectionStart-1) + dotReplacement + elem.value.substring(oldSelectionEnd);
      elem.setSelectionRange(oldSelectionStart, oldSelectionStart);
    }
    dotReplacement = null;
  }
}

function add_text(tag_open, tag_close, evt){
  txtControl.focus();

  if (Br == "IE"){
    insertAtCaret(txtControl, tag_open, tag_close);
  }
  else{
    var oldSelectionStart = txtControl.selectionStart;
    var oldSelectionEnd = txtControl.selectionEnd;
    var selectedText = txtControl.value.substring(oldSelectionStart, oldSelectionEnd);
    var nval = txtControl.value.substring(0, oldSelectionStart) + tag_open + selectedText + tag_close + txtControl.value.substring(oldSelectionEnd);
    txtControl.value = nval;
  }
}

function insertAtCaret(textElement, tag_open, tag_close){
  if ( textElement.isTextEdit ){
    if ( !textElement.caretPos ){
      saveCaret(textElement);
    }

    var caretPos = textElement.caretPos;
				var oldText	= caretPos.text;
				var newText = 	tag_open + oldText + tag_close;
    caretPos.text = newText;
    caretPos.select();
  }
}

function forumBhv(){
  //wyłacza kliki i włacza ajaxa
		$('.forum_ajax').click (function () {
		  var adres = $(this).attr('href');
		  document.location.hash = '#'+adres;

		  if(blokuj_klik == 0){
				  wczytaj_podstrone(adres);
						blokuj_klik = 1;
				}
		  return false;
		});

  $('.forum_button').click(function(){
		  var id = $(this).attr('id').replace('add_','');
				if(id == 'link'){
		    $('#kod_url').val('http://');
		    $('#kod_nazwa').val('');
      $('#wpisz_link').show(50);
				}
				else if(id == 'mapa'){
		    if($('#wstaw_mape').css('display') == 'none'){
        $('#wstaw_mape').show(50);
				  }
				  else{
        $('#wstaw_mape').hide(50);
				  }
				}
				else{
				  var dane = $('#dane_'+id).attr('class');
						var d = dane.split('|');
						var open_tag = d[0].replace('open_','');
						var close_tag = d[1].replace('close_','');

						add_text(open_tag, close_tag);

      /*if($(this).hasClass('dzialanie_open')){
		      $(this).removeClass('dzialanie_open');
		      $(this).addClass('dzialanie_close');
				    $(this).css('background-image','gfx/forum/forum_button_on.png');
								add_text(open_tag);
						}
						else{
		      $(this).removeClass('dzialanie_close');
		      $(this).addClass('dzialanie_open');
				    $(this).css('background-image','gfx/forum/forum_button_off.png');
								add_text(close_tag);
						}	*/
				}
		});

	 $('#wstaw_przycisk').click (function () {
	   var kod = '[mapa lon='+icon_x+' lat='+icon_y+' scale='+mapobject.currscale+' opis='+$('#mapa_opis').val()+']';
	   add_text(kod,'');
				$('#wstaw_mape').hide(50);
		});

	 $('#wstaw_url').click (function () {
		  var kod_url = $('#kod_url').val();
		  var kod_nazwa = $('#kod_nazwa').val();

				if(kod_nazwa == ''){
				  kod_nazwa = kod_url;
				}

	   var kod = "[url="+kod_url+"]"+kod_nazwa+"[/url]";
				if(kod_url != 'http://'){
	     add_text(kod,'');
				}
				$('#wpisz_link').hide(50);
	 });

	 $('#pick_kolor').change (function () {
		  font($('#pick_kolor').val());
	 });

	 /*$('#forum_tresc').keypress (function () {
		  insertNodeAtSelection(this, 'table');
	 });*/

	 $('#postmodify').submit (function () {
		  var stopuj = 0;
		  $('.wymagane').each(function() {
				  if($(this).val() == '' && $(this).html() == ''){
        stopuj = 1;
								$(this).addClass('wymagane_error');
						}
    });

		  $('.dzialanie_close').each(function() {
				  var id = $(this).attr('id').replace('add_','');
				  var dane = $('#dane_'+id).attr('class');
						var d = dane.split('|');
						var close_tag = d[1].replace('close_','');
		    $(this).removeClass('dzialanie_close');
		    $(this).addClass('dzialanie_open');
				  $(this).css('background-image','gfx/forum/forum_button_off.png');
						add_text(close_tag);
    });

				forumBhv();
				if(stopuj == 1){
				  komunikat('prosimy wypełnić wymagane pola');
				  return false;
				}
	 });
	 $('.wymagane_error').keydown (function () {
		  if($(this).val() != '' || $(this).html() != ''){
		    $(this).removeClass('wymagane_error');
				}
	 });
	$('.control').click (function (){
	  $('.control').css({'opacity':'1.0','filter':'alpha(opacity=100)'});
	  $(this).css({'opacity':'0.4','filter':'alpha(opacity=40)'});
	});
	$('#marknew').click (function () {
	  mapobject.setCoordsTool(coordsListener);
	});
}

function font(jaki) {
	 if(jaki != "none"){
	   var kod = "[kolor=" + jaki + "][/kolor]";
	   add_text(kod);
	 }
}

function wczytaj_podstrone(adres){
  pokaz_logo_ajax(1, 'forum', 'wyczytywanie danych proszę czekać...');
		$.ajax({
		  type: "GET",
		  url: adres,
		  data: 'ajax',
		  success: function(msg){
				  $('#forum').html(msg);
						forumBhv();
		    blokuj_klik = 0;
		  }
		});

		$.ajax({
		  type: "GET",
		  url: 'ajax/sciezka.php'+adres.replace('forum.php',''),
		  data: '',
		  success: function(msg){
				  var m = msg.split("||");
				  $('.sciezka').html(m[1]);
					 $('.pasek_sys h2').html(m[0]);
						forumBhv();
		  }
		});
}

$(function (){
  forumBhv();
});
