// dokument z kursami walut
var xml_waluty = null;
var xml_logo_scroll = null;
var img_logo = null;

/*
	konwersja liczby na format walutowy
*/
function liczba_na_walute(ilosc, plus)
{
	_minus = 1;
	if (ilosc < 0)
	{
		_minus = -1;
		ilosc = -ilosc;
	}

	ilosc = String(Math.round(ilosc*100));

	_number = ilosc.substr(0, ilosc.length-2);
	_decimal = ilosc.substr(ilosc.length-2, 2);
	while (_decimal.length < 2)
		_decimal += "0";
	if (_number == "")
		_number = "0";
	_f_number = "";
	for (var i=0; i<_number.length; i++)
	{
		if (i!=_number.length && i!=0 && !((_number.length-i) % 3))
			_f_number += "&nbsp;";
		_f_number += _number.substr(i, 1);
	}
	_number = _f_number;
	if (plus && _minus == 1)
		_number = "+"+_number;
	if (_minus == -1)
		_number = "-"+_number;

	_lnw_waluta = _number+"."+_decimal;

	return _lnw_waluta;
}
/*
	wyrownanie cen
*/
function konwersja_cen()
{
	var i=1;
	while (document.getElementById("oferta_cena_"+i))
	{
// pobierz dane ze strony
		cena = document.getElementById("oferta_cena_"+i).value;
		if (Number(cena) == 0)
		{ 
			i++; 
			continue;
		}
		waluta = document.getElementById("oferta_waluta_"+i).value;
// konwersja liczby
		cena_str = liczba_na_walute(cena);

		cena_str += "&nbsp;";
		cena_str += waluta;
		cena_str = cena_str.replace('.', ',');
// dodanie spacji pomiedzy tysiacami
		
		document.getElementById("oferta_cena_waluta_"+i).innerHTML = cena_str;
		i++;
	}
}

/*
	ladowanie dokumentu xml z kursami walut
*/
function loadXMLDoc(fname)
{
	var xmlDoc;
// code for IE
	if (window.ActiveXObject)
  {
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.load(fname);
		return(xmlDoc);
  }
// code for Mozilla, Chrome, Opera, etc.
	else if (document.implementation && document.implementation.createDocument)
  {
/*
		xmlDoc=document.implementation.createDocument("","doc",null);
		xmlDoc.async=false;
		xmlDoc.load(fname);
*/
		var xmlhttp = new window.XMLHttpRequest();
		xmlhttp.open("GET", fname, false);
		xmlhttp.send(null);
		xmlDoc = xmlhttp.responseXML;//.documentElement;
		return(xmlDoc);
	}
	else
  {
		alert('Twoja przeglądarka nie obsługuje skryptów na tej stronie.');
  }
	return null;
}
function pobierz_element_xml(xml, path)
{
// code for IE
	if (window.ActiveXObject)
	{
		var nodes=xml.selectNodes(path);

		for (i=0;i<nodes.length;i++)
		{
			return nodes[i].childNodes[0].nodeValue;
		}
	}
// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument)
	{
		var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
		var result=nodes.iterateNext();

		while (result)
		{
			if (result.childNodes[0])
				return result.childNodes[0].nodeValue;
			else
				return null;
//			result=nodes.iterateNext();
		}
	}
}
function pobierz_przelicznik_waluty(waluta)
{
	return pobierz_element_xml(xml_waluty, "/tabela_kursow/pozycja[kod_waluty='"+waluta+"']/przelicznik");
}
function pobierz_cene_waluty(waluta)
{
	return pobierz_element_xml(xml_waluty, "/tabela_kursow/pozycja[kod_waluty='"+waluta+"']/kurs_sredni");
}

/*
	aktualizowanie cen na podstawie wybranej waluty
*/
function aktualizuj_kurs_waluty(waluta)
{
	document.getElementById("waluty_waluta_"+waluta.toLowerCase()).innerHTML = 
		pobierz_element_xml(xml_waluty, "/tabela_kursow/pozycja[kod_waluty='"+waluta+"']/przelicznik")+" "+waluta;
	document.getElementById("waluty_waluta_"+waluta.toLowerCase()+"_cena").innerHTML = 
		pobierz_element_xml(xml_waluty, "/tabela_kursow/pozycja[kod_waluty='"+waluta+"']/kurs_sredni");
	document.getElementById("waluty_waluta_"+waluta.toLowerCase()+"_zmiana").innerHTML = 
		liczba_na_walute(pobierz_element_xml(xml_waluty, "/tabela_kursow/pozycja[kod_waluty='"+waluta+"']/zmiana"), true)+"%";
}
function aktualizuj_kursy_walut()
{
	document.getElementById('waluty_tytul').innerHTML = "Kursy z dnia: "+pobierz_element_xml(xml_waluty, "/tabela_kursow/data_publikacji");
	aktualizuj_kurs_waluty("EUR");
	aktualizuj_kurs_waluty("USD");
	aktualizuj_kurs_waluty("CHF");
	aktualizuj_kurs_waluty("GBP");
}




