var oForm;
var arInputs;
var arSelects;
var oSendButton;
var oLinkBook;
var oResultDiv
var sLogin;
var oProducerSelect;
var oModelSelect;
var oCheckPriceLink;
var oRecipient;
var oPrefix;
var oCountries;

function activateSendLogoStep1(sLoginParam) {
	sLogin = sLoginParam;
	oForm = document.getElementById("formularzLogo");
	arSelects = oForm.getElementsByTagName("select");
	oSendButton = document.getElementById("buttonWyslij");
	oResultDiv = document.getElementById("blokWyslijLogoTresc");
	
	oProducerSelect = document.getElementById("producentTelefonu");
	oModelSelect = document.getElementById("modelTelefonu");	

	arInputs = oForm.getElementsByTagName("input");
	
//alert(oIframeDiv.parentNode.style);
	if(sLogin) {
		enableFormStep1();
		updateCreditBalance();
	}
	else
		disableFormStep1();
}


function activateSendLogoStep2(sLoginParam) {
	sLogin = sLoginParam;
	oSendButton = document.getElementById("buttonWyslij");
	oForm = document.getElementById("formularzLogo");
	
	oCheckPriceLink = document.getElementById("kosztWiadomosciLink");
	oRecipient = document.getElementById("odbiorca");
	oPrefix = document.getElementById("prefixKraju");
	
	if(sLogin)  {
		enableButton(true, oSendButton, sendLogoStep2);
	}
	else
		enableButton(false, oSendButton, sendLogoStep2);

	oCountries = document.getElementById("listaKrajow");
	addEventHandler(oCountries, "change", selectCountryPrefix);

	oLinkBook = document.getElementById("linkPokazKsiazke");
	enableLink(oLinkBook, loadPhoneBook);
	activatePhoneBook(restoreLink);
	activatePriceChecking();
}

function activatePriceChecking() {
	addEventHandler(oCheckPriceLink, "click", getPrice);
	addEventHandler(oRecipient, "keyup", restoreLink);	
	addEventHandler(oCountries, "change", restoreLink);	
	addEventHandler(oCheckPriceLink, "click", preventDefaultEvent);
}

function enableFormStep1() {
	for(var i=0; i<arInputs.length; i++) {
		arInputs[i].disabled = null;
	}
	
	for(var i=0; i<arSelects.length; i++) {
		arSelects[i].disabled = null;
	}
	
	enableButton(true, oSendButton, sendLogoStep1);
	addEventHandler(oProducerSelect, "change", setModelField);
	addEventHandler(oModelSelect, "change", setLogoSize);
}

function disableFormStep1() {
	for(var i=0; i<arInputs.length; i++) {
		arInputs[i].disabled = "disabled";
	}
	for(var i=0; i<arSelects.length; i++) {
		arSelects[i].disabled = "disabled";
	}	

	enableButton(false, oSendButton, sendLogoStep1);
}

/******/

function getSmsType() {
	var oBwType = document.getElementById("typLogoCB");
	if(oBwType && oBwType.checked) 
		return 4;	
	else
		return 6;
}


/*********/

