﻿String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

//jquery create
jQuery.create = function () { if (arguments.length == 0) return []; var args = arguments[0] || {}, elem = null, elements = null; var siblings = null; if (args == null) args = ""; if (args.constructor == String) { if (arguments.length > 1) { var attributes = arguments[1]; if (attributes.constructor == String) { elem = document.createTextNode(args); elements = []; elements.push(elem); siblings = jQuery.create.apply(null, Array.prototype.slice.call(arguments, 1)); elements = elements.concat(siblings); return elements } else { elem = document.createElement(args); var attributes = arguments[1]; for (var attr in attributes) jQuery(elem).attr(attr, attributes[attr]); var children = arguments[2]; if (children != undefined) { children = jQuery.create.apply(null, children); jQuery(elem).append(children) } if (arguments.length > 3) { siblings = jQuery.create.apply(null, Array.prototype.slice.call(arguments, 3)); return [elem].concat(siblings) } return elem } } else return document.createTextNode(args) } else { elements = []; elements.push(args); siblings = jQuery.create.apply(null, (Array.prototype.slice.call(arguments, 1))); elements = elements.concat(siblings); return elements } };

//
(function ($) {
    $.extend($, {
        cacheImage: function (src, options) {
            if (typeof src === 'object') {
                $.each(src, function () {
                    $.cacheImage(String(this), options);
                });

                return;
            }
            var image = new Image();
            options = options || {};
            image.src = src;
            return image;
        }
    });

    $.extend($.fn, {
        cacheImage: function (options) {
            return this.each(function () {
                $.cacheImage(this.src, options);
            });
        }
    });
})(jQuery);