/*
	przewijanie listy loga firm na dole strony
*/
var scroll_bottom_timeout;
var scroll_bottom_logo_width;
var scroll_bottom_logo_position = 0;

function scroll_opis_firmy(id)
{
	document.getElementById("scroll_bottom_opis").innerHTML = 
		'<br><b>'+pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+id+"]/firma")+'</b><br>'+
		pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+id+"]/opis_pl")+
		'<p align=left><a target="_blank" href="http://'+pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+id+"]/url")+'">'+pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+id+"]/url")+'</a></p>';
}
function slider_img_loaded()
{
	var i, count = 0;
	for (i=0; i<img_logo.length; i++)
	{
		if ((document.all && img_logo[i].readyState=="loading") || (!document.all && !img_logo[i].complete))
		{
			scroll_bottom_timeout = setTimeout("slider_img_loaded()", 500);
			return;
		}
		if (document.all && img_logo[i].readyState=="uninitialized")
			img_logo[i].width=0;
// sprawdzenie czy jest zaladowane logo - szerokosc wieksza niz zero
		count += img_logo[i].width;
	}
	if (!count) 
		return;
// budowanie przewijajacych elementow i obliczanie szerokosci pojedynczego bloku
	scroll_bottom_logo_width = 0;
	var scroll_bottom_logo_html = "";
	var x = 1;
	if (document.all) x = 0; /* IE interpretuje od 0 zamiast od 1 !! */
	for (i=0; i<img_logo.length; i++)
	{
		if (img_logo[i].width)
		{
			scroll_bottom_logo_html += '<a target="_blank" href="http://'+pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+x+"]/url")+'"><img alt="" onmouseover="scroll_opis_firmy(\''+x+'\');" src="'+pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+x+"]/obraz")+'" border=0 vspace=0 width='+img_logo[i].width+' height='+img_logo[i].height+'></a><img src="/images/pusty.gif" width=10 height=1>';
			scroll_bottom_logo_width += img_logo[i].width + 10;
		}
		x++;
	}
// powielanie przewijajacych sie elementow
	var loga = scroll_bottom_logo_html;
	var loga_width = scroll_bottom_logo_width;
	while (loga_width <= document.getElementById("scroll_bottom").offsetWidth)
	{
		loga += scroll_bottom_logo_html;
		loga_width += scroll_bottom_logo_width;
	}
// dodaj przestrzen dodatkowa i wstaw znacznik nielamania linii
	loga += scroll_bottom_logo_html;
	loga_width += scroll_bottom_logo_width;
	loga = "<nobr>"+loga+"</nobr>";
// pokazanie logo firm
	document.getElementById("scroll_bottom").innerHTML = loga;
// rozpocznij przewijanie
	start_scroll_bottom();
}
function init_scroll_bottom()
{
	if (document.getElementById("scroll_bottom") == null)
		return;
//	scroll_bottom_obj = document.getElementById("scroll_bottom_frame");
	var x = 1;
	if (document.all)
		x = 0;
	img_logo = new Array();
	while (	pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+x+"]/obraz"))
	{
		var img = new Image();
		img.src = pobierz_element_xml(xml_logo_scroll, "/logo/pozycja["+x+"]/obraz");
		img_logo.push(img);
		x++;
	}
// nie ma żadnego logo do pokazania
	if (img_logo.length == 0)
	{
		document.getElementById("scroll_bottom").innerHTML = "";
		return;
	}
// poczekaj na zaladowanie sie plikow graficznych logo
	scroll_bottom_timeout = setTimeout("slider_img_loaded()", 500);
}
function start_scroll_bottom()
{
	scroll_bottom_timeout=setTimeout("scroll_bottom()", 20);
}
function stop_scroll_bottom()
{
	clearTimeout(scroll_bottom_timeout);
}
function scroll_bottom()
{
	if (scroll_bottom_logo_position == -scroll_bottom_logo_width)
		scroll_bottom_logo_position = 0;
	scroll_bottom_logo_position--;
	document.getElementById("scroll_bottom").style.left = scroll_bottom_logo_position+"px";
// rozpocznij koleje przewijanie
	start_scroll_bottom();
}

