﻿
$.ajaxSetup({
    /* Disable caching of AJAX responses */
    cache: false
});

function ajaxifyTabLinks(sourceContainerId, targetContainerId) {
    if (!document.getElementById) return false;
    if (!document.getElementById(sourceContainerId)) return false;
    if (!document.getElementById(targetContainerId)) return false;

    var links = document.getElementById(sourceContainerId).getElementsByTagName("a");

    for (var i = 0; i < links.length; i++) {
        links[i].targetContainerId = targetContainerId;
        links[i].onclick = function () {
            var url = this.getAttribute("href").split("?")[0];
            var params = this.getAttribute("href").split("?")[1];
            var taggingParam = this.getAttribute("taggingParam");

            for (var u = 0; u < links.length; u++) {
                $(links[u]).removeClass('active');
            }

            $(this).addClass('active');
            TaggingHandler('', taggingParam);

            return (!sendAjaxRequest(url, params, this.targetContainerId, true));
        };
    }
}

function ajaxifyLinks(sourceContainerId, targetContainerId, additionalParams) {
    if (!document.getElementById) return false;
    if (!document.getElementById(sourceContainerId)) return false;
    if (!document.getElementById(targetContainerId)) return false;

    var links = document.getElementById(sourceContainerId).getElementsByTagName("a");

    for (var i = 0; i < links.length; i++) {
        links[i].targetContainerId = targetContainerId;
        links[i].additionalParams = additionalParams;
        links[i].onclick = function () {
            var url = this.getAttribute("href").split("?")[0];
            var params = this.getAttribute("href").split("?")[1];
            if (additionalParams != "")
                params = params + "&" + this.additionalParams;

            return (!sendAjaxRequestGoToTop(url, params, this.targetContainerId, true));
        };
    }
}
function ajaxifyLinksExtended(sourceContainerId, targetContainerId, additionalParams, loadingDivId, loadingProgressMarginPercent) {
    if (!document.getElementById) return false;
    if (!document.getElementById(sourceContainerId)) return false;
    if (!document.getElementById(targetContainerId)) return false;

    var links = document.getElementById(sourceContainerId).getElementsByTagName("a");

    for (var i = 0; i < links.length; i++) {
        links[i].targetContainerId = targetContainerId;
        links[i].additionalParams = additionalParams;
        links[i].loadingDivId = loadingDivId;
        links[i].loadingProgressMarginPercent = loadingProgressMarginPercent;
        links[i].onclick = function () {
            var url = this.getAttribute("href").split("?")[0];
            var params = this.getAttribute("href").split("?")[1];
            if (additionalParams != "")
                params = params + "&" + this.additionalParams;

            return (!sendAjaxRequestExtendedWithLoadingDiv(url, params, this.targetContainerId, this.loadingDivId, this.loadingProgressMarginPercent));
        };
    }
}

function sendAjaxRequestGoToTop(url, params, targetContainerId, displayLoadingProgress) {

    if (displayLoadingProgress) {

        HeightController($(".coBlockTab").height());
    }

    function HeightController(h) {
        var a = (h / 2) + 5;
        $("#loading").prepend("<div style='margin: " + a + "px 50%; display: block; position:absolute;'><img src='/ITGCFiles/Common/Images/ajax-loader.gif' alt='loading'/></div>");

        if ($.browser.msie && $.browser.version < 7)
            $("#" + targetContainerId).html("").css({ height: h }); //IE6
        else
            $("#" + targetContainerId).css({ position: "relative", opacity: 0.3 });
    }

    $.ajax({
        type: "POST",
        data: "",
        dataType: "html",
        url: url + "?" + params + "&ajax=true",
        success: function (output) {

            if (displayLoadingProgress)
                $("#loading").html('');

            if ($.browser.msie && $.browser.version < 7) //IE6
                $("#" + targetContainerId).css({ height: "auto" });
            else
                $("#" + targetContainerId).css({ opacity: 1 });
            $("#" + targetContainerId).html(output);


            var full_url = location.href;
            //get the top offset of the target anchor
            if ($("#gototop").length) { // implies *not* zero

                var target_offset = $("#gototop").offset();
                var target_top = target_offset.top;

                //goto that anchor by setting the body scroll top to anchor top
                $('html, body').animate({ scrollTop: target_top }, 500);
            }
        }

    });

    return true;
}

function sendAjaxRequest(url, params, targetContainerId, displayLoadingProgress) {

    if (displayLoadingProgress) {

        HeightController($(".coBlockTab").height());
    }

    function HeightController(h) {
        var a = (h / 2) + 5;
        $("#loading").prepend("<div style='margin: " + a + "px 50%; display: block; position:absolute;'><img src='/ITGCFiles/Common/Images/ajax-loader.gif' alt='loading'/></div>");

        if ($.browser.msie && $.browser.version < 7)
            $("#" + targetContainerId).html("").css({ height: h }); //IE6
        else
            $("#" + targetContainerId).css({ position: "relative", opacity: 0.3 });
    }

    url = url + "?" + params + "&ajax=true";
    url = url.replace('?&', '?');

    $.ajax({
        type: "POST",
        data: "",
        dataType: "html",
        url: url,
        success: function (output) {

            if (displayLoadingProgress)
                $("#loading").html('');

            if ($.browser.msie && $.browser.version < 7) //IE6
                $("#" + targetContainerId).css({ height: "auto" });
            else
                $("#" + targetContainerId).css({ opacity: 1 });
            $("#" + targetContainerId).html(output);

        }

    });

    return true;
}