function setModelField(oEvent)
{
	var sProducer = oProducerSelect.options[oProducerSelect.selectedIndex].value;

	var arNokiaLabels = new Array ("-- Model --","1100","2100","2300","2600","2650","3100","3108","3120","3200","3210","3220","3230","3300","3310","3330","3350","3410","3510","3510i","3530","3650","3660","5100","5110","5130","5140","5210","5510","6010","6020","6021","6030","6100","6101","6108","6110","6130","6150","6170","6200","6210","6220","6230","6230i","6250","6260","6310","6310i","6500","6510","6600","6610","6610i","6620","6630","6650","6670","6680","6681","6800","6810","6820","6822","7110","7200","7210","7250","7250i","7260","7270","7280","7600","7610","7650","7700","7710","8210","8310","8800","8810","8850","8890","8910","8910i","9110","9110i","9210","9210i","9300","9500","N-Gage");
	var arNokiaValues = new Array ("","nczb","nczb","nczb","nczb","nkold","nkold","nkold","nkold","nkold","nczb","nkold","nczb","nkold","nczb","nczb","nczb","nczb","nczb","nkolm","nkolm","nczb","nczb","nkold","nczb","nczb","nkold","nczb","nczb","nkolm","nkold","nkold","nkold","nkold","nkold","nkold","nczb","nczb","nczb","nkold","nczb","nczb","nkold","nkold","nkold","nczb","nczb","nczb","nczb","nczb","nczb","nczb","nkold","nkold","nczb","nczb","nkold","nczb","nczb","nczb","nkold","nkold","nkold","nkold","nczb","nkold","nkold","nkold","nkold","nkold","nkold","nkold","nkold","nczb","nczb","nkold","nczb","nczb","nczb","nkold","nczb","nczb","nczb","nczb","nkold","nczb","nczb","nczb","nczb","nczb","nczb","nczb");

	removeAllOptions(oModelSelect);

	if (sProducer == "Nokia") 	{ 
		for (var i = 0; i < arNokiaLabels.length; i++) {
			addOptionToList(oModelSelect, arNokiaLabels[i], arNokiaValues[i]);
		}
	}
	else {
		addOptionToList(oModelSelect, "-- Model --", "");
	}
	
	setLogoSize(null);
}

function resetLogoSize() {
	setLogoSize(null);
}

function setLogoSize(oEvent)
{
	var sValue = "";
	if(oEvent) {
		var oEventSrc = getEventSrc(oEvent);
		sValue = oEventSrc.value;
	}
	else {
		sValue = oModelSelect.value;
	}
	var oIframeDiv = document.getElementById("iframeUpload");

	document.body.fnOnChange = resetLogoSize;
	var oIframe = document.getElementById("iframeUpload0");
	
	if(!oIframeDiv || !oIframe)
		return;
	
	var oSizeLabel = oIframe.contentWindow.document.getElementById("wymiaryLoga");
	var oSizeField = oIframe.contentWindow.document.getElementById("wymiaryLogaInput");
	var oLogoVer = oIframe.contentWindow.document.getElementById("wersjaLogaInput");	
	
	if (sValue == "nczb") {
		if (sLanguage == "uk")
			oSizeLabel.innerHTML = "72x14 pixels";
		else
			oSizeLabel.innerHTML = "72x14 pixeli";
		oSizeField.value = "72x14";
	}
	else if (sValue == "nkolm") {
		if (sLanguage == "uk")
			oSizeLabel.innerHTML = "72x14 pixels";
		else
			oSizeLabel.innerHTML = "72x14 pixeli";
		oSizeField.value = "72x14";
	}
	else if (sValue == "nkold") {
		if (sLanguage == "uk")
			oSizeLabel.innerHTML = "100x50 pixeli";
		else
			oSizeLabel.innerHTML = "100x50 pixeli";
		oSizeField.value = "100x50";
	}
	else {
		if (sLanguage == "uk")
			oSizeLabel.innerHTML = "[select model]";
		else
			oSizeLabel.innerHTML = "[wybierz model]";
		oSizeField.value = "";
	}

	if(oSizeField.value != "") {
		oIframeDiv.style.display = "block";
	}
	else {
		oIframeDiv.style.display = "none";
	}
	
	oLogoVer.value = sValue;
}

/* send logo */

function sendLogoStep1()
{
	var oFileId = document.getElementById("idPliku");

	if(!oModelSelect || oModelSelect.value == "") {
		if (sLanguage == "uk")
			alert("Select phone model.");
		else
			alert("Wskaż model telefonu.");
		return;
	}
	if(!oFileId || oFileId.value == "") {
		if (sLanguage == "uk")
			alert("Please select file containing your logo.");
		else
			alert("Wskaż plik graficzny zawierający logo.");
		return;
	}
	
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
	{
		enableButton(false, oSendButton, sendLogoStep1);
		showProgress(true, "blokWyslijLogoPostep", "blokWyslijLogoTresc");
		xmlHttp.open("POST", "engine/sendLogo.php", true);  
		xmlHttp.onreadystatechange = getSendLogoStep1Results;
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.send("version=" + encodeURIComponent(oModelSelect.value) + "&" +
					 "fileId=" + encodeURIComponent(oFileId.value));
	}
	else
	    setTimeout('sendLogoStep1()', 1000);
}

