//keepstate.js

//api to keep a page state by setting form field value

	function isInArray(val, arr) {
		for(var i=0;i<arr.length;i++) {
			if(arr[i] == val) return true;
		}
		return false;
	}
	
	function isObject(obj) {
		return (typeof obj == 'object');
	}
	
	
	function setValue(fieldID,fieldVALUE) {
		var obj = document.getElementById(fieldID);
		if(!obj) return;
		switch(obj.type) {
			case 'radio':
				var rad = document.getElementById(fieldID);
				if(isObject(fieldVALUE)) {
					for(var i=0;i<fieldVALUE.length;i++) {
						if(fieldVALUE[i] == '1') {
							rad[i].checked = true;
						}
					}
				}else {
					rad = document.forms['fb0'].elements[fieldID];
					for(var i=0;i<rad.length;i++) {
						if(rad[i].value == fieldVALUE) {
							document.forms['fb0'].elements[fieldID][i].checked = true;
						}
					}
				}
				break;
			case 'text':
				if(isObject(fieldVALUE)) {
					var txts = document.forms[0].elements[fieldID];
					for(var i=0;i<txts.length;i++) {
						document.forms[0].elements[fieldID][i].value = fieldVALUE[i];
					}
				}else {
					document.getElementById(fieldID).value = fieldVALUE;
				}
				break;
			case 'hidden':
				document.getElementById(fieldID).value = fieldVALUE;
				break;
			case 'textarea':
				document.getElementById(fieldID).value = fieldVALUE;
				break;
			case 'password':
				//document.getElementById(fieldID).value = fieldVALUE;
				//notinf to do the password never reappears
				break;
			case 'select-one':
				var sel = document.getElementById(fieldID);
				if(isObject(fieldVALUE)) {
					var sel = document.forms[0].elements[fieldID];
					for(var j=0;j<sel.length;j++) {
						for(var i=0;i<sel[j].options.length;i++) {
							if(sel[j].options[i].value == fieldVALUE[j]) {
								document.forms[0].elements[fieldID][j].options[i].selected = true;
							}
						}
					}
					return;
				}else {
					for(var i=0;i<sel.options.length;i++) {
						if(sel.options[i].value == fieldVALUE) {
							document.getElementById(fieldID).options[i].selected = true;
							return;
						}
					}
				}
				break;
			case 'select-multiple':
				var sel = document.getElementById(fieldID);
				for(var i=0;i<sel.options.length;i++) {
					if(isInArray(sel.options[i].value,fieldVALUE)) {
						document.getElementById(fieldID).options[i].selected = true;
					}
				}
				break;
			case 'checkbox':
				var chk = document.getElementById(fieldID);
				if(isObject(fieldVALUE)) {
					chk = document.all[fieldID];
					if(chk.length) {
						for(var i=0;i<chk.length;i++) {
							if(isInArray(chk[i].value,fieldVALUE)) {
								document.all[fieldID][i].checked = true;
							}
						}
					}else {
						document.getElementById(fieldID).checked = true;
					}
				}else {
					if(fieldVALUE != '0') {
						document.getElementById(fieldID).checked = true;
					}
				}
				break;
		}
	}
	