﻿
/*!
* jQuery UI Widget 1.8.4
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Widget
*/
(function(b, j) {
    var k = b.fn.remove; b.fn.remove = function(a, c) { return this.each(function() { if (!c) if (!a || b.filter(a, [this]).length) b("*", this).add([this]).each(function() { b(this).triggerHandler("remove") }); return k.call(b(this), a, c) }) }; b.widget = function(a, c, d) {
        var e = a.split(".")[0], f; a = a.split(".")[1]; f = e + "-" + a; if (!d) { d = c; c = b.Widget } b.expr[":"][f] = function(h) { return !!b.data(h, a) }; b[e] = b[e] || {}; b[e][a] = function(h, g) { arguments.length && this._createWidget(h, g) }; c = new c; c.options = b.extend(true, {}, c.options);
        b[e][a].prototype = b.extend(true, c, { namespace: e, widgetName: a, widgetEventPrefix: b[e][a].prototype.widgetEventPrefix || a, widgetBaseClass: f }, d); b.widget.bridge(a, b[e][a])
    }; b.widget.bridge = function(a, c) {
        b.fn[a] = function(d) {
            var e = typeof d === "string", f = Array.prototype.slice.call(arguments, 1), h = this; d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d; if (e && d.substring(0, 1) === "_") return h; e ? this.each(function() { var g = b.data(this, a), i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g; if (i !== g && i !== j) { h = i; return false } }) :
this.each(function() { var g = b.data(this, a); if (g) { d && g.option(d); g._init() } else b.data(this, a, new c(d, this)) }); return h
        }
    }; b.Widget = function(a, c) { arguments.length && this._createWidget(a, c) }; b.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", options: { disabled: false }, _createWidget: function(a, c) {
        b.data(c, this.widgetName, this); this.element = b(c); this.options = b.extend(true, {}, this.options, b.metadata && b.metadata.get(c)[this.widgetName], a); var d = this; this.element.bind("remove." + this.widgetName, function() { d.destroy() });
        this._create(); this._init()
    }, _create: function() { }, _init: function() { }, destroy: function() { this.element.unbind("." + this.widgetName).removeData(this.widgetName); this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled") }, widget: function() { return this.element }, option: function(a, c) {
        var d = a, e = this; if (arguments.length === 0) return b.extend({}, e.options); if (typeof a === "string") { if (c === j) return this.options[a]; d = {}; d[a] = c } b.each(d, function(f,
h) { e._setOption(f, h) }); return e
    }, _setOption: function(a, c) { this.options[a] = c; if (a === "disabled") this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c); return this }, enable: function() { return this._setOption("disabled", false) }, disable: function() { return this._setOption("disabled", true) }, _trigger: function(a, c, d) {
        var e = this.options[a]; c = b.Event(c); c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase(); d = d || {}; if (c.originalEvent) {
            a =
b.event.props.length; for (var f; a; ) { f = b.event.props[--a]; c[f] = c.originalEvent[f] }
        } this.element.trigger(c, d); return !(b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented())
    }
    }
})(jQuery);
;

