function test_element(f,name,type,error_msg)
{
	var testnames=new Array();
	testnames=name.split("|");
	var i,j;
	var fail=0;
	var radio_check=false;
	for(i=0;i<testnames.length;i++){
		switch(type){
			case 'radio':
				for (j=0;j<eval("f."+testnames[i]+".length");j++)
					if(eval("f."+testnames[i]+"["+j+"].checked"))
						radio_check=true;
				if(!radio_check)
					fail++;
				break;
			case 'text':
				if(eval("f."+testnames[i]+".value.length==0"))
					fail++;
				break;
			case 'select':
				if(eval("f."+testnames[i]+".selectedIndex==0"))
					fail++;
				break;
			case 'num':
				var ret=new String(eval("parseInt(f."+testnames[i]+".value)"));
				if(ret.indexOf('NaN') != -1)
					fail++;
				break;
		};
	}

	if(fail == testnames.length)
		return "\n\t"+error_msg;
	else
		return "";
}

function do_submit(my_form)
{

	var i;
	var e="";
	var f;
	if(my_form == null)
		f=document.forms[0];
	else
		f=my_form;

	var passes=new Array();

	re1 = /\"/g;
	re2 = /\'/g;
	re3 = /\;/g;
	str=new String();
	for(i=0;i<f.elements.length;i++){
		if(f.elements[i].type == "text" || f.elements[i].type == "textarea"){
			str=(f.elements[i].value);
			str=str.replace(re1,"\&quot\;");
			// str=str.replace(re2,"");
			// str=str.replace(re3,"\&\#59\;");
			f.elements[i].value=str;
		}
	}

	for(i=0;i<tests.length;i++){
		if(tests[i][1] == "pass"){
			passes=tests[i][0].split("|");
			if(eval("f."+passes[0]+".value != f."+passes[1]+".value")){
				e+="\n\t"+tests[i][2];
			}
		}
		else
			e+=test_element(f,tests[i][0],tests[i][1],tests[i][2]);
	}

	if(e.length > 0){
		alert("Error:"+e);
		return false;
	}
	else
		return true;
}

function get_element(n){
	var p,i,x;
	d=document;
	
	if(!(x=d[n])&&d.all)
		x=d.all[n];
		
	for(i=0;!x&&i<d.forms.length;i++)
		x=d.forms[i][n];
		
	for(i=0;!x&&d.layers&&i<d.layers.length;i++)
		x=get_element(n,d.layers[i].document);
		
	if(!x && d.getElementById)
		x=d.getElementById(n);

	return x;
}

function need_warning(form_name){
	var f=get_element(form_name);
	for(i=0;i<f.elements.length;i++){
		var el=f.elements[i];
		if(el.type == "file" && el.value.length > 0)
			return true;
	}
	return false;
}

function show_uploading(){
	scroll(0,0);
	flyr=get_element(main_layer);
	flyr.style.minHeight=mess_height;
	fade_layer();
}

function set_uploading_message(){
	var up_content=new String();
	up_content+='<div id="UD">Uploading Data...<br>\n<img src="images/loading.gif" alt="Uploading Data" title="Uploading Data"><br>';
	var fname=new String();
	for(i=0;i<uploads.length;i++)
		if(fname=get_element(uploads[i]).value) up_content+=get_basename(fname)+"<br>";
	up_content+='</div>';
	flyr.style.height=mess_height;
	flyr.innerHTML=up_content;
}

function get_basename(fname)
{
	var path=fname.split(/\/|\\|\:/);
	return path[(path.length)-1];
}

function set_opacity(obj, o) {
    obj.style.opacity = (o / 100);
    obj.style.MozOpacity = (o / 100);
    obj.style.KhtmlOpacity = (o / 100);
    obj.style.filter = 'alpha(opacity=' + o + ')';
}

function fade_layer(){
	if(fop < 0 && dir < 0){
		set_uploading_message();
		dir *= (-1);
	}
	if(fop > 100)
		return;
	set_opacity(flyr,fop);
	fop+=dir;
	setTimeout("fade_layer()",5);
}

function getURLVar(urlVarName) {
	var urlHalves = String(document.location).split('?');
	var urlVarValue = '';
	if(urlHalves[1]){
		var urlVars = urlHalves[1].split('&');
		for(var i=0; i<=(urlVars.length); i++){
			if(urlVars[i]){
				var urlVarPair = urlVars[i].split('=');
				if (urlVarPair[0] && urlVarPair[0].toLowerCase() == urlVarName.toLowerCase()) {
					urlVarValue = urlVarPair[1];
				}
			}
		}
	}
	return urlVarValue;
}

