﻿// <copyright file='CSModalPopUpHTML.js' company='Communispace Corp.' author='Chen-Chieh Jack Su'/>
// Copyright (c) 2010, 2011 All Right Reserved, http://www.communispace.com/
function CSModalPopUpHTMLContent() {}

CSModalPopUpHTMLContent.prototype.hideModalPopUpHTMLContent = function() {
    $(".ModalPopUpHTMLContentDimmer").hide();
    $("#ModalPopUpHTMLContentContainer").hide();
}

var ua = navigator.userAgent;

CSModalPopUpHTMLContent.prototype.isIOS = /iPad/i.test(ua) || /iPhone OS/i.test(ua);

CSModalPopUpHTMLContent.prototype.popupDataHandler = function (data, status, request, cssStyles) {
    var dimmerJQuery = $(".ModalPopUpHTMLContentDimmer");
    dimmerJQuery.height($(document.body).height() + "px");
    dimmerJQuery.show();

    var HTMLText;

    var xmlDoc;
    if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(data.xml);

        HTMLText = xmlDoc.selectSingleNode("/Collection/Content/Html").xml;
    }
    else {
        var reg = new RegExp("<Html>");
        var match = reg.exec(request.responseText);
        var starti = match.index + 6;
        reg = new RegExp("</Html>");
        match = reg.exec(request.responseText);
        var endi = match.index - starti;

        HTMLText = request.responseText.substr(starti, endi);
    }

    var containerJQuery = $("#ModalPopUpHTMLContentContainer");
    $("#ModalPopUpHTMLContent_Content").html(HTMLText);

    var popWidth = 785;

    if (window.CSOrigpopUpStyles == undefined) {
        window.CSOrigpopUpStyles = {};
        for (var key in cssStyles) {
            window.CSOrigpopUpStyles[key] = containerJQuery.css(key);
        }
    }
    if (cssStyles != null) {
        for (var key in cssStyles) {
            containerJQuery.css(key, cssStyles[key]);

            if (key == 'width') {
                popWidth = cssStyles.width.replace('px', '');
            }
        }
    }
    else {
        for (var key in window.CSOrigpopUpStyles) {
            containerJQuery.css(key, window.CSOrigpopUpStyles[key]);
        }
    }
    var popUpElement = containerJQuery[0];
    var width = (document.body.clientWidth - popWidth) / 2;
    popUpElement.style.left = width + "px";
    var windowH = $(window).height();

    var newTop = windowH / 2 - containerJQuery.height() / 2;
    if (newTop < 0)
        popUpElement.style.top = "0px";
    else {
        popUpElement.style.top = newTop + "px";
    }

    $(".close", popUpElement).bind("click.closePopUp", this.hideModalPopUpHTMLContent);

    if (this.isIOS || newTop <= 0)
        window.scrollTo(0, 0);

    containerJQuery.show();
}

var popUpStyles = null;

function flContentIdSelected(contentID, inStyles) {
    popUpStyles = inStyles == undefined ? null : inStyles;
    $.ajax({url: '/JSHelpers/popupXML.aspx?vid='+contentID, success: popupDataHandler, error: popupDataErrorHandler});
}

function popupDataHandler(data, status, request) {
    if (data.VidFile != undefined) {
        videoPopupDataHandler(data, status, request);
    }
    else {   
        if(CSModalPopUpHTMLContent != undefined) {
            var htmlPopup = new CSModalPopUpHTMLContent();
            htmlPopup.popupDataHandler(data,status, request, popUpStyles);
        }
    }
}

function popupDataErrorHandler(XMLHttpRequest, textStatus, errorThrown) {
    alert("Error getting popup data.");
}

