function formHelperFunctions_checkFieldValue(field,type,value)
{
	if($j("INPUT[name='"+ field +"']").size() > 0)
	{
		if($j("INPUT[name='"+ field +"']").size() > 1 && $j("INPUT[name='"+ field +"']").attr('type') == 'hidden')
		{
			//We have a checkbox. Now lets check if we want it checked, or want it to not be checked.
			if(type == '==')
				return $j("INPUT[name='" + field + "'][value='" + value + "']").attr('checked');
			else
				return !$j("INPUT[name='" + field + "'][value='" + value + "']").attr('checked');
		} else if($j("INPUT[name='"+ field +"']").attr('type') == 'radio')
		{
			//We have a radio. Now lets check if we want it selected, or want it to not be selected.
			if(type == '==')
				return $j("INPUT[name='" + field + "'][value='" + value + "']").attr('checked');
			else
				return !$j("INPUT[name='" + field + "'][value='" + value + "']").attr('checked');
		} else {
			//We have an input box. Now lets check if we want it to be the same, or not the same.
			if(type == '==')
				return $j("INPUT[name='" + field + "']").attr('value') == value;
			else
				return $j("INPUT[name='" + field + "']").attr('value') != value;
		}
	} else {
		//We have select box.  Now lets check if we want it to be the same, or not the same.
		if(type == '==')
			return $j("SELECT[name='" + field + "'] option[value='" + value + "']").attr('selected');
		else
			return !$j("SELECT[name='" + field + "'] option[value='" + value + "']").attr('selected');
	}
}

function formHelperFunctions_showHideGroups(thisElement)
{
	action = '';
	if($j(thisElement).children("img:first").hasClass('btn_show'))
		action = 'show';
	else
		action = 'hide';
	$j(thisElement).children("img").each(function() {
		if(action == 'show')
			$j(this).removeClass("btn_show").addClass("btn_hide");
		else
			$j(this).removeClass("btn_hide").addClass("btn_show");
	});
	$j(thisElement).parent().next("div.fieldList").each(function() {
		if(action == 'show')
			$j(this).slideDown("slow");
		else
			$j(this).slideUp("slow");
	});	
}

function formHelperFunctions_treeLookup(fieldName, element, ajaxNumber)
{
	currentValue = $j(element).val();
	$j("INPUT[name='" + fieldName +"']").val("");
	$j("INPUT[name='helper." + fieldName +"']").val(currentValue);
	
	$j('#ajax_form_' + ajaxNumber).find("INPUT[name='value']").val(currentValue);
	$j('#ajax_form_' + ajaxNumber).submit();
}
function formHelperFunctions_treeLookupMulti(ajaxNumber, level, element)
{	
	if($j(element).attr('checked'))
		currentValue = $j(element).val();
	else
		currentValue = '';
	
	checkboxList = '';
	$j("#ajax_div_"+ajaxNumber).find("table:eq(0)").find("tr:eq(1)").find("td:eq(" + level + ")").find("div:eq(0)").find("div").each(function() {
		allChecked = 1;
		$j(this).find("input").each(function() {
			if($j(this).attr("value") != "all") {
				if ($j(this).is(":checked")) {
					checkboxList += ',' + this.value;
				} else {
					allChecked = 0;	
				}
			}
		});
		if(allChecked)
			$j(this).find("input[value=all]").attr("checked",true);
		else
			$j(this).find("input[value=all]").attr("checked",false);
	});
	if(checkboxList != '')
		checkboxList = checkboxList.substring(1, checkboxList.length);
	
	$j('#ajax_form_' + ajaxNumber).find("INPUT[name='value']").val(checkboxList);
	$j('#ajax_form_' + ajaxNumber).find("INPUT[name='level']").val(level);
	$j('#ajax_form_' + ajaxNumber).find("INPUT[name='specificSelected']").val(currentValue);
	$j('#ajax_form_' + ajaxNumber).submit();
	filterCheckListBox($j(element).parents("td:eq(0)"));
}

function filterCheckListBox(parentElement)
{
	var value = $j(parentElement).find("input[name='filter']").val();
	value = value.toLowerCase();
	$j(parentElement).find("span").hide();
	$j(parentElement).find("span").filter(function(index) {
        var attr = $j(this).attr('title');
        return !attr || attr.toLowerCase().indexOf(value) != -1 || $j(this).find("input:checked").size() == 1;
    }).show();
}


timeoutVariables['foreignKeyFilter'] = -1;
function formHelperFunctions_foreignKeyFilter(field, ajaxNumber, element, value)
{
	if(timeoutVariables['foreignKeyFilter'] != -1)
		clearTimeout(timeoutVariables['foreignKeyFilter']);
	timeoutVariables['foreignKeyFilter'] = setTimeout(function() {
		formHelperFunctions_foreignKeyFilter_Run(field, ajaxNumber, element, value)
	},200);
	
}

function formHelperFunctions_foreignKeyFilter_Run(field, ajaxNumber, element, value)
{	
	currentSelected = $j("INPUT[name='" + field + "']").val()
	$j('#ajax_form_' + ajaxNumber).find("INPUT[name='filterValue']").val(value);
	$j('#ajax_form_' + ajaxNumber).find("INPUT[name='selectedValues']").val(currentSelected);
	$j('#ajax_form_' + ajaxNumber).submit();
}

function formHelperFunctions_foreignKeySelect(fieldName,ajaxNumber)
{
	selectedValues = '';
	$j("#ajax_div_"+ajaxNumber).find("input").each(function() {
		if ($j(this).is(":checked")) {
			if (selectedValues == '') {
				selectedValues += this.value;
			}
			else {
				selectedValues += ',' + this.value;
			}
		}
	});
	$j("INPUT[name='" + fieldName + "']").val(selectedValues);
}


