// JavaScript Document 						Europa rodkowa ISO Letnik.pl ŻĆŃĽŁĘÓ żćńšłęó		

var dXML =
{

zapytaj: function () {
	var el = document.getElementById("alerty");
	var p = document.createElement('p');
	var t = document.createTextNode("Ładuję..."); 
	p.appendChild(t);
	el.appendChild(p);

	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			}
		}
	else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } 
		catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } 
			catch (e) {}
			}
		}

	if (!http_request) {
		alert('Poddaję się :( Nie mogę stworzyć instancji obiektu XMLHTTP');
		return false;
        }
        http_request.onreadystatechange = function() { dXML.alertContents(http_request);};
        http_request.open('GET', 'baza.xml', true);
        http_request.send(null);
		
		
	},

alertContents: function (http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			dXML.daneXML(http_request);
            } 
		else {
			alert('Wystąpił problem z zapytaniem.');
			}
		}
	},
	
	
daneXML: function(http_request){

	var a = new Array();
	var xmlDoc = http_request.responseXML;
	var xml = xmlDoc.documentElement;

	doObiektu (xml,dane);
	formularz.wypelnij ();
	wycieczki();
//	licz();
	wywolaj_cluetip(); // tipsy

	var el = document.getElementById("alerty"); // zniszczenie alertów
	el.removeChild(el.firstChild);
	},






show: function(obj) {
	var result = "";
	for (var i in obj)
		result += "." + i + " = " + obj[i] + "\n<br />";
	document.getElementById("debug").innerHTML += result;
	}

}



function show (obj) {
	var result = "";
	for (var i in obj)
		result += "." + i + " = " + obj[i] + "\n<br />";
	document.getElementById("debug").innerHTML += result;
	};



function doObiektu (xml,dane){
	var dzieci = xml.childNodes; // zwraca tablicę elementów potomnych

	for (var i = 0; i < dzieci.length; i++){
		var x = dzieci[i];
		var n = x.nodeName // nazwa węzła
		var v = x.nodeValue; // wartość
		dane[n] = new Object();
		if (v == null)
			doObiektu(x,dane[n]);
		else{
			dane[n] = v;
//			show(x)
			}
		}
	}



/* F O R M U L A R Z*/



var formularz =
{

wypelnij: function(){
	dane.f = new Object();
	dane.f.obiekt = new Array();
	dane.f.msc= new Array();
	var x = dane.obiekt;
	//obiekt, ilość miejsc
	var j=0;
	for (var i in x){
		dane.f.obiekt[j]	= x[i].nazwa['#text'];
		dane.f.msc[j]= new Array();
		dane.f.msc[j][0]	= x[i].minMiejsc['#text'];
		dane.f.msc[j][1]	= x[i].maxMiejsc['#text'];
		j++;
		}
	this.selectOption (f.obiekt,dane.f.obiekt);
	//łączna ilość osób
	this.fim();
	// wiek

	var j=0;
	var x = dane.wiek;
	dane.f.wiek = new Array();
	for (var i in x){
		dane.f.wiek[j]	= x[i]['#text'];
		j++;
		}
	this.selectOption (f.wiek,dane.f.wiek);


	// dni pobytu
	var j=0;
	var x = dane.dniPobytu;
	dane.f.dni = new Array();
	for (var i in x){
		dane.f.dni[j]	= x[i]['#text'];
		j++;
		}
	this.selectOption (f.dni,dane.f.dni);

	// rodzaj wyżywienia	
	dane.l = new Object();
	dane.l.w = new Object();
	var j=0;
	var x = dane.wyzywienie;
	dane.f.wyzywienie = new Array();
	for (var i in x){
		dane.f.wyzywienie[j]	= x[i]['nazwa']['#text'];
		dane.l.w[j] = new Array();	
		var v = x[i].ceny;
		for (var z in v){
			dane.l.w[j].push(v[z]['#text']);
			}
		j++;
		}
	this.selectOption (f.wyzywienie,dane.f.wyzywienie);

	// opiekunowie
	dane.l.o = new Object();
	dane.l.o.i = dane.opiekunowie.ile['#text'];
	dane.l.o.z = dane.opiekunowie.zaokr['#text'];

	//upust cenowy uzal od dni
	dane.l.uO = new Object();
	var j=0;
	var x = dane.nocleg.upustOsobowy;
	for (var i in x){
		dane.l.uO [j]	= x[i];
		j++;
		}

	// upust dniowy
	dane.l.uD = new Object();
	var j=0;
	var x = dane.nocleg.upustDniowy;
	for (var i in x){
		dane.l.uD[j] = new Object();
			for(var k in x[i]){
				dane.l.uD [j][k]	= (x[i][k]['#text']);
				}
		j++;
		}
	

	
	
	
	// ceny noclegi
	dane.l.c = new Object();
	var j=0;
	var x = dane.nocleg.ceny;
	for (var i in x){
		dane.l.c [j]	= x[i]['#text'];
		j++;
		}
	// wycieczki
	
	dane.w = new Object();
	dane.w.w = new Object();
	var j=0;
	var x = dane.wycieczkiAutokarowe;
	for (var i in x){
		dane.w.w[j] = new Array();
		var l = 0;
			for(var k in x[i]){
				dane.w.w [j][l]	= (x[i][k]['#text']);
				l++;
				}
		j++;
		}
	dane.w.m = new Object();
	var j=0;
	var x = dane.wycieczkiMiejscowe;
	for (var i in x){
		dane.w.m[j] = new Array();
		var l = 0;
			for(var k in x[i]){
				dane.w.m [j][l]	= (x[i][k]['#text']);
				l++;
				}
		j++;
		}

	

	},
	
selectOption: function(ff,ar){

	ff.options.length = 0;// wyczyszczenie option
	for (var i in ar){
		ff.options[i] = new Option(ar[i],i);
		}

	},//wartosci

fim: function(){
	var v = f.obiekt.value;
	var x = dane.f.msc;
	var t = x[v];
	var a = t[0];
	var b = t[1];
	var s = f.liczba.selectedIndex;
	if (s<0) s=0
	f.liczba.options.length = 0;// wyczyszczenie option
	for (var i =a; i<=b;i++){
		f.liczba.options[i-a] = new Option(i,i);
		}
	f.liczba.selectedIndex = s;
	}//wartosci

}// end formularz





