// Copyright 2008 InGenius Software Inc.

var TextDisplayID="TextDisplay";var ModelNumber="";var NeedsDoubleClick=false;var FirmwareVersion="";var PhoneHasDateBug=false;var div_key_map=["","SK74","SK76","SK78","","","","","","","","","SK75","SK77","SK79"];var native_key_label_name_map;var native_key_label_name_map_default=[1,2,3,12,13,14];var native_key_label_name_map_0102=[1,3,13,2,12,14];var screenkey_to_buttons_index=new Array(15);function SetAppsLinkMode(){if(parent.TelML){try{TelML=parent.TelML;TelMLEvent=parent.TelMLEvent;TelMLEvent.OnButtonPress=HandleAppsLinkKeyPress;TelMLEvent.OnTelephonyNotIdle=HandleTelephonyNotIdle;TelMLEvent.OnTelephonyIdle=HandleTelephonyIdle;if(ModelNumber=="")
ModelNumber=TelML.LowLevel.GetModelNumber();if(ModelNumber<"5340")
NeedsDoubleClick=true;if(FirmwareVersion==""){FirmwareVersion=TelML.LowLevel.GetFirmwareVersion();if(FirmwareVersion>="01.02.00.00"&&FirmwareVersion<"01.03.00.00")
PhoneHasDateBug=true;if(FirmwareVersion>="01.02.00.00"&&ModelNumber>="5340"){native_key_label_name_map=native_key_label_name_map_0102;}
else{native_key_label_name_map=native_key_label_name_map_default;}
LoadScreenkeyToButtonsIndex();}
for(var ButtonIndex=0;ButtonIndex<TelML.Buttons.Count();++ButtonIndex){var ButtonObj=TelML.Buttons.Item(ButtonIndex);if(ButtonObj.GetTelephonyKeyName().indexOf("PK")==-1)
ButtonObj.SetAutoEvent(3,ButtonIndex);if(ButtonObj.GetKeyName().indexOf("SCREENKEY")!=-1)
ButtonObj.SetAutoEvent(0,null);if(ButtonObj.GetKeyName().indexOf("Previous")!=-1||ButtonObj.GetKeyName().indexOf("Home")!=-1||ButtonObj.GetKeyName().indexOf("Next")!=-1)
ButtonObj.SetAutoEvent(0,null);}}catch(error){}}}
function LoadScreenkeyToButtonsIndex(){for(var i=1;i<=14;i++){if(i==4){i=12;}
var button=TelML.Buttons.Item("SCREENKEY"+i.toString());if(button)
screenkey_to_buttons_index[i]=button.GetIndex();}}
function GetZeroBasedScreenkeyIndex(screenkeyIndex){if(screenkeyIndex<1||screenkeyIndex>14||(screenkeyIndex>3&&screenkeyIndex<12))
return screenkeyIndex;var result;if(screenkeyIndex>4){result=screenkeyIndex-9;}
else{result=screenkeyIndex-1;}
return result;}
function GetScreenkeyFromZeroBasedIndex(zeroBasedIndex){if(zeroBasedIndex<0||zeroBasedIndex>5)
return zeroBasedIndex;var result;if(zeroBasedIndex>2){result=zeroBasedIndex+9;}
else{result=zeroBasedIndex+1;}
return result;}
function ConvertTelMLButtonIndex(telml_i,inverse){if(telml_i<1||telml_i>14||(telml_i>3&&telml_i<12))return telml_i;var result=null;if(inverse){for(var x=0;x<native_key_label_name_map.length;x++){if(native_key_label_name_map[x]==telml_i){result=GetScreenkeyFromZeroBasedIndex(x);break;}}
if(result==null){result=telml_i;}}
else{result=native_key_label_name_map[GetZeroBasedScreenkeyIndex(telml_i)];}
return result;}
function HandleTelephonyNotIdle(){TelephonyDivShow();}
function HandleTelephonyIdle(){TelephonyDivHide();}
function ParseExtension(){if(parent.TelML){var DirectoryNumber=TelML.Lines.Item(0).GetDirectoryNumber();var Result=DirectoryNumber;var ExtFlag="ext=";var ExtIndex=DirectoryNumber.indexOf(ExtFlag);if(ExtIndex!=-1)
Result=DirectoryNumber.substring(ExtIndex+ExtFlag.length);return Result;}else
return"2007";}
var UnderneathTelephonyDiv=[];function HideOrRestoreEverythingUnderneath(is_hide,underneath_array){var visibility;for(var i=0;i<underneath_array.length;i++){if(Exists(underneath_array[i].Ignore)&&underneath_array[i].Ignore)
continue;visibility=(is_hide)?"hidden":underneath_array[i].Visibility;SetElementVisibility(underneath_array[i].ElemID,visibility,underneath_array,false);}}
function SetElementVisibility(elem_id,visibility,underneath_array,save_restore){var elem=document.getElementById(elem_id);if(Exists(elem)){var final_visibility=(visibility!="")?visibility:"visible";elem.style.visibility=final_visibility;if(Exists(save_restore)&&save_restore)
SetUnderneathRestore(underneath_array,elem_id,final_visibility);}}
function SetUnderneathRestore(underneath_array,elem_id,visibility,ignore){for(var i=0;i<underneath_array.length;i++){if(underneath_array[i].ElemID==elem_id){underneath_array[i].Visibility=visibility;if(Exists(ignore))
underneath_array[i].Ignore=ignore;return;}}}
function Exists(object){return(typeof(object)!="undefined"&&object!=null);}
function IsTelephonyDivVisible(){var tel_div=document.getElementById("TelephonyDiv");return(tel_div.style.left=="0"||tel_div.style.left=="0px");}
var native_key_labels=["","","","","","","                    "];var first_time;var tel_timer=null;var tel_timeout_ms=100;function TelephonyDivShow(){var tel_div=document.getElementById("TelephonyDiv");if(tel_div.style.left=="3000"||tel_div.style.left=="3000px"){tel_div.style.left="0px";HandleIntDirectoryDisplayChange();SubscribeToNativeTelephonyUpdates();var ButtonObj1,telSK;var j=0;for(var i=1;i<=14;i++){if(i==4){i=12;}
var ButtonObj_label=TelML.Buttons.Item(screenkey_to_buttons_index[i]);if(ButtonObj_label!=null){var new_i=ConvertTelMLButtonIndex(i,false);ButtonObj1=TelML.Buttons.Item(screenkey_to_buttons_index[new_i]);if(ButtonObj1!=null){ButtonObj1.SetAutoEvent(3,ButtonObj_label.GetKeyName());telSK=document.getElementById(div_key_map[new_i]);telSK.innerHTML=ButtonObj_label.GetLabel();native_key_labels[GetZeroBasedScreenkeyIndex(new_i)]=ButtonObj_label.GetLabel();}}}
if(typeof(isInputMode)!="undefined"){if(isInputMode){ResetToIdleState();}}
HideOrRestoreEverythingUnderneath(true,UnderneathTelephonyDiv);}else{}}
function TelephonyDivHide(){var tel_div=document.getElementById("TelephonyDiv");tel_div.style.left="3000px";UnSubscribeToNativeTelephonyUpdates();for(var i=1;i<=14;i++){if(i==4){i=12;}
var ButtonObj2=TelML.Buttons.Item(screenkey_to_buttons_index[i]);if(ButtonObj2!=null)
ButtonObj2.SetAutoEvent(0,null);}
HideOrRestoreEverythingUnderneath(false,UnderneathTelephonyDiv);}
function TelephonyDivToggle(){var tel_div=document.getElementById("TelephonyDiv");if(tel_div.style.left=="0"||tel_div.style.left=="0px"){TelephonyDivHide();}else{TelephonyDivShow();}}
function SubscribeToNativeTelephonyUpdates(){TelMLEvent.OnDisplayChanged=HandleIntDirectoryDisplayChange;TelMLEvent.OnButtonInformation=UpdateNativeTelephonyKeys;}
function UnSubscribeToNativeTelephonyUpdates(){TelMLEvent.OnDisplayChanged="";TelMLEvent.OnButtonInformation="";}
function HandleIntDirectoryDisplayChange(){clearTimeout(tel_timer);tel_timer=null;var is_2_line=Exists(TelML.TextDisplay.Item(1));var TextToDisplay=new String(TelML.TextDisplay.Item(0).substring(0,20)+
(is_2_line?"<br/>"+TelML.TextDisplay.Item(1).substring(0,20):""));if(native_key_labels[6]!=TextToDisplay){native_key_labels[6]=TextToDisplay.toString();tel_timer=setTimeout("SetTelephonyKeyLabels()",tel_timeout_ms);}}
function UpdateNativeTelephonyKeys(){clearTimeout(tel_timer);tel_timer=null;var ButtonObj3=TelML.Buttons.Item(TelMLEvent.ButtonIndex);var screenkeyNumber=ButtonObj3.GetKeyName().substring(9,ButtonObj3.GetKeyName().length);var convertedScreenkeyNumber=ConvertTelMLButtonIndex(screenkeyNumber,false);native_key_labels[GetZeroBasedScreenkeyIndex(convertedScreenkeyNumber)]=HTMLEncode(ButtonObj3.GetLabel());tel_timer=setTimeout("SetTelephonyKeyLabels()",tel_timeout_ms);}
function SetTelephonyKeyLabels(){tel_timer=null;var DisplayObj=document.getElementById(TextDisplayID);DisplayObj.innerHTML=native_key_labels[6];for(var i=1;i<=14;i++){if(i==4){i=12;}
var new_i=ConvertTelMLButtonIndex(i,false);telSK=document.getElementById(div_key_map[new_i]);telSK.innerHTML=native_key_labels[GetZeroBasedScreenkeyIndex(new_i)]}}
function HandleAppsLinkKeyPress(){var ButtonObj4=TelML.Buttons.Item(TelMLEvent.ButtonIndex);var screenkeyNumber=ButtonObj4.GetKeyName().substring(9,ButtonObj4.GetKeyName().length);var ButtonName="";if(IsTelephonyDivVisible()&&(screenkeyNumber=="1"||screenkeyNumber=="2"||screenkeyNumber=="3"||screenkeyNumber=="12"||screenkeyNumber=="13"||screenkeyNumber=="14")){var convertedScreenkeyNumber=ConvertTelMLButtonIndex(screenkeyNumber,true);var convertedButtonObj=TelML.Buttons.Item(screenkey_to_buttons_index[convertedScreenkeyNumber]);ButtonName=convertedButtonObj.GetKeyName();}
else{ButtonName=ButtonObj4.GetKeyName();}
InjectClick(ButtonName);}
var ClickTimer=null;var ClickTimerTimeout=350;var ClickObjectName="";function InjectClick(ObjectName){if(NeedsDoubleClick){var ObjectName2="";if(ObjectName.substr(0,9)=="SCREENKEY"){var KeyNum=parseInt(ObjectName.substr(9));if(KeyNum>=1&&KeyNum<=11)
ObjectName2="SCREENKEY"+(KeyNum+11);}
else if(ObjectName=="Previous")
ObjectName2="Home";if(ObjectName2!=""&&document.getElementById(ObjectName2)==null)
ObjectName2="";if(ClickTimer!=null){clearTimeout(ClickTimer);ClickTimer=null;if(ClickObjectName==ObjectName&&ObjectName2!=""){InjectSingleClick(ObjectName2);return;}
InjectSingleClick(ClickObjectName);}
if(ObjectName2!=""){ClickObjectName=ObjectName;ClickTimer=setTimeout('ClickTimer = null;InjectSingleClick(\''+ObjectName+'\')',ClickTimerTimeout);return;}}
InjectSingleClick(ObjectName);}
function InjectSingleClick(ObjectName){var PageObject=document.getElementById(ObjectName);var Result=false;if(PageObject){var LocationPage=PageObject.href;if(LocationPage!=""&&LocationPage!=undefined)
document.location=LocationPage;else{PageObject.fireEvent("onclick");}
Result=true;}
return Result;}
function Dial(Number){if(!parent.TelML){parent.SimulateDial(Number);return;}
for(var i=0;i<Number.length;i++){var digit=Number.charAt(i);if(digit>='0'&&digit<='9'||digit=='*'||digit=='#'){var ButtonObj=TelML.Buttons.Item(digit);ButtonObj.Press();for(var j=0;j<3000;j++);}
else if(digit==','){var waitUntil=(new Date()).getTime()+2000;while(true){for(var j=0;j<10000;j++);if((new Date()).getTime()>=waitUntil)
break;}}}}
var ClockInterval=60000;function GetDateObject(){var CurrentTime=new Date();if(PhoneHasDateBug)
CurrentTime.setTime(CurrentTime.getTime()-86400000);return CurrentTime;}
function displayTime(){var CurrentTime=GetDateObject();var Minutes=new String(CurrentTime.getMinutes());if(Minutes.length<2)
Minutes="0"+Minutes;var Hours=parseInt(CurrentTime.getHours());var Suffix=(Hours>=12)?"p":"a";Hours=(Hours>12)?Hours-12:Hours;var time=Hours+":"+Minutes+Suffix;if(document.getElementById("TimeDisplay"))
document.getElementById("TimeDisplay").innerHTML=time+"m";if(document.getElementById("TimeDisplayT"))
document.getElementById("TimeDisplayT").innerHTML=time;}
function displayDate(){var CurrentTime=GetDateObject();var num_month=(CurrentTime.getMonth()+1);var abbrev_month="";switch(num_month){case 1:abbrev_month="JAN";break;case 2:abbrev_month="FEB";break;case 3:abbrev_month="MAR";break;case 4:abbrev_month="APR";break;case 5:abbrev_month="MAY";break;case 6:abbrev_month="JUN";break;case 7:abbrev_month="JUL";break;case 8:abbrev_month="AUG";break;case 9:abbrev_month="SEP";break;case 10:abbrev_month="OCT";break;case 11:abbrev_month="NOV";break;case 12:abbrev_month="DEC";break;}
var date=CurrentTime.getDate()+"-"+abbrev_month+"-"+CurrentTime.getFullYear();if(document.getElementById("DateDisplay"))
document.getElementById("DateDisplay").innerHTML=date;if(document.getElementById("DateDisplayT"))
document.getElementById("DateDisplayT").innerHTML=date;}
function runClock(){displayTime();displayDate();setInterval('displayTime();displayDate();',ClockInterval);}
function SetInnerHTMLSafely(element_name,inner_html){if(document.getElementById(element_name))
if(inner_html!="")
document.getElementById(element_name).innerHTML=inner_html;}
function HTMLEncode(strData){return strData.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');}
