

//##############################################################################//
//
//	OzYrys - The AJAX-Engine
//
//	Author	: Piotr Mozer
//
//	Last Rev.	: 20-08-2008
//
//##############################################################################//

var HintPos = -1;
var CompName;

// inicjalizacja objektu silnika
AjaxEngine = {};

AjaxEngine.Initialize = function() {
	this.isUpdating		= false;
	this.EngineRev		= "0.1.1";
}


// tworzenie zapytania XHR
AjaxEngine.makeRequest = function (method, url, callbackMethod) {
	this.request = (window.XMLHttpRequest) ? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
	this.request.onreadystatechange = callbackMethod;
	this.request.open(method, url, true);
	this.request.setRequestHeader("Content-type", "text/html; charset=utf-8");
	this.request.send(url);
}


// sprawdzenie stanu zapytania
AjaxEngine.checkReadyState = function(_id) {

	switch(this.request.readyState) {
		case 1:
			document.getElementById(_id).innerHTML = "Ładowanie...";
			break;
		case 2:
			document.getElementById(_id).innerHTML = "Ładowanie...";
			break;
		case 3:
			document.getElementById(_id).innerHTML = "Ładowanie...";
			break;
		case 4:
			this.isUpdating = false;
			document.getElementById(_id).innerHTML = "";
			return this.request.status;
	}


}


// uaktualnienie
AjaxEngine.Update = function(method, service, callback) {
	this.makeRequest(method, service, callback);
	this.isUpdating = true;
}


// pobranie odpowiedzi i sprawdzenie jej formatu
AjaxEngine.getResponse = function() {
//	if(this.request.getResponseHeader('Content-Type').indexOf('xml') != -1) {
//		return this.request.responseXML.documentElement;
//	} else {
		return this.request.responseText;
		this.request.responseText = '';
//	}
}




// parsowanie odpowiedzi -> XML
AjaxEngine.onXMLResponse = function() {
	if(checkReadyState(request, 'hint_box') == true) {
		var response = request.responseXML.documentElement;

		//Parsing engine

	}
}





// parsowanie odpowiedzi -> TXT
AjaxEngine.onTXTResponse = function() {
	if(checkReadyState(request, 'hint_box') == true) {
		var response = request.responseXML.documentElement;

		//Parsing engine

	}
}



// Zamkniecie hint_box'a
function CloseHint() {
	document.getElementById('hint_box').innerHTML = "";
	document.getElementById('hint_box').style.visibility = 'hidden';
}
function CloseHint2() {
	document.getElementById('hint_box2').innerHTML = "";
	document.getElementById('hint_box2').style.visibility = 'hidden';
	//document.getElementById('hint_box2').style.display = 'none';
	//document.getElementById('hint_box2adf').style.display = 'none';
}


// Wpis do hint_box'a
function pokaz() {
	if(AjaxEngine.checkReadyState('hint_box') == 200) {
		if (AjaxEngine.getResponse() == '') {
			document.getElementById('hint_box').innerHTML = '';
			document.getElementById('hint_box').style.visibility = 'hidden'; 
		} else {
			document.getElementById('hint_box').style.visibility = 'visible';
			document.getElementById('hint_box').innerHTML = AjaxEngine.getResponse();
			var cmField = document.getElementById('comp_name_field');
				cmField.onKeypress = function() {
					
				}
			HintPos = -1;
		}
	}

}
function pokaz2() {
	if(AjaxEngine.checkReadyState('hint_box2') == 200) {
		if (AjaxEngine.getResponse() == '') {
			document.getElementById('hint_box2').innerHTML = '';
			document.getElementById('hint_box2').style.visibility = 'hidden'; 
		} else {
			document.getElementById('hint_box2').style.visibility = 'visible';
			document.getElementById('hint_box2').innerHTML = AjaxEngine.getResponse();
			var cmField = document.getElementById('comp_name_field2');
				cmField.onKeypress = function() {
					
				}
			HintPos = -1;
		}
	}

}



function RewriteField(event) {
var ichar = event.keyCode;

	CompName = document.getElementById('comp_name_field').value;
if (ichar != 13) {
	
	return true;
} else {
	return false;
}

}
function RewriteField2(event) {
var ichar = event.keyCode;

	CompName = document.getElementById('comp_name_field2').value;

	if (ichar != 13) {
	return true;
} else {
	return false;
}
}