function licz (){
	document.getElementById("debug").innerHTML = '';
	formularz.fim();

	// ilość opiekunów bezpłatnie
	dane.ile = new Object();
	dane.ile.u = f.liczba.value;
	var iOi = (dane.ile.u)/dane.l.o.i;
	var iOc = Math.floor(iOi);
	var iOr = iOi-iOc;
	dane.ile.o = iOc;
	if (iOr>dane.l.o.z) dane.ile.o +=1;
	
	//ilość uczestników odpłatnie
	dane.ile.u -=dane.ile.o;


	// ile dni
	dane.ile.d = dane.f.dni[f.dni.value];

	// stawka za nocleg
	var obj = f.obiekt.value

	var cena = dane.l.c[obj];

	// opusty cenowe dniowe

	var x = dane.l.uD;
	for (var i in x){
		if(eval(dane.ile.d+x[i]['iloscDn']))
			cena = eval(cena+x[i]['ws']);
		}

	// opusty cenowe uczestników

	var u = dane.l.uO[0].iloscOs['#text'];
	var uw= dane.l.uO[0].ws['#text'];
	if ( eval((dane.ile.o+dane.ile.u)+u)== true) // warunek ilość uczestników do...
		cena = eval(cena+uw);
	

	// stawka wyzywienia
	var wR = f.wyzywienie.value;
	var wW = f.wiek.value;

	cena +=eval(dane.l.w[wR][wW]);
	
	var cenaZ = (Math.round(cena*100))/100;

	// koszt
	var k  =eval(dane.ile.u*dane.ile.d*cena);
	var kZ = (Math.round(k*100))/100;
	
	var t = document.createTextNode(dane.ile.o);
	var e = 'w2';
	document.getElementById(e).innerHTML = '';
	document.getElementById(e).appendChild(t)

	var t = document.createTextNode(cenaZ); 
	var e = 'w3';
	document.getElementById(e).innerHTML = '';
	document.getElementById(e).appendChild(t)

	var t = document.createTextNode(kZ);
	var e = 'w1';
	document.getElementById(e).innerHTML = '';
	document.getElementById(e).appendChild(t)


	/* W Y C I E C Z K I */
	var lmA = dane.autokar.ileMiejsc['#text'];
	var q = dane.w.w;
	var wycieW = 0;
	var io = dane.ile.u;
	var auto = 0;
	if (f.elements['autokar'][0].checked==true){
		auto = 1;
		if (io>lmA)
			auto +=1;
		}

	for(var i in q){
		if(f.elements['ww'+i].checked==true){
			var e = (Math.round(((eval(io*q[i][1])+eval(q[i][2])+eval(auto*q[i][3])))*100))/100;
			var t = document.createTextNode(e);
			document.getElementById('tdww'+i).innerHTML = '';
			document.getElementById('tdww'+i).appendChild(t)
			wycieW +=e;
			}
		}
	var t = document.createTextNode('Razem: '+wycieW);
	document.getElementById('wwR').innerHTML = '';
	document.getElementById('wwR').appendChild(t)

//	document.getElementById('wwR').style.width = document.getElementById('ww').offsetWidth;

	var q = dane.w.m;
	var wycieM = 0;
	var io = dane.ile.u;

	for(var i in q){
		if(f.elements['wm'+i].checked==true){
			var c1 = 0;var c2 = 0; var c3=0;
			if (q[i][1]>0)
				c1 = q[i][1];
			if (q[i][2]>0)
				c2 = q[i][2];
			if (q[i][3]>0)
				c3 = q[i][3];
			var e = (Math.round(((eval(io*c1)+eval(c2)+eval(c3)))*100))/100;
			var t = document.createTextNode(e);
			document.getElementById('tdwm'+i).innerHTML = '';
			document.getElementById('tdwm'+i).appendChild(t)
			wycieM +=e;
			}
		}
	var t = document.createTextNode('Razem: '+wycieM);
	document.getElementById('wmR').innerHTML = '';
	document.getElementById('wmR').appendChild(t)


	/* K I L O M E T R Y */
	var zK = dane.autokar.zaKilometr['#text'];
	var iK = f.kilometry.value;
	var t = document.createTextNode('Koszt: '+eval(eval(zK)*iK));
	document.getElementById('waR').innerHTML = '';
	document.getElementById('waR').appendChild(t)



	}


