function initialWebCall(elementId) {
	
	var phone = document.getElementById(elementId);
	if (navigator.appName == "Netscape") {
		document.getElementById("webcall-message").innerHTML = "Push the Anser to talk!!";
		//alert("You must be running Microsoft Internet Explorer or Use IETAB");
	}
	else {
		document.getElementById("webcall-message").innerHTML = "Initial...";
		//document.getElementById("webcall-message").innerHTML = "Initial...";
	}

	phone.attachEvent("stateChange", stateWebCall);
	var init = phone.initialPhone();
	switch (init) {
		case 0:
			document.getElementById("webcall-message").innerHTML = "Init OK!!";
			// phone.callOut();
			//alert("init OK!!" );
			break;
		case -100:
			alert("Invalid Licensed User!!");
			break;
		default:
			alert("Microsoft components is not fully installed.");
			break;
	}
	return init;
}

var oldState = 0;
function stateWebCall(newState) {
	if (newState == oldState) {
		return;
	}
	switch (newState) {
		case 3:
			//setPanelConnecting();
			document.getElementById("webcall-message").innerHTML = "撥接中......";
			break;
		case 4:
			//setPanelConnected();
			document.getElementById("webcall-message").innerHTML = "< - 通話中 - >";
			// send dtmf first by flash
			
			
			document.getElementById("webcall-anser").disabled = true;
			document.getElementById("webcall-hangup").disabled = false;
			document.getElementById("webcall-anser").style.cursor = "not-allowed";
			document.getElementById("webcall-hangup").style.cursor = "pointer";

			document.getElementById("webcall-anser").style.background = "url(./images/anser-d.bmp)";
			document.getElementById("webcall-hangup").style.background = "url(./images/hangup.bmp)";
			break;
		case 5:
			//setPanelDisconnected();
			document.getElementById("webcall-message").innerHTML = "SIP RTC1.3<br />[<a href=\"#\" onclick=\"javascript:buttonWebCall('phone', 'wizard');\" title=\"網頁電話設定精靈!!\">設定精靈</a>]";
			document.getElementById("webcall-status").innerHTML = "";
			
			document.getElementById("webcall-anser").disabled = false;
			document.getElementById("webcall-hangup").disabled = true;
			document.getElementById("webcall-anser").style.cursor = "pointer";
			document.getElementById("webcall-hangup").style.cursor = "not-allowed";

			document.getElementById("webcall-anser").style.background = "url(./images/anser.bmp)";
			document.getElementById("webcall-hangup").style.background = "url(./images/hangup-d.bmp)";
			break;
	}
	oldState = newState;
}
function buttonWebCall(elementId, buttonId) {
	var phone = document.getElementById(elementId);
	var display_memo = document.getElementById("webcall-status").innerHTML;
	if (display_memo.length > 15) {
		display_memo = display_memo.substr(1, display_memo.length);
	}
	switch (buttonId) {
		case "1":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(1);
				display_memo += "1";
			}
			break;
		case "2":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(2);
				display_memo += "2";
			}
			break;
		case "3":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(3);
				display_memo += "3";
			}
			break;
		case "4":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(4);
				display_memo += "4";
			}
			break;
		case "5":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(5);
				display_memo += "5";
			}
			break;
		case "6":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(6);
				display_memo += "6";
			}
			break;
		case "7":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(7);
				display_memo += "7";
			}
			break;
		case "8":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(8);
				display_memo += "8";
			}
			break;
		case "9":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(9);
				display_memo += "9";
			}
			break;
		case "10":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(10);
				display_memo += "*";
			}
			break;
		case "0":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(0);
				display_memo += "0";
			}
			break;
		case "11":
			if ((oldState == 3) || (oldState == 4)) {
				phone.sendDTMF(11);
				display_memo += "#";
			}
			break;
		case "wizard":
			phone.invokeWizard();
			break;
		case "callout":  // initial or huanguped
			if (( oldState == 5 )|| (oldState == 0 )) {
				phone.callOut();
			}
			break;
		case "hangup":
			if (oldState != 5) {
				phone.hangup();
			}
			break;
		case "unload":
			phone.finalPhone();
			break;
		default:
			return;
			break;
	}
	document.getElementById("webcall-status").innerHTML = display_memo;
}
