//function loadMobilePhoto(id, modelName, brandName)
//{
//	// Set image source
//	if (id==0 || modelName=='' || brandName=='') {
//		$('modelPicture').src = "/img/shared/phone_nopict.jpg";
//	}
//	else {
//		$('modelPicture').src = "/picture+small+" + brandName + "+" + modelName + "+" + id + ".jpg";
//		$('modelPicture').alt = brandName + " " + modelName;
//	}
//}

function noAjax()
{
	alert(GetLanguage("NO_AJAX"));
}

function getXhr()
{
	if (window.XMLHttpRequest)
	{
		xhr = new XMLHttpRequest();
	
		// Avoid a Safari Bug
		if (xhr.overrideMimeType)
		{
			xhr.overrideMimeType("text/xml");
		}
	}
	else
	{
		if (window.ActiveXObject)
		{
			try
			{
				// Try to load object on Internet Explorer
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					// Try to load object for another version of Internet Explorer
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e)
				{
					// The browser does not support XMLHttpRequest
					noAjax();
					xhr = false;
				}
			}
		}
		else
		{
			// The browser does not support XMLHttpRequest
			noAjax();
			xhr = false;
		}
	}
	
	return xhr;
}

function getObject(Id)
{
	if (document.getElementById)
	{
		return document.getElementById(Id);
	}
	if (document.layers)
	{
		return document.layers[Id];
	}
	if (document.all)
	{
		return document.all[Id];
	}
	return null;
}

var xhr = null;

var needNetwork  = false;
var needBrand    = true;
var needModel    = true;
var needProvider = false;
var needPIN      = false;
var needType     = false;
var allowOther   = false;
var SMS          = false;

