// JavaScript Document


//   ---- Default Form Functions --- Mainly for Display Operation ----

//id = number in the group
//group = group_name
//Group name is assembled with id to show a specific element and hide all other elements in the group.

//set hidelink = java_hide to hide the element when it is clicked
//set hidelink = to anything else to have it's innerHTML changed


function dropdown_redirect(id,url)
{
	/*window.location = url+document.getElementById(id).value+'/'*/
	window.location = url+document.getElementById(id).value
}

function show(id, group, showlink, hidelink, parent_group, hideparent)
{
	var i = 1
	
	if (hidelink != undefined)
		{
			var hidehtml = document.getElementById(group+id+'link');
		}
	else
		{
			var hidehtml = 	document.getElementById(group+id);
		}
	
	if (hidehtml.innerHTML == hidelink)
		{	
			document.getElementById(group+id).style.display="none";	
			document.getElementById(group+id+'link').innerHTML=showlink;
			if (parent_group != undefined)
				{
					document.getElementById(parent_group+id).style.display=""
				}
		}
	else
		{	
			while (document.getElementById(group+i))
				{
					document.getElementById(group+i).style.display="none";
						if (showlink != undefined && showlink != 'java_static')
							{
								document.getElementById(group+i+'link').innerHTML=showlink;
							}			
						if (parent_group != undefined)
							{
								if (i == id)
									{
										if (hideparent!=undefined)
											{
												document.getElementById(parent_group+i).style.display="none";
											}
									}
								else
									{
										document.getElementById(parent_group+i).style.display="";									
									}
							}
					i++;
				}
	
			document.getElementById(group+id).style.display="";	
			
			if (hidelink != undefined)
				{
					if (hidelink == 'java_hide')
						{
							document.getElementById(group+id+'link').style.display="none";
						}
					else
						{
							document.getElementById(group+id+'link').innerHTML=hidelink;
						}
				}
		
		}
}


function hide(element)
{
	document.getElementById(element).style.display="none";	
}





// ---- Form Functions for Form Validation and other useful things ----


function form_create_array(name)
{
	eval(name+"_bad = new Array();")
	eval(name+"_bad_length = 0")
}



function form_set_good(formname,id)
{
	var check = document.getElementById(id)
	var errortext = document.getElementById(id+"-required")
	eval("if ("+formname+"_bad['"+id+"'] != undefined) {delete "+formname+"_bad['"+id+"']; delete "+formname+"_bad['"+id+"-value']; "+formname+"_bad_length--;}")
	errortext.innerHTML = "";
}



function form_set_bad(formname,id,error)
{
	var check = document.getElementById(id)
	var errortext = document.getElementById(id+"-required")
	eval("if ("+formname+"_bad['"+id+"'] == undefined) {"+formname+"_bad['"+id+"'] = check.name; "+formname+"_bad['"+id+"-value'] = check.value; "+formname+"_bad_length++;}")	
	errortext.innerHTML = error;
}



function form_check(formname,id,type,count)
{
	var check = document.getElementById(id)
	
	if(type == 'no' || type == 'yes')
		{		
			form_set_good(formname,id,type,count)
		}
		
	if(type == 'text')
		{
			var error = ''
			
			if (check.value.length >= count && check.value.match(/^[a-zA-Z0-9 \-\<\>]+$/))
				{
					form_set_good(formname,id)
				}
			if (check.value.length < count)
				{
					error += "Must be at least "+count+" characters long "
				}
			if (!check.value.match(/^[a-zA-Z0-9 \-\<\>]+$/))
				{
					error += "Must not contain special characters"	
				}
			if (error != '')
				{
					form_set_bad(formname,id,error)						
				}
		}
		
	if(type == 'text-alpha')
		{
			if (check.value.length >= count && check.value.match(/^[a-zA-Z ]+$/))
				{
					form_set_good(formname,id)
				}
			else
				{
					var error = "Must be at least "+count+" characters long and only letters (a-z, A-Z)"
					form_set_bad(formname,id,error)
				}
		}
		
	if(type == 'text-alphanum')
		{
			if (check.value.length >= count && check.value.match(/^[a-zA-Z0-9 ]+$/))
				{
					form_set_good(formname,id)
				}
			else
				{
					var error = "Must be at least "+count+" characters long and alphanumeric (a-z, A-Z, 0-9)"
					form_set_bad(formname,id,error)
				}
		}
		
		
	if(type == 'num')
		{
			if (check.value.length >= count && isNaN(check.value)==false)
				{
					form_set_good(formname,id)
				}
			else
				{
					var error = "Must be least "+count+" numbers (0-9)"
					form_set_bad(formname,id,error)
				}
		}
		
	if(type == 'email')
		{
			if (check.value.match(/^[A-Z0-9a-z._%+-]+@[a-zA-Z0-9.-]+\.(?:[A-Za-z]{2}|com|org|net|gov|mil|biz|info|name|aero|jobs|museum)$/))
				{
					form_set_good(formname,id)					
				}
			else
				{
					var error = "Must be a valid email address (name@host.domain)"
					form_set_bad(formname,id,error)					
				}
		}
		
	if(type == 'compare')
		{
			
			var compare = document.getElementById(id+"-compare")
			var error = '';
			
			if (compare.value==check.value && check.value.length >= count && check.value.match(/^[a-zA-Z0-9]+$/))
				{
					form_set_good(formname,id)					
				}
			if (compare.value!=check.value)
				{
					error += "Fields do not match "				
				}
			if (check.value.length < count)
				{
					error += "Password must be at least "+count+" characters "			
				}
			if (!check.value.match(/^[a-zA-Z0-9]+$/))
				{
					error += "Only alphanumeric (a-z, A-Z, 0-9) allowed "	
				}
			if (error!='')
				{
					form_set_bad(formname,id,error)		
				}
		}
		
		
	if(type == 'dropdown')
		{
			if (check.value != 'unset')
				{
					form_set_good(formname,id)
				}
			else
				{
					var error = "Please choose an option"
					form_set_bad(formname,id,error)
				}
		}

}



function submit_form(formname,formstring)
{
	var success = 0
	eval(formstring)
	eval("if ("+formname+"_bad_length<1) {var success=1;}")
	if (success == 1)
		{
			eval("document."+formname+".submit();")			
		}
	else
		{
			if (document.getElementById(formname+'_errorshow'))
				{
					document.getElementById(formname+'_errorshow').innerHTML="Please correct the indicated fields";
				}
			if (document.getElementById(formname+'_errorshow2'))
				{
					document.getElementById(formname+'_errorshow2').innerHTML="Please correct the indicated fields";
				}
		}
}



function submit_form_ajax(formname,formstring,ajax)
{
	var success = 0
	eval(formstring)
	eval("if ("+formname+"_bad_length<1) {var success=1;}")
	if (success == 1)
		{
			var length = 0
			var params = ''
			while (document[formname].elements.length > length)
				{
					if (length==0)
						{
							params += escape(document[formname].elements[length].name)+'='+escape(document[formname].elements[length].value)
						}
					else
						{
							params += '&'+escape(document[formname].elements[length].name)+'='+escape(document[formname].elements[length].value)							
						}
					length++
				}
			document.getElementById(formname+'_errorshow2').innerHTML = params;
			do_ajax_post(formname, 2, params, 0)
		}
	else
		{
			if (document.getElementById(formname+'_errorshow'))
				{
					document.getElementById(formname+'_errorshow').innerHTML="Please correct the indicated fields";
				}
			if (document.getElementById(formname+'_errorshow2'))
				{
					document.getElementById(formname+'_errorshow2').innerHTML="Please correct the indicated fields";
				}
		}
}