﻿var model = "";
var JavaTried = 0;
var PageFileName = "";
var RedirectType = "";
var bookmark = "";

function ModelDetect(ObjectId, ParentRedirect) {
    if (ParentRedirect)
        RedirectType = "parent";
    else
        RedirectType = "";

    var DetectType = $("#" + ObjectId).val();
    bookmark = DetectType;
    PageNameMapping(DetectType);
    var BIOSVersion = "";
    var MBProduct = "";
    var browser = BrowserDetect.browser;
    if (browser == "Explorer") {
        var control;
        try {
            control = new ActiveXObject("AsusTek_sys_ctrl.asusTek_sysctrl.1");
            if (!control || !control.MB_HardwareId) {
                //if MB_HardwareId not found, redirect to How to Use page
                RedirectToWizard();
            }
            BIOSVersion = control.BIOS_SMBIOSBIOSVersion;
            MBProduct = control.MB_Product;
            control = undefined;
            if (BIOSVersion == "" && MBProduct == "")
                throw "";
            else
                Service.utilities.DetermineModel.GetModel($("#langNormal").val(), MBProduct, BIOSVersion, onSuccess, onError, $("#hd_model"));

        }
        catch (err) {
            RedirectToWizard();
            return false;
        }
    }
    else {
        var javaloaded;
        var app;
        try {
            app = LoadJavaApplet();
            if (app) {
                if (!app) {
                    RedirectToWizard();
                    return false;
                }
                BIOSVersion = app.getSMBIOSVersion();
                MBProduct = app.getMBProduct();
                app = undefined;

                if (BIOSVersion == "" && MBProduct == "")
                    throw "";
                else
                    Service.utilities.DetermineModel.GetModel($("#langNormal").val(), MBProduct, BIOSVersion, onSuccess, onError, $("#hd_model"));

            }
        }
        catch (err) {
            RedirectToWizard();
            return false;
        }
    }
//    alert("-" + MBProduct + "-" + MBProduct + "-");
//    if (MBProduct == "" && BIOSVersion == "") {
//        RedirectToWizard();
//        return false;
//    }

    return false;
}

function RedirectToWizard() {
    if (RedirectType == "parent") {
        parent.self.location.href = "/select/wizard.aspx?SLanguage=" + $("#langNormal").val();
    } else {
        document.location.href = "/select/wizard.aspx?SLanguage=" + $("#langNormal").val();
    }
    return false;
}

function PageNameMapping(lv2) {
    switch (lv2) {
        case "faq":
            PageFileName = "/knowledge.aspx";
            break;
        case "troubleshooting":
            PageFileName = "/knowledge.aspx";
            break;
        case "warranty":
            PageFileName = "/warranty.aspx";
            break;
        case "cpu":
            PageFileName = "/cpusupport/list.aspx";
            break;
        case "download":
            PageFileName = "/cpusupport/list.aspx";
            break;
        case "spec":
            PageFileName = "/specification.aspx";
            break;
        default:
            PageFileName = "/knowledge.aspx";
            break;
    }
}

function onSuccess(receiveData, userContext, methodName) {
    if (receiveData == "")
        alert("Can not find matched model for your device.");
        //RedirectToWizard();
    else {
        model = receiveData;
        if (RedirectType == "parent") {
            parent.self.tb_remove();
            parent.self.location.href = PageFileName + "?SLanguage=" + $("#langNormal").val() + "&m=" + receiveData + "#" + bookmark;
        }
        else {
            self.location.href = PageFileName + "?SLanguage=" + $("#langNormal").val() + "&m=" + receiveData + "#" + bookmark;
        }
    }
    return false;
}

//for Specification Detect
function onSuccessSpec(receiveData, userContext, methodName) {
    var hashed_id = "";
    if (receiveData == "")
        alert("No Specification Document found for this model");
    else {
        hashed_id = receiveData;
        if (RedirectType == "parent")
            parent.self.location.href = "/Specification.aspx?hashedid=" + hashed_id + "&content=specifications";
        else
            self.location.href = "/Specification.aspx?hashedid=" + hashed_id + "&content=specifications";
    }
    return false;
}

function onError(error, userContext, methodName) {
    if (error != null)
        alert(error.get_message());
    RedirectToWizard();
    return false;
}

function LoadJavaApplet() {
    var sObjHTML = "  <object id='app' width='0' height='0'                                                          " +
                  "    classid='clsid:8AD9C840-044E-11D1-B3E9-00805F499D93'                                          " +
                  "    codebase='http://java.sun.com/update/1.6.0/jinstall-6u17-windows-i586.cab#Version=6,0,0,4'>   " +
                  "	   <param name='name' value='ASUS System Information Control' />                                 " +
                  "      <param name='code' value='com.asus.liveupdate.UpdateApplet.class' />                        " +
                  "      <param name='archive' value='/select/DriverUtils.jar' />                                    " +
                  "      <param name='type' value='application/x-java-applet' />                                     " +
                  "      <param name='scriptable' value='false' />                                                   " +
                  "      <comment                                                                                    " +
                  "		   <embed id='app' width='0' height='0'                                                      " +
                  "			   name='ASUS System Information Control'                                                " +
                  "			   code='com.asus.liveupdate.UpdateApplet.class'                                         " +
                  "			   archive='/select/DriverUtils.jar'                                                     " +
                  "			   type='application/x-java-applet'                                                      " +
                  "			   scriptable='false'                                                                    " +
                  "			   pluginspage='http://java.sun.com/products/plugin/index.html#download'>                " +
                  "			   <noembed>                                                                             " +
                  "			   </noembed>                                                                            " +
                  "		    </embed>                                                                                 " +
                  "     </comment>                                                                                   " +
                  "   </object>                                                                                      " ;

    var objdiv = document.getElementById("objectDIV");
    objdiv.innerHTML = sObjHTML;
    var loaded = false;

    try {
        var app = getAppletObject();
        if (app != null)
            loaded = true;
    }
    catch (err) {
        alert(err);
    }

    if (loaded) {
        return app;
    }
    else {
        if (JavaTried <= 10) {
            JavaTried++;
            setTimeout("LoadJavaApplet()", 1000);
        }
        else
            return false;
    }
}

function getAppletObject() {
    var browser = BrowserDetect.browser;
    if (browser == "Firefox") {
        var embedTags = document.getElementsByTagName("embed");
        return embedTags["app"];
    }
    else if (browser == "Explorer" || browser == "Opera" || browser == "Safari" || browser == "Chrome") {
        var objectTags = document.getElementsByTagName("object");
        return objectTags["app"];
    }
}
