﻿var showPT = false;
var showTNC = false;
var showNDA = false;
var showWarning = false;
var startExpanded = false;

function TnCPopUp(scrollToId) {
    if (!document.getElementById("termsAndConditions_PopUp")) {
        this.readyFunction = function(responseText) {

            var body = createScrollableDiv("termsAndConditions_PopUp_body", parseInt(document.getElementById("gth").value), false);

            body.container.style.width = (parseInt(document.getElementById("gtw").value) - 35) + "px";

            var PopUp = CreateNewPopUpSkeletonWithTitle("termsAndConditions_PopUp", body, "Terms And Conditions");
            PopUp.style.width = parseInt(document.getElementById("gtw").value) + "px";

            var cs = responseText.split("|$#@!@#$|");

            for (var i = 0; i < cs.length; i++) {
                var data = cs[i].split("|$#@#$|");


                switch (data[0].replace("TermsAndConditions-", "").toLowerCase()) {
                    case "privacypolicy":
                        PopUp.privacypolicy = data[1];
                        break;
                    case "generalterms":
                        PopUp.generalterms = data[1];
                        break;
                }
            }

            PopUp.setAcceptanceHTML = function() {
            }

            PopUp.setBodyHTML = function(html) {
                body.container.innerHTML = html;
                body.customScrollbar.SliderCheck();
            }

            body.container.innerHTML = PopUp.generalterms + PopUp.privacypolicy;

            body.customScrollbar.SliderCheck();

            var ah = document.getElementById("AllHeaderDiv")

            //if (DetermineBrowser() == Browsers.IE)
            var themeId = document.getElementById("themeId")

            if (themeId) {
                if (themeId.value == "5")
                    DockToObject(PopUp, ah, "center", "middle", "s", 0, 0);
                else
                    DockToObject(PopUp, ah, "center", "middle", "center", 0, 0);
            }
            else
                DockToObject(PopUp, ah, "center", "middle", "center", 0, 0);
            //else
            //    CenterFloatingObject(PopUp);


            PopUp.scrollTo = function(scrollTo) {
                var item = PopUp.document.getElementById(scrollTo);

                if (item) {
                    body.container.scrollTop = item.offsetTop;

                    body.customScrollbar.ReverseMoveSlider();
                }
            }

            if (scrollToId)
                PopUp.scrollTo(scrollToId);

        }

        var sendData = "";

        var themeId = document.getElementById("themeId");
        if (themeId)
            sendData += "themeId=" + themeId.value;

        AJAXPost(top.document.getElementById("websiteURL").value + "/data/getTerms.aspx", "AddParams[1].readyFunction", sendData, this);
    }
}

function createTermsWindow(id) {
    var container = document.createElement("div");
    container.style.position = "absolute";
    container.id = id;
    container.style.zIndex = "5000";
    main = createTable(485);
    container.appendChild(main);
    main.createRows(3, 1);
    main.className = "ReferenceDialog";

    main.rowArray[0].cellArray[0].className = "TACContentDivHeader";
    main.rowArray[0].cellArray[0].style.textAlign = "center";
    main.rowArray[0].cellArray[0].style.padding = "10px 0px";

    main.rowArray[1].cellArray[0].style.padding = "0px 10px";

    main.rowArray[2].cellArray[0].className = "TACContentDivAgreement";
    main.rowArray[2].cellArray[0].style.paddingTop = "5px";


    main.yes = document.createElement("img");
    main.yes.style.width = "150px";
    top.SI.src("btForms_Accept.png", main.yes, top.SiteImagesType.BaseColorShadeLanguage)
    main.yes.onmouseover = function() {
        image_onmouseover(main.yes);
    }


    main.no = document.createElement("img");
    main.no.style.width = "150px";
    top.SI.src("btForms_DoNotAccept.png", main.no, top.SiteImagesType.BaseColorShadeLanguage)
    main.no.onmouseover = function() {
        image_onmouseover(main.no);
    }

    main.rowArray[2].cellArray[0].appendChild(main.yes);
    main.rowArray[2].cellArray[0].appendChild(main.no);
    main.no.style.marginLeft = "20px";
    main.rowArray[2].cellArray[0].style.textAlign = "center";
    main.rowArray[2].cellArray[0].style.padding = "10px 0px";


    container.setHeaderHTML = function(html) {
        main.rowArray[0].cellArray[0].innerHTML = html;
    }

    container.setBodyHTML = function(html) {
        main.rowArray[1].cellArray[0].innerHTML = html;
    }

    container.close = function() {
        container.style.display = "none";
    }

    container.yes = main.yes;
    container.no = main.no;

    main.no.onclick = function() {
        resetLogin();
    }

    document.body.appendChild(container);

    return container;
}

