Object.extend(Event, {
    _domReady: function(){
        if (arguments.callee.done) {
            return;
        }
        arguments.callee.done = true;
        if (this._timer) {
            clearInterval(this._timer);
        }
        AC.isDomReady = true;
        if (this._readyCallbacks) {
            this._readyCallbacks.each(function(Q){
                Q();
            });
        }
        this._readyCallbacks = null;
    },
    onDOMReady: function(I){
        if (AC.isDomReady) {
            I();
        }
        else {
            if (!this._readyCallbacks) {
                var Q = this._domReady.bind(this);
                if (document.addEventListener) {
                    document.addEventListener("DOMContentLoaded", Q, false);
                }
                if (/WebKit/i.test(navigator.userAgent)) {
                    this._timer = setInterval(function(){
                        if (/loaded|complete/.test(document.readyState)) {
                            Q();
                        }
                    }, 10);
                }
                Event.observe(window, "load", Q);
                Event._readyCallbacks = [];
            }
            Event._readyCallbacks.push(I);
        }
    }
});
if (typeof(AC) == "undefined") {
    AC = {};
}
AC.decorateSearchInput = function(c, C){
    var U = $(c);
    var i = null;
    var G = 0;
    var h = "";
    var b = "";
    if (C) {
        if (C.results) {
            G = C.results;
        }
        if (C.placeholder) {
            h = C.placeholder;
        }
        if (C.autosave) {
            b = C.autosave;
        }
    }
    if (AC.Detector.isWebKit()) {
        if (AC.Detector.isWin()) {
            U.addClassName("not-round");
        }
        U.setAttribute("type", "search");
        if (!U.getAttribute("results")) {
            U.setAttribute("results", G);
        }
        if (null != h) {
            U.setAttribute("placeholder", h);
            U.setAttribute("autosave", b);
        }
    }
    else {
        U.setAttribute("autocomplete", "off");
        i = document.createElement("input");
        U.parentNode.replaceChild(i, U);
        var L = document.createElement("span");
        Element.addClassName(L, "left");
        var v = document.createElement("span");
        Element.addClassName(v, "right");
        var J = document.createElement("div");
        Element.addClassName(J, "reset");
        var f = document.createElement("div");
        Element.addClassName(f, "search-wrapper");
        var P = c.value == h;
        var m = c.value.length == 0;
        if (P || m) {
            U.value = h;
            Element.addClassName(f, "blurred");
            Element.addClassName(f, "empty");
        }
        f.appendChild(L);
        f.appendChild(U);
        f.appendChild(v);
        f.appendChild(J);
        var n = function(){
            var p = Element.hasClassName(f, "blurred");
            if (U.value == h && p) {
                U.value = "";
            }
            Element.removeClassName(f, "blurred");
        };
        Event.observe(U, "focus", n);
        var I = function(){
            if (U.value == "") {
                Element.addClassName(f, "empty");
                U.value = h;
            }
            Element.addClassName(f, "blurred");
        };
        Event.observe(U, "blur", I);
        var Q = function(){
            if (U.value.length >= 0) {
                Element.removeClassName(f, "empty");
            }
        };
        Event.observe(U, "keydown", Q);
        var q = function(){
            return (function(p){
                var N = false;
                if (p.type == "keydown") {
                    if (p.keyCode != 27) {
                        return;
                    }
                    else {
                        N = true;
                    }
                }
                U.blur();
                U.value = "";
                Element.addClassName(f, "empty");
                U.focus();
            });
        };
        Event.observe(J, "mousedown", q());
        Event.observe(U, "keydown", q());
        if (i) {
            i.parentNode.replaceChild(f, i);
        }
    }
};
var Element2 = {};
Element2.Methods = {
    getInnerDimensions: function(I){
        I = $(I);
        var m = Element.getDimensions(I);
        var L = m.height;
        var Q = Element.getStyle;
        L -= Q(I, "border-top-width") && Q(I, "border-top-width") != "medium" ? parseInt(Q(I, "border-top-width"), 10) : 0;
        L -= Q(I, "border-bottom-width") && Q(I, "border-bottom-width") != "medium" ? parseInt(Q(I, "border-bottom-width"), 10) : 0;
        L -= Q(I, "padding-top") ? parseInt(Q(I, "padding-top"), 10) : 0;
        L -= Q(I, "padding-bottom") ? parseInt(Q(I, "padding-bottom"), 10) : 0;
        var f = m.width;
        f -= Q(I, "border-left-width") && Q(I, "border-left-width") != "medium" ? parseInt(Q(I, "border-left-width"), 10) : 0;
        f -= Q(I, "border-right-width") && Q(I, "border-right-width") != "medium" ? parseInt(Q(I, "border-right-width"), 10) : 0;
        f -= Q(I, "padding-left") ? parseInt(Q(I, "padding-left"), 10) : 0;
        f -= Q(I, "padding-right") ? parseInt(Q(I, "padding-right"), 10) : 0;
        return {
            width: f,
            height: L
        };
    },
    getOuterDimensions: function(Q){
        Q = $(Q);
        var G = Q.cloneNode(true);
        document.body.appendChild(G);
        Element.setStyle(G, {
            position: "absolute",
            visibility: "hidden"
        });
        var m = Element.getDimensions(G);
        var I = m.height;
        var f = Element.getStyle;
        I += f(G, "margin-top") ? parseInt(f(G, "margin-top"), 10) : 0;
        I += f(G, "margin-bottom") ? parseInt(f(G, "margin-bottom"), 10) : 0;
        var L = m.width;
        L += f(G, "margin-left") ? parseInt(f(G, "margin-left"), 10) : 0;
        L += f(G, "margin-right") ? parseInt(f(G, "margin-right"), 10) : 0;
        Element.remove(G);
        return {
            width: L,
            height: I
        };
    },
    removeAllChildNodes: function(f){
        f = $(f);
        if (!f) {
            return;
        }
        while (f.hasChildNodes()) {
            f.removeChild(f.lastChild);
        }
    }
};
Object.extend(Element, Element2.Methods);
if (typeof(AC) == "undefined") {
    AC = {};
}
if (typeof(AC.Tracking) == "undefined") {
    AC.Tracking = {};
}
AC.Tracking.getLinkClicked = function(f){
    if (!f) {
        return null;
    }
    while (f.nodeName.toLowerCase() != "a" && f.nodeName.toLowerCase() != "body") {
        f = f.parentNode;
    }
    if (!f.href) {
        f = null;
    }
    return f;
};
AC.Tracking.trackLinksWithin = function(f, m, L, I, Q){
    $(f).observe("mousedown", function(G){
        var P = AC.Tracking.getLinkClicked(Event.element(G));
        if (P && m(P)) {
            if (Q && Q.beforeTrack) {
                var i = Q.beforeTrack(P, L, I);
                if (i) {
                    L = i.title;
                    I = i.properties;
                }
            }
            AC.Tracking.trackClick(I, this, "o", L);
        }
    });
};
AC.Tracking.tagLinksWithin = function(f, Q, I, L){
    $(f).observe("mousedown", function(m){
        var G = Event.element(m);
        if (!G) {
            return;
        }
        while (G.nodeName.toLowerCase() != "a" && G.nodeName.toLowerCase() != "body") {
            G = G.parentNode;
        }
        if (G.href && L(G)) {
            AC.Tracking.tagLink(G, Q, I);
        }
        G = null;
    });
};
AC.Tracking.tagLink = function(I, Q, L){
    var f = I.getAttribute("href");
    if (f.match(/\?/)) {
        var m = f.toQueryParams();
        m[Q] = L;
        f = f.split(/\?/)[0] + "?" + $H(m).toQueryString();
    }
    else {
        f += "?" + Q + "=" + L;
    }
    I.setAttribute("href", f);
};
AC.Tracking.s_vi = function(){
    var L = document.cookie.split(";"), m = null, f;
    for (var I = 0, Q; (Q = L[I]); I++) {
        f = Q.match(/^\s*s_vi=\[CS\]v1\|(.+)\[CE\]\s*$/);
        if (f) {
            m = f[1];
            break;
        }
    }
    return m;
};
AC.Tracking.track = function(G, L, Q){
    if (typeof(s_gi) == "undefined" || !s_gi) {
        return;
    }
    Q = Q ||
    {};
    if (typeof(s_account) != "undefined") {
        s = s_gi(s_account);
    }
    else {
        if (Q.s_account) {
            s = s_gi(Q.s_account);
        }
        else {
            return;
        }
    }
    if (G == s.tl) {
        var f = "";
        for (var I in L) {
            f += I + ",";
        }
        f = f.replace(/,$/, "");
        s.linkTrackVars = f;
    }
    else {
        s.linkTrackVars = "";
    }
    s.prop4 = "";
    s.g_prop4 = "";
    s.prop6 = "";
    s.g_prop6 = "";
    s.pageName = "";
    s.g_pageName = "";
    s.pageURL = "";
    s.g_pageURL = "";
    s.g_channel = "";
    var m = function(i){
        if (typeof(i) == "string") {
            return i.replace(/[\'\"\“\”\‘\’]/g, "");
        }
        else {
            return i;
        }
    };
    for (var I in L) {
        s[I] = m(L[I]);
        if (I == "events") {
            s.linkTrackEvents = m(L[I]);
        }
    }
    if (G == s.t) {
        void (s.t());
    }
    else {
        s.tl(Q.obj, Q.linkType, m(Q.title));
    }
    for (var I in L) {
        if (I != "pageName") {
            s[I] = "";
        }
        if (I == "events") {
            s.linkTrackEvents = "None";
        }
    }
}, AC.Tracking.trackClick = function(I, L, f, m, Q){
    var Q = {
        obj: L,
        linkType: f,
        title: m
    };
    AC.Tracking.track(s.tl, I, Q);
}, AC.Tracking.trackPage = function(Q, f){
    AC.Tracking.track(s.t, Q, f);
};
Element.Methods.childNodeWithNodeTypeAtIndex = function(L, f, Q){
    var m = L.firstChild;
    if (!m) {
        return null;
    }
    var I = 0;
    while (m) {
        if (m.nodeType === f) {
            if (Q === I) {
                return m;
            }
            I++;
        }
        m = m.nextSibling;
    }
    return null;
};
String.prototype.lastPathComponent = function(){
    var f = this.lastIndexOf("/");
    if (f != -1) {
        return this.substring(f + 1, this.length - 1);
    }
    else {
        return null;
    }
};
String.prototype.stringByDeletingLastPathComponent = function(){
    var f = this.lastIndexOf("/");
    if (f != -1) {
        return this.slice(0, f);
    }
    else {
        return null;
    }
};
String.prototype.stringByAppendingPathComponent = function(f){
    return (this.lastIndexOf("/") !== (this.length - 1)) ? (this + "/" + f) : (this + f);
};
String.prototype.stringByRemovingPrefix = function(I){
    var Q = this.indexOf(I);
    if (Q > -1) {
        var f = this.substring(Q + I.length, this.length);
        return f;
    }
    else {
        return this;
    }
};
String.prototype.pathExtension = function(){
    var Q = this.lastPathComponent();
    var f = Q.lastIndexOf(".");
    if (f != -1) {
        return Q.slice(f, Q.length);
    }
    else {
        return "";
    }
};
Array.prototype.addObjectsFromArray = function(I){
    if (I.constructor === Array) {
        this.push.apply(this, I);
    }
    else {
        for (var f = 0, Q; (Q = I[f]); f++) {
            this[this.length] = Q;
        }
    }
};
Array.prototype.item = function(f){
    return this[f];
};
document._importNode = function(P, Q){
    if (P.nodeType === Node.ELEMENT_NODE) {
        var m = document.createElement(P.nodeName);
        var L, I;
        if (P.attributes && P.attributes.length > 0) {
            var J = P.attributes;
        }
        var G, f;
        for (L = 0, I = P.attributes.length; L < I;) {
            G = J[L].nodeName;
            f = P.getAttribute(J[L++].nodeName);
            if (G === "class") {
                m.setAttribute("className", f);
            }
            m.setAttribute(G, f);
        }
        if (Q && P.childNodes && P.childNodes.length > 0) {
            for (L = 0, I = P.childNodes.length; L < I;) {
                m.appendChild(document._importNode(P.childNodes[L++], Q));
            }
        }
        return m;
    }
    else {
        if (P.nodeType === Node.TEXT_NODE) {
            return document.createTextNode(P.nodeValue);
        }
        else {
            if (P.nodeType === Node.COMMENT_NODE) {
                return document.createComment(P.nodeValue);
            }
            else {
                if (P.nodeType === Node.CDATA_SECTION_NODE) {
                    return document.createCDATASection(P.nodeValue);
                }
                else {
                    return null;
                }
            }
        }
    }
};
if (!document.importNode) {
    document.importNode = document._importNode;
}


