var W3CDOM = (document.createElement && document.getElementsByTagName);
window.onload = all;
var timerID;
var tempdir = "";

function all()
{

	if (!W3CDOM) return;

  if(document.getElementById('friends')){
  goFriends();
	}

	if(document.getElementById('totalmark')){
		var marker = document.getElementById('totalmark');
		marker.onclick = totalMark;
	}
	if(document.getElementById('semback'))
	{
		var semback = document.getElementById('semback');
		var new_anchor = document.createElement("a");
		new_anchor.href = '#';
		var new_text = document.createTextNode("Zpět");
		new_anchor.appendChild(new_text);
		semback.appendChild(new_anchor);
		event_handler.add(new_anchor, 'click', historyBack);
	}
	if(document.getElementById('semprint')){

		var semprint = document.getElementById('semprint');
		var new_anchor2 = document.createElement("a");
		new_anchor2.setAttribute('href', 'javascript:window.print()');
    	var new_text2 = document.createTextNode("Tisk");
		semprint.appendChild(new_anchor2);
		new_anchor2.appendChild(new_text2);
 }


	// funkce
	new_window_link();
  new_window_linknews()
	if(document.getElementById('mapic')){
		mapa();
	}
	/*if(document.getElementById('kraje')){
		kraje = document.getElementById('kraje');
		kraje.onchange = changeKrajeSelect;
	}*/

	var nav = document.getElementById('menu');
	var as = nav.getElementsByTagName('a');
	for (var i = 0; i < as.length; i++)
	{
		if (as[i].parentNode.tagName == 'LI')
		{
			var span =  as[i].parentNode.getElementsByTagName('SPAN');
			for (var y=0;y<span.length;y++)
			{
				if(span[y].getElementsByTagName('A').length > 0)
				{
					as[i].number = i;
					as[i].onclick = test;
				  as[i].onmouseover = test;
          as[i].onmouseout = quickzmiz;
				}
			}
		}
	}

	if (typeof(calc) != 'undefined')
	{
		calc.init();
	}

	if (typeof(register_handler) != 'undefined')
	{
		register_handler.init();
	}
	if (typeof(find_handler) != 'undefined')
	{
		find_handler.init();
	}
	if (typeof(form_handler) != 'undefined')
	{
		form_handler.init();
	}

	if (typeof(search_handler) != 'undefined')
	{
		search_handler.init();
	}

	if (typeof(prevent_click) != 'undefined')
	{
		prevent_click.init();
	}

	if (typeof(autosubmit) != 'undefined')
	{
		autosubmit.init();
	}

	if (typeof(load) != 'undefined')
	{
		load();
	}
}


//spamfriends


  function goFriends(){
  var theForm = document.getElementById('friends');
  if(document.getElementById('his_email')){
  document.getElementById('his_email').onclick = noValue1;
  }
  if(document.getElementById('my_email')){
  document.getElementById('my_email').onclick = noValue2;
  }
  if(document.getElementById('my_text')){
  document.getElementById('my_text').onclick = noValue3;
  }
  //document.getElementById('spfr').onclick = document.getElementById('friends').submit;
  theForm.onsubmit = validateSpam;
return false;

  }

  function validateSpam(){
  var re = '/^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$/';
  var theForm = document.getElementById('friends');
  var theMessage = 'Vyplňte prosím povinná pole:\n\n';
  var err = 0;
  if((theForm.his_email.value.search(re) != 0)||(theForm.his_email.value == 'prijemce@email.cz')){ theMessage = theMessage +' E-mail příjemce [funkční adresa] \n'; err= 1;}
  if((theForm.my_email.value.search(re) != 0)||(theForm.my_email.value == 'vas@email.cz')){ theMessage = theMessage +' Váš e-mail [funkční adresa] \n'; err= 1;}
  if(theForm.my_text.value == ''){ theMessage = theMessage +' Doporučující text \n'; err= 1;}
  if(err > 0) { alert(theMessage);  }else{  saveForm('friends');    }
  return false;
  }

  function noValue1(){
  document.getElementById('his_email').value = '';
  }
  function noValue2(){
  document.getElementById('my_email').value = '';
  }
  function noValue3(){
  document.getElementById('my_text').value = '';


  }