function showUsageWarning(accountType, content) {

    var tw = document.getElementById("usageWarning");

    if (!tw) {
        tw = createTermsWindow("usageWarning");

        tw.yes.onclick = function() {
            destroyObject(tw);
            termsYes();
        }
    }
    else
        tw.style.display = "";

    var cs = content.split("|$#@!@#$|");

    for (var i = 0; i < cs.length; i++) {
        var data = cs[i].split("|$#@#$|");

        switch (data[0]) {

            case "usagewarning":
                tw.setBodyHTML(data[1]);
                break;
            case "usagewarningtitle":
                tw.setHeaderHTML(data[1]);
                break;
        }
    }

    var ah = document.getElementById("AllHeaderDiv")

    DockToObject(tw, ah, "center", "middle", "center", 0, 0);

}

function hideUsageWarning() {
    var usageWarning = document.getElementById("usageWarning");
    if (usageWarning)
        usageWarning.style.display = "none";
}



function createTACWindow(id) {
    var container = document.createElement("div");
    container.style.position = "absolute";
    container.id = id;
    container.style.zIndex = "5000";
    main = createTable(660);
    container.appendChild(main);
    main.createRows(4, 1);
    main.className = "ReferenceDialog";

    main.rowArray[0].cellArray[0].className = "TACContentDivHeader";
    main.rowArray[0].cellArray[0].style.textAlign = "center";
    main.rowArray[0].cellArray[0].style.padding = "10px 0px";
    main.rowArray[0].cellArray[0].style.display = "none";

    main.body = createScrollableDiv(id + "_body", 400, false);
    main.body.container.style.padding = "0px 10px";
    main.rowArray[1].cellArray[0].appendChild(main.body);

    main.toggle = document.createElement("div");
    main.toggle.style.textAlign = "center";
    main.rowArray[1].cellArray[0].appendChild(main.toggle);
    main.toggle.collapse = createAnchor("Collapse");

    main.toggle.collapse.style.display = "none";
    main.toggle.collapse.onclick = function() {
        container.compact();
    }
    main.toggle.expand = createAnchor("Expand");
    main.toggle.expand.style.display = "none";
    main.toggle.expand.onclick = function() {
        container.expand();
    }

    main.toggle.appendChild(main.toggle.collapse);
    main.toggle.appendChild(main.toggle.expand);

    main.yes = document.createElement("img");
    main.yes.style.width = "150px";
    top.SI.src("btForms_Accept.png", main.yes, top.SiteImagesType.BaseColorShadeLanguage)
    main.yes.onmouseover = function() {
        image_onmouseover(main.yes);
    }

    main.no = document.createElement("img");
    main.no.style.width = "150px";
    top.SI.src("btForms_DoNotAccept.png", main.no, top.SiteImagesType.BaseColorShadeLanguage)
    main.no.onmouseover = function() {
        image_onmouseover(main.no);
    }

    main.rowArray[3].cellArray[0].appendChild(main.yes);
    main.rowArray[3].cellArray[0].appendChild(main.no);
    main.no.style.marginLeft = "20px";
    main.rowArray[3].cellArray[0].style.textAlign = "center";
    main.rowArray[3].cellArray[0].style.padding = "10px 0px";


    container.setHeaderHTML = function(html) {
        main.rowArray[0].cellArray[0].innerHTML = html;
    }

    container.setBodyHTML = function(html) {
        main.body.container.innerHTML = html;
        main.body.customScrollbar.SliderCheck();
    }

    container.setAcceptanceHTML = function(html) {
        main.rowArray[2].cellArray[0].innerHTML = html;
    }

    container.expand = function() {
        main.body.style.display = "";
        main.toggle.collapse.style.display = "";
        main.toggle.expand.style.display = "none";
        main.rowArray[0].cellArray[0].style.display = "none";
    }

    container.compact = function() {
        main.body.style.display = "none";
        main.toggle.collapse.style.display = "none";
        main.toggle.expand.style.display = "";
        main.rowArray[0].cellArray[0].style.display = "";
    }

    main.yes.onclick = function() {
        termsAccept();
    }

    main.no.onclick = function() {
        resetLogin();
    }


    container.setSize = function(width, height) {
        main.body.container.style.width = parseInt(width) + "px";
        main.body.setHeight(height);

        main.body.customScrollbar.SliderCheck();
    }

    document.body.appendChild(container);

    container.yes = main.yes;
    container.no = main.no;

    return container;
}

