// JavaScript Document UTF-8

function sh(obj) {
	var result = "";
	for (var i in obj)
		result += "." + i + " = " + obj[i] + "\n";
	alert(result);
	}

var id = 'onz';


var elZapt = document.getElementById('zapytania');

var arrS = new Array();
var txt1 = 'Za pomocą formularza można skierować zapytanie drogą email jednocześnie do kilku ofert zaznaczając je na liście wyszukiwania.';
var txt2 = 'Automatyczne potwierdzenie wysłania zapytania oraz poszczególne odpowiedzi bezpośrednio od właścicieli ofert zostaną wysłane na adres email podany w formularzu.';

arrS[10] = {'t':0, 'n':'div', 'd':'', 'sA':{'className':'Naglowek2'}}
arrS[11] = {'t':1, 'n':'Wysyłanie zapytania', 'd':'10'}
arrS[12] = {'t':0, 'n':'div', 'd':'','sA':{'className':'info'}}
arrS[13] = {'t':1, 'n':txt1, 'd':'12','sA':{}}
arrS[14] = {'t':0, 'n':'br', 'd':'12','sA':{}}
arrS[15] = {'t':1, 'n':txt2, 'd':'12','sA':{}}
arrS[16] = {'t':0, 'n':'div', 'd':'','sA':{'id':'komu'}}

arrS[17] = {'t':0, 'n':'div', 'd':'', 'sA':{'className':'zaznacz'}}
arrS[18] = {'t':1, 'n':'Na powyższej liście ofert: ', 'd':'17'}
arrS[19] = {'t':0, 'n':'a', 'd':'17', 'sA':{'href':'javascript:void%200'}, 'dF':{'onclick':'zaznacz.wolaj(this,"1")'}}
arrS[20] = {'t':1, 'n':'zaznacz wszystkie', 'd':'19'}


arrS[26] = {'t':0, 'n':'table', 'd':'','sA':{'className':'onwForZap'}}
arrS[27] = {'t':0, 'n':'tbody', 'd':'26','sA':{}}


arrS[28] = {'t':0, 'n':'tr', 'd':'27','sA':{}}
arrS[29] = {'t':0, 'n':'th', 'd':'28','sA':{}}
arrS[30]= {'t':1, 'n':'Twój email:', 'd':'29','sA':{}}
arrS[31]= {'t':0, 'n':'td', 'd':'28','sA':{}}
arrS[32]= {'t':0, 'n':'input', 'd':'31','sA':{'className':'input', 'size':'45','name':'email', 'maxlength':'55'}}

arrS[33]= {'t':0, 'n':'tr', 'd':'27','sA':{}}
arrS[34]= {'t':0, 'n':'th', 'd':'33','sA':{}}
arrS[35]= {'t':1, 'n':'Przedstaw się:', 'd':'34','sA':{}}
arrS[36]= {'t':0, 'n':'div', 'd':'34','sA':{}}
arrS[37]= {'t':1, 'n':'np. imię, nazwisko, kontakt tel., miejscowość', 'd':'36','sA':{}}
arrS[38]= {'t':0, 'n':'td', 'd':'33','sA':{}}
arrS[39]= {'t':0, 'n':'textarea', 'd':'38','sA':{'className':'input', 'name':'kto', 'cols':'55', 'rows':'2'}}

arrS[40]= {'t':0, 'n':'tr', 'd':'27','sA':{}}
arrS[41]= {'t':0, 'n':'th', 'd':'40','sA':{}}
arrS[42]= {'t':1, 'n':'Termin pobytu:', 'd':'41','sA':{}}
arrS[43]= {'t':0, 'n':'div', 'd':'41','sA':{}}
arrS[44]= {'t':1, 'n':'od dnia do dnia;', 'd':'43','sA':{}}
arrS[45]= {'t':0, 'n':'br', 'd':'43','sA':{}}
arrS[46]= {'t':1, 'n':'np. 1 lipiec 2006 do 14.07.06r.', 'd':'43','sA':{}}
arrS[47]= {'t':0, 'n':'td', 'd':'40','sA':{}}
arrS[48]= {'t':0, 'n':'input', 'd':'47','sA':{'className':'input', 'size':'40','name':'termin', 'maxlength':'55'}}

arrS[49]= {'t':0, 'n':'tr', 'd':'27','sA':{}}
arrS[50]= {'t':0, 'n':'th', 'd':'49','sA':{}}
arrS[51]= {'t':1, 'n':'Ilość osób:', 'd':'50','sA':{}}
arrS[52]= {'t':0, 'n':'div', 'd':'50','sA':{}}
arrS[53]= {'t':1, 'n':'np. 3 os. dorosłe oraz niemowle;', 'd':'52','sA':{}}
arrS[54]= {'t':0, 'n':'td', 'd':'49','sA':{}}
arrS[55]= {'t':0, 'n':'input', 'd':'54','sA':{'className':'input', 'size':'40','name':'ile', 'maxlength':'55'}}

arrS[56]= {'t':0, 'n':'tr', 'd':'27','sA':{}}
arrS[57]= {'t':0, 'n':'th', 'd':'56','sA':{}}
arrS[58]= {'t':1, 'n':'Dodatkowe:', 'd':'57','sA':{}}
arrS[59]= {'t':0, 'n':'div', 'd':'57','sA':{}}
arrS[60]= {'t':1, 'n':'wymagania odnośnie pokoju, udogodnienia w obiekcie,', 'd':'59','sA':{}}
arrS[61]= {'t':0, 'n':'br', 'd':'59','sA':{}}
arrS[62]= {'t':1, 'n':'kto ma być adresatem oferty: rodzina z dziećmi, młode małżeństwo itp.', 'd':'59','sA':{}}
arrS[63]= {'t':0, 'n':'td', 'd':'56','sA':{}}
arrS[64]= {'t':0, 'n':'textarea', 'd':'63','sA':{'className':'input', 'name':'opis', 'cols':'55', 'rows':'4'}}


