/*
* This file contains a collection of java script function that assist
* in setting up a form request. These function require your page form
* to include hidden fields. The required fields are specified in front of the
* function.
* The input action is required for each function
*   <input name="action" type="hidden">
*
* Before submit of most of the functions is done
* it is needed to clear the parameters "forward","forwardPage"
* this might have been set by prior action !!
*/
var validActions= ["qbf","qbfClear","dsScrollNext","dsScrollLast","dsScrollPrevious","dsScrollFirst","save","saveAll","update","insert","delete","deleteSelected","logout","login","pageNavigate","dsSort","undo","undoAll"];

/*
*  qbf,qbfClear
* dsScrollNext,dsScrollLast,dsScrollPrevious,dsScrollFirst
* save,saveAll,update,insert,delete,logout,login
*/
function vsAction(action,form) {
	clearForwards(form);
	if ( formIsValid(form, new Array("action"),action) )	{
		form.action.value = action;
		form.submit();
	}
}

function vsActionOnBean(action,dataBeanName,form) {
	clearForwards(form);
	if ( formIsValid(form, new Array("action","dataBeanName"),action) )	{
		form.action.value = action;
		form.dataBeanName.value = dataBeanName;
		form.submit();
	}
}

//  <input name="forward" type="hidden">
//  <input name="action" type="hidden">
function vsForward(fwd,form) {
	if ( formIsValid(form, new Array("action","forward"),"pageNavigate") )	{
		form.action.value = "pageNavigate";
		form.forward.value = fwd;
		form.submit();
	}
}

//  <input name="action" type="hidden">
//  <input name="sortColumnName" type="hidden">
function dsSort(sortColumnName,form) {
	if ( formIsValid(form, new Array("sortColumnName", "action"),"dsSort") )	{
		form.sortColumnName.value=sortColumnName;
		form.action.value="dsSort";
		form.submit();
	}
}

//  <input name="action" type="hidden">
//  <input name="sortColumnName" type="hidden">
function dsSortOnBean(sortColumnName,dataBeanName,form) {
	if ( formIsValid(form, new Array("sortColumnName", "action","dataBeanName"),"dsSort") )	{
		form.sortColumnName.value=sortColumnName;
		form.dataBeanName.value = dataBeanName;
		form.action.value="dsSort";
		form.submit();
	}
}

/*
* global functions
*/
function pickWindow(url, width, height) {
	var w = ( width == null ) ? 400 : width;
	var h = ( height == null ) ? 370 : height;

	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars=yes,resizable=yes';
	/**,toolbar=yes,location=yes,status=yes,menubar=yes';*/
	var win = window.open(url, '_blank', winprops);
	win.window.focus();
}

function dateWindow(url, width, height) {
	var w = ( width == null ) ? 400 : width;
	var h = ( height == null ) ? 370 : height;

	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars=no,resizable=no';
	/**,toolbar=yes,location=yes,status=yes,menubar=yes';*/
	var win = window.open(url, '_blank', winprops);
	win.window.focus();
}

function formIsValid(form, elements,action) {
	if ( form == null )	{
		alert("vsStrutsFunctions.js - >Specified form is null");
		return false;
	}
	/* check whether the action is supported*/
	var actionIsValid = false;
	for ( i=0;i<validActions.length;i++ )	{
		if(validActions[i] == action) {
			actionIsValid=true;
			break;
		}
	}
	if(!actionIsValid) {
		alert("vsStrutsFundctions2.js - >action:" + action + " not supported");
		return false;
	}
	for ( i = 0; i < elements.length; i++ )	{
		if ( form.elements[elements[i]] == null ) {
			alert("vsFundctions.js - >Required form element (\"" + elements[i] + "\") is missing");
			return false;
		}
	}
	return true;
}

function clearForwards(form) {
	if ( form == null )	{
		alert("vsFunctions.js - >Specified form is null");
		return false;
	}
	if ( form.elements['forward'] != null ) {
		form.forward.value='';
	}
	if ( form.elements['forwardPage'] != null ) {
		form.forwardPage.value='';
	}
	return true;
}
