// URL Encoding Reference: http://www.w3schools.com/TAGS/ref_urlencode.asp
/*function _urlEncode(uri) {
	var search = new Array(' ', 'Á', 'É', 'Í', 'Ó', 'Ő', 'Ö', 'Ú', 'Ű', 'Ü', 'á', 'é', 'í', 'ó', 'ő', 'ö', 'ú', 'ű', 'ü');
	var replace = new Array('%20', '%C1', '%C9', '%CD', '%D3', '%D4', '%D6', '%DA', '%DB', '%DC', '%E1', '%E9', '%ED', '%F3', '%F4', '%F6', '%FA', '%FB', '%FC');
	var i=0;
	for(i=0;i<search.length;i++) {
		while(uri.indexOf(search[i])>0) {
			uri = uri.replace(search[i], replace[i]);
		}
	}
	return(uri);
}*/

/**
 * Megrendelés gomb
 * Ha az "Igen, elolvastam és elfogadom az Általános Szerződési Feltételeket." checkbox nincs bejelölve, akkor nem tud megrendelni semmit
*/
function TermsOfUse() {
	if(document.Order.termsofuse.checked) {
		document.Order.submit.disabled = false;
	} else {
		document.Order.submit.disabled = true;
	}
}

function orderResponseStateChanged() {
	formErrors("show");
	document.getElementById("mcImg").innerHTML = "<img src=\"style/images/elements/clock.png\" alt=\"\" />";
	document.getElementById("mcLink").innerHTML = "";
	document.getElementById("mcTitle").innerHTML = "Kérjük várjon!";
	document.getElementById("mcMessage").innerHTML = "A megrendelőlap generálás folyamatban van...";
	document.getElementById("mcTips").innerHTML = "";
	document.getElementById("mcButton").innerHTML = "";
	if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
		xmlDoc = xmlHttp.responseXML;
		var state = xmlDoc.getElementsByTagName("state")[0].childNodes[0].nodeValue;
		if(state == "done") {
			//document.Order.submit.disabled = true;
			//document.Order.termsofuse.disabled = true;
			var ContactPerson = document.Order.ContactPerson.value; // kapcsolattartó személy
			document.getElementById("mcImg").innerHTML = "<img src=\"style/images/elements/accept.png\" alt=\"\" />";
			document.getElementById("mcLink").innerHTML = "<a href=\"javascript:void(0);\" onclick=\"formErrors('hide');\">Bezárás</a>";
			document.getElementById("mcTitle").innerHTML = "<span class=\"good\">Köszönjük érdeklődését cégünk és termékeink iránt!</span>";
			document.getElementById("mcMessage").innerHTML = "Kedves <b>" + ContactPerson + "</b>! Úgy néz ki, Ön sikeresen kitöltötte a megrendelőlapot. A megrendelőlapot és a további teendőket elküdtük az Ön email címére.";
			document.getElementById("mcTips").innerHTML = "<span class=\"important\"><b>FONTOS!</b> A megrendelőlap aláírás és bélyegző nélkül nem érvényes! Kérjük, nyomtassa ki, írja alá, bélyegezze le, és küldje vissza postai címünkre, elektronikus úton fax számunkra, vagy email címünkre. Az aláírt és bélyegzővel ellátott megrendelőlap beérkezése után mihamarabb kiállítjuk Önnek a számlát.</span>";
			document.getElementById("mcButton").innerHTML = "";
		}
	}
}