// wykonywana automatycznie po otrzymaniu odpowiedzi z serwera
function getSendLogoStep1Results() 
{
	// kontynuuje jedynie jesli transakcja zostala zakonczona
	if (xmlHttp.readyState == 4) 
	{
  		// status 200 oznacza pomyslne ukonczenie transakcji
		if (xmlHttp.status == 200) 
		{	
			// wyodrebnia wiadomosc wyslana z serwera
			sResponse = xmlHttp.responseText;
			oResultDiv.innerHTML = sResponse;
			if(oResultDiv.firstChild.id == "step1")
				activateSendLogoStep1(sLogin);
			else
				activateSendLogoStep2(sLogin);
			showProgress(false, "blokWyslijLogoPostep", "blokWyslijLogoTresc");
		} 
		// dla statusu protokolu HTTP innego niz 200 zglasza blad
		else 
		{
			alert("Wystapil blad podczas uzyskiwania dostepu do serwera: " + xmlHttp.statusText);
		}
	}
}


function getRequestStringStep2() {
	var oFile = document.getElementById('idPliku');
	var iSmsType = getSmsType();
//	var oRecipient = document.getElementById('odbiorca');
//	var oPrefix = document.getElementById('prefixKraju');
	if(!oRecipient || oRecipient.value == "") {
		if (sLanguage == "uk")
			alert("Enter recipient number.");
		else
			alert("Określ odbiorcę wiadomości.");
		return null;
	}
	if(!oFile || oFile.value == "") {
		if (sLanguage == "uk")
			alert("Please select file containing your logo.");
		else
			alert("Wskaż plik graficzny zawierający logo.");
		return null;
	}

	if(oPrefix)
		return "send=1&smsType="+ iSmsType +"&fileId=" + encodeURIComponent(oFile.value) + "&"+ "recipient=" + encodeURIComponent(oPrefix.value + '|' + oRecipient.value);
	else
		return "send=1&smsType="+ iSmsType +"&fileId=" + encodeURIComponent(oFile.value) + "&"+ "recipient=" + encodeURIComponent(oRecipient.value);	
}

function sendLogoStep2()
{
	var sRequest = getRequestStringStep2();
	if(!sRequest)
		return;
	
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
	{
		enableButton(false, oSendButton, sendLogoStep2);
		showProgress(true, "blokWyslijLogoPostep", "blokWyslijLogoTresc");
		xmlHttp.open("POST", "engine/sendLogo.php", true);  
		xmlHttp.onreadystatechange = getSendLogoStep2Results;
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.send(sRequest);
	}
	else
	    setTimeout('sendLogoStep2()', 1000);
}


function getSendLogoStep2Results() 
{
	// kontynuuje jedynie jesli transakcja zostala zakonczona
	if (xmlHttp.readyState == 4) 
	{
  		// status 200 oznacza pomyslne ukonczenie transakcji
		if (xmlHttp.status == 200) 
		{	
			// wyodrebnia wiadomosc wyslana z serwera
			sResponse = xmlHttp.responseText;
			oResultDiv.innerHTML = sResponse;
			if(oResultDiv.firstChild.id == "topup")
				activatePacksList();
			else
				activateSendLogoStep1(sLogin);
/*			enableButton(false, oSendButton, sendLogoStep2);
			enableButton(true, oSendButton, sendLogoStep1); */
			showProgress(false, "blokWyslijLogoPostep", "blokWyslijLogoTresc");
		} 
		// dla statusu protokolu HTTP innego niz 200 zglasza blad
		else 
		{
			alert("Wystapil blad podczas uzyskiwania dostepu do serwera: " + xmlHttp.statusText);
		}
	}
}