﻿

 var   $  =  window["Spif"] = {
    d:"undefined",
    e:"*",
    f:" ",
    
    g:"none",

    h:"threadStart",
    j:"threadEnd",
    k:"beforeChangeClassName",
    l:"afterChangeClassName",
    m:"beforeHtmlChanged",
    n:"afterHtmlChanged",
    o:"beforeAction",
    r:"afterElementActivation",
    t:"linkExecuteRequest",
    v:  400,
    w:  "loaded",
    z:  "unloaded\\b|\\bloading\\b|\\bloaded",

    B:"load",
    C:"click",
    D:"keydown",
    F:"keypress",
    G:"mousedown",
    H:"mousemove",
    I:"mouseup",

    J:"DXImageTransform.Microsoft.Alpha",

    K:  true,
    L:  false,

    M:"function",
    N:"onBefore",
    O:"onFinish",

    P:"-delay",

    Q:"int",

    R:(typeof(window.opera) !=  "undefined"),
    S:(navigator.userAgent.indexOf("MSIE") != -1) && !window.opera,
    T:(navigator.userAgent.indexOf("MSIE 7") != -1) || (navigator.userAgent.indexOf("MSIE 8") != -1) && !window.opera  && (typeof(XMLHttpRequest) !=  "undefined"),
    U:((navigator.userAgent.indexOf("Gecko") != -1) && (navigator.appVersion.indexOf("AppleWebKit") == -1)),
    V:(navigator.appVersion.indexOf("AppleWebKit") != -1),
    
    W:  document.documentElement,

    X:  function(Y)
   {
      if  ($.Z)
        for  (var   _$   in   $)
          if  ($[_$] ==  Y)
 
 
            $.Z.$$(Y,  "Spif."  +  _$);
 
      if  (Y.a$)
        Y.a$();
   }
};

 $["isIE"] =  $.S;
 $["isIE7"] =  $.T;
 $["isOpera"] =  $.R;
 $["isGecko"] =  $.U;
 $["isSafari"] =  $.V;
 $["DEFAULTMORPHDURATION"] =  $.v;
 $["SUPPRESSEVENTS"] =  $.K;
 $["FIREEVENTS"] =  $.L;
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 $.n$  = {
    o$:  function(p$,  delay,  Y,  q$)
   {
      if  (delay  >=  0)
        return   setTimeout(this.r$(p$,  Y,  q$),  delay);
      else 
     {
        p$.apply(Y  ||  window,  q$  || []);
        return   null;
     }
   },
    s$:  function(p$,  t$,  Y,  q$)
   {
      return   setInterval(this.r$(p$,  Y,  q$),  t$);
   },

    r$:  function(p$,  Y,  q$)
   {
      return   function()
     {
        $.u$.v$($.h,  null,  null);
        p$.apply(Y  ||  window,  q$  || []);
        $.u$.v$($.j,  null,  null);
     };
   },

    w$:  function(x$,  y$,  z$,  A$,  B$,  C$,  D$)
   {
      var   E$  = {};
      E$.F$  =  $.G$.H$(x$,  y$);
      if  (E$.F$)
     {
        E$.I$  =  $.J$.K$(E$.F$,  y$,  A$,  C$);
        E$.object  =  $.G$.H$(E$.F$,  z$);
        if  (E$.object)
          E$.L$  =  $.J$.K$(E$.object,  z$,  B$,  D$);
     }
      return   E$;
   },
    M$:  function(s,  N$)
   {
      return   s?Function("a",  "b",  "c",  "d",  "e",  "return "  +  s  +  "(a, b, c, d, e);"):N$;
   },
    O$:  function(x$,  P$,  Q$,  R$,  S$)
   {
      return   this.T$(x$,  P$,  Q$,  R$,  S$).U$[0];
   },
    V$:  function(x$,  P$,  Q$,  R$,  S$)
   {
      return   this.T$(x$,  P$,  Q$,  R$,  S$).U$;
   },
    T$:  function(x$,  P$,  Q$,  R$,  S$)
   {
      var   W$  = {
        U$:[],
        x$:null 
     };
      var   X$;
      do 
     {
        if  (!(X$  =  $.J$.match(x$,  P$  +  "-[\\w-]+")))
          x$  =  x$.parentNode;
     }
      while  (!X$  && !R$  &&  x$  &&  x$.nodeType  ==  1);

      if  (X$)
        for  (var   i=0;  i<X$.length;  i++)
       {
          var   s  =  X$[i].substring(P$.length+1);
          if  (!S$  || !S$[s])
         {
            W$.U$.push(s);
            W$.x$  =  x$;
         }
       }

      if  ((Q$  !=  null) && (W$.U$.length  ==  0))
        W$.U$[0] =  Q$;
      return   W$;
   },
    Y$:  function(x$,  Z$,  $a,  R$)
   {
      var   X$;
      do 
     {
        X$  =  $.J$.match(x$,  Z$  +  "-?\\d+");
        x$  =  x$.parentNode;
     }
      while  (!R$  &&  x$  &&  x$.nodeType  ==  1  && !X$);
      return  (X$?parseInt(X$[0].substring(Z$.length)):$a);
   },
    aa:  function(a)
   {
      var   ba  = {};
      for  (var   i=0;  i<a.length;  i++)
        ba[a[i]] =  1;
      return   ba;
   },
    ca:  function(x$,  _$,  da)
   {
      var   ea  =  x$.fa;
      if  (!ea)
        ea  =  x$.fa  = {};

      ea[_$] =  da;
   },
    ga:  function(x$,  _$)
   {
      var   ea  =  x$.fa;
      if  (!ea)
        return   null;
      else 
        return   ea[_$];
   }
};

 $.n$.platform  = ($.T?"ie7":($.S?"ie ie6":($.U?"gecko":($.R?"opera":($.V?"safari":"unknown")))));



 if  (!Array.prototype.push)
{
    Array.prototype.push  =  function()
   {
      for  (var   i=0;  i<arguments.length;  i++)
        this[this.length] =  arguments[i];
   };
}

 if  (!Function.prototype.apply)
{
    Function.prototype.apply  =  function(Y,  q$)
   {
      Y.ha  =  this;
      var   ia  =  Y.ha(q$[0],  q$[1],  q$[2],  q$[3],  q$[4]);
      Y.ha  =  null;
      return   ia;
   }
}

 $.X($.n$);

 $["Utils"] =  $.n$;
 $.n$["setTimeoutHandler"] =  $.n$.o$;
 $.n$["setIntervalHandler"] =  $.n$.s$;
 $.G$  = {
    ja:  1,
    ka:{},

    la:  function(x$)
   {
      if  (!x$.id)
     {
        var   id  =  "qid_"  +  this.ja++;
        x$.id  =  id;
        this.ka[id] =  true;
     }

      return   x$.id;
   },

    ma:  function(x$)
   {
      var   na  = [];

      if  (x$.id  && !this.ka[x$.id])
        na[0] =  x$;

      var   oa  =  x$.getElementsByTagName($.e);
      var   pa  =  oa.length;
      for  (var   i=0;  i<pa;  i++)
     {
        var   x$  =  oa[i];
        if  (x$.id  && !this.ka[x$.id])
          na[na.length] =  x$;
     }

      return   na;
   },
    H$:  function(x$,  qa)
   {
      while  (x$  &&  x$.nodeType  ==  1)
     {
        if  ($.J$.contains(x$,  qa))
          return   x$;

        x$  =  x$.parentNode;
     }
   },
    ra:  function(x$,  qa)
   {
      var   sa  =  x$.getElementsByTagName("*");
      var   ta  =  sa.length;
      for  (var   i=0;  i<ta;  i++)
        if  ($.J$.contains(sa[i],  qa))
          return   sa[i];
   },
    getElementsByTagName:  function(x$,  tagName)
   {
      var   ua  = [];
      var   va  =  x$.getElementsByTagName("*");
      var   wa  =  va.length;
      for  (var   i=0;  i<wa;  i++)
        ua.push(va[i]);

      return   ua;
   },
    xa:  function(ya,  za)
   {
      if  ($.S)
        return   ya.contains(za);

      while  (za)
     {
        if  (ya  ==  za)
          return   true;
        else 
          za  =  za.parentNode;
     }

      return   false;
   },
    Aa:  function(Ba,  Ca)
   {
      if  (!Ba  || !Ca  ||  Ba  ==  Ca)
        return   Ba  ||  Ca;

      while  (Ba)
     {
        if  (this.xa(Ba,  Ca))
          return   Ba;
        Ba  =  Ba.parentNode;
     }
   },
    Da:  function(x$)
   {
      if  ($.S)
        return   x$.style.cssText;
      else 
        return   x$.getAttribute("style");
   },
    Ea:  function(x$,  s)
   {
      if  ($.S)
        x$.style.cssText  =  s;
      else 
        x$.setAttribute("style",  s);
   }
};

 $.X($.G$);

 $["HtmlDomUtils"] =  $.G$;
 
 
 $.G$["getAncestorWithClassName"] =  $.G$.H$;   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 $.J$  = {
    Fa:/\s+/,

    Ga:{},
    Ha:{},
    Ia:  function(qa,  Ja,  t$)
   {
      if  (this.Ha[qa])
        alert("Warning in ClassNameAbstraction.addClassNameSequence: a classNameSequence has already been defined for '"  +  qa  +  "'.");

      if  (typeof(t$) ==  $.d)
        t$  =  1.1*$.v;

      this.Ha[qa] = {
        Ja:Ja,
        Ka:  "("  +  Ja.join("-"  +  qa) +  "-"  +  qa  +  "|"  +  qa  +  ")",
        t$:t$ 
     };
   },
   
    contains:  function(x$,  qa)
   {
      return   this.La(x$.className,  qa);
   },
    La:  function(s,  qa)
   {
      
      return   s  && (s.match(this.Ma(qa)) !=  null);
   },
    match:  function(x$,  qa)
   {
      return   x$.className.match(this.Ma(qa));
   },
    add:  function(x$,  Na,  Oa)
   {
      if  (!this.contains(x$,  Na))
     {
        if  (this.Ha[Na])
       {
          this.Pa(x$,  null,  Na,  0,  Oa);
          return;
       }

        var   Qa  =  x$.className;
        var   Ra  =  Qa  +  $.f  +  Na;
        this.Sa(x$,  Qa,  Ra,  Oa);
     }
   },
    replace:  function(x$,  Ta,  Na,  Oa,  Ua)
   {
      if  (!this.contains(x$,  Ta))
        return;

      if  (this.Ha[Ta])
        Ta  =  this.Ha[Ta].Ka;

      if  (!Ua  &&  this.Ha[Na])
     {
        this.Pa(x$,  Ta,  Na,  0,  Oa);
        return;
     }

      var   Qa  =  x$.className;
      var   Ra  =  this.Va(Qa,  Ta,  Na);

      this.Sa(x$,  Qa,  Ra,  Oa);
   },
    Va:  function(s,  Wa,  Xa)
   {
      var   Ya  =  this.Ma(Wa);

      var   Za  =  s.replace(Ya,  Xa);
      if  (!Za.match(this.Ma(Xa)))
        Za  +=  $.f  +  Xa;

      return   Za;
   },
    _b:  function(x$,  $b,  ab,  Oa,  Ua)
   {
      if  (this.contains(x$,  ab))
     {
        var   bb  =  $b;
        $b  =  ab;
        ab  =  bb;
     }
      this.replace(x$,  $b,  ab,  Oa,  Ua);
   },
    remove:  function(x$,  Ta,  Oa)
   {
      if  (this.Ha[Ta])
        Ta  =  this.Ha[Ta].Ka;

      var   Ya  =  this.Ma(Ta);

      var   Qa  =  x$.className;
      var   Ra  =  Qa.replace(Ya,  "");
      this.Sa(x$,  Qa,  Ra,  Oa);
   },
    f$:  function(x$,  Ra,  Oa)
   {
      this.Sa(x$,  x$.className,  Ra,  Oa);

      var   cb  =  Ra.split(this.Fa);
      for  (var   i=0;  i<cb.length;  i++)
     {
        var   qa  =  cb[i];
        if  (this.Ha[qa])
       {
          this.Pa(x$,  qa,  qa,  0,  Oa);
          return;
       }
     }
   },

    db:  new   RegExp("(-[^_-]+)|(_-\\d+)|(_\\w+)",  "g"),
    eb: {
      "delay":$.Q,
      "duration":$.Q 
   },
    K$:  function(x$,  fb,  gb,  hb)
   {
      var   ib  =  null;
      var   Ya  =  this.Ma(fb  +  "\\b-?([\\w\\-\\_]*)\\b");

      var   matches  =  x$.className.match(Ya);
      if  (matches)
     {
        ib  = {};
        if  (hb)
          for  (var   l$   in   hb)
            ib[l$] =  hb[l$];

        ib.jb  =  matches[0].split("-")[0];

        for  (var   kb=0;  kb<matches.length;  kb++)
       {
          var   d$  =  matches[kb].match(this.db);
          if  (d$)
            for  (var   i=0;  i<d$.length;  i++)
           {
              var   _$  =  d$[i].substring(1);
              if  (i<d$.length-1  &&  d$[i+1].charAt(0) ==  "_")
             {
                var   da  =  d$[i++ +  1].substring(1);
                if  (gb)
                  switch  (gb[_$] ||  this.eb)
                 {
                    case   $.M:
                      da  =  $.n$.M$(da);
                      break;
                    case   "int":
                      da  =  parseInt(da);
                      break;
                    case   "array":
                      da  =  da.lb("_");
                      break;
                 }
                ib[_$] =  da;
             }
              else 
                ib[_$] =  true;
           }
       }
     }

      return   ib;
   },



    mb:  null,
    nb:  function()
   {
      this.mb  = {
        ob:null,
        setData:[]
     };
   },
    
    pb:  function()
   {
      var   qb  =  this.mb;

      this.mb  =  null;

      if  (qb.setData.length  >  0)
     {
        rb  =  qb.sb;
        tb  =  qb.ob.className;
        var   ub  =  this.vb(rb,  tb,  false);

        $.u$.v$($.k,  qb.ob,  ub);

        for  (var   i=0;  i<qb.setData.length;  i++)
       {
          var   wb  =  qb.setData[i];
          this.Sa(wb.x$,  wb.Qa,  wb.Ra,  $.L,  true);
       }

        $.u$.v$($.l,  qb.ob,  ub);
     }
   },

    xb:new   RegExp("\\s([-+])([\\w-]+)|\\s(\\/)([^ /]+)\\/([^\\s/]+)",  "g"),
    yb:  function(zb,  Ab)
   {
      var   Bb  =  " "  +  zb;

     (" "  +  Ab).replace(
        this.xb,
        function(Cb,  Db,  Eb,  Fb,  Gb,  Hb)
       {
          switch  (Fb  ||  Db)
         {
            case   "-":
            case   "/":
              Bb  =  Bb.replace(new   RegExp(" "  + (Gb  ||  Eb),  "g"),  " "  + (Hb  ||  ""));
              break;
            case   "+":
              Bb  +=  " "  +  Eb;
         }
       }
     );

      return   Bb.substring(1);
   },
    Ma:  function(qa)
   {
      return   this.Ga[qa] || (this.Ga[qa] =  new   RegExp("\\b"  +  qa  +  "\\b",  "g"));
   },
    Sa:  function(x$,  Qa,  Ra,  Oa,  Ib)
   {
      Ra  =  Ra.replace(/^\s+|\s+$/g,  "");
      if  (Ra  ==  Qa)
        return;

      if  (this.mb)
     {
        var   Jb  =  $.G$.Aa(this.mb.ob,  x$);
        if  (Jb  !=  this.mb.ob)
       {
          this.mb.ob  =  Jb;
          this.mb.sb  =  Jb.className;
       }

        this.mb.setData.push(
         {
            x$:x$,
            Qa:Qa,
            Ra:Ra 
         }
       );
        return;
     }

      if  (!Oa)
     {
        var   Kb  =  this.vb(Qa,  Ra,  Ib);
        $.u$.v$($.k,  x$,  Kb);
     }
      x$.className  =  Ra;
      if  (!Oa)
        $.u$.v$($.l,  x$,  Kb);

      if  ($.S)
     {
        
        
        
        
        if  (x$.getAttribute("tabIndex",  2) ==  0)
       {
          x$.tabIndex  = -1;
          setTimeout(function(){  x$.tabIndex  =  0; },  0);
       }
     }
   },
    Pa:  function(x$,  Ta,  qa,  Lb,  Oa)
   {
      var   data  =  this.Ha[qa];
      var   Ja  =  data.Ja;

      var   Na  =  Ja[Lb] +  "-"  +  qa;

      $.n$.ca(x$,  $.v,  data.t$);

      if  (Ta  &&  this.contains(x$,  Ta))
        this.replace(x$,  Ta,  Na,  Oa,  true);
      else 
        this.add(x$,  Na,  Oa,  true);

      var   Mb  =  this;
      if  (Lb  <  Ja.length-1)
        $.n$.o$(function(){  Mb.Pa(x$,  Na,  qa,  Lb+1,  Oa); },  data.t$);
      else 
        $.n$.o$(function(){  if  (Mb.contains(x$,  Na))  Mb.replace(x$,  Na,  qa,  Oa,  true); },  data.t$);
   },
    
    vb:  function(Qa,  Ra,  Ib)
   {
      var   Nb  =  Qa.split(this.Fa);
      var   Ob    =  Ra.split(this.Fa);

      var   Pb  = {};
      for  (var   i=0;  i<Nb.length;  i++)
        Pb[Nb[i]] =  1;

      var   Qb  = [];
      for  (var   i=0;  i<Ob.length;  i++)
        if  (!Pb[Ob[i]])
          Qb.push(Ob[i]);

      var   Rb  = [];
      for  (var   i=0;  i<Nb.length;  i++)
        if  (!Qb[Nb[i]])
          Rb.push(Nb[i]);

      return  {  fromValue:  Qa,  toValue:Ra,  Rb:Rb,  Qb:Qb,  Ib:Ib  };
   }
};

 $.X($.J$);

 $["ClassNameAbstraction"] =  $.J$;
 $.J$["addClassNameSequence"] =  $.J$.Ia;
 $.J$["contains"] =  $.J$.contains;
 $.J$["add"] =  $.J$.add;
 $.J$["replace"] =  $.J$.replace;
 $.J$["toggle"] =  $.J$._b;
 $.J$["remove"] =  $.J$.remove;
 $.J$["set"] =  $.J$.f$;
 
 
 

 
 
 
 
 
 
 
 
 

 
 
 

 
 
 
 
 
 
 

 $.Sb  = {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    Tb:  false,
    Ub: {},
    Vb:{},
    
    Wb:  function(Xb,  Yb,  p$,  Y)
   {
   
      var   Zb  = {p$:p$,  Y:Y};
      var   _c  =  $.G$.la(Xb) +  "-"  +  Yb;

      var   $c  =  this.Ub[_c];
      if  (this.Vb[_c] ==  Xb  &&  $c)
        $c.push(Zb);
      else 
     {
        this.Vb[_c] =  Xb;
        $c  =  this.Ub[_c] = [Zb];

        var   ac  =  function(bc)
       {
          
          
          if  (typeof($) !=  "undefined")
         {
 

            
            $.u$.v$($.h,  bc);

            bc  =  $.Sb.cc(bc);

            
            
            if  (bc.type  ==  $.C  &&  $.U  &&  bc.dc)
              return   false;

            var   ia  =  false;

            var   q$  = [bc,  Xb];
            for  (var   i=0;  i<$c.length;  i++)
              ia  =  $c[i].p$.apply($c[i].Y  ||  Xb,  q$) &&  ia;

            
            $.u$.v$($.j,  bc);

            return   ia;
         }
       };
        if  ($.Z)
       {
          var   Y  = {  ec:ac  };
          $.Z.fc(Y,  "eventHandler",  "Spif.DOMEvents."  +  Yb);
          ac  =  Y.ec;
       }

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

        if  (Xb.addEventListener)
          Xb.addEventListener(Yb,  ac,  false);
        else 
       {
          if  (Yb  ==  "DOMMouseScroll")
            Yb  =  "mousewheel";
          Xb.attachEvent("on"  +  Yb,  ac);
       }
     }
   },

    gc:  function()
   {
      this.preventDefault();
      this.stopPropagation();

      if  ($.V  &&  this.type  ==  $.C)
     {
        var   x$  =  this.subject;
        while  (x$  &&  x$.nodeName  !=  "A")
          x$  =  x$.parentNode;

        if  (x$)
       {
          x$.hc  =  x$.href;
          x$.href  =  "javascript://";
          setTimeout(function(){  x$.href  =  x$.hc; },  10);
       }
     }
   },
    ic:  function()
   {
      this.returnValue  =  false;
   },
    jc:  function()
   {
      this.cancelBubble  =  true;
   },

    cc:  function(bc)
   {
 
      if  ($.S)
     {
        bc.subject  =  bc.srcElement;
        bc.preventDefault   =  this.ic;
        bc.stopPropagation  =  this.jc;
     }
      else 
     {
        bc.subject  =  bc.target  ||  bc.currentTarget;
        if  (bc.subject  &&  bc.subject.nodeType  ==  3)
          bc.subject  =  bc.subject.parentNode;
     }

      bc.cancel  =  this.gc;

      switch  (bc.type)
     {
        case   $.C:
        case   "mousedown":
        case   "mouseup":
        case   "mousemove":
          bc.kc   = ($.S||$.V?bc.button  ==  1:bc.button  ==  0);
          bc.dc  =  bc.button  ==  2;
          break;
        case   $.D:
        case   "keyup":
        case   $.F:
          if  ($.U  &&  bc.subject  ==  document.documentElement)
            
            
            bc.subject  =  document.body;
          break;
        case   "mousewheel":
          if  ($.S)
            bc.detail  = -bc.wheelDelta/20;
          break;
     }

      return   bc;
   }
};

 $["DOMEvents"] =  $.Sb;
 $.Sb["attach"] =  $.Sb.Wb;
 $.u$  = {
    lc: {},
    mc:  function(Yb,  p$,  Y)
   {
      var   nc  =  this.lc[Yb] =  this.lc[Yb] || [];

      nc[nc.length] = {p$:p$,  Y:Y};
   },
    v$:  function(Yb,  subject,  d$)
   {
      var   nc  =  this.lc[Yb];

      if  (!nc)
        return   true;

      var   bc  =  d$  || {};
      bc.type  =  Yb;
      bc.subject  =  subject;

      var   ia  =  true;
      for  (var   i=nc.length-1;  i>=0;  i--)
     {
        var   p$  =  nc[i];
        ia  = (p$.p$.apply(p$.Y  ||  subject, [bc]) !=  false) &&  ia;
     }
    
      return   ia;
   }
};

 $["CustomEvents"] =  $.u$;
 $.u$["listen"] =  $.u$.mc;
 $.u$["fire"]   =  $.u$.v$;
 
 
 
 
 
 
 
 
 
 


 $.oc  = {
    pc:"A",

    a$:  function()
   {
      $.u$.mc($.l,  this.qc,  this);
      $.u$.mc($.n,  this.rc,  this);
   },
    qc:  function(bc)
   {
      if  (bc.Qb.length  >  0  &&  $.u$.v$($.o,  bc.subject))
        this.sc(bc.subject,  bc.Qb);
   },
    rc:  function(bc)
   {
      if  ($.u$.v$($.o,  bc.subject))
        this.sc(bc.subject, [$.B]);
   },
    sc:  function(tc,  uc)
   {
      
      for  (var   i=0;  i<uc.length;  i++)
        $.u$.v$("on"  +  uc[i],  tc);

      var   vc  =  "\\bon"  +  uc.join("\\b|\\bon") +  "\\b";
      var   wc  =  $.G$.getElementsByTagName(tc,  this.pc);
      var   xc  =  wc.length;
      for  (var   i=xc-1;  i>=0;  i--)
     {
        var   yc  =  wc[i];

        if  ($.J$.contains(yc,  vc))
          $.u$.v$($.t,  yc);
     }
   }
};

 $.X($.oc);
 
 
 
 
 
 
 
 
 
 
 
 
 

 $.zc  = {
    Ac:[],
    Bc:  null,
    Cc:{},
    Dc:{},
    Ec:  null,
    Fc:  null,
    Gc:  false,
    a$:  function()
   {
      $.Sb.Wb(document.documentElement,  $.C,    this.Hc,  this);

      
      
      
      $.Sb.Wb(document.documentElement, ($.S?$.D:$.F),  this.Hc,  this);
   },
    Ic:  function(qa,  p$,  Y)
   {
      this.Jc(qa,  p$,  Y,  true);
   },
    Kc:  function(qa,  p$,  Y)
   {
      this.Jc(qa,  p$,  Y,  false);
      this.Gc  =  true;
   },
    Jc:  function(qa,  p$,  Y,  Lc)
   {
      this.Ac[this.Ac.length] =  qa;
      this.Cc[qa] = {  p$:p$,  Y:Y  };
      this.Dc[qa] =  Lc;

      this.Ac  =  this.Ac.sort().reverse();

      this.Bc  =  new   RegExp("(\\b"  +  this.Ac.join("\\b)|(\\b") +  "\\b)|(\\b[\\w\\-]+\\b|\\s+)",  "g");
   },
    Hc:  function(bc)
   {
      this.Fc  = (bc.type  ==  $.C  ||  bc.keyCode  ==  13  ||  bc.keyCode  ==  32);

      if  (!this.Gc  && !this.Fc)
        return;

      this.Ec  =  bc;
      var   oa  = [];

      for  (var   x$  =  bc.subject;  x$  &&  x$.nodeType  ==  1;  x$  =  x$.parentNode)
        oa[oa.length] =  x$;

      for  (var   i=0;  i<oa.length;  i++)
     {
        this.Mc  =  oa[i];
        if  (this.Mc.className)
          this.Mc.className.replace(this.Bc,  this.Nc);
     }
   },
    Nc:  function()
   {
      if  (!arguments[arguments.length-3])
     {
        var   Mb  =  $.zc;
        for  (var   i=1;  i<arguments.length-3;  i++)
          if  (arguments[i])
         {
            var   qa  =  Mb.Ac[i-1];
            if  (Mb.Fc  || !Mb.Dc[qa])
           {
              if  ($.u$.v$($.o,  Mb.Mc))
             {
                var   p$  =  Mb.Cc[qa];
                p$.p$.apply(p$.Y  ||  Mb.Mc, [Mb.Mc,  arguments[i],  Mb.Ec]);
             }
              return;
           }
         }
     }
   }
};

 $.X($.zc);

 
 
 
 
 
 


 $.Oc  = {
    Pc:[],
    Qc:"",
    Rc:{},
    Sc:{},
    Tc:[],

    a$:  function()
   {
      $.Sb.Wb(document.documentElement,  $.C,      this.Uc,  this);
      $.Sb.Wb(document.documentElement,  "dblclick",      this.Uc,  this);
      $.Sb.Wb(document.documentElement,  $.F,   this.Vc,  this);
      $.u$.mc($.t,  this.Wc,  this);
   },
    Xc:  function(Yc,  Y)
   {
      this.Tc.push({p$:Yc,  Y:Y});
   },
    Zc:  function(_d,  $d,  Yc,  Y)
   {
      var   ad  =  "("  +  $d.join("|") +  ")";
      for  (var   i=0;  i<_d.length;  i++)
     {
        var   fb  =  _d[i];
        this.Pc[this.Pc.length] =  fb;
        this.Rc[fb] =  ad;
        this.Sc[fb] = {  p$:Yc,  Y:Y};
     }

      this.Qc  =  "(\\b"  +  this.Pc.join("\\b|\\b") +  "\\b)";
   },
    Uc:  function(bc)
   {
      this.Wc(bc);
   },
    Vc:  function(bc)
   {
      if  (bc.keyCode  ==  32  ||  bc.keyCode  ==  13)
        this.Wc(bc);
   },
    Wc:  function(bc)
   {
      var   _d;
      var   x$  =  bc.subject;

      
      while  (x$  &&  x$.nodeType  ==  1)
     {
        
        
        if  (bc.type  ==  $.F  &&  x$.nodeName  ==  "A")
          return;

        if  ((_d  =  $.J$.match(x$,  this.Qc)) &&  $.u$.v$($.o,  x$))
       {
          var   bd  = {};

          for  (var   i=0;  i<_d.length;  i++)
         {
            var   fb  =  _d[i];
            if  (fb  && !bd[fb])
           {
              var   cd  =  this.ed(x$,  fb);
              if  (!cd  || !cd.x$  || !$.u$.v$($.o,  cd.x$))
                continue;

              bd[fb] = {
                fd:  this.Sc[fb],
                cd:  cd,
                gd:  $.J$.K$(x$,  fb),
                hd:  $.J$.K$(cd.x$,  cd.jd)
             };
           }
         }

          for  (fb   in   bd)
         {
            var   kd  =  bd[fb];
            $.n$.o$(this.ld(bc,  x$,  fb,  kd),  1*kd.gd.delay||-1);
         }
       }

        if  (x$.nodeName  ==  "A")
       {
          for  (var   i=0;  i<this.Tc.length;  i++)
         {
            var   p$  =  this.Tc[i];
            p$.p$.apply(p$.Y  ||  x$, [x$,  bc]);
         }
          
          
          if  (bc.cancel  &&  _d  &&  _d.length  >  0  &&  x$.getAttribute("href",  2).charAt(0) ==  "#")
            bc.cancel();
       }

        x$  =  x$.parentNode;
     }
   },

    ld:  function(bc,  x$,  fb,  kd)
   {
      return   function()
     {
        kd.fd.p$.apply(kd.fd.Y  ||  x$, [x$,  fb,  kd.cd.x$,  kd.cd.jd,  bc,  kd.ib]);
     };
   },

    ed:  function(md,  fb)
   {
      var   nd  =  this.od(md,  fb);

      if  (nd)
     {
        var   pd  =  $.J$.match(nd,  this.Rc[fb]);
        return  {  x$:nd,  jd:(pd?pd[0]:null) };
     }
   },
    od:  function(md,  fb)
   {
      var   qd  =  md.href;
      if  (qd)
        var   rd  =  qd.split("#")[1];
      
      if  (rd)
        return   document.getElementById(rd);

      
      for  (;  md  !=  document.documentElement;  md  =  md.parentNode)
        if  ($.J$.match(md,  this.Rc[fb]))
          return   md;
   }
};

 $.X($.Oc);
 
 
 
 
 
 
 
 
 
 
 

 $.u$.mc(
    $.o,
    function(bc)
   {
      return  !$.G$.H$(bc.subject,  "actions-disabled");
   }
);


 
 
 

 Ak  = {};
 $.u$.mc(
    $.o,
    function(bc)
   {
      var   ia  =  true;
      var   x$  =  bc.subject;
      var   Bk  =  $.n$.Y$(x$,  "minactioninterval",  0,  true);
      if  (Bk  >  0)
     {
        var   De  =  $.G$.la(x$);
        var   Ck  = +new   Date();
        var   Dk  =  Ak[De];
        ia  = !Dk  || (Ck  >  Dk  +  Bk);
        if  (ia)
          Ak[De] =  Ck;
     }
      
      return   ia;
   }
);
 $.sd  = {
    ud:"exclusive-",
    vd:"allexclusive-",
    wd:"delayexclusive",

    xd:{},
    yd:{},
    zd:{},
    Ad:{},
    Bd:{},
    Cd:{},

    a$:  function()
   {
      $.u$.mc($.l,  this.qc,  this);
   },

    Dd:  function(_d,  Ed,  Fd,  Gd)
   {
      var   Hd  =  Ed[Ed.length  -  1];
      for  (var   i=0;  i<_d.length;  i++)
     {
        var   fb  =  _d[i];
        var   Id  =  Ed[i];

        this.zd[Hd] =  Id;
        this.Ad[Id] =  Hd;

        Hd  =  Id;

        this.xd[fb] =  Id;
        this.yd[Id] =  fb;
     }

      if  (Fd)
     {
        _d[_d.length] =  Fd;
        this.Bd[Fd] =  true;
        this.xd[Fd] =  Ed[0];
     }
      if  (Gd)
     {
        _d[_d.length] =  Gd;
        this.Cd[Gd] =  true;
        this.xd[Gd] =  Ed[0];
     }

      $.Oc.Zc(_d,  Ed,  this.Jd,  this);
   },

    qc:  function(bc)
   {
      var   Kd  = [];

      for  (var   i=0;  i<bc.Qb.length;  i++)
        this.Ld(bc.subject,  bc.Qb[i],  Kd);

      for  (var   i=Kd.length-1;  i>=0;  i--)
        this.Md(Kd[i]);
   },
    Jd:  function(md,  fb,  nd,  Nd)
   {
      var   Kd  = [];
      this.Od(Kd,  fb,  nd,  Nd);

      $.J$.nb();
      for  (var   i=Kd.length-1;  i>=0;  i--)
        this.Md(Kd[i]);
      $.J$.pb();
   },     
    Od:  function(Kd,  fb,  nd,  Nd)
   {
      var   Pd  =  this.xd[fb];

      if  (this.Bd[fb])
     {
        Pd  =  this.zd[Nd];
        fb  =  this.yd[Pd];
     }
      else   if  (this.Cd[fb])
     {
        Pd  =  this.Ad[Nd];
        fb  =  this.yd[Pd];
     }

      if  (!$.J$.contains(nd,  Pd))
     {
        Kd[Kd.length] = {
          fb:fb,
          nd:nd,
          Qd:Nd,
          Pd:Pd,
          delay:-1 
       };

        this.Ld(nd,  Pd,  Kd);
     }
   },

    Ld:  function(nd,  Pd,  Kd)
   {
      var   Rd,  Sd;
      if  ($.G$.H$(nd,  this.ud  +  Pd))
        Sd  =  nd.parentNode.childNodes;
      else   if  (Rd  =  $.G$.H$(nd,  this.vd  +  Pd))
        Sd  =  $.G$.getElementsByTagName(Rd,  $.e);
      if  (Sd)
     {
        var   Td  =  this.zd[Pd];
        var   Ud  =  this.yd[Td];

        var   Vd  =  Sd.length;
        for  (var   i=0;  i<Vd;  i++)
       {
          var   Wd  =  Sd[i];

          if  (Wd.nodeType  ==  1  &&  Wd  !=  nd  &&  $.J$.contains(Wd,  Pd))
            if  ($.u$.v$($.o,  Wd))
           {
              if  (Kd.length  >  0  &&  Kd[Kd.length-1].delay  == -1)
                Kd[Kd.length-1].delay  =  $.n$.Y$(nd.parentNode,  this.wd, -1);

              this.Od(Kd,  Ud,  Wd,  Pd);
           }
       }
     }
   },
    
    Md:  function(Xd)
   {
      $.n$.o$(
        function()
       {
          
          $.J$.replace(Xd.nd,  Xd.Qd,  Xd.Pd,  $.L);
       },
        Xd.delay 
     );
   }
};

 $.X($.sd);

 $["Behaviors"] =  $.sd;
 $.sd["addStateSequence"] =  $.sd.Dd;

 
 $.sd.Dd(["collapser",  "expander"],    ["collapsed",  "expanded"],    "expandcollapser");
 $.sd.Dd(["opener",     "closer"],      ["open",       "close"],       "opencloser");
 $.sd.Dd(["selector",   "unselector"],  ["selected",   "unselected"],  "selectionswitch");
 $.sd.Dd(["shower",     "hider"],       ["shown",      "hidden"],      "showswitch");
 $.sd.Dd(["focuser",    "blurrer"],     ["focus",      "blur"],        "focusswitch");
 $.sd.Dd(["onswitch",   "offswitch"],   ["on",         "off"],         "onoffswitch");
 $.sd.Dd(["upper",      "downer"],      ["up",         "down"],        "updowner");
 $.Oc.Zc(
   ["classchanger"],
   [],
    function(md,  x,  nd)
   {
      var   ib  =  $.J$.K$(md,  "classchanger", {  "delay":"int"  });
      $.n$.o$(
        function()
       {
          $.J$.f$(nd,  $.J$.yb(nd.className,  md.className));
       },
        ib["delay"]
     );
   }
);
 $.Zd  =
{
    _e:  "activation-inert\\b|\\bactivator\\b|\\binactivator\\b|\\bactivationswitch",
    $e:  "delayOn",
    ae:  "delayOff",
    be:  "delaySwap",
    ce:  "delaySwitch",
    de: [],
    ee: [],
    fe: {},
    ge: {},
    he: {},
    ie: {},
    je:  null,

    ke: {},
    le: {},
    me: {},
    ne: {},
    oe: {},
    pe: {},
    qe: {},

    a$:  function()
   {
      this.ke[this.$e] =  this.ke[this.ae] =  this.ke[this.be] =  $.Q;

      
      this.re("unhover",  "hover");
      this.re("mouseout",  "mouseover");
      this.re("neverhovered",  "");

      
      this.se("inactive",  "active",  "activator",  "inactivator");
      this.se("blurred",  "focused",  "focuser",  "blurrer");

      $.Sb.Wb(document.documentElement,  "mouseover",  this.te,  this);

      $.Sb.Wb(document.documentElement,  $.C,  this.Wc,  this);
      $.Sb.Wb(document.documentElement,  "keyup",  this.Wc,  this);

      $.u$.mc($.l,  this.qc,  this);
   },
    re:  function(ue,  ve)
   {
      if  (ue)
        this.de.push(ue);
      if  (ve)
        this.de.push(ve);
      this.we  =  "("  +  this.de.join("\\b|\\b") +  ")";
      this.ie[ue] =  ve;
      this.ie[ve] =  ue;
   },
    se:  function(xe,  ye,  ze,  Ae)
   {
      if  (xe)
     {
        this.ee.push(xe);
        this.he[xe] =  xe;
     }
      if  (ye)
     {
        this.ee.push(ye);
        this.fe[ye] =  ye;
     }
      this.Be  =  "("  +  this.ee.join("\\b|\\b") +  ")";
      this.ie[xe] =  ye;
      this.ie[ye] =  xe;

      if  (ze  &&  Ae)
     {
        this.ge[ze] =  ze;
        $.Oc.Zc([ze,  Ae], [ye,  xe],  this.Ce,  this);
     }
   },

    Ce:  function(md,  fb,  nd,  Nd)
   {
      var   De  =  $.G$.la(nd);
      var   ib  =  $.J$.K$(nd,  this.Be,  this.ke);
      var   data  = {  x$:nd,  ib:ib  };
      if  (this.ge[fb])
        this.Ee(De,  data,  this.pe,  this.oe,  this.qe);
      else 
     {
        ib.jb  =  this.ie[ib.jb];
        this.Fe(De,  data,  this.pe,  this.oe,  this.qe);
     }
   },

    te:  function(bc)
   {
      this.Ge(bc,  this.we,  this.me,  this.le,  this.ne);
   },

    Wc:  function(bc)
   {
      var   x$  =  bc.subject;
      if  (x$  !=  this.je)
     {
        this.je  =  x$;

        if  ($.G$.H$(x$,  this._e))
       {
          if  (bc.cancel)
            bc.cancel();
       }
        else 
          this.Ge(bc,  this.Be,  this.pe,  this.oe,  this.qe);
     }
   },

    qc:  function(bc)
   {
      if  (!$.J$.La(bc.fromValue,  this.Be) &&  $.J$.La(bc.toValue,  this.Be))
        
        this.Wc(bc);
      else   if  ($.J$.La(bc.fromValue,  this.Be) && !$.J$.La(bc.toValue,  this.Be))
     {
        var   De  =  $.G$.la(bc.subject);
        delete   He[De];
     }
   },

    Ge:  function(bc,  Ie,  Je,  He,  Ke)
   {
      var   Le  = {};

 
 
      var   x$  =  bc.subject;
      while  (x$  &&  x$.nodeType  ==  1)
     {
        var   ib  =  $.J$.K$(x$,  Ie,  this.ke);
        if  (ib)
          Le[$.G$.la(x$)] = {  x$:x$,  ib:ib  };

        x$  =  x$.parentNode;
     }   

      this.Me  =  false;

 
 
      for  (var   De   in   He)
        if  (!Le[De])
          this.Fe(De,  He[De],  Je,  He,  Ke);

      for  (var   De   in   Le)
        if  (!He[De])
          this.Ee(De,  Le[De],  Je,  He,  Ke);
   },
    
    Ee:  function(De,  data,  Je,  He,  Ke)
   {
 
      if  (!He[De] &&  $.u$.v$($.o,  data.x$))
     {
        if  (Ke[De])
          this.Ne(De,  Ke[De],  He,  Ke);
        else 
       {
          var   delay  = (this.Me?data.ib[this.be]:0) ||  data.ib[this.$e];
          if  (delay)
         {
            Je[De] =  data;
            data.Oe  =  $.n$.o$(this.Pe,  delay,  this, [De,  data,  Je]);
         }
          else 
            this.Qe(De,  data);

          He[De] =  data;
       }
     }
   },
    Fe:  function(De,  data,  Je,  He,  Ke)
   {
 
      if  (He[De] &&  $.u$.v$($.o,  data.x$))
     {
        if  (Je[De])
          this.Re(De,  Je[De],  Je,  He);
        else 
       {
          this.Me  =  true  &&  data.ib[this.be];
          if  (data.ib[this.ae])
         {
            Ke[De] =  data;
            data.Oe  =  $.n$.o$(this.Se,  data.ib[this.ae],  this, [De,  data,  Ke]);
         }
          else 
            this.Te(De,  data);

          delete   He[De];
       }
     }
   },
    Re:  function(De,  data,  Je,  He)
   {
      clearTimeout(data.Oe);
      delete   Je[De];
      delete   He[De];
   },
    Pe:  function(De,  data,  Je)
   {
      delete   Je[De];
      this.Qe(De,  data);
   },
    Qe:  function(De,  data,  Je,  He,  Ke)
   {
      $.J$.replace(data.x$,  data.ib.jb,  this.ie[data.ib.jb]);
   },
    Se:  function(De,  data,  Ke)
   {
      delete   Ke[De];
      this.Te(De,  data);
   },
    Ne:  function(De,  data,  He,  Ke)
   {
      clearTimeout(data.Oe);
      He[De] =  data;
      delete   Ke[De];
   },
    Te:  function(De,  data)
   {
      $.J$.replace(data.x$,  this.ie[data.ib.jb],  data.ib.jb);
   }
};

 $.X($.Zd);

 
 
 
 

 

 $.Ue  = {
    Ve:1,
    We:2,
    Xe:3,
    Ye:4,
    Ze:5,
    _f:6,
    $f:7,
    af:8,
    bf:9,
    cf:null,
    a$:  function()
   {
      if  ($.S)
     {
        this.df  =  this.ef;
        this.ff  =  this.gf;
     }
      $.Ue["getRawComputedStyleProperty"] =  $.Ue.df;

      this.cf  = {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        "borderWidth":this.We,
        "borderTopWidth":this.We,
        "borderRightWidth":this.We,
        "borderBottomWidth":this.We,
        "borderLeftWidth":this.We,
        "width":this.Xe,
        "height":this.Xe,
        "scrollTop":this.Ye,
        "scrollLeft":this.Ye,
        "color":this.Ze,
        "backgroundColor":this.Ze,
        "borderColor":this.Ze,
        "borderTopColor":this.Ze,
        "borderRightColor":this.Ze,
        "borderBottomColor":this.Ze,
        "borderLeftColor":this.Ze,
        "opacity":this._f,
        "zoom":this.$f,
        "display":this.af,
        "overflow":this.af,
        "position":this.af,
        "visibility":this.af,
        "zIndex":this.bf 
     };

      this.hf  = {};
      this.hf[this.Ve] =  "px";
      this.hf[this.We] =  "px";
      this.hf[this.Xe] =  "px";
      this.hf[this.Ye] =  "px";
      this.hf[this.Ze] =  "";
      this.hf[this._f] =  "%";
      this.hf[this.$f] =  "%";
      this.hf[this.af] =  "";
      this.hf[this.bf] =  "";
   },
    jf:{
      "width":["offsetWidth"],
      "height":["offsetHeight"]
   },
    kf:{
      "width":["height",  "offsetHeight"],
      "height":["width",  "offsetWidth"]
   },

    lf:  function(x$,  _$)
   {
      var   mf  =  this.df(x$,  _$);
      return   this.ff(x$,  _$,  mf).value;
   },

    df:  function(x$,  _$,  nf)
   {
      var   of  =  this.pf(_$);
      var   qf  =  document.defaultView.getComputedStyle(x$,  "");
      switch  (this.rf(_$))
     {
        case   this.Xe:
          if  ($.R)
         {
            var   sf  =  this.jf[_$];
            var   da  =  x$[sf[0]];
            for  (var   i=1;  i<sf.length;  i++)
              da  -=  parseInt(x$.currentStyle[sf[i]]);
            return   Math.max(0,  da);
         }
        case   this.We:
          if  (qf.getPropertyValue(of.replace(/width/,  "style")) ==  $.g)
            return   0;
        case   this.bf:
        case   this.Ve:
        case   this.$f:
        case   this._f:
          return   qf.getPropertyValue(of);
        case   this.Ye:
          return   x$[_$];
          break;
        case   this.Ze:
          if  (
            of.indexOf("border") != -1 
           &&  qf.getPropertyValue(of.replace(/color/,  "style")) ==  $.g 
         )
            return   null;
          
        case   this.af:
          return   qf.getPropertyValue(of);
        default:
          return   null;
     }
   },
    ff:  function(x$,  _$,  mf)
   {
      var   tf  =  this.rf(_$);

      var   Y  = {  value:  mf  };

      switch  (tf)
     {
        case   this.bf:
        case   this.Ve:
        case   this.$f:
          var   uf  =  parseInt(mf);
          if  (isNaN(uf))
            switch  (mf)
           {
              case   "auto":  Y.value  =  0;  break;
              default:  Y.value  =  null;
           }
          else 
            Y.vf  = (""  +  mf).replace(/^[-\d]+/,  "") ||  null;
          Y.value  =  uf;
          break;
        case   this._f:
          Y.value  =  Math.round(100*mf);
          break;
        case   this.Ze:
          Y.value  =  this.wf(mf);
          break;
        case   this.Xe:
        case   this.Ye:
          Y.value  =  parseInt(mf);
     }

      return   Y;
   },


    ef:  function(x$,  _$)
   {
      
      if  (!x$.currentStyle)
        return   null;

      switch  (this.rf(_$))
     {
        case   this.Xe:
          var   da  =  x$.currentStyle[_$];
          if  (isNaN(parseInt(da)) || da.indexOf("em") != -1)
         {
            
            
            var   xf  =  x$[this.kf[_$][1]] ==  0;
            if  (xf)
              x$.runtimeStyle[this.kf[_$][0]] =  "1px";

            da  =  x$[this.jf[_$]];

            if  (xf)
              x$.runtimeStyle[this.kf[_$][0]] =  "";
         }

          return   da;
        case   this.Ye:
          return   x$[_$];
          break;
        case   this._f:
          try 
         {
            return   x$.filters.item($.J).opacity;
         }
          catch(yf)
         {
            return   100;
         }
          break;
        case   this.Ve:
        case   this.$f:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        default:
          return   x$.currentStyle[_$];
     }
   },

    gf:  function(x$,  _$,  mf)
   {
      var   tf  =  this.rf(_$);

      var   Y  = {  value:  mf  };
      var   uf  =  null;

      if  (mf  ==  "0px")
        mf  =  "0";

      switch  (tf)
     {
        case   this.Xe:

 uf  =  parseInt(mf);

          Y.vf  = (""  +  mf).replace(/^[-\d\.]+/,  "") ||  null;
          Y.value  =  Math.max(0,  uf);
          break;
        case   this.Ze:
          Y.value  =  this.wf(mf);
          break;
        case   this.We:
        case   this.bf:
        case   this.Ve:
        case   this.$f:
          uf  =  parseInt(mf);
          if  (isNaN(uf))
            switch  (mf)
           {
              case   "auto":  uf  =  0;  break;
              case   "thin":  uf  =  2;  break;
              case   "medium":  uf  =  4;  break;
              case   "thick":uf  =  6;  break;
              default:  uf  =  parseInt(mf);
           }
          else 
            Y.vf  = (""  +  mf).replace(/^[-\d\.]+/,  "") ||  null;

          Y.value  =  uf;
          break;
     }

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      return   Y;
   },

    zf:  function(x$,  _$,  da)
   {
      switch  (this.rf(_$))
     {
        case   this.Ze:
          x$.style[_$] =  "rgb("  +  da.join(",") +  ")";
          break;
        case   this.af:
        case   this.bf:
          x$.style[_$] =  da;
          break;
        case   this.Xe:
        case   this.$f:
        case   this.We:
        case   this.Ve:
          x$.style[_$] =  da  +  "px";
          break;
        case   this.Ye:
          x$[_$] =  da  +  "px";
          break;
     }
   },

    Af:  function(x$,  _$)
   {
      x$.style[_$] =  "";
   },

    rf:  function(_$)
   {
      return   this.cf[_$] ||  this.Ve;
   },

    pf:  function(_$)
   {
      return   _$.replace(/([A-Z])/g,  function(Db){  return   "-"  +  Db.toLowerCase(); });
   },
    Bf: {
      "white":"#FFFFFF",  "black":"#000000","blue":"#0000FF",
      "green":"#008000",  "red":"#FF0000",  "yellow":"#FFFF00",
      "aqua":"#00FFFF","azure":"#F0FFFF","beige":"#F5F5DC",
      "black":"#000000","blue":"#0000FF","brown":"#A52A2A",
      "cyan":"#00FFFF","darkblue":"#00008B","darkcyan":"#008B8B",
      "darkgray":"#A9A9A9","darkgreen":"#006400","darkred":"#8B0000",
      "fuchsia":"#FF00FF","gold":"#FFD700","gray":"#808080",
      "green":"#008000","indigo":"#4B0082","lightblue":"#ADD8E6",
      "lightcyan":"#E0FFFF","lightgreen":"#90EE90","lightgrey":"#D3D3D3",
      "lightyellow":"#FFFFE0","lime":"#00FF00","magenta":"#FF00FF",
      "maroon":"#800000","navy":"#000080","orange":"#FFA500",
      "pink":"#FFC0CB","purple":"#800080","red":"#FF0000",
      "silver":"#C0C0C0","steelblue":"#4682B4","turquoise":"#40E0D0",
      "violet":"#EE82EE","white":"#FFFFFF","yellow":"#FFFF00" 
    },

    wf:  function(c)
   {
      c  =  this.Bf[c] ||  c;

      if  (typeof(c) ==  "object")
        return   c;
      if  (c.indexOf("#") ==  0)
     {
        if  (c.length  ==  7)
          return  [
            parseInt(c.substring(1,  3),  16),
            parseInt(c.substring(3,  5),  16),
            parseInt(c.substring(5,  7),  16)
         ];
        else 
          return  [
            17*parseInt(c.substring(1,  2),  16),
            17*parseInt(c.substring(2,  3),  16),
            17*parseInt(c.substring(3,  4),  16)
         ];
     }
      if  (c.indexOf("rgb(") ==  0)
     {
        var   Cf  =  c.substring(4,  c.length  -  1).split(",");
        return  [
          parseInt(Cf[0]),
          parseInt(Cf[1]),
          parseInt(Cf[2])
       ];
     }

      return  [255,  255,  255];
   }
};

 $.X($.Ue);

 $["StyleUtils"] =  $.Ue;
 $.Ue["getComputedStyleProperty"] =  $.Ue.lf;
 
 
 $.Animator  =  _a  = {
    Df:  $.V,
    Ef:{},
    animate:  function(Ff,  Gf)
   {
      var   Hf  =  Ff.length;

      if  (this.Df)
     {
        for  (var   i=0;  i<Hf;  i++)
       {
          var   If  =  Ff[i];
          var   x$  =  If.element;
          var   Jf  =  If.targetState;

          for  (var   Kf   in   Jf)
            if  (Gf.removeAfterwards)
              $.Ue.Af(x$,  Kf);
            else 
              $.Ue.zf(x$,  Kf,  Jf[Kf]);
       }

        if  (Gf.onFinish)
          Gf.onFinish(Ff);

        return;
     }

 
 
 
 
 
 
 
 
 
 
 
      var   Lf  =  10;
      var   Mf  =  1  <<  Lf;

      var   Nf  =  7;
      var   Of  =  1  <<  Nf;

      var   code  = [
        "  var tPhase = Math.min(1, (t - TSTART)/DURATION);\n",
        "if (tPhase>=0){\n",
        "  var f = ",  _a.Pf[Gf.profile],  ";\n",
        "\n" 
     ];

      var   Qf  = [];
      var   Rf  = [];
      var   Sf  = [];


      for  (var   i=0;  i<Hf;  i++)
     {
        var   If  =  Ff[i];
        var   x$  =  If.element;
        var   id  =  $.G$.la(x$);
        var   Jf  =  If.targetState;

        for  (var   Kf   in   Jf)
       {
          var   Tf  =  Kf;
          if  (!$.S)
            Tf  =  Kf.replace(/([A-Z])/g,  function(Db){  return   "-"  +  Db.toLowerCase(); });

          var   Uf  =  Jf[Kf];

          
          var   Vf  = (If.currentState&&typeof(If.currentState[Kf])!=$.d)?If.currentState[Kf]:$.Ue.lf(x$,  Kf);

          if  (Kf  ==  "zoom")
         {
            
            Vf  *=  100;
            Uf  *=  10000;
         }

          
          _a[id  +  "el"] =  x$;
          switch  ($.Ue.rf(Kf))
         {
            case   $.Ue.Ye:
                _a[id  +  "elscroll"] = (x$  !=  document.body  ||  document.compatMode  ==  "BackCompat")?x$:document.documentElement;
              break;
            case   $.Ue._f:
              if  ($.S)
             {
                _a[id  +  "opacity"] =  x$.filters.item($.J);
                break;
             }
              
            default:
              _a[id  +  "elStyle"] =  x$.style;

              if  (Gf.removeAfterwards)
 
                Sf.push("_a[\"",  id,  "elStyle\"]."  +  Kf  +  "='';\n");
         }

          
          if  ($.Ue.rf(Kf) ==  "rgb")
            Uf  =  $.Ue.wf(Uf);

          if  (Uf.constructor  ==  Array)
         {
            var   Wf  = [];
            for  (var   Xf=0;  Xf<Uf.length;  Xf++)
              Wf[Xf] =  Math.floor(Uf[Xf] -  Vf[Xf]);
         }
          else   if  (!isNaN(Uf))
         {
            var   Wf  =  Math.floor(Uf-Vf);
         }

          var   Yf  = (If.units  &&  If.units[Kf])?" + '"  +  If.units[Kf] +  "';\n":_a.Zf;

          
          switch  ($.Ue.rf(Kf))
         {
            case   $.Ue.Ze:
              if  ($.S)
             {
                if  (Kf  ==  "borderColor")
                  Rf.push(
                    '_a["',  id,  'elStyle"].',  Kf,  '=["rgb(",',
                    '(',  Math.floor(Of*(Vf[0]+0.5)),  '+colorPhase*',  Wf[0],  ')>>',  Nf,  ',",", ',
                    '(',  Math.floor(Of*(Vf[1]+0.5)),  '+colorPhase*',  Wf[1],  ')>>',  Nf,  ',",", ',
                    '(',  Math.floor(Of*(Vf[2]+0.5)),  '+colorPhase*',  Wf[2],  ')>>',  Nf,  ', ")"].join("");\n' 
                 );
                else 
                  Rf.push(
                    '_a["',  id,  'elStyle"].',  Kf,  '=',
                    '((',  Math.floor(Of*(Vf[0]+0.5)),  '+colorPhase*',  Wf[0],  ')>>',  Nf,  '<<16) | ',
                    '((',  Math.floor(Of*(Vf[1]+0.5)),  '+colorPhase*',  Wf[1],  ')>>',  Nf,  '<<8) | ',
                    '((',  Math.floor(Of*(Vf[2]+0.5)),  '+colorPhase*',  Wf[2],  ')>>',  Nf,  ');\n' 
                 );
             }
              else 
                Rf.push(
                  '_a["',  id,  'elStyle"].',  Kf,  '=["rgb(",',
                  '(',  Math.floor(Of*(Vf[0]+0.5)),  '+colorPhase*',  Wf[0],  ')>>',  Nf,  ',",", ',
                  '(',  Math.floor(Of*(Vf[1]+0.5)),  '+colorPhase*',  Wf[1],  ')>>',  Nf,  ',",", ',
                  '(',  Math.floor(Of*(Vf[2]+0.5)),  '+colorPhase*',  Wf[2],  ')>>',  Nf,  ', ")"].join("");\n' 
               );
              break;
            case   $.Ue._f:
              Rf.push('try{_a["',  id, ($.S?'opacity"].opacity=(':'elStyle"].opacity=(('),  Of*(Vf+0.5),  '+colorPhase*',  Wf,  ')>>',  Nf, ($.S?';':')/100;'),  "}catch(e){}\n");
              break;
            case   $.Ue.Ye:
              Qf.push('_a["',  id,  'elscroll"].',  Kf,  '=(',  Mf*(Vf+0.5),  '+normalPhase*',  Wf,  ')>>',  Lf,  ';\n');
              break;
            case   $.Ue.$f:
              Qf.push('_a["',  id,  'elStyle"].',  Kf,  '=((',  Math.floor(Mf*(Vf+0.5)),  '+normalPhase*',  Wf,  ')>>',  Lf,  ')/10000;\n');
            case   $.Ue.af:
              switch  (Kf)
             {
                case   "visibility":
                  x$.style.visibility  =  "hidden";
                  break;
                case   "display":
                  x$.style.display  = (Uf=='none'?Vf:Uf);
                  break;
                case   "overflow":
                  x$.style.overflow  =  "hidden";
                  break;
 
 
 
 
 
 
             }
              break;
            case   $.Ue.bf:
              Qf.push('_a["',  id,  'elStyle"].',  Kf,  '=((',  Math.floor(Mf*(Vf+0.5)),  '+normalPhase*',  Wf,  ')>>',  Lf,  ')\n');
              break;
            default:
              Qf.push('_a["',  id,  'elStyle"].',  Kf,  '=((',  Math.floor(Mf*(Vf+0.5)),  '+normalPhase*',  Wf,  ')>>',  Lf,  ')', (Kf=='zoom'?'/10000':''),  Yf,  "\n");
         }

       }
     }

 

      if  (Qf.length  >  0)
     {
        code.push(
          "var normalPhase=Math.round(",  Mf,  "*f);\n",
          Qf.join("")
       );
     }
      if  (Rf.length  >  0)
     {
        code.push(
          'var colorPhase=Math.round(',  Of,  '*f);\n',
         Rf.join("")
       );
     }

 

      if  (Gf.removeAfterwards)
        code.push(
          "",
          "if(t==TSTOP)",
          "{",
          Sf.join(""),
          "}\n");

      code.push("}\n\n");

      _a._g(code,  Gf.delay,  Gf.duration,  Ff,  Gf.onFinish);
   },

    Pf: [
      'tPhase',
      'tPhase*tPhase',
      '(1-Math.pow(1-tPhase, 4))',
      '(1-Math.cos('  +  Math.PI  +  '*tPhase)/2.0)',
      '(tPhase<0.5?Math.exp(3*Math.log(tPhase*2))/2:1-Math.exp(3*Math.log((1-tPhase)*2))/2)',
      '(-Math.cos('  +  4*Math.PI  +  '*tPhase) + 1)/2',
      '(Math.sin('  +  2*Math.PI  +  '*tPhase)*0.4+0.6)*Math.sin('  +  4*Math.PI  +  '*tPhase)*0.5+0.5',
      '(1-Math.exp(4*Math.log(1-tPhase)))' 
   ],

    Zf: (document.defaultView?" + 'px';\n":";\n"),
    $g:  0,
    ag:  null,
    bg:  1,
    cg:  0,
    dg:  Infinity,
    eg:  500,
    fg:  "",
    _g:  function(gg,  delay,  duration,  Ff,  onFinish)
   {
      _a.$g++;
      _a.bg++;

      for  (var   i=0;  i<Ff.length;  i++)
        _a.Ef[Ff[i].element.id] =  _a.bg++;

      if  (onFinish)
     {
        _a["__onFinish"  +  _a.bg] =  onFinish;
        _a["__anims"  +  _a.bg] =  Ff;
     }

      hg  = [
        "/*** ",  _a.bg,  " ***/\n",
        "var t=Math.min(tNow, TSTOP);\n",
        gg.join(""),
        "if(t==TSTOP)\n",
        "{\n",
        "_a.__rC(",  _a.bg,  ");\n",
       (onFinish?("_a.__onFinish"  +  _a.bg  +  "(_a.__anims"  +  _a.bg  +  ");"):""),
        "\n}\n",
        "/*** /",  _a.bg,  " ***/\n"].join("");

      var   ig  = +new   Date() +  delay  -  _a.cg;
      var   jg  =  ig  +  duration;
      hg  =  hg.replace(/TSTART/g,  ig);
      hg  =  hg.replace(/DURATION/g,  duration);
      hg  =  hg.replace(/TSTOP/g,  jg);
      hg  =  hg.replace(/RUNINDEX/g,  _a.bg);

      if  (_a.ag)
        _a.kg(Ff);

      _a.fg  =  _a.fg  +  hg;

 

      _a.lg  =  Function("tNow",  _a.fg);

 

      if  (!_a.ag)
     {
        _a.cg  =  0;
        _a.dg  =  Infinity;

 
 

        _a.ag  =  setInterval(_a.mg,  1);
 _a.ng  =  true;
        _a.mg();
 _a.ng  =  false;
     }
   },
    mg:  function()
   {
      var   bb  = +new   Date() -  _a.cg;

      var   og  =  bb  -  _a.dg;
      if  (og  >  _a.eg)
     {
        _a.cg  +=  og;
        bb  -=  og;
     }

      _a.dg  =  bb;

 
 

      _a.lg(bb);
   },
    "__rC":  function(pg)
   {
      var   qg  =  "/*** "  +  pg  +  " ***/";
      var   rg    =  "/*** /"  +  pg  +  " ***/";
      _a.fg  =  _a.fg.substring(0,  _a.fg.indexOf(qg)) +  _a.fg.substring(_a.fg.indexOf(rg) +  rg.length);

      _a.lg  =  Function("tNow",  _a.fg);

      _a.sg(pg);

      _a.$g--;
      if  (_a.$g  ==  0)
     {
        clearInterval(_a.ag);
        _a.Ef  = {};
        _a.ag  =  null;
     }
   },
    sg:  function(pg)
   {
      for  (var   id   in   _a.Ef)
        if  (_a.Ef[id] ==  pg)
          delete   _a.Ef[id];
   },
   kg:  function(Ff)
   {
      var   tg  = [];
      var   Hf  =  Ff.length;
      for  (var   i=0;  i<Hf;  i++)
     {
        var   If  =  Ff[i];
        var   id  =  If.element.id.replace(/(\W)/g,  "\\$1");
        var   Jf  =  If.targetState;

        for  (var   Kf   in   Jf)
       {
          
          switch  (Kf)
         {
            case   'scrollTop':
            case   'scrollLeft':
              tg.push("|_a\\[\"",  id,  "el\"\\]\\.",  Kf,  "[^;]+;");
              break;
            case   "opacity":
              tg.push("|_a\\[\"",  id,  "opacity\"\\][^;]+;");
              break;
            default:
              tg.push("|_a\\[\"",  id,  "elStyle\"\\]\\.",  Kf,  "[^;]+;");
              tg.push("|_a\\[\"",  id,  "elStyle\"\\]\\.",  Kf,  "='';");
         }
       }
     }

      if  (tg.length  >  0)
     {
 
        _a.fg  =  _a.fg.replace(new   RegExp(tg.join("").substr(1),  "g"),  "");
 
     }
   },
    ug:  function(vg)
   {
 
 
 
 
 
 
 
 
 
 
 
 
   }
};


 $.Modifiers  =  function  ()
{
    this.delay  =  0;
    this.duration  =  300;
    this.profile  =  4;
    this.removeAfterwards  =  false;
    this.onFinish  =  null;
};

 $.Modifiers.prototype  = {
    "LINEAR":0,
    "ACCELERATING":1,
    "DECELERATING":2,
    "NORMAL":3,
    "SLOWFASTSLOW":4,
    "BLINK":5,
    "HEARTBEAT":6 
};

 $["Animator"] =  $.Animator;
 $.Animator["disabled"] =  $.Animator.disabled;
 $.Animator["animate"] =  $.Animator.animate;
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 

 
 
 


 



 $.wg  = {
    xg:"display",
    yg:"block",
    zg:"morph",
    Ag:"morph-duration",
    Bg:"dontmorphinside",
    Cg:  "limitmorphto",
    Dg:  "limitmorphinsideto",


    Eg:  true,
    Fg:[
      "display",
      "overflow",
      "backgroundColor",
 
 
 
 
 
      "color",
      "fontSize",
      "height",
      "left",
      "marginTop",
 
 
      "marginLeft",
      "opacity",
 
 
 
 
 
      "top",
      "visibility",
      "width" 
   ],
    ke:{"props":"array"},
    Gg:{},
    Hg:  false,
    Ig:  {  BODY:1,  DIV:1,  A:1,  IMG:1,  LI:1,  OL:1,  UL:1,  SPAN:1,  TD:1,  TH:1,  TR:1,  TABLE:1,  H1:1,  H2:1,  H3:1  },

    a$:  function()
   {
      
      if  (!$.V)
     {
        $.u$.mc($.j,  this.Jg,  this);
        $.u$.mc($.k,  this.Kg,  this);
        $.u$.mc($.m,  this.Kg,  this);
     }
   },

    Lg:  function()
   {
      this.Eg  =  true;
   },
    Mg:  function()
   {
      this.Eg  =  false;
   },
    Ng:  function(Og)
   {
      $.v  =  Og;
   },
    Pg:  function(Qg)
   {
      var   Rg  = {};
      for  (var   i=0;  i<Qg.length;  i++)
        Rg[Qg[i].toUpperCase()] =  1;
      this.Ig  =  Rg;
   },
    Sg:  function(Tg)
   {
      this.Fg  =  Tg;
   },
    Kg:  function(bc)
   {
      if  ($.wg.Eg  && !bc.Ib)
     {
        var   x$  =  bc.subject;

        var   ib  =  $.J$.K$(x$,  this.zg,  this.ke);
        if  (!ib  || !ib["not"])
       {
          var   Ug  = (
            bc.type  ==  "beforeChangeClassName" 
           &&  $.J$.La(bc.toValue,  this.zg)
         );
 
 

          if  (Ug  || !$.J$.contains(x$,  this.Bg))
            this.Vg(x$,  Ug);
       }
     }
   },
    Wg:  function(vg,  x$,  Xg,  ea)
   {
      if  (Xg  ||  $.J$.contains(x$,  this.zg))
     {
        var   De  =  $.G$.la(x$);
        if  (!this.Gg[De])
          vg[De] = {  element:x$,  ea:ea  };
     }
   },
    Vg:function(tc,  Ug,  ea)
   {
 
      var   Yg  = {};

      var   Zg  =  $.n$.O$(tc,  this.Cg,  null,  false,  null);
      var   ea  = (Zg?Zg.split("-"):this.Fg);

      if  (Ug  || !$.J$.contains(tc,  this.Bg))
     {
 this._h  =  tc.className;
 
 

        if  (Ug  ||  $.J$.contains(tc,  this.zg))
          this.Wg(Yg,  tc,  Ug,  ea);

        this.$h(tc,  Yg,  ea);

        this.Hg  =  true;
        this.ah(Yg,  true);

        for  (var   De   in   Yg)
          this.Gg[De] =  Yg[De];
     }
 
   },
    $h:  function(x$,  Yg,  ea)
   {
      var   Zg  =  $.n$.O$(x$,  this.Dg,  null,  true,  null);
      if  (Zg)
        ea  =  Zg.split("-");

      for  (var   bh  =  x$.firstChild;  bh;  bh  =  bh.nextSibling)
        if  (bh.nodeType  ==  1  && !$.J$.contains(bh,  this.Bg))
       {
          var   ch  =  $.Ue.df(bh,  "display");
          if  (this.Ig[bh.nodeName])
         {
            var   ib  =  $.J$.K$(bh,  this.zg,  this.ke);
            if  (ib)
           {
              if  (ib["not"])
                continue;
              this.Wg(Yg,  bh,  false,  ea);
           }
         }
          if  (ch  !=  $.g)
            this.$h(bh,  Yg,  ea);
       }
   },

    Jg:function()
   {
      if  ($.R)
     {
        
        
        
        document.body.scrollLeft  +=  0;
     }

      if  (this.Hg)
     {
        
        
        for  (var   De   in   this.Gg)
          if  (!this.dh(this.Gg[De].element))
         {
            var   x$  =  document.getElementById(De);
            if  (x$)
              this.Gg[De].element  =  document.getElementById(De);
            else 
              delete   this.Gg[De];
         }
 
 
 
 

 
        this.eh(this.Gg);
 
        this.ah(this.Gg,  false);
 
        this.fh(this.Gg);
 

        var   gh  =  this.hh();
 

        this.Hg  =  false;
        this.Gg  = {};
 

        this.ih(gh);
				document.body.offsetWidth;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     }
   },
    eh:  function(vg)
   {
 
 
 
 
 

      for  (var   De   in   vg)
        if  ($.Animator.Ef[De])
       {
          var   jh  =  vg[De];
          var   x$  =  jh.element;

          if  ($.S)
         {
            jh.kh  =  x$.style.cssText;
            x$.style.cssText  =  "";
         }
          else 
            for  (var   _$   in   jh.lh)
           {
              var   da  =  x$.style[_$];
              if  (da)
             {
                jh.mh[_$] =  da;
                x$.style[_$] =  "";
             }
           }
       }
   },
    fh:  function(vg)
   {
      for  (var   De   in   vg)
     {
        if  ($.Animator.Ef[De])
       {
          var   jh  =  vg[De];
          var   x$  =  jh.element;
          if  ($.S)
            x$.style.cssText  =  jh.kh;
          else 
            for  (var   _$   in   jh.mh)
              x$.style[_$] =  jh.mh[_$];
       }
     }
   },
    ah:  function(vg,  nh)
   {
      var   oh  = [];
      var   ph  = [];
      var   qh,  jh  =  null;

      for  (var   De   in   vg)
     {
        if  (nh)
          vg[De] =  jh  = {
            element:vg[De].element,
            ea:vg[De].ea,
            mh:{},
            lh:{},
            rh:{}
         };
        else 
          jh  =  vg[De];

        var   x$  =  jh.element;

 
 
 
 if  (x$.offsetWidth  ==  0  &&  x$.parentNode.offsetWidth  ==  0)
{
    delete   vg[De];
    continue;
}

        
        if  (!nh  &&  qh  &&  $.G$.xa(qh,  x$) && (qh.style.display  ==  $.g))
       {
          delete   vg[De];
          continue;
       }

        var   sh  = (nh?jh.lh:jh.rh);

        for  (var   i=0;  i<jh.ea.length;  i++)
       {
          var   _$  =  jh.ea[i];
 

          sh[_$] =  $.Ue.df(x$,  _$, !nh);

          if  (_$  ==  this.xg  &&  sh[_$] ==  $.g)
         {
 
 
 
 
 
            
            if  (!nh  &&  jh.lh.display  ==  $.g)
           {
              delete   vg[De];
              break;
           }

            qh  =  x$;
            oh.push(qh);
            ph.push(qh.style.display);
            qh.style.display  =  this.yg;
         }
       }
     }

      for  (var   i=0;  i<oh.length;  i++)
        oh[i].style.display  =  ph[i];
   },
    hh:  function()
   {
      var   gh  = {};
      var   uh  = {};
      for  (var   De   in   this.Gg)
     {
        var   jh  =  this.Gg[De];
        var   x$  =  jh.element;
        var   currentState  = {};
        var   units  = {};
        var   targetState  = {};
        var   vh  =  false;
        for  (var   _$   in   jh.rh)
       {
          var   wh  =  jh.lh[_$];
          var   xh  =  jh.rh[_$];

          if  (xh  !=  null)
         {
            
 
 
 
 
            if  (wh  !=  xh)
           {
              vh  =  true;
              var   yh  =  $.Ue.ff(x$,  _$,  wh);
              var   zh    =  $.Ue.ff(x$,  _$,  xh);
              currentState[_$] =  yh.value;
              targetState[_$] =  zh.value;
              units[_$] =  yh.vf  ||  zh.vf;
           }
         }
       }

        if  (vh)
       {
          if  ($.R)
         {
            
            
            
            if  (targetState.top  &&  targetState.marginTop  &&  targetState.top  ==  targetState.marginTop)
              delete   targetState.top;
            if  (targetState.left  &&  targetState.marginLeft  &&  targetState.left  ==  targetState.marginLeft)
              delete   targetState.left;
         }


 
          var   delay  =  $.n$.Y$(x$,  $.P,  0);
          var   duration  =  $.n$.Y$(x$,  this.Ag,  $.v);
          var   Ah  =  gh[delay] =  gh[delay] || {};
          var   Ff  =  Ah[duration] =  Ah[duration] || [];

          Ff[Ff.length] = {
            element:x$,
            currentState:currentState,
            targetState:targetState,
            units:units 
         };
       }
     }
      return   gh;
   },
    ih:  function(gh)
   {
      for  (var   delay   in   gh)
     {
        delay  *=  1;
        for  (var   duration   in   gh[delay])
       {
          duration  *=  1;
          var   Ff  =  gh[delay][duration];
          for  (var   i=0;  i<Ff.length;  i++)
         {
            var   If  =  Ff[i];
            var   x$  =  If.element;
            
 
 
            
            for  (var   _$   in   If.currentState)
           {
 
 
              $.Ue.zf(x$,  _$,  If.currentState[_$]);
           }
         }

 
 
 
 
 
 
 
 
 

          var   Gf  =  new   $.Modifiers();
          Gf.delay  =  delay;
          Gf.duration  =  duration;
 
 
          Gf.removeAfterwards  =  true;

          $.Animator.animate(Ff,  Gf);
       }
     }
   },
    dh:  function(x$)
   {
      if  (x$.ownerDocument  !=  document)
        return   false;

      if  ($.S)
        return   x$.parentTextEdit  !=  null;

      while  (x$.parentNode  &&  x$  !=  document.body)
        if  (x$.parentNode.nodeType  ==  11)
          return   false;
        else 
          x$  =  x$.parentNode;
      return  (x$  ==  document.body);
   },
    Bh:  function(Ch,  Dh)
   {
      for  (var   i=0;  i<Ch.length;  i++)
        if  (Ch[i] !=  Dh[i])
          return   false;

      return   true;
   }
};
 $.X($.wg);

 $["StyleMorpher"] =  $.wg;
 $.wg["setMorphDuration"] =  $.wg.Ng;
 $.wg["setMorphableNodeNames"] =  $.wg.Pg;
 $.wg["setMorphableProperties"] =  $.wg.Sg;
 $.wg["enable"] =  $.wg.Lg;
 $.wg["disable"] =  $.wg.Mg;
 $.Eh  = {
    Fh:null,
    Gh:{},
    a$:  function()
   {
      this.Gh[$.N] =  $.M;
      this.Gh[$.O] =  $.M;

      $.Sb.Wb(document.documentElement,  $.G,  this.Hh,  this);
      $.Sb.Wb(document.documentElement,  $.H,  this.Ih,  this);
      $.Sb.Wb(document.documentElement,  $.I,    this.Jh,  this);
      $.Sb.Wb(document.documentElement,  "DOMMouseScroll",    this.Kh,  this);

      $.u$.mc("persist-pos",  this.Lh,  this);
   },
    
    Lh:  function(bc)
   {
      var   x$  =  bc.subject;
      if  ($.J$.contains(x$,  "movable"))
     {
        var   Mh  = {  x:  parseInt(x$.style.left),  y:  parseInt(x$.style.top) };
        if  (!isNaN(Mh.x) || !isNaN(Mh.y))
       {
          var   L$  =  $.J$.K$(x$,  "movable",  this.Gh);
          if  (L$[$.N])
            L$[$.N](x$,  Mh);
       }
     }
   },

    Hh:  function(bc)
   {
      this.Jh();

      this.Nh  =  $.n$.w$(bc.subject,  "mover",  "movable",  this.Fh,  this.Gh);
      if  (this.Nh.object)
     {
        this.Nh.box  =  this.Nh.object.offsetParent  ||  $.W;

        this.Oh  =  this.Nh.object.offsetLeft  -  bc.clientX;
        this.Ph  =  this.Nh.object.offsetTop  -  bc.clientY;

        this.Qh();

        this.Rh  =  false;
     }
      else 
        this.Nh  =  null;
   },
    Ih:  function(bc)
   {
      if  (this.Nh)
        if  (bc.kc)
       {
          if  (!this.Rh)
         {
            $.Sb.Tb  =  true;

            if  ($.S)
              this.Nh.F$.setCapture();

            $.J$.replace(this.Nh.box,  "notMoving",  "moving");
            $.J$.replace(this.Nh.object,  "notMoving",  "moving");
            $.J$.replace(this.Nh.F$,  "notMoving",  "moving");
            this.Rh  =  true;
         }

          this.Sh  = {  x:  this.Oh  +  bc.clientX,  y:  this.Ph  +  bc.clientY  };
          this.Th();

          if  (this.Nh.L$[$.N])
         {
            this.Nh.L$[$.N](this.Nh.object,  this.Sh);
            this.Th();
         }

          if  (this.Nh.I$.dir  !=  "vertical")
            $.Ue.zf(this.Nh.object,  "left",  this.Sh.x);
          if  (this.Nh.I$.dir  !=  "horizontal")
            $.Ue.zf(this.Nh.object,  "top",   this.Sh.y);
       }
        else 
          this.Jh();
   },
    Kh:  function(bc)
   {
      this.Jh();

      var   Uh  =  $.G$.H$(bc.subject,  "move");
      if  (Uh)
     {
        var   ib  =  $.J$.K$(Uh,  "move", {"delta":"int"});

        if  (ib["onMouseScroll"])
       {
          if  (this.Vh)
            clearTimeout(this.Vh);

          var   Wh  =  document.getElementById(ib["onMouseScroll"]);
          this.Nh  = {
            box:  Wh.offsetParent  ||  $.W,
            object:  Wh,
            L$:  $.J$.K$(Wh,  "movable",  this.Gh)
         };
          
          this.Qh();

          var   Xh  =  this.Nh.object.offsetTop;

          var   Yh  =  ib["delta"] ||  Math.abs(bc.detail);

          this.Sh  = {  x:0,  y:Xh  +  Yh  *  bc.detail  /  Math.abs(bc.detail) };
          this.Th();

          if  (this.Nh.L$[$.N])
         {
            this.Nh.L$[$.N](this.Nh.object,  this.Sh);
            this.Th();
         }

          $.Ue.zf(this.Nh.object,  "top",   this.Sh.y);

          var   Zh  =  $.Eh.Nh.L$[$.O];
          if  (this.Nh.L$[$.O])
         {
            var   Y  =  $.Eh.Nh.object;
            var   Mh  =  $.Eh.Sh;
            this.Vh  =  $.n$.o$(function() {  Zh(Y,  Mh); },  500);
         }

          this.Jh();
          
          bc.cancel();
       }
     }
   },

    Qh:  function()
   {
      
      
      
      var   _i   = -1;
      var   $i  = -1;
      var   ai  =  this.Nh.box;
      while  (_i  <=  1  ||  $i  <=  1)
     {
        _i  =  ai.offsetWidth;
        $i  =  ai.offsetHeight;
        ai  =  ai.offsetParent  ||  $.W;
     }

      if  (this.Nh.L$["restricted"])
     {
        this.bi  =  _i   -  $.Ue.lf(this.Nh.object,  "width");
        this.ci  =  $i  -  $.Ue.lf(this.Nh.object,  "height");
     }
   },

    Th:  function()
   {
      if  (this.Nh.L$["restricted"])
     {
        this.Sh.x  =  Math.max(0,  Math.min(this.Sh.x,  this.bi)),
        this.Sh.y  =  Math.max(0,  Math.min(this.Sh.y,  this.ci))
     }
   },
    Jh:  function()
   {
      if  (this.Nh)
     {
        if  (this.Rh)
       {
          if  (this.Nh.box)
            $.J$.replace(this.Nh.box,  "moving",  "notMoving");
          if  (this.Nh.object)
            $.J$.replace(this.Nh.object,  "moving",  "notMoving");
          if  (this.Nh.F$)
            $.J$.replace(this.Nh.F$,  "moving",  "notMoving");

          if  (this.Nh.L$[$.O])
            this.Nh.L$[$.O](this.Nh.object,  this.Sh);

          $.Sb.Tb  =  false;

          if  ($.S)
            this.Nh.F$.releaseCapture();
       }

        this.Nh  =  null;
     }
   }
};

 $.X($.Eh);
 $.di  = {
    Fh:null,
    Gh:{},
    a$:  function()
   {
      this.Gh[$.N] =  $.M;
      this.Gh[$.O] =  $.M;

      $.Sb.Wb(document.documentElement,  $.G,  this.Hh,  this);
      $.Sb.Wb(document.documentElement,  $.H,  this.Ih,  this);
      $.Sb.Wb(document.documentElement,  $.I,    this.Jh,  this);

      $.u$.mc("persist-dim",  this.Lh,  this);
   },

    Lh:  function(bc)
   {
      var   x$  =  bc.subject;
      if  ($.J$.contains(x$,  "resizable"))
     {
        var   ei  = {  width:  parseInt(x$.style.width),  height:  parseInt(x$.style.height) };
        if  (!isNaN(ei.width) || !isNaN(ei.height))
       {
          var   L$  =  $.J$.K$(x$,  "resizable",  this.Gh);
          if  (L$[$.N])
            L$[$.N](x$,  ei);
       }
     }
   },
    
    Hh:  function(bc)
   {
      
      this.Jh();

      this.fi  =  $.n$.w$(bc.subject,  "resizer",  "resizable",  this.Fh,  this.Gh);
      if  (this.fi.object)
     {
        
        this.gi  =  $.Ue.lf(this.fi.object,  "width");
        this.hi  =  $.Ue.lf(this.fi.object,  "minWidth") ||  0;
        this.ii  =  $.Ue.lf(this.fi.object,  "maxWidth") ||  Infinity;

        this.ji  =  $.Ue.lf(this.fi.object,  "height");
        this.ki  =  $.Ue.lf(this.fi.object,  "minHeight") ||  0;
        this.mi  =  $.Ue.lf(this.fi.object,  "maxHeight") ||  Infinity;

        this.Oh  =  bc.clientX;
        this.Ph  =  bc.clientY;

        this.ni  =  false;
     }
      else 
        this.fi  =  null;
   },
    
    Ih:  function(bc)
   {
      if  (this.fi)
        if  (bc.kc)
       {
          if  (!this.ni)
         {
            $.Sb.Tb  =  true;

            if  ($.S)
              this.fi.F$.setCapture();

            $.J$.replace(this.fi.object,  "notResizing",  "resizing");
            $.J$.replace(this.fi.F$,  "notResizing",  "resizing");
            this.ni  =  true;
         }

          this.oi  = {
            width:this.gi  +  bc.clientX  -  this.Oh,
            height:this.ji  +  bc.clientY  -  this.Ph 
         };
          this.Th();

          if  (this.fi.L$[$.N])
         {
            this.fi.L$[$.N](this.fi.object,  this.oi);
            this.Th();
         }

          if  (this.fi.I$.pi  !=  "height")
            this.fi.object.style.width   =  this.oi.width   +  "px";
          if  (this.fi.I$.pi  !=  "width")
            this.fi.object.style.height  =  this.oi.height  +  "px";
       }
        else 
          this.Jh();
   },
    Th:  function()
   {
      this.oi.width   =  Math.max(this.hi,  Math.min(this.ii,  this.oi.width));
      this.oi.height  =  Math.max(this.ki,  Math.min(this.mi,  this.oi.height));
   },

    Jh:  function()
   {
      if  (this.fi)
     {
        if  (this.ni)
       {
          $.J$.replace(this.fi.object,  "resizing",  "notResizing");
          $.J$.replace(this.fi.F$,  "resizing",  "notResizing");

          if  (this.fi.L$[$.O])
            this.fi.L$[$.O](this.fi.object,  this.oi);

          $.Sb.Tb  =  false;

          if  ($.S)
            this.fi.F$.releaseCapture();
       }

        this.fi  =  null;
     }
   }
};

 $.X($.di);
 
 
 var   zk  =  $.n$.platform;
 $.J$.add(document.documentElement,  "spiffy "  +  zk,  $.K);

 $.Sb.Wb(
    window,
    $.B,
    function()
   {
      if  (document.compatMode  ==  "BackCompat")
        $.W  =  document.body;

      $.J$.replace(document.body,  $.z,  $.w);

      $.u$.v$($.n,  document.body);
   }
);

 if  ($.S)
{
    
    
    
 

 
 

    
    
    
    

    
    if  (!$.T)
   {
      try 
     {
        document.execCommand("BackgroundImageCache",  false,  true);
     }
      catch(yf){}
   }
}

 $.u$.v$("spifLoaded");

 $["documentScrollElement"] =  $.W;

