/**
 * Copy the value of an input field's title attribute to its value attribute.
 * Clear the input field on focus if its value is the same as its title.
 * Repopulate the input field on blur if it is empty.
 * Hide the input field's associated label if it has one.
 */
var autoPopulate = {
    sInputClass: 'text', // Class name for input elements to autopopulate
    sHiddenClass: 'structural', // Class name that gets assigned to hidden label elements
    bHideLabels: true, // If true, labels are hidden
    /**
     * Main function
     */
    init: function(){
        // Check for DOM support
        if (!document.getElementById || !document.createTextNode) {
            return;
        }
        // Find all input elements with the given className
        var arrInputs = autoPopulate.getElementsByClassName(document, 'input', autoPopulate.sInputClass);
        var iInputs = arrInputs.length;
        var oInput;
        for (var i = 0; i < iInputs; i++) {
            oInput = arrInputs[i];
            // Make sure it's a text input
            if (oInput.type != 'text') {
                continue;
            }
            // Hide the input's label
            if (autoPopulate.bHideLabels) {
                autoPopulate.hideLabel(oInput.id);
            }
            // If value is empty and title is not, assign title to value
            if ((oInput.value == '') && (oInput.title != '')) {
                oInput.value = oInput.title;
            }
            // Add event handlers for focus and blur
            autoPopulate.addEvent(oInput, 'focus', function(){
                // If value and title are equal on focus, clear value
                if (this.value == this.title) {
                    this.value = '';
                    this.select(); // Make input caret visible in IE
                }
            });
            autoPopulate.addEvent(oInput, 'blur', function(){
                // If the field is empty on blur, assign title to value
                if (!this.value.length) {
                    this.value = this.title;
                }
            });
        }
    },
    hideLabel: function(sId){
        var arrLabels = document.getElementsByTagName('label');
        var iLabels = arrLabels.length;
        var oLabel;
        for (var i = 0; i < iLabels; i++) {
            oLabel = arrLabels[i];
            if (oLabel.htmlFor == sId) {
                oLabel.className = oLabel.className + ' ' + autoPopulate.sHiddenClass;
            }
        }
    },
    /**
     * getElementsByClassName function included here for portability.
     * Remove if you are already using one.
     * Written by Jonathan Snook, http://www.snook.ca/jonathan
     * Add-ons by Robert Nyman, http://www.robertnyman.com
     */
    getElementsByClassName: function(oElm, strTagName, strClassName){
        var arrElements = (strTagName == "*" && document.all) ? document.all : oElm.getElementsByTagName(strTagName);
        var arrReturnElements = new Array();
        strClassName = strClassName.replace(/\-/g, "\\-");
        var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
        var oElement;
        for (var i = 0; i < arrElements.length; i++) {
            oElement = arrElements[i];
            if (oRegExp.test(oElement.className)) {
                arrReturnElements.push(oElement);
            }
        }
        return (arrReturnElements)
    },
    /**
     * addEvent function included here for portability.
     * Remove if you are already using an addEvent/DOMReady function.
     * Found at http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
     */
    addEvent: function(obj, type, fn){
        if (obj.addEventListener) 
            obj.addEventListener(type, fn, false);
        else 
            if (obj.attachEvent) {
                obj["e" + type + fn] = fn;
                obj[type + fn] = function(){
                    obj["e" + type + fn](window.event);
                }
                obj.attachEvent("on" + type, obj[type + fn]);
            }
    }
};

/**
 * Init on window load.
 * Replace this with a call to your own addEvent/DOMReady function if you use one.
 */
autoPopulate.addEvent(window, 'load', autoPopulate.init);

/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
 Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
 This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
 */
