var lastResult;
var lastOperator;
var txtClearNeeded;
var td;
var TextOldValue;
function initCal(obj){
	td = obj;
	lastResult = 0;
	lastOperator = "+";
	txtClearNeeded = true;
	var objDiv = document.getElementById("divCalculator");
	var x = obj.offsetLeft;
	var y = obj.offsetTop;
	while(obj = obj.offsetParent){
				x += obj.offsetLeft;
				y += obj.offsetTop;
			}
	objDiv.style.left = x-5;
	objDiv.style.top = y+25;
	showCal(true);
	
	var txt = document.getElementById("inputText");
	TextOldValue = txt.value;
}

function showCal(show){
	var objDiv = document.getElementById("divCalculator");
	if(show){
		objDiv.style.display = "block";
		//objDiv.focus();
	}
	else{
		objDiv.style.display = "none";
	}	
}

function input(c){
	switch(c){
		case 'C':
			lastResult = 0;
			lastOperator = "+";
			txtClearNeeded = true;
			setValue(0);
			break;
		case 'B':
			setText(getText().substring(0, getText().length-1));
			break;
		case '+':
			setOperator('+');
			break;
		case '-':
			setOperator('-');
			break;
		case '*':
			setOperator('*');
			break;
		case '/':
			setOperator('/');
			break;
		case '=':
			doCalculate('=');
			showCal(false);
			var txt = document.getElementById("inputText");
			txt.parentElement.innerHTML = txt.value;
			//td.onmouseover = function() {showcalculator(this);};
			//¸üÐÂ
			if(parseInt(TextOldValue) != parseInt(txt.value))
			{
				
				var trid = td.parentElement;
				updateOrder(trid);
				/*var id = trid.id.substring(3,trid.id.length);
				var sql;
				var fid;
				for(var i = 0 ; i < td.parentElement.cells.length -1; i++)
				{
					fid = trid.parentElement.rows(1).cells(i).id;
					if(fid)
					{
						sql +="\n"+ fid +"='" + trid.cells(i).innerText +"'\n";
					}
				}
					alert(sql);*/
			}
			break;
		default:
			if(txtClearNeeded) setText(c);
			else setText(getText()+c);
			txtClearNeeded = false;
			break;
	}
}

function setOperator(operator){
	doCalculate();
	lastOperator = operator;
	txtClearNeeded = true;
}

function doCalculate(){
	var result;
	var operand = getValue();
	switch(lastOperator){
		case '+':
			result = lastResult + operand;
			break;
		case '-':
			result = lastResult - operand;
			break;
		case '*':
			result = lastResult * operand;
			break;
		case '/':
			result = lastResult / operand;
			break;
	};
	setValue(result);
	lastResult = result;
}

function setText(str){
	var txt = document.getElementById("inputText");
	txt.value = str;
	//txt.value = (str=="NaN" ? "0":str);
}

function getText(){
	var txt = document.getElementById("inputText");
	return txt.value;
	//return txt.value;
}

function setValue(val){
	setText(val);
}

function getValue(){
	str = getText();
	if(str == "") str = "0";
	return parseFloat(str);
}
function onKeyUp(ctrl, event){
	if(event.keyCode == 9 || event.keyCode == 16) return; // TAB or SHIFT+TAB
	ctrl.value = ctrl.value.replace(/[^\d|^\.]/g,'');
}

function onBeforePaste(ctrl){
	ctrl.value = ctrl.value.replace(/[^\d|^\.]/g,'')
}