/*
* jQuery SmoothDivScroll 1.0
*
* Copyright (c) 2010 Thomas Kahn
* Licensed under the GPL license.
*
* http://www.maaki.com/thomas/SmoothDivScroll/
*
* Depends:
* jquery.ui.widget.js
*
*/
(function($) { $.widget("thomaskahn.smoothDivScroll", { options: { scrollingHotSpotLeft: "div.scroll-hot-left", scrollingHotSpotRight: "div.scroll-hot-right", scrollableArea: "div.scroll-area", scrollWrapper: "div.scroll-wrapper", hiddenOnStart: false, ajaxContentURL: "", countOnlyClass: "", scrollStep: 15, scrollInterval: 10, mouseDownSpeedBooster: 3, autoScroll: "", autoScrollDirection: "right", autoScrollStep: 5, autoScrollInterval: 10, visibleHotSpots: "", hotSpotsVisibleTime: 5, startAtElementId: "" }, _create: function() { var self = this, o = this.options, el = this.element; el.data("scrollWrapper", el.find(o.scrollWrapper)); el.data("scrollingHotSpotRight", el.find(o.scrollingHotSpotRight)); el.data("scrollingHotSpotLeft", el.find(o.scrollingHotSpotLeft)); el.data("scrollableArea", el.find(o.scrollableArea)); el.data("speedBooster", 1); el.data("motherElementOffset", el.offset().left); el.data("scrollXPos", 0); el.data("hotSpotWidth", el.find(o.scrollingHotSpotLeft).width()); el.data("scrollableAreaWidth", 0); el.data("startingPosition", 0); el.data("rightScrollInterval", null); el.data("leftScrollInterval", null); el.data("autoScrollInterval", null); el.data("hideHotSpotBackgroundsInterval", null); el.data("previousScrollLeft", 0); el.data("pingPongDirection", "right"); el.data("getNextElementWidth", true); el.data("swapAt", null); el.data("startAtElementHasNotPassed", true); el.data("swappedElement", null); el.data("originalElements", el.data("scrollableArea").children(o.countOnlyClass)); el.data("visible", true); self.recalculateScrollableArea(); el.data("scrollWrapper").scrollLeft(el.data("startingPosition")); if (o.autoScroll !== "always") { switch (o.visibleHotSpots) { case "always": self.showHotSpotBackgrounds(); break; case "onstart": self.showHotSpotBackgrounds(); el.data("hideHotSpotBackgroundsInterval", setTimeout(function() { self.hideHotSpotBackgrounds("slow") }, (o.hotSpotsVisibleTime * 1000))); break; default: break } } el.data("scrollingHotSpotRight").bind("mousemove", function(e) { var x = e.pageX - (this.offsetLeft + el.data("motherElementOffset")); el.data("scrollXPos", Math.round((x / el.data("hotSpotWidth")) * o.scrollStep)); if (el.data("scrollXPos") === Infinity) { el.data("scrollXPos", 0) } }); el.data("scrollingHotSpotRight").bind("mouseover", function() { if ((o.autoScroll === "onstart" && el.data("autoScrollInterval") !== null)) { clearInterval(el.data("autoScrollInterval")); el.data("autoScrollInterval", null); self._trigger("autoScrollIntervalStopped") } el.data("rightScrollInterval", setInterval(function() { if (el.data("scrollXPos") > 0) { el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() + (el.data("scrollXPos") * el.data("speedBooster"))); self._showHideHotSpots() } }, o.scrollInterval)); self._trigger("mouseOverRightHotSpot") }); el.data("scrollingHotSpotRight").bind("mouseout", function() { clearInterval(el.data("rightScrollInterval")); el.data("scrollXPos", 0) }); el.data("scrollingHotSpotRight").bind("mousedown", function() { el.data("speedBooster", o.mouseDownSpeedBooster) }); $("body").bind("mouseup", function() { el.data("speedBooster", 1) }); el.data("scrollingHotSpotLeft").bind("mousemove", function(e) { var x = el.data("scrollingHotSpotLeft").innerWidth() - (e.pageX - el.data("motherElementOffset")); el.data("scrollXPos", Math.round((x / el.data("hotSpotWidth")) * o.scrollStep)); if (el.data("scrollXPos") === Infinity) { el.data("scrollXPos", 0) } }); el.data("scrollingHotSpotLeft").bind("mouseover", function() { if ((o.autoScroll === "onstart" && el.data("autoScrollInterval") !== null)) { clearInterval(el.data("autoScrollInterval")); el.data("autoScrollInterval", null); self._trigger("autoScrollIntervalStopped") } el.data("leftScrollInterval", setInterval(function() { if (el.data("scrollXPos") > 0) { el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() - (el.data("scrollXPos") * el.data("speedBooster"))); self._showHideHotSpots() } }, o.scrollInterval)); self._trigger("mouseOverLeftHotSpot") }); el.data("scrollingHotSpotLeft").bind("mouseout", function() { clearInterval(el.data("leftScrollInterval")); el.data("scrollXPos", 0) }); el.data("scrollingHotSpotLeft").bind("mousedown", function() { el.data("speedBooster", o.mouseDownSpeedBooster) }); $(window).bind("resize", function() { if (!(o.hiddenOnStart)) { self._showHideHotSpots() } self._trigger("windowResized") }); if (o.autoScroll !== "" && !(o.hiddenOnStart)) { self.startAutoScroll() } if (o.hiddenOnStart) { self.hide() } }, showHotSpotBackgrounds: function(fadeSpeed) { var self = this, el = this.element; if (fadeSpeed !== undefined) { el.data("scrollingHotSpotLeft").css("opacity", "0.0"); el.data("scrollingHotSpotRight").css("opacity", "0.0"); el.data("scrollingHotSpotLeft").addClass("scrolling-hot-left"); el.data("scrollingHotSpotRight").addClass("scrolling-hot-right"); el.data("scrollingHotSpotLeft").fadeTo(fadeSpeed, 0.35); el.data("scrollingHotSpotRight").fadeTo(fadeSpeed, 0.35) } else { el.data("scrollingHotSpotLeft").addClass("scrolling-hot-left"); el.data("scrollingHotSpotLeft").removeAttr("style"); el.data("scrollingHotSpotRight").addClass("scrolling-hot-right"); el.data("scrollingHotSpotRight").removeAttr("style") } self._showHideHotSpots() }, hideHotSpotBackgrounds: function(fadeSpeed) { var el = this.element; if (fadeSpeed !== undefined) { el.data("scrollingHotSpotLeft").fadeTo(fadeSpeed, 0.0, function() { el.data("scrollingHotSpotLeft").removeClass("scrolling-hot-left") }); el.data("scrollingHotSpotRight").fadeTo(fadeSpeed, 0.0, function() { el.data("scrollingHotSpotRight").removeClass("scrolling-hot-right") }) } else { el.data("scrollingHotSpotLeft").removeClass("scrolling-hot-left"); el.data("scrollingHotSpotLeft").removeAttr("style"); el.data("scrollingHotSpotRight").removeClass("scrolling-hot-right"); el.data("scrollingHotSpotRight").removeAttr("style") } }, _showHideHotSpots: function() { var self = this, el = this.element, o = this.options; if (o.autoScroll !== "always") { if (el.data("scrollableAreaWidth") <= (el.data("scrollWrapper").innerWidth())) { el.data("scrollingHotSpotLeft").hide(); el.data("scrollingHotSpotRight").hide() } else if (el.data("scrollWrapper").scrollLeft() === 0) { el.data("scrollingHotSpotLeft").hide(); el.data("scrollingHotSpotRight").show(); self._trigger("scrollLeftLimitReached"); clearInterval(el.data("leftScrollInterval")); el.data("leftScrollInterval", null) } else if (el.data("scrollableAreaWidth") <= (el.data("scrollWrapper").innerWidth() + el.data("scrollWrapper").scrollLeft())) { el.data("scrollingHotSpotLeft").show(); el.data("scrollingHotSpotRight").hide(); self._trigger("scrollRightLimitReached"); clearInterval(el.data("rightScrollInterval")); el.data("rightScrollInterval", null) } else { el.data("scrollingHotSpotLeft").show(); el.data("scrollingHotSpotRight").show() } } else { el.data("scrollingHotSpotLeft").hide(); el.data("scrollingHotSpotRight").hide() } }, moveToElement: function(moveTo, elementNumber) { var self = this, el = this.element, o = this.options, tempScrollableAreaWidth = 0, foundStartAtElement = false; switch (moveTo) { case "first": el.data("scrollXPos", 0); self._trigger("movedToFirstElement"); break; case "start": el.data("scrollableArea").children(o.countOnlyClass).each(function() { if ((o.startAtElementId.length !== 0) && (($(this).attr("id")) === o.startAtElementId)) { el.data("startingPosition", tempScrollableAreaWidth); foundStartAtElement = true } tempScrollableAreaWidth = tempScrollableAreaWidth + $(this).outerWidth(true) }); el.data("scrollXPos", el.data("startingPosition")); self._trigger("movedToStartElement"); break; case "last": el.data("scrollXPos", el.data("scrollableAreaWidth")); self._trigger("movedToLastElement"); break; case "number": if (!(isNaN(elementNumber))) { el.data("scrollableArea").children(o.countOnlyClass).each(function(index) { if (index === (elementNumber - 1)) { el.data("scrollXPos", tempScrollableAreaWidth) } tempScrollableAreaWidth = tempScrollableAreaWidth + $(this).outerWidth(true) }) } self._trigger("movedToElementNumber", null, { "elementNumber": elementNumber }); break; default: break } el.data("scrollWrapper").scrollLeft(el.data("scrollXPos")); self._showHideHotSpots() }, addContent: function(ajaxContentURL, addWhere) { var self = this, el = this.element; $.get(ajaxContentURL, function(data) { if (addWhere === "first") { el.data("scrollableArea").children(":first").before(data) } else { el.data("scrollableArea").children(":last").after(data) } self.recalculateScrollableArea(); self._showHideHotSpots() }) }, replaceContent: function(ajaxContentURL) { var self = this, el = this.element; el.data("scrollableArea").load(ajaxContentURL, function() { self.recalculateScrollableArea(); self.moveToElement("first"); self._showHideHotSpots(); el.data("startingPosition", 0) }) }, recalculateScrollableArea: function() { var tempScrollableAreaWidth = 0, foundStartAtElement = false, o = this.options, el = this.element; el.data("scrollableArea").children(o.countOnlyClass).each(function() { if ((o.startAtElementId.length !== 0) && (($(this).attr("id")) === o.startAtElementId)) { el.data("startingPosition", tempScrollableAreaWidth); foundStartAtElement = true } tempScrollableAreaWidth = tempScrollableAreaWidth + $(this).outerWidth(true) }); if (!(foundStartAtElement)) { el.data("startAtElementId", "") } el.data("scrollableAreaWidth", tempScrollableAreaWidth); el.data("scrollableArea").width(el.data("scrollableAreaWidth")) }, stopAutoScroll: function() { var self = this, el = this.element; clearInterval(el.data("autoScrollInterval")); el.data("autoScrollInterval", null); self._showHideHotSpots(); self._trigger("autoScrollStopped") }, startAutoScroll: function() { var self = this, el = this.element, o = this.options; self._showHideHotSpots(); clearInterval(el.data("autoScrollInterval")); el.data("autoScrollInterval", null); self._trigger("autoScrollStarted"); el.data("autoScrollInterval", setInterval(function() { if (!(el.data("visible")) || (el.data("scrollableAreaWidth") <= (el.data("scrollWrapper").innerWidth()))) { clearInterval(el.data("autoScrollInterval")); el.data("autoScrollInterval", null) } el.data("previousScrollLeft", el.data("scrollWrapper").scrollLeft()); switch (o.autoScrollDirection) { case "right": el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() + o.autoScrollStep); if (el.data("previousScrollLeft") === el.data("scrollWrapper").scrollLeft()) { self._trigger("autoScrollRightLimitReached"); clearInterval(el.data("autoScrollInterval")); el.data("autoScrollInterval", null); self._trigger("autoScrollIntervalStopped") } break; case "left": el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() - o.autoScrollStep); if (el.data("previousScrollLeft") === el.data("scrollWrapper").scrollLeft()) { self._trigger("autoScrollLeftLimitReached"); clearInterval(el.data("autoScrollInterval")); el.data("autoScrollInterval", null); self._trigger("autoScrollIntervalStopped") } break; case "backandforth": if (el.data("pingPongDirection") === "right") { el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() + (o.autoScrollStep)) } else { el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() - (o.autoScrollStep)) } if (el.data("previousScrollLeft") === el.data("scrollWrapper").scrollLeft()) { if (el.data("pingPongDirection") === "right") { el.data("pingPongDirection", "left"); self._trigger("autoScrollRightLimitReached") } else { el.data("pingPongDirection", "right"); self._trigger("autoScrollLeftLimitReached") } } break; case "endlessloopright": if (el.data("getNextElementWidth")) { if ((o.startAtElementId !== "") && (el.data("startAtElementHasNotPassed"))) { el.data("swapAt", $("#" + o.startAtElementId).outerWidth(true)); el.data("startAtElementHasNotPassed", false) } else { el.data("swapAt", el.data("scrollableArea").children(":first").outerWidth(true)) } el.data("getNextElementWidth", false) } el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() + o.autoScrollStep); if (el.data("swapAt") <= el.data("scrollWrapper").scrollLeft()) { el.data("swappedElement", el.data("scrollableArea").children(":first").detach()); el.data("scrollableArea").append(el.data("swappedElement")); el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() - el.data("swappedElement").outerWidth(true)); el.data("getNextElementWidth", true) } break; case "endlessloopleft": if (el.data("getNextElementWidth")) { if ((o.startAtElementId !== "") && (el.data("startAtElementHasNotPassed"))) { el.data("swapAt", $("#" + o.startAtElementId).outerWidth(true)); el.data("startAtElementHasNotPassed", false) } else { el.data("swapAt", el.data("scrollableArea").children(":first").outerWidth(true)) } el.data("getNextElementWidth", false) } el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() - o.autoScrollStep); if (el.data("scrollWrapper").scrollLeft() === 0) { el.data("swappedElement", el.data("scrollableArea").children(":last").detach()); el.data("scrollableArea").prepend(el.data("swappedElement")); el.data("scrollWrapper").scrollLeft(el.data("scrollWrapper").scrollLeft() + el.data("swappedElement").outerWidth(true)); el.data("getNextElementWidth", true) } break; default: break } }, o.autoScrollInterval)) }, restoreOriginalElements: function() { var self = this, el = this.element; el.data("scrollableArea").html(el.data("originalElements")); self.recalculateScrollableArea(); self.moveToElement("first") }, show: function() { var el = this.element; el.data("visible", true); el.show() }, hide: function() { var el = this.element; el.data("visible", false); el.hide() }, destroy: function() { var el = this.element; clearInterval(el.data("autoScrollInterval")); clearInterval(el.data("rightScrollInterval")); clearInterval(el.data("leftScrollInterval")); clearInterval(el.data("hideHotSpotBackgroundsInterval")); el.data("scrollingHotSpotRight").unbind("mouseover"); el.data("scrollingHotSpotRight").unbind("mouseout"); el.data("scrollingHotSpotRight").unbind("mousedown"); el.data("scrollingHotSpotLeft").unbind("mouseover"); el.data("scrollingHotSpotLeft").unbind("mouseout"); el.data("scrollingHotSpotLeft").unbind("mousedown"); el.data("scrollableArea").html(el.data("originalElements")); el.data("scrollableArea").removeAttr("style"); el.data("scrollingHotSpotRight").removeAttr("style"); el.data("scrollingHotSpotLeft").removeAttr("style"); el.data("scrollWrapper").scrollLeft(0); el.data("scrollingHotSpotLeft").removeClass("scrolling-hot-left"); el.data("scrollingHotSpotRight").removeClass("scrolling-hot-right"); el.data("scrollingHotSpotRight").hide(); el.data("scrollingHotSpotLeft").hide(); $.Widget.prototype.destroy.apply(this, arguments) } }) })(jQuery);