function openTermsAndConditions(accountType, content) {
    var tac = document.getElementById("termsAndConditions")

    if (tac)
        destroyElementById("termsAndConditions");

    tac = createTACWindow("termsAndConditions");
    tac.accountType = accountType;
    tac.startExpanded = startExpanded;

    tac.content = content;


    tac.setContent = function(content) {
        tac.content = content;

        var cs = content.split("|$#@!@#$|");

        for (var i = 0; i < cs.length; i++) {
            var data = cs[i].split("|$#@#$|");


            switch (data[0].replace("TermsAndConditions-", "").toLowerCase()) {
                case "privacypolicy":
                    tac.privacypolicy = data[1];
                    break;
                case "partnerterms":
                    tac.partnerterms = data[1];
                    break;
                case "generalterms":
                    tac.generalterms = data[1];
                    break;
                case "phrase_termsofuse":
                    tac.setHeaderHTML(data[1]);
                    break;
                case "phrase_partneragreetermsofusequestion":
                    tac.partneragree = data[1];
                    break;
                case "phrase_memberagreetermsofusequestion":
                    tac.memberagree = data[1];
                    break;
            }
        }



        if ((accountType == "2" || showPT) && tac.partnerterms) {
            tac.setBodyHTML(tac.partnerterms);
            tac.setAcceptanceHTML(tac.partneragree);
            tac.setSize(document.getElementById("ptw").value, document.getElementById("pth").value);
        }
        else if ((accountType == "2" || showPT) && !tac.partnerterms) {
            resetLogin();
            alert("Error finding terms!");
        } else {
            tac.setBodyHTML(tac.generalterms + tac.privacypolicy);
            tac.setAcceptanceHTML(tac.memberagree);
            tac.setSize(document.getElementById("gtw").value, document.getElementById("gth").value);
        }

        if (!startExpanded)
            tac.compact();

        var ah = document.getElementById("AllHeaderDiv")

        //if (DetermineBrowser() == Browsers.IE)
        DockToObject(tac, ah, "center", "middle", "center", 0, 0);
        //else {
        //    CenterFloatingObject(tac);
        //    tac.style.top = "10px";
        //}

        if (parseInt(tac.style.top) < 10)
            tac.style.top = "10px";

    }

    tac.getContent = function(language) {
        var sendData = "language=" + language;

        var themeId = document.getElementById("themeId");
        if (themeId)
            sendData += "&themeId=" + themeId.value

        if (myAccessToken)
            sendData += "&at=" + myAccessToken;

        this.readyFunction = function(responseText) {
            tac.setContent(responseText);
        }

        AJAXPost(top.document.getElementById("websiteURL").value + "/data/getTerms.aspx", "AddParams[1].readyFunction", sendData, this);
    }

    var getPT = (showPT && !(/termsandconditions\-partnerterms/.test(content.toLowerCase())));
    var getTNC = (showTNC && !(/termsandconditions\-generalterms/.test(content.toLowerCase())) && !(/termsandconditions\-privacypolicy/.test(content.toLowerCase())));

    if (getPT || getTNC) {
        tac.getContent(MainLanguage);
    } else
        tac.setContent(tac.content);


}


function termsAccept() {
    var url = "data/AcceptTerms.aspx?at=" + myAccessToken;

    this.readyFunction = function(responseText) {

        if (responseText == "1")
            termsYes();
        else
            alert("Error Accepting Terms!");
    }

    AJAXPost(url, "AddParams[1].readyFunction", undefined, this)
}

function termsYes() {
    var url = "version.txt";
    AJAXGetWithError(url, "termsYes_ready", "termsYes_error");
}