/**
 * Megrendelés
 * Az adatok formai ellenőrzése
*/
function startOrder() {
	/* Változók deklarálása */
	// Cégadatok
	var CompanyName = document.Order.CompanyName.value; // cégnév
	var TaxNumber = document.Order.TaxNumber.value; // adószám
	var BillingAddress = document.Order.BillingAddress.value; // számlázási cím
	var DeliveryAddress = document.Order.DeliveryAddress.value; // szállítási cím
	var ContactPerson = document.Order.ContactPerson.value; // kapcsolattartó személy
	var ContactMobile = document.Order.ContactMobile.value; // telefonszám
	var ContactEmail = document.Order.ContactEmail.value; // email
	// Termékek
	var helixProducts = "";
	for (i=0;i<document.Order.helixProducts.length;i++){
		if (document.Order.helixProducts[i].checked == true) {
			helixProducts = document.Order.helixProducts[i].value;
			break;
		}
	}
	// Funkciók
	var functionswitch = document.getElementsByName("functionswitch")[0].checked;
	var f = document.Order.elements["optionalfeatures"]; // A megvásárolható funkciók száma
	var functions = "";
	for(var i=0;i<f.length;i++) { // Végiglépketünk a tömbön
		if (document.getElementsByName("optionalfeatures")[i].checked) {
			functions += document.getElementsByName("optionalfeatures")[i].value + "|";
		}
	}
	// Modulok
	var mPDA = document.Order.mPDA.checked; // PDA modul
	var cPDA = document.Order.cPDA.value; // PDA modul licensz
	var mEInvoiceBasic = document.Order.mEInvoiceBasic.checked; // E-számla Basic csomag
	var mHomemadeCheckout = document.Order.mHomemadeCheckout.checked; // Házipénztár
	var mGroupEmailing = document.Order.mGroupEmailing.checked; // Csoportos email küldés
	var mSMTP = document.Order.mSMTP.checked; // SMTP szerver éves díja email küldéshez
	// Több cég és felhasználó kezelés
	var mConcurrentUsers = document.Order.mConcurrentUsers.checked; // Konkurens felhasználó
	var cConcurrentUsers = document.Order.cConcurrentUsers.value; // Konkurens felhasználók száma
	var mSeveralCompanies = document.Order.mSeveralCompanies.checked; // Több cég kezelés
	// Helpdesk csomagok
	var mHelpdesk = "";
	for (i=0;i<document.Order.mHelpdesk.length;i++){
		if (document.Order.mHelpdesk[i].checked == true) {
			mHelpdesk = document.Order.mHelpdesk[i].value;
			break;
		}
	}
	/* Validálás */
	// ha hiányoznak a cégadatok és a termékek, modulok, egyéb közül legalább egy nincs bejelölve
	document.getElementById("mcImg").innerHTML = "<img src=\"style/images/elements/remove.png\" alt=\"\" />";
	if (
		(CompanyName == "" || TaxNumber == "" || BillingAddress == "" || DeliveryAddress == "" || ContactPerson == "" || ContactMobile == "" || ContactEmail == "") // legyenek kitöltve a kötelező adatok
		|| (
		helixProducts == "" // vagy egy termék
		&&
		functionswitch == false // vagy a funkciókapcsoló
		&&
		(mPDA == false && mEInvoiceBasic == false && mHomemadeCheckout == false && mGroupEmailing == false && mSMTP == false) // vagy egy modul
		&&
		mHelpdesk  == "" // vagy Helpdesk csomag
		)
	) {
		formErrors("show");
		document.getElementById("mcLink").innerHTML = "<a href=\"javascript:void(0);\" OnClick=\"formErrors('hide');\">Bezárás</a>";
		document.getElementById("mcTitle").innerHTML = "<span class=\"important\">Hopsz! Elnézést kérünk, valószínűleg hiba történt!</span>";
		document.getElementById("mcMessage").innerHTML = "Úgy néz ki, nem töltött ki minden kötelező mezőt. Kérjük, ellenőrizze!";
		document.getElementById("mcTips").innerHTML = "A kötelező mezők kitöltése szükséges a megrendelőlap sikeres elküldéséhez.";
		document.getElementById("mcButton").innerHTML = "";
	} else if (validateEmail("Order", "ContactEmail") == false) { // ha az emailcím rossz
		formErrors("show");
		document.getElementById("mcLink").innerHTML = "<a href=\"javascript:void(0);\" OnClick=\"formErrors('hide');\">Bezárás</a>";
		document.getElementById("mcTitle").innerHTML = "<span class=\"important\">Hopsz! Elnézést kérünk, valószínűleg hiba történt!</span>";
		document.getElementById("mcMessage").innerHTML = "Úgy néz ki, nem valós email címet adott meg, vagy hibásan gépelte be azt. Kérjük, ellenőrizze!";
		document.getElementById("mcTips").innerHTML = "Ha nem ad meg valós email címet, akkor a megrendelőlapot nem tudjuk elküldeni Önnek, valamint nem tudjuk Önnel felvenni a kapcsolatot.";
		document.getElementById("mcButton").innerHTML = "";
	} else if (functionswitch == true && functions == ""){
		formErrors("show");
		document.getElementById("mcLink").innerHTML = "<a href=\"javascript:void(0);\" OnClick=\"formErrors('hide');\">Bezárás</a>";
		document.getElementById("mcTitle").innerHTML = "<span class=\"important\">Hopsz! Elnézést kérünk, valószínűleg hiba történt!</span>";
		document.getElementById("mcMessage").innerHTML = "Úgy néz ki, hogy Ön kiválasztotta a funkciókapcsolót, de azon kívül nem választott ki más funkciót!";
		document.getElementById("mcTips").innerHTML = "Ha szeretne kiegészítő funkciókat, a funkció kapcsolón kívül válassza ki a kívánt funkciókat is.";
		document.getElementById("mcButton").innerHTML = "";
	} else if ((mPDA == true && (cPDA == "" || cPDA == 0)) || (mConcurrentUsers == true && (cConcurrentUsers == "" || cConcurrentUsers == 0))) { // ha a termékadatokban van hiba
		formErrors("show");
		document.getElementById("mcLink").innerHTML = "<a href=\"javascript:void(0);\" OnClick=\"formErrors('hide');\">Bezárás</a>";
		document.getElementById("mcTitle").innerHTML = "<span class=\"important\">Hopsz! Elnézést kérünk, valószínűleg hiba történt!</span>";
		document.getElementById("mcMessage").innerHTML = "Úgy néz ki, hogy Ön kiválasztott egy terméket, de nem írt be hozzá darabszámot, vagy kiválasztott egy modult, de nem írt be hozzá licensz számot. Kérjük, ellenőrizze!";
		document.getElementById("mcTips").innerHTML = "Ha megrendel egy terméket vagy modult, akkor meg kell adnia, hogy hány darab vagy licensz szükséges Önnek.";
		document.getElementById("mcButton").innerHTML = "";
	} else if(mConcurrentUsers == true && mSeveralCompanies == true && (helixProducts == "")) { // csak termékkel együtt lehet
		formErrors("show");
		document.getElementById("mcLink").innerHTML = "<a href=\"javascript:void(0);\" OnClick=\"formErrors('hide');\">Bezárás</a>";
		document.getElementById("mcTitle").innerHTML = "<span class=\"important\">Hopsz! Elnézést kérünk, valószínűleg hiba történt!</span>";
		document.getElementById("mcMessage").innerHTML = "Több cég és felhasználó kezelés csak termékkel együtt rendelhető.";
		document.getElementById("mcTips").innerHTML = "";
		document.getElementById("mcButton").innerHTML = "";
	} else { // ha minden ok
		xmlHttp = GetXmlHttpObject();
		if (xmlHttp == null) {
			alert("Browser does not support HTTP Request");
			return;
		}
		/*
		URL összeállítása
		Teszt URL: http://www.helix-software.com/order/?mode=order&CompanyName=CompanyName&TaxNumber=TaxNumber&BillingAddress=BillingAddress&DeliveryAddress=DeliveryAddress&ContactPerson=ContactPerson&ContactMobile=ContactMobile&ContactEmail=ContactEmail&hInvoice=hInvoice&cInvoice=cInvoice&hInventory=hInventory&cInventory=cInventory&hBusiness=hBusiness&cBusiness=cBusiness&hProduction=hProduction&cProduction=cProduction&hCRM=hCRM&cCRM=cCRM&hShare=hShare&cShare=cShare&hVehicle=hVehicle&cVehicle=cVehicle&f1=f1&f2=f2&f3=f3&f4=f4&f5=f5&f6=f6&f7=f7&f8=f8&f9=f9&f10=f10&f11=f11&f12=f12&f13=f13&f14=f14&f15=f15&f16=f16&f17=f17&f18=f18&f19=f19&f20=f20&f21=f21&f22=f22&f23=f23&f24=f24&f25=f25&f26=f26&f27=f27&f28=f28&mPDA=mPDA&cPDA=cPDA&mEInvoiceBasic=mEInvoiceBasic&mEInvoiceExpert=mEInvoiceExpert&mHomemadeCheckout=mHomemadeCheckout&mGroupEmailing=mGroupEmailing&mSMTP=mSMTP&mConcurrentUsers=mConcurrentUsers&cConcurrentUsers=cConcurrentUsers&mSeveralCompanies=mSeveralCompanies&mHelpdesk=mHelpdesk
		*/
		// URL
		var url = "http://www.helix-software.com/order/?mode=order";
		// Cégadatok
		var uri = "&CompanyName=" + CompanyName;
		uri += "&TaxNumber=" + TaxNumber;
		uri += "&BillingAddress=" + BillingAddress;
		uri += "&DeliveryAddress=" + DeliveryAddress;
		uri += "&ContactPerson=" + ContactPerson;
		uri += "&ContactMobile=" + ContactMobile;
		uri += "&ContactEmail=" + ContactEmail;
		// Termékek
		uri += "&helixProducts=" + helixProducts;
		// Funkciók
		if (functionswitch == true) {
			uri += "&functions=" + document.getElementsByName("functionswitch")[0].value + "|" + functions;
		} else {
			uri += "&functions=";
		}
		// Modulok
		uri += "&mPDA=" + mPDA;
		uri += "&cPDA=" + cPDA;
		uri += "&mEInvoiceBasic=" + mEInvoiceBasic;
		uri += "&mHomemadeCheckout=" + mHomemadeCheckout;
		uri += "&mGroupEmailing=" + mGroupEmailing;
		uri += "&mSMTP=" + mSMTP;
		// Több cég és felhasználó kezelés
		uri += "&mConcurrentUsers=" + mConcurrentUsers;
		uri += "&cConcurrentUsers=" + cConcurrentUsers;
		uri += "&mSeveralCompanies=" + mSeveralCompanies;
		// Helpdesk csomagok
		uri += "&mHelpdesk=" + mHelpdesk;
		url += uri;
		xmlHttp.onreadystatechange = orderResponseStateChanged;
		xmlHttp.open("POST", url, true);
		xmlHttp.send(null);
	}
}

/**
 * FUNKCIÓ KAPCSOLÓ
 * Megnézi, hogy ki lett-e választva a "funkció kapcsoló" a Megvásárolható funkciókban?
 */
function _checkFunctionSwitch() {
	var f = document.Order.elements["optionalfeatures"]; // A megvásárolható funkciók száma
	for(var i=0;i<f.length;i++) { // Végiglépketünk a tömbön
		if (document.getElementsByName("optionalfeatures")[i].disabled) { // Ha le van tiltva az adott funkció, akkor engedélyezzük
			document.getElementsByName("optionalfeatures")[i].disabled = false;
		} else { // Ha nincs letiltva
			document.getElementsByName("optionalfeatures")[i].checked = false; // Jelöletlénné állítjuk
			document.getElementsByName("optionalfeatures")[i].disabled = true; // Letiltjuk
		}
	}
}
