﻿var SLIDER1 = function () {
    var _P = {
        init: function (params) {
            _P.params = params;
			//alert(_P.params.xmlPath);
            _P.loadXml();
        },
        params: null,
        data: null,
        loadXml: function () {
			//if(_P.params.sliderId == '#slider2') return false;
			
            $.ajax({
                type: "GET",
                url: _P.params.xmlPath,
                dataType: "xml",
                success: function (data) {
                    _P.data = data;
                    _P.max = _P.params.perView;
                    _P.count = $("sliderItem", data).length;
                    _P.preloadSlider();
                    _P.browseSliderItems();
                }
            });
        },
        first: 0,
        max: 0,
        count: 0,

        preloadSlider: function () {
			//if(_P.params.sliderId == '#slider2') return false;
			$("ul", _P.params.sliderId).empty();
			
			$("sliderItem", _P.data).each(function (i) {
                var title = $.trim($("title", this).text());
                var href = $.trim($("href", this).text());
                $("ul", _P.params.sliderId).append([
					"<li><a href='",
					href,
					"' class='thumb'><img src='",
					$.trim($("image > src", this).text()),
					"' width='",
					$("image", this).attr("width"),
					"' height='",
					$("image", this).attr("height"),
					"' alt='",
					title,
					"' /></a></li>"].join(""));
            });
			
            $(_P.params.sliderId + " .prev").click(function () {
                _P.browseSliderItems("prev");
                return false;
            });
            $(_P.params.sliderId + " .next").click(function () {
                _P.browseSliderItems("next");
                return false;
            });
        },

        browseSliderItems: function (browse) {
			//if(_P.params.sliderId == '#slider2') return false;
			
            if (browse == "prev") {
                if (_P.first == _P.count && (_P.count % _P.max > 0)) {
                    _P.first = _P.first - ((_P.count % _P.max) + _P.max);
                } else {
                    _P.first = _P.first - (_P.max * 2);
                }
            }
			
			//initial load
			if (browse == "" || browse == null) {
				_P.first = 0;
			}
			
            var range = _P.first + _P.max;
            var start = 1;
            if (range > _P.max) {
                start = ((range - _P.max) + 1);
            }

            if (_P.first == 0) {
                $(_P.params.sliderId + " .prev").css("visibility", "hidden");
            } else {
                $(_P.params.sliderId + " .prev").css("visibility", "visible");
            }

            if (range < _P.count) {
                $(_P.params.sliderId + " .next").css("visibility", "visible");
            } else if (range >= _P.count) {
                range = _P.count;
                $(_P.params.sliderId + " .next").css("visibility", "hidden");
            }

			//load images
            $("sliderItem", _P.data).each(function (i) {
                if (i >= _P.first && i < range) {
                    $(_P.params.sliderId + " li:eq(" + i + ")").fadeIn("slow");
                } else {
                    $(_P.params.sliderId + " li:eq(" + i + ")").css("display", "none");
                }
            });
			
            _P.first = range;
            
			//load "viewing x - y of z"
			$(_P.params.sliderId + " .showing").html([
				"Viewing <strong>",
				start,
				" - ",
				range,
				"</strong> of <strong>",
				_P.count,
				"</strong>"].join(""));
        },

        tooltip: {
            show: function (e, $o) {
                var v = _P.tooltip.getViewport();
                var pageX = _P.tooltip.getMouseCoord(v, e)[0] + 15;
                var pageY = _P.tooltip.getMouseCoord(v, e)[1];
                $o.find(".slider_pointer_right").addClass("slider_pointer_left").removeClass("slider_pointer_right");
                if (pageX + $o.width() > v.innerWidth + v.pageXOffset) {
                    pageX = pageX - $o.width() - 30;
                    $o.find(".inner").addClass("inner_right");
                    $o.find(".slider_pointer_left").addClass("slider_pointer_right").removeClass("slider_pointer_left");
                }
                $o.css("left", pageX).css("top", pageY).css("display", "block");
            },
            hide: function (e, $o) {
                $o.css("display", "none");
            },
            getMouseCoord: function (v, e) {
                (!e) ? e = window.event : e = e;
                (e.pageX) ? v.pageX = e.pageX : v.pageX = e.clientX + v.scrollLeft;
                (e.pageY) ? v.pageY = e.pageY : v.pageY = e.clientY + v.scrollTop;
                return [e.pageX, e.pageY];
            },
            getViewport: function () {
                var viewport = {}
                if (self.innerHeight) {
                    viewport.pageYOffset = self.pageYOffset;
                    viewport.pageXOffset = self.pageXOffset;
                    viewport.innerHeight = self.innerHeight;
                    viewport.innerWidth = self.innerWidth;
                } else if (document.documentElement && document.documentElement.clientHeight) {
                    viewport.pageYOffset = document.documentElement.scrollTop;
                    viewport.pageXOffset = document.documentElement.scrollLeft;
                    viewport.innerHeight = document.documentElement.clientHeight;
                    viewport.innerWidth = document.documentElement.clientWidth;
                }
                return viewport;
            }
        }
    };

    return {
        init: function (params) {
            _P.init(params);
        }
    };

} ();



