var url;
var http;

function getHTTPObject(){
	
	if (window.XMLHttpRequest)  // Mozilla, Safari, ...
	{ 
		xmlHttp = new XMLHttpRequest();
		if(xmlHttp.overrideMimeType){                
            xmlHttp.overrideMimeType('text/xml');
        }
	} 
	else if (window.ActiveXObject)  // IE
	{ 
		//Creating object of XMLHTTP in IE
		try{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try{
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch(oc){
				xmlHttp = null;
				alert("Cannot create XMLHTTPObject.")
			}
		}
	}
	return xmlHttp;
}

var DDLIndex = 0;
var ddlIDToFill;
var ddlIDTop;
var MAXIMUM_WAITING_TIME = 1000; //1 sec

http = getHTTPObject(); 
function ProcessDDL(op, ddlIDT, ddlIDToF)
{	
	ddlIDToFill = ddlIDToF;
	ddlIDTop = ddlIDT;
	DDLIndex = op;
	
	var mySelect = document.getElementById(ddlIDT);
	var selectValue = mySelect.options[mySelect.selectedIndex].value;
		
	if (selectValue > 0) 
	{
		url = "/DesktopModules/MTCB/MTCBImobiliariaSearch/AjaxServer.aspx?Op=" + op + "&Id=" + escape(selectValue);
		if(http)
		{
				http.onreadystatechange = UpdateDDL;
				http.open("GET", url, true);
				
				var requestTimer = setTimeout(
					function() 
					{
						http.abort();
					}
				, MAXIMUM_WAITING_TIME);
				
				http.send(null);
		}  
    }
    else
    {
		var DDLList = new Array();
	
		DDLList[1] = document.getElementById("SubDistrictDD");
		DDLList[2] = document.getElementById("LocalityDropDown");
		DDLList[3] = document.getElementById("ZoneDropDown");
		
		clearAllAfterID(op, DDLList);
	}
	setStatusValue(op, ddlIDTop); 		
}


function UpdateDDL(){
	
	var DDLList = new Array();
	
	DDLList[1] = document.getElementById("SubDistrictDD")
	DDLList[2] = document.getElementById("LocalityDropDown")
	DDLList[3] = document.getElementById("ZoneDropDown")

	var ddlToFill = document.getElementById(ddlIDToFill);
	var ddlTop = document.getElementById(ddlIDTop);
	
	clearTimeout(0); 
	
	if(http.readyState == 4)
	{
		if(http.status == 200)
		{		
			var response = http.responseText;
	
			if(response != null && response.length > 0){
				clearAllAfterID(DDLIndex, DDLList);
				fillDDL(ddlTop, ddlToFill, response);
				ddlToFill.disabled = false;
			}
			return;
		}
		else
		{
			alert("There was a problem retrieving data from the server." );
		}
	}
}

function setStatusValue(op , DDLId)
{
	var statusObj = document.getElementById("dropStatus");
	var statusAuxStr= statusObj.value;
	var DDL = document.getElementById(DDLId);
	var arrStr = statusAuxStr.split('|');
	
	arrStr[op - 2] = DDL.options[DDL.selectedIndex].value;
	statusObj.value = arrStr[0] + "|" + arrStr[1] + "|" + arrStr[2]
}

function clearAllAfterID(DDLListIndex, DDLList)
{
	for(var i = DDLListIndex ; i < DDLList.length ;i++ )
	{
		for(var count = DDLList[i].options.length; count >= 0; count--)
		{
			DDLList[i].options[count] = null;
		}
		DDLList[i].disabled = true;
	}
}

function fillDDL(ddlTop, ddlToFill, str)
{
	if(str.length != 0)
	{
		var rows = str.split('|'); 
		for (var i = 0; i < rows.length; ++i)
		{
			var values = rows[i].split('^');
			if(values[2] == ddlTop.options[ddlTop.selectedIndex].value || values[2] == 0)
			{
				var option = document.createElement('OPTION');
				option.value = values[0];
				option.innerHTML = values[1];     
				ddlToFill.appendChild(option);
			}
		}
	}
}