function sendAjaxRequestExtended(url, params, targetContainerId, displayLoadingProgress) {

    if (displayLoadingProgress) {

        HeightController($("#" + targetContainerId).height());
    }

    function HeightController(h) {
        var a = (h / 2) + 5;
        $("#loading").prepend("<div style='margin: " + a + "px 43%; display: block; position:absolute;'><img src='/ITGCFiles/Common/Images/ajax-loader.gif' alt='loading'/></div>");
    }

    url = url + "?" + params + "&ajax=true";
    url = url.replace('?&', '?');

    $.ajax({
        type: "POST",
        data: "",
        dataType: "html",
        url: url,
        success: function (output) {
            $("#" + targetContainerId).html(output);

            if (displayLoadingProgress) {

                $("#loading").html('');
            }
        }
    });

    return true;
}

function sendAjaxRequestExtendedWithLoadingDiv(url, params, targetContainerId, loadingDivId, loadingProgressMarginPercent) {


    HeightController($("#" + targetContainerId).height());

    function HeightController(h) {
        var a = (h / 2) + 5;
        $("#" + loadingDivId).prepend("<div style='margin: " + a + "px " + loadingProgressMarginPercent + "%; display: block; position:absolute;'><img src='/ITGCFiles/Common/Images/ajax-loader.gif' alt='loading'/></div>");
    }

    $.ajax({
        type: "POST",
        data: "",
        dataType: "html",
        url: url + "?" + params + "&ajax=true",
        success: function (output) {
            $("#" + targetContainerId).html(output);

            $("#" + loadingDivId).html('');

        }
    });

    return true;
}

function getDDLValue(ddlId) {
    var ddl = document.getElementById(ddlId);
    var ddlIndex = ddl.selectedIndex;
    var ddlVal = ddl.options[ddlIndex].value;
    return ddlVal;
}

function onChangeReviewSettings(ddlSortId, ddlDisplayId, targetContainerId, url) {
    var newUrl = url.replace("{sort}", getDDLValue(ddlSortId));
    newUrl = newUrl.replace("{display}", getDDLValue(ddlDisplayId));
    newUrl = newUrl.replace("{page}", "1");
    sendAjaxRequest(newUrl, "", targetContainerId, true);
}

function onChangeReviewSettingsRedirect(ddlSortId, ddlDisplayId, url) {
    window.location.href = url + "?sort=" + getDDLValue(ddlSortId) + "&display=" + getDDLValue(ddlDisplayId);
}

function onLostPasswordClick(url, email, divConfirmation, divLostPassword, divLogin, lblValidator, LabelErrorMsgLostPwd) {

    HeightControl($(".maForm").height());

    function HeightControl(h) {
        var a = (h / 2) + 5;
        $("#loadingMaster").prepend("<div style='margin: " + a + "px 50%; display: block; position:absolute;z-index:9999;'><img 	src='/ITGCFiles/Common/Images/ajax-loader.gif' alt='loading'/></div>");
    }

    $.ajax({
        type: "POST",
        data: "",
        dataType: "html",
        url: url + "?" + "lostPassword=1&email=" + document.getElementById(email).value + "&ajax=true",
        success: function (output) {

            if (output == "*") {
                document.getElementById(lblValidator).style.color = "red";
                document.getElementById(lblValidator).style.display = "inline";
            }
            else if (output == "invalid") {
                document.getElementById(lblValidator).style.display = "none";
                document.getElementById(LabelErrorMsgLostPwd).style.display = "inline";
            }
            else {
                document.getElementById(divLogin).style.display = "none";
                document.getElementById(divLostPassword).style.display = "none";
                document.getElementById(divConfirmation).style.display = "inline";
            }

            $("#loadingMaster").html('');
        }
    });

}

function sendReviewFeedBack(reviewId, feedback, lblIsUsefulId, ddlSortId, ddlDisplayId, usefulnessText, pnlYesNoLinksId, pageNumber, targetContainerId, url, lblFeedbackCount, feedbackCount) {

    usefulnessText = usefulnessText.replace("&quot;", "'");
    $('#' + lblIsUsefulId).text(usefulnessText);
    if (feedback == "1")
        $('#' + lblFeedbackCount).text(parseInt($('#' + lblFeedbackCount).text()) + 1);
    var pnlYesNoLinks = document.getElementById(pnlYesNoLinksId);
    pnlYesNoLinks.style.visibility = "hidden";

    var newUrl = url.replace("{sort}", getDDLValue(ddlSortId));
    newUrl = newUrl.replace("{display}", getDDLValue(ddlDisplayId));
    newUrl = newUrl.replace("{page}", "1");

    sendAjaxRequest(newUrl, "reviewId=" + reviewId + "&feedback=" + feedback + "&feedbackCount=" + feedbackCount, targetContainerId, true);
}


function watchVideo(videoId, previousVideoId, targetContainerId, url) {
    sendAjaxRequest(url, "videoId=" + videoId + "&previousVideoId=" + previousVideoId, targetContainerId, true);
}
