﻿// html

function loadConfiguratorCustomConfig(product, preset) {
     //$('#flashConfigurator').load('/services/default.aspx?product=' + product + '&preset=' + preset + ' #flashConfigurator');
    $('#flashConfigurator').show();
}

function loadConfigurator() {
    //loadConfiguratorCustomConfig(productId, presetId);
    $('#flashConfigurator').show(); //.attr('display', '');
}

function unloadConfigurator(id) {
    //$('#flashConfigurator').text("");
    //$('#flashConfigurator').hide("");

    try {
        closeConfigurator();
    }
    catch (Error) {

        try {
            redirectToHome();
        }
        catch (Error1) {
            Connexia.Prodir.Service.Configurator.NiceUrl(id,
            function (result) {
                window.location = result;
            },

            function (result) {
                //error
                window.location.reload();
            },
            null);
        }
    }
}

// page

function genericAction(action, parameters) {
    switch (action) {
        case "close": unloadConfigurator(parameters);
            break;
    }
}

function isLoggedCallBack(uId) {
    //alert("user id:" + uId);
    var c = getConfigurator();
    c.SendLoginId(uId);
}

function showLogin() {
    document.getElementById("loginPanel").style["display"] = "block";
    //document.getElementById("flashConfiguratorOverlay").style["display"] = "none";
}

function doLogin() {
    document.getElementById("loginPanel").style["display"] = "none";
    //document.getElementById("flashConfiguratorOverlay").style["display"] = "";

    var usr = document.getElementById("usr").value;
    var pwd = document.getElementById("pwd").value;

    wsLogin(usr, pwd);
}

function doLogoff() {
    wsLogoff();
}

function quickRegistration() {
    document.getElementById("loginPanel").style["display"] = "none";
    //document.getElementById("flashConfiguratorOverlay").style["display"] = "";

    var email = document.getElementById("email").value;

    wsRegister(email);
}

// library

function getConfigurator() {
    var name = "configuratorObject";
    return document[name] || window[name];

//    var obj = document[name];
//    if (obj == null) {
//        obj = window[name];
//    }

//    alert(obj);

//    return obj;
}

function isLogged() {
    wsLogged();
}

function wsRegister(email) {
    var dealerId = getDealerId();

    Connexia.Prodir.Service.Configurator.CreateUser(email, dealerId,
            function (result) {
                wsRegisterCallback(result);
            },

            function (result) {
                alert(result.get_message());
                isLoggedCallBack(null);
            },
            null);
}

function wsRegisterCallback(result) {
    if (result.ErrorMessage != null && result.ErrorMessage != '') {
        alert(result.ErrorMessage);
    }
    else {
        alert(result.UserId);
        isLoggedCallBack(result.UserId);        
    }
    
}
        

function wsLogin(usr, pwd) {
    Connexia.Prodir.Service.Configurator.Login(usr, pwd,
            function (result) {
                wsLoginCallback(result);
            },

            function (result) {
                alert(result.get_message());
                isLoggedCallBack(null);
            },
            null);
}


function wsLoginCallback(uId) {
    isLoggedCallBack(uId);
}

function wsLogged() {
    Connexia.Prodir.Service.Configurator.Logged(
            function (result) {
                wsLoggedCallback(result);
            },

            function (result) {
                alert(result.get_message());
                wsLoggedCallback(null);
            },
            null);
}

function wsLoggedCallback(uId) {
    if (uId == null) {
        showLogin();
    }
    else {
        isLoggedCallBack(uId);
    }
}

function wsLogoff() {
    Connexia.Prodir.Service.Configurator.Logoff(
            function (result) {                
                wsLogoffCallback();
            },

            function (result) {
                alert(result.get_message());
                wsLogoffCallback();
            },
            null);
}

function wsLogoffCallback() {
    alert("logoff completed");
}

