var CurrentTextbox=new Object();

function textBox_select(p_objRef)
{
	if (p_objRef != null)
	{
		p_objRef.select();
	}
}

function textBox_keypress(p_objEvent){
	
	var keyCode = parseInt(p_objEvent.keyCode)
	p_objEvent.returnValue=true;
	if (check4RestrictedCharacter(keyCode, p_objEvent.srcElement.restrictedCharacters)) 
	{
		p_objEvent.returnValue=false; return;
	}
	if (check4AllowedCharacter(keyCode, p_objEvent.srcElement.allowedCharacters)) 
	{
		p_objEvent.returnValue=false; return;
	}
	if (!check4ValueTypeKey(keyCode, p_objEvent.srcElement.valueType))
	{
		p_objEvent.returnValue=false; return;
	}
}

function check4RestrictedCharacter(p_intKeyCode, p_strRestrictedCharacters)
{
	if (typeof(p_strRestrictedCharacters) != "string") return false;
	
	var stringLength = p_strRestrictedCharacters.length;
	for (var i=0;i<stringLength;i++)
	{
		if (p_strRestrictedCharacters.charCodeAt(i) == p_intKeyCode) return true;
	}
	return false;	
}

function check4AllowedCharacter(p_intKeyCode, p_strAllowedCharacters)
{
	if (typeof(p_strAllowedCharacters) != "string") return false;
	
	var returnValue = true;
	var stringLength = p_strAllowedCharacters.length;
	for (var i=0;i<stringLength;i++)
	{
		if (p_strAllowedCharacters.charCodeAt(i) == p_intKeyCode) 
		{
			returnValue = false;
			break;
		}
	}
	return returnValue;	
}

function check4ValueTypeKey(p_intKeyCode, p_strValueType)
{
	if (p_intKeyCode ==  13) return true;	// ENTER
	switch (p_strValueType)
	{
		case "String":
		{
			return true;
			break;
		}
		case "Integer":
		{
			if (check4Numeric(p_intKeyCode) || check4Sign(p_intKeyCode) || check4Thousandseparator(p_intKeyCode)) return true;
			break;
		}
		case "Decimal":
		{
			if (check4Numeric(p_intKeyCode) || check4Sign(p_intKeyCode) || check4Thousandseparator(p_intKeyCode) || check4Decimalpoint(p_intKeyCode)) return true;
			break;
		}
		case "Date":
		{
			if (check4Numeric(p_intKeyCode) || check4DateDelimiter(p_intKeyCode)) return true;
			break;
		}
	}	
	return false;
}

function check4Numeric(p_intKeyCode)
{
	switch (p_intKeyCode) {
		case 48 : break;	// 0
		case 49 : break;	// 1
		case 50 : break;	// 2
		case 51 : break;	// 3
		case 52 : break;	// 4
		case 53 : break;	// 5
		case 54 : break;	// 6
		case 55 : break;	// 7
		case 56 : break;	// 8
		case 57 : break;	// 9
		default : return false;
	}
	return true;
}

function check4Sign(p_intKeyCode)
{
	switch (p_intKeyCode) {
		case 43 : break;	// +
		case 45 : break;	// -
		default : return false;
	}
	return true;
}

function check4Thousandseparator(p_intKeyCode)
{
	var ascValue = clientFormatThousandSeparator.charCodeAt(0);
	switch (p_intKeyCode) {
		case ascValue : break;	// ThousandSeparator
		default : return false;
	}
	return true;
}

function check4Decimalpoint(p_intKeyCode)
{
	var ascValue = clientFormatDecimalPoint.charCodeAt(0);
	switch (p_intKeyCode) {
		case ascValue : break;	// DecimalPoint
		default : return false;
	}
	return true;
}

function check4DateDelimiter(p_intKeyCode)
{
	var ascValue = clientFormatDateDelimiter.charCodeAt(0);
	switch (p_intKeyCode) {
		case ascValue : break;	// DateDelimiter
		default : return false;
	}
	return true;
}

function textBox_convert2Uppercase(p_objEvent)
{
	var keyCode = parseInt(p_objEvent.keyCode)

	l_nkeyCode = keyCode;
	if (keyCode >= 97 && keyCode <= 122) l_nkeyCode = keyCode - 32;
	if (keyCode >= 224 && keyCode <= 254) l_nkeyCode = keyCode - 32;
	p_objEvent.keyCode = l_nkeyCode;
	
}

function textBox_convert2Lowercase(p_objEvent)
{
	var keyCode = parseInt(p_objEvent.keyCode)

	l_nkeyCode = keyCode;
	if (keyCode >= 65 && keyCode <= 90) l_nkeyCode = keyCode + 32;
	if (keyCode >= 192 && keyCode <= 222) l_nkeyCode = keyCode + 32;
	p_objEvent.keyCode = l_nkeyCode;
	
}

function textBox_inputMask(p_objEvent)
{
	// Baustelle
	return;
	
	var result = webserviceExecute("DnxWebServiceListenerDataFormatter.asmx", "InputMask", false, p_objEvent.srcElement.value, p_objEvent.srcElement.valueType, p_objEvent.srcElement.valueLength, p_objEvent.srcElement.decimalsLength);
	if (!result.Error)
	{
		p_objEvent.srcElement.value = result.returnValue;
	}
	else
	{
		alert(result.errorString);
	}
}

