// JavaScript Document

/*
 * List of the libraries which are removed
 * JQUERY.UI.CORE.JS v1.5.2
 * JQUERY.UI.ACCORDION.JS v1.5.2
 * JQUERY.UI.DATEPICKER.JS v3.4
 * JQUERY.WORDCOUNT.JS v1.0 (in-house)
 * JQUERY.ELEMENTREADY.JS (in-house)
 * JQUERY.LIGHTBOX.JS v0.5
 * JQUERY.DETTABS.JS v1.0 (in-house)
 * JQUERY.DETTEXT.JS v1.0 (in-house)
 * JQUERY.WINDOWOPEN.JS v1.0 (in-house)
 * JQUERY.SELECTALL.JS v1.0 (in-house)
 * JQUERY.FLOATTOOLBAR.JS v2.0 (in-house)
 * JQUERY.POSITIONTOOLBAR.JS v1.0
 * JQUERY.FLOATSIDEBAR.JS v2.0 (in-house)
 * DATE FORMAT v2003
 */

/************************************************************************************************
			JQUERY.FORM.JS v2.12
************************************************************************************************/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(5($){$.8.S=5(r){2(!3.E){Y(\'S: 3J z 3f - 33 2U 1H\');6 3}2(O r==\'5\')r={P:r};r=$.2h({1f:3.V(\'1k\')||19.3e.38(),F:3.V(\'25\')||\'1N\'},r||{});4 u={};3.I(\'A-2u-2s\',[3,r,u]);2(u.2p){Y(\'S: z 2m 1E A-2u-2s I\');6 3}4 a=3.1D(r.3I);2(r.N){r.1l=r.N;H(4 n 24 r.N)a.C({7:n,9:r.N[n]})}2(r.1u&&r.1u(a,3,r)===G){Y(\'S: z 36 1E 1u 32\');6 3}3.I(\'A-z-1R\',[a,3,r,u]);2(u.2p){Y(\'S: z 2m 1E A-z-1R I\');6 3}4 q=$.1s(a);2(r.F.2T()==\'1N\'){r.1f+=(r.1f.2P(\'?\')>=0?\'&\':\'?\')+q;r.N=B}D r.N=q;4 v=3,X=[];2(r.1n)X.C(5(){v.1n()});2(r.1I)X.C(5(){v.1I()});2(!r.17&&r.16){4 w=r.P||5(){};X.C(5(a){$(r.16).3U(a).M(w,2r)})}D 2(r.P)X.C(r.P);r.P=5(a,b){H(4 i=0,J=X.E;i<J;i++)X[i](a,b,v)};4 x=$(\'W:3M\',3).14();4 y=G;H(4 j=0;j<x.E;j++)2(x[j])y=Q;2(r.2d||y){2($.1b.3G&&r.29)$.3C(r.29,1r);D 1r()}D $.3B(r);3.I(\'A-z-3y\',[3,r]);6 3;5 1r(){4 i=v[0];2($(\':W[@7=z]\',i).E){3w(\'3t: 3q 20 3o 3k 3h 3d "z".\');6}4 j=$.2h({},$.3c,r);4 k=\'39\'+(1v 37().35());4 l=$(\'<2d 31="\'+k+\'" 7="\'+k+\'" />\');4 m=l[0];2($.1b.1Q||$.1b.1P)m.2Z=\'2Y:G;1q.2V("");\';l.2S({2Q:\'2O\',2g:\'-2a\',1L:\'-2a\'});4 o={15:B,1c:B,2G:0,2D:\'n/a\',2B:5(){},1J:5(){},2y:5(){}};4 g=j.2x;2(g&&!$.2v++)$.1e.I("3Z");2(g)$.1e.I("3Y",[o,j]);4 p=0;4 q=0;1d(5(){4 t=v.V(\'16\'),a=v.V(\'1k\');v.V({16:k,3X:\'2t/A-N\',3T:\'2t/A-N\',25:\'3S\',1k:j.1f});2(j.1G)1d(5(){q=Q;T()},j.1G);4 b=[];2q{2(r.1l)H(4 n 24 r.1l)b.C($(\'<W F="3R" 7="\'+n+\'" 9="\'+r.1l[n]+\'" />\').2o(i)[0]);l.2o(\'1m\');m.2n?m.2n(\'2l\',T):m.3Q(\'2k\',T,G);i.z()}3P{v.V(\'1k\',a);t?v.V(\'16\',t):v.3N(\'16\');$(b).2j()}},10);5 T(){2(p++)6;m.2i?m.2i(\'2l\',T):m.3L(\'2k\',T,G);4 c=0;4 d=Q;2q{2(q)3K\'1G\';4 f,L;L=m.2f?m.2f.1q:m.2e?m.2e:m.1q;2(L.1m==B&&!c&&$.1b.1P){c=1;p--;1d(T,2c);6}o.15=L.1m?L.1m.3H:B;o.1c=L.2b?L.2b:L;o.1J=5(a){4 b={\'3F-F\':j.17};6 b[a]};2(j.17==\'3E\'||j.17==\'3D\'){4 h=L.1z(\'1o\')[0];o.15=h?h.9:o.15}D 2(j.17==\'28\'&&!o.1c&&o.15!=B){o.1c=27(o.15)}f=$.3A(o,j.17)}3z(e){d=G;$.3x(j,o,\'26\',e)}2(d){j.P(f,\'P\');2(g)$.1e.I("3v",[o,j])}2(g)$.1e.I("3s",[o,j]);2(g&&!--$.2v)$.1e.I("3r");2(j.23)j.23(o,d?\'P\':\'26\');1d(5(){l.2j();o.1c=B},2c)};5 27(s,a){2(19.21){a=1v 21(\'3p.3n\');a.3l=\'G\';a.3j(s)}D a=(1v 3i()).3g(s,\'1t/28\');6(a&&a.1X&&a.1X.1i!=\'3b\')?a:B}}};$.8.3a=5(c){6 3.1W().1V(\'z.A-1h\',5(){$(3).S(c);6 G}).M(5(){$(":z,W:11",3).1V(\'1U.A-1h\',5(e){4 a=3.A;a.U=3;2(3.F==\'11\'){2(e.1T!=R){a.13=e.1T;a.12=e.34}D 2(O $.8.22==\'5\'){4 b=$(3).22();a.13=e.1S-b.1L;a.12=e.1Y-b.2g}D{a.13=e.1S-3.30;a.12=e.1Y-3.3m}}1d(5(){a.U=a.13=a.12=B},10)})})};$.8.1W=5(){3.1Z(\'z.A-1h\');6 3.M(5(){$(":z,W:11",3).1Z(\'1U.A-1h\')})};$.8.1D=5(b){4 a=[];2(3.E==0)6 a;4 c=3[0];4 d=b?c.1z(\'*\'):c.20;2(!d)6 a;H(4 i=0,J=d.E;i<J;i++){4 e=d[i];4 n=e.7;2(!n)1w;2(b&&c.U&&e.F=="11"){2(!e.1g&&c.U==e)a.C({7:n+\'.x\',9:c.13},{7:n+\'.y\',9:c.12});1w}4 v=$.14(e,Q);2(v&&v.1j==18){H(4 j=0,1O=v.E;j<1O;j++)a.C({7:n,9:v[j]})}D 2(v!==B&&O v!=\'R\')a.C({7:n,9:v})}2(!b&&c.U){4 f=c.1z("W");H(4 i=0,J=f.E;i<J;i++){4 g=f[i];4 n=g.7;2(n&&!g.1g&&g.F=="11"&&c.U==g)a.C({7:n+\'.x\',9:c.13},{7:n+\'.y\',9:c.12})}}6 a};$.8.2X=5(a){6 $.1s(3.1D(a))};$.8.3u=5(b){4 a=[];3.M(5(){4 n=3.7;2(!n)6;4 v=$.14(3,b);2(v&&v.1j==18){H(4 i=0,J=v.E;i<J;i++)a.C({7:n,9:v[i]})}D 2(v!==B&&O v!=\'R\')a.C({7:3.7,9:v})});6 $.1s(a)};$.8.14=5(a){H(4 b=[],i=0,J=3.E;i<J;i++){4 c=3[i];4 v=$.14(c,a);2(v===B||O v==\'R\'||(v.1j==18&&!v.E))1w;v.1j==18?$.2W(b,v):b.C(v)}6 b};$.14=5(b,c){4 n=b.7,t=b.F,Z=b.1i.1x();2(O c==\'R\')c=Q;2(c&&(!n||b.1g||t==\'1a\'||t==\'2R\'||(t==\'1C\'||t==\'1B\')&&!b.1p||(t==\'z\'||t==\'11\')&&b.A&&b.A.U!=b||Z==\'K\'&&b.1y==-1))6 B;2(Z==\'K\'){4 d=b.1y;2(d<0)6 B;4 a=[],1A=b.2N;4 e=(t==\'K-1M\');4 f=(e?d+1:1A.E);H(4 i=(e?d:0);i<f;i++){4 g=1A[i];2(g.1H){4 v=$.1b.1Q&&!(g.2M[\'9\'].2L)?g.1t:g.9;2(e)6 v;a.C(v)}}6 a}6 b.9};$.8.1I=5(){6 3.M(5(){$(\'W,K,1o\',3).2w()})};$.8.2w=$.8.2K=5(){6 3.M(5(){4 t=3.F,Z=3.1i.1x();2(t==\'1t\'||t==\'2J\'||Z==\'1o\')3.9=\'\';D 2(t==\'1C\'||t==\'1B\')3.1p=G;D 2(Z==\'K\')3.1y=-1})};$.8.1n=5(){6 3.M(5(){2(O 3.1a==\'5\'||(O 3.1a==\'2I\'&&!3.1a.3O))3.1a()})};$.8.2H=5(b){2(b==R)b=Q;6 3.M(5(){3.1g=!b})};$.8.K=5(b){2(b==R)b=Q;6 3.M(5(){4 t=3.F;2(t==\'1C\'||t==\'1B\')3.1p=b;D 2(3.1i.1x()==\'1K\'){4 a=$(3).2F(\'K\');2(b&&a[0]&&a[0].F==\'K-1M\'){a.2E(\'1K\').K(G)}3.1H=b}})};5 Y(){2($.8.S.2C&&19.1F&&19.1F.Y)19.1F.Y(\'[3V.A] \'+18.3W.2A.2z(2r,\'\'))}})(40);',62,249,'||if|this|var|function|return|name|fn|value||||||||||||||||||||||||||submit|form|null|push|else|length|type|false|for|trigger|max|select|doc|each|data|typeof|success|true|undefined|ajaxSubmit|cb|clk|attr|input|callbacks|log|tag||image|clk_y|clk_x|fieldValue|responseText|target|dataType|Array|window|reset|browser|responseXML|setTimeout|event|url|disabled|plugin|tagName|constructor|action|extraData|body|resetForm|textarea|checked|document|fileUpload|param|text|beforeSubmit|new|continue|toLowerCase|selectedIndex|getElementsByTagName|ops|radio|checkbox|formToArray|via|console|timeout|selected|clearForm|getResponseHeader|option|left|one|GET|jmax|opera|msie|validate|pageX|offsetX|click|bind|ajaxFormUnbind|documentElement|pageY|unbind|elements|ActiveXObject|offset|complete|in|method|error|toXml|xml|closeKeepAlive|1000px|XMLDocument|100|iframe|contentDocument|contentWindow|top|extend|detachEvent|remove|load|onload|vetoed|attachEvent|appendTo|veto|try|arguments|serialize|multipart|pre|active|clearFields|global|setRequestHeader|call|join|getAllResponseHeaders|debug|statusText|find|parent|status|enable|object|password|clearInputs|specified|attributes|options|absolute|indexOf|position|button|css|toUpperCase|element|write|merge|formSerialize|javascript|src|offsetLeft|id|callback|no|offsetY|getTime|aborted|Date|toString|jqFormIO|ajaxForm|parsererror|ajaxSettings|named|location|process|parseFromString|be|DOMParser|loadXML|not|async|offsetTop|XMLDOM|must|Microsoft|Form|ajaxStop|ajaxComplete|Error|fieldSerialize|ajaxSuccess|alert|handleError|notify|catch|httpData|ajax|get|script|json|content|safari|innerHTML|semantic|skipping|throw|removeEventListener|file|removeAttr|nodeType|finally|addEventListener|hidden|POST|enctype|html|jquery|prototype|encoding|ajaxSend|ajaxStart|jQuery'.split('|'),0,{}));


/************************************************************************************************
			JQUERY.LISTEXPANDER.JS v1.0 (in-house)
************************************************************************************************/
;eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(3($){1 i=[];$.D.E=3(){1 d={m:\'q\',F:\'r\'};1 e=[];s(1 n=0;n<5.G;n++){4(t 5[n]==\'H\'){f=5[n]}4(t 5[n]==\'3\'){e.I(5[n])}}1 f=$.J(d,f);1 g="[&K;]";1 h="[+]";$(2).L(3(){1 b=$(2);1 c=$(2).o("7").u();c.M("<v N=\'8\'></v>");4(f.m==\'r\'){c.9("7").O();$(".8").j(g).6("k")}w 4(f.m==\'q\'){c.9("7").P();$(".8").j(h).6("l")}c.9(".8").y(3(){1 a=$(2).u();a.9(\'7\').Q(R);4($(2).z("l")){$(2).p("l").6("k").j(g)}w 4($(2).z("k")){$(2).p("k").6("l").j(h)}A B});b.o("a").y(3(){b.o("a").p("C");$(2).6("C");1 a=2.S;s(x T e){e[x](a)}A B})})}})(U);',57,57,'|var|this|function|if|arguments|addClass|ul|node|children||||||||||html|open|closed|liststyle||find|removeClass|collapsed|expanded|for|typeof|parent|span|else||click|hasClass|return|false|nodeselected|fn|listexpander|altstyle|length|object|push|extend|ndash|each|prepend|class|show|hide|slideToggle|250|href|in|jQuery'.split('|'),0,{}));


/************************************************************************************************
 JQUERY.TOOLTIP.JS v1.0 (in-house)
 ************************************************************************************************/
(function($){
    $.fn.tooltip = function(options){
        var defaults = {};
        var options = $.extend({}, defaults, options);
        if ($(this).length <= 0) 
            return this;
        createTooltip();
        $(this).each(function(){
            var tooltipText = $('#ttText');
            $(this).bind('mouseover', function(){
                var ttText = this.title || this.alt;
                tooltipText.html(ttText);
                var pos = findPos(this);
                options.left = pos[0];
                options.top = pos[1] - tooltip.height();
                tooltip.css(options).show()
            });
            $(this).mouseout(function(){
                tooltipText.empty();
                tooltip.hide()
            });
            $(this).click(function(){
                tooltipText.empty();
                tooltip.hide()
            })
        });
        return this
    };
    var ttID = 'tooltip';
    var tooltip = null;
    var createTooltip = function(){
        if ($("#" + ttID).length > 0) {
            return
        }
        var div = '<div>&nbsp;</div>';
        tooltip = $(div).attr('id', ttID).css({
            'z-index': 99999,
            'position': 'absolute',
            'display': 'none'
        });
        tooltip.hide().appendTo("body");
        tooltip.html('<div id="ttText">&nbsp;</div><div id="ttFooter">&nbsp;</div>')
    };
    var findPos = function(obj){
        var curleft = curtop = 0;
        if (obj.offsetParent) {
            do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop
            }
            while (obj = obj.offsetParent);
            return [curleft, curtop]
        }
    };
    $(document).ready(function(){
        $(".tooltip").tooltip()
    })
})(jQuery);

/************************************************************************************************
 SWFOBJECT.JS v2.1
 ************************************************************************************************/
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
                }
            }
        }
    }
}();

