// [MODULE-HEADER]
// *************************************************************************************************
//
// Name:				ShoWarePageBase.js
//
// Created:			12/9/2003 VisionOne AG, St Gallen fbe
// Modified:		02/08/2007 VisionOne AG, St. Gallen lbo	: New function ShoWarePageBase_Round
// Modified:		12/9/2003 VisionOne AG, St Gallen fbe	: Creation
//
// *************************************************************************************************


//
// Default Button handling
//
function ShoWarePageBase_DoDefaultButton(e, buttonName)		
{	
	if (!e)
		e = window.event;			
		
	var target = (e.target) ? e.target : e.srcElement;
	if (target && target.type)
	{
		if (target.type == "textarea" || 
			target.type =="button" || 
			target.type =="submit" )
		{
			return true;
		}
	}
							
	var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;			
	if (keyCode == 13)
	{	
		document.forms[0][buttonName].focus();
		document.forms[0][buttonName].click();				
		return false;
	}
	
	return true;	
}

function ShoWarePageBase_Round(value, roundPrecision, roundType)
{
	var result;

	switch (roundPrecision)
	{
		case 1:		//RoundPrecision.To_1_00
			result = value;
			break;
		case 2:		//RoundPrecision.To_0_50
			result = value * 2;
			break;
		case 3:		//RoundPrecision.To_0_10
			result = value * 10;
			break;
		case 4:		//RoundPrecision.To_0_05
			result = value * 20;
			break;
		case 5:		//RoundPrecision.To_0_01
		default:	//RoundPrecision.To_0_01:
			result = value * 100;
			break;
	}

	switch (roundType)
	{
		case 0:		//RoundType.Commercial
			result = Math.round(result);
			break;
		case 1:		//RoundType.AlwaysUp
			result = Math.ceil(result);
			break;
		case 2:		//RoundType.AlwaysDown
			result = Math.floor(result);
			break;
	}

	switch (roundPrecision)
	{
		case 1:		//RoundPrecision.To_1_00
			break;
		case 2:		//RoundPrecision.To_0_50
			result = result / 2;
			break;
		case 3:		//RoundPrecision.To_0_10
			result = result / 10;
			break;
		case 4:		//RoundPrecision.To_0_05
			result = result / 20;
			break;
		default:	//RoundPrecision.To_0_01
			result = result / 100;
			break;
	}

	return result;
}