var MyAjax = new Object();
var responseStatus;
var responseText;
var stationId;

MyAjax.Request = function(url, callbackMethod)
{
	try
	{
		MyAjax.request = MyAjax.createRequestObject();
		MyAjax.request.onreadystatechange = callbackMethod;
		MyAjax.request.open("POST", url, true);
		MyAjax.request.send(url);
	}
	catch (e)
	{
		alert("Error");
	}
}

MyAjax.CreateRequestObject = function()
{
	try
	{
		var obj;
		
		if (window.XMLHttpRequest)
		{
			obj = new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			obj = new ActiveXObject("MSXML2.XMLHTTP");
		}
		
		return obj;
	}
	catch (e)
	{
		alert("Error");
	}
}

MyAjax.CheckReadyState = function(obj)
{
	try
	{
		if (obj.readyState == 4) 
		{
			if (obj.status == 200)
		    {
		    	MyAjax.ParseResponse();
		        return true; 
			}
		}
	}
	catch (e)
	{
		alert("Error");
	}
}

MyAjax.ParseResponse = function()
{
	try
	{
		responseStatus=MyAjax.request.responseText.substr(59,1);
		responseText  =MyAjax.request.responseText.substr(87);
		responseText  =responseText.substr(0,responseText.length-24);
	}
	catch (e)
	{
		alert("Error");
	}
}






MyAjax.GetWeather = function(city)
{
	try
	{
		var url = "/ajax/weather/?city="+city;
		
		MyAjax.request = MyAjax.CreateRequestObject();
		MyAjax.request.onreadystatechange = MyAjax.OnGetWeather;
		MyAjax.request.open("POST", url, true);
		MyAjax.request.send(url);
	}
	catch (e)
	{
		ExceptionHandler(e);
	}
}

MyAjax.OnGetWeather = function()
{
	try
	{
		if (MyAjax.CheckReadyState(MyAjax.request)) 
		{
			var response = MyAjax.request.responseText;
			
			if (response)
			{
				if (responseStatus == 0)
				{
					document.getElementById("loadingImage").style.display="none";
				}
				else if (responseStatus == 1)
				{
					document.getElementById("loadingImage").style.display="none";
					document.getElementById("weather").innerHTML=responseText;
				}
			}
		}
	}
	catch (e)
	{
		ExceptionHandler(e);
	}
}

MyAjax.GetCities = function(stateId,cityId,citiesElement,hasAll)
{
	try
	{
		var url = "/ajax/cities/?action=getCities&actionId="+stateId+"&cityId="+cityId+"&hasAll="+hasAll;
		
		MyAjax.citiesElement              = citiesElement;
		MyAjax.type                       = "getCities";
		MyAjax.request                    = MyAjax.CreateRequestObject();
		MyAjax.request.onreadystatechange = MyAjax.OnGet;
		MyAjax.request.open("POST", url, true);
		MyAjax.request.send(url);
	}
	catch (e)
	{
		ExceptionHandler(e);
	}
}

MyAjax.OnGet = function()
{
	try
	{
		if (MyAjax.CheckReadyState(MyAjax.request)) 
		{
			var response = MyAjax.request.responseText;
			
			if (response)
			{
				if (responseStatus == 1)
				{
					if (MyAjax.type == "getCities")
					{
						MyAjax.citiesElement.innerHTML=responseText;
						
						var s = responseText.split('<option value="');
						var length = s.length;
						
						for (i=1;i<length;i++)
						{
							index = s[i].indexOf('"');
							value = s[i].substring(0,index);
							index = s[i].indexOf('>');
							text  = s[i].substring(index+1,s[i].indexOf('</option>'));
							
							var option = document.createElement('option');
							
    						option.text  = text;
    						option.value = value;
    						
    						MyAjax.citiesElement.add(option);
						}
					}
				}
			}
		}
	}
	catch (e)
	{
		ExceptionHandler(e);
	}
}

MyAjax.AddPoint = function(type,typeId,point)
{
	try
	{
		var url = "/ajax/"+type+"s/?action=addPoint&actionId="+typeId+"&point="+point;
		
		MyAjax.request = MyAjax.CreateRequestObject();
		MyAjax.request.onreadystatechange = MyAjax.OnSet;
		MyAjax.request.open("POST", url, true);
		MyAjax.request.send(url);
	}
	catch (e)
	{
		ExceptionHandler(e);
	}
}

MyAjax.OnSet = function()
{
	try
	{
		if (MyAjax.CheckReadyState(MyAjax.request)) 
		{
			var response = MyAjax.request.responseText;
			
			if (response)
			{
				if (responseStatus == 1)
				{
				}
			}
		}
	}
	catch (e)
	{
		ExceptionHandler(e);
	}
}
