﻿/*lint-ignore-file*/

/* Non-D&R scripts that aren't substantive enough to warrant their own include */
/* pathparser */

function path_to_array(a, b) { a = is_string(a) ? a : String(a); b = is_string(b) ? b : a.indexOf("/") >= 0 ? "/" : a.indexOf("\\") >= 0 ? "\\" : a.indexOf(".") >= 0 ? "." : " ";return a.split(b); }
function is_string(a) { return (typeof (a) == 'string'); } function walk_path(a, b, c, d) {
    var g;
    c = c || false; b = path_to_array(b, "."); var e = b.length - 1, i = 0; while (i < e) {
        if (typeof a[b[i]] === 'undefined') {
            if (d) {return null; } var f = new ReferenceError("The path " + b.join(".") + " failed at " + b[i] + ".");
            f.valid_path = b.slice(0, i); f.invalid_path = b.slice(i, e + 1); f.breaking_point = b[i]; throw f;
        } else { g = a; a = a[b[i]];i++; } 
    } return c ? g : a[b[i]]
}

/* jquery json 2.2 */
(function ($) {
    $.toJSON = function (o) {
        if (typeof (JSON) == 'object' && JSON.stringify) return JSON.stringify(o); var a = typeof (o); if (o === null) return "null"; if (a == "undefined") return undefined;
        if (a == "number" || a == "boolean") return o + ""; if (a == "string") return $.quoteString(o); if (a == 'object') {
            if (typeof o.toJSON == "function") return $.toJSON(o.toJSON());
            if (o.constructor === Date) {
                var b = o.getUTCMonth() + 1; if (b < 10) b = '0' + b; var c = o.getUTCDate(); if (c < 10) c = '0' + c; var d = o.getUTCFullYear(); var e = o.getUTCHours();
                if (e < 10) e = '0' + e; var f = o.getUTCMinutes(); if (f < 10) f = '0' + f; var g = o.getUTCSeconds(); if (g < 10) g = '0' + g; var h = o.getUTCMilliseconds(); if (h < 100) h = '0' + h;
                if (h < 10) h = '0' + h; return '"' + d + '-' + b + '-' + c + 'T' + e + ':' + f + ':' + g + '.' + h + 'Z"'
            } if (o.constructor === Array) {
                var j = []; for (var i = 0; i < o.length; i++)
                    j.push($.toJSON(o[i]) || "null"); return "[" + j.join(",") + "]"
            } var l = []; for (var k in o) {
                var m; var a = typeof k; if (a == "number") m = '"' + k + '"'; else if (a == "string")
                    m = $.quoteString(k); else continue; if (typeof o[k] == "function") continue; var n = $.toJSON(o[k]); l.push(m + ":" + n)
            } return "{" + l.join(", ") + "}"
        } 
    };
    $.evalJSON = function (a) { if (typeof (JSON) == 'object' && JSON.parse) return JSON.parse(a); return eval("(" + a + ")") }; $.secureEvalJSON = function (a) {
        if (typeof (JSON) == 'object' && JSON.parse) return JSON.parse(a); var b = a; b = b.replace(/\\["\\\/bfnrtu]/g, '@'); b = b.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
        b = b.replace(/(?:^|:|,)(?:\s*\[)+/g, ''); if (/^[\],:{}\s]*$/.test(b)) return eval("(" + a + ")"); else throw new SyntaxError("Error parsing JSON, source is not valid.");
    };
    $.quoteString = function (b) {
        if (b.match(p)) {
            return '"' + b.replace(p, function (a) {
                var c = q[a]; if (typeof c === 'string') return c; c = a.charCodeAt();
                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16)
            }) + '"'
        } return '"' + b + '"'
    }; var p = /["\\\x00-\x1f\x7f-\x9f]/g;
    var q = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' }
})(jQuery);

/* base64 */

/* Base64 encode / decode http://www.webtoolkit.info/ */
var Base64 = { _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (c) {
    var a = "", k, h, f, j, g, e, d, b = 0;
    c = Base64._utf8_encode(c); while (b < c.length) {
        k = c.charCodeAt(b++); h = c.charCodeAt(b++); f = c.charCodeAt(b++); j = k >> 2; g = ((k & 3) << 4) | (h >> 4); e = ((h & 15) << 2) | (f >> 6);
        d = f & 63; if (isNaN(h)) { e = d = 64 } else { if (isNaN(f)) { d = 64 } } a = a + this._keyStr.charAt(j) + this._keyStr.charAt(g) + this._keyStr.charAt(e) + this._keyStr.charAt(d)
    } return a
},
    decode: function (c) {
        var a = "", k, h, f, j, g, e, d, b = 0; c = c.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (b < c.length) {
            j = this._keyStr.indexOf(c.charAt(b++)); g = this._keyStr.indexOf(c.charAt(b++));
            e = this._keyStr.indexOf(c.charAt(b++)); d = this._keyStr.indexOf(c.charAt(b++)); k = (j << 2) | (g >> 4); h = ((g & 15) << 4) | (e >> 2); f = ((e & 3) << 6) | d; a = a + String.fromCharCode(k);
            if (e != 64) { a = a + String.fromCharCode(h) } if (d != 64) { a = a + String.fromCharCode(f) } 
        } a = Base64._utf8_decode(a); return a
    }, _utf8_encode: function (b) {
        b = b.replace(/\r\n/g, "\n");
        var a = ""; for (var e = 0; e < b.length; e++) {
            var d = b.charCodeAt(e); if (d < 128) { a += String.fromCharCode(d) } else {
                if ((d > 127) && (d < 2048)) {
                    a += String.fromCharCode((d >> 6) | 192);
                    a += String.fromCharCode((d & 63) | 128)
                } else { a += String.fromCharCode((d >> 12) | 224); a += String.fromCharCode(((d >> 6) & 63) | 128); a += String.fromCharCode((d & 63) | 128) } 
            } 
        }
        return a
    }, _utf8_decode: function (a) {
        var b = "", d = 0, e = c2 = 0; while (d < a.length) {
            e = a.charCodeAt(d); if (e < 128) { b += String.fromCharCode(e); d++ } else {
                if ((e > 191) && (e < 224))
                { c2 = a.charCodeAt(d + 1); b += String.fromCharCode(((e & 31) << 6) | (c2 & 63)); d += 2 } else {
                    c2 = a.charCodeAt(d + 1); c3 = a.charCodeAt(d + 2);
                    b += String.fromCharCode(((e & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); d += 3
                } 
            } 
        } return b
    } 
};


/*
* jQuery Tools 1.2.5 - The missing UI library for the Web
*/

(function ($) { $.tools = $.tools || { version: '@VERSION' }; $.tools.tooltip = { conf: { effect: 'toggle', fadeOutSpeed: "fast", predelay: 0, delay: 30, opacity: 1, tip: 0, fadeIE: false, position: ['top', 'center'], offset: [0, 0], relative: false, cancelDefault: true, events: { def: "mouseenter,mouseleave", input: "focus,blur", widget: "focus mouseenter,blur mouseleave", tooltip: "mouseenter,mouseleave" }, layout: '<div/>', tipClass: 'tooltip' }, addEffect: function (name, loadFn, hideFn) { effects[name] = [loadFn, hideFn] } }; var effects = { toggle: [function (done) { var conf = this.getConf(), tip = this.getTip(), o = conf.opacity; if (o < 1) { tip.css({ opacity: o }) } tip.show(); done.call() }, function (done) { this.getTip().hide(); done.call() } ], fade: [function (done) { var conf = this.getConf(); if (!$.browser.msie || conf.fadeIE) { this.getTip().fadeTo(conf.fadeInSpeed, conf.opacity, done) } else { this.getTip().show(); done() } }, function (done) { var conf = this.getConf(); if (!$.browser.msie || conf.fadeIE) { this.getTip().fadeOut(conf.fadeOutSpeed, done) } else { this.getTip().hide(); done() } } ] }; function getPosition(trigger, tip, conf) { var height, width, top = conf.relative ? trigger.position().top : trigger.offset().top, left = conf.relative ? trigger.position().left : trigger.offset().left, pos = conf.position[0]; top -= tip.outerHeight() - conf.offset[0]; left += trigger.outerWidth() + conf.offset[1]; if (/iPad/i.test(navigator.userAgent)) { top -= $(window).scrollTop() } height = tip.outerHeight() + trigger.outerHeight(); if (pos == 'center') { top += height / 2 } if (pos == 'bottom') { top += height } pos = conf.position[1]; width = tip.outerWidth() + trigger.outerWidth(); if (pos == 'center') { left -= width / 2 } if (pos == 'left') { left -= width } return { top: top, left: left} } function Tooltip(trigger, conf) { var self = this, fire = trigger.add(self), tip, timer = 0, pretimer = 0, title = trigger.attr("title"), tipAttr = trigger.attr("data-tooltip"), effect = effects[conf.effect], shown, isInput = trigger.is(":input"), isWidget = isInput && trigger.is(":checkbox, :radio, select, :button, :submit"), type = trigger.attr("type"), evt = conf.events[type] || conf.events[isInput ? (isWidget ? 'widget' : 'input') : 'def']; if (!effect) { throw "Nonexistent effect \"" + conf.effect + "\"" } evt = evt.split(/,\s*/); if (evt.length != 2) { throw "Tooltip: bad events configuration for " + type } trigger.bind(evt[0], function (e) { clearTimeout(timer); if (conf.predelay) { pretimer = setTimeout(function () { self.show(e) }, conf.predelay) } else { self.show(e) } }).bind(evt[1], function (e) { clearTimeout(pretimer); if (conf.delay) { timer = setTimeout(function () { self.hide(e) }, conf.delay) } else { self.hide(e) } }); if (title && conf.cancelDefault) { trigger.removeAttr("title"); trigger.data("title", title) } $.extend(self, { show: function (e) { if (!tip) { if (tipAttr) { tip = $(tipAttr); } else if (conf.tip) { tip = $(conf.tip).eq(0); } else if (title) { tip = $(conf.layout).addClass(conf.tipClass).appendTo(document.body).hide().append(title); } else { tip = trigger.next(); if (!tip.length) { tip = trigger.parent().next() } } if (!tip.length) { throw "Cannot find tooltip for " + trigger } } if (self.isShown()) { return self } tip.stop(true, true); var pos = getPosition(trigger, tip, conf); if (conf.tip) { tip.html(trigger.data("title")) } e = $.Event(); e.type = "onBeforeShow"; fire.trigger(e, [pos]); if (e.isDefaultPrevented()) { return self } pos = getPosition(trigger, tip, conf); tip.css({ position: 'absolute', top: pos.top, left: pos.left }); shown = true; effect[0].call(self, function () { e.type = "onShow"; shown = 'full'; fire.trigger(e) }); var event = conf.events.tooltip.split(/,\s*/); if (!tip.data("__set")) { tip.unbind(event[0]).bind(event[0], function () { clearTimeout(timer); clearTimeout(pretimer) }); if (event[1] && !trigger.is("input:not(:checkbox, :radio), textarea")) { tip.unbind(event[1]).bind(event[1], function (e) { if (e.relatedTarget != trigger[0]) { trigger.trigger(evt[1].split(" ")[0]) } }) } if (!conf.tip) { tip.data("__set", true) } } return self }, hide: function (e) { if (!tip || !self.isShown()) { return self } e = $.Event(); e.type = "onBeforeHide"; fire.trigger(e); if (e.isDefaultPrevented()) { return } shown = false; effects[conf.effect][1].call(self, function () { e.type = "onHide"; fire.trigger(e) }); return self }, isShown: function (fully) { return fully ? shown == 'full' : shown }, getConf: function () { return conf }, getTip: function () { return tip }, getTrigger: function () { return trigger } }); $.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function (i, name) { if ($.isFunction(conf[name])) { $(self).bind(name, conf[name]) } self[name] = function (fn) { if (fn) { $(self).bind(name, fn) } return self } }) } $.fn.tooltip = function (conf) { var api = this.data("tooltip"); if (api) { return api } conf = $.extend(true, {}, $.tools.tooltip.conf, conf); if (typeof conf.position == 'string') { conf.position = conf.position.split(/,?\s/) } this.each(function () { api = new Tooltip($(this), conf); $(this).data("tooltip", api) }); return conf.api ? api : this } } (jQuery));

/* Modernizr 2.0.4 (Custom Build) | MIT & BSD
* Contains: draganddrop | hasevent
*/
window.Modernizr = function (a, b, c) {
    function x(a, b) { return !! ~("" + a).indexOf(b) } function w(a, b) { return typeof a === b } function v(a, b) { return u(prefixes.join(a + ";") + (b || "")) } function u(a)
    { j.cssText = a } var d = "2.0.4", e = {}, f = b.documentElement, g = b.head || b.getElementsByTagName("head")[0], h = "modernizr", i = b.createElement(h), j = i.style, k, l = Object.prototype.toString, m = {},
    n = {}, o = {}, p = [], q = function () {
        function d(d, e) {
            e = e || b.createElement(a[d] || "div"), d = "on" + d; var f = d in e; f || (e.setAttribute || (e = b.createElement("div")),
    e.setAttribute && e.removeAttribute && (e.setAttribute(d, ""), f = w(e[d], "function"), w(e[d], c) || (e[d] = c), e.removeAttribute(d))), e = null; return f
        }
        var a = { select: "input", change: "input", submit: "form", reset: "form", error: "img", load: "img", abort: "img" };
        return d
    } (), r, s = {}.hasOwnProperty, t; !w(s, c) && !w(s.call, c) ? t = function (a, b) { return s.call(a, b) } : t = function (a, b) { return b in a && w(a.constructor.prototype[b], c) },
     m.draganddrop = function () { return q("dragstart") && q("drop") }; for (var y in m) t(m, y) && (r = y.toLowerCase(), e[r] = m[y](), p.push((e[r] ? "" : "no-") + r)); u(""), i = k = null,
      e._version = d, e.hasEvent = q; return e
} (this, this.document);


