﻿var serverPath = "http://www.bmpslovakia.sk/adoszam-ellenorzes/";
onCountryListChange = function(countryList) {
	var countryCode = document.getElementById("CountryCode");
	if (countryCode !== null) {
		if (countryList.value != "--") {
			countryCode.value = countryList.value;
		} else {
			countryCode.value = "";
		}
	}
	return true;
};

checkForm = function() {
	var regex = /^[0-9A-z*+]+$/m;
	var countryListField = document.getElementById("CountryList");
	var vatNumberField = document.getElementById("VatNumber");
	var error = false;
	
	if (countryListField !== null && vatNumberField !== null) {
		var vatNumber = vatNumberField.value;
		var country = countryListField.value;
		
		if (country == "" || country == "--") {
			// empty coutry code
			$("#CountryList").addClass("inputError");
			$("#CountryListErrorMarker").show();
			error = true;
		} else {
			$("#CountryList").removeClass("inputError");
			$("#CountryListErrorMarker").hide();
		}
		
		var pass = regex.test(vatNumber);
		if (vatNumber == "" || 
			(pass != true)) {
			// empty vat number
			$("#VatNumber").addClass("inputError");
			$("#VatNumberErrorMarker").show();
			error = true;
		} else {
			$("#VatNumber").removeClass("inputError");
			$("#VatNumberErrorMarker").hide();
		}
		
		if (error) {
			return false;
		}
	}
	
	return true;
};

setLabelText = function(label, text) {
	$('#' + label + 'Label').text(text);
};

setParamLabel = function(xml, paramName) {
	var requestParam = $(xml).find(paramName);
	if (requestParam[0]) {
		setLabelText(paramName, requestParam.text());
	}
};

successCallback = function(xml) {
	var xmlDoc = null;
	if(window.DOMParser)
	{
	  parser=new DOMParser();
	  xmlDoc=parser.parseFromString(xml,"text/xml");
	}
	else // Internet Explorer
	{
	  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	  xmlDoc.async = "false";
	  xmlDoc.loadXML(xml);
	}
	
	var errorMessage = $(xmlDoc).find("Error");
	if (errorMessage[0]) {
		$("#ResultPanel").hide();
		$("#DialogMessage").dialog({
			modal: true,
			buttons: {
				Ok: function() {
					$(this).dialog('close');
				}
			}
		});
		$("#ErrorMessage").text(errorMessage.text());
	} else {
		setParamLabel(xmlDoc, 'CountryCode');
		setParamLabel(xmlDoc, 'VATNumber');
		
		var validIcon = document.getElementById("ValidIcon");
		var validParam = $(xmlDoc).find('Valid').text();
		var valid = (validParam.toLowerCase() == "true");
		
		if (valid) {
			setLabelText('Valid', 'Érvényes');
			validIcon.src = serverPath + "img/valid.png"
			
			setParamLabel(xmlDoc, 'Address');
			setParamLabel(xmlDoc, 'Name');
			$("#data").show();
		} else {
			setLabelText('Valid', 'Érvénytelen');
			validIcon.src = serverPath + "img/invalid.png";
			$("#data").hide();
		}
		$("#ResultPanel").show('clip', {}, 500);
	}
};

errorCallback = function(xhr, textStatus, errorThrown) {
	$("#DialogMessage").dialog({
		modal: true,
		buttons: {
			Ok: function() {
				$(this).dialog('close');
			}
		}
	});
	$("#ErrorMessage").text("Lekérdezés közben hiba történt.");
};

request = function() {
	if (checkForm()) {
		var countryListField = document.getElementById("CountryList");
		var vatNumberField = document.getElementById("VatNumber");
		
		$.ajax({
			data: ({
				CountryCode: countryListField.value,
				VatNumber: vatNumberField.value
			})
		});
	}
};