
var keystoleavealone=new Array(0,8,9,16,17,18,35,37,38,39,40,46);var cookieName="MobileSms";SMS_Widget=function(appName,locale,scenarioId,serviceProxyPage,defaultSMSCountry,errorUIClassName)
{var m_appName=appName;var m_locale=locale;var m_scenarioId=scenarioId;var m_serviceProxyPage=serviceProxyPage;var m_selCountry=defaultSMSCountry;var m_widgetInstanceName,m_natxt1,m_natxt2,m_natxt3;var m_ddlCtry;var ddlCtry;var self=this;this.GetAppName=function(){return m_appName;}
this.GetLocale=function(){return m_locale;}
this.GetScenarioId=function(){return m_scenarioId;}
this.GetServiceProxyPage=function(){return m_serviceProxyPage;}
this.GetSelectedCountry=function(){return m_selCountry;}
this.GetWidgetName=function(){return m_widgetInstanceName;}
this.InitializeNAUi=function(widgetInstanceName)
{m_widgetInstanceName=widgetInstanceName;}
this.InitializeCountryList=function()
{m_ddlCtry='<select name="'+m_widgetInstanceName+'_ddlCountry" id="'+m_widgetInstanceName+'_ddlCtryList" onchange="'+m_widgetInstanceName+'.ChangeCountry(this.selectedIndex);">\n';for(thisCountryName in countryData)
{var thisCountry=countryData[thisCountryName];m_ddlCtry+='<option value="'+thisCountry.abbr+'">'+thisCountry.country+'</option>\n';}
m_ddlCtry+="</select>";GetElementById(self.GetWidgetName()+"_spnCountryList").innerHTML=m_ddlCtry;self.UpdateCountry(m_selCountry);}
this.InitializeNAText=function()
{m_natxt1=GetElementById(m_widgetInstanceName+"_NAText1");m_natxt2=GetElementById(m_widgetInstanceName+"_NAText2");m_natxt3=GetElementById(m_widgetInstanceName+"_NAText3");}
this.SetSelectedCountry=function(isoCode)
{var ddlCountry=GetElementById(m_widgetInstanceName+"_ddlCtryList");countrySelect=ddlCountry.options;for(var i=0;i<countrySelect.length;i++)
{if(countrySelect[i].value.toUpperCase()==isoCode.toUpperCase())
{ddlCountry.selectedIndex=i;break;}}}
this.ChangeCountry=function(countryIndex)
{var ddlCountry=GetElementById(m_widgetInstanceName+"_ddlCtryList");m_selCountry=ddlCountry[countryIndex].value;self.UpdateCountry(m_selCountry);}
this.UpdateCountry=function(isoCode)
{self.SetSelectedCountry(isoCode);var entry=self.InitializePhoneInput(isoCode);GetElementById(self.GetWidgetName()+"_phoneentry").innerHTML=entry;self.InitializeNAText();}
this.InitializePhoneInput=function(isoCode)
{var selCountry=self.GetCountry(isoCode)
boxes=selCountry.inputSize;var code_for_boxes="";var boxsize;if(selCountry.code=='1')
{code_for_boxes+='+'+selCountry.code+" ";code_for_boxes+='<input name="NAText1" maxLength="3" size="3" autocomplete="off" onkeypress="return handleNaKeyPress(event);" id="'+m_widgetInstanceName+'_NAText1" onkeyup="return '+m_widgetInstanceName+'.HandleNaKeyUp(event);" /> - ';code_for_boxes+='<input name="NAText2" maxLength="3" size="3" autocomplete="off" onkeypress="return handleNaKeyPress(event);" id="'+m_widgetInstanceName+'_NAText2" onkeyup="return '+m_widgetInstanceName+'.HandleNaKeyUp(event);" /> - ';code_for_boxes+='<input name="NAText3" maxLength="4" size="4" autocomplete="off" onkeypress="return handleNaKeyPress(event);" id="'+m_widgetInstanceName+'_NAText3" onkeyup="return '+m_widgetInstanceName+'.HandleNaKeyUp(event);" />';}
else
{code_for_boxes+='+'+selCountry.code+" ";code_for_boxes+='<input type="hidden" id="'+m_widgetInstanceName+'_NAText1" name="NAText1" value="+'+selCountry.code+'" />';code_for_boxes+='<input id="'+m_widgetInstanceName+'_NAText2" name="_NAText2" type="text" onkeypress="return handleNaKeyPress(event);" maxlength="'+selCountry.inputSize+'" size=" + selCountry.inputSize + " value="" />';}
return code_for_boxes;}
this.GetCountry=function(isoCode)
{for(thisCountryName in countryData){var thisCountry=countryData[thisCountryName];if(thisCountry.abbr.toUpperCase()==isoCode){return thisCountry;}}
return false;}
this.SendSms=function()
{var fullPhoneNo;var phoneNo;var countryName=self.GetSelectedCountry();var country=self.GetCountry(countryName);self.ToggleErrorUI('','none');if(country.code=='1')
{phoneNo=m_natxt1.value+m_natxt2.value+m_natxt3.value;if(''==phoneNo)
{fullPhoneNo=phoneNo;}
else
{fullPhoneNo=country.code+phoneNo;}}
else
{phoneNo=m_natxt2.value;if(''==phoneNo)
{fullPhoneNo=phoneNo;}
else
{fullPhoneNo=m_natxt1.value.substring(1)+phoneNo;}}
ajax.callPage(self.GetServiceProxyPage()+"?AID="+self.GetAppName()+"&LC="+self.GetLocale()+"&MID="+self.GetScenarioId()+"&PNO="+fullPhoneNo,self.ProcessResults);return false;}
this.ToggleErrorUI=function(errorMsg,displayStyle)
{var errorUI=GetChildByClassName(self.GetWidgetName(),errorUIClassName);if(errorUI)
{if('none'==displayStyle)
{HideElement(errorUI);}
else
{ShowElement(errorUI);}}
else
{return;}
if(errorUI&&errorUI.firstChild)
{if(errorUI.firstChild.firstChild)
errorUI=errorUI.firstChild.firstChild;}
errorUI.innerHTML=errorMsg;}
this.ToggleSuccessUI=function(displayStyle)
{var div2=GetChildByClassName(self.GetWidgetName(),'sms_div02');var div3=GetChildByClassName(self.GetWidgetName(),'sms_div03');var smsinput=GetChildByClassName(self.GetWidgetName(),'smsinput');var div5=GetChildByClassName(self.GetWidgetName(),'sms_div05');var div6=GetChildByClassName(self.GetWidgetName(),'sms_div06');var div7=GetChildByClassName(self.GetWidgetName(),'sms_div07');var div8=GetChildByClassName(self.GetWidgetName(),'sms_div08');var div9=GetChildByClassName(self.GetWidgetName(),'sms_div09');var div10=GetChildByClassName(self.GetWidgetName(),'sms_div10');var div11=GetChildByClassName(self.GetWidgetName(),'sms_div11');if(smsinput)
{if(''==displayStyle)
{ShowElement(div5);ShowElement(div6);ShowElement(div7);ShowElement(div8);ShowElement(div9);HideElement(div2);HideElement(div3);HideElement(smsinput);HideElement(div10);HideElement(div11);}
else
{HideElement(div5);HideElement(div6);HideElement(div7);HideElement(div8);HideElement(div9);ShowElement(div2);ShowElement(smsinput);ShowElement(div10);ShowElement(div11);}}}
this.ProcessResults=function(response)
{self.ShowResultsUI(response);}
this.HandleNaKeyUp=function(e)
{if(navigator.appName.indexOf("Microsoft")!=-1)
{e=window.event;return self.HandleNaKeyUpIE(e);}
else
{return self.HandleNaKeyUpNS(e);}}
this.HandleNaKeyUpIE=function(e)
{if(isKeyToBeLeftAlone(e.keyCode))
{return;}
else
{var strValue;strValue=e.srcElement.value;if(strValue.length>=3)
{if(e.srcElement==m_natxt1){m_natxt2.focus();}
if(e.srcElement==m_natxt2){m_natxt3.focus();}}}}
this.HandleNaKeyUpNS=function(e)
{if(isKeyToBeLeftAlone(e.which))
{return e.which;}
else
{var strValue=e.target.value;if(strValue.length>=3)
{if(e.target==m_natxt1){m_natxt2.focus();}
if(e.target==m_natxt2){m_natxt3.focus();}}}}
this.ShowResultsUI=function(responseXml)
{if(undefined==responseXml||null==responseXml)
{return;}
var currentNode;if(responseXml.toUpperCase().indexOf('SUCCESS')==-1)
{var errorUI=GetChildByClassName(self.GetWidgetName(),errorUIClassName);errorUI=errorUI.firstChild.firstChild;var errorMsg=getResultMessage(responseXml);if(errorMsg=='undefined'||errorMsg.length==0)
{errorMsg='Sms to phone could not be sent. Please try again later.';}
self.ToggleErrorUI(errorMsg,'');}
else
{self.ToggleSuccessUI('');}}}
function getResultMessage(resultXml)
{var msg='';if(resultXml&&resultXml.length>0)
{var start=resultXml.indexOf('<msg>');var end=resultXml.indexOf('</msg>');if(start!=-1&&end!=-1)
{msg=resultXml.substring(start+5,end);}}
return msg;}
function _IsValidNumberInputNS(e)
{if(!((e.which==13||e.which==0)||(e.which==8)||((e.which>='48')&&(e.which<='57'))))
{return false;}}
function RestrictInputToNumbersIE()
{if(event.keyCode!=13&&!((event.keyCode>='48')&&(event.keyCode<='57')))
{event.returnValue=false;}}
function isKeyToBeLeftAlone(keyCode)
{if(keyCode>46){return false;}
for(i=0;i<keystoleavealone.length;i++)
{if(keystoleavealone[i]==keyCode)
{return true;}}
return false;}
function handleNaKeyPress(e)
{if(navigator.appName.indexOf("Microsoft")!=-1)
{e=window.event;RestrictInputToNumbersIE();}
else
{return _IsValidNumberInputNS(e);}}
function HideElement(element)
{if(element)
{RemoveClassName(element,'show');AppendToClassName(element,'hide');}}
function ShowElement(element)
{if(element)
{RemoveClassName(element,'hide');AppendToClassName(element,'show');}}
function GetElementById(elementId){if(document.getElementById){return document.getElementById(elementId);}
else if(document.all){return document.all[elementId];}
else return null;}
function GetChildByClassName(elementName,cName)
{var element=GetElementById(elementName);if(element==null||element==undefined)
return null;var child=GetNextSibling(element.firstChild);var upperClassName=cName.toUpperCase();while(child&&(child.className.toUpperCase().indexOf(upperClassName)==-1))
{nextChild=GetNextSibling(child);child=nextChild?nextChild:child.parentElement;}
return child;}
function GetNextSibling(element)
{var nextElement;if(element)
nextElement=element.nextSibling;nextElement=element.nextSibling;while(nextElement&&nextElement.nodeType!=1)
{nextElement=nextElement.nextSibling;}
return nextElement;}
function AppendToClassName(element,className){var current=element.className;if(current)
{if(current.indexOf(className)>=0)
{return;}
if(current.charAt(current.length-1)!=' ')
{current+=' ';}
current+=className;}
else
{current=className;}
element.className=current;}
function RemoveClassName(element,className){var current=element.className;if(current){if(current.substring(current.length-className.length-1,current.length)==' '+className){element.className=current.substring(0,current.length-className.length-1);return;}
if(current==className){element.className="";return;}
var index=current.indexOf(' '+className+' ');if(index!=-1){element.className=current.substring(0,index+1)+current.substring(index+className.length+2,current.length);return;}
if(current.substring(0,className.length)==className+' '){element.className=current.substring(className.length+1,current.length);}}}