// Pobranie z bazy
function pobierz(x, event) {


	var sUserAgent = navigator.userAgent;
	var bIsIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1;
	var ic = 0;



		var oEvent = event;
		var ichar = oEvent.keyCode;

/*		if (!bIsIE) {
			if (oEvent.isChar) {
				ic = true;
			}
		} else {
			ic = true;
		}
*/

	if (document.getElementById('comp_name_field').value == "") {
		CloseHint();
	}



	if ((document.getElementById('comp_name_field').value != "") && (document.getElementById('comp_name_field').value != CompName)) {
		AjaxEngine.Update('GET', '/dopelnianie.php?ajax=on&s=' + x, pokaz);
	}

	if (AjaxEngine.getResponse() != '') {
		var HN = document.getElementById('htpn');
		var HN2 = HN.getElementsByTagName('TR');
	
		var HintNo = HN2.length;

		if ((ichar == 13) && (HintPos != -1)) {
			var ht = document.getElementById('hint_' + HintPos);
//			var hintText = ht.getElementsByTagName('<a>');
			var hintText1 = ht.childNodes.item(0).lastChild.nodeValue;
				FillCompField(hintText1);
				return false;
		}

		if (ichar == 38) { 
			if ((HintPos - 1) >= 0) { HintPos--; }
			var ht = document.getElementById('hint_' + HintPos);
			ht.style.background='#ffde9e';
			var ht2 = document.getElementById('hint_' + (HintPos + 1));
			ht2.style.background='white';

		}

		if (ichar == 40) { 
			document.getElementById('comp_name_field').blur;
			if ((HintPos + 1) < HintNo) { HintPos++; }
			var ht = document.getElementById('hint_' + HintPos);
			ht.style.background='#ffde9e';
			if (HintPos > 0) {			
				var ht2 = document.getElementById('hint_' + (HintPos - 1));
				ht2.style.background='white';
			}
		}
	}
}



// Wypelnienie pola wpisu wybrana pozycja
function FillCompField(val) {
	var obj = document.getElementById('comp_name_field');
		var tgt = obj.value;
		
		pozycja = tgt.lastIndexOf(',');
		obj.value = tgt.substr(0,pozycja) + ', ' + val;
	CloseHint();
}


//----------------miasta-----------------------

function pobierz2(x, event) {

  
	var sUserAgent = navigator.userAgent;
	var bIsIE = sUserAgent.indexOf("compatible") > -1 && sUserAgent.indexOf("MSIE") > -1;
	var ic = 0;



		var oEvent = event;
		var ichar = oEvent.keyCode;


	if (document.getElementById('comp_name_field2').value == "") {
		CloseHint2();
	}



	if ((document.getElementById('comp_name_field2').value != "") && (document.getElementById('comp_name_field2').value != CompName)) {
		AjaxEngine.Update('GET', 'dopelnianie2.php?ajax=on&s=' + x, pokaz2);
	}

	if (AjaxEngine.getResponse() != '') {
		var HN = document.getElementById('htpn2');
		var HN2 = HN.getElementsByTagName('TR');
	
		var HintNo = HN2.length;

		if ((ichar == 13) && (HintPos != -1)) {
			var ht = document.getElementById('hint2_' + HintPos);
//			var hintText = ht.getElementsByTagName('<a>');
			var hintText1 = ht.childNodes.item(0).lastChild.nodeValue;
				FillCompField2(hintText1);
				return false;
				
		}

		if (ichar == 38) { 
			if ((HintPos - 1) >= 0) { HintPos--; }
			var ht = document.getElementById('hint2_' + HintPos);
			ht.style.background='#ffde9e';
			var ht2 = document.getElementById('hint2_' + (HintPos + 1));
			ht2.style.background='white';

		}

		if (ichar == 40) { 
			document.getElementById('comp_name_field2').blur;
			if ((HintPos + 1) < HintNo) { HintPos++; }
			var ht = document.getElementById('hint2_' + HintPos);
			ht.style.background='#ffde9e';
			if (HintPos > 0) {			
				var ht2 = document.getElementById('hint2_' + (HintPos - 1));
				ht2.style.background='white';
			}
		}
	}

}



function FillCompField2(val) {
	var obj = document.getElementById('comp_name_field2');
		obj.value=val;
	CloseHint2();
}