/************************************************************************************************
 JQUERY.CHARCOUNT.JS v1.0 (in-house)
 ************************************************************************************************/
$.fn.charcount = function(options){
    defaults = {
        max: 1000,
        min: 0,
        type: "countDown"
    };
    
    // build the options
    var options = $.extend({}, defaults, options);
    
    $(this).each(function(){
        var fieldname = $(this).attr("name");
        
        // Create the field which is going to contain the character counter.
        $(this).after("<div id='" + fieldname + "_count' class='counter' style='display: block;'>" + options.max + " character(s) left.</div>");
        
        // Define the initial value of the Character counter field. 
        var countcontainer = "#" + fieldname + "_count";
        var total = 0;
        var startcount = parseInt($(this).val().length);
        
        // Update the character counter field.
        $(countcontainer).html("<span class=\"count\">" + (options.max - startcount) + "</span>" + " character(s) left");
        
        var charCountHandler = function(field, e){
        
            var count = $(field).val().length;
            
            if (options.type == "countDown") {
                total = options.max - count;
            }
            
            if (options.type == "countUp") {
                total = count;
            }
            if (total >= 0) 
                $(countcontainer).html("<span class=\"count\">" + total + "</span>" + " character(s) left");
            
            if (((total <= 0) && (e.which != 8)) && (e.which != 0)) {
                if (total < 0) {
                    $(field).val($(field).val().substring(0, options.max));
                }
                return this;
            }
            return this;
        };
        
        $(this).keydown(function(e){
            return charCountHandler(this, e)
        });
        $(this).keyup(function(e){
            return charCountHandler(this, e)
        });
        $(this).blur(function(){
            return $(this).keyup();
        });
        $(this).focus(function(){
            return $(this).keyup();
        });
    });
};