/*
* jScrollPane - v2.0.0beta6 - 2010-10-28
* http://jscrollpane.kelvinluck.com/
*
* Copyright (c) 2010 Kelvin Luck
* Dual licensed under the MIT and GPL licenses.
*/
(function(b, a, c) {
    b.fn.jScrollPane = function(f) {
        function d(C, L) {
            var au, N = this, V, ah, v, aj, Q, W, y, q, av, aB, ap, i, H, h, j, X, R, al, U, t, A, am, ac, ak, F, l, ao, at, x, aq, aE, g, aA, ag = true, M = true, aD = false, k = false, Z = b.fn.mwheelIntent ? "mwheelIntent.jsp" : "mousewheel.jsp"; aE = C.css("paddingTop") + " " + C.css("paddingRight") + " " + C.css("paddingBottom") + " " + C.css("paddingLeft"); g = (parseInt(C.css("paddingLeft")) || 0) + (parseInt(C.css("paddingRight")) || 0); an(L); function an(aH) { var aL, aK, aJ, aG, aF, aI; au = aH; if (V == c) { C.css({ overflow: "hidden", padding: 0 }); ah = C.innerWidth() + g; v = C.innerHeight(); C.width(ah); V = b('<div class="jspPane" />').wrap(b('<div class="jspContainer" />').css({ width: ah + "px", height: v + "px" })); C.wrapInner(V.parent()); aj = C.find(">.jspContainer"); V = aj.find(">.jspPane"); V.css("padding", aE) } else { C.css("width", ""); aI = C.outerWidth() + g != ah || C.outerHeight() != v; if (aI) { ah = C.innerWidth() + g; v = C.innerHeight(); aj.css({ width: ah + "px", height: v + "px" }) } aA = V.innerWidth(); if (!aI && V.outerWidth() == Q && V.outerHeight() == W) { if (aB || av) { V.css("width", aA + "px"); C.css("width", (aA + g) + "px") } return } V.css("width", ""); C.css("width", (ah) + "px"); aj.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end() } aL = V.clone().css("position", "absolute"); aK = b('<div style="width:1px; position: relative;" />').append(aL); b("body").append(aK); Q = Math.max(V.outerWidth(), aL.outerWidth()); aK.remove(); W = V.outerHeight(); y = Q / ah; q = W / v; av = q > 1; aB = y > 1; if (!(aB || av)) { C.removeClass("jspScrollable"); V.css({ top: 0, width: aj.width() - g }); n(); D(); O(); w(); af() } else { C.addClass("jspScrollable"); aJ = au.maintainPosition && (H || X); if (aJ) { aG = ay(); aF = aw() } aC(); z(); E(); if (aJ) { K(aG); J(aF) } I(); ad(); if (au.enableKeyboardNavigation) { P() } if (au.clickOnTrack) { p() } B(); if (au.hijackInternalLinks) { m() } } if (au.autoReinitialise && !aq) { aq = setInterval(function() { an(au) }, au.autoReinitialiseDelay) } else { if (!au.autoReinitialise && aq) { clearInterval(aq) } } C.trigger("jsp-initialised", [aB || av]) } function aC() { if (av) { aj.append(b('<div class="jspVerticalBar" />').append(b('<div class="jspCap jspCapTop" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragTop" />'), b('<div class="jspDragBottom" />'))), b('<div class="jspCap jspCapBottom" />'))); R = aj.find(">.jspVerticalBar"); al = R.find(">.jspTrack"); ap = al.find(">.jspDrag"); if (au.showArrows) { am = b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp", az(0, -1)).bind("click.jsp", ax); ac = b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp", az(0, 1)).bind("click.jsp", ax); if (au.arrowScrollOnHover) { am.bind("mouseover.jsp", az(0, -1, am)); ac.bind("mouseover.jsp", az(0, 1, ac)) } ai(al, au.verticalArrowPositions, am, ac) } t = v; aj.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function() { t -= b(this).outerHeight() }); ap.hover(function() { ap.addClass("jspHover") }, function() { ap.removeClass("jspHover") }).bind("mousedown.jsp", function(aF) { b("html").bind("dragstart.jsp selectstart.jsp", function() { return false }); ap.addClass("jspActive"); var s = aF.pageY - ap.position().top; b("html").bind("mousemove.jsp", function(aG) { S(aG.pageY - s, false) }).bind("mouseup.jsp mouseleave.jsp", ar); return false }); o() } } function o() { al.height(t + "px"); H = 0; U = au.verticalGutter + al.outerWidth(); V.width(ah - U - g); if (R.position().left == 0) { V.css("margin-left", U + "px") } } function z() {
                if (aB) {
                    aj.append(b('<div class="jspHorizontalBar" />').append(b('<div class="jspCap jspCapLeft" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragLeft" />'), b('<div class="jspDragRight" />'))), b('<div class="jspCap jspCapRight" />'))); ak = aj.find(">.jspHorizontalBar"); F = ak.find(">.jspTrack"); h = F.find(">.jspDrag"); if (au.showArrows) {
                        at = b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp", az(-1, 0)).bind("click.jsp", ax); x = b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp", az(1, 0)).bind("click.jsp", ax); if (au.arrowScrollOnHover) {
                            at.bind("mouseover.jsp", az(-1, 0, at));
                            x.bind("mouseover.jsp", az(1, 0, x))
                        } ai(F, au.horizontalArrowPositions, at, x)
                    } h.hover(function() { h.addClass("jspHover") }, function() { h.removeClass("jspHover") }).bind("mousedown.jsp", function(aF) { b("html").bind("dragstart.jsp selectstart.jsp", function() { return false }); h.addClass("jspActive"); var s = aF.pageX - h.position().left; b("html").bind("mousemove.jsp", function(aG) { T(aG.pageX - s, false) }).bind("mouseup.jsp mouseleave.jsp", ar); return false }); l = aj.innerWidth(); ae()
                } else { }
            } function ae() { aj.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function() { l -= b(this).outerWidth() }); F.width(l + "px"); X = 0 } function E() { if (aB && av) { var aF = F.outerHeight(), s = al.outerWidth(); t -= aF; b(ak).find(">.jspCap:visible,>.jspArrow").each(function() { l += b(this).outerWidth() }); l -= s; v -= s; ah -= aF; F.parent().append(b('<div class="jspCorner" />').css("width", aF + "px")); o(); ae() } if (aB) { V.width((aj.outerWidth() - g) + "px") } W = V.outerHeight(); q = W / v; if (aB) { ao = 1 / y * l; if (ao > au.horizontalDragMaxWidth) { ao = au.horizontalDragMaxWidth } else { if (ao < au.horizontalDragMinWidth) { ao = au.horizontalDragMinWidth } } h.width(ao + "px"); j = l - ao; ab(X) } if (av) { A = 1 / q * t; if (A > au.verticalDragMaxHeight) { A = au.verticalDragMaxHeight } else { if (A < au.verticalDragMinHeight) { A = au.verticalDragMinHeight } } ap.height(A + "px"); i = t - A; aa(H) } } function ai(aG, aI, aF, s) { var aK = "before", aH = "after", aJ; if (aI == "os") { aI = /Mac/.test(navigator.platform) ? "after" : "split" } if (aI == aK) { aH = aI } else { if (aI == aH) { aK = aI; aJ = aF; aF = s; s = aJ } } aG[aK](aF)[aH](s) } function az(aF, s, aG) { return function() { G(aF, s, this, aG); this.blur(); return false } } function G(aH, aF, aK, aJ) { aK = b(aK).addClass("jspActive"); var aI, s = function() { if (aH != 0) { T(X + aH * au.arrowButtonSpeed, false) } if (aF != 0) { S(H + aF * au.arrowButtonSpeed, false) } }, aG = setInterval(s, au.arrowRepeatFreq); s(); aI = aJ == c ? "mouseup.jsp" : "mouseout.jsp"; aJ = aJ || b("html"); aJ.bind(aI, function() { aK.removeClass("jspActive"); clearInterval(aG); aJ.unbind(aI) }) } function p() { w(); if (av) { al.bind("mousedown.jsp", function(aH) { if (aH.originalTarget == c || aH.originalTarget == aH.currentTarget) { var aG = b(this), s = setInterval(function() { var aI = aG.offset(), aJ = aH.pageY - aI.top; if (H + A < aJ) { S(H + au.trackClickSpeed) } else { if (aJ < H) { S(H - au.trackClickSpeed) } else { aF() } } }, au.trackClickRepeatFreq), aF = function() { s && clearInterval(s); s = null; b(document).unbind("mouseup.jsp", aF) }; b(document).bind("mouseup.jsp", aF); return false } }) } if (aB) { F.bind("mousedown.jsp", function(aH) { if (aH.originalTarget == c || aH.originalTarget == aH.currentTarget) { var aG = b(this), s = setInterval(function() { var aI = aG.offset(), aJ = aH.pageX - aI.left; if (X + ao < aJ) { T(X + au.trackClickSpeed) } else { if (aJ < X) { T(X - au.trackClickSpeed) } else { aF() } } }, au.trackClickRepeatFreq), aF = function() { s && clearInterval(s); s = null; b(document).unbind("mouseup.jsp", aF) }; b(document).bind("mouseup.jsp", aF); return false } }) } } function w() { F && F.unbind("mousedown.jsp"); al && al.unbind("mousedown.jsp") } function ar() { b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp"); ap && ap.removeClass("jspActive"); h && h.removeClass("jspActive") } function S(s, aF) { if (!av) { return } if (s < 0) { s = 0 } else { if (s > i) { s = i } } if (aF == c) { aF = au.animateScroll } if (aF) { N.animate(ap, "top", s, aa) } else { ap.css("top", s); aa(s) } } function aa(aF) { if (aF == c) { aF = ap.position().top } aj.scrollTop(0); H = aF; var aI = H == 0, aG = H == i, aH = aF / i, s = -aH * (W - v); if (ag != aI || aD != aG) { ag = aI; aD = aG; C.trigger("jsp-arrow-change", [ag, aD, M, k]) } u(aI, aG); V.css("top", s); C.trigger("jsp-scroll-y", [-s, aI, aG]) } function T(aF, s) { if (!aB) { return } if (aF < 0) { aF = 0 } else { if (aF > j) { aF = j } } if (s == c) { s = au.animateScroll } if (s) { N.animate(h, "left", aF, ab) } else { h.css("left", aF); ab(aF) } } function ab(aF) { if (aF == c) { aF = h.position().left } aj.scrollTop(0); X = aF; var aI = X == 0, aH = X == j, aG = aF / j, s = -aG * (Q - ah); if (M != aI || k != aH) { M = aI; k = aH; C.trigger("jsp-arrow-change", [ag, aD, M, k]) } r(aI, aH); V.css("left", s); C.trigger("jsp-scroll-x", [-s, aI, aH]) } function u(aF, s) { if (au.showArrows) { am[aF ? "addClass" : "removeClass"]("jspDisabled"); ac[s ? "addClass" : "removeClass"]("jspDisabled") } } function r(aF, s) {
                if (au.showArrows) {
                    at[aF ? "addClass" : "removeClass"]("jspDisabled");
                    x[s ? "addClass" : "removeClass"]("jspDisabled")
                }
            } function J(s, aF) { var aG = s / (W - v); S(aG * i, aF) } function K(aF, s) { var aG = aF / (Q - ah); T(aG * j, s) } function Y(aR, aM, aG) { var aK, aH, aI, s = 0, aQ = 0, aF, aL, aO, aN, aP; try { aK = b(aR) } catch (aJ) { return } aH = aK.outerHeight(); aI = aK.outerWidth(); aj.scrollTop(0); aj.scrollLeft(0); while (!aK.is(".jspPane")) { s += aK.position().top; aQ += aK.position().left; aK = aK.offsetParent(); if (/^body|html$/i.test(aK[0].nodeName)) { return } } aF = aw(); aL = aF + v; if (s < aF || aM) { aN = s - au.verticalGutter } else { if (s + aH > aL) { aN = s - v + aH + au.verticalGutter } } if (aN) { J(aN, aG) } viewportLeft = ay(); aO = viewportLeft + ah; if (aQ < viewportLeft || aM) { aP = aQ - au.horizontalGutter } else { if (aQ + aI > aO) { aP = aQ - ah + aI + au.horizontalGutter } } if (aP) { K(aP, aG) } } function ay() { return -V.position().left } function aw() { return -V.position().top } function ad() { aj.unbind(Z).bind(Z, function(aI, aJ, aH, aF) { var aG = X, s = H; T(X + aH * au.mouseWheelSpeed, false); S(H - aF * au.mouseWheelSpeed, false); return aG == X && s == H }) } function n() { aj.unbind(Z) } function ax() { return false } function I() { V.unbind("focusin.jsp").bind("focusin.jsp", function(s) { if (s.target === V[0]) { return } Y(s.target, false) }) } function D() { V.unbind("focusin.jsp") } function P() { var aF, s; C.attr("tabindex", 0).unbind("keydown.jsp").bind("keydown.jsp", function(aJ) { if (aJ.target !== C[0]) { return } var aH = X, aG = H, aI = aF ? 2 : 16; switch (aJ.keyCode) { case 40: S(H + aI, false); break; case 38: S(H - aI, false); break; case 34: case 32: J(aw() + Math.max(32, v) - 16); break; case 33: J(aw() - v + 16); break; case 35: J(W - v); break; case 36: J(0); break; case 39: T(X + aI, false); break; case 37: T(X - aI, false); break } if (!(aH == X && aG == H)) { aF = true; clearTimeout(s); s = setTimeout(function() { aF = false }, 260); return false } }); if (au.hideFocus) { C.css("outline", "none"); if ("hideFocus" in aj[0]) { C.attr("hideFocus", true) } } else { C.css("outline", ""); if ("hideFocus" in aj[0]) { C.attr("hideFocus", false) } } } function O() { C.attr("tabindex", "-1").removeAttr("tabindex").unbind("keydown.jsp") } function B() { if (location.hash && location.hash.length > 1) { var aG, aF; try { aG = b(location.hash) } catch (s) { return } if (aG.length && V.find(aG)) { if (aj.scrollTop() == 0) { aF = setInterval(function() { if (aj.scrollTop() > 0) { Y(location.hash, true); b(document).scrollTop(aj.position().top); clearInterval(aF) } }, 50) } else { Y(location.hash, true); b(document).scrollTop(aj.position().top) } } } } function af() { b("a.jspHijack").unbind("click.jsp-hijack").removeClass("jspHijack") } function m() { af(); b("a[href^=#]").addClass("jspHijack").bind("click.jsp-hijack", function() { var s = this.href.split("#"), aF; if (s.length > 1) { aF = s[1]; if (aF.length > 0 && V.find("#" + aF).length > 0) { Y("#" + aF, true); return false } } }) } b.extend(N, { reinitialise: function(aF) { aF = b.extend({}, aF, au); an(aF) }, scrollToElement: function(aG, aF, s) { Y(aG, aF, s) }, scrollTo: function(aG, s, aF) { K(aG, aF); J(s, aF) }, scrollToX: function(aF, s) { K(aF, s) }, scrollToY: function(s, aF) { J(s, aF) }, scrollBy: function(aF, s, aG) { N.scrollByX(aF, aG); N.scrollByY(s, aG) }, scrollByX: function(s, aG) { var aF = ay() + s, aH = aF / (Q - ah); T(aH * j, aG) }, scrollByY: function(s, aG) { var aF = aw() + s, aH = aF / (W - v); S(aH * i, aG) }, animate: function(aF, aI, s, aH) { var aG = {}; aG[aI] = s; aF.animate(aG, { duration: au.animateDuration, ease: au.animateEase, queue: false, step: aH }) }, getContentPositionX: function() { return ay() }, getContentPositionY: function() { return aw() }, getIsScrollableH: function() { return aB }, getIsScrollableV: function() { return av }, getContentPane: function() { return V }, scrollToBottom: function(s) { S(i, s) }, hijackInternalLinks: function() { m() } })
        } f = b.extend({}, b.fn.jScrollPane.defaults, f); var e; this.each(function() { var g = b(this), h = g.data("jsp"); if (h) { h.reinitialise(f) } else { h = new d(g, f); g.data("jsp", h) } e = e ? e.add(g) : g }); return e
    }; b.fn.jScrollPane.defaults = { showArrows: false, maintainPosition: true, clickOnTrack: true, autoReinitialise: false, autoReinitialiseDelay: 500, verticalDragMinHeight: 0, verticalDragMaxHeight: 99999, horizontalDragMinWidth: 0, horizontalDragMaxWidth: 99999, animateScroll: false, animateDuration: 300, animateEase: "linear", hijackInternalLinks: false, verticalGutter: 4, horizontalGutter: 4, mouseWheelSpeed: 10, arrowButtonSpeed: 10, arrowRepeatFreq: 100, arrowScrollOnHover: false, trackClickSpeed: 30, trackClickRepeatFreq: 100, verticalArrowPositions: "split", horizontalArrowPositions: "split", enableKeyboardNavigation: true, hideFocus: false }
})(jQuery, this);