function termsYes_ready(responseText) {
    if (responseText.replace(/\s/g, "") != "") {
        var tnc = document.getElementById("termsAndConditions");
        if (tnc)
            tnc.style.display = "none";

        showLoadingStars();

        var sid = document.getElementById("sid");

        if (sid.value == "testing") {
            var url = "http://localhost/cam/Application.aspx?color=" + themeName + "&siteTheme=" + siteTheme + "&theme=null&AccessToken=" + myAccessToken + "&shade=" + MainShade;

            var sid = document.getElementById("sid");

            url += "&sid=" + encodeURIComponent(sid.value);

            var openstarchat = QueryStringValue(document.location.href, "openstarchat");
            if (openstarchat.length > 0) {
                url += "&openstarchat=" + openstarchat;
            }

            window.location = url;
        }
        else {
            var url = "ver/" + responseText.replace(/\s/g, "") + "/Application.aspx?color=" + themeName + "&siteTheme=" + siteTheme + "&theme=null&AccessToken=" + myAccessToken + "&shade=" + MainShade;

            url += "&sid=" + encodeURIComponent(sid.value);

            var openstarchat = QueryStringValue(document.location.href, "openstarchat");
            if (openstarchat.length > 0) {
                url += "&openstarchat=" + openstarchat;
            }

            window.location = url;
        }

    }
    else {
        alert("Error.  Can't find version!");
    }
}

function termsYes_error(responseText) {
    alert("Error.  Can't find version!");
    //window.location = "Application.aspx?color=" + themeName + "&siteTheme=" + siteTheme + "&theme=null&AccessToken=" + myAccessToken;
}

function scrollTo(id) {

    var item = document.getElementById(id);

    var body = item.parentNode;

    while (!body.customScrollbar) {
        body = body.parentNode;
    }

    body.container.scrollTop = item.offsetTop;

    body.customScrollbar.ReverseMoveSlider();

}

function showNDAWindow(accountType, content) {
    var tw = document.getElementById("ndaWindow");

    if (tw)
        destroyElementById("ndaWindow");

    tw = createTermsWindow("ndaWindow");

    tw.yes.onclick = function() {
        var url = "data/AcceptNDA.aspx?at=" + myAccessToken;

        this.readyFunction = function(responseText) {

            var myResponse = "?" + responseText;
            var errorDescription = QueryStringValue(myResponse, "errorDescription");
            var errorCode = QueryStringValue(myResponse, "errorCode");
            startExpanded = QueryStringValue(myResponse, "startExpanded") == "1";
            showTNC = QueryStringValue(myResponse, "ShowTNC") == "1";
            showWarning = QueryStringValue(myResponse, "ShowWarning") == "1";
            showNDA = QueryStringValue(myResponse, "ShowNDA") == "1";
            showPT = QueryStringValue(myResponse, "ShowPT") == "1";

            var cs = "content=";
            var ci = responseText.indexOf(cs);
            var content = responseText.substring(ci + cs.length, responseText.length); //QueryStringValue(myResponse, "content");

            if (!errorCode) {

                tw.style.display = "none";

                if (showWarning)
                    showUsageWarning(accountType, content);
                else if (showTNC || showPT)
                    openTermsAndConditions(accountType, content);
                else {
                    termsYes();
                }

            }
            else
                alert(errorDescription);
        }

        AJAXPost(url, "AddParams[1].readyFunction", undefined, this)
    }


    tw.showTNC = showTNC;
    tw.content = content;
    tw.accountType = accountType;
    tw.startExpanded = startExpanded;

    tw.setContent = function(content) {
        var cs = content.split("|$#@!@#$|");

        for (var i = 0; i < cs.length; i++) {
            var data = cs[i].split("|$#@#$|");

            switch (data[0].replace("TermsAndConditions-", "").toLowerCase()) {
                case "nondisclosureagreement":
                    tw.setBodyHTML(data[1]);
                    break;
            }
        }

        var ah = document.getElementById("AllHeaderDiv")


        //if (DetermineBrowser() == Browsers.IE)
        DockToObject(tw, ah, "center", "middle", "center", 0, 0);
        //else
        //    CenterFloatingObject(tw);

        if (parseInt(tw.style.top) < 10)
            tw.style.top = "10px";

    }

    tw.getContent = function(language) {
        var sendData = "language=" + language;

        var themeId = document.getElementById("themeId");
        if (themeId)
            sendData += "&themeId=" + themeId.value;

        this.readyFunction = function(responseText) {
            tw.setContent(responseText);
        }

        AJAXPost(top.document.getElementById("websiteURL").value + "/data/getNDA.aspx", "AddParams[1].readyFunction", sendData, this);
    }

    var hasNDA = false; //(showNDA && (/[tT]erms[aA]nd[cC]onditions\-[nN]on[dD]isclosure[aA]greement/.test(content)));

    if (!tw.content || !hasNDA) {
        tw.getContent(MainLanguage);
    } else
        tw.setContent(tw.content);

}

