/* 
 * Javascript functions to be used in conjunction with
 * the tuwa:button taglib and adaptive flows (or similar).
 * Example of usage in jsp-file:
 * 
 * <html:form action="/bestall/adaptiveflow/step.do">
 * <html:hidden property="command" value="error"/>
 * ...
 * <tuwa:button type="clear" href="javascript:btnClear(document.adaptiveForm);"/>
 * </html:form>
 * 
 *
 * @author Bokedal, Calle (cabo02)
 *
 * Change History <br>
 * Date       Author Comment <br>
 * ---------- ------ ---------------------------------------------- <br>
 * 2005-06-03 cabo02 Initial version.
 * 2005-06-16 cabo02 Removed undefined check to get script to work on old browsers.
 *                   NOTE! Previous impl. check was supported by ECMA-262.
 * 2005-06-23 cabo02 Updated btnPrint function.
 * 2005-09-12 cabo02 Renamed form element "method" to "command" to prevent Safari bug. 
 * 2008-08-26 rasu01 Added dynamic help text inclusion for the adaptive flow CTCQ00019974 
 * 2008-09-01 rasu01 Added enter key listener for next action CTCQ00020016 
 */
 
/*
* Enter key triggers next step
*/
document.onkeydown = nextEventTrigger;
		
function nextEventTrigger(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	
	if(window.event) {
		keynum = evt.keyCode;
	}
	else if(evt.which)   {
		keynum = evt.which;
	}
	
	if(1*keynum == 13) {
		btnNext(document.adaptiveForm);
		return false;
	}
	return true;
}	
 
/*
 * "Public" functions to handle flow buttons
 */
function btnClear(formObj)			{handleButton(formObj,'clear');}
function btnPrevious(formObj)	{handleButton(formObj,'previous');}
function btnNext(formObj)			{handleButton(formObj,'next');}
function btnCancel(formObj)		{handleButton(formObj,'cancel');}
function btnOrder(formObj)		{handleButton(formObj,'order');}
function btnEdit(formObj,name)	{handleEditButton(formObj,'edit',name);}
function btnInit(formObj,name)	{handleButton(formObj,'init');}
function btnPrint(pageURL)		{
	window.open(pageURL, "PrintingWindow", "toolbar=no,location=no,directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=600,height=800,top=10,left=10");
}
 
/*
 * "Private" function
 * Handles a button click. Updates 'method' property in form 
 * (Not the form method, but the property method in the form).
 * Parameters:
 * formObj - a form object
 * cmd - The command to set
 * Note: 
 *  - Avoid using this function directly from any jsp page!
 */
function handleButton(formObj,cmd) {
	formObj.command.value = cmd;
	
	if(formObj.sl) {
		var state = "";
		
		// Set sl-parameter
		if(formObj.jspstate) {state = formObj.jspstate.value;}
		else {state = "setup";}
		formObj.sl.value = state + "_" + formObj.OID.value + "_" + cmd;
	}
	formObj.submit();
}

/*
 * Private function to handle edit of a state.
 */
function handleEditButton(formObj,cmd,name) {
	formObj.tostate.value = name;
	handleButton(formObj,cmd);
}

document.write('<script type="text/javascript" src="/include/scripts/helpTextScript.js"></sc' + 'ript>'); 