/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
* Thanks to: Seamus Leahy for adding deltaX and deltaY
*
* Version: 3.0.4
* 
* Requires: 1.2.2+
*/

(function($) {

    var types = ['DOMMouseScroll', 'mousewheel'];

    $.event.special.mousewheel = {
        setup: function() {
            if (this.addEventListener) {
                for (var i = types.length; i; ) {
                    this.addEventListener(types[--i], handler, false);
                }
            } else {
                this.onmousewheel = handler;
            }
        },

        teardown: function() {
            if (this.removeEventListener) {
                for (var i = types.length; i; ) {
                    this.removeEventListener(types[--i], handler, false);
                }
            } else {
                this.onmousewheel = null;
            }
        }
    };

    $.fn.extend({
        mousewheel: function(fn) {
            return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
        },

        unmousewheel: function(fn) {
            return this.unbind("mousewheel", fn);
        }
    });


    function handler(event) {
        var orgEvent = event || window.event, args = [].slice.call(arguments, 1), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
        event = $.event.fix(orgEvent);
        event.type = "mousewheel";

        // Old school scrollwheel delta
        if (event.wheelDelta) { delta = event.wheelDelta / 120; }
        if (event.detail) { delta = -event.detail / 3; }

        // New school multidimensional scroll (touchpads) deltas
        deltaY = delta;

        // Gecko
        if (orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS) {
            deltaY = 0;
            deltaX = -1 * delta;
        }

        // Webkit
        if (orgEvent.wheelDeltaY !== undefined) { deltaY = orgEvent.wheelDeltaY / 120; }
        if (orgEvent.wheelDeltaX !== undefined) { deltaX = -1 * orgEvent.wheelDeltaX / 120; }

        // Add event and delta to the front of the arguments
        args.unshift(event, delta, deltaX, deltaY);

        return $.event.handle.apply(this, args);
    }

})(jQuery);

