// JavaScript Document


function initAutoLoads(tip,disable){
	_filter(tip,".autoload:not(:hidden)").each(function(c){ initAutoLoad(this,disable); });
}

function initAutoLoad(ipt,disable){
	ipt = $(ipt);
	if(disable) return false;
	//alert("initing: "+ ipt.attr("name")+" \nval="+ipt.val()+"\nclss="+ipt.attr("class"));
	//alert(ipt.html()+ "\n\n" + ipt.next().html());
	ipt.filter(".chnd").each(function(e){
		var to = _val($(this),"chndto");
		if(to) $(this).bind("change.autoload",function(e){ resetChainedAutoLoad(this); });							 
	});
	
	autoLoad(ipt);
}

function resetChainedAutoLoad(ipt){	
	ipt = $(ipt);
	var to = _val(ipt,"chndto");
	//alert(to);
	to = $("#"+to);
	if(to.size()){
		//alert("reset");
		//alert("before reset: "+ to.attr("name")+" "+to.val());
		to.removeClass("loaded");
		updateClass(to,"v1",ipt.val());
		autoLoad(to);
		//alert("after reset: "+ to.attr("name")+" "+to.val());
	}
}

function autoLoad(ipt){
	ipt = $(ipt);
	var type = ipt.attr("type");
	//alert($(ipt).attr("id")+' '+type);
	switch(type){
		case "select-one":
			//alert($(ipt).attr("class"));
			_ajxOptions(ipt);
		break;
	}
}

function _ajxOptions(sel,debug){
	//alert("sel class="+ $(sel).attr("class"));
	//alert(sel.attr("class"));
	sel = $(sel);
	
	if(!sel.hasClass("loading") && !sel.hasClass("loaded")){
		//alert("loading: "+ sel.attr("name"));
		sel.addClass("loading");
		sel.find(":selected").text("loading...");
		var otyp = _val(sel,"otyp");
		var f1 = _val(sel,"f1");
		var v1 = _val(sel,"v1");
		var url = "ajax.php";
		var type = 'json';
		if(debug) {
			url += '?debug=1';
			type = null;
		}
		var data = { otyp:otyp, pls:'options' };
		if(f1) data.f1 = f1;
		if(v1) data.v1 = v1;
		//alert("loading: "+ sel.attr("name")+" \nval="+sel.val()+"\nclss="+sel.attr("class"));
		//dump(data,"_ajxOptions posting data");
		$.get(url, data , function(response){ ajxOptions_(response,sel); } ,type);
	}
}

function ajxOptions_(data,sel,val){
	sel = $(sel);
	if(!val) val= sel.val();
	//alert(sel.attr("name") + "\nmy val before="+val);
	//dump(data,"ajxOptions_");
	//alert($(sel).attr("class"));
	sel.removeClass("loading");
	sel.addClass("loaded");
	var opts=slctd='';
	for(key in data){
		if(!isNaN(parseInt(key))){
			slctd ='';
			var v = key;
			if(v==val) slctd=' selected';
			opts+='<option value=\"'+v+'\"'+slctd+'>'+data[key]+'</option>';
		}
	}
	sel.html(opts);
}


