var g_oWUControl;
var g_iWUWebTimeoutCount = 0;
var g_iWUWebTimeoutMax = 120;
var g_oWUControlReadyTimer;
var g_iOSMajor;
var g_bWUControlReady = false;
var g_bWUUpdatingControl = false;
var conAdmin = 2;
var conErrorNotAdmin = 2;
var conErrorControlFailed = 4;
var g_iMUSelfUpdateError = 0;
var ERROR_INVALID_PROPERTY = -2146828218;
function window.onload() {
fnWUInitializeControl();
window.focus();
}
function fnWUInitializeControl() {
var dDate, sCodeBase, iInitReturn, aWUControlVersion, i, sWU, cpuClass;
document.all["checking"].style.display = "block";
try {
if(g_oWUControl == null) {
dDate = new Date();
sWU = "";
if(g_sWUControlVersion == "TOK_WUCONTROLVERSION" || g_sWUControlVersion.length == 0) {
g_sWUControlVersion = "0,0,0,0";
} else {
if(g_sWUControlVersion.indexOf(".") != -1) {
aWUControlVersion = g_sWUControlVersion.split(".");
if(aWUControlVersion.length > 0) {
for (i =0; i < aWUControlVersion.length ; i++) {
sWU += aWUControlVersion[i] + ",";
}
g_sWUControlVersion = sWU.substr(0,sWU.length -1);
}
}
}
cpuClass = navigator.cpuClass.toLowerCase();
sCodeBase = "V5Controls/" + "en/" + cpuClass + "/client/wuweb_site.cab?" + dDate.getTime() + "#version=" + g_sWUControlVersion;
WUWebCtl.outerHTML = "<object id='WUWebCtl' classid='CLSID:6414512B-B978-451D-A0D8-FCFDF33E833C' codebase='" + sCodeBase + "'></object>";
g_oWUControl = WUWebCtl;
}
} catch(e) {
if(e.number == ERROR_INVALID_PROPERTY) {
fnMUDisplayErrorPage(conErrorNotAdmin);
} else {
fnMUDisplayErrorPage(e.number);
}
return;
}
g_iWUWebTimeoutCount = 0;
g_oWUControlReadyTimer = window.setTimeout("fnWUControlReadyCheck();", 10);
return;
}
function fnWUControlReadyCheck() {
var iUserType, bIsAdmin, iSelfUpdateNeeded;
window.clearTimeout(g_oWUControlReadyTimer);
try {
g_iOSMajor = g_oWUControl.GetOSVersionInfo(0,1);
g_bWUControlReady = true;
}
catch(e) {
if(e.number != -2146827850) {
fnMUDisplayErrorPage(e.number);
return;
}
}
if(!g_bWUControlReady) {
if(g_iWUWebTimeoutCount++ < g_iWUWebTimeoutMax) {
g_oWUControlReadyTimer = window.setTimeout("fnWUControlReadyCheck();", 1000);
return false;
} else {
fnWUControlFailure();
return false;
}
} else {
var cpuClass = navigator.cpuClass.toLowerCase();
if(cpuClass != "x86") {
if((g_sUA.indexOf("wow32") == -1) && (g_sUA.indexOf("wow64") == -1)) {
top.location.href = "thanks.aspx?" + "ln=" + g_sOSLang + "&thankspage=" + conThanks64BitBrowser;
return;
}
}
iUserType = g_oWUControl.GetUserType();
bIsAdmin = (iUserType == conAdmin);
if(!bIsAdmin) {
fnMUDisplayErrorPage(conErrorNotAdmin);
return;
}
}
document.all["checking"].style.display = "none";
try{
try{
if( sReReg == "true"){
iSelfUpdateNeeded = g_oWUControl.CheckIfClientUpdateNeeded2(1);
} else {
iSelfUpdateNeeded = g_oWUControl.CheckIfClientUpdateNeeded2(0);
}
}catch (e){
iSelfUpdateNeeded = g_oWUControl.CheckIfClientUpdateNeeded();
}
}
catch(e) {
fnMUDisplayErrorPage(e.number);
return;
}
if(iSelfUpdateNeeded == 1 ) {
if(bstartWUUpdate=="true" || sReReg == "true"){
fnWUUpdateControl();
}else{
document.all["asking"].style.display = "block";
}
} else {
fnMUSelfUpdateComplete();
}
return;
}
function fnWUControlFailure() {
if(!g_bWUControlReady) {
fnMUDisplayErrorPage(conErrorControlFailed);
return false;
}
}
function fnWUUpdateControl() {
if(g_bWUUpdatingControl) return;
g_bWUUpdatingControl = true;
document.all["asking"].style.display = "none";
document.all["installing"].style.display = "block";
window.setTimeout("fnDelayUpdate();",100)
}
function fnMUSelfUpdateComplete() {
document.all["installing"].style.display = "none";
fnGoToFinish();
}
function fnGoToFinish() {
var sLan = "", sReturnUrl ="";
if (g_sFinishUrl == "" || !fnSanitizeFinishUrl() ){
return false;
}
if(g_sReturnUrl != ""){
sReturnUrl = g_sReturnUrl;
while(sReturnUrl.indexOf("&") != -1) sReturnUrl = sReturnUrl.replace("&","|@|");
sReturnUrl = "&returnurl=" + sReturnUrl;
}
if(g_sFinishUrl.toLowerCase().indexOf("ln=") == -1) sLan = "ln=" + conLangCode;
if(g_sFinishUrl.indexOf("?") == -1 ){
if(sLan != ""){
sLan = "?" + sLan;
} else {
sLan = "&" + sLan;
}
}
var sFinishUrl = g_sFinishUrl
while(sFinishUrl.indexOf("|@|") != -1) sFinishUrl = sFinishUrl.replace("|@|","&");
if( sReReg == "true"){
var s =sFinishUrl + sLan + sReturnUrl;
}else{
var s =sFinishUrl + sLan + "&muopt=1" + sReturnUrl;
}
top.location.replace(s);
}
function fnSanitizeFinishUrl(){
var oXmlHttp, oResponseXml, sFinishUrl;
var sUrl, sreturnValue, sMatch;
var iPos;
sFinishUrl = g_sFinishUrl.toLowerCase();
var re = new RegExp("http\\w?://(\\S+[?/#])","i");
var arr = re.exec(sFinishUrl);
if (arr != null){
sMatch = RegExp.$1;
if ((iPos = sMatch.indexOf("/")) != -1 ){
sFinishUrl= sMatch.substring(0,iPos)
}
else if ((iPos = sMatch.indexOf("?")) != -1 ){
sFinishUrl= sMatch.substring(0,iPos)
}
else if ((iPos = sMatch.indexOf("#")) != -1 ){
sFinishUrl= sMatch.substring(0,iPos)
}
}
else {
re = new RegExp("http\\w?://(\\S+)","i");
arr = re.exec(sFinishUrl);
if (arr != null){
sFinishUrl = RegExp.$1;
}
}
sUrl = conConsumerURL + "sanitizeurl.asp?UrlToSanitize=" + sFinishUrl;
try {
oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
oXmlHttp.open("POST", sUrl, false);
oXmlHttp.send();
oResponseXml = oXmlHttp.responseXML;
if (oResponseXml == null) return false;
else {
sreturnValue = oResponseXml.documentElement.text;
if(sreturnValue == "false") return false;
}
}catch(e) {
fnMUOptError(e.number);
return false;
}
return true;
}
function fnDelayUpdate() {
try{
iInitReturn = g_oWUControl.UpdateClient(fnWUUpdateOperationCallBack);
} catch(e) {
fnMUDisplayErrorPage(e.number);
return false;
}
}
function fnWUUpdateOperationCallBack(iOperationMode, lPercentComplete, bClientUpdateCompleted, lErrorCode){
var sOperationMode = "";
if(g_bWUUpdatingControl == false) return;
try {
switch(iOperationMode) {
case 1:
sOperationMode = L_OperationModeDownload_Text;
break;
case 2:
sOperationMode = L_OperationModeCopying_Text;
break;
case 3:
sOperationMode = L_OperationModeRegister_Text;
break;
default:
break;
}
if(lPercentComplete < 0 || lPercentComplete >100) lPercentComplete = 0;
if( iOperationMode != 4 ) {
document.all["OperationDesc"].innerText = sOperationMode;
document.all["PercentComplete"].innerText = Math.ceil(lPercentComplete);
document.all["UpdateStatus"].style.display = "block";
}
if( (iOperationMode == 4) && (Math.ceil(lPercentComplete) == 100) ) {
g_bWUUpdatingControl = false;
if (lErrorCode == 0) {
fnMUSelfUpdateComplete();
} else {
fnMUDisplayErrorPage(lErrorCode);
}
}
}
catch(e) {
}
}
function fnMUDisplayErrorPage(iError) {
window.location.href = "errorinformation.aspx?error=" + iError + "&" + parent.conQueryString;
return false;
}