/**
* @author trixta
* @version 1.2
*/
(function($) {

    var mwheelI = {
        pos: [-260, -260]
    },
	minDif = 3,
	doc = document,
	root = doc.documentElement,
	body = doc.body,
	longDelay, shortDelay
;

    function unsetPos() {
        if (this === mwheelI.elem) {
            mwheelI.pos = [-260, -260];
            mwheelI.elem = false;
            minDif = 3;
        }
    }

    $.event.special.mwheelIntent = {
        setup: function() {
            var jElm = $(this).bind('mousewheel', $.event.special.mwheelIntent.handler);
            if (this !== doc && this !== root && this !== body) {
                jElm.bind('mouseleave', unsetPos);
            }
            jElm = null;
            return true;
        },
        teardown: function() {
            $(this)
			.unbind('mousewheel', $.event.special.mwheelIntent.handler)
			.unbind('mouseleave', unsetPos)
		;
            return true;
        },
        handler: function(e, d) {
            var pos = [e.clientX, e.clientY];
            if (this === mwheelI.elem || Math.abs(mwheelI.pos[0] - pos[0]) > minDif || Math.abs(mwheelI.pos[1] - pos[1]) > minDif) {
                mwheelI.elem = this;
                mwheelI.pos = pos;
                minDif = 250;

                clearTimeout(shortDelay);
                shortDelay = setTimeout(function() {
                    minDif = 10;
                }, 200);
                clearTimeout(longDelay);
                longDelay = setTimeout(function() {
                    minDif = 3;
                }, 1500);
                e = $.extend({}, e, { type: 'mwheelIntent' });
                return $.event.handle.apply(this, arguments);
            }
        }
    };
    $.fn.extend({
        mwheelIntent: function(fn) {
            return fn ? this.bind("mwheelIntent", fn) : this.trigger("mwheelIntent");
        },

        unmwheelIntent: function(fn) {
            return this.unbind("mwheelIntent", fn);
        }
    });

    $(function() {
        body = doc.body;
        //assume that document is always scrollable, doesn't hurt if not
        $(doc).bind('mwheelIntent.mwheelIntentDefault', $.noop);
    });
})(jQuery);

