Anastasis.Controllers=function()
{
	this.path=new Array();
	this.path["optionfilter"]="ModuleIndex?q=ajax/optionfilter/cls=@CLS@/controller=@CONTROLLER@/value=@VALUE@";
}

Anastasis.Controllers.prototype.controllerChanged=function(controller,value)
{
	var className=Anastasis.SerenaUtils.getInputInfo(controller,"class");

	var params=new Object();

	var path=this.path["optionfilter"];
	path=path.replace("@CLS@",className);
	path=path.replace("@CONTROLLER@",encodeURIComponent(controller.id));
	path=path.replace("@VALUE@",value);

	var rep=anastasis.ajax.send(params,path,"GET",false,false);
	try
	{
		var xmlrep = Anastasis.Utils.parseXML(rep); //va fatto cosi' (false+parsing manuale) altrimenti in IE6 d� errore
		var msg = Anastasis.XMessage.buildXMessage(xmlrep);

		if(msg.isErrorMessage())
		{
			//TODO
			return;
		}

		var controls=msg.selectSingleNode("controls");
		var child=controls.firstChild;

		while(child)
		{
			var action=Anastasis.Ajax.getText(Anastasis.Ajax.selectSingleNode(child,"action"));
			switch(action)
			{
			case "populate":
				var target=Anastasis.Ajax.getText(Anastasis.Ajax.selectSingleNode(child,"target"));
				var html=Anastasis.Ajax.getText(Anastasis.Ajax.selectSingleNode(child,"html"));
				var targetSelect=document.getElementById(target);

				targetSelect.innerHTML="";
				var options=html.split("</option>");
				for(var i=0;i<options.length;i++)
				{
					if(!options[i].match("option")) continue;
					var value=options[i].match(/value="(.*?)"/)[1];
					var text=options[i].match("<option.*?>(.*)")[1];
					var opt=document.createElement("option");
					opt.value=value;
					opt.innerHTML=text;
					targetSelect.appendChild(opt);
				}

				if(Anastasis.SerenaUtils.getInputInfo(targetSelect,"controller")=="true")
				{
					this.controllerChanged(targetSelect,targetSelect.value);
				}
			}

			child=child.nextSibling;
		}

	}
	catch(e){alert("errore: "+e);}
}

//--------------------------------------------------------//
anastasis.controllers=new Anastasis.Controllers();