var SLIDER2 = function () {
    var _P = {
        init: function (params) {
            _P.params = params;
            _P.loadXml();
        },
        params: null,
        data: null,
        loadXml: function () {			
            $.ajax({
                type: "GET",
                url: _P.params.xmlPath,
                dataType: "xml",
                success: function (data) {
                    _P.data = data;
                    _P.max = _P.params.perView;
                    _P.count = $("sliderItem", data).length;
                    _P.preloadSlider();
                    _P.browseSliderItems();
                }
            });
        },
        first: 0,
        max: 0,
        count: 0,

        preloadSlider: function () {
			$("ul", _P.params.sliderId).empty();
			
			$("sliderItem", _P.data).each(function (i) {
                var title = $.trim($("title", this).text());
                var href = $.trim($("href", this).text());
                $("ul", _P.params.sliderId).append([
					"<li><a href='",
					href,
					"' class='thumb'><img src='",
					$.trim($("image > src", this).text()),
					"' width='",
					$("image", this).attr("width"),
					"' height='",
					$("image", this).attr("height"),
					"' alt='",
					title,
					"' /></a></li>"].join(""));
            });
			
            $(_P.params.sliderId + " .prev").click(function () {
                _P.browseSliderItems("prev");
                return false;
            });
            $(_P.params.sliderId + " .next").click(function () {
                _P.browseSliderItems("next");
                return false;
            });
        },

        browseSliderItems: function (browse) {			
            if (browse == "prev") {
                if (_P.first == _P.count && (_P.count % _P.max > 0)) {
                    _P.first = _P.first - ((_P.count % _P.max) + _P.max);
                } else {
                    _P.first = _P.first - (_P.max * 2);
                }
            }
			
			//initial load
			if (browse == "" || browse == null) {
				_P.first = 0;
			}
			
            var range = _P.first + _P.max;
            var start = 1;
            if (range > _P.max) {
                start = ((range - _P.max) + 1);
            }

            if (_P.first == 0) {
                $(_P.params.sliderId + " .prev").css("visibility", "hidden");
            } else {
                $(_P.params.sliderId + " .prev").css("visibility", "visible");
            }

            if (range < _P.count) {
                $(_P.params.sliderId + " .next").css("visibility", "visible");
            } else if (range >= _P.count) {
                range = _P.count;
                $(_P.params.sliderId + " .next").css("visibility", "hidden");
            }

			//load images
            $("sliderItem", _P.data).each(function (i) {
                if (i >= _P.first && i < range) {
                    $(_P.params.sliderId + " li:eq(" + i + ")").fadeIn("slow");
                } else {
                    $(_P.params.sliderId + " li:eq(" + i + ")").css("display", "none");
                }
            });
			
            _P.first = range;
            
			//load "viewing x - y of z"
			$(_P.params.sliderId + " .showing").html([
				"Viewing <strong>",
				start,
				" - ",
				range,
				"</strong> of <strong>",
				_P.count,
				"</strong>"].join(""));
        },

        tooltip: {
            show: function (e, $o) {
                var v = _P.tooltip.getViewport();
                var pageX = _P.tooltip.getMouseCoord(v, e)[0] + 15;
                var pageY = _P.tooltip.getMouseCoord(v, e)[1];
                $o.find(".slider_pointer_right").addClass("slider_pointer_left").removeClass("slider_pointer_right");
                if (pageX + $o.width() > v.innerWidth + v.pageXOffset) {
                    pageX = pageX - $o.width() - 30;
                    $o.find(".inner").addClass("inner_right");
                    $o.find(".slider_pointer_left").addClass("slider_pointer_right").removeClass("slider_pointer_left");
                }
                $o.css("left", pageX).css("top", pageY).css("display", "block");
            },
            hide: function (e, $o) {
                $o.css("display", "none");
            },
            getMouseCoord: function (v, e) {
                (!e) ? e = window.event : e = e;
                (e.pageX) ? v.pageX = e.pageX : v.pageX = e.clientX + v.scrollLeft;
                (e.pageY) ? v.pageY = e.pageY : v.pageY = e.clientY + v.scrollTop;
                return [e.pageX, e.pageY];
            },
            getViewport: function () {
                var viewport = {}
                if (self.innerHeight) {
                    viewport.pageYOffset = self.pageYOffset;
                    viewport.pageXOffset = self.pageXOffset;
                    viewport.innerHeight = self.innerHeight;
                    viewport.innerWidth = self.innerWidth;
                } else if (document.documentElement && document.documentElement.clientHeight) {
                    viewport.pageYOffset = document.documentElement.scrollTop;
                    viewport.pageXOffset = document.documentElement.scrollLeft;
                    viewport.innerHeight = document.documentElement.clientHeight;
                    viewport.innerWidth = document.documentElement.clientWidth;
                }
                return viewport;
            }
        }
    };

    return {
        init: function (params) {
            _P.init(params);
        }
    };

} ();