// jQuery SWFObject v1.1.1 MIT/GPL @jon_neal
// http://jquery.thewikies.com/swfobject
(function(f, h, i) { function k(a, c) { var b = (a[0] || 0) - (c[0] || 0); return b > 0 || !b && a.length > 0 && k(a.slice(1), c.slice(1)) } function l(a) { if (typeof a != g) return a; var c = [], b = ""; for (var d in a) { b = typeof a[d] == g ? l(a[d]) : [d, m ? encodeURI(a[d]) : a[d]].join("="); c.push(b) } return c.join("&") } function n(a) { var c = []; for (var b in a) a[b] && c.push([b, '="', a[b], '"'].join("")); return c.join(" ") } function o(a) { var c = []; for (var b in a) c.push(['<param name="', b, '" value="', l(a[b]), '" />'].join("")); return c.join("") } var g = "object", m = true; try { var j = i.description || function() { return (new i("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version") } () } catch (p) { j = "Unavailable" } var e = j.match(/\d+/g) || [0]; f[h] = { available: e[0] > 0, activeX: i && !i.name, version: { original: j, array: e, string: e.join("."), major: parseInt(e[0], 10) || 0, minor: parseInt(e[1], 10) || 0, release: parseInt(e[2], 10) || 0 }, hasVersion: function(a) { a = /string|number/.test(typeof a) ? a.toString().split(".") : /object/.test(typeof a) ? [a.major, a.minor] : a || [0, 0]; return k(e, a) }, encodeParams: true, expressInstall: "expressInstall.swf", expressInstallIsActive: false, create: function(a) { if (!a.swf || this.expressInstallIsActive || !this.available && !a.hasVersionFail) return false; if (!this.hasVersion(a.hasVersion || 1)) { this.expressInstallIsActive = true; if (typeof a.hasVersionFail == "function") if (!a.hasVersionFail.apply(a)) return false; a = { swf: a.expressInstall || this.expressInstall, height: 137, width: 214, flashvars: { MMredirectURL: location.href, MMplayerType: this.activeX ? "ActiveX" : "PlugIn", MMdoctitle: document.title.slice(0, 47) + " - Flash Player Installation"}} } attrs = { data: a.swf, type: "application/x-shockwave-flash", id: a.id || "flash_" + Math.floor(Math.random() * 999999999), width: a.width || 320, height: a.height || 180, style: a.style || "" }; m = typeof a.useEncode !== "undefined" ? a.useEncode : this.encodeParams; a.movie = a.swf; a.wmode = a.wmode || "opaque"; delete a.fallback; delete a.hasVersion; delete a.hasVersionFail; delete a.height; delete a.id; delete a.swf; delete a.useEncode; delete a.width; var c = document.createElement("div"); c.innerHTML = ["<object ", n(attrs), ">", o(a), "</object>"].join(""); return c.firstChild } }; f.fn[h] = function(a) { var c = this.find(g).andSelf().filter(g); /string|object/.test(typeof a) && this.each(function() { var b = f(this), d; a = typeof a == g ? a : { swf: a }; a.fallback = this; if (d = f[h].create(a)) { b.children().remove(); b.html(d) } }); typeof a == "function" && c.each(function() { var b = this; b.jsInteractionTimeoutMs = b.jsInteractionTimeoutMs || 0; if (b.jsInteractionTimeoutMs < 660) b.clientWidth || b.clientHeight ? a.call(b) : setTimeout(function() { f(b)[h](a) }, b.jsInteractionTimeoutMs + 66) }); return c } })(jQuery, "flash", navigator.plugins["Shockwave Flash"] || window.ActiveXObject);

//REST JSON PARSER

var _AllData = [];

function GetParseValueByName(allData, name) {

    var returnValue = "";
    _AllData = GetParserData(allData);
    var length = _AllData.length
    for (var i = 0; i < length; i++) {
        var rawData = _AllData[i];
        var info = rawData.split(":");
        var thisName = info[0];
        if (thisName.indexOf(name) != -1) {
            var value = unescape(info[1]);
            value = value.replace("\"", "");
            value = value.replace("\"", "");
            value = value.trim();
            returnValue = value;
            break;
        }
    }
    return returnValue;
}

function GetParserData(allData) {

    var data = allData;
    data = data.replace("{", "");
    data = data.replace("}", "");
    var allData = [];
    try {
        allData = data.split('|');
    }
    catch (e) {

    }
    return allData;

}

var HImageList = [];
var HImageList_2 = [];

var bRun = false;

(function($) {

    $.fn.restAjaxWindow = function(options) {

        if (bRun == true)
            return;
        if (options) {
            $.extend($.fn.restAjaxWindow.settings, options);
        }
        else {
            options = $.extend($.fn.restAjaxWindow.settings, options);
        }

        $(this).find(options.headcss).each(function() {
            $(this).find("h3 a").click(function() {
                var title = $(this).find("span").html();
                var content = $(this).parent().parent().find(options.detailcss).html();
                var content = "<div class='content' >" + content + "</div>";
                var imgInfo = "<div><img src=\"/Libraries/PropertyLanding/simpson-housing-logo.sflb.ashx\" alt=\"Simpson Property Group\" style=\"border-width:0px;\" /></div>";
                var html = "<div class='info' >" + imgInfo + content + "</div>";

                $(this).append(html);
                var newWindow = $(this).find(".info");
                $(newWindow).dialog({ width: 700, show: 'slide', resizable: true, title: title, dialogClass: options.dialogcss, closeOnEscape: true });

            });
        });
        bRun = true;

    }
    $.fn.restAjaxWindow.settings = {
        headcss: '.news-item',
        detailcss: '.news-detail',
        dialogcss: 'dialog-info'
    };
})(jQuery);



//floor / sites

//adjusted map hover
(function($) {

    var has_VML, create_canvas_for, add_shape_to, clear_canvas, shape_from_area,
		canvas_style, fader, hex_to_decimal, css3color, is_image_loaded, options_from_area;

    has_VML = document.namespaces;
    has_canvas = !!document.createElement('canvas').getContext;

    if (!(has_canvas || has_VML)) {
        $.fn.availablityHover = function() { return this; };
        return;
    }


    if (has_canvas) {
        fader = function(element, opacity, interval) {
            if (opacity <= 1) {
                element.style.opacity = opacity;
                window.setTimeout(fader, 10, element, opacity + 0.1, 10);
            }
        };

        hex_to_decimal = function(hex) {
            return Math.max(0, Math.min(parseInt(hex, 16), 255));
        };
        css3color = function(color, opacity) {
            return 'rgba(' + hex_to_decimal(color.substr(0, 2)) + ',' + hex_to_decimal(color.substr(2, 2)) + ',' + hex_to_decimal(color.substr(4, 2)) + ',' + opacity + ')';
        };
        create_canvas_for = function(img) {
            var c = $('<canvas style="width:' + img.width + 'px;height:' + img.height + 'px;"></canvas>').get(0);
            c.getContext("2d").clearRect(0, 0, c.width, c.height);
            return c;
        };

        add_shape_to = function(canvas, shape, coords, options, name, bAvailable, mode) {

            var i, context = canvas.getContext('2d');
            context.beginPath();
            if (shape == 'rect') {
                context.rect(coords[0], coords[1], coords[2] - coords[0], coords[3] - coords[1]);
            } else if (shape == 'poly') {
                context.moveTo(coords[0], coords[1]);
                for (i = 2; i < coords.length; i += 2) {
                    context.lineTo(coords[i], coords[i + 1]);
                }
            } else if (shape == 'circ') {
                context.arc(coords[0], coords[1], coords[2], 0, Math.PI * 2, false);
            }
            context.closePath();
            if (options.fill && bAvailable == true) {
                context.fillStyle = css3color(options.vacantColor, options.vacantOpacity);
                context.fill();
            }
            if (options.fill && bAvailable == false) {
                context.fillStyle = css3color(options.occupiedColor, options.occupiedOpacity);
                context.fill();
            }
            if (options.stroke) {
                context.strokeStyle = css3color(options.strokeColor, options.strokeOpacity);
                context.lineWidth = options.strokeWidth;
                context.stroke();
            }
            if (options.fade) {
                fader(canvas, 0);
            }
            if (mode == 'load') {
                context.save();
            }

        };
        clear_canvas = function(canvas, area) {
            try {
                canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height);
                //context.restore();
            }
            catch (e) {

            }

        };
    } else {
        // ie executes this code
        create_canvas_for = function(img) {
            return $('<var style="zoom:1;overflow:hidden;display:block;width:' + img.width + 'px;height:' + img.height + 'px;"></var>').get(0);
        };
        add_shape_to = function(canvas, shape, coords, options, name, bAvailble, mode) {
            var fill, stroke, opacity, e;
            fill = '<v:fill color="#' + options.vacantColor + '" opacity="' + (options.fill ? options.vacantOpacity : 0) + '" />';
            if (bAvailble == false) {
                fill = '<v:fill color="#' + options.occupiedColor + '" opacity="' + (options.fill ? options.occupiedOpacity : 0) + '" />';
            }

            stroke = (options.stroke ? 'strokeweight="' + options.strokeWidth + '" stroked="t" strokecolor="#' + options.strokeColor + '"' : 'stroked="f"');
            opacity = '<v:stroke opacity="' + options.strokeOpacity + '"/>';
            if (shape == 'rect') {
                e = $('<v:rect name="' + name + '" filled="t" ' + stroke + ' style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:' + coords[0] + 'px;top:' + coords[1] + 'px;width:' + (coords[2] - coords[0]) + 'px;height:' + (coords[3] - coords[1]) + 'px;"></v:rect>');
            } else if (shape == 'poly') {
                e = $('<v:shape name="' + name + '" filled="t" ' + stroke + ' coordorigin="0,0" coordsize="' + canvas.width + ',' + canvas.height + '" path="m ' + coords[0] + ',' + coords[1] + ' l ' + coords.join(',') + ' x e" style="zoom:1;margin:0;padding:0;display:block;position:absolute;top:0px;left:0px;width:' + canvas.width + 'px;height:' + canvas.height + 'px;"></v:shape>');
            } else if (shape == 'circ') {
                e = $('<v:oval name="' + name + '" filled="t" ' + stroke + ' style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:' + (coords[0] - coords[2]) + 'px;top:' + (coords[1] - coords[2]) + 'px;width:' + (coords[2] * 2) + 'px;height:' + (coords[2] * 2) + 'px;"></v:oval>');
            }
            e.get(0).innerHTML = fill + opacity;
            $(canvas).append(e);
        };
        clear_canvas = function(canvas, options) {
            $(canvas).find('[name=highlighted]').remove();
            if (options.highlightedArea != null) {
                var object = $('area[title="' + options.highlightedArea + '"]');
                object.mouseover();
            }

        };
    }

    shape_from_area = function(area) {
        var i, coords = area.getAttribute('coords').split(',');
        for (i = 0; i < coords.length; i++) { coords[i] = parseFloat(coords[i]); }
        try {
            var tabindex = area.getAttribute('title');
            return [area.getAttribute('shape').toLowerCase().substr(0, 4), coords, tabindex];
        }
        catch (e) {
            return [area.getAttribute('shape').toLowerCase().substr(0, 4), coords];
        }
    };

    options_from_area = function(area, options) {
        var $area = $(area);
        return $.extend({}, options, $.metadata ? $area.metadata() : false, $area.data('availablityHover'));
    };

    is_image_loaded = function(img) {
        if (!img.complete) { return false; } // IE
        if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) { return false; } // Others
        return true;
    };

    canvas_style = {
        position: 'absolute',
        left: 0,
        top: 0,
        padding: 0,
        border: 0
    };

    var ie_hax_done = false;
    $.fn.availablityHover = function(opts) {
        opts = $.extend({}, $.fn.availablityHover.defaults, opts);

        if ($.browser.msie && !ie_hax_done) {
            document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
            var style = document.createStyleSheet();
            var shapes = ['shape', 'rect', 'oval', 'circ', 'fill', 'stroke', 'imagedata', 'group', 'textbox'];
            $.each(shapes,
				function() {
				    style.addRule('v\\:' + this, "behavior: url(#default#VML); antialias:true");
				}
			);
            ie_hax_done = true;
        }

        return this.each(function() {
            var img, wrap, options, map, canvas, canvas_always, mouseover, highlighted_shape, usemap;
            img = $(this);

            if (!is_image_loaded(this)) {
                // If the image isn't fully loaded, this won't work right.  Try again later.
                return window.setTimeout(function() {
                    img.availablityHover(opts);
                }, 200);
            }

            options = $.extend({}, opts, $.metadata ? img.metadata() : false, img.data('availablityHover'));

            // jQuery bug with Opera, results in full-url#usemap being returned from jQuery's attr.
            // So use raw getAttribute instead.
            usemap = img.get(0).getAttribute('usemap');

            map = $('map[name="' + usemap.substr(1) + '"]');

            if (!(img.is('img') && usemap && map.size() > 0)) { return; }

            if (img.hasClass('maphilighted')) {
                // We're redrawing an old map, probably to pick up changes to the options.
                // Just clear out all the old stuff.
                var wrapper = img.parent();
                img.insertBefore(wrapper);
                wrapper.remove();
            }

            wrap = $('<div class="map-back"></div>').css({
                display: 'block',
                background: 'url(' + this.src + ')',
                backgroundRepeat: 'no-repeat',
                position: 'relative',
                padding: 0,
                width: this.width,
                height: this.height
            });
            if (options.wrapClass) {
                if (options.wrapClass === true) {
                    wrap.addClass($(this).attr('class'));
                } else {
                    wrap.addClass(options.wrapClass);
                }
            }
            img.before(wrap).css('opacity', 0).css(canvas_style).remove();
            if ($.browser.msie) { img.css('filter', 'Alpha(opacity=0)'); }
            wrap.append(img);


            canvas = create_canvas_for(this);
            $(canvas).css(canvas_style);
            canvas.height = this.height;
            canvas.width = this.width;

            canvas_always = create_canvas_for(this);
            $(canvas_always).css(canvas_style);
            canvas_always.height = this.height;
            canvas_always.width = this.width;

            canvas_over = function(e) {
                var shape, area_options;
                area_options = options_from_area(this, options);
                if (
					!area_options.neverOn
					&&
					!area_options.alwaysOn
				) {
                    shape = shape_from_area(this);
                    //adds the shape
                    var bAvailble = true;
                    if (shape[2] == "Not Available" || shape[2] == "No Units Available") {
                        //make black
                        return;
                    }
                    add_shape_to(canvas, shape[0], shape[1], area_options, "highlighted", bAvailble, 'over');
                    if (area_options.groupBy && $(this).attr(area_options.groupBy)) {
                        var first = this;
                        var elemInfo = 'area[' + area_options.groupBy + '=' + $(this).attr(area_options.groupBy) + ']';
                        map.find(elemInfo).each(function() {
                            if (this != first) {
                                var subarea_options = options_from_area(this, options);
                                if (!subarea_options.neverOn && !subarea_options.alwaysOn) {
                                    var shape = shape_from_area(this);
                                    add_shape_to(canvas, shape[0], shape[1], subarea_options, "highlighted", bAvailble, 'over');
                                }
                            }
                        });
                    }
                }
            }

            if (options.alwaysOn) {
                $(map).find('area[coords]').each(canvas_over);
            } else {
                // If the metadata plugin is present, there may be areas with alwaysOn set.
                // We'll add these to a *second* canvas, which will get around flickering during fading.
                $(map).find('area[coords]').each(function() {
                    var shape, area_options;
                    area_options = options_from_area(this, options);
                    if (area_options.alwaysOn) {
                        if (!canvas_always) {
                            canvas_always = create_canvas_for(img.get());
                            $(canvas_always).css(canvas_style);
                            canvas_always.width = img.width();
                            canvas_always.height = img.height();
                            img.before(canvas_always);
                        }
                        shape = shape_from_area(this);
                        if ($.browser.msie) {
                            add_shape_to(canvas, shape[0], shape[1], area_options, "", true);
                        } else {
                            add_shape_to(canvas_always, shape[0], shape[1], area_options, "", true);
                        }
                    }
                });
                $(map).find('area[coords]').mouseover(canvas_over)
                $(map).find('area[coords]').mouseout(function(e) { clear_canvas(canvas, options); });
                $(map).find('area[coords]').each(function() {

                    var title = $(this).attr('title');
                    if (title == "Not Available" || title == "No Units Available") {
                        var shape, area_options;
                        area_options = options_from_area(this, options);
                        if (!area_options.neverOn && !area_options.alwaysOn) {
                            shape = shape_from_area(this);
                            //adds the shape
                            var bAvailble = true;
                            if (shape[2] == "Not Available" || shape[2] == "No Units Available") {
                                //make black
                                bAvailble = false;
                                return;
                            }
                            add_shape_to(canvas, shape[0], shape[1], area_options, "locked", bAvailble, 'load');
                            if (area_options.groupBy && $(this).attr(area_options.groupBy)) {
                                var first = this;
                                var elemInfo = 'area[' + area_options.groupBy + '=' + $(this).attr(area_options.groupBy) + ']';
                                map.find(elemInfo).each(function() {
                                    if (this != first) {
                                        var subarea_options = options_from_area(this, options);
                                        if (!subarea_options.neverOn && !subarea_options.alwaysOn) {
                                            var shape = shape_from_area(this);
                                            add_shape_to(canvas, shape[0], shape[1], subarea_options, "highlighted", bAvailble, 'load');
                                        }
                                    }
                                });
                            }
                        }
                    }
                    return;
                });

                $(map).find('area[coords]').each(function() {

                    var title = $(this).attr('title');
                    if (title == "Not Available" || title == "No Units Available") {
                        var shape, area_options;
                        area_options = options_from_area(this, options);
                        if (!area_options.neverOn && !area_options.alwaysOn) {
                            shape = shape_from_area(this);
                            //adds the shape
                            var bAvailble = true;
                            if (shape[2] == "Not Available" || shape[2] == "No Units Available") {
                                //make black
                                bAvailble = false;
                            }
                            add_shape_to(canvas_always, shape[0], shape[1], area_options, "locked", bAvailble, 'load');
                            if (area_options.groupBy && $(this).attr(area_options.groupBy)) {
                                var first = this;
                                var elemInfo = 'area[' + area_options.groupBy + '=' + $(this).attr(area_options.groupBy) + ']';
                                map.find(elemInfo).each(function() {
                                    if (this != first) {
                                        var subarea_options = options_from_area(this, options);
                                        if (!subarea_options.neverOn && !subarea_options.alwaysOn) {
                                            var shape = shape_from_area(this);
                                            add_shape_to(canvas_always, shape[0], shape[1], subarea_options, "highlighted", bAvailble, 'load');
                                        }
                                    }
                                });
                            }
                        }
                    }
                    return;
                });


                if (options.highlightedArea != null) {
                    var object = $('area[title="' + options.highlightedArea + '"]');
                    object.mouseover();
                    object.mouseout(mouseover);
                }
            }

            img.before(canvas_always);
            img.before(canvas); // if we put this after, the mouseover events wouldn't fire.

            img.addClass('maphilighted');

        });
    };
    $.fn.availablityHover.defaults = {
        fill: true,
        vacantColor: '9DC9BA',
        vacantOpacity: 0.8,
        occupiedColor: '333333',
        occupiedOpacity: .7,
        stroke: false,
        strokeColor: 'ff0000',
        strokeOpacity: 1,
        strokeWidth: 1,
        fade: true,
        alwaysOn: false,
        neverOn: false,
        groupBy: false,
        wrapClass: true,
        highlightedArea: null
    };
})(jQuery);