function ajaxSetTool(ToolID)
{
	getObject("trModel").style.display = "none";
	/*
	getObject("trBrand").style.display = "none";
	getObject("trModelOther").style.display = "none";
	getObject("trCountry").style.display = "none";
	getObject("trNetwork").style.display = "none";
	getObject("trProvider").style.display = "none";
	getObject("trPIN").style.display = "none";
	getObject("trType").style.display = "none";
	getObject("trSMS").style.display = "none";
	getObject("divMessage").style.display = "none";
	getObject("delayDiv").style.visibility = "hidden";
	*/
	if (ToolID != "")
	{
		// Show Loading
		getObject("trLoading").style.visibility = "visible";
		
		if (xhr)
		{
			if (xhr.readyState != 0)
			{
				xhr.onreadystatechange = function() {};
				xhr.abort();
			}
		}
		else
		{
			xhr = getXhr();
		}
		
		xhr.open("GET", "/xml/tool.xml.php?ID=" + ToolID, true);
		xhr.onreadystatechange = function()
		{
			if (xhr.readyState == 4 && xhr.responseXML)
			{
				// Needs
				needNetwork  = (xhr.responseXML.getElementsByTagName("needNetwork" )[0].firstChild.data == "true");
				needBrand    = (xhr.responseXML.getElementsByTagName("needBrand"   )[0].firstChild.data == "true");
				needModel    = (xhr.responseXML.getElementsByTagName("needModel"   )[0].firstChild.data == "true");
				needProvider = (xhr.responseXML.getElementsByTagName("needProvider")[0].firstChild.data == "true");
				needPIN      = (xhr.responseXML.getElementsByTagName("needPIN"     )[0].firstChild.data == "true");
				needType     = (xhr.responseXML.getElementsByTagName("needType"    )[0].firstChild.data == "true");
				allowOther   = (xhr.responseXML.getElementsByTagName("allowOther"  )[0].firstChild.data == "true");
				SMS          = (xhr.responseXML.getElementsByTagName("SMS"         )[0].firstChild.data == "true");
				
				var message = xhr.responseXML.getElementsByTagName("message")[0];
				
				// Network
				if (needNetwork)
				{
					var countries = xhr.responseXML.getElementsByTagName("country");
					
					if (countries)
					{
						for (var i=document.forms["order"].CountryID.options.length - 1; i>=0; i--)
						{
							document.forms["order"].CountryID.options[i] = null;
						}
						
						document.forms["order"].CountryID.options[0] = new Option("---", "");
						
						for (var i=0; i<countries.length; i++)
						{
							document.forms["order"].CountryID.options[i+1] = new Option(countries[i].firstChild.data, countries[i].attributes[0].nodeValue);
						}
						
						getObject("trCountry").style.display = "";
					}
				}

				// Brands
				if (needBrand)
				{
					var brands = xhr.responseXML.getElementsByTagName("brand");
					
					if (brands)
					{
						for (var i=document.forms["order"].BrandID.options.length - 1; i>=0; i--)
						{
							document.forms["order"].BrandID.options[i] = null;
						}
						
						document.forms["order"].BrandID.options[0] = new Option("---", "");
						
						for (var i=0; i<brands.length; i++)
						{
							document.forms["order"].BrandID.options[i+1] = new Option(brands[i].firstChild.data, brands[i].attributes[0].nodeValue);
						}
						
						getObject("trBrand").style.display = "";
					}
				}
				
				// Models
				if (!needBrand && needModel)
				{
					var models = xhr.responseXML.getElementsByTagName("model");
					
					if (models)
					{
						for (var i=$('ModelID').options.length - 1; i>=0; i--)
						{
							$('ModelID').options[i] = null;
						}
						
						$('ModelID').options[0] = new Option("---", "");
						
						for (var i=0; i<models.length; i++)
						{
							$('ModelID').options[i+1] = new Option(models[i].firstChild.data, models[i].attributes[0].nodeValue);
						}
						
						getObject("trModel").style.display = "";
					}
				}
				
				if (needProvider)
				{
					getObject("trProvider").style.display = "";
				}
				
				if (needPIN)
				{
					getObject("trPIN").style.display = "";
				}
				
				if (needType)
				{
					getObject("trType").style.display = "";
				}
				
				/* Delivery time */
				
				var deliveryUnit = xhr.responseXML.getElementsByTagName("deliveryUnit")[0].firstChild.data;
				var deliveryMin = parseInt(xhr.responseXML.getElementsByTagName("deliveryMin")[0].firstChild.data);
				var deliveryMax = parseInt(xhr.responseXML.getElementsByTagName("deliveryMax")[0].firstChild.data);
				
				var delayDiv = getObject("delayDiv");
				var delayTxt = null;
				
				while (delayDiv.hasChildNodes()) delayDiv.removeChild(delayDiv.firstChild);
				
				if (deliveryUnit == "Instant")
				{
					delayTxt = GetLanguage("DELIVERY_TIME") + " : " + GetLanguage(deliveryUnit);
				}
				else if (deliveryMax == deliveryMin)
				{
					if (deliveryMax != 0)
					{
						delayTxt = GetLanguage("DELIVERY_TIME") + " : " + deliveryMax.toString() + " " + GetLanguage(deliveryUnit + (deliveryMax > 1 ? "s" : ""));
					}
				}
				else if (deliveryMax > deliveryMin)
				{
					delayTxt = GetLanguage("DELIVERY_TIME") + " : " + deliveryMin.toString() + " " + GetLanguage("TO") + " " + deliveryMax.toString() + " " + GetLanguage(deliveryUnit + (deliveryMax > 1 ? "s" : ""));
				}
				
				if (delayTxt != null)
				{
					delayDiv.appendChild(document.createTextNode(delayTxt));
					delayDiv.style.visibility = "visible";
				}
				
				// Hide Loading
				getObject("trLoading").style.visibility = "hidden";
				
				// For the assistant pop up
				window.loaded = true;
			}
		}
		xhr.send(null);
	}
	
	//removeMobilePhoto();
}

