

var str;
var showAlert;


function RestrictContent(t,evt,setstr,setalert)
{
	str = setstr; 
	showAlert = setalert; 

	evt=(evt)?evt:((event)?event:null);
	
	if(!evt)
		return true;
	
	if (!t.maxlength_orig && t.getAttribute && t.getAttribute('maxLength'))
	{
		t.maxlength_orig = parseInt(t.getAttribute('maxLength'));
		t.setAttribute('maxLength', t.maxlength_orig + 10);
		t.onblur=RestrictCheckKeyUp;
		t.onkeypress=RestrictCheckKeyDown;
		t.onkeyup=RestrictCheckKeyUp;
	}
}




function RestrictCheckContent(t,evt,str,repl,maxlength)
{
	evt=(evt)?evt:((event)?event:null);
	
	if(!evt) 
		return true;
		
	var isOpera = navigator.userAgent.indexOf("Opera") > -1;
	var isIE = navigator.userAgent.indexOf("MSIE") > 1 && !isOpera;
	var isMoz = navigator.userAgent.indexOf("Mozilla/5.") == 0 && !isOpera;
	var kc = evt.keyCode;
	
	if (isMoz) 
	{
		if ( evt.keyCode ) 
		{
			switch (kc) 
			{
				case 38:case 40:case 37:case 39:case 33:case 34:case 36:case 35:case 13:case 9:case 27:case 16:case 17:case 18:case 20:case 8:case 46:
					return true;
			}
		}
		
		var cc = evt.charCode;
		var c = String.fromCharCode(cc);
	}
	else if (isIE) 
	{
		var kc = evt.keyCode;
		
		if ( kc < 32 )
		{
			return true;
		}
		
		var c = String.fromCharCode(kc);
	}
	else 
	{
		return true;
	}
	
	if (evt.type == "keypress") 
	{

		if (str.indexOf(c) < 0) 
		{

			// Show Alert
			if(showAlert != undefined)
				alert(showAlert);

			return false;
		}
		else 
		{
			if (maxlength==null) 
			{
				return true;
			}
			else
			{
				return (t.value.length<maxlength);
			}
		}
	}
	else if (repl && evt.type == "keyup") 
	{
		switch (kc) 
		{	
			case 222:
			t.value = t.value.replace(/ä/g,"ae");
			t.value = t.value.replace(/Ä/g,"Ae");
			break;
			
			case 192:
			t.value = t.value.replace(/ö/g,"oe");
			t.value = t.value.replace(/Ö/g,"Oe");
			break;
			
			case 186: case 59:
			t.value = t.value.replace(/ü/g,"ue");
			t.value = t.value.replace(/Ü/g,"Ue");
			break;
			
			case 219:
			t.value = t.value.replace(/ß/g,"ss");
		}
	}
	else if (repl) 
	{
		t.value = t.value.replace(/ä/g,"ae");
		t.value = t.value.replace(/Ä/g,"Ae");
		t.value = t.value.replace(/ö/g,"oe");
		t.value = t.value.replace(/Ö/g,"Oe");
		t.value = t.value.replace(/ü/g,"ue");
		t.value = t.value.replace(/Ü/g,"Ue");
		t.value = t.value.replace(/ß/g,"ss");
	}
}


function RestrictCheckKeyUp(evt)
{
	evt=(evt)?evt:((event)?event:null);
	
	if(!evt)
		return true;
	
	t=(evt.target) ? evt.target : evt.srcElement;
	
	var i;
	var r='';
	var modify=0;
	for (i=0; i<t.value.length; i++)
	{
		var c = t.value.charAt(i);
		
		if (str.indexOf(c) >= 0)
		{
			r+=c;
		}
		else 
		{
			modify=1;
		}
	}
	
	if ((modify==1) || (t.value.length>t.maxlength_orig))
	{
		t.value = r.substr(0,t.maxlength_orig);
	}
}


function RestrictCheckKeyDown(evt)
{

	evt=(evt)?evt:((event)?event:null);
	
	if(!evt) 
		return true;
	
	t=(evt.target) ? evt.target : evt.srcElement;
		return RestrictCheckContent(t,evt,str,true,t.maxlength_orig+1);
}

