/* ksiazka telefoniczna */
var bPhoneBookLoaded = false;
var fnOnFieldSet;


function loadPhoneBook()
{
  if(bPhoneBookLoaded) {
	return false;  
  }

  showProgress(true, "kontenerKomunikatu", "kontenerTresci");

  // kontynuuje jedynie jezeli obiekt xmlHttp nie jest zajety
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
	    xmlHttp.open("GET", "engine/getPhoneBookItems.php", true);  
	    xmlHttp.onreadystatechange = getLoadPhoneBookResults;
	    xmlHttp.send(null);
  }
  else
    // jeĹ›li poĹ‚Ä…czenie jest zajÄ™te, ponawia prĂłbÄ™ po 1 sekundzie
    setTimeout('loadPhoneBook()', 1000);
}

// wykonywana automatycznie po otrzymaniu odpowiedzi z serwera
function getLoadPhoneBookResults() 
{
  // kontynuuje jedynie jeĹ›li transakcja zostaĹ‚a zakoĹ„czona
  if (xmlHttp.readyState == 4)  {
    // status 200 oznacza pomyĹ›lne ukoĹ„czenie transakcji
    if (xmlHttp.status == 200)  {
		var oInsertLink = document.getElementById("linkWstawNumer");
		disableLink(oInsertLink, setRecipientField);
		var xmlResponse = xmlHttp.responseXML;
		var xmlRoot = xmlResponse.documentElement;
		var arNames = xmlRoot.getElementsByTagName("name");
		var arRecipients = xmlRoot.getElementsByTagName("recipient");
		var oNamesList = document.getElementById("listaOdbiorcow");
		removeAllOptions(oNamesList);
		for(var i=0; i<arNames.length; i++) {
			if(arNames[i].firstChild) {
				var oOption = addOptionToList(oNamesList, arNames[i].firstChild.data, arRecipients[i].firstChild.data);
			}
		}
		
		showProgress(false, "kontenerKomunikatu", "kontenerTresci");
		bPhoneBookLoaded = true;
	} 
    // dla statusu protokolu HTTP innego niz 200 zglasza blad
    else {
      alert("Zadanie nie moze byc wyslane. Spróbuj ponownie.");
    }
  }
}


function showNumber(oList) {
	var oNumber = document.getElementById("numerOdbiorcy");
	var sValue = oList.options[oList.selectedIndex].value;
	oNumber.value = sValue.replace("|", " ");	
}

function setRecipientField(oEvent) {
	var oList = document.getElementById("listaOdbiorcow");
	var oRecipient = document.getElementById("odbiorca");
	var oPrefix = document.getElementById("prefixKraju");
	var oCountries = document.getElementById("listaKrajow");

	if(oList.options.length == 0)
		return;

	var arValues = oList.options[oList.selectedIndex].value.split("|");
	
	if(oCountries.disabled) {
		if(oPrefix.value != arValues[0]) {
			alert("Obsługiwane są wyłącznie numery z prefixem " + oPrefix.value + ".");
			return;
		}
	}

	oRecipient.value = arValues[1];
	oPrefix.value = arValues[0];

	for(var i=0; i<oCountries.options.length; i++) {
		if(oCountries.options[i].value == arValues[0]) {
			oCountries.selectedIndex = oCountries.options[i].index;
		}
	}
	
	hideBlock();
	if(fnOnFieldSet)
		fnOnFieldSet();
}


function activatePhoneBook(fnOnFieldSetParam) {
	fnOnFieldSet = fnOnFieldSetParam;
	activateHiddenBlock("linkPokazKsiazke", "ksiazkaTelefoniczna", "przyciskZamykajacy1", "loadPhoneBook");	
	bPhoneBookLoaded = false;
	var oList = document.getElementById("listaOdbiorcow");
	removeAllOptions(oList);
	addEventHandler(oList, "dblclick", setRecipientField);
	addEventHandler(oList, "click", enableInsertLink);

	enableInsertLink(null);	
}

function enableInsertLink(oEvent) {
	var oList = document.getElementById("listaOdbiorcow");
	var oInsertLink = document.getElementById("linkWstawNumer");
	if(oList.options.length > 0 && oList.options[oList.selectedIndex].value != "")
		enableLink(oInsertLink, setRecipientField);
	addEventHandler(oInsertLink, "click", preventDefaultEvent);
}