arrS[65]= {'t':0, 'n':'tr', 'd':'27','sA':{}}
arrS[66]= {'t':0, 'n':'td', 'd':'65','sA':{'colspan':'2'}}
arrS[67]= {'t':0, 'n':'input', 'd':'66','sA':{'className':'submit', 'name':'submit','type':'submit','value':'wyślij'}}


//sh (arrS)


for (var i in arrS){
	var e = arrS[i];
	if(e.t ==0){
		var l = document.createElement(e.n);
		var n = 'zapytania'+i;
		l['id'] = n;
		var ob = e.sA;
		for (a in ob){
			l[a]= ob[a];
			}
		}
	else{
		var l = document.createTextNode(e.n);		
		}
	if(e.dF){
		for (a in e.dF){
			l['alt'] = e.dF[a];
			l[a]= function () {eval(this.alt);}
			}
		}		
	document.getElementById('zapytania'+e.d).appendChild(l)
	}



var zaznacz = 
{
wolaj: function(el,stan){
	var k = document.forms[id].elements['zap[]'];
	for (var i=0; i < k.length; i++) {
		if (stan==1)
			k[i].checked = true;
		if (stan==0)
			k[i].checked = false;
		}
	if (stan==0){
		el.alt = 'zaznacz.wolaj(this,"1")';
		el.removeChild(el.firstChild);
		var l = document.createTextNode('zaznacz wszystkie');
		el.appendChild(l);
		}
	if (stan==1){
		el.alt = 'zaznacz.wolaj(this,"0")';
		el.removeChild(el.firstChild);
		var l = document.createTextNode('odznacz wszystkie');
		el.appendChild(l);
		}
	}
}







var formularz = 
{
przygotuj: function (){
	var f = document.getElementById(id);
	f.onsubmit = function(){formularz.wyslij(); return false;};
	},

kasujDzieci:function (rodzic){
	if (rodzic.hasChildNodes()) {
		while (rodzic.firstChild){//lista jest "żywa", więc będzie przeindeksowana po każdym wywołaniu
			rodzic.removeChild(rodzic.firstChild);
			};
		}
	},
	
ladujStart: function (){
	var p = document.createElement('p');
	p.className = 'stanXML';
	p.id = 'wysylamDane';
	var t = document.createTextNode("Wysyłam dane..."); 
	p.appendChild(t);
	var przed = document.getElementById('komu');
	this.kasujDzieci(przed);
	elZapt.insertBefore(p,przed);
	},
ladujStop: function (){
	var przed = document.getElementById('wysylamDane');
	przed.parentNode.removeChild(przed);
	},

wyslij: function (){
	this.ladujStart();
	this.zapytaj();
	},

odpowiedz: function (http_request){
	this.analizujOdpowiedz (http_request);
	},

xmlToObject: function (xml,obiektZxml){
	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ść
		obiektZxml[n] = new Object();
		if (v == null)
			this.xmlToObject(x,obiektZxml[n]);
		else{
			obiektZxml[n] = v;
			}
		}
	},

analizujOdpowiedz: function (http_request){
	var a = new Array();
	var xmlDoc = http_request.responseXML;
	var xml = xmlDoc.documentElement;

	obiektZxml = new Object();
	this.xmlToObject(xml,obiektZxml);

	if(obiektZxml.error['#text']==0){ 
		this.sukcess();
		}
	else
		this.bledy();
	this.ladujStop();
	},

komunikaty: function (e){
	var x = obiektZxml.komunikaty;

	var u = document.createElement('ul');

	for (var i in x){
		if (i=='ng'){
			var t = document.createTextNode(x[i]['#text']);
			u.appendChild(t);			
		}
		else{
			var l = document.createElement('li');
			var t = document.createTextNode(x[i]['#text']);
			l.appendChild(t);
			u.appendChild(l);
			}
		e.appendChild(u);
		}
//	this.show(obiektZxml.komunikaty);
	},
bledy: function (){
	var g = document.createElement('div');
	g.id = 'formularz';
	this.komunikaty(g);
	document.getElementById('komu').appendChild(g);	
	},

sukcess: function (){this.show(obiektZxml.komunikaty.ng);
	},

zbierzDane: function (odp){
	var f = document.forms[id];
	var string = new Array();

	for (var i=0; i < f.length; i++) {
		var t = f.elements[i].type;
		var e =f.elements[i];
			if ((t == 'checkbox' && e.checked == true) || t != 'checkbox'){
				string.push(encodeURIComponent(e.name) +'='+ encodeURIComponent(e.value));
				}
		}
	var tbl = string.join("&");
	return (tbl);
	},

zapytaj: function () {
	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() { formularz.alertContents(http_request);}; 
		http_request.open('POST', 'http://' + (window.location.host) + '/zapytania_AJAX.php', true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		http_request.send(this.zbierzDane());
		//http_request.send(null);
	},

show: function (obj) {
	var result = "";
	for (var i in obj)
		result += "." + i + " = " + obj[i] + "\n";
	alert(result);
	},


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

formularz.przygotuj();
