function getXYpos(elem) {
   if (!elem) {
      return {"x":0,"y":0};
   }
   var xy={"x":elem.offsetLeft,"y":elem.offsetTop}
   var par=getXYpos(elem.offsetParent);
   for (var key in par) {
      xy[key]+=par[key];
   }
   return xy;
}


function check_status(prefix)
{
	imgKeyboard = MM_findObj(prefix+':imgKeyboard');
	imgPos = getXYpos(imgKeyboard);
	dvKeyboard = MM_findObj(prefix+':dvKeyboard'); 
	dvKeyboard.style.left = imgPos.x;
	dvKeyboard.style.top = imgPos.y+20;
	
	var keyboardStatus=MM_findObj(prefix+':keyboardStatus');
	if (keyboardStatus.value=='1')
	{
		hide_keyboard(prefix);
		dvKeyboard.style.display = "none";
	}
	else
	{
		dvKeyboard.style.display = "block";
		show_keyboard(prefix);
	}
}
function show_keyboard(prefix)
{
	prefix = prefix +':';	
	var keyboardStatus=MM_findObj(prefix+'keyboardStatus');
	keyboardStatus.value ='1';
	var dvKeyboard=MM_findObj(prefix+'dvKeyboard');
	dvKeyboard.style.backgroundColor ='#ffffff';	
	var imgKeyboard=MM_findObj(prefix+'imgKeyboard');
	imgKeyboard.src = 'image/keyboard-on.gif';		
				
	for(i=1;i<=80;i++)
	{
		var b=prefix+'a'+ i;
		var table=MM_findObj(b);
		if (table!=null)
			table.style.visibility='visible';
	}
}
function hide_keyboard(prefix)
{
	prefix = prefix +':';
	var keyboardStatus=MM_findObj(prefix+'keyboardStatus');
	keyboardStatus.value ='0';	
	var dvKeyboard=MM_findObj(prefix+'dvKeyboard');
	dvKeyboard.style.backgroundColor ='';		
	var imgKeyboard=MM_findObj(prefix+'imgKeyboard');
	imgKeyboard.src = 'image/keyboard.gif';		
	for(i=1;i<=80;i++)
	{
		var b=prefix+'a'+ i;
		var table=MM_findObj(b);
		if (table!=null)
			table.style.visibility='hidden';
	}
}
function hi_color(t)
{
	MM_findObj(t).style.background='B6D1E6'; 
}
function lo_color(t)
{
	MM_findObj(t).style.background='e3e3e3'; 
}

/****************************************  Insert text at caret position  *************************************/
function setTextValue(prefix,s)
{
	var txt = MM_findObj(prefix+'_txtValue');
	if (txt != null)
	{
		insertAtCursor(txt, s);
	}
}

function backspaceClick(prefix)
{
	var txt = MM_findObj(prefix+'_txtValue');
	if (txt != null)
	{
		backAtCursor(txt);
	}
}

function insertAtCursor(myField, myValue) 
{
	if (document.selection) 
	{
		var temp;
		myField.focus();
		var sel=document.selection.createRange();
		temp=0; //sel.text.length;
		sel.text=myValue;
		if (myValue.length==0)
		{
			sel.moveStart('character',myValue.length);
			sel.moveEnd('character',myValue.length);
		}
		else 
		{
			sel.moveStart('character',-myValue.length+temp);
		}
		//sel.select();
	}
	else if (myField.selectionStart || myField.selectionStart=='0')
	{
		var startPos=myField.selectionStart;
		var endPos=myField.selectionEnd;
		myField.value=myField.value.substring(0,startPos)+myValue+myField.value.substring(endPos,myField.value.length);
		myField.selectionStart=startPos+myValue.length;
		myField.selectionEnd=startPos+myValue.length;
		myField.focus();
	}
	else
	{
		myField.value+=myValue;
	}
}



function backAtCursor(myField)
{
	if (document.selection)
	{
		myField.focus();
		sel=document.selection.createRange();
	
		if(sel.text.length>0)
		{ 
			sel.text='';
		}
		else
		{
			sel.moveStart('character',-1); 
			sel.text='';
		}
		sel.select();
	}
	else if (myField.selectionStart || myField.selectionStart == '0')
	{
		var startPos=myField.selectionStart;
		var endPos=myField.selectionEnd;
		myField.value=myField.value.substring(0,startPos-1)+myField.value.substring(endPos,myField.value.length);
		myField.selectionStart=startPos-1;
		myField.selectionEnd=startPos-1;
		myField.focus();
	}
	else
	{
		myField.value=myField.value.substr(0,(myField.value.length-1));
		myField.focus();
	}
}