/*
	obliczanie ilosci wpisanego tekstu
*/
function tresc_zmiana(id_pola, max_dlugosc, id_pola_opisu)
{
	var tf=document.getElementById(id_pola);
	var chars_count = tf.value.length;
	if (tf.value.length > max_dlugosc)
	{
		if (tf.selectionStart)
		{
			var left_part = tf.selectionStart;
			var right_part = chars_count - tf.selectionStart;
			if (right_part >= max_dlugosc)
			{
				right_part = max_dlugosc;
				left_part = 0;
			}
			else
			{
				left_part = max_dlugosc - right_part;
			}
			tf.value = tf.value.substr(0, left_part)+tf.value.substr(chars_count-right_part, right_part);
			tf.selectionStart = left_part;
			tf.selectionEnd = left_part;
		}
		else
		{
			tf.value=tf.value.substr(0, max_dlugosc);
		}
	}
	chars_count = max_dlugosc - tf.value.length;
	document.getElementById(id_pola_opisu).innerHTML=chars_count;
}

/*
	pokazywanie ukrywanie elementu
*/
function pokaz_ukryj(id_obiekt)
{
	if (document.getElementById(id_obiekt).style.display == '')
		document.getElementById(id_obiekt).style.display = 'none';
	else
		document.getElementById(id_obiekt).style.display = '';
}


/*
	okno wyskakujace
*/
var noweOkno;
function pokaz_okno(adres, szer, wys)
{
	noweOkno = window.open(adres, 'noweOkno', 'menubar=no, toolbar=no, location=no, scrollbars=yes, resizable=no, status=no, width='+szer+', height='+wys);
}

function pokaz_mape()
{	
// uruchom mapy google
	if (typeof(google_maps_init) == 'undefined')
		return;
		google_maps_init();
// dodaj liste adresow wyszukiwanych - od najmniej do nabadziej szczegolowych
		google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value);

		google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value+", "+
			document.getElementById("adres_firmy_region").value);

		google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value+", "+
			document.getElementById("adres_firmy_region").value+", "+
			document.getElementById("adres_firmy_miejscowosc").value);

		if (document.getElementById("adres_firmy_kod_pocztowy").value != "")
			google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value+", "+
				document.getElementById("adres_firmy_region").value+", "+
				document.getElementById("adres_firmy_kod_pocztowy").value);

		google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value+", "+
			document.getElementById("adres_firmy_kod_pocztowy").value+" "+
			document.getElementById("adres_firmy_miejscowosc").value);

		google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value+", "+
			document.getElementById("adres_firmy_region").value+", "+
			document.getElementById("adres_firmy_kod_pocztowy").value+" "+
			document.getElementById("adres_firmy_miejscowosc").value);

		if (document.getElementById("adres_firmy_kod_pocztowy").value != "")
			google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value+", "+
				document.getElementById("adres_firmy_kod_pocztowy").value+" "+
				document.getElementById("adres_firmy_miejscowosc").value+", "+
				document.getElementById("adres_firmy_adres").value);

		google_maps_addAddress(document.getElementById("adres_firmy_panstwo").value+", "+
			document.getElementById("adres_firmy_region").value+", "+
			document.getElementById("adres_firmy_kod_pocztowy").value+" "+
			document.getElementById("adres_firmy_miejscowosc").value+", "+
			document.getElementById("adres_firmy_adres").value);

		google_maps_showAddress();
}

/*
	inicjalizacja skryptów strony
*/
function init_main()
{
	konwersja_cen();
	
	pokaz_mape();
/*
	var now = new Date()
// zaladuj plik z walutami
	xml_waluty=loadXMLDoc('/xml/kursy_walut.xml?'+now.getHours());
// aktualizuj kursy walut w walutach po lewej
	aktualizuj_kursy_walut();
// oblicz ceny na podstawie pobranego kursu walut
	zmiana_waluty(document.getElementById("ceny_w_walucie").value);

// ladowanie pliku konfiguracyjnego z logami form
	xml_logo_scroll=loadXMLDoc('/xml/logo_scroll.xml?'+now.getHours());
// utworz warstwe prewijana i wlacz przewijanie
	init_scroll_bottom();
// zamiana elementow formularzy
	if (typeof (Custom) != 'undefined')
		Custom.init();
*/
}

function deinit_main()
{
	if (typeof(GUnload) != 'undefined')
		GUnload();
}
