ejungle.functions = {};

ejungle.functions.parseUrl = function(url) {
    var a = document.createElement('a');
    a.href = url;
    return {
        source: url,
        protocol: a.protocol.replace(':', ''),
        host: a.hostname,
        port: a.port,
        query: a.search,
        params: (function() {
            var ret = {},
                seg = a.search.replace(/^\?/, '').split('&'),
                len = seg.length, i = 0, s;
            for (; i < len; i++) {
                if (!seg[i]) { continue; }
                s = seg[i].split('=');
                ret[s[0]] = s[1];
            }
            return ret;
        })(),
        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
        hash: a.hash.replace('#', ''),
        path: a.pathname.replace(/^([^\/])/, '/$1'),
        relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
        segments: a.pathname.replace(/^\//, '').split('/')
    };
};

ejungle.functions.addClass = function(e, c) {
    if ($.browser.msie && parseInt($.browser.version) == 6) {
        var btn = e.get(0).className.split(" ")[0];
        e.addClass(btn + c);
    }
    e.addClass(c);
};

ejungle.functions.removeClass = function(e, c) {
    if ($.browser.msie && parseInt($.browser.version) == 6) {
        var btn = e.get(0).className.split(" ")[0];
        e.removeClass(btn + c);
    }
    e.removeClass(c);
};

ejungle.functions.dialog = function(e, s) {
    var settings = $.extend(ejungle.settings.ui.dialog["default"], ejungle.settings.ui.dialog[s]);

    $(document.body).find(".popup").remove();

    var content = e.html() || "";
    e = $($.format("<div class='popup {0}'></div>", s));

    $(document.body).append(e);
    //e = $(document.body).find(".popup." + s);

    var contentWidth = settings.width - settings.border.dimensions.left - settings.border.dimensions.right;
    var contentHeight = settings.height - settings.border.dimensions.top - settings.border.dimensions.bottom;

    e.append("<a href='#' class='popup-close'></a>"); // close button

    var background = "background:transparent url({0});";
    var ieBackground = "";
    if ($.browser.msie6) {
        var background = "";
        var ieBackground = "<img src='/assets/images/ie6pixel.gif' style='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled = true, sizingMethod = scale, src = \"{0}\"); height:{1}px; width:{2}px; z-index:1;' alt='' />";
    }


    e.append($.format("<div class='topLeft' style='" + background + " bottom:auto; height:{1}px; left:0; position:absolute; right:auto; top:0; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.topLeft, settings.border.dimensions.top, settings.border.dimensions.left)); // top left
    e.append($.format("<div class='topCenter' style='" + background + " bottom:auto; height:{1}px; left:0; margin:0 {3}px 0 {4}px; overflow:hidden; position:absolute; right:auto; top:0; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.topCenter, settings.border.dimensions.top, contentWidth, settings.border.dimensions.right, settings.border.dimensions.left)); // top center
    e.append($.format("<div class='topRight' style='" + background + " bottom:auto; height:{1}px; left:auto; position:absolute; right:0; top:0; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.topRight, settings.border.dimensions.top, settings.border.dimensions.right)); // top right

    e.append($.format("<div class='middleLeft' style='" + background + " bottom:auto; height:{1}px; left:0; margin:{3}px 0 {4}px 0; position:absolute; right:auto; top:0; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.middleLeft, contentHeight, settings.border.dimensions.left, settings.border.dimensions.top, settings.border.dimensions.bottom)); // middle left
    e.append($.format("<div class='middleRight' style='" + background + " bottom:auto; height:{1}px; margin:{3}px 0 {4}px 0; position:absolute; right:0; top:0; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.middleRight, contentHeight, settings.border.dimensions.right, settings.border.dimensions.top, settings.border.dimensions.bottom)); // middle right

    e.append($.format("<div class='bottomLeft' style='" + background + " bottom:0; height:{1}px; left:0; position:absolute; top:auto; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.bottomLeft, settings.border.dimensions.bottom, settings.border.dimensions.left)); // bottom left
    e.append($.format("<div class='bottomCenter' style='" + background + " bottom:0; height:{1}px; left:0; margin:0 {3}px 0 {4}px; position:absolute; top:auto; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.bottomCenter, settings.border.dimensions.bottom, contentWidth, settings.border.dimensions.right, settings.border.dimensions.left)); // bottom center
    e.append($.format("<div class='bottomRight' style='" + background + " bottom:0; height:{1}px; left:auto; position:absolute; right:0; top:auto; width:{2}px; z-index:1;'>" + ieBackground + "</div>", settings.border.images.bottomRight, settings.border.dimensions.bottom, settings.border.dimensions.right)); // bottom right

    contentWidth = settings.width - settings.content.margin.left - settings.content.margin.right;
    contentHeight = settings.height - settings.content.margin.top - settings.content.margin.bottom;
    e.append($.format("<div class='container' style='bottom:auto; height:{0}px; left:0; margin:{2}px {3}px {4}px {5}px; position:absolute; right:auto; top:0; width:{1}px;'>{6}</div>", contentHeight, contentWidth, settings.content.margin.top, settings.content.margin.right, settings.content.margin.bottom, settings.content.margin.left, content)); // content

    if ($.browser.msie6) {
        if (settings.width % 2 == 1) {
            e.find(".topRight, .middleRight, .bottomRight").css({ right: "-1px" });
        }
        e.bgiframe();
    }

    settings.height = settings.height + "px";
    settings.width = settings.width + "px";
    e.dialog(settings);
    e.show();

    e.find(".popup-close").click(function() {
        e.dialog("destroy");
        $(".ui-dialog-overlay").remove();
        return false;
    });

    return false;
};

ejungle.toggleCycle = function(e) {
    if (e.find("li:nth-child(0)").css("display") == "none") {
        e.cycle(0);
    }
    else {
        e.cycle(1);
    }
}

ejungle.ajax = function(settings) {
    $.ajax($.extend(ejungle.settings.ajax, (settings || {})));
};