function ajaxSetBrand(BrandID, ToolID)
{
	if (needModel)
	{
		getObject("trModel").style.display = "none";
		//getObject("trModelOther").style.display = "none";
		
		if (BrandID != "")
		{
			// Show Loading
			getObject("trLoading").style.visibility = "visible";
			
			if (xhr)
			{
				if (xhr.readyState != 0)
				{
					xhr.onreadystatechange = function() {};
					xhr.abort();
				}
			}
			else
			{
				xhr = getXhr();
			}
			
			xhr.open("GET", "/xml/brandModels." + BrandID + ".xml", true);
			xhr.onreadystatechange = function()
			{
				if (xhr.readyState == 4 && xhr.responseXML)
				{
					var models = xhr.responseXML.getElementsByTagName("model");
					
					if (models)
					{	
						for (var i=$('ModelID').options.length - 1; i>=0; i--)
						{
							$('ModelID').options[i] = null;
						}
						
						$('ModelID').options[0] = new Option("---", "");
						if(models.length>0) {
							for (var i=0; i<models.length; i++)
							{
								$('ModelID').options[i+1] = new Option(models[i].firstChild.data, models[i].attributes[0].nodeValue);
							}
						}
						else {
							$('ModelID').options[0] = null;
							$('ModelID').options[0] = new Option("No model found", "");
						}
						
						if (allowOther)
						{
							$('ModelID').options[i+1] = new Option(GetLanguage("OTHER"), "0");
							setCssProp($('ModelID').options[i+1], "background-color", "#FFCC66");
						}
						
						getObject("trModel").style.display = "";
						loadMobilePhoto(0,'','','small');
					}
	
					// Hide Loading
					getObject("trLoading").style.visibility = "hidden";
					
					window.loaded = true;
				}
			}
			xhr.send(null);
		}
	}
	
	//removeMobilePhoto();
}

function ajaxSetModel(ModelID, modelName, brandName)
{
	/*getObject("trModelOther").style.display = ((ModelID == "0") ? "" : "none");*/
	loadMobilePhoto(ModelID, modelName, brandName, 'small');
}

function ajaxSetCountry(CountryID)
{
	getObject("trNetwork").style.display = "none";
	
	if (CountryID != "")
	{
		// Show Loading
		getObject("trLoading").style.visibility = "visible";
		
		if (xhr)
		{
			if (xhr.readyState != 0)
			{
				xhr.onreadystatechange = function() {};
				xhr.abort();
			}
		}
		else
		{
			xhr = getXhr();
		}
		
		xhr.open("GET", "/xml/providers.xml.php?id=" + CountryID , true);
		xhr.onreadystatechange = function()
		{
			if (xhr.readyState == 4 && xhr.responseXML)
			{
				var networks = xhr.responseXML.getElementsByTagName("network");
				
				if (networks)
				{	
					for (var i=$('providerId').options.length - 1; i>=0; i--)
					{
						$('providerId').options[i] = null;
					}
					
					$('providerId').options[0] = new Option("---", "");
					
					for (var i=0; i<networks.length; i++)
					{
						$('providerId').options[i+1] = new Option(networks[i].firstChild.data, networks[i].attributes[0].nodeValue);
					}
						
					getObject("trNetwork").style.display = "";
				}

				// Hide Loading
				getObject("trLoading").style.visibility = "hidden";
				
				window.loaded = true;
			}
		}
		xhr.send(null);
	}
}

function ajaxSubmitFormImeiSingle()
{
	with(document.forms["order"])
	{
		if (! jsCheckIMEI(IMEI.value))
		{
			alert(GetLanguage("INVALID_IMEI"));
			return false;
		}
		if (ToolID.selectedIndex <= 0)
		{
			alert(GetLanguage("SELECT_TOOL"));
			return false;
		}
		if (needBrand)
		{
			if (BrandID.selectedIndex <= 0)
			{
				alert(GetLanguage("SELECT_BRAND"));
				return false;
			}
		}
		if (needModel)
		{
			if (ModelID.selectedIndex <= 0)
			{
				alert(GetLanguage("SELECT_MODEL"));
				return false;
			}
			if (ModelID.value == 0)
			{
				if (jsTrim(ModelOther.value) == "")
				{
					alert(GetLanguage("ENTER_MODEL"));
					return false;
				}
			}
		}
		if (needNetwork)
		{
			if (CountryID.selectedIndex <= 0)
			{
				alert(GetLanguage("SELECT_COUNTRY"));
				return false;
			}
			if (NetworkID.selectedIndex <= 0)
			{
				alert(GetLanguage("SELECT_NETWORK"));
				return false;
			}
		}
		if (needProvider)
		{
			if (jsTrim(ProviderID.value) == "")
			{
				alert(GetLanguage("ENTER_PROVIDER_ID"));
				return false;
			}
			if (ProviderID.value.length != 13)
			{
				alert(GetLanguage("PROVIDER_ID_BAD_LENGTH"));
				return false;
			}
		}
		if (needPIN)
		{
			if (jsTrim(PIN.value) == "")
			{
				alert(GetLanguage("ENTER_PIN"));
				return false;
			}
		}
		if (needType)
		{
			if (jsTrim(PhoneType.value) == "" || jsTrim(PhoneType.value) == "RM-")
			{
				alert(GetLanguage("ENTER_TYPE"));
				return false;
			}
		}
		if (jsTrim(Email.value) != "")
		{
			if (! jsCheckEmail(jsTrim(Email.value)))
			{
				alert(GetLanguage("INVALID_EMAIL"));
				return false;
			}
		}
		if (SMS)
		{
			var r = new RegExp("^(\\+[0-9]{5,})?$", "");

			if (! r.test(jsTrim(GSM.value)))
			{
				alert(GetLanguage("INVALID_PHONE"));
				return false;
			}
		}
	}
	document.getElementById("singleSubmit").disabled = true;
	return true;
}

