

function ocall(lam,ctx,args){
	if(lam != null && lam != undefined){
		if(ctx != null && ctx != undefined){
			if(args == null || args == undefined){
				args = [];
			}
			lam.apply(ctx,args);
		}else{
			lam();
		}
	}
}

function showif(b,o){
	if(b===true || b===false){
		
	}else{
		var x = o;
		o = b;
		b = x;
	}
	if(b){
		$(o).show();
	}else{
		$(o).hide();
	}
}

function hideif(b,o){
	if(b===true || b===false){
		
	}else{
		var x = o;
		o = b;
		b = x;
	}
	showif(!b,o);
}

function show(s){
	var items = $w(s);
	items.each(function(t){var t2 = $(t); if(t2!=undefined){t2.show();}});
}

function hide(s){
	var items = $w(s);
	items.each(function(t){var t2 = $(t); if(t2!=undefined){t2.hide();}});
}

function blank(s){
	var items = $w(s);
	items.each(function(t){$(t).reset();});
}

function updateall(ar,uw){
	ar = $w(ar);
	ar.each(function(t){
		if($(t) != null){
			$(t).update(uw)
		}
	})
}

function fill(tgt,svr,args,cbk,opts){
	if(opts==undefined){
		opts = {blank_content:true};
	}
	
	if(opts.blank_content){
		$(tgt).update('');
	}
	
	Loading(tgt);
	Request(svr, args, function(r){
		Loaded(tgt);
		$(tgt).update(r.html);
	}.bind(this));
}

function get_options_from_area(area,prefix){
	var options = {};
	$(area).select('input,textarea').each(function(t){
		var key = t.id.toLowerCase().strip().gsub(prefix,'');
		switch(t.nodeName.toLowerCase().strip()){
			case 'input':
				if(t.type=='checkbox'){
					options[key] = $(t).checked;
				}else{
					options[key] = $F(t);
				}
			break;
			case 'select':
				options[key] = $F(t);
			break;
			case 'textarea':
				options[key] = $F(t);
			break;
		}
	});
	return options;
}

function getinfo(r){
	return Object.keys(r).collect(function(y){return y+':\n'+r[y];}).join('\n')
}