function saveForm(formID){
        var data = '';
        var form = document.getElementById(formID);
        var f_el = form.getElementsByTagName('input');
        var f_length = f_el.length;

        for(i=0;i<f_length;i++){
        if(f_el[i].type != 'checkbox'){
        data += f_el[i].name + '=' + f_el[i].value + '&';
        }
        else{
        if(f_el[i].checked == true){
        data += f_el[i].name + '=' + f_el[i].value + '&';
        }
        }
        }
        var textareas = form.getElementsByTagName('textarea');
        for(i=0;i<textareas.length;i++){
        data += textareas[i].name + '=' + textareas[i].value + '&';
        }
        var f_el = form.getElementsByTagName('select');
        var f_length = f_el.length;
        for(i=0;i<f_length;i++){
        var options = f_el[i].getElementsByTagName('option');
        for(j=0;j<options.length;j++){
        if (options[j].selected == true || options[j].selected == 'true')
        data += f_el[i].name + '=' + options[j].value + '&';
        }
        }
        url='/pages/saveForm.php';
        if (window.ActiveXObject)
        {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else
        {
        httpRequest = new XMLHttpRequest();
        }
        httpRequest.open("POST", url, true);
        httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        httpRequest.send(data);
        httpRequest.onreadystatechange= function () {processRequestx(); } ;
        return false;
}

function processRequestx()
{
  if (httpRequest.readyState == 4)
  {
    if(httpRequest.status == 200)
    {
      //buildGalery();
      var semka = document.getElementById("friends");
      semka.innerHTML = httpRequest.responseText;
    }
    else
    {
        alert("Chyba pri nacitani stanky"+ httpRequest.status +":"+ httpRequest.statusText);
    }
  }
}


//spamfriendsend

function totalMark(){
	if(document.getElementById('totalmark')){
		var text = document.getElementById('text');
		var inputs = text.getElementsByTagName('input');
		for (var x=0; x<inputs.length; x++)
		{
			inputs[x].checked = true;
		}
		return false;
	}

}


function historyBack(event)
{
	event = event_handler.fix(event);
	if (event.preventDefault) event.preventDefault();
	window.history.back();
}

function mapa()
{
	var mapic = document.getElementById('mapic');
	var are = mapic.getElementsByTagName('area');
	for (var x=1; x<=are.length; x++)
	{
		var mapid = 'inMap'+x;
		if (document.getElementById(mapid))
		{
			//document.getElementById(mapid).onmouseover = showArea;
			//document.getElementById(mapid).onclick = changeKraj;
			//document.getElementById(mapid).onmouseout = showBlindMap;
			$("#"+mapid).bind("mouseover", map_handler.showArea);
			$("#"+mapid).bind("click", map_handler.changeKraj);
			$("#"+mapid).bind("mouseout", map_handler.showBlindMap);
		}
	}
}

var map_handler = {};
map_handler.kraje = null;
map_handler.showArea = function (event)
{
	event = event_handler.fix(event);
	cislo = event.target.id;
	cislo = cislo.substring(5, cislo.length);

	if (cislo == -1)
	{
		$("#czmap").attr("src", tempdir+"/mapy/finalmapa.jpg");
		return;
	}

	var obrazek = "mapa"+cislo+".jpg";
	$("#czmap").attr("src", tempdir+"/mapy/"+obrazek);
};
map_handler.showBlindMap = function (event)
{
	if ($("#kraje").val() == null || $("#kraje").val().length <= 0)
	{
		$("#czmap").attr("src", tempdir+"/mapy/finalmapa.jpg");
	}
	else
	{
		if ($("#kraje").val().length == 1)
		{
			var $elm = $(event.target);
			$("#czmap").attr("src", tempdir+"/mapy/mapa"+$("#kraje").val()+".jpg");

			/*$("#kraje option").each(function() {
				if ($elm.attr("id") == "inMap"+$("#kraje").val())
				{
					$("#czmap").attr("src", tempdir+"/mapy/mapa"+$("#kraje").val()+".jpg");
				}
			});*/
		}
		if ($("#kraje").val().length > 1)
		{
			$("#czmap").attr("src", tempdir+"/mapy/finalmapa.jpg");
		}
	}
};
map_handler.changeKraj = function (event)
{
	map_handler.kraje = $("#kraje").val();

	if (typeof(event) != 'undefined' && event != null)
	{
		var $elm = $(event.target);
		if ($elm.get(0).nodeName.toLowerCase() == 'area')
		{
			var $sel_id = $elm.attr("id").substr(5, $elm.attr("id").length);

			map_handler.kraje = [];
			map_handler.kraje[0] = $sel_id;

			$("#kraje option").each(function () {
				$(this).attr("selected", false);
				if ($(this).val() == $sel_id)
				{
					$(this).attr("selected", true);
				}
			});
		}
		else
		{
			map_handler.showBlindMap();
		}
	}

	$.ajax({
		type: "POST",
		url: tempdir+"/inside/okresy.php",
		cache: false,
		data: {
			ajax: 1,
			import_kraj: map_handler.kraje,
			multiple: true,
			size: 3,
			okres: 0
		},
		success: function (data)
		{
			//alert(data);
			$("#semka").html(data);
			$("#kraje option").each(function (){
				if ($.inArray($(this).val(), map_handler.kraje) != -1)
				{
					$(this).attr("selected", true);
				}
			});
			map_handler.kraje = null;
		}
	});
};
$(document).ready(function(){
	$("#kraje").bind("change click", map_handler.changeKraj);
});
/*function showArea(cislo){
	if (cislo == -1)
	{
		document.getElementById('czmap').src= tempdir+'/mapy/finalmapa.jpg';

		return;
	}
	var pripocitano =  parseFloat(this.number)+1;
	if(pripocitano){
		var cislo =  pripocitano;
	}
	var obrazek = 'mapa'+cislo+'.jpg';
	document.getElementById('czmap').src= tempdir+'/mapy/'+obrazek;

}
function showBlindMap(){
	var select = document.getElementById('kraje');
	var nr = select.options[select.selectedIndex].value;
	if (nr==-1)
	{
		document.getElementById('czmap').src= tempdir+'/mapy/finalmapa.jpg';
	}
	else
	{
		var cislo = parseFloat(nr);
		var obrazek = 'mapa'+cislo+'.jpg';
		document.getElementById('czmap').src= tempdir+'/mapy/'+obrazek;
	}
}
function changeKraj(){
	var krajnr = (this.number+1);
	var select = document.getElementById('kraje');
	document.getElementById('kraje').selectedIndex = krajnr;
	setOkresy();
	return false;
}
function changeKrajeSelect(){
	var select = document.getElementById('kraje');
	nr = select.options[select.selectedIndex].value;
	nr.number = nr;
	showArea(nr);
	setOkresy();
}
function  setOkresy(){
	var select = document.getElementById('kraje');
	var kraj = select.options[select.selectedIndex].value;
	var url=tempdir+'/inside/okresy.php?import_kraj='+kraj+'&okres=0' ;
	var semka = document.getElementById("semka");
	prepareRequest(url,semka);
}*/
function prepareRequest(url,semka){

	if (window.ActiveXObject)
	{
		httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		httpRequest = new XMLHttpRequest();
	}
	httpRequest.open("GET", url, true);
	httpRequest.onreadystatechange= function () {processRequest(semka); } ;
	httpRequest.send(null);
}

function processRequest(semka)
{

	if (httpRequest.readyState == 4)
	{
		if(httpRequest.status == 200)
		{
			semka.innerHTML = httpRequest.responseText;
		}
		else
		{
			alert("Chyba pri nacitani stanky"+ httpRequest.status +":"+ httpRequest.statusText);
		}
	}
}

function wait(nr){
 clearTimeout(timerID);
}
function zmiz(){
 number = this.number;
 timerID = setTimeout("hide()",500);
}
function quickzmiz(){
 number = this.number;
 timerID = setTimeout("hide()",100);
}
function hide(){

  var nav = document.getElementById('menu');
	var as =  nav.getElementsByTagName('a');
	var spans = as[this.number].parentNode.getElementsByTagName('span');
  spans[0].style.display = "none";
  spans[0].style.height = 0;
	class_handler.remove(as[this.number], 'click');
	class_handler.add(as[this.number], 'noclick');
}

function test (nr)
{
	if (nr >= 0)
	{this.number = nr;}
	else
	{var x = this.number;
  slideExcept(this.number);
	}

	var nav = document.getElementById('menu');
	var as =  nav.getElementsByTagName('a');
	var spans = as[this.number].parentNode.getElementsByTagName('span');
	var aheights = spans[0].getElementsByTagName('a');

    for (var z=0; z<aheights.length; z++){
    aheights[z].onmouseout = zmiz;
    aheights[z].onmouseover = wait;
    aheights[z].number = this.number;
    }


		if (spans[0].style.display == ""){spans[0].style.display = "none";}
    if (spans[0].style.height == ""){spans[0].style.height = 0 + "px";}
    //pokud je zavreny - oteviram
		if (spans[0].style.display == "none")
		{
			spans[0].style.display = 'block';
			spans[0].style.overflow = 'hidden';
			class_handler.remove(as[this.number], 'noclick');
			class_handler.add(as[this.number], 'click');
			var vyska = (aheights.length * 33);
      spans[0].style.height = vyska + "px";
		}
		//pokud je otevreny - zaviram
		else
		{
				spans[0].style.display = 'none';
				spans[0].style.height = 0;
				class_handler.remove(as[this.number], 'click');
				class_handler.add(as[this.number], 'noclick');
		}
	return false;
}

function slideExcept(x){

	var nav = document.getElementById('menu');
	var as =  nav.getElementsByTagName('a');

	for (var i=0;i<(as.length);i++)
	{

		if(as[i].parentNode.tagName == 'LI')
		{
			class_handler.remove(as[this.number], 'click');
			class_handler.add(as[this.number], 'noclick');
		}

		if(i == x)
		{
		}
		else
		{
			var spans = as[i].parentNode.getElementsByTagName('span');

			for (var w=0;w<spans.length;w++)
			{
				var ems = spans[w].getElementsByTagName('em');
				for (var e=0;e<ems.length;e++)
				{
					ems[e].style.display = 'none';
					ems[e].parentNode.style.marginBottom = 0 + 'px';
					var parenta = ems[e].parentNode.getElementsByTagName('a');
					for (var p=0;p<parenta.length;p++)
					{
						parenta[p].className = 'back';
					}
				}
				if(parseInt(spans[0].style.height) > 0)
				{
					spans[0].style.display = 'none';
					spans[0].style.height = 0;

				}
			}
		}
	}

}
var path_to_icon 		= 'http://www.kdechcibydlet.cz/images/icon.gif';
var link_alt_text 		= 'Otevřít odkaz v novém okně';
var link_title_text 	= 'Otevřít odkaz v novém okně';

function new_window_link() {

	if (!document.getElementById || !document.createTextNode || !document.domain || !document.getElementById('content')) return;
	var text = document.getElementById('content');
	var linx = text.getElementsByTagName('a');
	for (var i = 0; i < linx.length; i++)
	{
		// just for off-site links
		if (linx[i].href.length > 0)
		{
			if((linx[i].protocol == 'http:')||(linx[i].protocol == 'https:'))
			{

      	if ((linx[i].href.split('/')[2].replace('/www\./', '') != document.domain.replace('/www\./', '')
      	|| (linx[i].href.split('out.php')[1]))
      	&& (linx[i].innerHTML.length > 0)
		&& !linx[i].getAttribute('target')
		&& !linx[i].parentNode.id.match('/^copy/')
		&& (linx[i].childNodes[0].tagName != 'IMG')
        && (linx[i].className != 'img')

        )

        	{
					// create new elements
					var nwl = document.createElement('a');
					var nwl_image = document.createElement('img');
					var space = document.createTextNode(' ');
					// setup image attributes
					nwl_image.setAttribute('src', path_to_icon);
					nwl_image.setAttribute('alt', link_alt_text);
					nwl_image.setAttribute('title', link_title_text);
					// set link attributes
					nwl.setAttribute('href', linx[i].getAttribute('href'));
					nwl.setAttribute('target', '_blank');
					nwl.setAttribute('title', link_title_text);
					nwl.className = 'new_window_link';
					// append new elements
					nwl.appendChild(nwl_image);
					linx[i].parentNode.insertBefore(space, linx[i].nextSibling);
					linx[i].parentNode.insertBefore(nwl, linx[i].nextSibling.nextSibling);
				}
			}
		}
	}
}
function new_window_linknews() {
	if (!document.getElementById || !document.createTextNode || !document.domain || !document.getElementById("spec") || !document.getElementById('newsbox')) return;
	var text = document.getElementById('newsbox');
	var linx = text.getElementsByTagName('a');
	for (var i = 0; i < linx.length; i++)
	{
		// just for off-site links
		if (linx[i].href.length > 0)
		{
			if ((linx[i].protocol == 'http:')||(linx[i].protocol == 'https:'))
			{
				if (linx[i].href.split('/')[2].replace(/www\./, '') != document.domain.replace(/www\./, '')
				&& !linx[i].getAttribute('target')
				&& !linx[i].parentNode.id.match(/^copy/))
				{
					linx[i].setAttribute('target', '_blank');
					linx[i].setAttribute('title', link_title_text);
				}
			}
		}
	}
}

var prevent_click = {};
prevent_click.init = function ()
{
	var anchors = document.getElementsByTagName('a');
	for (var i = 0; i < anchors.length; i++)
	{
		if (class_handler.has(anchors[i], 'jean_prevent'))
		{
			event_handler.add(anchors[i], 'click', prevent_click.handle);
		}
	}

	var options = document.getElementsByTagName('option');
	for (var i = 0; i < options.length; i++)
	{
		if (class_handler.has(options[i], 'jean_prevent'))
		{
			event_handler.add(options[i], 'select', prevent_click.handle);
		}
	}

	var areas = document.getElementsByTagName('area');
	for (var i = 0; i < areas.length; i++)
	{
		if (class_handler.has(areas[i], 'jean_prevent'))
		{
			event_handler.add(areas[i], 'click', prevent_click.handle);
		}
	}

	var inputs = document.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++)
	{
		if (inputs[i].type == 'submit')
		{
			if (class_handler.has(inputs[i], 'jean_prevent'))
			{
				var temp_form = inputs[i];
				while (temp_form.tagName.toLowerCase() != 'form')
				{
					temp_form = temp_form.parentNode;
				}

				event_handler.add(inputs[i], 'submit', prevent_click.handle);
				event_handler.add(temp_form, 'submit', prevent_click.handle);
			}
		}
	}
};
prevent_click.handle = function (event)
{
	if (!event.target)
	{
		event = event_handler.fix(event);
	}

	element = event.target;
	while (element.tagName.toLowerCase() != 'a' && element.tagName.toLowerCase() != 'area'
	 && element.tagName.toLowerCase() != 'option' && element.tagName.toLowerCase() != 'input'
	 && element.tagName.toLowerCase() != 'form')
	{
		element = element.parentNode;
	}

	if (element.tagName.toLowerCase() == 'a' || element.tagName.toLowerCase() == 'area'
	 || element.tagName.toLowerCase() == 'option' || element.tagName.toLowerCase() == 'input'
	 || element.tagName.toLowerCase() == 'form')
	{
		if (class_handler.has(element, 'jean_prevent'))
		{
			if (event.preventDefault)
			{
				event.preventDefault();
				return false;
			}
		}
	}
};

$(document).ready(function () {
	$("#loginContainer").toggle("fast");
	$("#loginTitle").bind("click", function () {
		$("#loginContainer").slideToggle("fast");
	});
});