function wycieczki (){
	var ww = document.getElementById('ww'); // odwołanie do tabeli

	var q = dane.w.w;
	for(var i in q){

		var inpN = 'ww'+i;
		
		var tr = document.createElement('tr');
		var td1 = document.createElement('td');
		var td2 = document.createElement('td');

		td2.setAttribute("id", 'td'+inpN);

		var labelTekst = document.createTextNode(q[i][0]);
		
	    var label = document.createElement("label");
	    label.setAttribute("for", inpN);
	    label.appendChild(labelTekst);

		var input = document.createElement('input');

		input.setAttribute('type', 'checkbox');
	    input.setAttribute("value", "");
    	input.setAttribute("id", inpN);
	    input.setAttribute("name", inpN);
		input.onclick=function () { licz(this.form); };

		td1.appendChild(label);
	    td1.appendChild(input);
		
		if (q[i][4] != null){
			var image = document.createElement('img');
			image.src="img/i.png";
			image.title=q[i][4];
			image.className="tips"
		    td1.appendChild(image);
		}
		
		tr.appendChild(td1);
		tr.appendChild(td2);
		ww.appendChild(tr);
		}


	var wm = document.getElementById('wm'); // odwołanie do tabeli

	var q = dane.w.m;
	for(var i in q){

		var inpN = 'wm'+i;
		
		var tr = document.createElement('tr');
		var td1 = document.createElement('td');
		var td2 = document.createElement('td');

		td2.setAttribute("id", 'td'+inpN);

		var labelTekst = document.createTextNode(q[i][0]);
		
	    var label = document.createElement("label");
	    label.setAttribute("for", inpN);
	    label.appendChild(labelTekst);

		var input = document.createElement('input');

		input.setAttribute('type', 'checkbox');
	    input.setAttribute("value", "");
    	input.setAttribute("id", inpN);
	    input.setAttribute("name", inpN);
		input.onclick=function () { licz(this.form); };

		td1.appendChild(label);
	    td1.appendChild(input);
		if (q[i][4] != null){
			var image = document.createElement('img');
			image.src="img/i.png";
			image.title=q[i][4];
			image.className="tips"
		    td1.appendChild(image);
		}

		tr.appendChild(td1);
		tr.appendChild(td2);
		wm.appendChild(tr);
/**/
	}

	}


function drukuj(){



	var f = document.getElementById("formul").innerHTML;
	var doc = 
	'<html><head><title>Wersja do druku...</title><meta http-equiv="content-type" content="text/html; charset=iso-8859-2">'+
	'<link rel="stylesheet" href="s_kalk.css" type="text/css" />'+
	'</head><body onLoad="window.print();">'+
	'<h2>www.wycieczki.jod.pl</h2>'+
	'<div class="opis">Ośrodek Wczasowy Paleo Władysławowo<br>ul. Wyzwolenia 86, tel. 058 674 24 40</div>'+
	'<form name="b">'+
	f+
	'</form>'+
	'<script>function licz(){alert ("to jest wersja do druku...");}; var x = opener.document.getElementById("formul"); var dlf = x.length; for (var i=0;i<dlf;i++){	if (x.elements[i].type== "radio" || x.elements[i].type== "checkbox"){		if(x.elements[i].checked) document.b.elements[i].checked = true;		}	else document.b.elements[i].value = x.elements[i].value;	} </script>';
	'</body></html>';
	
	W=window.open('','Drukuj','width=750,height=400,top=50,left=50,toolbar=no,scrollbars=yes,directories=yes,menubar=yes,scrollbars=yes, resizable=yes, status=yes');
	with(W.document){
		write(doc);
		close();
		}
	}


var f = document.forms['calc'];
var dane = new Object();
dXML.zapytaj ();

