﻿/// <reference path="../jQuery.Intellisense.js" />

var offset = 1;
(function($) {

    $.fn.CustomBox = function(href, title, options, uid) {

        options = jQuery.extend({
            // Configuration related to overlay
            parentElement: '#wrapper',
            url: null,
            inlineId: null,
            width: 840,
            minWidth: 200,
            height: 600,
            minHeight: 528,
            wTitle: "untitled",
            overflow: "hidden",
            resize: false,
            panelObjects: null,
            panelHeight: 50,
            isIframe: false
        }, options);
        var baseURL;
        var leftover;
        if (href.indexOf("?") !== -1) { //ff there is a query string involved
            baseURL = href.substr(0, href.indexOf("?"));
        } else {
            baseURL = href;
        }
        var queryString = href.replace(/^[^\?]+\??/, '');
        var params = cb_parseQuery(queryString);

        var height = params['height'] == null ? options.height : (params['height'] * 1);
        var width = params['width'] == null ? options.width : (params['width'] * 1);
        var overlay = $("<div/>").addClass("cb_blackout");



        var holder = $("<div/>").addClass("cb_centering")
        /*var iframe = $("<iframe/>").addClass("cb_iframe")
        .attr("src", baseURL)
        .attr("frameborder", "0")
        .attr("border", "0")
        .attr("scrolling", "no")
        .css("width", width + "px")
        .css("height", height);*/
        var iframe;
        if (options.isIframe) {
            iframe = $("<iframe/>").addClass("cb_iframe")
                    .css("width", (width - 28) + "px")
                    .css("height", (height - 54) + "px")
                    .attr("src", baseURL);
        }
        else {

            iframe = $("<div/>").addClass("cb_iframe")
                    .css("width", width + "px")
                    .css("height", height + "px");
            //alert(params["inlineId"]);
            if (params["inlineId"] == null)
                iframe.load(baseURL + "?uid=" + uid);
            else {
                iframe.append($('#' + params['inlineId']).children());
                //alert("here!");
            }
        }

        var window = $("<div/>").addClass("cb_window")
            .css("width", width + "px")
            .css("height", height + "px")
            .css("margin-left", "-" + (width + 40) / 2 + "px")
            /*.append(
                $("<div/>").addClass("cb_header")
                    .css("width", width + "px")
                    .css("heigh", "21px")
                    .css("float", "left")
                    .append(
                        $("<div/>").addClass("cb_title")
                            .css("width", width - 100 + "px")
                            .css("padding-left", "20px")
                            .css("height", "21px")
                            .css("float", "left")
                    )*/
                    .append(
                        $("<div/>").addClass("cb_close")
                            .click(function() {
                                overlay.remove();
                                holder.fadeOut(500);
                                holder.remove();
                                //iframe.empty();
                            })
                    )
            //)
            .append(iframe);
        overlay.click(function() {
            overlay.remove();
            holder.fadeOut(500);
            holder.remove();
            //iframe.empty();
        });
        var pageId = $("<div/>").attr("id", "pageId").text(uid).css("display", "none");

        holder.append(window).append(pageId);
        overlay.appendTo($("body"));
        holder.appendTo($("body"));

    }


})(jQuery);
function cb_parseQuery(query) {
    var Params = {};
    if (!query) { return Params; } // return empty object
    var Pairs = query.split(/[;&]/);
    for (var i = 0; i < Pairs.length; i++) {
        var KeyVal = Pairs[i].split('=');
        if (!KeyVal || KeyVal.length != 2) { continue; }
        var key = unescape(KeyVal[0]);
        var val = unescape(KeyVal[1]);
        val = val.replace(/\+/g, ' ');
        Params[key] = val;
    }
    return Params;
}