function ajaxChangeFieldState(field, enabled)
{
	getObject("TdIco" + field + "Off").style.display = (enabled ? "none" : "");
	getObject("TdTxt" + field + "Off").style.display = (enabled ? "none" : "");
	getObject("TdIco" + field + "On").style.display = (enabled ? "" : "none");
	getObject("TdTxt" + field + "On").style.display = (enabled ? "" : "none");
}

var needSerial = false;
var needLogin = false;

function ajaxSetFeaturesBrand(BrandID)
{
	getObject("Model").style.display = "none";

	if (BrandID != "")
	{
		getObject("Loading").style.display = "";
		
		if (xhr)
		{
			if (xhr.readyState != 0)
			{
				xhr.onreadystatechange = function() {};
				xhr.abort();
			}
		}
		else
		{
			xhr = getXhr();
		}
		
		xhr.open("GET", "/xml/models.xml.php?BrandID=" + BrandID, true);
		xhr.onreadystatechange = function()
		{
			if (xhr.readyState == 4 && xhr.responseXML)
			{
				var models = xhr.responseXML.getElementsByTagName("model");
				
				if (models)
				{
					var Model = getObject("Model");

					Model.options.length = 1;
					
					for (var i=0; i<models.length; i++)
					{
						Model.options[i+1] = new Option(models[i].firstChild.data, models[i].getAttribute("url"));
					}
					
					getObject("Model").style.display = "";
				}

				// Hide Loading
				getObject("Loading").style.display = "none";
			}
		}
		xhr.send(null);
	}
	else
	{
		getObject("Loading").style.display = "none";
	}
}

function ajaxAutoSelectTool(ToolID, BrandID, ModelID)
{
	if (window.loaded)
	{
		if (ToolID)
		{
			window.loaded = false;
			$('ToolID').value = ToolID;
			$('ToolID').onchange();
		}
	
		ajaxAutoSelectBrand(BrandID, ModelID);
	}
	else setTimeout(function() { ajaxAutoSelectTool(ToolID, BrandID, ModelID); }, 10);
}

function ajaxAutoSelectBrand(BrandID, ModelID)
{
	if (window.loaded)
	{
		if (BrandID)
		{
			window.loaded = false;
			$('BrandID').value = BrandID;
			$('BrandID').onchange();
		}

		ajaxAutoSelectModel(ModelID, '', '');
	}
	else setTimeout(function() { ajaxAutoSelectBrand(BrandID, ModelID); }, 10);
}

function ajaxAutoSelectModel(ModelID, modelName, brandName)
{
	if (window.loaded)
	{
		if (ModelID)
		{
			window.loaded = false;
			$('ModelID').value = ModelID;
			$('ModelID').onchange();
			ajaxSetModel(ModelID, modelName, brandName);
		}
	}
	else setTimeout(function() { ajaxAutoSelectModel(ModelID, modelName, brandName); }, 10);
}

function ajaxAutoSelectProvider(providerID)
{
	if (window.loaded)
	{
		if (providerID)
		{
			window.loaded = false;
			$('providerId').value = providerID;
			$('trCountry').style.display = '';
			$('trNetwork').style.display = '';
		}
	}
	else setTimeout(function() { ajaxAutoSelectProvider(providerID); }, 10);
}
