function curr_report(){
//	dump_report(document.storage.document);
//	dump_report(document.storage.document.sform491);
//	dump_report(navigator);

}
function get_elem(form_id,elem_id){
	if(document["getElementById"]!=null) return document.getElementById(elem_id);
	else return document[form_id][elem_id];
}
//function get_elem(elem_id){
//	if(document["getElementById"]!=null) return document.getElementById(elem_id);
//	else return document[elem_id];
//}
function get_form(form_id){
	return document.forms[form_id];
}

function enum_string(element){
	var text = "";
	for(prop in element){
		var val =  prop+":="+element[prop];
		text = text + "\n"+val;
	}
	if(element['length']!=null) for(a = 0 ; a<element.length ; a++){
		text = text + "\n"+a+" -> "+element[a];
	}
	return text;
}

function dump_report(elem){
	var text = enum_string(elem);
	var out = get_elem("feedback","out");
	out.value = text;
}
function update_special(f,a,b,c){
	if(is_first() || ((navigator!=null) && (navigator.vendor=='Phoenix')))
		return update(f,a,b,c);

	var el = get_elem(f,a);
	var sel = el.selectedIndex;
	update(f,a,b,c);
	el.selectedIndex = sel;
}

var first = true;
function start_on_load(){
	if(first) { first = false; }
	
	if((document.forms['sa']==null) && !(document.height>0))
		top.setTimeout("start_on_load();",1000);
	else {
		start_up();
		initial = false;
	}
	
}

function update(form_id,dest_id,source_id,source_level) {

	var source = get_elem(form_id,source_id);
	var dest = get_elem(form_id,dest_id);

	var val = get_select_value(source);
	var my_sel=0;
	var sel = get_stored(form_id,dest_id);
	var to_update = 0;
	var def = dest.selectedIndex;

//	alert(form_id+","+dest_id+","+source_id+","+source_level+" :: "+val+">"+sel);
	if(source_level==1){

		dest.selectedIndex = 0;
		if(dest['removeChild']!=null){
			for(a = dest.options.length-1 ; a>0 ; a--){
				dest.removeChild(dest.options[a]);
			}
		} else {
			dest.options.length = 1;
		}

		if((val=='None') || (val.substr(0,13)=="No Preference")){
/*			for(a in names){
//				dest.appendChild(new Option(names[a],names[a],false,(names[a]==sel)));
				var name = names[a];
				dest.options[a] = new Option(name,name,false,(name==sel));
				if(name==sel) my_sel = a; 
			}
			dest.selectedIndex=(sel!="")?my_sel:def; */
		} else {
			//state = states[val];
			state = val;
			
			if(areas[state]) for(a in areas[state]){
				var area = areas[state][a];
				var name = names[areas[state][a]];
				opt = new Option(name,area,false,(area==sel));
				if(area==sel) my_sel = a;
//				dest.appendChild(opt);
				dest.options[a]=opt;
				
			} dest.selectedIndex=(sel!="")?my_sel:def;
		}
		store_value(form_id,dest_id);
	}
}

var on = new Array();
function checkAll(formid,clicked){
	e = document.forms[formid].elements;
	if(clicked){
		clicked = e[clicked].checked;
	} else {
		clicked = on[formid] = !on[formid];
	}
	for(a=0 ; a<e.length ; a++){
		e[a].checked = clicked;
	}
}


function do_submit(form_id,action_val){
	var form = get_form(form_id);
	if(action_val){
		var elem = get_elem(form_id,'ACTION_VAR');
		elem.value = action_val;
	}
	form.submit();
}


function get_select_value(elem){
	if(elem.value!=null){
		return elem.value;
	} else {
		return elem.options[elem.selectedIndex].text;
	}
}

function get_stored_elem(form_id,cont_id){
	form_id = "s"+form_id;  cont_id = "s"+cont_id;

	if((navigator.appName=='Netscape')&&(navigator.appVersion.substr(0,2)=='4.')){
		form = document.storage.document[form_id];
		return form[cont_id];
	} else {
		return get_elem(form_id , cont_id);
	}
}

function store_value(form_id,cont_id){
	var from = get_elem(form_id,cont_id),
		to = get_stored_elem(form_id,cont_id);
	to.value = get_select_value(from);
}

function get_stored(form_id,cont_id){
	var elem = get_stored_elem(form_id,cont_id);
//	alert(enum_string(document.forms[form_id].elements[cont_id].value));
//	alert("Retreiving "+form_id+">"+cont_id+" ::= ");
//	alert("Retreiving "+elem.value);
	return elem.value;
}

function set_stored_default(form_id,cont_id,val){
	var elem = get_stored_elem(form_id,cont_id);
	if(elem.value == "") elem.value = val;
}


function set_source(image_id,image_src){
	document.images[image_id].src = image_src;
}

function set_preloaded(image_id,image){
	document.images[image_id].src = image.src;
}
function createWindow(url,xpos,ypos,width,height,scroll){
	var newWindow = window.open(url,'','scrollbars='+(scroll?'yes':'no')+',width='+width+',height='+height+',screenX='+xpos+',screenY='+ypos+',left='+xpos+',top='+ypos); 
	return newWindow;
}

function openWindow(url,xpos,ypos,width,height,scroll){
	createWindow(url,xpos,ypos,width,height,scroll);
}

var form_ex = new Array() , form_msg = new Array() , form_req = new Array();
function onSubmitCheck(form,elem,regex,msg){
	if(!form_ex[form]) {
		form_ex[form] = new Array();
		form_msg[form] = new Array();
	}
	form_ex[form][elem] = regex;
	form_msg[form][elem] = msg;
}

function onSubmitRequire(form,elem){
	if(!form_req[form]) form_req[form] = new Array();
	
	form_req[form][elem] = true;
}

function popup(name,elem){
	var w = createWindow("",100,100,400,400,false);
	var d = w.document;
	d.write("<h1>",name,"</h1>");
	d.write("<pre>",enum_string(elem));
	d.close();
}

function checkSubmit(form){
	var string = "";
	if(form_req[form]){
		for(el in form_req[form]){
			var elem = get_elem(form,el);
			if(elem){
				if(elem['selectedIndex']== 0)
					string +=", "+el;
			
				if(elem['value']!=null && !elem.value) 
					string += ", "+el;
			}
		}
		if(string) string = "The following fields cannot be blank: "+string.substring(2);
	}
	if(form_ex[form]){
		for(el in form_ex[form]){
			var ex = new RegExp(form_ex[form][el]);
			var elem = get_elem(form,el);
			var value = elem.value;
			if(value.match(ex) == null){
				string += "\n\t"+form_msg[form][el]+" : '"+value+"'";
				elem.focus();
			}
		}
	}
	if(string){
		alert("Some of these values are not valid for the database: "+string);
		return false;
	}
	return true;
}

function loadSelectedURL(elem){
//for(prop in elem) alert(prop);
	url = elem.options[elem.selectedIndex].value;
	location.href = url+"?con="+conn;
}