var swfobject = function(){
    var b = "undefined", Q = "object", n = "Shockwave Flash", p = "ShockwaveFlash.ShockwaveFlash", P = "application/x-shockwave-flash", m = "SWFObjectExprInst", j = window, K = document, T = navigator, o = [], N = [], i = [], d = [], J, Z = null, M = null, l = null, e = false, A = false;
    var h = function(){
        var v = typeof K.getElementById != b && typeof K.getElementsByTagName != b && typeof K.createElement != b, AC = [0, 0, 0], x = null;
        if (typeof T.plugins != b && typeof T.plugins[n] == Q) {
            x = T.plugins[n].description;
            if (x && !(typeof T.mimeTypes != b && T.mimeTypes[P] && !T.mimeTypes[P].enabledPlugin)) {
                x = x.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
                AC[0] = parseInt(x.replace(/^(.*)\..*$/, "$1"), 10);
                AC[1] = parseInt(x.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
                AC[2] = /r/.test(x) ? parseInt(x.replace(/^.*r(.*)$/, "$1"), 10) : 0
            }
        }
        else {
            if (typeof j.ActiveXObject != b) {
                var y = null, AB = false;
                try {
                    y = new ActiveXObject(p + ".7")
                } 
                catch (t) {
                    try {
                        y = new ActiveXObject(p + ".6");
                        AC = [6, 0, 21];
                        y.AllowScriptAccess = "always"
                    } 
                    catch (t) {
                        if (AC[0] == 6) {
                            AB = true
                        }
                    }
                    if (!AB) {
                        try {
                            y = new ActiveXObject(p)
                        } 
                        catch (t) {
                        }
                    }
                }
                if (!AB && y) {
                    try {
                        x = y.GetVariable("$version");
                        if (x) {
                            x = x.split(" ")[1].split(",");
                            AC = [parseInt(x[0], 10), parseInt(x[1], 10), parseInt(x[2], 10)]
                        }
                    } 
                    catch (t) {
                    }
                }
            }
        }
        var AD = T.userAgent.toLowerCase(), r = T.platform.toLowerCase(), AA = /webkit/.test(AD) ? parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, q = false, z = r ? /win/.test(r) : /win/.test(AD), w = r ? /mac/.test(r) : /mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/
        return {
            w3cdom: v,
            pv: AC,
            webkit: AA,
            ie: q,
            win: z,
            mac: w
        }
    }();
    var L = function(){
        if (!h.w3cdom) {
            return
        }
        f(H);
        if (h.ie && h.win) {
            try {
                K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");
                J = C("__ie_ondomload");
                if (J) {
                    I(J, "onreadystatechange", S)
                }
            } 
            catch (q) {
            }
        }
        if (h.webkit && typeof K.readyState != b) {
            Z = setInterval(function(){
                if (/loaded|complete/.test(K.readyState)) {
                    E()
                }
            }, 10)
        }
        if (typeof K.addEventListener != b) {
            K.addEventListener("DOMContentLoaded", E, null)
        }
        R(E)
    }();
    function S(){
        if (J.readyState == "complete") {
            J.parentNode.removeChild(J);
            E()
        }
    }
    function E(){
        if (e) {
            return
        }
        if (h.ie && h.win) {
            var v = a("span");
            try {
                var u = K.getElementsByTagName("body")[0].appendChild(v);
                u.parentNode.removeChild(u)
            } 
            catch (w) {
                return
            }
        }
        e = true;
        if (Z) {
            clearInterval(Z);
            Z = null
        }
        var q = o.length;
        for (var r = 0; r < q; r++) {
            o[r]()
        }
    }
    function f(q){
        if (e) {
            q()
        }
        else {
            o[o.length] = q
        }
    }
    function R(r){
        if (typeof j.addEventListener != b) {
            j.addEventListener("load", r, false)
        }
        else {
            if (typeof K.addEventListener != b) {
                K.addEventListener("load", r, false)
            }
            else {
                if (typeof j.attachEvent != b) {
                    I(j, "onload", r)
                }
                else {
                    if (typeof j.onload == "function") {
                        var q = j.onload;
                        j.onload = function(){
                            q();
                            r()
                        }
                    }
                    else {
                        j.onload = r
                    }
                }
            }
        }
    }
    function H(){
        var t = N.length;
        for (var q = 0; q < t; q++) {
            var u = N[q].id;
            if (h.pv[0] > 0) {
                var r = C(u);
                if (r) {
                    N[q].width = r.getAttribute("width") ? r.getAttribute("width") : "0";
                    N[q].height = r.getAttribute("height") ? r.getAttribute("height") : "0";
                    if (c(N[q].swfVersion)) {
                        if (h.webkit && h.webkit < 312) {
                            Y(r)
                        }
                        W(u, true)
                    }
                    else {
                        if (N[q].expressInstall && !A && c("6.0.65") && (h.win || h.mac)) {
                            k(N[q])
                        }
                        else {
                            O(r)
                        }
                    }
                }
            }
            else {
                W(u, true)
            }
        }
    }
    function Y(t){
        var q = t.getElementsByTagName(Q)[0];
        if (q) {
            var w = a("embed"), y = q.attributes;
            if (y) {
                var v = y.length;
                for (var u = 0; u < v; u++) {
                    if (y[u].nodeName == "DATA") {
                        w.setAttribute("src", y[u].nodeValue)
                    }
                    else {
                        w.setAttribute(y[u].nodeName, y[u].nodeValue)
                    }
                }
            }
            var x = q.childNodes;
            if (x) {
                var z = x.length;
                for (var r = 0; r < z; r++) {
                    if (x[r].nodeType == 1 && x[r].nodeName == "PARAM") {
                        w.setAttribute(x[r].getAttribute("name"), x[r].getAttribute("value"))
                    }
                }
            }
            t.parentNode.replaceChild(w, t)
        }
    }
    function k(w){
        A = true;
        var u = C(w.id);
        if (u) {
            if (w.altContentId) {
                var y = C(w.altContentId);
                if (y) {
                    M = y;
                    l = w.altContentId
                }
            }
            else {
                M = G(u)
            }
            if (!(/%$/.test(w.width)) && parseInt(w.width, 10) < 310) {
                w.width = "310"
            }
            if (!(/%$/.test(w.height)) && parseInt(w.height, 10) < 137) {
                w.height = "137"
            }
            K.title = K.title.slice(0, 47) + " - Flash Player Installation";
            var z = h.ie && h.win ? "ActiveX" : "PlugIn", q = K.title, r = "MMredirectURL=" + j.location + "&MMplayerType=" + z + "&MMdoctitle=" + q, x = w.id;
            if (h.ie && h.win && u.readyState != 4) {
                var t = a("div");
                x += "SWFObjectNew";
                t.setAttribute("id", x);
                u.parentNode.insertBefore(t, u);
                u.style.display = "none";
                var v = function(){
                    u.parentNode.removeChild(u)
                };
                I(j, "onload", v)
            }
            U({
                data: w.expressInstall,
                id: m,
                width: w.width,
                height: w.height
            }, {
                flashvars: r
            }, x)
        }
    }
    function O(t){
        if (h.ie && h.win && t.readyState != 4) {
            var r = a("div");
            t.parentNode.insertBefore(r, t);
            r.parentNode.replaceChild(G(t), r);
            t.style.display = "none";
            var q = function(){
                t.parentNode.removeChild(t)
            };
            I(j, "onload", q)
        }
        else {
            t.parentNode.replaceChild(G(t), t)
        }
    }
    function G(v){
        var u = a("div");
        if (h.win && h.ie) {
            u.innerHTML = v.innerHTML
        }
        else {
            var r = v.getElementsByTagName(Q)[0];
            if (r) {
                var w = r.childNodes;
                if (w) {
                    var q = w.length;
                    for (var t = 0; t < q; t++) {
                        if (!(w[t].nodeType == 1 && w[t].nodeName == "PARAM") && !(w[t].nodeType == 8)) {
                            u.appendChild(w[t].cloneNode(true))
                        }
                    }
                }
            }
        }
        return u
    }
    function U(AG, AE, t){
        var q, v = C(t);
        if (v) {
            if (typeof AG.id == b) {
                AG.id = t
            }
            if (h.ie && h.win) {
                var AF = "";
                for (var AB in AG) {
                    if (AG[AB] != Object.prototype[AB]) {
                        if (AB.toLowerCase() == "data") {
                            AE.movie = AG[AB]
                        }
                        else {
                            if (AB.toLowerCase() == "styleclass") {
                                AF += ' class="' + AG[AB] + '"'
                            }
                            else {
                                if (AB.toLowerCase() != "classid") {
                                    AF += " " + AB + '="' + AG[AB] + '"'
                                }
                            }
                        }
                    }
                }
                var AD = "";
                for (var AA in AE) {
                    if (AE[AA] != Object.prototype[AA]) {
                        AD += '<param name="' + AA + '" value="' + AE[AA] + '" />'
                    }
                }
                v.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + AF + ">" + AD + "</object>";
                i[i.length] = AG.id;
                q = C(AG.id)
            }
            else {
                if (h.webkit && h.webkit < 312) {
                    var AC = a("embed");
                    AC.setAttribute("type", P);
                    for (var z in AG) {
                        if (AG[z] != Object.prototype[z]) {
                            if (z.toLowerCase() == "data") {
                                AC.setAttribute("src", AG[z])
                            }
                            else {
                                if (z.toLowerCase() == "styleclass") {
                                    AC.setAttribute("class", AG[z])
                                }
                                else {
                                    if (z.toLowerCase() != "classid") {
                                        AC.setAttribute(z, AG[z])
                                    }
                                }
                            }
                        }
                    }
                    for (var y in AE) {
                        if (AE[y] != Object.prototype[y]) {
                            if (y.toLowerCase() != "movie") {
                                AC.setAttribute(y, AE[y])
                            }
                        }
                    }
                    v.parentNode.replaceChild(AC, v);
                    q = AC
                }
                else {
                    var u = a(Q);
                    u.setAttribute("type", P);
                    for (var x in AG) {
                        if (AG[x] != Object.prototype[x]) {
                            if (x.toLowerCase() == "styleclass") {
                                u.setAttribute("class", AG[x])
                            }
                            else {
                                if (x.toLowerCase() != "classid") {
                                    u.setAttribute(x, AG[x])
                                }
                            }
                        }
                    }
                    for (var w in AE) {
                        if (AE[w] != Object.prototype[w] && w.toLowerCase() != "movie") {
                            F(u, w, AE[w])
                        }
                    }
                    v.parentNode.replaceChild(u, v);
                    q = u
                }
            }
        }
        return q
    }
    function F(t, q, r){
        var u = a("param");
        u.setAttribute("name", q);
        u.setAttribute("value", r);
        t.appendChild(u)
    }
    function X(r){
        var q = C(r);
        if (q && (q.nodeName == "OBJECT" || q.nodeName == "EMBED")) {
            if (h.ie && h.win) {
                if (q.readyState == 4) {
                    B(r)
                }
                else {
                    j.attachEvent("onload", function(){
                        B(r)
                    })
                }
            }
            else {
                q.parentNode.removeChild(q)
            }
        }
    }
    function B(t){
        var r = C(t);
        if (r) {
            for (var q in r) {
                if (typeof r[q] == "function") {
                    r[q] = null
                }
            }
            r.parentNode.removeChild(r)
        }
    }
    function C(t){
        var q = null;
        try {
            q = K.getElementById(t)
        } 
        catch (r) {
        }
        return q
    }
    function a(q){
        return K.createElement(q)
    }
    function I(t, q, r){
        t.attachEvent(q, r);
        d[d.length] = [t, q, r]
    }
    function c(t){
        var r = h.pv, q = t.split(".");
        q[0] = parseInt(q[0], 10);
        q[1] = parseInt(q[1], 10) || 0;
        q[2] = parseInt(q[2], 10) || 0;
        return (r[0] > q[0] || (r[0] == q[0] && r[1] > q[1]) || (r[0] == q[0] && r[1] == q[1] && r[2] >= q[2])) ? true : false
    }
    function V(v, r){
        if (h.ie && h.mac) {
            return
        }
        var u = K.getElementsByTagName("head")[0], t = a("style");
        t.setAttribute("type", "text/css");
        t.setAttribute("media", "screen");
        if (!(h.ie && h.win) && typeof K.createTextNode != b) {
            t.appendChild(K.createTextNode(v + " {" + r + "}"))
        }
        u.appendChild(t);
        if (h.ie && h.win && typeof K.styleSheets != b && K.styleSheets.length > 0) {
            var q = K.styleSheets[K.styleSheets.length - 1];
            if (typeof q.addRule == Q) {
                q.addRule(v, r)
            }
        }
    }
    function W(t, q){
        var r = q ? "visible" : "hidden";
        if (e && C(t)) {
            C(t).style.visibility = r
        }
        else {
            V("#" + t, "visibility:" + r)
        }
    }
    function g(s){
        var r = /[\\\"<>\.;]/;
        var q = r.exec(s) != null;
        return q ? encodeURIComponent(s) : s
    }
    var D = function(){
        if (h.ie && h.win) {
            window.attachEvent("onunload", function(){
                var w = d.length;
                for (var v = 0; v < w; v++) {
                    d[v][0].detachEvent(d[v][1], d[v][2])
                }
                var t = i.length;
                for (var u = 0; u < t; u++) {
                    X(i[u])
                }
                for (var r in h) {
                    h[r] = null
                }
                h = null;
                for (var q in swfobject) {
                    swfobject[q] = null
                }
                swfobject = null
            })
        }
    }();
    return {
        registerObject: function(u, q, t){
            if (!h.w3cdom || !u || !q) {
                return
            }
            var r = {};
            r.id = u;
            r.swfVersion = q;
            r.expressInstall = t ? t : false;
            N[N.length] = r;
            W(u, false)
        },
        getObjectById: function(v){
            var q = null;
            if (h.w3cdom) {
                var t = C(v);
                if (t) {
                    var u = t.getElementsByTagName(Q)[0];
                    if (!u || (u && typeof t.SetVariable != b)) {
                        q = t
                    }
                    else {
                        if (typeof u.SetVariable != b) {
                            q = u
                        }
                    }
                }
            }
            return q
        },
        embedSWF: function(x, AE, AB, AD, q, w, r, z, AC){
            if (!h.w3cdom || !x || !AE || !AB || !AD || !q) {
                return
            }
            AB += "";
            AD += "";
            if (c(q)) {
                W(AE, false);
                var AA = {};
                if (AC && typeof AC === Q) {
                    for (var v in AC) {
                        if (AC[v] != Object.prototype[v]) {
                            AA[v] = AC[v]
                        }
                    }
                }
                AA.data = x;
                AA.width = AB;
                AA.height = AD;
                var y = {};
                if (z && typeof z === Q) {
                    for (var u in z) {
                        if (z[u] != Object.prototype[u]) {
                            y[u] = z[u]
                        }
                    }
                }
                if (r && typeof r === Q) {
                    for (var t in r) {
                        if (r[t] != Object.prototype[t]) {
                            if (typeof y.flashvars != b) {
                                y.flashvars += "&" + t + "=" + r[t]
                            }
                            else {
                                y.flashvars = t + "=" + r[t]
                            }
                        }
                    }
                }
                f(function(){
                    U(AA, y, AE);
                    if (AA.id == AE) {
                        W(AE, true)
                    }
                })
            }
            else {
                if (w && !A && c("6.0.65") && (h.win || h.mac)) {
                    A = true;
                    W(AE, false);
                    f(function(){
                        var AF = {};
                        AF.id = AF.altContentId = AE;
                        AF.width = AB;
                        AF.height = AD;
                        AF.expressInstall = w;
                        k(AF)
                    })
                }
            }
        },
        getFlashPlayerVersion: function(){
            return {
                major: h.pv[0],
                minor: h.pv[1],
                release: h.pv[2]
            }
        },
        hasFlashPlayerVersion: c,
        createSWF: function(t, r, q){
            if (h.w3cdom) {
                return U(t, r, q)
            }
            else {
                return undefined
            }
        },
        removeSWF: function(q){
            if (h.w3cdom) {
                X(q)
            }
        },
        createCSS: function(r, q){
            if (h.w3cdom) {
                V(r, q)
            }
        },
        addDomLoadEvent: f,
        addLoadEvent: R,
        getQueryParamValue: function(v){
            var u = K.location.search || K.location.hash;
            if (v == null) {
                return g(u)
            }
            if (u) {
                var t = u.substring(1).split("&");
                for (var r = 0; r < t.length; r++) {
                    if (t[r].substring(0, t[r].indexOf("=")) == v) {
                        return g(t[r].substring((t[r].indexOf("=") + 1)))
                    }
                }
            }
            return ""
        },
        expressInstallCallback: function(){
            if (A && M) {
                var q = C(m);
                if (q) {
                    q.parentNode.replaceChild(M, q);
                    if (l) {
                        W(l, true);
                        if (h.ie && h.win) {
                            M.style.display = "block"
                        }
                    }
                    M = null;
                    l = null;
                    A = false
                }
            }
        }
    }
}();