/// XML Class ///
XML.prototype.setBrowser=function(){var agent=window.navigator.userAgent;if(agent.match(/msie/ig))this.browser='ie';else if(agent.match(/firefox/ig))this.browser='ff';else if(agent.match(/opera/ig))this.browser='op';}
XML.prototype.setRequestObj=function(){	if(this.browser!='ie'){this.requestObj= (new XMLHttpRequest());}else if (this.browser=='ie'){try {this.requestObj= (new ActiveXObject("Msxml2.XMLHTTP"));} catch (e){try{this.requestObj= (new ActiveXObject("Microsoft.XMLHTTP"));}catch (e){}}}else this.requestObj=null;}
XML.prototype.fromSyncRequest=function(_url,_rType, _requestHeaders,_method,_message)
{ if(!this.requestObj) this.setRequestObj(); if(!_method) _method="GET"; this.requestObj.open(_method,_url, false);
  if(_requestHeaders && _requestHeaders!=''){var headers=_requestHeaders.split('&');for(var i=0; i<headers.length; i++){var temp=headers[i].split('=')
  if(temp.length>1)this.requestObj.setRequestHeader(temp[0],temp[1]);}}if(!_message)this.requestObj.send(null);else this.requestObj.send(_message);
  switch(_rType){case 0:	return this.requestObj.responseText;case 1: return this.requestObj.responseXML;case 2: return this.requestObj.responseStream;default:return this.requestObj.responseXML;}}
function XML(){	this.browser=null;this.setBrowser();this.requestObj=null;}
/// End of XML Class ///


function getNodes(sExpando,sTagName)
{
	var aNodes = new Array();
	if(!sExpando)
		return aNodes;
	sExpando = sExpando.toLowerCase()
	if(sTagName)
		sTagName = sTagName.toUpperCase()
	var aStack = new Array(document.body);
	while(aStack.length != 0)//for every node in stack
	{
		var oNode = aStack.pop();
		if(oNode.nodeType == 1 && (!sTagName || oNode.tagName == sTagName))//html element 	and the tag we want
		{
			for(var i=0;i<oNode.attributes.length;i++)
			{
				var oAttrib = oNode.attributes[i]	
				if(oAttrib.nodeName.toLowerCase().indexOf(sExpando) != -1)
				{
					if(!oNode[sExpando])//set the as prop for moz
						oNode[sExpando] = oAttrib.nodeValue;
					aNodes.push(oNode);
					break;
				}
			}
		}
			
		if(oNode.hasChildNodes) //append childs to stack
			for(var i = 0 ; i < oNode.childNodes.length; i++)
				aStack.push(oNode.childNodes[i]);
	}
	return aNodes;
}

function initDynPopulate(sFolder)
{
	var aLinked = getNodes('populate','select');
	//alert("linked :"+ aLinked);
	for(var i = 0 ; i < aLinked.length; i++)
	{
		var oNode = aLinked[i];
		oNode.populateFolder = sFolder;
		
		oNode.onchange=function()
		{
			
			var oPop;
			
			if(this.getAttribute('populateById'))
			{
				oPop= document.getElementById(this.populateById);	
				this.setAttribute('populate',this.source);
			}
			else
			{	
				if(this.name=="twn" && this.value == "1009")
				 	oPop= document.getElementsByName("zon");
				else
					oPop= document.getElementsByName(this.populate);
				
			 	if(!oPop)
					return;
				
				if(oPop.length && oPop.length>0)
					oPop = oPop[0];	
			}
			
			for(var i=oPop.options.length-1;i>0;i--)
			{
				if(oPop.options[i].value != '' && oPop.options[i].value != '0')
				{
					oPop.remove(i);
				}
			}
			
			if(this.name=="twn" && this.value == "1009")
			{	
				window.document.getElementById('ngh_label').style.display  = "none";
				window.document.getElementById('ngh_selectBox').style.display = "none";

				window.document.getElementById('zon_label').style.display  = "block";
				window.document.getElementById('zon_selectBox').style.display = "block";
			
				var xDoc= new XML();
				var oXml=xDoc.fromSyncRequest(this.populateFolder+'zon.xml?twn=1009',1,'Content-type=text/xml;charset=ISO-8859-9');
				var aRecords = oXml.getElementsByTagName('record');
			
				for(var i = 0; i < aRecords.length; i++)
				{
					var exists = false;
					var oOption = document.createElement("OPTION");
					var tempText = aRecords[i].getElementsByTagName('name')[0].firstChild.nodeValue;
					var temp =  tempText.substring( 0 , tempText.lastIndexOf('>') - 1 ); 
					oOption.text = temp;
					//alert( temp );
					
					for( var g = 0 ; g < oPop.options.length ; g++ )
					{
						if( temp == oPop.options[g].text )
						{
							exists = true;
							break;
						}
					}
					
					if( exists )
					{
						
						oPop.options[g].value += "," + aRecords[i].getElementsByTagName('id')[0].firstChild.nodeValue;
					}
					else
					{
						oOption.value = aRecords[i].getElementsByTagName('id')[0].firstChild.nodeValue;
						oPop.options[oPop.options.length] = oOption;
					}
				}

				
				//oPop.fireEvent('onchange',window.event); //call the event handler
				return 0;
			}
			else
			{
				if( this.name == "twn" &&  this.value != "1009" )
				{
					window.document.getElementById('ngh_label').style.display  = "block";
					window.document.getElementById('ngh_selectBox').style.display = "block";

					window.document.getElementById('zon_label').style.display  = "none";
					window.document.getElementById('zon_selectBox').style.display = "none";
				}
				document.getElementsByName('zon').value = "";

				var xDoc= new XML();
				var oXml=xDoc.fromSyncRequest(this.populateFolder+this.populate+'.xml?'+this.name+'='+this.value,1,'Content-type=text/xml;charset=ISO-8859-9');
				
				var aRecords = oXml.getElementsByTagName('record');
				
				var op=oPop.getAttribute('show');

				if(op!=null)
				{
					var reg=/>/;
				
					for(var i = 0; i < aRecords.length; i++)
					{
						var oOption = document.createElement("OPTION");
						oOption.text = aRecords[i].getElementsByTagName('name')[0].firstChild.nodeValue;
						oOption.value = aRecords[i].getElementsByTagName('id')[0].firstChild.nodeValue;
						//alert("adding "+ oOption.text +" ; " +oOption.value);
						oPop.options[oPop.options.length] = oOption;		
					}
				}
				else
				{
				 	for(var i = 0; i < aRecords.length; i++)
					{
						var oOption = document.createElement("OPTION");
						oOption.text = aRecords[i].getElementsByTagName('name')[0].firstChild.nodeValue;
						oOption.value = aRecords[i].getElementsByTagName('id')[0].firstChild.nodeValue;
						//alert("adding "+ oOption.text +" ; " +oOption.value);
						oPop.options[oPop.options.length] = oOption;		
					}
				}
				
				//oPop.fireEvent('onchange',window.event); //call the event handler
			}
		}
	}
}