function ITDH_UZIR_AJAXChannel(){
	
	if(!window.ActiveXObject){
		var http = new XMLHttpRequest();
		http.overrideMimeType('text/xml');
		return http;
	}
	try{return new ActiveXObject("Msxml2.XMLHTTP.5.0");}catch(e){}
	try{return new ActiveXObject("Msxml2.XMLHTTP.4.0");}catch(e){}
	try{return new ActiveXObject("Msxml2.XMLHTTP");    }catch(e){}
	try{return new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){}	
}

function ITDH_AJAX_UpdateCityControls(targetTextboxName, divBaseName, cityName, cityID)
{	
    //telepulesnev tb...City-be
    document.getElementsByName(targetTextboxName)[0].value = cityName;
    //ID tb...CityID hidden mezobe
	document.getElementsByName(targetTextboxName + "ID")[0].value = cityID;
	//clear div
	document.getElementById(divBaseName + '_div').innerHTML = '';
}

function innerText(node) {

    if (node.nodeType == 3 || node.nodeType == 4) {
        return node.data;
    }
    var i;
    var returnValue = [];
    for (i = 0; i < node.childNodes.length; i++) {
        returnValue.push(innerText(node.childNodes[i]));
    }
    return returnValue.join('');
}

function ITDH_AJAX_ProcessResponse(){
	if (ajaxChannel.readyState == 4 && ajaxChannel.status == 200)
	{
	
		if (ajaxChannel.responseXML.documentElement == null){
		try {
			ajaxChannel.responseXML.loadXML(ajaxChannel.responseText);
			} catch (e) {}
		}	
	
		var objectName = '';
		var data = ajaxChannel.responseXML.getElementsByTagName("Data");		
		for (i=0;i<data.length;i++){			
			if (data[i].attributes.getNamedItem("name").value == 'objectName'){						
				objectName = data[i].attributes.getNamedItem("value").value;
			}			
		}				
		
		if(objectName == '')
		{
		    return;
		}
		
		var xmlRoot = ajaxChannel.responseXML.getElementsByTagName("option");
		var prefix = "AJAXZipCode_";
		var targetTextboxName = objectName.substring(prefix.length, objectName.length);
		
	    var prefixPos = targetTextboxName.indexOf("__");
	    if (prefixPos > -1) 
	    {
	        targetTextboxName = targetTextboxName.substring(0, prefixPos);
	    }		
		
		if (xmlRoot.length > 0)
		{
			if (xmlRoot.length == 1)
		    {
    	        ITDH_AJAX_UpdateCityControls(targetTextboxName, objectName, innerText(xmlRoot[0]), xmlRoot[0].getAttribute("CityID"));
		    }
		    else
		    {
			    var inner = '<span class="Itdh_IUDesc">Válassza ki a települést:</span>';
		        inner = inner + '<ul>';
			    for (i=0;i<xmlRoot.length;i++)
			    {	
				    inner = inner + '<li>';
				    inner = inner + '<a href="#" ';													
				    inner = inner + 'onclick="ITDH_AJAX_UpdateCityControls('
				    inner = inner + "'" + targetTextboxName + "','" + objectName + "','" + innerText(xmlRoot[i]) + "'," +  xmlRoot[i].attributes.getNamedItem("CityID").value + ");";					
				    inner = inner + '" >';				
				    inner = inner + innerText(xmlRoot[i]);
				    inner = inner + '</a>';
				    inner = inner + '</li>';
    				
			    }
		        inner = inner + '</ul>';
        		objectName = objectName + '_div';	
	            document.getElementById(objectName).innerHTML = inner;	
		    }
		}
	}
}

function ITDH_GetCities(obj)
{
	var targetDDName = "";
	var prefix = "AJAXZipCode_";
	
	if(obj.name.length <= prefix.length)
	{
	    return;
	}
	
	var targetTextboxName = obj.name.substring(prefix.length, obj.name.length);

	var prefixPos = targetTextboxName.indexOf("__");
    if (prefixPos > -1) 
    {
	    targetDDName = targetTextboxName.substring(prefixPos+2, targetTextboxName.length);
        targetTextboxName = targetTextboxName.substring(0, prefixPos);
    }		

    //clear controls
    ITDH_AJAX_UpdateCityControls(targetTextboxName, obj.name, '', 0);

    if (obj.value.length != 4)
    {
	    return;
    }

	//skip Hungary
	if (targetDDName != "")
	{
	    if (document.getElementsByName(targetDDName)[0].value != "item_155")
	    {
		    return;
	    }
	}
	

	ajaxChannel = ITDH_UZIR_AJAXChannel();	
	ajaxChannel.onreadystatechange = ITDH_AJAX_ProcessResponse;	
	ajaxChannel.open("POST","engine.aspx?page=ITDHUzirAJAX");
	ajaxChannel.setRequestHeader("Content-Type", "text/xml");	
	var data = "<AjaxRequest str='" + obj.value + "' type='cities' objectName='" + obj.name + "' >";
	data = data + "<Data name='objectName' value='" + obj.name +"' />";
	data = data + "</AjaxRequest>";
	ajaxChannel.send(data);	
}
