/* (c) 2010 - Jean Luc BIELLMANN */

var _FormCtrl = {
	// Fill a edit form using tbl id and row hash
	// Every field of the form MUST be of the form tbl_id__SQLTblFieldName
	// Effectue le remplissage automatique des champs du formulaire 
	// en utilisant le tbl id et les données dans le hash row	
	fill : function (tbl,row) {
		var br = new RegExp('[\r\n]+','g');
		for (var i in row) {
			var key = tbl+'__'+i;
			var obj = $(key);
			if (obj) { // element exists
				if (i.match(/.*_id$/)) {
					obj.select('option').each(function (opt) {
						opt.selected = (row[i]==opt.value) ? true : false;
					});
				} else {
					var str = String(row[i]).stripScripts().stripTags();
					if (usr.isadmin=='0') {
						if (i=='id' || i=='editKey')
							obj.value = str;
						else
							if (obj.nodeName!='DIV')
								alert('La division "'+i+'" devant recevoir la donnée n\'existe pas. Contactez l\'administrateur.');
							else
								obj.update(str.replace(br,'<br/>'));
					} else {
						//alert('i='+i+' '+obj.type+':'+row[i]);
						switch (obj.type) {
							case 'select-one':
								obj.select('option').each(function (option) {
									option.selected = (option.value.unescapeHTML()==str.unescapeHTML() ? true : false);
								});
								break;
							case 'checkbox': 
							case 'radio':
								$A(obj.form.select('input[type="'+obj.type+'"][name="'+obj.name+'"]')).each(function (obj) {
									obj.checked = (obj.value.unescapeHTML()==str.unescapeHTML() ? true : false);
								});
								break;
							case 'text': 
							case 'password':
							case 'hidden':
								obj.value = str.replace(/"/g,'&quot;');
								break;
							case 'textarea': // textarea
								obj.update(str.replace(br,'<br/>'));
							default:
						}
					}
				}
			}
		}
	}
}