var SLIDER3 = function () {
    var _P = {
        init: function (params) {
            _P.params = params;
            _P.loadXml();
        },
        params: null,
        data: null,
        loadXml: function () {			
            $.ajax({
                type: "GET",
                url: _P.params.xmlPath,
                dataType: "xml",
                success: function (data) {
                    _P.data = data;
                    _P.max = _P.params.perView;
                    _P.count = $("sliderItem", data).length;
                    _P.preloadSlider();
                    _P.browseSliderItems();
                }
            });
        },
        first: 0,
        max: 0,
        count: 0,

        preloadSlider: function () {
			$("ul", _P.params.sliderId).empty();
			
			$("sliderItem", _P.data).each(function (i) {
                var title = $.trim($("title", this).text());
                var href = $.trim($("href", this).text());
                $("ul", _P.params.sliderId).append([
					"<li><a href='",
					href,
					"' class='thumb'><img src='",
					$.trim($("image > src", this).text()),
					"' width='",
					$("image", this).attr("width"),
					"' height='",
					$("image", this).attr("height"),
					"' alt='",
					title,
					"' /></a></li>"].join(""));
            });
			
            $(_P.params.sliderId + " .prev").click(function () {
                _P.browseSliderItems("prev");
                return false;
            });
            $(_P.params.sliderId + " .next").click(function () {
                _P.browseSliderItems("next");
                return false;
            });
        },

        browseSliderItems: function (browse) {			
            if (browse == "prev") {
                if (_P.first == _P.count && (_P.count % _P.max > 0)) {
                    _P.first = _P.first - ((_P.count % _P.max) + _P.max);
                } else {
                    _P.first = _P.first - (_P.max * 2);
                }
            }
			
			//initial load
			if (browse == "" || browse == null) {
				_P.first = 0;
			}
			
            var range = _P.first + _P.max;
            var start = 1;
            if (range > _P.max) {
                start = ((range - _P.max) + 1);
            }

            if (_P.first == 0) {
                $(_P.params.sliderId + " .prev").css("visibility", "hidden");
            } else {
                $(_P.params.sliderId + " .prev").css("visibility", "visible");
            }

            if (range < _P.count) {
                $(_P.params.sliderId + " .next").css("visibility", "visible");
            } else if (range >= _P.count) {
                range = _P.count;
                $(_P.params.sliderId + " .next").css("visibility", "hidden");
            }

			//load images
            $("sliderItem", _P.data).each(function (i) {
                if (i >= _P.first && i < range) {
                    $(_P.params.sliderId + " li:eq(" + i + ")").fadeIn("slow");
                } else {
                    $(_P.params.sliderId + " li:eq(" + i + ")").css("display", "none");
                }
            });
			
            _P.first = range;
            
			//load "viewing x - y of z"
			$(_P.params.sliderId + " .showing").html([
				"Viewing <strong>",
				start,
				" - ",
				range,
				"</strong> of <strong>",
				_P.count,
				"</strong>"].join(""));
        },

        tooltip: {
            show: function (e, $o) {
                var v = _P.tooltip.getViewport();
                var pageX = _P.tooltip.getMouseCoord(v, e)[0] + 15;
                var pageY = _P.tooltip.getMouseCoord(v, e)[1];
                $o.find(".slider_pointer_right").addClass("slider_pointer_left").removeClass("slider_pointer_right");
                if (pageX + $o.width() > v.innerWidth + v.pageXOffset) {
                    pageX = pageX - $o.width() - 30;
                    $o.find(".inner").addClass("inner_right");
                    $o.find(".slider_pointer_left").addClass("slider_pointer_right").removeClass("slider_pointer_left");
                }
                $o.css("left", pageX).css("top", pageY).css("display", "block");
            },
            hide: function (e, $o) {
                $o.css("display", "none");
            },
            getMouseCoord: function (v, e) {
                (!e) ? e = window.event : e = e;
                (e.pageX) ? v.pageX = e.pageX : v.pageX = e.clientX + v.scrollLeft;
                (e.pageY) ? v.pageY = e.pageY : v.pageY = e.clientY + v.scrollTop;
                return [e.pageX, e.pageY];
            },
            getViewport: function () {
                var viewport = {}
                if (self.innerHeight) {
                    viewport.pageYOffset = self.pageYOffset;
                    viewport.pageXOffset = self.pageXOffset;
                    viewport.innerHeight = self.innerHeight;
                    viewport.innerWidth = self.innerWidth;
                } else if (document.documentElement && document.documentElement.clientHeight) {
                    viewport.pageYOffset = document.documentElement.scrollTop;
                    viewport.pageXOffset = document.documentElement.scrollLeft;
                    viewport.innerHeight = document.documentElement.clientHeight;
                    viewport.innerWidth = document.documentElement.clientWidth;
                }
                return viewport;
            }
        }
    };

    return {
        init: function (params) {
            _P.init(params);
        }
    };

} ();