function languageButtonOnMouseOver(button) {
    button.className = "languageChangeButton-mouseover"

    button.onmouseout = function() {
        button.className = "languageChangeButton"
    }
}

function fetchNDATerms(language) {
    var ndaWindow = document.getElementById("ndaWindow");
    ndaWindow.getContent(language);
}

function fetchTerms(language) {
    var url = "data/GetTerms.aspx";

    var sendData = "language=" + language;

    var themeId = document.getElementById("themeId");
    if (themeId)
        sendData += "&themeId=" + themeId.value

    sendData += "&at=" + myAccessToken;

    MainLanguage = language;

    this.readyFunction = function(responseText) {
        var cs = responseText.split("|$#@!@#$|");

        var tac = document.getElementById("termsAndConditions");

        var tacpu = document.getElementById("termsAndConditions_PopUp");

        if (tac) {
            tac.setAcceptanceHTML("");
            tac.setHeaderHTML("");

            tac.partnerterms = "";
            tac.privacypolicy = "";
            tac.generalterms = "";
            tac.partneragree = "";
            tac.memberagree = "";

            top.SI.src("btForms_Accept.png", tac.yes, top.SiteImagesType.BaseColorShadeLanguage)
            top.SI.src("btForms_DoNotAccept.png", tac.no, top.SiteImagesType.BaseColorShadeLanguage)
        }

        if (tacpu) {
            tacpu.privacypolicy = "";
            tacpu.generalterms = "";
        }

        for (var i = 0; i < cs.length; i++) {
            var data = cs[i].split("|$#@#$|");

            switch (data[0].replace("TermsAndConditions-", "").toLowerCase()) {
                case "privacypolicy":
                    if (tac)
                        tac.privacypolicy = data[1];

                    if (tacpu)
                        tacpu.privacypolicy = data[1];
                    break;
                case "partnerterms":
                    if (tac)
                        tac.partnerterms = data[1];

                    if (tacpu)
                        tacpu.partnerterms = data[1];
                    break;
                case "generalterms":
                    if (tac)
                        tac.generalterms = data[1];

                    if (tacpu)
                        tacpu.generalterms = data[1];
                    break;
                case "phrase_termsofuse":
                    if (tac)
                        tac.setHeaderHTML(data[1]);
                    break;
                case "phrase_partneragreetermsofusequestion":
                    if (tac)
                        tac.partneragree = data[1];
                    break;
                case "phrase_memberagreetermsofusequestion":
                    if (tac)
                        tac.memberagree = data[1];
                    break;
            }
        }

        if (tac) {
            if (tac.accountType == "2" || showPT) {
                tac.setBodyHTML(tac.partnerterms);
                tac.setAcceptanceHTML(tac.partneragree);
                tac.setSize(document.getElementById("ptw").value, document.getElementById("pth").value);
            } else {
                tac.setBodyHTML(tac.generalterms + tac.privacypolicy);
                tac.setAcceptanceHTML(tac.memberagree);
                tac.setSize(document.getElementById("gtw").value, document.getElementById("gth").value);
            }

            if (!tac.startExpanded)
                tac.compact();

            var ah = document.getElementById("AllHeaderDiv")

            //if (DetermineBrowser() == Browsers.IE)
            DockToObject(tac, ah, "center", "middle", "center", 0, 0);
            //else
            //    CenterFloatingObject(tac);

            if (parseInt(tac.style.top) < 10)
                tac.style.top = "10px";
        }


        if (tacpu)
            tacpu.setBodyHTML(tacpu.generalterms + tacpu.privacypolicy);



    }

    AJAXPost(url, "AddParams[1].readyFunction", sendData, this);
}