//Jqery Simternet Banner Manager
(function () {
    $.fn.banner2 = function (settings) {
        var options = $.extend({
            duration: 750,
            isTitle: true,
            banWrap: "bannerWrapper",
            banItemWrap: "bannerItem",
            pagingWrap: "paging",
            pagingItem: "pagingItem",
            allowLoop: true,
            bannerListID:'#bannerUl',
            bannerWidth:"500",
            bannerHeight:"200"
        }, settings);

        
        var bannerIndex = 0;
        var bannerTimer = 0;
        var obj = this;
        var timer = null;
        var bannerList = $(options.bannerListID);
        var bannerCount = $(bannerList).children().length - 1;

        

        $(bannerList).hide();
        if (bannerCount < 0)
            return;
        var BannerWrapper = $.create('div', { "class": options.banWrap });
        $(this).append($(BannerWrapper));
        
        var CachedImage = null;

        var CacheNextImage = function (CurrentIndex) {
            if (CurrentIndex >= 0)
            {
                var found = false;
                for (var i = CurrentIndex+1; i < bannerCount; i++) {
                    elem = bannerList.children("li")[i];
                    if ($(elem).attr("filetype") == "Image")
                    {
                        CachedImage = new $.cacheImage($(elem).attr("src"));
//                        $(CachedImage).width("100%");
//                        $(CachedImage).height("100%");
                        $(CachedImage).css("border", "none");
                        found = true;
                        break;
                    }
                }
                if (found == false)
                {
                    for (var i = 0; i < CurrentIndex; i++) {
                        elem = bannerList.children("li")[i];
                        if ($(elem).attr("filetype") == "Image")
                        {
                            CachedImage = new $.cacheImage($(elem).attr("src"));
//                            $(CachedImage).width("100%");
//                            $(CachedImage).height("100%");
                            $(CachedImage).css("border", "none");
                            found = true;
                            break;
                        }
                    }
                }
                if (found == false)
                {
                    CachedImage = null;
                }
            }
            else
            {
                CachedImage = null;
            }
        };

        var bannerCreate = function () {
            clearTimeout(timer);
            $('#bannerLyr').removeAttr('onclick');
            elem = bannerList.children("li")[bannerIndex];
            $(".active").animate({opacity: 0.0}, 1000);
            $(".active").removeClass("active").children("div").hide();
            var actived = $(".pagingItem")[bannerIndex];
            $(actived).addClass("active").children("div").show().animate({opacity: 1.0}, 1000);
            var currentIndex = bannerIndex;
            if (bannerIndex < bannerCount) {
                bannerIndex++;
            }
            else if (!options.allowLoop) {
                bannerIndex = -1;
            }
            else {
                bannerIndex = 0;
            }
            bannerTimer = $(elem).attr("duration");
            var _type = $(elem).attr("filetype");
            var _target = $(elem).attr("target");
            $(BannerWrapper).children().remove();
            if (_type == "Image") {
                var _domElem = null;
                if (CachedImage == null)
                {
                    _domElem = $.create("img", {
                        "src": $(elem).attr("src"),
//                        "width": "100%",
//                        "height": "100%",
                        "border": 0,
                        "alt": ""
                    });
                    CacheNextImage(currentIndex);
                }
                else
                {
                    _domElem = CachedImage;
                    CacheNextImage(currentIndex);
                }
                
                if (_target == "_modal")
                {
                    if ($(elem).attr("href") != "")
                    {
                        $(_domElem).click(function () {
                            SP.UI.ModalDialog.showModalDialog({ url: $(elem).attr("href"), width: 600, height: 400, title: $(elem).attr("title") });
                            return false;
                        });
                    }
                    $(BannerWrapper).append(_domElem);
                }
                else
                {
                    if ($(elem).attr("href") == "")
                    {
                        $(BannerWrapper).append(_domElem);
                    }
                    else
                    {
                        var _linkElem = $.create("a", {
                                "href": $(elem).attr("href"),
                                "target": $(elem).attr("target")
                            });
                        $(_linkElem).append(_domElem);
                        $(BannerWrapper).append(_linkElem);
                    }
                }
            }
            if (_type == "Flash") {
                //    var so = new SWFObject($(elem).attr('src'), '', options.bannerWidth, options.bannerHeight, '8', '#FF6600');
                //    so.addParam('wmode', 'transparent');
                //    so.addParam('scale', 'noscale');
                var _linkElem = $.create("a", {
                    "href": $(elem).attr("href"),
                    "target": $(elem).attr("target")
                });
                //so.write(_linkElem);
                $(_linkElem).flashembed({ src: $(elem).attr('src'), wmode: 'transparent', quality: 'high', width: options.bannerWidth,
                    height: options.bannerHeight} );
                $("#bannerLyr").css({
                    position: 'absolute',
                    top: BannerWrapper.offsetTop,
                    left: BannerWrapper.offsetLeft,
                    width: options.bannerWidth,
                    height: options.bannerHeight,
                    zIndex: 2147483647
                });
                if ($(elem).attr("href") != "")
                {
                    $("#bannerLyr").click(function () {
                        if (_target == "_modal")
                        {
                            SP.UI.ModalDialog.showModalDialog({ url: $(elem).attr("href"), width: 600, height: 400 });
                            return false;
                        }
                        else
                        {
                            window.open($(elem).attr('href'), $(elem).attr('target'));
                            return false;
                        }
                    });
                }
                $(BannerWrapper).append(_linkElem);
            }
            if (bannerCount > 0 && bannerIndex > -1) {
                timer = window.setTimeout(bannerCreate, bannerTimer);
            } else {
                clearTimeout(timer);
            }
        };
        var pagingWrapper = $.create("div", { "class": options.pagingWrap });
        $(this).css({
            "position": "static"
        });
        $(pagingWrapper).css({
            "position": "absolute",
            "bottom": "0px",
            "left": "0px"
        });
        $(this).append(pagingWrapper);
        var _index = 0;
        bannerList.children("li").each(function () {
            _index++;
            var pagingItem = $.create("div", { "class": options.pagingItem }, [_index.toString()]);
            $(pagingItem).css({
                "position": "relative",
                "width": "25px",
                "height": "25px",
                "float": "left",
                "cursor": "pointer",
                "text-align": "center"
            });
            var pagingTitle = $.create("div", { "class": "Title" }, [$(this).attr("title")]);
            $(pagingTitle).css({
                "position": "absolute",
                "white-space": "nowrap",
                "bottom": "25px",
                "left": "0px",
                "display": "none"
            });
            $(pagingItem).click(function () {
                bannerIndex = $("." + options.pagingItem).index(this);
                bannerCreate();
            });
            $(pagingItem).append(pagingTitle);

            if (options.isTitle) {
                $(pagingWrapper).append(pagingItem);
            }
        });
        timer = window.setTimeout(bannerCreate, 0);
    };
})(jQuery);