//adjusted map hover
(function($) {
    var has_VML, create_canvas_for, add_shape_to, clear_canvas, shape_from_area,
		canvas_style, fader, hex_to_decimal, css3color, is_image_loaded, options_from_area;

    has_VML = document.namespaces;
    has_canvas = !!document.createElement('canvas').getContext;

    if (!(has_canvas || has_VML)) {
        $.fn.maphilight = function() { return this; };
        return;
    }

    if (has_canvas) {
        fader = function(element, opacity, interval) {
            if (opacity <= 1) {
                element.style.opacity = opacity;
                window.setTimeout(fader, 10, element, opacity + 0.1, 10);
            }
        };

        hex_to_decimal = function(hex) {
            return Math.max(0, Math.min(parseInt(hex, 16), 255));
        };
        css3color = function(color, opacity) {
            return 'rgba(' + hex_to_decimal(color.substr(0, 2)) + ',' + hex_to_decimal(color.substr(2, 2)) + ',' + hex_to_decimal(color.substr(4, 2)) + ',' + opacity + ')';
        };
        create_canvas_for = function(img) {
            var c = $('<canvas style="width:' + img.width + 'px;height:' + img.height + 'px;"></canvas>').get(0);
            c.getContext("2d").clearRect(0, 0, c.width, c.height);
            return c;
        };
        add_shape_to = function(canvas, shape, coords, options, name) {
            var i, context = canvas.getContext('2d');
            context.beginPath();
            if (shape == 'rect') {
                context.rect(coords[0], coords[1], coords[2] - coords[0], coords[3] - coords[1]);
            } else if (shape == 'poly') {
                context.moveTo(coords[0], coords[1]);
                for (i = 2; i < coords.length; i += 2) {
                    context.lineTo(coords[i], coords[i + 1]);
                }
            } else if (shape == 'circ') {
                context.arc(coords[0], coords[1], coords[2], 0, Math.PI * 2, false);
            }
            context.closePath();
            if (options.fill) {
                context.fillStyle = css3color(options.fillColor);
                context.globalAlpha = options.fillOpacity;
                context.fill();
            }
            if (options.stroke) {
                context.strokeStyle = css3color(options.strokeColor);
                context.lineWidth = options.strokeWidth;
                context.globalAlpha = options.strokeOpacity;
                context.stroke();
            }
            if (options.fade) {
                fader(canvas, 0);
            }
        };
        clear_canvas = function(canvas, area) {
            canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height);
        };
    } else {   // ie executes this code
        create_canvas_for = function(img) {
            return $('<var style="zoom:1;overflow:hidden;display:block;width:' + img.width + 'px;height:' + img.height + 'px;"></var>').get(0);
        };
        add_shape_to = function(canvas, shape, coords, options, name) {
            var fill, stroke, opacity, e;
            fill = '<v:fill color="#' + options.fillColor + '" opacity="' + (options.fill ? options.fillOpacity : 0) + '" />';
            stroke = (options.stroke ? 'strokeweight="' + options.strokeWidth + '" stroked="t" strokecolor="#' + options.strokeColor + '"' : 'stroked="f"');
            opacity = '<v:stroke opacity="' + options.strokeOpacity + '"/>';
            if (shape == 'rect') {
                e = $('<v:rect name="' + name + '" filled="t" ' + stroke + ' style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:' + coords[0] + 'px;top:' + coords[1] + 'px;width:' + (coords[2] - coords[0]) + 'px;height:' + (coords[3] - coords[1]) + 'px;"></v:rect>');
            } else if (shape == 'poly') {
                e = $('<v:shape name="' + name + '" filled="t" ' + stroke + ' coordorigin="0,0" coordsize="' + canvas.width + ',' + canvas.height + '" path="m ' + coords[0] + ',' + coords[1] + ' l ' + coords.join(',') + ' x e" style="zoom:1;margin:0;padding:0;display:block;position:absolute;top:0px;left:0px;width:' + canvas.width + 'px;height:' + canvas.height + 'px;"></v:shape>');
            } else if (shape == 'circ') {
                e = $('<v:oval name="' + name + '" filled="t" ' + stroke + ' style="zoom:1;margin:0;padding:0;display:block;position:absolute;left:' + (coords[0] - coords[2]) + 'px;top:' + (coords[1] - coords[2]) + 'px;width:' + (coords[2] * 2) + 'px;height:' + (coords[2] * 2) + 'px;"></v:oval>');
            }
            e.get(0).innerHTML = fill + opacity;
            $(canvas).append(e);
        };
        clear_canvas = function(canvas, options) {
            $(canvas).find('[name=highlighted]').remove();
            if (options.highlightedArea != null) {
                var object = $('area[title="' + options.highlightedArea + '"]');
                object.mouseover();
            }

        };
    }

    shape_from_area = function(area) {
        var i, coords = area.getAttribute('coords').split(',');
        for (i = 0; i < coords.length; i++) { coords[i] = parseFloat(coords[i]); }
        return [area.getAttribute('shape').toLowerCase().substr(0, 4), coords];
    };

    options_from_area = function(area, options) {
        var $area = $(area);
        return $.extend({}, options, $.metadata ? $area.metadata() : false, $area.data('maphilight'));
    };

    is_image_loaded = function(img) {
        if (!img.complete) { return false; } // IE
        if (typeof img.naturalWidth != "undefined" && img.naturalWidth == 0) { return false; } // Others
        return true;
    };

    canvas_style = {
        position: 'absolute',
        left: 0,
        top: 0,
        padding: 0,
        border: 0
    };

    var ie_hax_done = false;
    $.fn.maphilight = function(opts) {
        opts = $.extend({}, $.fn.maphilight.defaults, opts);

        if ($.browser.msie && !ie_hax_done) {
            document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
            var style = document.createStyleSheet();
            var shapes = ['shape', 'rect', 'oval', 'circ', 'fill', 'stroke', 'imagedata', 'group', 'textbox'];
            $.each(shapes,
				function() {
				    style.addRule('v\\:' + this, "behavior: url(#default#VML); antialias:true");
				}
			);
            ie_hax_done = true;
        }

        return this.each(function() {
            var img, wrap, options, map, canvas, canvas_always, mouseover, highlighted_shape, usemap;
            img = $(this);

            if (!is_image_loaded(this)) {
                // If the image isn't fully loaded, this won't work right.  Try again later.
                return window.setTimeout(function() {
                    img.maphilight(opts);
                }, 200);
            }

            options = $.extend({}, opts, $.metadata ? img.metadata() : false, img.data('maphilight'));

            // jQuery bug with Opera, results in full-url#usemap being returned from jQuery's attr.
            // So use raw getAttribute instead.
            usemap = img.get(0).getAttribute('usemap');

            map = $('map[name="' + usemap.substr(1) + '"]');

            if (!(img.is('img') && usemap && map.size() > 0)) { return; }

            if (img.hasClass('maphilighted')) {
                // We're redrawing an old map, probably to pick up changes to the options.
                // Just clear out all the old stuff.
                var wrapper = img.parent();
                img.insertBefore(wrapper);
                wrapper.remove();
            }

            wrap = $('<div></div>').css({
                display: 'block',
                background: 'url(' + this.src + ')',
                position: 'relative',
                padding: 0,
                width: this.width,
                height: this.height
            });
            if (options.wrapClass) {
                if (options.wrapClass === true) {
                    wrap.addClass($(this).attr('class'));
                } else {
                    wrap.addClass(options.wrapClass);
                }
            }
            img.before(wrap).css('opacity', 0).css(canvas_style).remove();
            if ($.browser.msie) { img.css('filter', 'Alpha(opacity=0)'); }
            wrap.append(img);

            canvas = create_canvas_for(this);
            $(canvas).css(canvas_style);
            canvas.height = this.height;
            canvas.width = this.width;

            mouseover = function(e) {
                var shape, area_options;
                area_options = options_from_area(this, options);
                if (
					!area_options.neverOn
					&&
					!area_options.alwaysOn
				) {
                    shape = shape_from_area(this);
                    add_shape_to(canvas, shape[0], shape[1], area_options, "highlighted");
                    if (area_options.groupBy && $(this).attr(area_options.groupBy)) {
                        var first = this;
                        map.find('area[' + area_options.groupBy + '=' + $(this).attr(area_options.groupBy) + ']').each(function() {
                            if (this != first) {
                                var subarea_options = options_from_area(this, options);
                                if (!subarea_options.neverOn && !subarea_options.alwaysOn) {
                                    var shape = shape_from_area(this);
                                    add_shape_to(canvas, shape[0], shape[1], subarea_options, "highlighted");
                                }
                            }
                        });
                    }
                }
            }

            if (options.alwaysOn) {
                $(map).find('area[coords]').each(mouseover);
            } else {
                // If the metadata plugin is present, there may be areas with alwaysOn set.
                // We'll add these to a *second* canvas, which will get around flickering during fading.
                $(map).find('area[coords]').each(function() {
                    var shape, area_options;
                    area_options = options_from_area(this, options);
                    if (area_options.alwaysOn) {
                        if (!canvas_always) {
                            canvas_always = create_canvas_for(img.get());
                            $(canvas_always).css(canvas_style);
                            canvas_always.width = img.width();
                            canvas_always.height = img.height();
                            img.before(canvas_always);
                        }
                        shape = shape_from_area(this);
                        if ($.browser.msie) {
                            add_shape_to(canvas, shape[0], shape[1], area_options, "");
                        } else {
                            add_shape_to(canvas_always, shape[0], shape[1], area_options, "");
                        }
                    }
                });
                $(map).find('area[coords]').mouseover(mouseover).mouseout(function(e) { clear_canvas(canvas, options); });

                if (options.highlightedArea != null) {
                    var object = $('area[title="' + options.highlightedArea + '"]');
                    object.mouseover();
                    object.mouseout(mouseover);
                }
            }

            img.before(canvas); // if we put this after, the mouseover events wouldn't fire.

            img.addClass('maphilighted');
        });
    };
    $.fn.maphilight.defaults = {
        fill: true,
        fillColor: '333333',
        fillOpacity: 0.8,
        stroke: false,
        strokeColor: 'ff0000',
        strokeOpacity: 1,
        strokeWidth: 1,
        fade: true,
        alwaysOn: false,
        neverOn: false,
        groupBy: false,
        wrapClass: true,
        highlightedArea: null
    };
})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
    if (element.style.removeAttribute) {
        element.style.removeAttribute('filter');
    }
}