/************************************************************************************************
 JQUERY.MEDIA.JS unpacked version
 ************************************************************************************************/
//eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(6($){$.3.4=6(d,e,f){s S.1g(6(){5(11 d==\'6\'){f=e;e=d;d={}}2 o=1D(S,d);5(11 e==\'6\')e(S,o);2 r=1E();2 m=r.2d(o.8)||[\'\'];o.K?m[0]=o.K:m.2e();y(2 i=0;i<m.12;i++){3=m[i].1F();5(13(3[0]))3=\'3\'+3;5(!$.3.4[3])2f;2 a=$.3.4[3+\'1h\'];5(!o.t)o.t={};5(a){2 b=a.14==\'1i\';o.t[a.14||\'15\']=b?(o.15?1:0):o.15?16:1G}2 c=$.3.4[3](S,o);c.1H(\'1I\',o.F).u(o.u);5(11 f==\'6\')f(S,c[0],o,a.G);2g}})};$.3.4.2h=6(a,b){5(!a||!b||!$.3.4.v.H[b])s;a=a.1F();5(13(a[0]))a=\'3\'+a;$.3.4[a]=$.3.4[b];$.3.4[a+\'1h\']=$.3.4.v.H[b]};$.3.4.v={u:1J,A:1J,15:0,F:\'#2i\',t:{2j:\'2k\'},L:{},C:{},17:\'7\',18:T,1K:\'1L.U\',1M:\'1L.U\',B:{1j:\'16\',1k:\'16\',1l:\'24\',19:\'0.9\',1m:T,1n:T,1o:T,1p:T}};$.3.4.v.H={V:{G:\'V\',I:\'1N,1q,U\',N:{1a:\'1b:2l-2m-1O-2n-2o\',K:\'W/x-1P\',1Q:\'O://2p.2q.P/2r/1R/2s/V/2t.1S#19=\'+$.3.4.v.17},Q:{K:\'W/x-1R-V\',1c:\'O://X.2u.P/2v/2w\'}},1r:{G:\'1r\',I:\'2x,2y,2z,2A,2B,2C,2D,2E,2F,2G,2H,2I,2J,2K,2L,2M,2N,2O,2P,2Q,2R,2S,2T,2U\',N:{1a:\'1b:2V-2W-2X-2Y-2Z\',1Q:\'O://X.1T.P/30/31.1S\'},Q:{1c:\'O://X.1T.P/1r/32/\'}},33:{G:\'1U\',I:\'34,35,36,37,38,39,3a\',14:\'1i\',N:{1a:\'1b:3b-3c-1O-3d-3e\'},Q:{K:\'3f/x-3g-3h-3i\',1c:\'O://X.1U.P/3j/\'}},1V:{G:\'1V\',I:\'3k,3l,3m,3n\',14:\'1i\',1W:\'3o\',N:{1a:\'1b:3p-3q-3r-3s-3t\',K:\'W/x-1P\'},Q:{K:$.1s.3u&&1X()?\'W/x-3v-3w\':\'W/x-3x\',1c:\'O://X.3y.P/3z/3A/\'}},Y:{G:\'Y\',I:\'Z,3B\'},B:{G:\'B\',I:\'1d\'}};6 1X(){2 a=3C.3D;y(i=0;i<a.12;i++){2 b=a[i];5(b[\'3E\']==\'3F-3G.3H\')s 16}s 1G}2 l=1;y(2 n D $.3.4.v.H){2 q=$.3.4.v.H[n].I;$.1g(q.3I(\',\'),6(i,o){5(13(o[0]))o=\'3\'+o;$.3.4[o]=$.3.4[n]=1Y(n);$.3.4[o+\'1h\']=$.3.4.v.H[n]})};6 1E(){2 a=\'\';y(2 b D $.3.4.v.H){5(a.12)a+=\',\';a+=$.3.4.v.H[b].I};s 1Z 3J(\'\\\\.(\'+a.3K(/,/g,\'|\')+\')\\\\b\')};6 1Y(c){s 6(a,b){s 1t(a,b,c)}};6 13(c){s\'3L\'.3M(c)>-1};6 1D(d,e){e=e||{};2 f=$(d);2 g=d.3N||\'\';2 j=$.20?f.20():$.3O?f.3P():{};j=j||{};2 w=j.u||21(((g.22(/w:(\\d+)/)||[])[1]||0));2 h=j.A||21(((g.22(/h:(\\d+)/)||[])[1]||0));5(w)j.u=w;5(h)j.A=h;5(g)j.M=g;2 a=$.3.4.v;2 b=e;2 c=j;2 p={t:{F:e.F||$.3.4.v.F}};2 k=$.1u({},a,b,c);$.1g([\'L\',\'t\',\'C\',\'B\'],6(i,o){k[o]=$.1u({},p[o]||{},a[o]||{},b[o]||{},c[o]||{})});5(11 k.J==\'3Q\')k.J=f.3R();k.8=k.8||f.1v(\'3S\')||f.1v(\'8\')||\'3T\';s k};$.3.4.U=6(b,c){5(!10.23&&!10.1w){5(c.C){2 a=[];y(2 f D c.C)a.E(f+\'=\'+c.C[f]);5(!c.t)c.t={};c.t.C=a.1x(\'&\')}s 1t(b,c,\'V\')}2 d=b.z?(\' z="\'+b.z+\'"\'):\'\';2 e=c.M?(\' 1y="\'+c.M+\'"\'):\'\';2 g=$(\'<R\'+d+e+\'>\');5(10.1w){$(b).1e(g).1f(g);5(!b.z)b.z=\'25\'+l++;1w.3U(c.8,b.z,c.u,c.A,c.17,c.18,c.C,c.t,c.L)}1z{$(b).1e(g).1A();2 h=1Z 23(c.8,\'25\'+l++,c.u,c.A,c.17,c.F);5(c.18)h.3V(c.18);y(2 p D c.t)5(p!=\'F\')h.3W(p,c.t[p]);y(2 f D c.C)h.3X(f,c.C[f]);h.3Y(g[0])}5(c.J)$(\'<R>\').1f(g).Z(c.J);s g};$.3.4.1N=$.3.4.1q=6(a,b){2 c=b.8;2 d=/\\.1q\\b/i.3Z(c)?$.3.4.v.1M:$.3.4.v.1K;b.8=d;b.8=b.8+\'?26=\'+c;b.C=$.1u({},{26:c},b.C);s $.3.4.U(a,b)};$.3.4.1d=6(a,b){5(!10.1B||!10.1B.1C){5($.3.4.1d.27)s;$.3.4.1d.27=1;40(\'41 42 43 44 1C.45 46.\');s}2 c={u:b.u,A:b.A,47:b.F,1j:b.B.1j,1k:b.B.1k,1l:b.B.1l,19:b.B.19};2 d={1m:b.B.1m,1n:b.B.1n};2 e=a.z?(\' z="\'+a.z+\'"\'):\'\';2 f=b.z||\'48\'+l++;2 g=b.M?(\' 1y="\'+b.M+\'"\'):\'\';2 h=$(\'<R\'+e+g+\'>\');$(a).1e(h).1A();1B.1C.49({4a:b.8,1o:b.B.1o,1p:b.B.1p,z:f,4b:h[0],4c:c,4d:d});5(b.J)$(\'<R>\').1f(h).Z(b.J);s h};6 1t(b,c,d){2 e=$(b);2 o=$.3.4.v.H[d];5(d==\'Y\'){2 o=$(\'<Y\'+\' u="\'+c.u+\'" A="\'+c.A+\'" >\');o.1v(\'8\',c.8);o.1H(\'1I\',o.F)}1z 5($.1s.28){2 a=[\'<4e u="\'+c.u+\'" A="\'+c.A+\'" \'];y(2 f D c.L)a.E(f+\'="\'+c.L[f]+\'" \');y(2 f D o.N||{})a.E(f+\'="\'+o.N[f]+\'" \');a.E(\'></4f\'+\'4g\'+\'>\');2 p=[\'<29 G="\'+(o.1W||\'8\')+\'" 2a="\'+c.8+\'">\'];y(2 f D c.t)p.E(\'<29 G="\'+f+\'" 2a="\'+c.t[f]+\'">\');2 o=2b.2c(a.1x(\'\'));y(2 i=0;i<p.12;i++)o.4h(2b.2c(p[i]))}1z{2 a=[\'<4i u="\'+c.u+\'" A="\'+c.A+\'" 4j="4k:4l"\'];5(c.8)a.E(\' 8="\'+c.8+\'" \');y(2 f D c.L)a.E(f+\'="\'+c.L[f]+\'" \');y(2 f D o.Q||{})a.E(f+\'="\'+o.Q[f]+\'" \');y(2 f D c.t)a.E(f+\'="\'+c.t[f]+\'" \');a.E(\'></4m\'+\'4n\'+\'>\')}2 g=b.z?(\' z="\'+b.z+\'"\'):\'\';2 h=c.M?(\' 1y="\'+c.M+\'"\'):\'\';2 j=$(\'<R\'+g+h+\'>\');e.1e(j).1A();($.1s.28||d==\'Y\')?j.4o(o):j.Z(a.1x(\'\'));5(c.J)$(\'<R>\').1f(j).Z(c.J);s j}})(4p);',62,274,'||var|fn|media|if|function||src||||||||||||||||||||return|params|width|defaults|||for|id|height|silverlight|flashvars|in|push|bgColor|name|players|types|caption|type|attrs|cls|oAttrs|http|com|eAttrs|div|this|null|swf|flash|application|www|iframe|html|window|typeof|length|isDigit|autoplayAttr|autoplay|true|flashVersion|expressInstaller|version|classid|clsid|pluginspage|xaml|after|appendTo|each|_player|autostart|inplaceInstallPrompt|isWindowless|framerate|onError|onLoad|initParams|userContext|mp3|quicktime|browser|generate|extend|attr|swfobject|join|class|else|remove|Sys|Silverlight|getSettings|getTypesRegExp|toLowerCase|false|css|backgroundColor|400|flvPlayer|mediaplayer|mp3Player|flv|11cf|oleobject|codebase|shockwave|cab|apple|real|winmedia|oUrl|isFirefoxWMPPluginInstalled|getGenerator|new|metadata|parseInt|match|SWFObject||movie_player_|file|warning|msie|param|value|document|createElement|exec|shift|continue|break|mapFormat|ffffff|wmode|transparent|d27cdb6e|ae6d|96b8|444553540000|fpdownload|macromedia|pub|cabs|swflash|adobe|go|getflashplayer|aif|aiff|aac|au|bmp|gsm|mov|mid|midi|mpg|mpeg|mp4|m4a|psd|qt|qtif|qif|qti|snd|tif|tiff|wav|3g2|3gp|02BF25D5|8C17|4B23|BC80|D3488ABDDC6B|qtactivex|qtplugin|download|realplayer|ra|ram|rm|rpm|rv|smi|smil|CFCDAA03|8BE4|B84B|0020AFBBCCFA|audio|pn|realaudio|plugin|player|asf|avi|wma|wmv|url|6BF52A52|394A|11d3|B153|00C04F79FAA6|mozilla|ms|wmp|mplayer2|microsoft|Windows|MediaPlayer|pdf|navigator|plugins|filename|np|mswmp|dll|split|RegExp|replace|0123456789|indexOf|className|meta|data|undefined|text|href|unknown|embedSWF|useExpressInstall|addParam|addVariable|write|test|alert|You|must|include|the|js|script|background|AG|createObjectEx|source|parentElement|properties|events|object|ob|ject|appendChild|embed|style|display|block|em|bed|append|jQuery'.split('|'),0,{}));
/*
 * jQuery Media Plugin for converting elements into rich media content.
 *
 * Examples and documentation at: http://malsup.com/jquery/media/
 * Copyright (c) 2007-2008 M. Alsup
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 * @author: M. Alsup
 * @version: 0.84 (12/01/2008)
 * @requires jQuery v1.1.2 or later
 * $Id: jquery.media.js 2460 2007-07-23 02:53:15Z malsup $
 *
 * Supported Media Players:
 *    - Flash
 *    - Quicktime
 *    - Real Player
 *    - Silverlight
 *    - Windows Media Player
 *    - iframe
 *
 * Supported Media Formats:
 *   Any types supported by the above players, such as:
 *     Video: asf, avi, flv, mov, mpg, mpeg, mp4, qt, smil, swf, wmv, 3g2, 3gp
 *     Audio: aif, aac, au, gsm, mid, midi, mov, mp3, m4a, snd, rm, wav, wma
 *     Other: bmp, html, pdf, psd, qif, qtif, qti, tif, tiff, xaml
 *
 * Thanks to Mark Hicken and Brent Pedersen for helping me debug this on the Mac!
 * Thanks to Dan Rossi for numerous bug reports and code bits!
 */
