/*
CREATED: 02/12/03
GLOBAL FUNCTION SET FOR CHECKING FORMS. This file contains a 
listing of generic function set developed for checking form elements.
*/

function form_get_value(form_name,field_name) {
	//Function determines if a form field contains a value. Applicable to all text related fields.
	if (eval("document."+form_name+"."+field_name+".value")=="")
		return(false);
	else
		return(true);
}

function form_get_value_length(form_name,field_name) {
	//Function determines length of value.
	return(eval("document."+form_name+"."+field_name+".value.length"));
}

function form_return_value(form_name,field_name) {
	//function returns the value of a text/password/textarea field
	return(eval("document."+form_name+"."+field_name+".value"));
}

function form_get_selection(form_name,field_name) {
	//Function returns selected value from selection list.
	return(eval("document."+form_name+"."+field_name+"[document."+form_name+"."+field_name+".selectedIndex].value"));
}

function form_get_selection_multiple(form_name,field_name) {
	var tsm="";
	
	for (fcount=0;fcount<eval(form_name+"."+field_name+".length");fcount++) {
		if (eval(form_name+"."+field_name+"["+fcount+"].selected==true")) {
			if (tsm!="")
				tsm=tsm+", ";

			tsm=tsm+eval(form_name+"."+field_name+"["+fcount+"].value");
		}
	}

	return(tsm);
}

function form_check_selection(form_name,field_name) {
	//CHECK IF AT LEAST ONE OPTION IS SELECTED FROM SELECTION LISTING//
	var selection_ceiling=eval("document."+form_name+"."+field_name+".length");
	var checked_count=0;

	for (x=0;x<selection_ceiling;x++) {
		if (eval("document."+form_name+"."+field_name+"["+x+"].selected"))
			checked_count++;
	}

	if (checked_count==0)
		return(false);
	else
		return(true);
}

function form_update_selection_listing(form_name,field_name) {
	//function checks [field_name] against [temp_value] and turns on if found//
	var searchString=" ";
	var re=new RegExp(searchString,"g");
	var replaceStr="";

	//get existing value of current field//
	temp_value=eval(form_name+"."+field_name+"_temp.value");

	//alert("temp value: "+temp_value);

	if (temp_value!="") {
		temp_value_array=temp_value.split(',');
		for (x=0;x<temp_value_array.length;x++) {

			temp_value=temp_value_array[x];
			temp_value_formatted=temp_value.replace(re,replaceStr);

			//alert("temp_value '"+temp_value_formatted+"'");

			for (y=0;y<eval(form_name+"."+field_name+".length");y++) {
				temp_selection_value=eval(form_name+"."+field_name+"["+y+"].value");
				if (temp_selection_value==temp_value_formatted) 
					eval(form_name+"."+field_name+"["+y+"].selected=true");
			}
		}
	}
}


function form_check_radio_checkbox(form_name,field_name,field_counter) {
	//FUNCTION CHECKS IF AT LEAST ONE OPTION HAS BEEN SELECTED FROM A RADIO BUTTON LISTING//
	var checked_count=0;

	if (field_counter==1) {
		if (eval("document."+form_name+"."+field_name+".checked"))
			checked_count++;
	}
	else{
		radio_ceiling=eval("document."+form_name+"."+field_name+".length");
		for (x=0;x<radio_ceiling;x++) {
			if (eval("document."+form_name+"."+field_name+"["+x+"].checked"))
				checked_count++;
		}
	}
	
	if (checked_count==0)
		return(false);
	else
		return(true);
}

function get_radio_checkbox(form_name,field_name,field_counter) {
	//FUNCTION CHECKS IF AT LEAST ONE OPTION HAS BEEN SELECTED FROM A RADIO BUTTON LISTING//
	var checked_count=0;temp_value="";

	if (field_counter==1) {
		if (eval("document."+form_name+"."+field_name+".checked"))
			temp_value=eval("document."+form_name+"."+field_name+".value");
	}
	else{
		radio_ceiling=eval("document."+form_name+"."+field_name+".length");
		for (x=0;x<radio_ceiling;x++) {
			if (eval("document."+form_name+"."+field_name+"["+x+"].checked")) {
				if (!temp_value=="")
					temp_value=temp_value+","

				temp_value=temp_value+eval("document."+form_name+"."+field_name+"["+x+"].value");
			}
		}
	}
	
	return(temp_value);
}

function form_check_date(form_name,field_prefix,allow_default,default_value) {
	var check_day=eval("document."+form_name+"."+field_prefix+"_day[document."+form_name+"."+field_prefix+"_day.selectedIndex].value");
	var check_month=eval("document."+form_name+"."+field_prefix+"_month[document."+form_name+"."+field_prefix+"_month.selectedIndex].value");
	var check_year=eval("document."+form_name+"."+field_prefix+"_year[document."+form_name+"."+field_prefix+"_year.selectedIndex].value");

	if (((check_day==default_value) && (check_month==default_value)  && (check_year==default_value) && (allow_default==1)) || ((check_day!=default_value) && (check_month!=default_value)  && (check_year!=default_value)))
			return(true);
	else
			return(false);
}

function form_check_special_characters(form_name,field_name,space_flag) {
	//CHECK IF ANY NON ALPHANUMERICAL CHARACTERS ARE IN FORM ELEMENT
	if (space_flag==1)
		var special_characters="!@#$%^&*()-_=+\\|/;:\"\' ";
	else
		var special_characters="!@#$%^&*()-_=+\\|/;:\"\'";
	var dud=0;
	upper_limit=eval("document."+form_name+"."+field_name+".value.length");
	for (var x=0;x<upper_limit;x++) {
		temp_string=eval("document."+form_name+"."+field_name+".value.substring(x,x+1)");
		if (special_characters.indexOf(temp_string)!=-1)
				dud++;	}

	if (dud>0)
		return(false);
	else
		return(true);
}

function form_check_numerical(form_name,field_name) {
	//check for numerical values in form value.
	var numstr="0123456789";
	var counter=0;
	upper_limit=eval("document."+form_name+"."+field_name+".value.length");
	for (var x=0;x<upper_limit;x++) {
			thisChar=eval("document."+form_name+"."+field_name+".value.substring(x,x+1)");
			if (numstr.indexOf(thisChar)==-1)
			counter++; }
	return(counter);
}

function form_check_currency(form_name,field_name) {
	//check for currency values in form field.
	var numstr=".0123456789";
	var counter=0;
	upper_limit=eval("document."+form_name+"."+field_name+".value.length");
	for (var x=0;x<upper_limit;x++) {
			thisChar=eval("document."+form_name+"."+field_name+".value.substring(x,x+1)");
			if (numstr.indexOf(thisChar)==-1)
			counter++; }
	return(counter);
}

function form_check_email(form_name,field_name) {
	var current_value=eval("document."+form_name+"."+field_name+".value");
	if ((current_value.indexOf(".")==-1) || (current_value.indexOf("@")==-1))
		return(false);
	else
		return(true);
}

function form_cancel(temp_url) {
	//cancel current action and redirect to temp_url
	if (confirm("Cancel current action?"))
		self.location=temp_url;
}

function set_focus(form_name,field_name){
	setTimeout("form_focus_element('"+form_name+"','"+field_name+"')",0);
}

function form_focus_element(form_name,field_name) {
	var elem=document.forms[form_name].elements[field_name];
	elem.focus();
}