;
(function($){

    /**
     * Chainable method for converting elements into rich media.
     *
     * @param options
     * @param callback fn invoked for each matched element before conversion
     * @param callback fn invoked for each matched element after conversion
     */
    $.fn.media = function(options, f1, f2){
        return this.each(function(){
            if (typeof options == 'function') {
                f2 = f1;
                f1 = options;
                options = {};
            }
            var o = getSettings(this, options);
            // pre-conversion callback, passes original element and fully populated options
            if (typeof f1 == 'function') 
                f1(this, o);
            
            var r = getTypesRegExp();
            var m = r.exec(o.src) || [''];
            o.type ? m[0] = o.type : m.shift();
            for (var i = 0; i < m.length; i++) {
                fn = m[i].toLowerCase();
                if (isDigit(fn[0])) 
                    fn = 'fn' + fn; // fns can't begin with numbers
                if (!$.fn.media[fn]) 
                    continue; // unrecognized media type
                // normalize autoplay settings
                var player = $.fn.media[fn + '_player'];
                if (!o.params) 
                    o.params = {};
                if (player) {
                    var num = player.autoplayAttr == 'autostart';
                    o.params[player.autoplayAttr || 'autoplay'] = num ? (o.autoplay ? 1 : 0) : o.autoplay ? true : false;
                }
                var $div = $.fn.media[fn](this, o);
                
                $div.css('backgroundColor', o.bgColor).width(o.width);
                // post-conversion callback, passes original element, new div element and fully populated options
                if (typeof f2 == 'function') 
                    f2(this, $div[0], o, player.name);
                break;
            }
        });
    };
    
    /**
     * Non-chainable method for adding or changing file format / player mapping
     * @name mapFormat
     * @param String format File format extension (ie: mov, wav, mp3)
     * @param String player Player name to use for the format (one of: flash, quicktime, realplayer, winmedia, silverlight or iframe
     */
    $.fn.media.mapFormat = function(format, player){
        if (!format || !player || !$.fn.media.defaults.players[player]) 
            return; // invalid
        format = format.toLowerCase();
        if (isDigit(format[0])) 
            format = 'fn' + format;
        $.fn.media[format] = $.fn.media[player];
        $.fn.media[format + '_player'] = $.fn.media.defaults.players[player];
    };
    
    // global defautls; override as needed
    $.fn.media.defaults = {
        width: 400,
        height: 400,
        autoplay: 0, // normalized cross-player setting
        bgColor: '#ffffff', // background color
        params: {
            wmode: 'transparent'
        }, // added to object element as param elements; added to embed element as attrs
        attrs: {}, // added to object and embed elements as attrs
        flvKeyName: 'file', // key used for object src param (thanks to Andrea Ercolino)
        flashvars: {}, // added to flash content as flashvars param/attr
        flashVersion: '7', // required flash version
        expressInstaller: null, // src for express installer
        // default flash video and mp3 player (@see: http://jeroenwijering.com/?item=Flash_Media_Player)
        flvPlayer: 'mediaplayer.swf',
        mp3Player: 'mediaplayer.swf',
        
        // @see http://msdn2.microsoft.com/en-us/library/bb412401.aspx
        silverlight: {
            inplaceInstallPrompt: 'true', // display in-place install prompt?
            isWindowless: 'true', // windowless mode (false for wrapping markup)
            framerate: '24', // maximum framerate
            version: '0.9', // Silverlight version
            onError: null, // onError callback
            onLoad: null, // onLoad callback
            initParams: null, // object init params
            userContext: null // callback arg passed to the load callback
        }
    };
    
    // Media Players; think twice before overriding
    $.fn.media.defaults.players = {
        flash: {
            name: 'flash',
            types: 'flv,mp3,swf',
            oAttrs: {
                classid: 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
                type: 'application/x-oleobject',
                codebase: 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + $.fn.media.defaults.flashVersion
            },
            eAttrs: {
                type: 'application/x-shockwave-flash',
                pluginspage: 'http://www.adobe.com/go/getflashplayer'
            }
        },
        quicktime: {
            name: 'quicktime',
            types: 'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',
            oAttrs: {
                classid: 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
                codebase: 'http://www.apple.com/qtactivex/qtplugin.cab'
            },
            eAttrs: {
                pluginspage: 'http://www.apple.com/quicktime/download/'
            }
        },
        realplayer: {
            name: 'real',
            types: 'ra,ram,rm,rpm,rv,smi,smil',
            autoplayAttr: 'autostart',
            oAttrs: {
                classid: 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'
            },
            eAttrs: {
                type: 'audio/x-pn-realaudio-plugin',
                pluginspage: 'http://www.real.com/player/'
            }
        },
        winmedia: {
            name: 'winmedia',
            types: 'asf,avi,wma,wmv',
            autoplayAttr: 'autostart',
            oUrl: 'url',
            oAttrs: {
                classid: 'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6',
                type: 'application/x-oleobject'
            },
            eAttrs: {
                type: $.browser.mozilla && isFirefoxWMPPluginInstalled() ? 'application/x-ms-wmp' : 'application/x-mplayer2',
                pluginspage: 'http://www.microsoft.com/Windows/MediaPlayer/'
            }
        },
        // special cases
        iframe: {
            name: 'iframe',
            types: 'html,pdf'
        },
        silverlight: {
            name: 'silverlight',
            types: 'xaml'
        }
    };
    
    //
    //  everything below here is private
    //
    
    
    // detection script for FF WMP plugin (http://www.therossman.org/experiments/wmp_play.html)
    // (hat tip to Mark Ross for this script)
    function isFirefoxWMPPluginInstalled(){
        var plugs = navigator.plugins;
        for (i = 0; i < plugs.length; i++) {
            var plugin = plugs[i];
            if (plugin['filename'] == 'np-mswmp.dll') 
                return true;
        }
        return false;
    }
    
    var counter = 1;
    
    for (var player in $.fn.media.defaults.players) {
        var types = $.fn.media.defaults.players[player].types;
        $.each(types.split(','), function(i, o){
            if (isDigit(o[0])) 
                o = 'fn' + o;
            $.fn.media[o] = $.fn.media[player] = getGenerator(player);
            $.fn.media[o + '_player'] = $.fn.media.defaults.players[player];
        });
    };
    
    function getTypesRegExp(){
        var types = '';
        for (var player in $.fn.media.defaults.players) {
            if (types.length) 
                types += ',';
            types += $.fn.media.defaults.players[player].types;
        };
        return new RegExp('\\.(' + types.replace(/,/g, '|') + ')$\\b');
    };
    
    function getGenerator(player){
        return function(el, options){
            return generate(el, options, player);
        };
    };
    
    function isDigit(c){
        return '0123456789'.indexOf(c) > -1;
    };
    
    // flatten all possible options: global defaults, meta, option obj
    function getSettings(el, options){
        options = options ||
        {};
        var $el = $(el);
        var cls = el.className || '';
        // support metadata plugin (v1.0 and v2.0)
        var meta = $.metadata ? $el.metadata() : $.meta ? $el.data() : {};
        meta = meta ||
        {};
        var w = meta.width || parseInt(((cls.match(/w:(\d+)/) || [])[1] || 0));
        var h = meta.height || parseInt(((cls.match(/h:(\d+)/) || [])[1] || 0));
        
        if (w) 
            meta.width = w;
        if (h) 
            meta.height = h;
        if (cls) 
            meta.cls = cls;
        
        var a = $.fn.media.defaults;
        var b = options;
        var c = meta;
        
        var p = {
            params: {
                bgColor: options.bgColor || $.fn.media.defaults.bgColor
            }
        };
        var opts = $.extend({}, a, b, c);
        $.each(['attrs', 'params', 'flashvars', 'silverlight'], function(i, o){
            opts[o] = $.extend({}, p[o] ||
            {}, a[o] ||
            {}, b[o] ||
            {}, c[o] ||
            {});
        });
        
        if (typeof opts.caption == 'undefined') 
            opts.caption = $el.text();
        
        // make sure we have a source!
        opts.src = opts.src || $el.attr('href') || $el.attr('src') || 'unknown';
        return opts;
    };
    
    //
    //  Flash Player
    //
    
    // generate flash using SWFObject library if possible
    $.fn.media.swf = function(el, opts){
        if (!window.SWFObject && !window.swfobject) {
            // roll our own
            if (opts.flashvars) {
                var a = [];
                for (var f in opts.flashvars) 
                    a.push(f + '=' + opts.flashvars[f]);
                if (!opts.params) 
                    opts.params = {};
                opts.params.flashvars = a.join('&');
            }
            return generate(el, opts, 'flash');
        }
        
        var id = el.id ? (' id="' + el.id + '"') : '';
        var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
        var $div = $('<div' + id + cls + '>');
        
        // swfobject v2+
        if (window.swfobject) {
            $(el).after($div).appendTo($div);
            if (!el.id) 
                el.id = 'movie_player_' + counter++;
            
            // replace el with swfobject content
            swfobject.embedSWF(opts.src, el.id, opts.width, opts.height, opts.flashVersion, opts.expressInstaller, opts.flashvars, opts.params, opts.attrs);
        }
        // swfobject < v2
        else {
            $(el).after($div).remove();
            var so = new SWFObject(opts.src, 'movie_player_' + counter++, opts.width, opts.height, opts.flashVersion, opts.bgColor);
            if (opts.expressInstaller) 
                so.useExpressInstall(opts.expressInstaller);
            
            for (var p in opts.params) 
                if (p != 'bgColor') 
                    so.addParam(p, opts.params[p]);
            for (var f in opts.flashvars) 
                so.addVariable(f, opts.flashvars[f]);
            so.write($div[0]);
        }
        
        if (opts.caption) 
            $('<div>').appendTo($div).html(opts.caption);
        return $div;
    };
    
    // map flv and mp3 files to the swf player by default
    $.fn.media.flv = $.fn.media.mp3 = function(el, opts){
        var src = opts.src;
        var player = /\.mp3\b/i.test(src) ? $.fn.media.defaults.mp3Player : $.fn.media.defaults.flvPlayer;
        var key = opts.flvKeyName;
        src = encodeURIComponent(src);
        opts.src = player;
        opts.src = opts.src + '?' + key + '=' + (src);
        var srcObj = {};
        srcObj[key] = src;
        opts.flashvars = $.extend({}, srcObj, opts.flashvars);
        return $.fn.media.swf(el, opts);
    };
    
    //
    //  Silverlight
    //
    $.fn.media.xaml = function(el, opts){
        if (!window.Sys || !window.Sys.Silverlight) {
            if ($.fn.media.xaml.warning) 
                return;
            $.fn.media.xaml.warning = 1;
            alert('You must include the Silverlight.js script.');
            return;
        }
        
        var props = {
            width: opts.width,
            height: opts.height,
            background: opts.bgColor,
            inplaceInstallPrompt: opts.silverlight.inplaceInstallPrompt,
            isWindowless: opts.silverlight.isWindowless,
            framerate: opts.silverlight.framerate,
            version: opts.silverlight.version
        };
        var events = {
            onError: opts.silverlight.onError,
            onLoad: opts.silverlight.onLoad
        };
        
        var id1 = el.id ? (' id="' + el.id + '"') : '';
        var id2 = opts.id || 'AG' + counter++;
        // convert element to div
        var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
        var $div = $('<div' + id1 + cls + '>');
        $(el).after($div).remove();
        
        Sys.Silverlight.createObjectEx({
            source: opts.src,
            initParams: opts.silverlight.initParams,
            userContext: opts.silverlight.userContext,
            id: id2,
            parentElement: $div[0],
            properties: props,
            events: events
        });
        
        if (opts.caption) 
            $('<div>').appendTo($div).html(opts.caption);
        return $div;
    };
    
    //
    // generate object/embed markup
    //
    function generate(el, opts, player){
        var $el = $(el);
        var o = $.fn.media.defaults.players[player];
        
        if (player == 'iframe') {
            var o = $('<iframe' + ' width="' + opts.width + '" height="' + opts.height + '" >');
            o.attr('src', opts.src);
            o.css('backgroundColor', o.bgColor);
        }
        else 
            if ($.browser.msie) {
                var a = ['<object width="' + opts.width + '" height="' + opts.height + '" '];
                for (var key in opts.attrs) 
                    a.push(key + '="' + opts.attrs[key] + '" ');
                for (var key in o.oAttrs ||
                {}) {
                    var v = o.oAttrs[key];
                    if (key == 'codebase' && window.location.protocol == 'https') 
                        v = v.replace('http', 'https');
                    a.push(key + '="' + v + '" ');
                }
                a.push('></ob' + 'ject' + '>');
                var p = ['<param name="' + (o.oUrl || 'src') + '" value="' + opts.src + '">'];
                for (var key in opts.params) 
                    p.push('<param name="' + key + '" value="' + opts.params[key] + '">');
                var o = document.createElement(a.join(''));
                for (var i = 0; i < p.length; i++) 
                    o.appendChild(document.createElement(p[i]));
            }
            else {
                var a = ['<embed width="' + opts.width + '" height="' + opts.height + '" style="display:block"'];
                if (opts.src) 
                    a.push(' src="' + opts.src + '" ');
                for (var key in opts.attrs) 
                    a.push(key + '="' + opts.attrs[key] + '" ');
                for (var key in o.eAttrs ||
                {}) 
                    a.push(key + '="' + o.eAttrs[key] + '" ');
                for (var key in opts.params) 
                    if (key != 'wmode') // FF3/Quicktime borks on wmode
                        a.push(key + '="' + opts.params[key] + '" ');
                a.push('></em' + 'bed' + '>');
            }
        // convert element to div
        var id = el.id ? (' id="' + el.id + '"') : '';
        var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
        var $div = $('<div' + id + cls + '>');
        $el.after($div).remove();
        ($.browser.msie || player == 'iframe') ? $div.append(o) : $div.html(a.join(''));
        if (opts.caption) 
            $('<div>').appendTo($div).html(opts.caption);
        return $div;
    };
    
    
    })(jQuery);

/*End JQuery.Media.js*/

