Changeset 077f3f


Ignore:
Timestamp:
02/09/10 19:17:50 (9 years ago)
Author:
pierre-alain <pierre-alain@…>
Branches:
master
Children:
2a2406
Parents:
1eaf69
git-author:
pierre-alain <pierre-alain@…> (02/09/10 19:17:50)
git-committer:
pierre-alain <pierre-alain@…> (02/09/10 19:17:50)
Message:

closing ticket-3

You will have to add the tables 'news_tags' and 'news_relations_table' into your DB (take their definitions from file install/init_db.sql)

Files:
5 added
1 deleted
23 edited

Legend:

Unmodified
Added
Removed
  • OWR/Cache.php

    r48e84c r077f3f  
    198198        if(is_dir($dir)) 
    199199        { 
    200             if(!is_writeable($dir)) throw new Exception('The directory '.$dir.' is not writeable'); 
     200            if(!is_writeable($dir)) 
     201            { 
     202                Logs::iGet()->log('The directory '.$dir.' is not writeable'); 
     203                return false; 
     204            } 
    201205        } 
    202206        elseif(file_exists($dir)) 
    203207        { 
    204             if(!@unlink($dir)) throw new Exception('The file '.$dir.' exists, is not a dir and can not be removed'); 
     208            if(!@unlink($dir)) 
     209            { 
     210                Logs::iGet()->log('The file '.$dir.' exists, is not a dir and can not be removed'); 
     211                return false; 
     212            } 
     213             
    205214        } 
    206215        else 
     
    210219                if(!@mkdir($dir)) 
    211220                { // hu ? 
    212                     throw new Exception('Can not create the directory '.$dir); 
     221                    Logs::iGet()->log('Can not create the directory '.$dir); 
     222                    return false; 
    213223                } 
    214224            }  
    215225            else  
    216226            { 
    217                 throw new Exception('The directory '.HOME_PATH.'cache is not writeable'); 
     227                Logs::iGet()->log('The directory '.HOME_PATH.'cache is not writeable'); 
     228                return false; 
    218229            } 
    219230        } 
  • OWR/Controller.php

    r877ab3 r077f3f  
    602602                if($tpl) 
    603603                { 
    604                     $this->_getPage($response->getTpl(), $response->getDatas()); 
     604                    $this->_getPage($tpl, $response->getDatas()); 
    605605                } 
    606606                else Logs::iGet()->log($response->getError(), $response->getStatus()); 
     
    757757                $datas['gname'] = $datas['name']; 
    758758                $datas['groupid'] = $datas['gid']; 
    759                  
     759 
    760760                if(empty($this->_request->unreads)) 
    761761                    $this->do_getunread(true); 
     
    802802                    { 
    803803                        $stream = $response->getDatas(); 
     804                        if(empty($stream)) 
     805                        { 
     806                            $empty = true; 
     807                            break; 
     808                        } 
    804809                        $stream['groups'] = $groups; 
    805810                        if($stream['status'] > 0)  
     
    874879                { 
    875880                    $datas['offset'] = (int)$datas['offset']; 
    876                      
     881 
    877882                    if($datas['offset'] > 0) 
    878883                    { 
     
    937942                        $datas['nbNews'] = $nb ? $nb->nb : 0; 
    938943                    } 
     944                    elseif('news_tags' === $table) 
     945                    { 
     946                        Logic::getCachedLogic('news')->view($request, array('tid' => $datas['id']), $order, 'news.id', $offset); 
     947                        $nb = DAO::getCachedDAO('news_relations_tags')->count(array('tid' => $datas['id']), 'newsid'); 
     948                        $datas['nbNews'] = $nb ? $nb->nb : 0; 
     949                    } 
    939950                    else 
    940951                    { 
     
    976987                } 
    977988 
    978                 foreach($news as $new) 
     989                unset($news['ids']); 
     990 
     991                foreach($news as $k => $new) 
    979992                { 
    980993                    if(isset($datas['searchResults'][$new['id']])) 
     
    10661079                $page .= $tmpPage; 
    10671080                unset($tmpPage); 
     1081                $page .= $this->_view->get('menu_tags', array(), $cacheTime); 
     1082 
     1083                $page .= $this->_getPage('menu_tags_contents', $datas, true); 
     1084 
    10681085                $page .= $this->_view->get('menu_footer', array( 
    10691086                                                            'groups'            => $groups,  
     
    10941111                break; 
    10951112 
     1113            case 'menu_tags_contents': 
     1114                $request = new Request(array('id' => isset($datas['id']) ? $datas['id'] : null, 'ids' => isset($datas['ids']) ? $datas['ids'] : null)); 
     1115                Logic::getCachedLogic('news_tags')->view($request); 
     1116                $response = $request->getResponse(); 
     1117                if('error' !== $response->getNext()) 
     1118                { 
     1119                    $tags = $response->getDatas(); 
     1120                    if(!empty($tags)) 
     1121                    { 
     1122                        if($response->isMultiple()) 
     1123                        { 
     1124                            foreach($tags as $tag) 
     1125                            { 
     1126                                $tag['groupid'] = $tag['id']; 
     1127                                $tag['gname'] = $tag['name']; 
     1128                                $noCacheDatas['unread'] = isset($this->_request->unreads[$tag['id']]) ? $this->_request->unreads[$tag['id']] : 0; 
     1129                                $noCacheDatas['bold'] = $noCacheDatas['unread'] > 0 ? 'bold ' : ''; 
     1130                                $page .= $this->_view->get('menu_tags_contents', $tag, $cacheTime, $noCacheDatas); 
     1131                            } 
     1132                        } 
     1133                        else 
     1134                        { 
     1135                            $tags['groupid'] = $tags['id']; 
     1136                            $tags['gname'] = $tags['name']; 
     1137                            $noCacheDatas['unread'] = isset($this->_request->unreads[$tags['id']]) ? $this->_request->unreads[$tags['id']] : 0; 
     1138                            $noCacheDatas['bold'] = $noCacheDatas['unread'] > 0 ? 'bold ' : ''; 
     1139                            $page .= $this->_view->get('menu_tags_contents', $tags, $cacheTime, $noCacheDatas); 
     1140                        } 
     1141                    } 
     1142                    else $empty = true; 
     1143                    unset($tags); 
     1144                } 
     1145                else 
     1146                { 
     1147                    Logs::iGet()->log($response->getError(), $response->getStatus()); 
     1148                    $empty = true; 
     1149                } 
     1150                break; 
     1151 
    10961152            case 'getopensearch': 
    10971153                $datas['surl'] = $this->_cfg->get('surl'); 
     
    12301286                } 
    12311287                unset($response, $request); 
    1232                  
     1288 
    12331289                if(!empty($ids)) 
    12341290                { 
     
    12401296                } 
    12411297                break; 
    1242              
     1298 
    12431299            case 'login': 
    12441300                $datas['surl'] = $this->_cfg->get('surl'); 
     
    12511307                break; 
    12521308        } 
    1253          
     1309 
    12541310        if(!empty($page)) 
    12551311        { 
     
    13671423        return $this; 
    13681424    } 
    1369      
     1425 
    13701426    /** 
    13711427     * Renders news template from a specific stream with a specific offset 
     
    13801436        { 
    13811437            $type = DAO::getType($this->_request->id); 
    1382              
    1383             if('streams' !== $type && 'streams_groups' !== $type) 
     1438 
     1439            if('streams' !== $type && 'streams_groups' !== $type && 'news_tags' !== $type) 
    13841440                throw new Exception('Invalid Id', Exception::E_OWR_BAD_REQUEST); 
    13851441        } 
     
    14101466        { 
    14111467            $type = DAO::getType($this->_request->id); 
    1412              
     1468 
    14131469            if('streams' === $type) 
    14141470            { 
     
    14251481        return $this; 
    14261482    } 
    1427      
     1483 
    14281484    /** 
    14291485     * Renders or sets the unreads news count 
     
    14611517        } 
    14621518 
     1519        $nb = DAO::getCachedDAO('news_relations')->count(array('status' => 1, 'FETCH_TYPE' => 'array'), 'newsid', 'tid', 'tid'); 
     1520        if($nb) 
     1521        { 
     1522            if(is_array($nb[0])) 
     1523            { 
     1524                foreach($nb as $count) 
     1525                { 
     1526                    $unreads[$count[1]] = $count[0]; 
     1527                } 
     1528            } 
     1529            else 
     1530            { 
     1531                $unreads[$nb[1]] = $nb[0]; 
     1532            } 
     1533        } 
     1534 
    14631535        if(!$return) 
    14641536            $this->_request->page = $unreads; 
     
    14811553        return $this; 
    14821554    } 
    1483      
     1555 
    14841556    /** 
    14851557     * Renders the list of the users 
     
    14931565        if(!$this->_user->isAdmin()) 
    14941566            throw new Exception('You don\'t have the rights to do that.', Exception::E_OWR_UNAUTHORIZED); 
    1495          
     1567 
    14961568        $this->_getPage('users'); 
    14971569        return $this; 
     
    15251597        if(!$this->_request->id) 
    15261598            throw new Exception('An id is required', Exception::E_OWR_BAD_REQUEST); 
    1527          
     1599 
    15281600        $type = DAO::getType($this->_request->id); 
    15291601        if('news' !== $type) throw new Exception('Invalid id', Exception::E_OWR_BAD_REQUEST); 
    1530          
     1602 
    15311603        if($this->_request->live) 
    15321604        { 
    15331605            try 
    15341606            { 
    1535                 $this->do_upnew(false, 'news'); 
     1607                $this->do_upNew(false, 'news'); 
    15361608            } 
    15371609            catch(Exception $e) 
     
    15491621            } 
    15501622        } 
    1551          
     1623 
    15521624        $this->_getPage('new_contents', array('id'=>$this->_request->id, 'offset'=>$this->_request->offset)); 
    15531625        return $this; 
    15541626    } 
    1555      
     1627 
    15561628    /** 
    15571629     * Exports the feeds in OPML format 
     
    16211693            SELECT id FROM users) 
    16221694        AND id NOT IN ( 
    1623             SELECT id FROM news)'; 
     1695            SELECT id FROM news) 
     1696        AND id NOT IN ( 
     1697            SELECT id FROM news_tags)'; 
    16241698        $this->_db->set($query); 
    1625          
     1699 
    16261700        $query = ' 
    16271701    DELETE FROM objects 
     
    16321706                        FROM streams_relations 
    16331707                        GROUP BY rssid))'; 
    1634          
     1708 
    16351709        $this->_db->set($query); 
    16361710 
     
    16401714            SELECT id 
    16411715                FROM news)'; 
    1642          
     1716 
    16431717        $this->_db->set($query); 
    16441718 
     
    17201794            return $this; 
    17211795        } 
    1722          
     1796 
    17231797        $query = ' 
    17241798    SELECT id, MATCH(contents) AGAINST(?) AS result 
     
    17331807        else 
    17341808        { 
    1735             $query .= 'SELECT newsid 
     1809            $query .= 'SELECT nr.newsid 
    17361810                FROM news_relations nr 
    17371811                '; 
     
    17461820                case 'streams_groups': 
    17471821                    $query .= ' 
    1748  
    17491822                JOIN streams_relations sr ON (nr.rssid=sr.rssid) 
    17501823                WHERE nr.uid='.$this->_user->getUid().' AND sr.uid='.$this->_user->getUid().' AND gid='.$this->_request->id; 
     1824                    break; 
     1825 
     1826                case 'news_tags': 
     1827                    $query .= ' 
     1828                JOIN news_relations_tags nrt ON (nrt.newsid=nr.newsid) 
     1829                WHERE nr.uid='.$this->_user->getUid().' AND nrt.uid='.$this->_user->getUid().' AND tid='.$this->_request->id; 
    17511830                    break; 
    17521831 
     
    18021881            return $this; 
    18031882        } 
    1804          
     1883 
    18051884        $query = ' 
    18061885    SELECT id, MATCH(contents) AGAINST(?) AS result 
     
    18151894        else 
    18161895        { 
    1817             $query .= 'SELECT newsid 
     1896            $query .= 'SELECT nr.newsid 
    18181897                FROM news_relations nr 
    18191898                '; 
     
    18281907                case 'streams_groups': 
    18291908                    $query .= ' 
    1830  
    18311909                JOIN streams_relations sr ON (nr.rssid=sr.rssid) 
    18321910                WHERE nr.uid='.$this->_user->getUid().' AND sr.uid='.$this->_user->getUid().' AND gid='.$this->_request->id; 
     1911                    break; 
     1912 
     1913                case 'news_tags': 
     1914                    $query .= ' 
     1915                JOIN news_relations_tags nrt ON (nrt.newsid=nr.newsid) 
     1916                WHERE nr.uid='.$this->_user->getUid().' AND nrt.uid='.$this->_user->getUid().' AND tid='.$this->_request->id; 
    18331917                    break; 
    18341918 
     
    18991983    { 
    19001984        $exists = DAO::getCachedDAO('users')->get(null, 'id', null, null, 1); 
    1901          
     1985 
    19021986        if(!$exists) 
    19031987        { 
     
    19071991        } 
    19081992        unset($exists); 
    1909          
     1993 
    19101994        if(!$auto && empty($_POST) && !isset($openid) && empty($this->_request->identifier)) 
    19111995        { 
     
    19172001            return $this; 
    19182002        } 
    1919          
     2003 
    19202004        $uid = 0; 
    1921          
     2005 
    19222006        if($auto) 
    19232007        { 
     
    19772061                return $this; 
    19782062            } 
    1979              
     2063 
    19802064            if(empty($this->_request->login) || empty($this->_request->passwd)) 
    19812065            { 
     
    19902074                return $this; 
    19912075            } 
    1992              
     2076 
    19932077            $this->_user->auth($this->_request->login, md5($this->_request->login.$this->_request->passwd)); 
    19942078 
    19952079            unset($this->_request->passwd); 
    19962080        } 
    1997          
     2081 
    19982082        $uid = $this->_user->getUid(); 
    19992083 
     
    20042088            return $this; 
    20052089        } 
    2006          
     2090 
    20072091        if(!$auto) 
    20082092        { // we set the session only if it is NOT a token login 
     
    20342118        $this->_user->reset(); 
    20352119        $_SESSION = array(); 
    2036          
     2120 
    20372121        $session = session_name(); 
    20382122        $sessid = session_id(); 
     
    20452129            } 
    20462130        } 
    2047          
     2131 
    20482132        if($sessid) session_destroy(); 
    2049          
     2133 
    20502134        unset($sessid); 
    20512135        if($redirect) 
     
    20982182                case 'streams': 
    20992183                case 'streams_groups': 
    2100                     $tpl = 'news'; 
     2184                case 'news_tags': 
    21012185                    Logic::getCachedLogic($type)->delete($this->_request); 
    21022186                    if(!$this->processResponse($this->_request->getResponse())) return $this; 
     
    21082192            } 
    21092193        } 
    2110          
     2194 
    21112195        if(!isset($escape) && (!$this->_request->currentid || $this->_request->id === $this->_request->currentid)) 
    21122196        { 
    21132197            $this->_getPage('news', array('id' => 0, 'sort' => $this->_request->sort ?: '', 'dir' => $this->_request->dir ?: '')); 
    2114         }  
    2115  
    2116         return $this; 
    2117     } 
    2118      
     2198        } 
     2199 
     2200        return $this; 
     2201    } 
     2202 
    21192203    /** 
    21202204     * Adds a stream and redirects the user to the index 
     
    21282212    { 
    21292213        $this->do_editstream(); 
    2130         
     2214 
    21312215        $this->redirect(); 
    21322216        return $this; 
    21332217    } 
    2134      
     2218 
    21352219    /** 
    21362220     * Adds a stream 
     
    21532237        return $this; 
    21542238    } 
    2155      
     2239 
    21562240    /** 
    21572241     * Adds/Edits a category 
     
    21822266        return $this; 
    21832267    } 
    2184      
     2268 
    21852269    /** 
    21862270     * Adds streams from OPML input 
    2187      * If an url is passed, we'll try to get the opml remote file 
     2271     * If an url is passed, we'll try to get the remote opml file 
    21882272     * else it is an uploaded file 
    21892273     * 
     
    22932377        return $this; 
    22942378    } 
    2295      
    22962379 
    22972380    /** 
     
    22992382     * 
    23002383     * @author Pierre-Alain Mignot <contact@openwebreader.org> 
    2301      * @param boolean $display must-we render something ? 
    2302      * @param string the name of the table corresponding to the specified id, optionnal 
    2303      * @access protected 
    2304      * @return $this 
    2305      */ 
    2306     protected function do_upNew($display=true, $table='') 
     2384     * @access protected 
     2385     * @return $this 
     2386     */ 
     2387    protected function do_upNew() 
    23072388    { 
    23082389        Logic::getCachedLogic('news')->update($this->_request); 
     
    23112392        return $this; 
    23122393    } 
    2313      
    2314     /** 
    2315      * Delete all news relations between the user and a specified stream/category 
     2394 
     2395    /** 
     2396     * Delete all news relations between the user and a specified stream/category/tag 
    23162397     * 
    23172398     * @author Pierre-Alain Mignot <contact@openwebreader.org> 
     
    23262407        return $this; 
    23272408    } 
    2328      
     2409 
    23292410    /** 
    23302411     * Adds/Edits a user 
     
    23452426 
    23462427    /** 
    2347      * Renames a stream/category 
     2428     * Adds/Edits a tag 
     2429     * 
     2430     * @author Pierre-Alain Mignot <contact@openwebreader.org> 
     2431     * @access protected 
     2432     * @return $this 
     2433     */ 
     2434    protected function do_editTag() 
     2435    { 
     2436        Logic::getCachedLogic('news_tags')->edit($this->_request); 
     2437        $this->processResponse($this->_request->getResponse()); 
     2438 
     2439        return $this; 
     2440    } 
     2441 
     2442    /** 
     2443     * Adds/removes tag(s) to new(s) 
     2444     * 
     2445     * @author Pierre-Alain Mignot <contact@openwebreader.org> 
     2446     * @access protected 
     2447     * @return $this 
     2448     */ 
     2449    protected function do_editTagsRelations() 
     2450    { 
     2451        Logic::getCachedLogic('news_tags')->editRelations($this->_request); 
     2452        $this->processResponse($this->_request->getResponse()); 
     2453 
     2454        return $this; 
     2455    } 
     2456 
     2457    /** 
     2458     * Renames a stream/category/tag 
    23482459     * 
    23492460     * @author Pierre-Alain Mignot <contact@openwebreader.org> 
     
    23622473            return $this; 
    23632474        } 
    2364          
    2365         if(empty($this->_request->name)) 
    2366         { 
    2367             $this->processResponse(new LogicResponse(array( 
    2368                 'do'        => 'error', 
    2369                 'error'     => 'Missing name', 
    2370                 'status'    => Exception::E_OWR_BAD_REQUEST 
    2371             ))); 
    2372             return $this; 
    2373         } 
    23742475 
    23752476        $type = DAO::getType($this->_request->id); 
     
    23782479        { 
    23792480            case 'streams': 
    2380                 Logic::getCachedLogic('streams')->rename($this->_request); 
    2381                 if(!$this->processResponse($this->_request->getResponse())) return $this; 
    2382                 break; 
    2383              
    23842481            case 'streams_groups': 
    2385                 Logic::getCachedLogic('streams_groups')->rename($this->_request); 
     2482            case 'news_tags': 
     2483                Logic::getCachedLogic($type)->rename($this->_request); 
    23862484                if(!$this->processResponse($this->_request->getResponse())) return $this; 
    23872485                break; 
  • OWR/DAO.php

    rbd7c36 r077f3f  
    7373     */ 
    7474    protected $_uniqueFields = array(); 
    75      
     75 
    7676    /** 
    7777     * @var string the name of the field used to have a unique ID 
     
    201201 
    202202        $query = ' 
    203     SELECT '.(string) $this->_prepareSelect($select, $joins, $wheres).'  
     203    SELECT '.$this->_prepareSelect($select, $joins, $wheres).' 
    204204        FROM '.$this->_name; 
    205205 
     
    526526 
    527527        $query = ' 
    528     SELECT COUNT('.(string) $this->_prepareSelect($select, $joins, $wheres).') AS nb'.(!empty($selectAdd) ? ', '.$this->_prepareSelect($selectAdd, $joins, $wheres) : '').' 
     528    SELECT COUNT('.$this->_prepareSelect($select, $joins, $wheres).') AS nb'.(!empty($selectAdd) ? ', '.$this->_prepareSelect($selectAdd, $joins, $wheres) : '').' 
    529529        FROM '.$this->_name; 
    530530 
     
    728728                        $table = 'streams_relations'; 
    729729                        break; 
    730          
     730 
    731731                    case 'streams_groups': 
    732732                        $field = 'id'; 
    733733                        $table = $type->type; 
    734734                        break; 
    735          
     735 
    736736                    case 'news': 
    737737                        $field = 'newsid'; 
    738738                        $table = 'news_relations'; 
    739739                        break; 
    740          
     740 
     741                    case 'news_tags': 
     742                        $field = 'id'; 
     743                        $table = $type->type; 
     744                        break; 
     745 
    741746                    case 'users': 
    742747                        if(User::iGet()->isAdmin()) 
     
    747752                        throw new Exception('Invalid id', Exception::E_OWR_UNAUTHORIZED); 
    748753                        break; 
    749          
     754 
    750755                    default: 
    751756                        throw new Exception('Invalid id', Exception::E_OWR_BAD_REQUEST); 
     
    12421247 
    12431248        $DBResults = array(); 
     1249        $fetchType = (string) $fetchType; 
     1250 
    12441251        if('assoc' === $fetchType) 
    12451252        { 
     
    16001607        } 
    16011608 
    1602         return join(',', $selects); // we are done, recompoze the select string 
     1609        return (string) join(',', $selects); // we are done, recompoze the select string 
    16031610    } 
    16041611} 
  • OWR/DAO/News.php

    r48e84c r077f3f  
    120120        $this->_relations = array( 
    121121            'news_contents'         => array('id'       => 'id'), 
     122            'news_relations_tags'   => array('id'       => 'newsid'), 
    122123            'streams'               => array('rssid'    => 'id') 
    123124        ); 
  • OWR/DAO/News/Relations.php

    r48e84c r077f3f  
    8585        ); 
    8686        $this->_userRelations = array( 
    87             'streams_relations' => array('rssid'    => 'rssid') 
     87            'streams_relations'     => array('rssid'    => 'rssid'), 
     88            'news_relations_tags'   => array('newsid'   => 'newsid') 
    8889        ); 
    8990        $this->_relations = array( 
  • OWR/DAO/Objects.php

    r48e84c r077f3f  
    9494            case 'users': 
    9595            case 'streams_groups': 
     96            case 'news_tags': 
    9697                break; 
    9798 
  • OWR/Logic/News.php

    r8d0227 r077f3f  
    215215        } 
    216216 
     217        $dao = DAO::getCachedDAO('news_relations_tags'); 
     218 
    217219        if(!isset($datas['id'])) 
    218220        { 
    219221            $multiple = true; 
     222            $ids = array(); 
     223 
     224            foreach($datas as $k => $data) 
     225            { 
     226                if(!isset($request->getContents) || $request->getContents) 
     227                { 
     228                    $datas[$k]['contents'] = unserialize($data['contents']); 
     229                } 
     230 
     231                $args['newsid'] = $data['id']; 
     232                $tags = $dao->get($args, 'news_tags.name,tid'); 
     233                if($tags) 
     234                { 
     235                    $fullTags = array(); 
     236                    if(!isset($tags['name'])) 
     237                    { 
     238                        foreach($tags as $tag) 
     239                        { 
     240                            $fullTags[] = $tag['name']; 
     241                            $ids[] = $tag['tid']; 
     242                        } 
     243                    } 
     244                    else 
     245                    { 
     246                        $fullTags[] = $tags['name']; 
     247                        $ids[] = $tags['tid']; 
     248                    } 
     249 
     250                    $datas[$k]['tags'] = join(',', $fullTags); 
     251                } 
     252                else $datas[$k]['tags'] = ''; 
     253            } 
     254            $datas['ids'] = $ids; 
     255        } 
     256        else 
     257        { 
    220258            if(!isset($request->getContents) || $request->getContents) 
    221             { 
    222                 foreach($datas as $k => $data) 
    223                     $datas[$k]['contents'] = unserialize($data['contents']); 
    224             } 
    225         } 
    226         elseif(!isset($request->getContents) || $request->getContents) 
    227         { 
    228             $datas['contents'] = unserialize($datas['contents']); 
     259                $datas['contents'] = unserialize($datas['contents']); 
     260            $args['newsid'] = $datas['id']; 
     261            $tags = $dao->get($args, 'news_tags.name'); 
     262            if($tags) 
     263            { 
     264                $fullTags = array(); 
     265                if(!isset($tags['name'])) 
     266                { 
     267                    foreach($tags as $tag) 
     268                    { 
     269                        $fullTags[] = $tag['name']; 
     270                    } 
     271                } 
     272                else 
     273                { 
     274                    $fullTags[] = $tags['name']; 
     275                } 
     276 
     277                $datas['tags'] = join(',', $fullTags); 
     278            } 
     279            else $datas['tags'] = ''; 
    229280        } 
    230281 
     
    323374        JOIN news n ON (nr.newsid=n.id) 
    324375        SET status='.$status.' 
    325         WHERE uid='.User::iGet()->getUid().' AND status='.(int) !$status.'  
     376        WHERE uid='.User::iGet()->getUid().' AND status='.(int) !$status.' 
    326377        AND nr.rssid='.$request->id.' AND lastupd < '.$request->timestamp; 
    327378                } 
     
    353404        SET status='.$status.' 
    354405        WHERE nr.uid='.User::iGet()->getUid().' AND status='.(int) !$status.' AND rr.gid='.$request->id; 
     406                } 
     407            } 
     408            elseif('news_tags' === $table) 
     409            { 
     410                if($request->timestamp > 0) 
     411                { 
     412                    $query = ' 
     413    UPDATE news_relations nr 
     414        JOIN news_relations_tags nrt ON (nrt.newsid=nr.newsid) 
     415        JOIN news n ON (nr.newsid=n.id) 
     416        SET status='.$status.' 
     417        WHERE nr.uid='.User::iGet()->getUid().' AND status='.(int) !$status.'  
     418        AND nrt.tid='.$request->id.' AND lastupd < '.$request->timestamp; 
     419                } 
     420                else 
     421                { 
     422                    $query = ' 
     423    UPDATE news_relations nr 
     424        JOIN news_relations_tags nrt ON (nrt.newsid=nr.newsid) 
     425        SET status='.$status.' 
     426        WHERE nr.uid='.User::iGet()->getUid().' AND status='.(int) !$status.' AND nrt.tid='.$request->id; 
    355427                } 
    356428            } 
  • OWR/Logic/Streams.php

    r012c49 r077f3f  
    787787 
    788788                case 'streams_groups':  
    789                     $query .= ' 
    790     DELETE FROM news_relations 
    791         WHERE rssid IN  
    792             (SELECT rssid 
    793                 FROM streams_relations 
    794                 WHERE gid='.$request->id.' AND uid='.User::iGet()->getUid().') 
    795             AND uid='.User::iGet()->getUid(); 
     789                    $query = ' 
     790    DELETE FROM news_relations nr 
     791        JOIN streams_relations sr ON (nr.rssid=sr.rssid) 
     792        WHERE gid='.$request->id.' AND nr.uid='.User::iGet()->getUid().' AND sr.uid='.User::iGet()->getUid(); 
    796793 
    797794                    $this->_db->set($query); 
     795                    break; 
     796 
     797                case 'news_tags': 
     798                    DAO::getCachedDAO('news_relations_tags')->delete(array('tid' => $request->id)); 
    798799                    break; 
    799800 
     
    835836    public function rename(Request $request) 
    836837    { 
     838        if(empty($request->name)) 
     839        { 
     840            $request->setResponse(new Response(array( 
     841                'do'        => 'error', 
     842                'error'     => 'Missing name', 
     843                'status'    => Exception::E_OWR_BAD_REQUEST 
     844            ))); 
     845            return $this; 
     846        } 
     847 
    837848        $stream = DAO::getCachedDAO('streams_relations_name')->get(array('rssid'=>$request->id), 'rssid, uid'); 
    838849        if(!$stream) 
     
    10401051                        $image = new \Imagick(); 
    10411052                        $image->setFormat('ico'); 
    1042                         if($image->readImageBlob($icon)) 
     1053                        if(@$image->readImageBlob($icon)) 
    10431054                        { 
    10441055                            $image->destroy(); 
     
    11381149                                    $image = new \Imagick(); 
    11391150                                    $image->setFormat('ico'); 
    1140                                     if($image->readImageBlob($icon)) 
     1151                                    if(@$image->readImageBlob($icon)) 
    11411152                                    { 
    11421153                                        $image->destroy(); 
  • OWR/Logic/Streams/Groups.php

    r48e84c r077f3f  
    110110 
    111111    /** 
    112      * Deletes a groups and all contained streams 
     112     * Deletes a group and all contained streams 
    113113     * 
    114114     * @access public 
     
    275275    public function rename(Request $request) 
    276276    { 
     277        if(empty($this->_request->name)) 
     278        { 
     279            $request->setResponse(new Response(array( 
     280                'do'        => 'error', 
     281                'error'     => 'Missing name', 
     282                'status'    => Exception::E_OWR_BAD_REQUEST 
     283            ))); 
     284            return $this; 
     285        } 
     286 
    277287        $group = $this->_dao->get(array('id'=>$request->id), 'id, uid'); 
    278288        if(!$group) 
  • OWR/Request.php

    r877ab3 r077f3f  
    108108                        $this->ids[$k] = (int) $id; 
    109109                } 
     110                else $this->ids = (array) ( (int) $datas['ids']); 
    110111 
    111112                unset($datas['ids']); 
  • OWR/Stream/Item.php

    r22257f r077f3f  
    111111                } 
    112112            } 
    113             else 
     113            elseif(isset($this->_item['link'][0])) 
    114114            { 
    115115                $this->_item['url']['contents'] = $this->_item['link'][0]['attributes']['href']; 
     
    130130                    } 
    131131                } 
    132                 else 
     132                elseif(isset($node['contents'])) 
    133133                { 
    134134                    $this->_item['description']['contents'] = $node['contents']; 
  • OWR/locale/en_US/LC_MESSAGES/messages.po

    r877ab3 r077f3f  
    2525msgid "" 
    2626msgstr "" 
    27 "Project-Id-Version: 0.1\n" 
     27"Project-Id-Version: 0.2\n" 
    2828"Report-Msgid-Bugs-To: pierre-alain@openwebreader.org\n" 
    2929"POT-Creation-Date: 2009-03-21 17:52+0100\n" 
    30 "PO-Revision-Date: 2010-01-19 22:11+0100\n" 
     30"PO-Revision-Date: 2010-02-09 18:36+0100\n" 
    3131"Last-Translator: Pierre-Alain Mignot <pierre-alain@openwebreader.org>\n" 
    3232"Language-Team: en_US\n" 
     
    394394msgid "Block images with javascript" 
    395395msgstr "Block images with javascript" 
     396 
     397msgid "Edit tags" 
     398msgstr "Add/remove tag(s)" 
     399 
     400msgid "Delete new" 
     401msgstr "Delete the new" 
     402 
     403msgid "Mark all the news of this tag as read" 
     404msgstr "Mark all the news of this tag as read" 
     405 
     406msgid "Show the news for this tag" 
     407msgstr "Show the news for this tag" 
     408 
     409msgid "Delete this tag (but not the contained news)" 
     410msgstr "Delete this tag (but not the contained news)" 
     411 
     412msgid "Rename this tag" 
     413msgstr "Rename this tag" 
     414 
     415msgid "Delete all the news from this tag" 
     416msgstr "Remove all the news from this tag" 
  • OWR/locale/fr_FR/LC_MESSAGES/messages.po

    r877ab3 r077f3f  
    2525msgid "" 
    2626msgstr "" 
    27 "Project-Id-Version: 0.1\n" 
     27"Project-Id-Version: 0.2\n" 
    2828"Report-Msgid-Bugs-To: pierre-alain@openwebreader.org\n" 
    2929"POT-Creation-Date: 2009-03-21 17:52+0100\n" 
    30 "PO-Revision-Date: 2010-01-19 22:12+0100\n" 
     30"PO-Revision-Date: 2010-02-09 18:56+0100\n" 
    3131"Last-Translator: Pierre-Alain Mignot <pierre-alain@openwebreader.org>\n" 
    3232"Language-Team: fr_FR\n" 
     
    394394msgid "Block images with javascript" 
    395395msgstr "Bloquer les images à l'aide de javascript" 
     396 
     397msgid "Edit tags" 
     398msgstr "Ajouter/supprimer un ou plusieurs tags" 
     399 
     400msgid "Delete new" 
     401msgstr "Supprimer la nouvelle" 
     402 
     403msgid "Mark all the news of this tag as read" 
     404msgstr "Marquer toutes les nouvelles de ce tag comme lues" 
     405 
     406msgid "Show the news for this tag" 
     407msgstr "Afficher les nouvelles de ce tag" 
     408 
     409msgid "Delete this tag (but not the contained news)" 
     410msgstr "Supprimer ce tag (mais pas les nouvelles contenues)" 
     411 
     412msgid "Rename this tag" 
     413msgstr "Renommer ce tag" 
     414 
     415msgid "Delete all the news from this tag" 
     416msgstr "Enlever toutes les nouvelles de ce tag" 
  • OWR/tpl/new_title.html

    r8d0227 r077f3f  
    22                    <div class="new_title"> 
    33                        <span class="verysmall"><?php echo $title;?></span> 
    4                         <a href="<?php echo htmlentities($link, ENT_COMPAT, 'UTF-8');?>" onclick="window.open('<?php echo htmlentities($link, ENT_COMPAT, 'UTF-8');?>');rP.clearNew(this);" class="link_go right backgrounded opac" title="<?php echo htmlentities($title, ENT_COMPAT, 'UTF-8').' ('.$this->_utilities->_('See online').')';?>"></a> 
     4                        <a href="javascript:;" onclick="rP.deleteNew(<?php echo $id;?>);" class="delete right backgrounded opac" title="<?php echo $this->_utilities->_('Delete new');?>"></a> 
     5                        <input type="text" class="hidden right new_tags" id="edit_tags_<?php echo $id;?>" onchange="rP.inputEditTags(this, <?php echo $id;?>);" value="<?php echo htmlspecialchars($tags, ENT_COMPAT, 'UTF-8', false);?>"/> 
     6                        <a href="javascript:;" onclick="rP.editTags(<?php echo $id;?>);" class="new_tag right backgrounded opac" title="<?php echo $this->_utilities->_('Edit tags');?>"></a> 
    57                        <a href="javascript:;" onclick="rP.updateNews(<?php echo $id;?>, true);" class="new_status right backgrounded opac" title="<?php echo $this->_utilities->_('Toggle new status');?>"></a> 
     8                        <a href="<?php echo htmlentities($link, ENT_COMPAT, 'UTF-8');?>" onclick="window.open('<?php echo htmlentities($link, ENT_COMPAT, 'UTF-8');?>');" class="link_go right backgrounded opac" title="<?php echo htmlentities($title, ENT_COMPAT, 'UTF-8').' ('.$this->_utilities->_('See online').')';?>"></a> 
     9 
    610<?php           if($status) { 
    711                    echo '<a href="javascript:;" id="imgnew_'.$id.'" class="new right backgrounded"></a>'; 
  • css/owr.css.php

    r1eaf69 r077f3f  
    4848} 
    4949?> 
    50 body{background-color:#EBEBEB;padding:0;margin:0;font-family:sans-serif;font-size:90%;}img{border:0;}a{color:black;text-decoration:none;}select{font-size:smaller;margin:0 0 5px 0;padding:0;}input{font-size:smaller;margin:0 0 5px 0;}table, fieldset, legend{border:none;}legend {font-weight:bold;}table caption{font-weight:bold;text-decoration:underline;}table tr, table td, table th{border:1px solid #F5F5F5;}.error_warning{font-size:60%;color:black;font-weight:bold;}.error{color:red;}.hidden{display:none;}.small{font-size:small;}.verysmall{font-size:smaller;}.bigger{font-size:larger;}.left{float:left;}.right{float:right;}.bold{font-weight:bold;}.opac{opacity:0.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;-webkit-opacity:0.4;}.opac:hover{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;-webkit-opacity:1;}.full_rounded{border-radius:10px 10px 10px 10px; -moz-border-radius:10px 10px 10px 10px;-webkit-border-radius:10px 10px 10px 10px;-khtml-border-radius:10px 10px 10px 10px;-o-border-radius:10px 10px 10px 10px; }.bottom_rounded{border-radius:0 0 10px 10px; -moz-border-radius:0 0 10px 10px;-webkit-border-radius:0 0 10px 10px;-khtml-border-radius:0 0 10px 10px;-o-border-radius:0 0 10px 10px; }.shadow{box-shadow:3px 5px 5px gray;-moz-box-shadow:3px 5px 5px gray;-webkit-box-shadow:3px 5px 5px gray;-khtml-box-shadow:3px 5px 5px gray;-o-box-shadow:3px 5px 5px gray; }.backgrounded{background-repeat:no-repeat;background-image:url(../images/images.php?f=icons.png);width:16px;height:16px;display:block;}.noborder{border:none;}.underlined{text-decoration:underline;}div#menu{width:25%;overflow:auto;position:fixed;padding:0;margin:0;background-color:#EBEBEB;top:75px;bottom:0;}ul#logs{list-style-type:none;padding:0;margin:0;font-size:80%;}div#logs_container{height:100%;overflow:auto;padding:0;margin:0 86px 0 0;padding:0;color:white;}ul#logs li{padding:0 8px 0 8px;}div#contents{width:75%;margin:80px 0 0 0;padding:0;height:100%;background-color:#EBEBEB;}a#menu_toggler{background-position:0px 0px;background-color:#EBEBEB;width:16px;height:16px;cursor:pointer;border:1px solid #BBBBBB;margin:0 0 0 15px;padding:0;position:fixed;z-index:1;}a#board_toggler{background-position:-692px 0px;background-color:#EBEBEB;width:16px;height:16px;cursor:pointer;border:1px solid #BBBBBB;margin:0 0 0 40px;padding:0;position:fixed;z-index:1;}div#body_container{margin:30px 0 0 0;padding:0;}div#board{width:100%;display:block;position:fixed;background-color:black;height:70px;max-height:70px;padding:0;border:0;z-index:1;}ul.menu_container{list-style-type:none;margin:0;padding:0;}ul.menu_container li{border:1px solid #BBBBBB;border-radius:10px 10px 10px 10px; -moz-border-radius:10px 10px 10px 10px;-webkit-border-radius:10px 10px 10px 10px;-khtml-border-radius:10px 10px 10px 10px;-o-border-radius:10px 10px 10px 10px; margin:3px;}ul.menu_container li.noborder{border:none;}ul.menu_groups li:hover{background-color:#DDDDDD;}ul.menu_actions, ul.menu_streams{list-style-type:none;padding:5px;}ul.menu_actions li{padding:0 0 0 5px;font-size:80%;line-height:25px;}ul.menu_streams li{font-size:80%;margin-bottom:0;}ul.menu_actions li:hover{background-color:#DDDDDD;}img.favicon_stream, a.favicon_stream{margin:0 3px 0 0;}div.links, img.links{display:inline;}div.links, div.menu_actions_toggler, img.links{cursor:pointer;}ul.stream_more{display:none;list-style-type:none;padding-left:0;}ul.menu_groups{display:none;list-style-type:none;padding-left:0;padding-bottom:16px;}ul.menu_groups li {font-size:100%;padding:5px;cursor:move;}ul.menu_streams li.groups{padding:5px;margin:3px;}div.article{margin-top:5px;margin-bottom:3px;padding:2px;border:1px solid #999;}div.article_title{padding:5px;margin:10px 16px 0 16px;cursor:pointer;border:1px solid #666666;background-color:#BBBBBB;opacity:0.7;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;-webkit-opacity:0.7;}div.article_title:hover{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;-webkit-opacity:1;}div.article_contents{border:1px solid #BBBBBB;padding:5px;margin:0 16px 0 16px;font-size:90%;background-color:#DDDDDD;}div.news_spacer{margin:16px;}div.new_container_nread{font-weight:bold;}div.new_container_read{font-weight:normal;}h5.article_link{padding:3px;margin:0;}img.article_image{margin:5px 13px 3px 3px;}div#sprites_0{margin:0;}div.spacer{clear:both;}.new{background-position:-285px 0px;margin:0 10px 0 0;}.link_go{background-position:-232px 0px;margin:2px 5px 0 5px;}.current, .current_stream{background-position:-20px 0px;}.clear{margin-top:2px;background-position:-120px 0px;}div#board a.clear{margin:16px 8px 16px 8px;background-position:-120px 0px;}.gstream_toggler, .stream_toggler{margin:2px 2px 0 1px;background-position:-302px 0px;}.delete{margin-top:2px;background-position:-140px 0px;}.logout{background-position:-251px 0px;margin:16px 8px 16px 8px;}.lang_fr{background-position:-196px 0px;margin:16px 8px 16px 8px;}.lang_us{background-position:-214px 0px;margin:16px 8px 16px 8px;}.rename{margin-top:2px;background-position:-100px 0px;}.editurl{background-position:-480px 0px;margin-top:2px;}.read{margin-top:2px;background-position:-40px 0px;}.read_page{margin:0 30px 0 30px;background-position:-40px 0px;}.refresh{margin-top:2px;background-position:-60px 0px;}.refresh_category{margin-top:2px;padding:0;background-position:-268px 0px;}.move{margin-top:2px;background-position:-80px 0px;}.img_blocked{background-position:-176px 0px;display:inline;}div.article_description{padding:0 8px 0 8px;font-size:60%;font-weight:normal;margin:0 0 0 18px;}div.article_content{padding:16px 16px 32px 16px;}div.article_content a{text-decoration:underline;}div.article_content a.img_blocked{text-decoration:none;}p.stream_description{font-size:90%;padding-bottom:16px;padding-top:0;padding-right:3px;line-height:15px;}div#loginbox, div#edituser{font-size:80%;width:280px;margin:10% 0% 0 40%;padding:5px;background-color:#BBBBBB;border:none;}div#loginbox fieldset, div#loginOpenID fieldset, div#edituser fieldset{border:none;}div#loginbox legend, div#loginOpenID legend, div#edituser legend{font-size:120%;text-shadow:1px 1px 0 gray;border-bottom:1px solid gray;}div#edituser{width:310px;}table.users{width:85%;text-align:right;font-size:90%;}table.users thead{height:30px;}table.users th{text-align:center;background-color:#BBBBBB;border:1px solid #BBBBBB;}table.users th.empty{background-color:#EBEBEB;border:none;}table.users td{height:35px;padding:5px;border:1px solid #BBBBBB;}table.users td.actions:hover{background-color:#BBBBBB;}table.users caption{margin:0 0 25px 0;font-size:medium;}div.users{margin:16px;}a.current.hidden, a.current_stream.hidden{display:none;}input.openid{background-image:url(../images/images.php?f=icons.png);background-position:-710px 0px;background-repeat:no-repeat;width:180px;padding-left:20px;}.icon_unavailable_feed{background-position:-425px 0px;width:18px;}.icon_opml{background-position:-371px 0px;margin:4px 10px 0 0;}.icon_category{background-position:-408px 0px;margin:0 5px 0 0;}.icon_add_category{background-position:-462px 0px;margin:4px 10px 0 0;}.search{background-position:-516px 0px;margin:2px 0 0 0;}.icon_search{background-position:-516px 0px;margin:4px 10px 0 0;}.icon_edit_user{background-position:-570px 0px;margin:4px 10px 0 0;}.icon_maintenance{background-position:-498px 0px;margin:4px 10px 0 0;}.icon_add_user{background-position:-533px 0px;margin:4px 10px 0 0;}.icon_list_user{background-position:-624px 0px;margin:4px 10px 0 0;}.icon_cache_delete{background-position:-444px 0px;margin:4px 10px 0 0;}.icon_link_rss{background-position:-480px 0px;margin:4px 10px 0 0;}.icon_rss{background-position:-390px 0px;margin:4px 10px 0 0;}.new_status{background-position:-659px 0px;margin:2px 5px 0 0;}li.menu_part_title{padding:5px;font-weight:bold;text-shadow:1px 1px 0 gray;font-size:130%;cursor:pointer;}img.favicon, a.favicon{margin:-12px 8px 0 -20px;}a.no_favicon{background-position:-642px 0px;}div.pager{margin:0 16px 5px 0;}.pager_right{background-position:-341px 0px;}.pager_left{background-position:-355px 0px;}img.logo{margin:-60px 17px 0 0;}div#loginbox img.logo{margin:0;}.icon_user_edit{background-position:-570px 0px;}.icon_user_delete{background-position:-551px 0px;}.icon_rights_user{background-position:-606px 0px;}.icon_rights_administrator{background-position:-589px 0px;}div.article_full_details{margin:10px 0 0 0;display:none;background-color:#EBEBEB;border:1px solid #BBBBBB;}ul.stream_details{padding:0;margin:0;}ul.stream_details li{list-style-type:none;}a.stream_details{text-decoration:none;}ul.new_details{margin:0;padding:10px;list-style-type:none;}div.apis{padding:10px;}div.news_ordering{margin:25px 0 20px 0;font-size:small;text-align:center;}div.new_title{margin:0 6px 0 30px;} 
     50body{background-color:#EBEBEB;padding:0;margin:0;font-family:sans-serif;font-size:90%;}img{border:0;}a{color:black;text-decoration:none;}select{font-size:smaller;margin:0 0 5px 0;padding:0;}input{font-size:smaller;margin:0 0 5px 0;}table, fieldset, legend{border:none;}legend {font-weight:bold;}table caption{font-weight:bold;text-decoration:underline;}table tr, table td, table th{border:1px solid #F5F5F5;}.error_warning{font-size:60%;color:black;font-weight:bold;}.error{color:red;}.hidden{display:none;}.small{font-size:small;}.verysmall{font-size:smaller;}.bigger{font-size:larger;}.left{float:left;}.right{float:right;}.bold{font-weight:bold;}.opac{opacity:0.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:0.4;-khtml-opacity:0.4;-webkit-opacity:0.4;}.opac:hover{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;-webkit-opacity:1;}.full_rounded{border-radius:10px 10px 10px 10px; -moz-border-radius:10px 10px 10px 10px;-webkit-border-radius:10px 10px 10px 10px;-khtml-border-radius:10px 10px 10px 10px;-o-border-radius:10px 10px 10px 10px; }.bottom_rounded{border-radius:0 0 10px 10px; -moz-border-radius:0 0 10px 10px;-webkit-border-radius:0 0 10px 10px;-khtml-border-radius:0 0 10px 10px;-o-border-radius:0 0 10px 10px; }.shadow{box-shadow:3px 5px 5px gray;-moz-box-shadow:3px 5px 5px gray;-webkit-box-shadow:3px 5px 5px gray;-khtml-box-shadow:3px 5px 5px gray;-o-box-shadow:3px 5px 5px gray; }.backgrounded{background-repeat:no-repeat;background-image:url(../images/images.php?f=icons.png);width:16px;height:16px;display:block;}.noborder{border:none;}.underlined{text-decoration:underline;}div#menu{width:25%;overflow:auto;position:fixed;padding:0;margin:0;background-color:#EBEBEB;top:75px;bottom:0;}ul#logs{list-style-type:none;padding:0;margin:0;font-size:80%;}div#logs_container{height:100%;overflow:auto;padding:0;margin:0 86px 0 0;padding:0;color:white;}ul#logs li{padding:0 8px 0 8px;}div#contents{width:75%;margin:80px 0 0 0;padding:0;height:100%;background-color:#EBEBEB;}a#menu_toggler{background-position:0px 0px;background-color:#EBEBEB;width:16px;height:16px;cursor:pointer;border:1px solid #BBBBBB;margin:0 0 0 15px;padding:0;position:fixed;z-index:1;}a#board_toggler{background-position:-692px 0px;background-color:#EBEBEB;width:16px;height:16px;cursor:pointer;border:1px solid #BBBBBB;margin:0 0 0 40px;padding:0;position:fixed;z-index:1;}div#body_container{margin:30px 0 0 0;padding:0;}div#board{width:100%;display:block;position:fixed;background-color:black;height:70px;max-height:70px;padding:0;border:0;z-index:1;}ul.menu_container{list-style-type:none;margin:0;padding:0;}ul.menu_container li{border:1px solid #BBBBBB;border-radius:10px 10px 10px 10px; -moz-border-radius:10px 10px 10px 10px;-webkit-border-radius:10px 10px 10px 10px;-khtml-border-radius:10px 10px 10px 10px;-o-border-radius:10px 10px 10px 10px; margin:3px;}ul.menu_container li.noborder{border:none;}ul.menu_groups li:hover{background-color:#DDDDDD;}ul.menu_actions, ul.menu_streams{list-style-type:none;padding:5px;}ul.menu_actions li{padding:0 0 0 5px;font-size:80%;line-height:25px;}ul.menu_streams li{font-size:80%;margin-bottom:0;}ul.menu_actions li:hover{background-color:#DDDDDD;}img.favicon_stream, a.favicon_stream{margin:0 3px 0 0;}div.links, img.links{display:inline;}div.links, div.menu_actions_toggler, img.links{cursor:pointer;}ul.stream_more{display:none;list-style-type:none;padding-left:0;}ul.menu_groups{display:none;list-style-type:none;padding-left:0;padding-bottom:16px;}ul.menu_groups li {font-size:100%;padding:5px;cursor:move;}ul.menu_streams li.groups{padding:5px;margin:3px;}div.article{margin-top:5px;margin-bottom:3px;padding:2px;border:1px solid #999;}div.article_title{padding:5px;margin:10px 16px 0 16px;cursor:pointer;border:1px solid #666666;background-color:#BBBBBB;opacity:0.7;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70);-moz-opacity:0.7;-khtml-opacity:0.7;-webkit-opacity:0.7;}div.article_title:hover{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;-webkit-opacity:1;}div.article_contents{border:1px solid #BBBBBB;padding:5px;margin:0 16px 0 16px;font-size:90%;background-color:#DDDDDD;}div.news_spacer{margin:16px;}div.new_container_nread{font-weight:bold;}div.new_container_read{font-weight:normal;}h5.article_link{padding:3px;margin:0;}img.article_image{margin:5px 13px 3px 3px;}div#sprites_0{margin:0;}div.spacer{clear:both;}.new{background-position:-285px 0px;margin:0 10px 0 0;}.link_go{background-position:-232px 0px;margin:2px 5px 0 5px;}.current, .current_stream{background-position:-20px 0px;}.clear{margin-top:2px;background-position:-120px 0px;}div#board a.clear{margin:16px 8px 16px 8px;background-position:-120px 0px;}.gstream_toggler, .stream_toggler{margin:2px 2px 0 1px;background-position:-302px 0px;}.delete{margin-top:2px;background-position:-140px 0px;}.logout{background-position:-251px 0px;margin:16px 8px 16px 8px;}.lang_fr{background-position:-196px 0px;margin:16px 8px 16px 8px;}.lang_us{background-position:-214px 0px;margin:16px 8px 16px 8px;}.rename{margin-top:2px;background-position:-100px 0px;}.editurl{background-position:-480px 0px;margin-top:2px;}.read{margin-top:2px;background-position:-40px 0px;}.read_page{margin:0 30px 0 30px;background-position:-40px 0px;}.refresh{margin-top:2px;background-position:-60px 0px;}.refresh_category{margin-top:2px;padding:0;background-position:-268px 0px;}.move{margin-top:2px;background-position:-80px 0px;}.img_blocked{background-position:-176px 0px;display:inline;}div.article_description{padding:0 8px 0 8px;font-size:60%;font-weight:normal;margin:0 0 0 18px;}div.article_content{padding:16px 16px 32px 16px;}div.article_content a{text-decoration:underline;}div.article_content a.img_blocked{text-decoration:none;}p.stream_description{font-size:90%;padding-bottom:16px;padding-top:0;padding-right:3px;line-height:15px;}div#loginbox, div#edituser{font-size:80%;width:280px;margin:10% 0% 0 40%;padding:5px;background-color:#BBBBBB;border:none;}div#loginbox fieldset, div#loginOpenID fieldset, div#edituser fieldset{border:none;}div#loginbox legend, div#loginOpenID legend, div#edituser legend{font-size:120%;text-shadow:1px 1px 0 gray;border-bottom:1px solid gray;}div#edituser{width:310px;}table.users{width:85%;text-align:right;font-size:90%;}table.users thead{height:30px;}table.users th{text-align:center;background-color:#BBBBBB;border:1px solid #BBBBBB;}table.users th.empty{background-color:#EBEBEB;border:none;}table.users td{height:35px;padding:5px;border:1px solid #BBBBBB;}table.users td.actions:hover{background-color:#BBBBBB;}table.users caption{margin:0 0 25px 0;font-size:medium;}div.users{margin:16px;}a.current.hidden, a.current_stream.hidden{display:none;}input.openid{background-image:url(../images/images.php?f=icons.png);background-position:-728px 0px;background-repeat:no-repeat;width:180px;padding-left:20px;}.icon_unavailable_feed{background-position:-425px 0px;width:18px;}.icon_opml{background-position:-371px 0px;margin:4px 10px 0 0;}.icon_category{background-position:-408px 0px;margin:0 5px 0 0;}.icon_add_category{background-position:-462px 0px;margin:4px 10px 0 0;}.search{background-position:-516px 0px;margin:2px 0 0 0;}.icon_search{background-position:-516px 0px;margin:4px 10px 0 0;}.icon_edit_user{background-position:-570px 0px;margin:4px 10px 0 0;}.icon_maintenance{background-position:-498px 0px;margin:4px 10px 0 0;}.icon_add_user{background-position:-533px 0px;margin:4px 10px 0 0;}.icon_list_user{background-position:-624px 0px;margin:4px 10px 0 0;}.icon_cache_delete{background-position:-444px 0px;margin:4px 10px 0 0;}.icon_link_rss{background-position:-480px 0px;margin:4px 10px 0 0;}.icon_rss{background-position:-390px 0px;margin:4px 10px 0 0;}.new_status{background-position:-659px 0px;margin:2px 5px 0 0;}.new_tag{background-position:-709px 0px;margin:2px 5px 0 0;}li.menu_part_title{padding:5px;font-weight:bold;text-shadow:1px 1px 0 gray;font-size:130%;cursor:pointer;}img.favicon, a.favicon{margin:-12px 8px 0 -20px;}a.no_favicon{background-position:-642px 0px;}div.pager{margin:0 16px 5px 0;}.pager_right{background-position:-341px 0px;}.pager_left{background-position:-355px 0px;}img.logo{margin:-60px 17px 0 0;}div#loginbox img.logo{margin:0;}.icon_user_edit{background-position:-570px 0px;}.icon_user_delete{background-position:-551px 0px;}.icon_rights_user{background-position:-606px 0px;}.icon_rights_administrator{background-position:-589px 0px;}div.article_full_details{margin:10px 0 0 0;display:none;background-color:#EBEBEB;border:1px solid #BBBBBB;}ul.stream_details{padding:0;margin:0;}ul.stream_details li{list-style-type:none;}a.stream_details{text-decoration:none;}ul.new_details{margin:0;padding:10px;list-style-type:none;}div.apis{padding:10px;}div.news_ordering{margin:25px 0 20px 0;font-size:small;text-align:center;}div.new_title{margin:0 6px 0 30px;} 
    5151<?php  
    5252switch($encoding) 
  • css/owr_nominify.css

    r1eaf69 r077f3f  
    655655{ 
    656656    background-image:url(../images/images.php?f=icons.png); 
    657     background-position:-710px 0px; 
     657    background-position:-728px 0px; 
    658658    background-repeat:no-repeat; 
    659659    width:180px; 
     
    742742{ 
    743743    background-position:-659px 0px; 
     744    margin:2px 5px 0 0; 
     745} 
     746 
     747.new_tag 
     748{ 
     749    background-position:-709px 0px; 
    744750    margin:2px 5px 0 0; 
    745751} 
  • install/cfg-dist.php

    rf7f462 r077f3f  
    166166 
    167167// version 
    168 $cfg['version']                 = '0.1a2'; 
     168$cfg['version']                 = '0.2'; 
    169169 
    170170// activate debug mode here 
  • install/init_db.sql

    r877ab3 r077f3f  
    1 -- MySQL dump 10.11 
    2 -- 
    31/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 
    42/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 
     
    7775 
    7876-- 
     77-- Table structure for table `news_relations_tags` 
     78-- 
     79 
     80DROP TABLE IF EXISTS `news_relations_tags`; 
     81SET @saved_cs_client     = @@character_set_client; 
     82SET character_set_client = utf8; 
     83CREATE TABLE `news_relations_tags` ( 
     84  `newsid` int(11) NOT NULL, 
     85  `uid` int(11) NOT NULL, 
     86  `tid` int(11) NOT NULL, 
     87  UNIQUE KEY `uniq_key` (`newsid`,`tid`), 
     88  KEY `uid` (`uid`), 
     89  KEY `tid` (`tid`), 
     90  CONSTRAINT `news_relations_tags_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `users` (`id`) ON DELETE CASCADE, 
     91  CONSTRAINT `news_relations_tags_ibfk_2` FOREIGN KEY (`newsid`) REFERENCES `news` (`id`) ON DELETE CASCADE, 
     92  CONSTRAINT `news_relations_tags_ibfk_3` FOREIGN KEY (`tid`) REFERENCES `news_tags` (`id`) ON DELETE CASCADE 
     93) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     94SET character_set_client = @saved_cs_client; 
     95 
     96-- 
     97-- Table structure for table `news_tags` 
     98-- 
     99 
     100DROP TABLE IF EXISTS `news_tags`; 
     101SET @saved_cs_client     = @@character_set_client; 
     102SET character_set_client = utf8; 
     103CREATE TABLE `news_tags` ( 
     104  `id` int(11) NOT NULL, 
     105  `uid` int(11) NOT NULL, 
     106  `name` varchar(255) NOT NULL, 
     107  UNIQUE KEY `uniq_key` (`uid`,`name`), 
     108  KEY `uid` (`uid`), 
     109  KEY `id` (`id`), 
     110  CONSTRAINT `news_tags_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `users` (`id`) ON DELETE CASCADE, 
     111  CONSTRAINT `news_tags_ibfk_2` FOREIGN KEY (`id`) REFERENCES `objects` (`id`) ON DELETE CASCADE 
     112) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     113SET character_set_client = @saved_cs_client; 
     114 
     115-- 
    79116-- Table structure for table `objects` 
    80117-- 
     
    260297/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 
    261298/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; 
     299 
     300-- Dump completed on 2010-02-09 17:56:00 
  • js/owr.js.php

    r2b8af2 r077f3f  
    4646} 
    4747?> 
    48 var MooTools={version:"1.2.2",build:"f0491d62fbb7e906789aa3733d6a67d43e5af7c9"};var Native=function(k){k=k||{};var a=k.name;var i=k.legacy;var b=k.protect;var c=k.implement;var h=k.generics;var f=k.initialize;var g=k.afterImplement||function(){};var d=f||i;h=h!==false;d.constructor=Native;d.$family={name:"native"};if(i&&f){d.prototype=i.prototype}d.prototype.constructor=d;if(a){var e=a.toLowerCase();d.prototype.$family={name:e};Native.typize(d,e)}var j=function(n,l,o,m){if(!b||m||!n.prototype[l]){n.prototype[l]=o}if(h){Native.genericize(n,l,b)}g.call(n,l,o);return n};d.alias=function(n,l,o){if(typeof n=="string"){if((n=this.prototype[n])){return j(this,l,n,o)}}for(var m in n){this.alias(m,n[m],l)}return this};d.implement=function(m,l,o){if(typeof m=="string"){return j(this,m,l,o)}for(var n in m){j(this,n,m[n],l)}return this};if(c){d.implement(c)}return d};Native.genericize=function(b,c,a){if((!a||!b[c])&&typeof b.prototype[c]=="function"){b[c]=function(){var d=Array.prototype.slice.call(arguments);return b.prototype[c].apply(d.shift(),d)}}};Native.implement=function(d,c){for(var b=0,a=d.length;b<a;b++){d[b].implement(c)}};Native.typize=function(a,b){if(!a.type){a.type=function(c){return($type(c)===b)}}};(function(){var a={Array:Array,Date:Date,Function:Function,Number:Number,RegExp:RegExp,String:String};for(var h in a){new Native({name:h,initialize:a[h],protect:true})}var d={"boolean":Boolean,"native":Native,object:Object};for(var c in d){Native.typize(d[c],c)}var f={Array:["concat","indexOf","join","lastIndexOf","pop","push","reverse","shift","slice","sort","splice","toString","unshift","valueOf"],String:["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]};for(var e in f){for(var b=f[e].length;b--;){Native.genericize(window[e],f[e][b],true)}}})();var Hash=new Native({name:"Hash",initialize:function(a){if($type(a)=="hash"){a=$unlink(a.getClean())}for(var b in a){this[b]=a[b]}return this}});Hash.implement({forEach:function(b,c){for(var a in this){if(this.hasOwnProperty(a)){b.call(c,this[a],a,this)}}},getClean:function(){var b={};for(var a in this){if(this.hasOwnProperty(a)){b[a]=this[a]}}return b},getLength:function(){var b=0;for(var a in this){if(this.hasOwnProperty(a)){b++}}return b}});Hash.alias("forEach","each");Array.implement({forEach:function(c,d){for(var b=0,a=this.length;b<a;b++){c.call(d,this[b],b,this)}}});Array.alias("forEach","each");function $A(b){if(b.item){var a=b.length,c=new Array(a);while(a--){c[a]=b[a]}return c}return Array.prototype.slice.call(b)}function $arguments(a){return function(){return arguments[a]}}function $chk(a){return!!(a||a===0)}function $clear(a){clearTimeout(a);clearInterval(a);return null}function $defined(a){return(a!=undefined)}function $each(c,b,d){var a=$type(c);((a=="arguments"||a=="collection"||a=="array")?Array:Hash).each(c,b,d)}function $empty(){}function $extend(c,a){for(var b in(a||{})){c[b]=a[b]}return c}function $H(a){return new Hash(a)}function $lambda(a){return(typeof a=="function")?a:function(){return a}}function $merge(){var a=Array.slice(arguments);a.unshift({});return $mixin.apply(null,a)}function $mixin(e){for(var d=1,a=arguments.length;d<a;d++){var b=arguments[d];if($type(b)!="object"){continue}for(var c in b){var g=b[c],f=e[c];e[c]=(f&&$type(g)=="object"&&$type(f)=="object")?$mixin(f,g):$unlink(g)}}return e}function $pick(){for(var b=0,a=arguments.length;b<a;b++){if(arguments[b]!=undefined){return arguments[b]}}return null}function $random(b,a){return Math.floor(Math.random()*(a-b+1)+b)}function $splat(b){var a=$type(b);return(a)?((a!="array"&&a!="arguments")?[b]:b):[]}var $time=Date.now||function(){return+new Date};function $try(){for(var b=0,a=arguments.length;b<a;b++){try{return arguments[b]()}catch(c){}}return null}function $type(a){if(a==undefined){return false}if(a.$family){return(a.$family.name=="number"&&!isFinite(a))?false:a.$family.name}if(a.nodeName){switch(a.nodeType){case 1:return"element";case 3:return(/\S/).test(a.nodeValue)?"textnode":"whitespace"}}else{if(typeof a.length=="number"){if(a.callee){return"arguments"}else{if(a.item){return"collection"}}}}return typeof a}function $unlink(c){var b;switch($type(c)){case"object":b={};for(var e in c){b[e]=$unlink(c[e])}break;case"hash":b=new Hash(c);break;case"array":b=[];for(var d=0,a=c.length;d<a;d++){b[d]=$unlink(c[d])}break;default:return c}return b}var Browser=$merge({Engine:{name:"unknown",version:0},Platform:{name:(window.orientation!=undefined)?"ipod":(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.querySelector)},Plugins:{},Engines:{presto:function(){return(!window.opera)?false:((arguments.callee.caller)?960:((document.getElementsByClassName)?950:925))},trident:function(){return(!window.ActiveXObject)?false:((window.XMLHttpRequest)?5:4)},webkit:function(){return(navigator.taintEnabled)?false:((Browser.Features.xpath)?((Browser.Features.query)?525:420):419)},gecko:function(){return(document.getBoxObjectFor==undefined)?false:((document.getElementsByClassName)?19:18)}}},Browser||{});Browser.Platform[Browser.Platform.name]=true;Browser.detect=function(){for(var b in this.Engines){var a=this.Engines[b]();if(a){this.Engine={name:b,version:a};this.Engine[b]=this.Engine[b+a]=true;break}}return{name:b,version:a}};Browser.detect();Browser.Request=function(){return $try(function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP")})};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var a=($try(function(){return navigator.plugins["Shockwave Flash"].description},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")})||"0 r0").match(/\d+/g);return{version:parseInt(a[0]||0+"."+a[1],10)||0,build:parseInt(a[2],10)||0}})();function $exec(b){if(!b){return b}if(window.execScript){window.execScript(b)}else{var a=document.createElement("script");a.setAttribute("type","text/javascript");a[(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerText":"text"]=b;document.head.appendChild(a);document.head.removeChild(a)}return b}Native.UID=1;var $uid=(Browser.Engine.trident)?function(a){return(a.uid||(a.uid=[Native.UID++]))[0]}:function(a){return a.uid||(a.uid=Native.UID++)};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(a){$uid(a);if(!a.Element){a.Element=$empty;if(Browser.Engine.webkit){a.document.createElement("iframe")}a.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{}}a.document.window=a;return $extend(a,Window.Prototype)},afterImplement:function(b,a){window[b]=Window.Prototype[b]=a}});Window.Prototype={$family:{name:"window"}};new Window(window);var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(a){$uid(a);a.head=a.getElementsByTagName("head")[0];a.html=a.getElementsByTagName("html")[0];if(Browser.Engine.trident&&Browser.Engine.version<=4){$try(function(){a.execCommand("BackgroundImageCache",false,true)})}if(Browser.Engine.trident){a.window.attachEvent("onunload",function(){a.window.detachEvent("onunload",arguments.callee);a.head=a.html=a.window=null})}return $extend(a,Document.Prototype)},afterImplement:function(b,a){document[b]=Document.Prototype[b]=a}});Document.Prototype={$family:{name:"document"}};new Document(document);Array.implement({every:function(c,d){for(var b=0,a=this.length;b<a;b++){if(!c.call(d,this[b],b,this)){return false}}return true},filter:function(d,e){var c=[];for(var b=0,a=this.length;b<a;b++){if(d.call(e,this[b],b,this)){c.push(this[b])}}return c},clean:function(){return this.filter($defined)},indexOf:function(c,d){var a=this.length;for(var b=(d<0)?Math.max(0,a+d):d||0;b<a;b++){if(this[b]===c){return b}}return-1},map:function(d,e){var c=[];for(var b=0,a=this.length;b<a;b++){c[b]=d.call(e,this[b],b,this)}return c},some:function(c,d){for(var b=0,a=this.length;b<a;b++){if(c.call(d,this[b],b,this)){return true}}return false},associate:function(c){var d={},b=Math.min(this.length,c.length);for(var a=0;a<b;a++){d[c[a]]=this[a]}return d},link:function(c){var a={};for(var e=0,b=this.length;e<b;e++){for(var d in c){if(c[d](this[e])){a[d]=this[e];delete c[d];break}}}return a},contains:function(a,b){return this.indexOf(a,b)!=-1},extend:function(c){for(var b=0,a=c.length;b<a;b++){this.push(c[b])}return this},getLast:function(){return(this.length)?this[this.length-1]:null},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null},include:function(a){if(!this.contains(a)){this.push(a)}return this},combine:function(c){for(var b=0,a=c.length;b<a;b++){this.include(c[b])}return this},erase:function(b){for(var a=this.length;a--;a){if(this[a]===b){this.splice(a,1)}}return this},empty:function(){this.length=0;return this},flatten:function(){var d=[];for(var b=0,a=this.length;b<a;b++){var c=$type(this[b]);if(!c){continue}d=d.concat((c=="array"||c=="collection"||c=="arguments")?Array.flatten(this[b]):this[b])}return d},hexToRgb:function(b){if(this.length!=3){return null}var a=this.map(function(c){if(c.length==1){c+=c}return c.toInt(16)});return(b)?a:"rgb("+a+")"},rgbToHex:function(d){if(this.length<3){return null}if(this.length==4&&this[3]==0&&!d){return"transparent"}var b=[];for(var a=0;a<3;a++){var c=(this[a]-0).toString(16);b.push((c.length==1)?"0"+c:c)}return(d)?b:"#"+b.join("")}});Function.implement({extend:function(a){for(var b in a){this[b]=a[b]}return this},create:function(b){var a=this;b=b||{};return function(d){var c=b.arguments;c=(c!=undefined)?$splat(c):Array.slice(arguments,(b.event)?1:0);if(b.event){c=[d||window.event].extend(c)}var e=function(){return a.apply(b.bind||null,c)};if(b.delay){return setTimeout(e,b.delay)}if(b.periodical){return setInterval(e,b.periodical)}if(b.attempt){return $try(e)}return e()}},run:function(a,b){return this.apply(b,$splat(a))},pass:function(a,b){return this.create({bind:b,arguments:a})},bind:function(b,a){return this.create({bind:b,arguments:a})},bindWithEvent:function(b,a){return this.create({bind:b,arguments:a,event:true})},attempt:function(a,b){return this.create({bind:b,arguments:a,attempt:true})()},delay:function(b,c,a){return this.create({bind:c,arguments:a,delay:b})()},periodical:function(c,b,a){return this.create({bind:b,arguments:a,periodical:c})()}});Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this))},round:function(a){a=Math.pow(10,a||0);return Math.round(this*a)/a},times:function(b,c){for(var a=0;a<this;a++){b.call(c,a,this)}},toFloat:function(){return parseFloat(this)},toInt:function(a){return parseInt(this,a||10)}});Number.alias("times","each");(function(b){var a={};b.each(function(c){if(!Number[c]){a[c]=function(){return Math[c].apply(null,[this].concat($A(arguments)))}}});Number.implement(a)})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(a,b){return((typeof a=="string")?new RegExp(a,b):a).test(this)},contains:function(a,b){return(b)?(b+this+b).indexOf(b+a+b)>-1:this.indexOf(a)>-1},trim:function(){return this.replace(/^\s+|\s+$/g,"")},clean:function(){return this.replace(/\s+/g," ").trim()},camelCase:function(){return this.replace(/-\D/g,function(a){return a.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/[A-Z]/g,function(a){return("-"+a.charAt(0).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(a){return a.toUpperCase()})},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},toInt:function(a){return parseInt(this,a||10)},toFloat:function(){return parseFloat(this)},hexToRgb:function(b){var a=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(a)?a.slice(1).hexToRgb(b):null},rgbToHex:function(b){var a=this.match(/\d{1,3}/g);return(a)?a.rgbToHex(b):null},stripScripts:function(b){var a="";var c=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){a+=arguments[1]+"\n";return""});if(b===true){$exec(a)}else{if($type(b)=="function"){b(a,c)}}return c},substitute:function(a,b){return this.replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)=="\\"){return d.slice(1)}return(a[c]!=undefined)?a[c]:""})}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(b){for(var a in this){if(this.hasOwnProperty(a)&&this[a]===b){return a}}return null},hasValue:function(a){return(Hash.keyOf(this,a)!==null)},extend:function(a){Hash.each(a,function(c,b){Hash.set(this,b,c)},this);return this},combine:function(a){Hash.each(a,function(c,b){Hash.include(this,b,c)},this);return this},erase:function(a){if(this.hasOwnProperty(a)){delete this[a]}return this},get:function(a){return(this.hasOwnProperty(a))?this[a]:null},set:function(a,b){if(!this[a]||this.hasOwnProperty(a)){this[a]=b}return this},empty:function(){Hash.each(this,function(b,a){delete this[a]},this);return this},include:function(a,b){if(this[a]==undefined){this[a]=b}return this},map:function(b,c){var a=new Hash;Hash.each(this,function(e,d){a.set(d,b.call(c,e,d,this))},this);return a},filter:function(b,c){var a=new Hash;Hash.each(this,function(e,d){if(b.call(c,e,d,this)){a.set(d,e)}},this);return a},every:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&!b.call(c,this[a],a)){return false}}return true},some:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&b.call(c,this[a],a)){return true}}return false},getKeys:function(){var a=[];Hash.each(this,function(c,b){a.push(b)});return a},getValues:function(){var a=[];Hash.each(this,function(b){a.push(b)});return a},toQueryString:function(a){var b=[];Hash.each(this,function(f,e){if(a){e=a+"["+e+"]"}var d;switch($type(f)){case"object":d=Hash.toQueryString(f,e);break;case"array":var c={};f.each(function(h,g){c[g]=h});d=Hash.toQueryString(c,e);break;default:d=e+"="+encodeURIComponent(f)}if(f!=undefined){b.push(d)}});return b.join("&")}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});var Event=new Native({name:"Event",initialize:function(a,f){f=f||window;var k=f.document;a=a||f.event;if(a.$extended){return a}this.$extended=true;var j=a.type;var g=a.target||a.srcElement;while(g&&g.nodeType==3){g=g.parentNode}if(j.test(/key/)){var b=a.which||a.keyCode;var m=Event.Keys.keyOf(b);if(j=="keydown"){var d=b-111;if(d>0&&d<13){m="f"+d}}m=m||String.fromCharCode(b).toLowerCase()}else{if(j.match(/(click|mouse|menu)/i)){k=(!k.compatMode||k.compatMode=="CSS1Compat")?k.html:k.body;var i={x:a.pageX||a.clientX+k.scrollLeft,y:a.pageY||a.clientY+k.scrollTop};var c={x:(a.pageX)?a.pageX-f.pageXOffset:a.clientX,y:(a.pageY)?a.pageY-f.pageYOffset:a.clientY};if(j.match(/DOMMouseScroll|mousewheel/)){var h=(a.wheelDelta)?a.wheelDelta/120:-(a.detail||0)/3}var e=(a.which==3)||(a.button==2);var l=null;if(j.match(/over|out/)){switch(j){case"mouseover":l=a.relatedTarget||a.fromElement;break;case"mouseout":l=a.relatedTarget||a.toElement}if(!(function(){while(l&&l.nodeType==3){l=l.parentNode}return true}).create({attempt:Browser.Engine.gecko})()){l=false}}}}return $extend(this,{event:a,type:j,page:i,client:c,rightClick:e,wheel:h,relatedTarget:l,target:g,code:b,key:m,shift:a.shiftKey,control:a.ctrlKey,alt:a.altKey,meta:a.metaKey})}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault()},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation()}else{this.event.cancelBubble=true}return this},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault()}else{this.event.returnValue=false}return this}});function Class(b){if(b instanceof Function){b={initialize:b}}var a=function(){Object.reset(this);if(a._prototyping){return this}this._current=$empty;var c=(this.initialize)?this.initialize.apply(this,arguments):this;delete this._current;delete this.caller;return c}.extend(this);a.implement(b);a.constructor=Class;a.prototype.constructor=a;return a}Function.prototype.protect=function(){this._protected=true;return this};Object.reset=function(a,c){if(c==null){for(var e in a){Object.reset(a,e)}return a}delete a[c];switch($type(a[c])){case"object":var d=function(){};d.prototype=a[c];var b=new d;a[c]=Object.reset(b);break;case"array":a[c]=$unlink(a[c]);break}return a};new Native({name:"Class",initialize:Class}).extend({instantiate:function(b){b._prototyping=true;var a=new b;delete b._prototyping;return a},wrap:function(a,b,c){if(c._origin){c=c._origin}return function(){if(c._protected&&this._current==null){throw new Error('The method "'+b+'" cannot be called.');}var e=this.caller,f=this._current;this.caller=f;this._current=arguments.callee;var d=c.apply(this,arguments);this._current=f;this.caller=e;return d}.extend({_owner:a,_origin:c,_name:b})}});Class.implement({implement:function(a,d){if($type(a)=="object"){for(var e in a){this.implement(e,a[e])}return this}var f=Class.Mutators[a];if(f){d=f.call(this,d);if(d==null){return this}}var c=this.prototype;switch($type(d)){case"function":if(d._hidden){return this}c[a]=Class.wrap(this,a,d);break;case"object":var b=c[a];if($type(b)=="object"){$mixin(b,d)}else{c[a]=$unlink(d)}break;case"array":c[a]=$unlink(d);break;default:c[a]=d}return this}});Class.Mutators={Extends:function(a){this.parent=a;this.prototype=Class.instantiate(a);this.implement("parent",function(){var b=this.caller._name,c=this.caller._owner.parent.prototype[b];if(!c){throw new Error('The method "'+b+'" has no parent.');}return c.apply(this,arguments)}.protect())},Implements:function(a){$splat(a).each(function(b){if(b instanceof Function){b=Class.instantiate(b)}this.implement(b)},this)}};var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false},clearChain:function(){this.$chain.empty();return this}});var Events=new Class({$events:{},addEvent:function(c,b,a){c=Events.removeOn(c);if(b!=$empty){this.$events[c]=this.$events[c]||[];this.$events[c].include(b);if(a){b.internal=true}}return this},addEvents:function(a){for(var b in a){this.addEvent(b,a[b])}return this},fireEvent:function(c,b,a){c=Events.removeOn(c);if(!this.$events||!this.$events[c]){return this}this.$events[c].each(function(d){d.create({bind:this,delay:a,"arguments":b})()},this);return this},removeEvent:function(b,a){b=Events.removeOn(b);if(!this.$events[b]){return this}if(!a.internal){this.$events[b].erase(a)}return this},removeEvents:function(c){var d;if($type(c)=="object"){for(d in c){this.removeEvent(d,c[d])}return this}if(c){c=Events.removeOn(c)}for(d in this.$events){if(c&&c!=d){continue}var b=this.$events[d];for(var a=b.length;a--;a){this.removeEvent(d,b[a])}}return this}});Events.removeOn=function(a){return a.replace(/^on([A-Z])/,function(b,c){return c.toLowerCase()})};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this}for(var a in this.options){if($type(this.options[a])!="function"||!(/^on[A-Z]/).test(a)){continue}this.addEvent(a,this.options[a]);delete this.options[a]}return this}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(a,b){var c=Element.Constructors.get(a);if(c){return c(b)}if(typeof a=="string"){return document.newElement(a,b)}return $(a).set(b)},afterImplement:function(a,b){Element.Prototype[a]=b;if(Array[a]){return}Elements.implement(a,function(){var c=[],g=true;for(var e=0,d=this.length;e<d;e++){var f=this[e][a].apply(this[e],arguments);c.push(f);if(g){g=($type(f)=="element")}}return(g)?new Elements(c):c})}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var e=Array.link(arguments,{properties:Object.type,iframe:$defined});var c=e.properties||{};var b=$(e.iframe)||false;var d=c.onload||$empty;delete c.onload;c.id=c.name=$pick(c.id,c.name,b.id,b.name,"IFrame_"+$time());b=new Element(b||"iframe",c);var a=function(){var f=$try(function(){return b.contentWindow.location.host});if(f&&f==window.location.host){var g=new Window(b.contentWindow);new Document(b.contentWindow.document);$extend(g.Element.prototype,Element.Prototype)}d.call(b.contentWindow,b.contentWindow.document)};(window.frames[c.id])?a():b.addListener("load",a);return b}});var Elements=new Native({initialize:function(f,b){b=$extend({ddup:true,cash:true},b);f=f||[];if(b.ddup||b.cash){var g={},e=[];for(var c=0,a=f.length;c<a;c++){var d=$.element(f[c],!b.cash);if(b.ddup){if(g[d.uid]){continue}g[d.uid]=true}e.push(d)}f=e}return(b.cash)?$extend(f,this):f}});Elements.implement({filter:function(a,b){if(!a){return this}return new Elements(Array.filter(this,(typeof a=="string")?function(c){return c.match(a)}:a,b))}});Document.implement({newElement:function(a,b){if(Browser.Engine.trident&&b){["name","type","checked"].each(function(c){if(!b[c]){return}a+=" "+c+'="'+b[c]+'"';if(c!="checked"){delete b[c]}});a="<"+a+">"}return $.element(this.createElement(a)).set(b)},newTextNode:function(a){return this.createTextNode(a)},getDocument:function(){return this},getWindow:function(){return this.window}});Window.implement({$:function(b,c){if(b&&b.$family&&b.uid){return b}var a=$type(b);return($[a])?$[a](b,c,this.document):null},$$:function(a){if(arguments.length==1&&typeof a=="string"){return this.document.getElements(a)}var f=[];var c=Array.flatten(arguments);for(var d=0,b=c.length;d<b;d++){var e=c[d];switch($type(e)){case"element":f.push(e);break;case"string":f.extend(this.document.getElements(e,true))}}return new Elements(f)},getDocument:function(){return this.document},getWindow:function(){return this}});$.string=function(c,b,a){c=a.getElementById(c);return(c)?$.element(c,b):null};$.element=function(a,d){$uid(a);if(!d&&!a.$family&&!(/^object|embed$/i).test(a.tagName)){var b=Element.Prototype;for(var c in b){a[c]=b[c]}}return a};$.object=function(b,c,a){if(b.toElement){return $.element(b.toElement(a),c)}return null};$.textnode=$.whitespace=$.window=$.document=$arguments(0);Native.implement([Element,Document],{getElement:function(a,b){return $(this.getElements(a,true)[0]||null,b)},getElements:function(a,d){a=a.split(",");var c=[];var b=(a.length>1);a.each(function(e){var f=this.getElementsByTagName(e.trim());(b)?c.extend(f):c=f},this);return new Elements(c,{ddup:b,cash:!d})}});(function(){var h={},f={};var i={input:"checked",option:"selected",textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerHTML":"value"};var c=function(l){return(f[l]||(f[l]={}))};var g=function(n,l){if(!n){return}var m=n.uid;if(Browser.Engine.trident){if(n.clearAttributes){var q=l&&n.cloneNode(false);n.clearAttributes();if(q){n.mergeAttributes(q)}}else{if(n.removeEvents){n.removeEvents()}}if((/object/i).test(n.tagName)){for(var o in n){if(typeof n[o]=="function"){n[o]=$empty}}Element.dispose(n)}}if(!m){return}h[m]=f[m]=null};var d=function(){Hash.each(h,g);if(Browser.Engine.trident){$A(document.getElementsByTagName("object")).each(g)}if(window.CollectGarbage){CollectGarbage()}h=f=null};var j=function(n,l,s,m,p,r){var o=n[s||l];var q=[];while(o){if(o.nodeType==1&&(!m||Element.match(o,m))){if(!p){return $(o,r)}q.push(o)}o=o[l]}return(p)?new Elements(q,{ddup:false,cash:!r}):null};var e={html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?"innerText":"textContent"};var b=["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"];var k=["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"];b=b.associate(b);Hash.extend(e,b);Hash.extend(e,k.associate(k.map(String.toLowerCase)));var a={before:function(m,l){if(l.parentNode){l.parentNode.insertBefore(m,l)}},after:function(m,l){if(!l.parentNode){return}var n=l.nextSibling;(n)?l.parentNode.insertBefore(m,n):l.parentNode.appendChild(m)},bottom:function(m,l){l.appendChild(m)},top:function(m,l){var n=l.firstChild;(n)?l.insertBefore(m,n):l.appendChild(m)}};a.inside=a.bottom;Hash.each(a,function(l,m){m=m.capitalize();Element.implement("inject"+m,function(n){l(this,$(n,true));return this});Element.implement("grab"+m,function(n){l($(n,true),this);return this})});Element.implement({set:function(o,m){switch($type(o)){case"object":for(var n in o){this.set(n,o[n])}break;case"string":var l=Element.Properties.get(o);(l&&l.set)?l.set.apply(this,Array.slice(arguments,1)):this.setProperty(o,m)}return this},get:function(m){var l=Element.Properties.get(m);return(l&&l.get)?l.get.apply(this,Array.slice(arguments,1)):this.getProperty(m)},erase:function(m){var l=Element.Properties.get(m);(l&&l.erase)?l.erase.apply(this):this.removeProperty(m);return this},setProperty:function(m,n){var l=e[m];if(n==undefined){return this.removeProperty(m)}if(l&&b[m]){n=!!n}(l)?this[l]=n:this.setAttribute(m,""+n);return this},setProperties:function(l){for(var m in l){this.setProperty(m,l[m])}return this},getProperty:function(m){var l=e[m];var n=(l)?this[l]:this.getAttribute(m,2);return(b[m])?!!n:(l)?n:n||null},getProperties:function(){var l=$A(arguments);return l.map(this.getProperty,this).associate(l)},removeProperty:function(m){var l=e[m];(l)?this[l]=(l&&b[m])?false:"":this.removeAttribute(m);return this},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this},hasClass:function(l){return this.className.contains(l," ")},addClass:function(l){if(!this.hasClass(l)){this.className=(this.className+" "+l).clean()}return this},removeClass:function(l){this.className=this.className.replace(new RegExp("(^|\\s)"+l+"(?:\\s|$)"),"$1");return this},toggleClass:function(l){return this.hasClass(l)?this.removeClass(l):this.addClass(l)},adopt:function(){Array.flatten(arguments).each(function(l){l=$(l,true);if(l){this.appendChild(l)}},this);return this},appendText:function(m,l){return this.grab(this.getDocument().newTextNode(m),l)},grab:function(m,l){a[l||"bottom"]($(m,true),this);return this},inject:function(m,l){a[l||"bottom"](this,$(m,true));return this},replaces:function(l){l=$(l,true);l.parentNode.replaceChild(this,l);return this},wraps:function(m,l){m=$(m,true);return this.replaces(m).grab(m,l)},getPrevious:function(l,m){return j(this,"previousSibling",null,l,false,m)},getAllPrevious:function(l,m){return j(this,"previousSibling",null,l,true,m)},getNext:function(l,m){return j(this,"nextSibling",null,l,false,m)},getAllNext:function(l,m){return j(this,"nextSibling",null,l,true,m)},getFirst:function(l,m){return j(this,"nextSibling","firstChild",l,false,m)},getLast:function(l,m){return j(this,"previousSibling","lastChild",l,false,m)},getParent:function(l,m){return j(this,"parentNode",null,l,false,m)},getParents:function(l,m){return j(this,"parentNode",null,l,true,m)},getSiblings:function(l,m){return this.getParent().getChildren(l,m).erase(this)},getChildren:function(l,m){return j(this,"nextSibling","firstChild",l,true,m)},getWindow:function(){return this.ownerDocument.window},getDocument:function(){return this.ownerDocument},getElementById:function(o,n){var m=this.ownerDocument.getElementById(o);if(!m){return null}for(var l=m.parentNode;l!=this;l=l.parentNode){if(!l){return null}}return $.element(m,n)},getSelected:function(){return new Elements($A(this.options).filter(function(l){return l.selected}))},getComputedStyle:function(m){if(this.currentStyle){return this.currentStyle[m.camelCase()]}var l=this.getDocument().defaultView.getComputedStyle(this,null);return(l)?l.getPropertyValue([m.hyphenate()]):null},toQueryString:function(){var l=[];this.getElements("input, select, textarea",true).each(function(m){if(!m.name||m.disabled){return}var n=(m.tagName.toLowerCase()=="select")?Element.getSelected(m).map(function(o){return o.value}):((m.type=="radio"||m.type=="checkbox")&&!m.checked)?null:m.value;$splat(n).each(function(o){if(typeof o!="undefined"){l.push(m.name+"="+encodeURIComponent(o))}})});return l.join("&")},clone:function(o,l){o=o!==false;var r=this.cloneNode(o);var n=function(v,u){if(!l){v.removeAttribute("id")}if(Browser.Engine.trident){v.clearAttributes();v.mergeAttributes(u);v.removeAttribute("uid");if(v.options){var w=v.options,s=u.options;for(var t=w.length;t--;){w[t].selected=s[t].selected}}}var x=i[u.tagName.toLowerCase()];if(x&&u[x]){v[x]=u[x]}};if(o){var p=r.getElementsByTagName("*"),q=this.getElementsByTagName("*");for(var m=p.length;m--;){n(p[m],q[m])}}n(r,this);return $(r)},destroy:function(){Element.empty(this);Element.dispose(this);g(this,true);return null},empty:function(){$A(this.childNodes).each(function(l){Element.destroy(l)});return this},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this},hasChild:function(l){l=$(l,true);if(!l){return false}if(Browser.Engine.webkit&&Browser.Engine.version<420){return $A(this.getElementsByTagName(l.tagName)).contains(l)}return(this.contains)?(this!=l&&this.contains(l)):!!(this.compareDocumentPosition(l)&16)},match:function(l){return(!l||(l==this)||(Element.get(this,"tag")==l))}});Native.implement([Element,Window,Document],{addListener:function(o,n){if(o=="unload"){var l=n,m=this;n=function(){m.removeListener("unload",n);l()}}else{h[this.uid]=this}if(this.addEventListener){this.addEventListener(o,n,false)}else{this.attachEvent("on"+o,n)}return this},removeListener:function(m,l){if(this.removeEventListener){this.removeEventListener(m,l,false)}else{this.detachEvent("on"+m,l)}return this},retrieve:function(m,l){var o=c(this.uid),n=o[m];if(l!=undefined&&n==undefined){n=o[m]=l}return $pick(n)},store:function(m,l){var n=c(this.uid);n[m]=l;return this},eliminate:function(l){var m=c(this.uid);delete m[l];return this}});window.addListener("unload",d)})();Element.Properties=new Hash;Element.Properties.style={set:function(a){this.style.cssText=a},get:function(){return this.style.cssText},erase:function(){this.style.cssText=""}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase()}};Element.Properties.html=(function(){var c=document.createElement("div");var a={table:[1,"<table>","</table>"],select:[1,"<select>","</select>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"]};a.thead=a.tfoot=a.tbody;var b={set:function(){var e=Array.flatten(arguments).join("");var f=Browser.Engine.trident&&a[this.get("tag")];if(f){var g=c;g.innerHTML=f[1]+e+f[2];for(var d=f[0];d--;){g=g.firstChild}this.empty().adopt(g.childNodes)}else{this.innerHTML=e}}};b.erase=b.set;return b})();if(Browser.Engine.webkit&&Browser.Engine.version<420){Element.Properties.text={get:function(){if(this.innerText){return this.innerText}var a=this.ownerDocument.newElement("div",{html:this.innerHTML}).inject(this.ownerDocument.body);var b=a.innerText;a.destroy();return b}}}Element.Properties.events={set:function(a){this.addEvents(a)}};Native.implement([Element,Window,Document],{addEvent:function(e,g){var h=this.retrieve("events",{});h[e]=h[e]||{keys:[],values:[]};if(h[e].keys.contains(g)){return this}h[e].keys.push(g);var f=e,a=Element.Events.get(e),c=g,i=this;if(a){if(a.onAdd){a.onAdd.call(this,g)}if(a.condition){c=function(j){if(a.condition.call(this,j)){return g.call(this,j)}return true}}f=a.base||f}var d=function(){return g.call(i)};var b=Element.NativeEvents[f];if(b){if(b==2){d=function(j){j=new Event(j,i.getWindow());if(c.call(i,j)===false){j.stop()}}}this.addListener(f,d)}h[e].values.push(d);return this},removeEvent:function(c,b){var a=this.retrieve("events");if(!a||!a[c]){return this}var f=a[c].keys.indexOf(b);if(f==-1){return this}a[c].keys.splice(f,1);var e=a[c].values.splice(f,1)[0];var d=Element.Events.get(c);if(d){if(d.onRemove){d.onRemove.call(this,b)}c=d.base||c}return(Element.NativeEvents[c])?this.removeListener(c,e):this},addEvents:function(a){for(var b in a){this.addEvent(b,a[b])}return this},removeEvents:function(a){var c;if($type(a)=="object"){for(c in a){this.removeEvent(c,a[c])}return this}var b=this.retrieve("events");if(!b){return this}if(!a){for(c in b){this.removeEvents(c)}this.eliminate("events")}else{if(b[a]){while(b[a].keys[0]){this.removeEvent(a,b[a].keys[0])}b[a]=null}}return this},fireEvent:function(d,b,a){var c=this.retrieve("events");if(!c||!c[d]){return this}c[d].keys.each(function(e){e.create({bind:this,delay:a,"arguments":b})()},this);return this},cloneEvents:function(d,a){d=$(d);var c=d.retrieve("events");if(!c){return this}if(!a){for(var b in c){this.cloneEvents(d,b)}}else{if(c[a]){c[a].keys.each(function(e){this.addEvent(a,e)},this)}}return this}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};(function(){var a=function(b){var c=b.relatedTarget;if(c==undefined){return true}if(c===false){return false}return($type(this)!="document"&&c!=this&&c.prefix!="xul"&&!this.hasChild(c))};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:a},mouseleave:{base:"mouseout",condition:a},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}})})();Element.Properties.styles={set:function(a){this.setStyles(a)}};Element.Properties.opacity={set:function(a,b){if(!b){if(a==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden"}}else{if(this.style.visibility!="visible"){this.style.visibility="visible"}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1}if(Browser.Engine.trident){this.style.filter=(a==1)?"":"alpha(opacity="+a*100+")"}this.style.opacity=a;this.store("opacity",a)},get:function(){return this.retrieve("opacity",1)}};Element.implement({setOpacity:function(a){return this.set("opacity",a,true)},getOpacity:function(){return this.get("opacity")},setStyle:function(b,a){switch(b){case"opacity":return this.set("opacity",parseFloat(a));case"float":b=(Browser.Engine.trident)?"styleFloat":"cssFloat"}b=b.camelCase();if($type(a)!="string"){var c=(Element.Styles.get(b)||"@").split(" ");a=$splat(a).map(function(e,d){if(!c[d]){return""}return($type(e)=="number")?c[d].replace("@",Math.round(e)):e}).join(" ")}else{if(a==String(Number(a))){a=Math.round(a)}}this.style[b]=a;return this},getStyle:function(g){switch(g){case"opacity":return this.get("opacity");case"float":g=(Browser.Engine.trident)?"styleFloat":"cssFloat"}g=g.camelCase();var a=this.style[g];if(!$chk(a)){a=[];for(var f in Element.ShortStyles){if(g!=f){continue}for(var e in Element.ShortStyles[f]){a.push(this.getStyle(e))}return a.join(" ")}a=this.getComputedStyle(g)}if(a){a=String(a);var c=a.match(/rgba?\([\d\s,]+\)/);if(c){a=a.replace(c[0],c[0].rgbToHex())}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(a,10)))){if(g.test(/^(height|width)$/)){var b=(g=="width")?["left","right"]:["top","bottom"],d=0;b.each(function(h){d+=this.getStyle("border-"+h+"-width").toInt()+this.getStyle("padding-"+h).toInt()},this);return this["offset"+g.capitalize()]-d+"px"}if((Browser.Engine.presto)&&String(a).test("px")){return a}if(g.test(/(border(.+)Width|margin|padding)/)){return"0px"}}return a},setStyles:function(b){for(var a in b){this.setStyle(a,b[a])}return this},getStyles:function(){var a={};Array.each(arguments,function(b){a[b]=this.getStyle(b)},this);return a}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(g){var f=Element.ShortStyles;var b=Element.Styles;["margin","padding"].each(function(h){var i=h+g;f[h][i]=b[i]="@px"});var e="border"+g;f.border[e]=b[e]="@px @ rgb(@, @, @)";var d=e+"Width",a=e+"Style",c=e+"Color";f[e]={};f.borderWidth[d]=f[e][d]=b[d]="@px";f.borderStyle[a]=f[e][a]=b[a]="@";f.borderColor[c]=f[e][c]=b[c]="rgb(@, @, @)"});(function(){Element.implement({scrollTo:function(h,i){if(b(this)){this.getWindow().scrollTo(h,i)}else{this.scrollLeft=h;this.scrollTop=i}return this},getSize:function(){if(b(this)){return this.getWindow().getSize()}return{x:this.offsetWidth,y:this.offsetHeight}},getScrollSize:function(){if(b(this)){return this.getWindow().getScrollSize()}return{x:this.scrollWidth,y:this.scrollHeight}},getScroll:function(){if(b(this)){return this.getWindow().getScroll()}return{x:this.scrollLeft,y:this.scrollTop}},getScrolls:function(){var i=this,h={x:0,y:0};while(i&&!b(i)){h.x+=i.scrollLeft;h.y+=i.scrollTop;i=i.parentNode}return h},getOffsetParent:function(){var h=this;if(b(h)){return null}if(!Browser.Engine.trident){return h.offsetParent}while((h=h.parentNode)&&!b(h)){if(d(h,"position")!="static"){return h}}return null},getOffsets:function(){if(Browser.Engine.trident){var l=this.getBoundingClientRect(),j=this.getDocument().documentElement;var m=d(this,"position")=="fixed";return{x:l.left+((m)?0:j.scrollLeft)-j.clientLeft,y:l.top+((m)?0:j.scrollTop)-j.clientTop}}var i=this,h={x:0,y:0};if(b(this)){return h}while(i&&!b(i)){h.x+=i.offsetLeft;h.y+=i.offsetTop;if(Browser.Engine.gecko){if(!f(i)){h.x+=c(i);h.y+=g(i)}var k=i.parentNode;if(k&&d(k,"overflow")!="visible"){h.x+=c(k);h.y+=g(k)}}else{if(i!=this&&Browser.Engine.webkit){h.x+=c(i);h.y+=g(i)}}i=i.offsetParent}if(Browser.Engine.gecko&&!f(this)){h.x-=c(this);h.y-=g(this)}return h},getPosition:function(k){if(b(this)){return{x:0,y:0}}var l=this.getOffsets(),i=this.getScrolls();var h={x:l.x-i.x,y:l.y-i.y};var j=(k&&(k=$(k)))?k.getPosition():{x:0,y:0};return{x:h.x-j.x,y:h.y-j.y}},getCoordinates:function(j){if(b(this)){return this.getWindow().getCoordinates()}var h=this.getPosition(j),i=this.getSize();var k={left:h.x,top:h.y,width:i.x,height:i.y};k.right=k.left+k.width;k.bottom=k.top+k.height;return k},computePosition:function(h){return{left:h.x-e(this,"margin-left"),top:h.y-e(this,"margin-top")}},position:function(h){return this.setStyles(this.computePosition(h))}});Native.implement([Document,Window],{getSize:function(){if(Browser.Engine.presto||Browser.Engine.webkit){var i=this.getWindow();return{x:i.innerWidth,y:i.innerHeight}}var h=a(this);return{x:h.clientWidth,y:h.clientHeight}},getScroll:function(){var i=this.getWindow(),h=a(this);return{x:i.pageXOffset||h.scrollLeft,y:i.pageYOffset||h.scrollTop}},getScrollSize:function(){var i=a(this),h=this.getSize();return{x:Math.max(i.scrollWidth,h.x),y:Math.max(i.scrollHeight,h.y)}},getPosition:function(){return{x:0,y:0}},getCoordinates:function(){var h=this.getSize();return{top:0,left:0,bottom:h.y,right:h.x,height:h.y,width:h.x}}});var d=Element.getComputedStyle;function e(h,i){return d(h,i).toInt()||0}function f(h){return d(h,"-moz-box-sizing")=="border-box"}function g(h){return e(h,"border-top-width")}function c(h){return e(h,"border-left-width")}function b(h){return(/^(?:body|html)$/i).test(h.tagName)}function a(h){var i=h.getDocument();return(!i.compatMode||i.compatMode=="CSS1Compat")?i.html:i.body}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y},getWidth:function(){return this.getSize().x},getScrollTop:function(){return this.getScroll().y},getScrollLeft:function(){return this.getScroll().x},getScrollHeight:function(){return this.getScrollSize().y},getScrollWidth:function(){return this.getScrollSize().x},getTop:function(){return this.getPosition().y},getLeft:function(){return this.getPosition().x}});Native.implement([Document,Element],{getElements:function(h,g){h=h.split(",");var c,e={};for(var d=0,b=h.length;d<b;d++){var a=h[d],f=Selectors.Utils.search(this,a,e);if(d!=0&&f.item){f=$A(f)}c=(d==0)?f:(c.item)?$A(c).concat(f):c.concat(f)}return new Elements(c,{ddup:(h.length>1),cash:!g})}});Element.implement({match:function(b){if(!b||(b==this)){return true}var d=Selectors.Utils.parseTagAndID(b);var a=d[0],e=d[1];if(!Selectors.Filters.byID(this,e)||!Selectors.Filters.byTag(this,a)){return false}var c=Selectors.Utils.parseSelector(b);return(c)?Selectors.Utils.filter(this,c,{}):true}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(b,c){if(!c){return true}var a=$uid(b);if(!c[a]){return c[a]=true}return false},parseNthArgument:function(h){if(Selectors.Cache.nth[h]){return Selectors.Cache.nth[h]}var e=h.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!e){return false}var g=parseInt(e[1],10);var d=(g||g===0)?g:1;var f=e[2]||false;var c=parseInt(e[3],10)||0;if(d!=0){c--;while(c<1){c+=d}while(c>=d){c-=d}}else{d=c;f="index"}switch(f){case"n":e={a:d,b:c,special:"n"};break;case"odd":e={a:2,b:0,special:"n"};break;case"even":e={a:2,b:1,special:"n"};break;case"first":e={a:0,special:"index"};break;case"last":e={special:"last-child"};break;case"only":e={special:"only-child"};break;default:e={a:(d-1),special:"index"}}return Selectors.Cache.nth[h]=e},parseSelector:function(e){if(Selectors.Cache.parsed[e]){return Selectors.Cache.parsed[e]}var d,h={classes:[],pseudos:[],attributes:[]};while((d=Selectors.RegExps.combined.exec(e))){var i=d[1],g=d[2],f=d[3],b=d[5],c=d[6],j=d[7];if(i){h.classes.push(i)}else{if(c){var a=Selectors.Pseudo.get(c);if(a){h.pseudos.push({parser:a,argument:j})}else{h.attributes.push({name:c,operator:"=",value:j})}}else{if(g){h.attributes.push({name:g,operator:f,value:b})}}}}if(!h.classes.length){delete h.classes}if(!h.attributes.length){delete h.attributes}if(!h.pseudos.length){delete h.pseudos}if(!h.classes&&!h.attributes&&!h.pseudos){h=null}return Selectors.Cache.parsed[e]=h},parseTagAndID:function(b){var a=b.match(Selectors.RegExps.tag);var c=b.match(Selectors.RegExps.id);return[(a)?a[1]:"*",(c)?c[1]:false]},filter:function(f,c,e){var d;if(c.classes){for(d=c.classes.length;d--;d){var g=c.classes[d];if(!Selectors.Filters.byClass(f,g)){return false}}}if(c.attributes){for(d=c.attributes.length;d--;d){var b=c.attributes[d];if(!Selectors.Filters.byAttribute(f,b.name,b.operator,b.value)){return false}}}if(c.pseudos){for(d=c.pseudos.length;d--;d){var a=c.pseudos[d];if(!Selectors.Filters.byPseudo(f,a.parser,a.argument,e)){return false}}}return true},getByTagAndID:function(b,a,d){if(d){var c=(b.getElementById)?b.getElementById(d,true):Element.getElementById(b,d,true);return(c&&Selectors.Filters.byTag(c,a))?[c]:[]}else{return b.getElementsByTagName(a)}},search:function(o,h,t){var b=[];var c=h.trim().replace(Selectors.RegExps.splitter,function(k,j,i){b.push(j);return":)"+i}).split(":)");var p,e,A;for(var z=0,v=c.length;z<v;z++){var y=c[z];if(z==0&&Selectors.RegExps.quick.test(y)){p=o.getElementsByTagName(y);continue}var a=b[z-1];var q=Selectors.Utils.parseTagAndID(y);var B=q[0],r=q[1];if(z==0){p=Selectors.Utils.getByTagAndID(o,B,r)}else{var d={},g=[];for(var x=0,w=p.length;x<w;x++){g=Selectors.Getters[a](g,p[x],B,r,d)}p=g}var f=Selectors.Utils.parseSelector(y);if(f){e=[];for(var u=0,s=p.length;u<s;u++){A=p[u];if(Selectors.Utils.filter(A,f,t)){e.push(A)}}p=e}}return p}};Selectors.Getters={" ":function(h,g,j,a,e){var d=Selectors.Utils.getByTagAndID(g,j,a);for(var c=0,b=d.length;c<b;c++){var f=d[c];if(Selectors.Utils.chk(f,e)){h.push(f)}}return h},">":function(h,g,j,a,f){var c=Selectors.Utils.getByTagAndID(g,j,a);for(var e=0,d=c.length;e<d;e++){var b=c[e];if(b.parentNode==g&&Selectors.Utils.chk(b,f)){h.push(b)}}return h},"+":function(c,b,a,e,d){while((b=b.nextSibling)){if(b.nodeType==1){if(Selectors.Utils.chk(b,d)&&Selectors.Filters.byTag(b,a)&&Selectors.Filters.byID(b,e)){c.push(b)}break}}return c},"~":function(c,b,a,e,d){while((b=b.nextSibling)){if(b.nodeType==1){if(!Selectors.Utils.chk(b,d)){break}if(Selectors.Filters.byTag(b,a)&&Selectors.Filters.byID(b,e)){c.push(b)}}}return c}};Selectors.Filters={byTag:function(b,a){return(a=="*"||(b.tagName&&b.tagName.toLowerCase()==a))},byID:function(a,b){return(!b||(a.id&&a.id==b))},byClass:function(b,a){return(b.className&&b.className.contains(a," "))},byPseudo:function(a,d,c,b){return d.call(a,c,b)},byAttribute:function(c,d,b,e){var a=Element.prototype.getProperty.call(c,d);if(!a){return(b=="!=")}if(!b||e==undefined){return true}switch(b){case"=":return(a==e);case"*=":return(a.contains(e));case"^=":return(a.substr(0,e.length)==e);case"$=":return(a.substr(a.length-e.length)==e);case"!=":return(a!=e);case"~=":return a.contains(e," ");case"|=":return a.contains(e,"-")}return false}};Selectors.Pseudo=new Hash({checked:function(){return this.checked},empty:function(){return!(this.innerText||this.textContent||"").length},not:function(a){return!Element.match(this,a)},contains:function(a){return(this.innerText||this.textContent||"").contains(a)},"first-child":function(){return Selectors.Pseudo.index.call(this,0)},"last-child":function(){var a=this;while((a=a.nextSibling)){if(a.nodeType==1){return false}}return true},"only-child":function(){var b=this;while((b=b.previousSibling)){if(b.nodeType==1){return false}}var a=this;while((a=a.nextSibling)){if(a.nodeType==1){return false}}return true},"nth-child":function(g,e){g=(g==undefined)?"n":g;var c=Selectors.Utils.parseNthArgument(g);if(c.special!="n"){return Selectors.Pseudo[c.special].call(this,c.a,e)}var f=0;e.positions=e.positions||{};var d=$uid(this);if(!e.positions[d]){var b=this;while((b=b.previousSibling)){if(b.nodeType!=1){continue}f++;var a=e.positions[$uid(b)];if(a!=undefined){f=a+f;break}}e.positions[d]=f}return(e.positions[d]%c.a==c.b)},index:function(a){var b=this,c=0;while((b=b.previousSibling)){if(b.nodeType==1&&++c>a){return false}}return(c==a)},even:function(b,a){return Selectors.Pseudo["nth-child"].call(this,"2n+1",a)},odd:function(b,a){return Selectors.Pseudo["nth-child"].call(this,"2n",a)},selected:function(){return this.selected}});Element.Events.domready={onAdd:function(a){if(Browser.loaded){a.call(this)}}};(function(){var b=function(){if(Browser.loaded){return}Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready")};if(Browser.Engine.trident){var a=document.createElement("div");(function(){($try(function(){a.doScroll("left");return $(a).inject(document.body).set("html","temp").dispose()}))?b():arguments.callee.delay(50)})()}else{if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(["loaded","complete"].contains(document.readyState))?b():arguments.callee.delay(50)})()}else{window.addEvent("load",b);document.addEvent("DOMContentLoaded",b)}}})();var JSON=new Hash({$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(a){return JSON.$specialChars[a]||"\\u00"+Math.floor(a.charCodeAt()/16).toString(16)+(a.charCodeAt()%16).toString(16)},encode:function(b){switch($type(b)){case"string":return'"'+b.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(b.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var a=[];Hash.each(b,function(e,d){var c=JSON.encode(e);if(c){a.push(JSON.encode(d)+":"+c)}});return"{"+a+"}";case"number":case"boolean":return String(b);case false:return"null"}return null},decode:function(a,b){if($type(a)!="string"||!a.length){return null}if(b&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(a.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null}return eval("("+a+")")}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this)}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(b,a){this.key=b;this.setOptions(a)},write:function(b){b=encodeURIComponent(b);if(this.options.domain){b+="; domain="+this.options.domain}if(this.options.path){b+="; path="+this.options.path}if(this.options.duration){var a=new Date();a.setTime(a.getTime()+this.options.duration*24*60*60*1000);b+="; expires="+a.toGMTString()}if(this.options.secure){b+="; secure"}this.options.document.cookie=this.key+"="+b;return this},read:function(){var a=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return(a)?decodeURIComponent(a[1]):null},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this}});Cookie.write=function(b,c,a){return new Cookie(b,a).write(c)};Cookie.read=function(a){return new Cookie(a).read()};Cookie.dispose=function(b,a){return new Cookie(b,a).dispose()};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object},initialize:function(l,m){this.instance="Swiff_"+$time();this.setOptions(m);m=this.options;var b=this.id=m.id||this.instance;var a=$(m.container);Swiff.CallBacks[this.instance]={};var e=m.params,g=m.vars,f=m.callBacks;var h=$extend({height:m.height,width:m.width},m.properties);var k=this;for(var d in f){Swiff.CallBacks[this.instance][d]=(function(n){return function(){return n.apply(k.object,arguments)}})(f[d]);g[d]="Swiff.CallBacks."+this.instance+"."+d}e.flashVars=Hash.toQueryString(g);if(Browser.Engine.trident){h.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";e.movie=l}else{h.type="application/x-shockwave-flash";h.data=l}var j='<object id="'+b+'"';for(var i in h){j+=" "+i+'="'+h[i]+'"'}j+=">";for(var c in e){if(e[c]){j+='<param name="'+c+'" value="'+e[c]+'" />'}}j+="</object>";this.object=((a)?a.empty():new Element("div")).set("html",j).firstChild},replaces:function(a){a=$(a,true);a.parentNode.replaceChild(this.toElement(),a);return this},inject:function(a){$(a,true).appendChild(this.toElement());return this},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments))}});Swiff.CallBacks={};Swiff.remote=function(a,b){var c=a.CallFunction('<invoke name="'+b+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");return eval(c)};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore"},initialize:function(a){this.subject=this.subject||this;this.setOptions(a);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var b=this.options.wait;if(b===false){this.options.link="cancel"}},getTransition:function(){return function(a){return-(Math.cos(Math.PI*a)-1)/2}},step:function(){var a=$time();if(a<this.time+this.options.duration){var b=this.transition((a-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,b))}else{this.set(this.compute(this.from,this.to,1));this.complete()}},set:function(a){return a},compute:function(c,b,a){return Fx.compute(c,b,a)},check:function(){if(!this.timer){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));return false}return false},start:function(b,a){if(!this.check(b,a)){return this}this.from=b;this.to=a;this.time=0;this.transition=this.getTransition();this.startTimer();this.onStart();return this},complete:function(){if(this.stopTimer()){this.onComplete()}return this},cancel:function(){if(this.stopTimer()){this.onCancel()}return this},onStart:function(){this.fireEvent("start",this.subject)},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject)}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain()},pause:function(){this.stopTimer();return this},resume:function(){this.startTimer();return this},stopTimer:function(){if(!this.timer){return false}this.time=$time()-this.time;this.timer=$clear(this.timer);return true},startTimer:function(){if(this.timer){return false}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true}});Fx.compute=function(c,b,a){return(b-c)*a+c};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(d,e,b){b=$splat(b);var c=b[1];if(!$chk(c)){b[1]=b[0];b[0]=d.getStyle(e)}var a=b.map(this.parse);return{from:a[0],to:a[1]}},parse:function(a){a=$lambda(a)();a=(typeof a=="string")?a.split(" "):$splat(a);return a.map(function(c){c=String(c);var b=false;Fx.CSS.Parsers.each(function(f,e){if(b){return}var d=f.parse(c);if($chk(d)){b={value:d,parser:f}}});b=b||{value:c,parser:Fx.CSS.Parsers.String};return b})},compute:function(d,c,b){var a=[];(Math.min(d.length,c.length)).times(function(e){a.push({value:d[e].parser.compute(d[e].value,c[e].value,b),parser:d[e].parser})});a.$family={name:"fx:css:value"};return a},serve:function(c,b){if($type(c)!="fx:css:value"){c=this.parse(c)}var a=[];c.each(function(d){a=a.concat(d.parser.serve(d.value,b))});return a},render:function(a,d,c,b){a.setStyle(d,this.serve(c,b))},search:function(a){if(Fx.CSS.Cache[a]){return Fx.CSS.Cache[a]}var b={};Array.each(document.styleSheets,function(e,d){var c=e.href;if(c&&c.contains("://")&&!c.contains(document.domain)){return}var f=e.rules||e.cssRules;Array.each(f,function(j,g){if(!j.style){return}var h=(j.selectorText)?j.selectorText.replace(/^\w+/,function(i){return i.toLowerCase()}):null;if(!h||!h.test("^"+a+"$")){return}Element.Styles.each(function(k,i){if(!j.style[i]||Element.ShortStyles[i]){return}k=String(j.style[i]);b[i]=(k.test(/^rgb/))?k.rgbToHex():k})})});return Fx.CSS.Cache[a]=b}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(a){if(a.match(/^#[0-9a-f]{3,6}$/i)){return a.hexToRgb(true)}return((a=a.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[a[1],a[2],a[3]]:false},compute:function(c,b,a){return c.map(function(e,d){return Math.round(Fx.compute(c[d],b[d],a))})},serve:function(a){return a.map(Number)}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(b,a){return(a)?b+a:b}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=$(b);this.parent(a)},set:function(b,a){if(arguments.length==1){a=b;b=this.property||this.options.property}this.render(this.element,b,a,this.options.unit);return this},start:function(c,e,d){if(!this.check(c,e,d)){return this}var b=Array.flatten(arguments);this.property=this.options.property||b.shift();var a=this.prepare(this.element,this.property,b);return this.parent(a.from,a.to)}});Element.Properties.tween={set:function(a){var b=this.retrieve("tween");if(b){b.cancel()}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("tween")){if(a||!this.retrieve("tween:options")){this.set("tween",a)}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")))}return this.retrieve("tween")}};Element.implement({tween:function(a,c,b){this.get("tween").start(arguments);return this},fade:function(c){var e=this.get("tween"),d="opacity",a;c=$pick(c,"toggle");switch(c){case"in":e.start(d,1);break;case"out":e.start(d,0);break;case"show":e.set(d,1);break;case"hide":e.set(d,0);break;case"toggle":var b=this.retrieve("fade:flag",this.get("opacity")==1);e.start(d,(b)?0:1);this.store("fade:flag",!b);a=true;break;default:e.start(d,arguments)}if(!a){this.eliminate("fade:flag")}return this},highlight:function(c,a){if(!a){a=this.retrieve("highlight:original",this.getStyle("background-color"));a=(a=="transparent")?"#fff":a}var b=this.get("tween");b.start("background-color",c||"#ffff88",a).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));b.callChain()}.bind(this));return this}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=$(b);this.parent(a)},set:function(a){if(typeof a=="string"){a=this.search(a)}for(var b in a){this.render(this.element,b,a[b],this.options.unit)}return this},compute:function(e,d,c){var a={};for(var b in e){a[b]=this.parent(e[b],d[b],c)}return a},start:function(b){if(!this.check(b)){return this}if(typeof b=="string"){b=this.search(b)}var e={},d={};for(var c in b){var a=this.prepare(this.element,c,b[c]);e[c]=a.from;d[c]=a.to}return this.parent(e,d)}});Element.Properties.morph={set:function(a){var b=this.retrieve("morph");if(b){b.cancel()}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("morph")){if(a||!this.retrieve("morph:options")){this.set("morph",a)}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")))}return this.retrieve("morph")}};Element.implement({morph:function(a){this.get("morph").start(a);return this}});Fx.implement({getTransition:function(){var a=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof a=="string"){var b=a.split(":");a=Fx.Transitions;a=a[b[0]]||a[b[0].capitalize()];if(b[1]){a=a["ease"+b[1].capitalize()+(b[2]?b[2].capitalize():"")]}}return a}});Fx.Transition=function(b,a){a=$splat(a);return $extend(b,{easeIn:function(c){return b(c,a)},easeOut:function(c){return 1-b(1-c,a)},easeInOut:function(c){return(c<=0.5)?b(2*c,a)/2:(2-b(2*(1-c),a))/2}})};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(a){for(var b in a){Fx.Transitions[b]=new Fx.Transition(a[b])}};Fx.Transitions.extend({Pow:function(b,a){return Math.pow(b,a[0]||6)},Expo:function(a){return Math.pow(2,8*(a-1))},Circ:function(a){return 1-Math.sin(Math.acos(a))},Sine:function(a){return 1-Math.sin((1-a)*Math.PI/2)},Back:function(b,a){a=a[0]||1.618;return Math.pow(b,2)*((a+1)*b-a)},Bounce:function(f){var e;for(var d=0,c=1;1;d+=c,c/=2){if(f>=(7-4*d)/11){e=c*c-Math.pow((11-6*d-11*f)/4,2);break}}return e},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a[0]||1)/3)}});["Quad","Cubic","Quart","Quint"].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(c){return Math.pow(c,[a+2])})});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false,noCache:false},initialize:function(a){this.xhr=new Browser.Request();this.setOptions(a);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers)},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml)}else{this.response={text:null,xml:null};this.failure()}this.xhr.onreadystatechange=$empty},isSuccess:function(){return((this.status>=200)&&(this.status<300))},processScripts:function(a){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(a)}return a.stripScripts(this.options.evalScripts)},success:function(b,a){this.onSuccess(this.processScripts(b),a)},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain()},failure:function(){this.onFailure()},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr)},setHeader:function(a,b){this.headers.set(a,b);return this},getHeader:function(a){return $try(function(){return this.xhr.getResponseHeader(a)}.bind(this))},check:function(){if(!this.running){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));return false}return false},send:function(j){if(!this.check(j)){return this}this.running=true;var h=$type(j);if(h=="string"||h=="element"){j={data:j}}var d=this.options;j=$extend({data:d.data,url:d.url,method:d.method},j);var f=j.data,b=j.url,a=j.method;switch($type(f)){case"element":f=$(f).toQueryString();break;case"object":case"hash":f=Hash.toQueryString(f)}if(this.options.format){var i="format="+this.options.format;f=(f)?i+"&"+f:i}if(this.options.emulation&&["put","delete"].contains(a)){var g="_method="+a;f=(f)?g+"&"+f:g;a="post"}if(this.options.urlEncoded&&a=="post"){var c=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+c)}if(this.options.noCache){var e="noCache="+new Date().getTime();f=(f)?e+"&"+f:e}if(f&&a=="get"){b=b+(b.contains("?")?"&":"?")+f;f=null}this.xhr.open(a.toUpperCase(),b,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(l,k){try{this.xhr.setRequestHeader(k,l)}catch(m){this.fireEvent("exception",[k,l])}},this);this.fireEvent("request");this.xhr.send(f);if(!this.options.async){this.onStateChange()}return this},cancel:function(){if(!this.running){return this}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this}});(function(){var a={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(b){a[b]=function(){var c=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(c,{method:b.toLowerCase()}))}});Request.implement(a)})();Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false},processHTML:function(c){var b=c.match(/<body[^>]*>([\s\S]*?)<\/body>/i);c=(b)?b[1]:c;var a=new Element("div");return $try(function(){var d="<root>"+c+"</root>",g;if(Browser.Engine.trident){g=new ActiveXObject("Microsoft.XMLDOM");g.async=false;g.loadXML(d)}else{g=new DOMParser().parseFromString(d,"text/xml")}d=g.getElementsByTagName("root")[0];if(!d){return null}for(var f=0,e=d.childNodes.length;f<e;f++){var h=Element.clone(d.childNodes[f],true,true);if(h){a.grab(h)}}return a})||a.set("html",c)},success:function(d){var c=this.options,b=this.response;b.html=d.stripScripts(function(e){b.javascript=e});var a=this.processHTML(b.html);b.tree=a.childNodes;b.elements=a.getElements("*");if(c.filter){b.tree=b.elements.filter(c.filter)}if(c.update){$(c.update).empty().set("html",b.html)}else{if(c.append){$(c.append).adopt(a.getChildren())}}if(c.evalScripts){$exec(b.javascript)}this.onSuccess(b.tree,b.elements,b.html,b.javascript)}});Element.Properties.send={set:function(a){var b=this.retrieve("send");if(b){b.cancel()}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},a))},get:function(a){if(a||!this.retrieve("send")){if(a||!this.retrieve("send:options")){this.set("send",a)}this.store("send",new Request(this.retrieve("send:options")))}return this.retrieve("send")}};Element.Properties.load={set:function(a){var b=this.retrieve("load");if(b){b.cancel()}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},a))},get:function(a){if(a||!this.retrieve("load")){if(a||!this.retrieve("load:options")){this.set("load",a)}this.store("load",new Request.HTML(this.retrieve("load:options")))}return this.retrieve("load")}};Element.implement({send:function(a){var b=this.get("send");b.send({data:this,url:a||b.options.url});return this},load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));return this}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(a){this.parent(a);this.headers.extend({Accept:"application/json","X-Request":"JSON"})},success:function(a){this.response.json=JSON.decode(a,this.options.secure);this.onSuccess(this.response.json,a)}});MooTools.More={version:"1.2.2.2"};(function(){var a={language:"en-US",languages:{"en-US":{}},cascades:["en-US"]};var b;MooTools.lang=new Events();$extend(MooTools.lang,{setLanguage:function(c){if(!a.languages[c]){return this}a.language=c;this.load();this.fireEvent("langChange",c);return this},load:function(){var c=this.cascade(this.getCurrentLanguage());b={};$each(c,function(e,d){b[d]=this.lambda(e)},this)},getCurrentLanguage:function(){return a.language},addLanguage:function(c){a.languages[c]=a.languages[c]||{};return this},cascade:function(e){var c=(a.languages[e]||{}).cascades||[];c.combine(a.cascades);c.erase(e).push(e);var d=c.map(function(f){return a.languages[f]},this);return $merge.apply(this,d)},lambda:function(c){(c||{}).get=function(e,d){return $lambda(c[e]).apply(this,$splat(d))};return c},get:function(e,d,c){if(b&&b[e]){return(d?b[e].get(d,c):b[e])}},set:function(d,e,c){this.addLanguage(d);langData=a.languages[d];if(!langData[e]){langData[e]={}}$extend(langData[e],c);if(d==this.getCurrentLanguage()){this.load();this.fireEvent("langChange",d)}return this},list:function(){return Hash.getKeys(a.languages)}})})();var Log=new Class({log:function(){Log.logger.call(this,arguments)}});Log.logged=[];Log.logger=function(){if(window.console&&console.log){console.log.apply(console,arguments)}else{Log.logged.push(arguments)}};Class.refactor=function(b,a){$each(a,function(e,d){var c=b.prototype[d];if(c&&(c=c._origin)&&typeof e=="function"){b.implement(d,function(){var f=this.previous;this.previous=c;var g=e.apply(this,arguments);this.previous=f;return g})}else{b.implement(d,e)}});return b};Class.Mutators.Binds=function(a){return a};Class.Mutators.initialize=function(a){return function(){$splat(this.Binds).each(function(b){var c=this[b];if(c){this[b]=c.bind(this)}},this);return a.apply(this,arguments)}};Class.Occlude=new Class({occlude:function(c,b){b=$(b||this.element);var a=b.retrieve(c||this.property);if(a&&!$defined(this.occluded)){this.occluded=a}else{this.occluded=false;b.store(c||this.property,this)}return this.occluded}});(function(){var b={wait:function(c){return this.chain(function(){this.callChain.delay($pick(c,500),this)}.bind(this))}};Chain.implement(b);if(window.Fx){Fx.implement(b);["Css","Tween","Elements"].each(function(c){if(Fx[c]){Fx[c].implement(b)}})}try{Element.implement({chains:function(c){$splat($pick(c,["tween","morph","reveal"])).each(function(d){d=this.get(d);if(!d){return}d.setOptions({link:"chain"})},this);return this},pauseFx:function(d,c){this.chains(c).get($pick(c,"tween")).wait(d);return this}})}catch(a){}})();Array.implement({min:function(){return Math.min.apply(null,this)},max:function(){return Math.max.apply(null,this)},average:function(){return this.length?this.sum()/this.length:0},sum:function(){var a=0,b=this.length;if(b){do{a+=this[--b]}while(b)}return a},unique:function(){return[].combine(this)}});(function(){new Native({name:"Date",initialize:Date,protect:true});["now","parse","UTC"].each(function(d){Native.genericize(Date,d,true)});Date.Methods={};["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds","Time","TimezoneOffset","Week","Timezone","GMTOffset","DayOfYear","LastMonth","UTCDate","UTCDay","UTCFullYear","AMPM","UTCHours","UTCMilliseconds","UTCMinutes","UTCMonth","UTCSeconds"].each(function(d){Date.Methods[d.toLowerCase()]=d});$each({ms:"Milliseconds",year:"FullYear",min:"Minutes",mo:"Month",sec:"Seconds",hr:"Hours"},function(e,d){Date.Methods[d]=e});var c=function(e,d){return"0".repeat(d-e.toString().length)+e};Date.implement({set:function(g,e){switch($type(g)){case"object":for(var f in g){this.set(f,g[f])}break;case"string":g=g.toLowerCase();var d=Date.Methods;if(d[g]){this["set"+d[g]](e)}}return this},get:function(e){e=e.toLowerCase();var d=Date.Methods;if(d[e]){return this["get"+d[e]]()}return null},clone:function(){return new Date(this.get("time"))},increment:function(d,e){return this.multiply(d,e)},decrement:function(d,e){return this.multiply(d,e,false)},multiply:function(e,j,d){e=e||"day";j=$pick(j,1);d=$pick(d,true);var k=d?1:-1;var h=this.format("%m").toInt()-1;var f=this.format("%Y").toInt();var g=this.get("time");var i=0;switch(e){case"year":j.times(function(l){if(Date.isLeapYear(f+l)&&h>1&&k>0){l++}if(Date.isLeapYear(f+l)&&h<=1&&k<0){l--}i+=Date.units.year(f+l)});break;case"month":j.times(function(n){if(k<0){n++}var m=h+(n*k);var l=l;if(m<0){l--;m=12+m}if(m>11||m<0){l+=(m/12).toInt()*k;m=m%12}i+=Date.units.month(m,l)});break;case"day":return this.set("date",this.get("date")+(k*j));default:i=Date.units[e]()*j;break}this.set("time",g+(i*k));return this},isLeapYear:function(){return Date.isLeapYear(this.get("year"))},clearTime:function(){["hr","min","sec","ms"].each(function(d){this.set(d,0)},this);return this},diff:function(h,f){f=f||"day";if($type(h)=="string"){h=Date.parse(h)}switch(f){case"year":return h.format("%Y").toInt()-this.format("%Y").toInt();break;case"month":var e=(h.format("%Y").toInt()-this.format("%Y").toInt())*12;return e+h.format("%m").toInt()-this.format("%m").toInt();break;default:var g=h.get("time")-this.get("time");if(g<0&&Date.units[f]()>(-1*(g))){return 0}else{if(g>=0&&g<Date.units[f]()){return 0}}return((h.get("time")-this.get("time"))/Date.units[f]()).round()}return null},getWeek:function(){var d=(new Date(this.get("year"),0,1)).get("date");return Math.round((this.get("dayofyear")+(d>3?d-4:d+3))/7)},getTimezone:function(){return this.toString().replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3")},getGMTOffset:function(){var d=this.get("timezoneOffset");return((d>0)?"-":" + ")+c(Math.floor(Math.abs(d)/60),2)+c(d%60,2)},parse:function(d){this.set("time",Date.parse(d));return this},isValid:function(d){return!!(d||this).valueOf()},format:function(e){if(!this.isValid()){return"invalid date"}e=e||"%x %X";e=({db:"%Y-%m-%d %H:%M:%S",compact:"%Y%m%dT%H%M%S",iso8601:"%Y-%m-%dT%H:%M:%S%T",rfc822:"%a, %d %b %Y %H:%M:%S %Z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"})[e.toLowerCase()]||e;var g=this;return e.replace(/\%([aAbBcdHIjmMpSUWwxXyYTZ\%])/g,function(d,f){switch(f){case"a":return Date.getMsg("days")[g.get("day")].substr(0,3);case"A":return Date.getMsg("days")[g.get("day")];case"b":return Date.getMsg("months")[g.get("month")].substr(0,3);case"B":return Date.getMsg("months")[g.get("month")];case"c":return g.toString();case"d":return c(g.get("date"),2);case"H":return c(g.get("hr"),2);case"I":return((g.get("hr")%12)||12);case"j":return c(g.get("dayofyear"),3);case"m":return c((g.get("mo")+1),2);case"M":return c(g.get("min"),2);case"p":return Date.getMsg(g.get("hr")<12?"AM":"PM");case"S":return c(g.get("seconds"),2);case"U":return c(g.get("week"),2);case"W":throw new Error("%W is not supported yet");case"w":return g.get("day");case"x":return g.format(Date.getMsg("shortDate"));case"X":return g.format(Date.getMsg("shortTime"));case"y":return g.get("year").toString().substr(2);case"Y":return g.get("year");case"T":return g.get("GMTOffset");case"Z":return g.get("Timezone");case"%":return"%"}return f})},setAMPM:function(d){d=d.toUpperCase();if(this.format("%H").toInt()>11&&d=="AM"){return this.decrement("hour",12)}else{if(this.format("%H").toInt()<12&&d=="PM"){return this.increment("hour",12)}}return this}});Date.alias("diff","compare");Date.alias("format","strftime");var b=Date.parse;var a=function(e,d){if(Date.isLeapYear(d.toInt())&&e===1){return 29}return[31,28,31,30,31,30,31,31,30,31,30,31][e]};$extend(Date,{getMsg:function(e,d){return MooTools.lang.get("Date",e,d)},units:{ms:$lambda(1),second:$lambda(1000),minute:$lambda(60000),hour:$lambda(3600000),day:$lambda(86400000),week:$lambda(608400000),month:function(g,e){var f=new Date();return a($pick(g,f.format("%m").toInt()),$pick(e,f.format("%Y").toInt()))*86400000},year:function(d){d=d||new Date().format("%Y").toInt();return Date.isLeapYear(d.toInt())?31622400000:31536000000}},isLeapYear:function(d){return new Date(d,1,29).getDate()==29},fixY2K:function(f){if(!isNaN(f)){var e=new Date(f);if(e.get("year")<2000&&f.toString().indexOf(e.get("year"))<0){e.increment("year",100)}return e}else{return f}},parse:function(f){var e=$type(f);if(e=="number"){return new Date(f)}if(e!="string"){return f}if(!f.length){return null}var d;Date.parsePatterns.each(function(j,g){if(d){return}var h=j.re.exec(f);if(h){d=j.handler(h)}});return d||new Date(b(f))},parseDay:function(d,g){var f=-1;switch($type(d)){case"number":f=Date.getMsg("days")[d-1]||false;if(!f){throw new Error("Invalid day index value must be between 1 and 7");}break;case"string":var e=Date.getMsg("days").filter(function(h){return this.test(h)},new RegExp("^"+d,"i"));if(!e.length){throw new Error("Invalid day string");}if(e.length>1){throw new Error("Ambiguous day");}f=e[0]}return(g)?Date.getMsg("days").indexOf(f):f},parseMonth:function(g,f){var e=-1;switch($type(g)){case"object":e=Date.getMsg("months")[g.get("mo")];break;case"number":e=Date.getMsg("months")[g-1]||false;if(!e){throw new Error("Invalid month index value must be between 1 and 12:"+index);}break;case"string":var d=Date.getMsg("months").filter(function(h){return this.test(h)},new RegExp("^"+g,"i"));if(!d.length){throw new Error("Invalid month string");}if(d.length>1){throw new Error("Ambiguous month");}e=d[0]}return(f)?Date.getMsg("months").indexOf(e):e},parseUTC:function(e){var d=new Date(e);var f=Date.UTC(d.get("year"),d.get("mo"),d.get("date"),d.get("hr"),d.get("min"),d.get("sec"));return new Date(f)},orderIndex:function(d){return Date.getMsg("dateOrder").indexOf(d)+1},parsePatterns:[{re:/^(\d{4})[\.\-\/](\d{1,2})[\.\-\/](\d{1,2})$/,handler:function(d){return new Date(d[1],d[2]-1,d[3])}},{re:/^(\d{4})[\.\-\/](\d{1,2})[\.\-\/](\d{1,2})\s(\d{1,2}):(\d{1,2})(?:\:(\d{1,2}))?(\w{2})?$/,handler:function(e){var f=new Date(e[1],e[2]-1,e[3]);f.set("hr",e[4]);f.set("min",e[5]);f.set("sec",e[6]||0);if(e[7]){f.set("ampm",e[7])}return f}},{re:/^(\d{1,2})[\.\-\/](\d{1,2})[\.\-\/](\d{2,4})$/,handler:function(e){var f=new Date(e[Date.orderIndex("year")],e[Date.orderIndex("month")]-1,e[Date.orderIndex("date")]);return Date.fixY2K(f)}},{re:/^(\d{1,2})[\.\-\/](\d{1,2})[\.\-\/](\d{2,4})\s(\d{1,2})[:\.](\d{1,2})(?:[\:\.](\d{1,2}))?(\w{2})?$/,handler:function(e){var f=new Date(e[Date.orderIndex("year")],e[Date.orderIndex("month")]-1,e[Date.orderIndex("date")]);f.set("hr",e[4]);f.set("min",e[5]);f.set("sec",e[6]||0);if(e[7]){f.set("ampm",e[7])}return Date.fixY2K(f)}}]})})();["LastDayOfMonth","Ordinal"].each(function(a){Date.Methods[a.toLowerCase()]=a});Date.implement({timeDiffInWords:function(a){return Date.distanceOfTimeInWords(this,a||new Date)},getOrdinal:function(a){return Date.getMsg("ordinal",a||this.get("date"))},getDayOfYear:function(){return((Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()+1,0,0,0)-Date.UTC(this.getFullYear(),0,1,0,0,0))/Date.units.day())},getLastDayOfMonth:function(){var a=this.clone();a.setMonth(a.getMonth()+1,0);return a.getDate()}});Date.alias("timeDiffInWords","timeAgoInWords");$extend(Date,{distanceOfTimeInWords:function(b,a){return this.getTimePhrase(((a.getTime()-b.getTime())/1000).toInt(),b,a)},getTimePhrase:function(d,c,a){var b=function(){var e;if(d>=0){e="Ago"}else{d=d*-1;e="Until"}if(d<60){return Date.getMsg("lessThanMinute"+e,d)}else{if(d<120){return Date.getMsg("minute"+e,d)}else{if(d<(45*60)){d=(d/60).round();return Date.getMsg("minutes"+e,d)}else{if(d<(90*60)){return Date.getMsg("hour"+e,d)}else{if(d<(24*60*60)){d=(d/3600).round();return Date.getMsg("hours"+e,d)}else{if(d<(48*60*60)){return Date.getMsg("day"+e,d)}else{d=(d/86400).round();return Date.getMsg("days"+e,d)}}}}}}};return b().substitute({delta:d})}});Date.parsePatterns.extend([{re:/^(\d{4})(?:-?(\d{2})(?:-?(\d{2})(?:[T ](\d{2})(?::?(\d{2})(?::?(\d{2})(?:\.(\d+))?)?)?(?:Z|(?:([-+])(\d{2})(?::?(\d{2}))?)?)?)?)?)?$/,handler:function(a){var c=0;var b=new Date(a[1],0,1);if(a[3]){b.set("date",a[3])}if(a[2]){b.set("mo",a[2]-1)}if(a[4]){b.set("hr",a[4])}if(a[5]){b.set("min",a[5])}if(a[6]){b.set("sec",a[6])}if(a[7]){b.set("ms",("0."+a[7]).toInt()*1000)}if(a[9]){c=(a[9].toInt()*60)+a[10].toInt();c*=((a[8]=="-")?1:-1)}b.setTime((b*1)+(c*60*1000).toInt());return b}},{re:/^tod/i,handler:function(){return new Date()}},{re:/^tom/i,handler:function(){return new Date().increment()}},{re:/^yes/i,handler:function(){return new Date().decrement()}},{re:/^(\d{1,2})(st|nd|rd|th)?$/i,handler:function(a){var b=new Date();b.set("date",a[1].toInt());return b}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+)$/i,handler:function(a){var b=new Date();b.set("mo",Date.parseMonth(a[2],true),a[1].toInt());return b}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+),? (\d{4})$/i,handler:function(a){var b=new Date();b.set("mo",Date.parseMonth(a[2],true),a[1].toInt());b.setYear(a[3]);return b}},{re:/^(\w+) (\d{1,2})(?:st|nd|rd|th)?,? (\d{4})$/i,handler:function(a){var b=new Date();b.set("mo",Date.parseMonth(a[1],true),a[2].toInt());b.setYear(a[3]);return b}},{re:/^next (\w+)$/i,handler:function(e){var f=new Date();var b=f.getDay();var c=Date.parseDay(e[1],true);var a=c-b;if(c<=b){a+=7}f.set("date",f.getDate()+a);return f}},{re:/^\d+\s[a-zA-z]..\s\d.\:\d.$/,handler:function(b){var c=new Date();b=b[0].split(" ");c.set("date",b[0]);var a;Date.getMsg("months").each(function(e,d){if(new RegExp("^"+b[1]).test(e)){a=d}});c.set("mo",a);c.set("hr",b[2].split(":")[0]);c.set("min",b[2].split(":")[1]);c.set("ms",0);return c}},{re:/^last (\w+)$/i,handler:function(a){return Date.parse("next "+a[0]).decrement("day",7)}}]);Hash.implement({getFromPath:function(a){var b=this.getClean();a.replace(/\[([^\]]+)\]|\.([^.[]+)|[^[.]+/g,function(c){if(!b){return null}var d=arguments[2]||arguments[1]||arguments[0];b=(d in b)?b[d]:null;return c});return b},cleanValues:function(a){a=a||$defined;this.each(function(c,b){if(!a(c)){this.erase(b)}},this);return this},run:function(){var a=arguments;this.each(function(c,b){if($type(c)=="function"){c.run(a)}})}});(function(){var b=["À","à","Á","á","Â","â","Ã","ã","Ä","ä","Å","å","Ă","ă","Ą","ą","Ć","ć","Č","č","Ç","ç","Ď","ď","Đ","đ","È","è","É","é","Ê","ê","Ë","ë","Ě","ě","Ę","ę","Ğ","ğ","Ì","ì","Í","í","Î","î","Ï","ï","Ĺ","ĺ","Ľ","ľ","Ł","ł","Ñ","ñ","Ň","ň","Ń","ń","Ò","ò","Ó","ó","Ô","ô","Õ","õ","Ö","ö","Ø","ø","ő","Ř","ř","Ŕ","ŕ","Š","š","Ş","ş","Ś","ś","Ť","ť","Ť","ť","Ţ","ţ","Ù","ù","Ú","ú","Û","û","Ü","ü","Ů","ů","Ÿ","ÿ","ý","Ý","Ž","ž","Ź","ź","Ż","ż","Þ","þ","Ð","ð","ß","Œ","œ","Æ","æ","µ"];var a=["A","a","A","a","A","a","A","a","Ae","ae","A","a","A","a","A","a","C","c","C","c","C","c","D","d","D","d","E","e","E","e","E","e","E","e","E","e","E","e","G","g","I","i","I","i","I","i","I","i","L","l","L","l","L","l","N","n","N","n","N","n","O","o","O","o","O","o","O","o","Oe","oe","O","o","o","R","r","R","r","S","s","S","s","S","s","T","t","T","t","T","t","U","u","U","u","U","u","Ue","ue","U","u","Y","y","Y","y","Z","z","Z","z","Z","z","TH","th","DH","dh","ss","OE","oe","AE","ae","u"];var c={"[\xa0\u2002\u2003\u2009]":" ","\xb7":"*","[\u2018\u2019]":"'","[\u201c\u201d]":'"',"\u2026":"...","\u2013":"-","\u2014":"--","\uFFFD":"&raquo;"};String.implement({standardize:function(){var d=this;b.each(function(f,e){d=d.replace(new RegExp(f,"g"),a[e])});return d},repeat:function(d){return new Array(d+1).join(this)},pad:function(e,g,d){if(this.length>=e){return this}g=g||" ";var f=g.repeat(e-this.length).substr(0,e-this.length);if(!d||d=="right"){return this+f}if(d=="left"){return f+this}return f.substr(0,(f.length/2).floor())+this+f.substr(0,(f.length/2).ceil())},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,"")},tidy:function(){var d=this.toString();$each(c,function(f,e){d=d.replace(new RegExp(e,"g"),f)});return d}})})();String.implement({parseQueryString:function(){var b=this.split(/[&;]/),a={};if(b.length){b.each(function(g){var c=g.indexOf("="),d=c<0?[""]:g.substr(0,c).match(/[^\]\[]+/g),e=decodeURIComponent(g.substr(c+1)),f=a;d.each(function(j,h){var k=f[j];if(h<d.length-1){f=f[j]=k||{}}else{if($type(k)=="array"){k.push(e)}else{f[j]=$defined(k)?[k,e]:e}}})})}return a},cleanQueryString:function(a){return this.split("&").filter(function(e){var b=e.indexOf("="),c=b<0?"":e.substr(0,b),d=e.substr(b+1);return a?a.run([c,d]):$chk(d)}).join("&")}});var URI=new Class({Implements:Options,regex:/^(?:(\w+):)?(?:\/\/(?:(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,parts:["scheme","user","password","host","port","directory","file","query","fragment"],schemes:{http:80,https:443,ftp:21,rtsp:554,mms:1755,file:0},initialize:function(b,a){this.setOptions(a);var c=this.options.base||URI.base;b=b||c;if(b&&b.parsed){this.parsed=$unlink(b.parsed)}else{this.set("value",b.href||b.toString(),c?new URI(c):false)}},parse:function(c,b){var a=c.match(this.regex);if(!a){return false}a.shift();return this.merge(a.associate(this.parts),b)},merge:function(b,a){if(!b.scheme&&!a.scheme){return false}if(a){this.parts.every(function(c){if(b[c]){return false}b[c]=a[c]||"";return true})}b.port=b.port||this.schemes[b.scheme.toLowerCase()];b.directory=b.directory?this.parseDirectory(b.directory,a?a.directory:""):"/";return b},parseDirectory:function(b,c){b=(b.substr(0,1)=="/"?"":(c||"/"))+b;if(!b.test(URI.regs.directoryDot)){return b}var a=[];b.replace(URI.regs.endSlash,"").split("/").each(function(d){if(d==".."&&a.length>0){a.pop()}else{if(d!="."){a.push(d)}}});return a.join("/")+"/"},combine:function(a){return a.value||a.scheme+"://"+(a.user?a.user+(a.password?":"+a.password:"")+"@":"")+(a.host||"")+(a.port&&a.port!=this.schemes[a.scheme]?":"+a.port:"")+(a.directory||"/")+(a.file||"")+(a.query?"?"+a.query:"")+(a.fragment?"#"+a.fragment:"")},set:function(b,d,c){if(b=="value"){var a=d.match(URI.regs.scheme);if(a){a=a[1]}if(a&&!$defined(this.schemes[a.toLowerCase()])){this.parsed={scheme:a,value:d}}else{this.parsed=this.parse(d,(c||this).parsed)||(a?{scheme:a,value:d}:{value:d})}}else{this.parsed[b]=d}return this},get:function(a,b){switch(a){case"value":return this.combine(this.parsed,b?b.parsed:false);case"data":return this.getData()}return this.parsed[a]||undefined},go:function(){document.location.href=this.toString()},toURI:function(){return this},getData:function(c,b){var a=this.get(b||"query");if(!$chk(a)){return c?null:{}}var d=a.parseQueryString();return c?d[c]:d},setData:function(a,c,b){if($type(arguments[0])=="string"){a=this.getData();a[arguments[0]]=arguments[1]}else{if(c){a=$merge(this.getData(),a)}}return this.set(b||"query",Hash.toQueryString(a))},clearData:function(a){return this.set(a||"query","")}});["toString","valueOf"].each(function(a){URI.prototype[a]=function(){return this.get("value")}});URI.regs={endSlash:/\/$/,scheme:/^(\w+):/,directoryDot:/\.\/|\.$/};URI.base=new URI($$("base[href]").getLast(),{base:document.location});String.implement({toURI:function(a){return new URI(this,a)}});URI=Class.refactor(URI,{combine:function(f,e){if(!e||f.scheme!=e.scheme||f.host!=e.host||f.port!=e.port){return this.previous.apply(this,arguments)}var a=f.file+(f.query?"?"+f.query:"")+(f.fragment?"#"+f.fragment:"");if(!e.directory){return(f.directory||(f.file?"":"./"))+a}var d=e.directory.split("/"),c=f.directory.split("/"),g="",h;var b=0;for(h=0;h<d.length&&h<c.length&&d[h]==c[h];h++){}for(b=0;b<d.length-h-1;b++){g+="../"}for(b=h;b<c.length-1;b++){g+=c[b]+"/"}return(g||(f.file?"":"./"))+a},toAbsolute:function(a){a=new URI(a);if(a){a.set("directory","").set("file","")}return this.toRelative(a)},toRelative:function(a){return this.get("value",new URI(a))}});Element.implement({tidy:function(){this.set("value",this.get("value").tidy())},getTextInRange:function(b,a){return this.get("value").substring(b,a)},getSelectedText:function(){if(document.selection&&document.selection.createRange){return document.selection.createRange().text}return this.getTextInRange(this.getSelectionStart(),this.getSelectionEnd())},getSelectedRange:function(){if($defined(this.selectionStart)){return{start:this.selectionStart,end:this.selectionEnd}}var e={start:0,end:0};var a=this.getDocument().selection.createRange();if(!a||a.parentElement()!=this){return e}var c=a.duplicate();if(this.type=="text"){e.start=0-c.moveStart("character",-100000);e.end=e.start+a.text.length}else{var b=this.get("value");var d=b.length-b.match(/[\n\r]*$/)[0].length;c.moveToElementText(this);c.setEndPoint("StartToEnd",a);e.end=d-c.text.length;c.setEndPoint("StartToStart",a);e.start=d-c.text.length}return e},getSelectionStart:function(){return this.getSelectedRange().start},getSelectionEnd:function(){return this.getSelectedRange().end},setCaretPosition:function(a){if(a=="end"){a=this.get("value").length}this.selectRange(a,a);return this},getCaretPosition:function(){return this.getSelectedRange().start},selectRange:function(e,a){if(this.createTextRange){var c=this.get("value");var d=c.substr(e,a-e).replace(/\r/g,"").length;e=c.substr(0,e).replace(/\r/g,"").length;var b=this.createTextRange();b.collapse(true);b.moveEnd("character",e+d);b.moveStart("character",e);b.select()}else{this.focus();this.setSelectionRange(e,a)}return this},insertAtCursor:function(b,a){var d=this.getSelectedRange();var c=this.get("value");this.set("value",c.substring(0,d.start)+b+c.substring(d.end,c.length));if($pick(a,true)){this.selectRange(d.start,d.start+b.length)}else{this.setCaretPosition(d.start+b.length)}return this},insertAroundCursor:function(b,a){b=$extend({before:"",defaultMiddle:"",after:""},b);var c=this.getSelectedText()||b.defaultMiddle;var g=this.getSelectedRange();var f=this.get("value");if(g.start==g.end){this.set("value",f.substring(0,g.start)+b.before+c+b.after+f.substring(g.end,f.length));this.selectRange(g.start+b.before.length,g.end+b.before.length+c.length)}else{var d=f.substring(g.start,g.end);this.set("value",f.substring(0,g.start)+b.before+d+b.after+f.substring(g.end,f.length));var e=g.start+b.before.length;if($pick(a,true)){this.selectRange(e,e+d.length)}else{this.setCaretPosition(e+f.length)}}return this}});Element.implement({measure:function(e){var g=function(h){return!!(!h||h.offsetHeight||h.offsetWidth)};if(g(this)){return e.apply(this)}var d=this.getParent(),b=[],f=[];while(!g(d)&&d!=document.body){b.push(d.expose());d=d.getParent()}var c=this.expose();var a=e.apply(this);c();b.each(function(h){h()});return a},expose:function(){if(this.getStyle("display")!="none"){return $empty}var a=this.getStyles("display","position","visibility");return this.setStyles({display:"block",position:"absolute",visibility:"hidden"}).setStyles.pass(a,this)},getDimensions:function(a){a=$merge({computeSize:false},a);var d={};var c=function(f,e){return(e.computeSize)?f.getComputedSize(e):f.getSize()};if(this.getStyle("display")=="none"){d=this.measure(function(){return c(this,a)})}else{try{d=c(this,a)}catch(b){}}return $chk(d.x)?$extend(d,{width:d.x,height:d.y}):$extend(d,{x:d.width,y:d.height})},getComputedSize:function(a){a=$merge({styles:["padding","border"],plains:{height:["top","bottom"],width:["left","right"]},mode:"both"},a);var c={width:0,height:0};switch(a.mode){case"vertical":delete c.width;delete a.plains.width;break;case"horizontal":delete c.height;delete a.plains.height;break}var b=[];$each(a.plains,function(g,f){g.each(function(h){a.styles.each(function(i){b.push((i=="border")?i+"-"+h+"-width":i+"-"+h)})})});var e={};b.each(function(f){e[f]=this.getComputedStyle(f)},this);var d=[];$each(a.plains,function(g,f){var h=f.capitalize();c["total"+h]=0;c["computed"+h]=0;g.each(function(i){c["computed"+i.capitalize()]=0;b.each(function(k,j){if(k.test(i)){e[k]=e[k].toInt()||0;c["total"+h]=c["total"+h]+e[k];c["computed"+i.capitalize()]=c["computed"+i.capitalize()]+e[k]}if(k.test(i)&&f!=k&&(k.test("border")||k.test("padding"))&&!d.contains(k)){d.push(k);c["computed"+h]=c["computed"+h]-e[k]}})})});["Width","Height"].each(function(g){var f=g.toLowerCase();if(!$chk(c[f])){return}c[f]=c[f]+this["offset"+g]+c["computed"+g];c["total"+g]=c[f]+c["total"+g];delete c["computed"+g]},this);return $extend(e,c)}});(function(){var a=false;window.addEvent("domready",function(){var b=new Element("div").setStyles({position:"fixed",top:0,right:0}).inject(document.body);a=(b.offsetTop===0);b.dispose()});Element.implement({pin:function(c){if(this.getStyle("display")=="none"){return null}var d;if(c!==false){d=this.getPosition();if(!this.retrieve("pinned")){var f={top:d.y-window.getScroll().y,left:d.x-window.getScroll().x};if(a){this.setStyle("position","fixed").setStyles(f)}else{this.store("pinnedByJS",true);this.setStyles({position:"absolute",top:d.y,left:d.x});this.store("scrollFixer",(function(){if(this.retrieve("pinned")){this.setStyles({top:f.top.toInt()+window.getScroll().y,left:f.left.toInt()+window.getScroll().x})}}).bind(this));window.addEvent("scroll",this.retrieve("scrollFixer"))}this.store("pinned",true)}}else{var e;if(!Browser.Engine.trident){if(this.getParent().getComputedStyle("position")!="static"){e=this.getParent()}else{e=this.getParent().getOffsetParent()}}d=this.getPosition(e);this.store("pinned",false);var b;if(a&&!this.retrieve("pinnedByJS")){b={top:d.y+window.getScroll().y,left:d.x+window.getScroll().x}}else{this.store("pinnedByJS",false);window.removeEvent("scroll",this.retrieve("scrollFixer"));b={top:d.y,left:d.x}}this.setStyles($merge(b,{position:"absolute"}))}return this.addClass("isPinned")},unpin:function(){return this.pin(false).removeClass("isPinned")},togglepin:function(){this.pin(!this.retrieve("pinned"))}})})();(function(){var a=Element.prototype.position;Element.implement({position:function(r){if(r&&($defined(r.x)||$defined(r.y))){return a?a.apply(this,arguments):this}$each(r||{},function(t,s){if(!$defined(t)){delete r[s]}});r=$merge({relativeTo:document.body,position:{x:"center",y:"center"},edge:false,offset:{x:0,y:0},returnPos:false,relFixedPosition:false,ignoreMargins:false,allowNegative:false},r);var b={x:0,y:0};var h=false;var c=this.measure(function(){return $(this.getOffsetParent())});if(c&&c!=this.getDocument().body){b=c.measure(function(){return this.getPosition()});h=true;r.offset.x=r.offset.x-b.x;r.offset.y=r.offset.y-b.y}var q=function(s){if($type(s)!="string"){return s}s=s.toLowerCase();var t={};if(s.test("left")){t.x="left"}else{if(s.test("right")){t.x="right"}else{t.x="center"}}if(s.test("upper")||s.test("top")){t.y="top"}else{if(s.test("bottom")){t.y="bottom"}else{t.y="center"}}return t};r.edge=q(r.edge);r.position=q(r.position);if(!r.edge){if(r.position.x=="center"&&r.position.y=="center"){r.edge={x:"center",y:"center"}}else{r.edge={x:"left",y:"top"}}}this.setStyle("position","absolute");var p=$(r.relativeTo)||document.body;var i=p==document.body?window.getScroll():p.getPosition();var o=i.y;var g=i.x;if(Browser.Engine.trident){var l=p.getScrolls();o+=l.y;g+=l.x}var j=this.getDimensions({computeSize:true,styles:["padding","border","margin"]});if(r.ignoreMargins){r.offset.x=r.offset.x-j["margin-left"];r.offset.y=r.offset.y-j["margin-top"]}var n={};var d=r.offset.y;var e=r.offset.x;var k=window.getSize();switch(r.position.x){case"left":n.x=g+e;break;case"right":n.x=g+e+p.offsetWidth;break;default:n.x=g+((p==document.body?k.x:p.offsetWidth)/2)+e;break}switch(r.position.y){case"top":n.y=o+d;break;case"bottom":n.y=o+d+p.offsetHeight;break;default:n.y=o+((p==document.body?k.y:p.offsetHeight)/2)+d;break}if(r.edge){var m={};switch(r.edge.x){case"left":m.x=0;break;case"right":m.x=-j.x-j.computedRight-j.computedLeft;break;default:m.x=-(j.x/2);break}switch(r.edge.y){case"top":m.y=0;break;case"bottom":m.y=-j.y-j.computedTop-j.computedBottom;break;default:m.y=-(j.y/2);break}n.x=n.x+m.x;n.y=n.y+m.y}n={left:((n.x>=0||h||r.allowNegative)?n.x:0).toInt(),top:((n.y>=0||h||r.allowNegative)?n.y:0).toInt()};if(p.getStyle("position")=="fixed"||r.relFixedPosition){var f=window.getScroll();n.top=n.top.toInt()+f.y;n.left=n.left.toInt()+f.x}if(r.returnPos){return n}else{this.setStyles(n)}return this}})})();Element.implement({isDisplayed:function(){return this.getStyle("display")!="none"},toggle:function(){return this[this.isDisplayed()?"hide":"show"]()},hide:function(){var b;try{if("none"!=this.getStyle("display")){b=this.getStyle("display")}}catch(a){}return this.store("originalDisplay",b||"block").setStyle("display","none")},show:function(a){return this.setStyle("display",a||this.retrieve("originalDisplay")||"block")},swapClass:function(a,b){return this.removeClass(a).addClass(b)}});var InputValidator=new Class({Implements:[Options],options:{errorMsg:"Validation failed.",test:function(a){return true}},initialize:function(b,a){this.setOptions(a);this.className=b},test:function(b,a){if($(b)){return this.options.test($(b),a||this.getProps(b))}else{return false}},getError:function(c,a){var b=this.options.errorMsg;if($type(b)=="function"){b=b($(c),a||this.getProps(c))}return b},getProps:function(a){if(!$(a)){return{}}return a.get("validatorProps")}});Element.Properties.validatorProps={set:function(a){return this.eliminate("validatorProps").store("validatorProps",a)},get:function(a){if(a){this.set(a)}if(this.retrieve("validatorProps")){return this.retrieve("validatorProps")}if(this.getProperty("validatorProps")){try{this.store("validatorProps",JSON.decode(this.getProperty("validatorProps")))}catch(c){return{}}}else{var b=this.get("class").split(" ").filter(function(d){return d.test(":")});if(!b.length){this.store("validatorProps",{})}else{a={};b.each(function(d){var f=d.split(":");if(f[1]){try{a[f[0]]=JSON.decode(f[1])}catch(g){}}});this.store("validatorProps",a)}}return this.retrieve("validatorProps")}};var FormValidator=new Class({Implements:[Options,Events],Binds:["onSubmit"],options:{fieldSelectors:"input, select, textarea",ignoreHidden:true,useTitles:false,evaluateOnSubmit:true,evaluateFieldsOnBlur:true,evaluateFieldsOnChange:true,serial:true,stopOnFailure:true,warningPrefix:function(){return FormValidator.getMsg("warningPrefix")||"Warning: "},errorPrefix:function(){return FormValidator.getMsg("errorPrefix")||"Error: "}},initialize:function(b,a){this.setOptions(a);this.element=$(b);this.element.store("validator",this);this.warningPrefix=$lambda(this.options.warningPrefix)();this.errorPrefix=$lambda(this.options.errorPrefix)();if(this.options.evaluateOnSubmit){this.element.addEvent("submit",this.onSubmit)}if(this.options.evaluateFieldsOnBlur){this.watchFields(this.getFields())}},toElement:function(){return this.element},getFields:function(){return(this.fields=this.element.getElements(this.options.fieldSelectors))},watchFields:function(a){a.each(function(b){b.addEvent("blur",this.validationMonitor.pass([b,false],this));if(this.options.evaluateFieldsOnChange){b.addEvent("change",this.validationMonitor.pass([b,true],this))}},this)},validationMonitor:function(){$clear(this.timer);this.timer=this.validateField.delay(50,this,arguments)},onSubmit:function(a){if(!this.validate(a)&&a){a.preventDefault()}else{this.reset()}},reset:function(){this.getFields().each(this.resetField,this);return this},validate:function(b){var a=this.getFields().map(function(c){return this.validateField(c,true)},this).every(function(c){return c});this.fireEvent("formValidate",[a,this.element,b]);if(this.options.stopOnFailure&&!a&&b){b.preventDefault()}return a},validateField:function(i,a){if(this.paused){return true}i=$(i);var d=!i.hasClass("validation-failed");var f,h;if(this.options.serial&&!a){f=this.element.getElement(".validation-failed");h=this.element.getElement(".warning")}if(i&&(!f||a||i.hasClass("validation-failed")||(f&&!this.options.serial))){var c=i.className.split(" ").some(function(j){return this.getValidator(j)},this);var g=[];i.className.split(" ").each(function(j){if(j&&!this.test(j,i)){g.include(j)}},this);d=g.length===0;if(c&&!i.hasClass("warnOnly")){if(d){i.addClass("validation-passed").removeClass("validation-failed");this.fireEvent("elementPass",i)}else{i.addClass("validation-failed").removeClass("validation-passed");this.fireEvent("elementFail",[i,g])}}if(!h){var e=i.className.split(" ").some(function(j){if(j.test("^warn-")||i.hasClass("warnOnly")){return this.getValidator(j.replace(/^warn-/,""))}else{return null}},this);i.removeClass("warning");var b=i.className.split(" ").map(function(j){if(j.test("^warn-")||i.hasClass("warnOnly")){return this.test(j.replace(/^warn-/,""),i,true)}else{return null}},this)}}return d},test:function(b,d,e){var a=this.getValidator(b);d=$(d);if(d.hasClass("ignoreValidation")){return true}e=$pick(e,false);if(d.hasClass("warnOnly")){e=true}var c=a?a.test(d):true;if(a&&this.isVisible(d)){this.fireEvent("elementValidate",[c,d,b,e])}if(e){return true}return c},isVisible:function(a){if(!this.options.ignoreHidden){return true}while(a!=document.body){if($(a).getStyle("display")=="none"){return false}a=a.getParent()}return true},resetField:function(a){a=$(a);if(a){a.className.split(" ").each(function(b){if(b.test("^warn-")){b=b.replace(/^warn-/,"")}a.removeClass("validation-failed");a.removeClass("warning");a.removeClass("validation-passed")},this)}return this},stop:function(){this.paused=true;return this},start:function(){this.paused=false;return this},ignoreField:function(a,b){a=$(a);if(a){this.enforceField(a);if(b){a.addClass("warnOnly")}else{a.addClass("ignoreValidation")}}return this},enforceField:function(a){a=$(a);if(a){a.removeClass("warnOnly").removeClass("ignoreValidation")}return this}});FormValidator.getMsg=function(a){return MooTools.lang.get("FormValidator",a)};FormValidator.adders={validators:{},add:function(b,a){this.validators[b]=new InputValidator(b,a);if(!this.initialize){this.implement({validators:this.validators})}},addAllThese:function(a){$A(a).each(function(b){this.add(b[0],b[1])},this)},getValidator:function(a){return this.validators[a.split(":")[0]]}};$extend(FormValidator,FormValidator.adders);FormValidator.implement(FormValidator.adders);FormValidator.add("IsEmpty",{errorMsg:false,test:function(a){if(a.type=="select-one"||a.type=="select"){return!(a.selectedIndex>=0&&a.options[a.selectedIndex].value!="")}else{return((a.get("value")==null)||(a.get("value").length==0))}}});FormValidator.addAllThese([["required",{errorMsg:function(){return FormValidator.getMsg("required")},test:function(a){return!FormValidator.getValidator("IsEmpty").test(a)}}],["minLength",{errorMsg:function(a,b){if($type(b.minLength)){return FormValidator.getMsg("minLength").substitute({minLength:b.minLength,length:a.get("value").length})}else{return""}},test:function(a,b){if($type(b.minLength)){return(a.get("value").length>=$pick(b.minLength,0))}else{return true}}}],["maxLength",{errorMsg:function(a,b){if($type(b.maxLength)){return FormValidator.getMsg("maxLength").substitute({maxLength:b.maxLength,length:a.get("value").length})}else{return""}},test:function(a,b){return(a.get("value").length<=$pick(b.maxLength,10000))}}],["validate-integer",{errorMsg:FormValidator.getMsg.pass("integer"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^-?[1-9]\d*$/).test(a.get("value"))}}],["validate-numeric",{errorMsg:FormValidator.getMsg.pass("numeric"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^-?(?:0$0(?=\d*\.)|[1-9]|0)\d*(\.\d+)?$/).test(a.get("value"))}}],["validate-digits",{errorMsg:FormValidator.getMsg.pass("digits"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^[\d() .:\-\+#]+$/.test(a.get("value")))}}],["validate-alpha",{errorMsg:FormValidator.getMsg.pass("alpha"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^[a-zA-Z]+$/).test(a.get("value"))}}],["validate-alphanum",{errorMsg:FormValidator.getMsg.pass("alphanum"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||!(/\W/).test(a.get("value"))}}],["validate-date",{errorMsg:function(a,b){if(Date.parse){var c=b.dateFormat||"%x";return FormValidator.getMsg("dateSuchAs").substitute({date:new Date().format(c)})}else{return FormValidator.getMsg("dateInFormatMDY")}},test:function(a,b){if(FormValidator.getValidator("IsEmpty").test(a)){return true}var g;if(Date.parse){var f=b.dateFormat||"%x";g=Date.parse(a.get("value"));var e=g.format(f);if(e!="invalid date"){a.set("value",e)}return!isNaN(g)}else{var c=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!c.test(a.get("value"))){return false}g=new Date(a.get("value").replace(c,"$1/$2/$3"));return(parseInt(RegExp.$1,10)==(1+g.getMonth()))&&(parseInt(RegExp.$2,10)==g.getDate())&&(parseInt(RegExp.$3,10)==g.getFullYear())}}}],["validate-email",{errorMsg:FormValidator.getMsg.pass("email"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i).test(a.get("value"))}}],["validate-url",{errorMsg:FormValidator.getMsg.pass("url"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i).test(a.get("value"))}}],["validate-currency-dollar",{errorMsg:FormValidator.getMsg.pass("currencyDollar"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(a.get("value"))}}],["validate-one-required",{errorMsg:FormValidator.getMsg.pass("oneRequired"),test:function(a,b){var c=$(b["validate-one-required"])||a.parentNode;return c.getElements("input").some(function(d){if(["checkbox","radio"].contains(d.get("type"))){return d.get("checked")}return d.get("value")})}}]]);Element.Properties.validator={set:function(a){var b=this.retrieve("validator");if(b){b.setOptions(a)}return this.store("validator:options")},get:function(a){if(a||!this.retrieve("validator")){if(a||!this.retrieve("validator:options")){this.set("validator",a)}this.store("validator",new FormValidator(this,this.retrieve("validator:options")))}return this.retrieve("validator")}};Element.implement({validate:function(a){this.set("validator",a);return this.get("validator",a).validate()}});FormValidator.Inline=new Class({Extends:FormValidator,options:{scrollToErrorsOnSubmit:true,scrollFxOptions:{offset:{y:-20}}},initialize:function(b,a){this.parent(b,a);this.addEvent("onElementValidate",function(g,f,e,h){var d=this.getValidator(e);if(!g&&d.getError(f)){if(h){f.addClass("warning")}var c=this.makeAdvice(e,f,d.getError(f),h);this.insertAdvice(c,f);this.showAdvice(e,f)}else{this.hideAdvice(e,f)}})},makeAdvice:function(d,f,c,g){var e=(g)?this.warningPrefix:this.errorPrefix;e+=(this.options.useTitles)?f.title||c:c;var a=(g)?"warning-advice":"validation-advice";var b=this.getAdvice(d,f);if(b){b=b.clone(true,true).set("html",e).replaces(b)}else{b=new Element("div",{html:e,styles:{display:"none"},id:"advice-"+d+"-"+this.getFieldId(f)}).addClass(a)}f.store("advice-"+d,b);return b},getFieldId:function(a){return a.id?a.id:a.id="input_"+a.name},showAdvice:function(b,c){var a=this.getAdvice(b,c);if(a&&!c.retrieve(this.getPropName(b))&&(a.getStyle("display")=="none"||a.getStyle("visiblity")=="hidden"||a.getStyle("opacity")==0)){c.store(this.getPropName(b),true);if(a.reveal){a.reveal()}else{a.setStyle("display","block")}}},hideAdvice:function(b,c){var a=this.getAdvice(b,c);if(a&&c.retrieve(this.getPropName(b))){c.store(this.getPropName(b),false);if(a.dissolve){a.dissolve()}else{a.setStyle("display","none")}}},getPropName:function(a){return"advice"+a},resetField:function(a){a=$(a);if(!a){return this}this.parent(a);a.className.split(" ").each(function(b){this.hideAdvice(b,a)},this);return this},getAllAdviceMessages:function(d,c){var b=[];if(d.hasClass("ignoreValidation")&&!c){return b}var a=d.className.split(" ").some(function(g){var e=g.test("^warn-")||d.hasClass("warnOnly");if(e){g=g.replace(/^warn-/,"")}var f=this.getValidator(g);if(!f){return}b.push({message:f.getError(d),warnOnly:e,passed:f.test(),validator:f})},this);return b},getAdvice:function(a,b){return b.retrieve("advice-"+a)},insertAdvice:function(a,c){var b=c.get("validatorProps");if(!b.msgPos||!$(b.msgPos)){if(c.type.toLowerCase()=="radio"){c.getParent().adopt(a)}else{a.inject($(c),"after")}}else{$(b.msgPos).grab(a)}},validateField:function(h,g){var a=this.parent(h,g);if(this.options.scrollToErrorsOnSubmit&&!a){var c=$(this).getElement(".validation-failed");var e=$(this).getParent();var b=function(i){return i.getScrollSize().y!=i.getSize().y};var d;while(e!=document.body&&!b(e)){e=e.getParent()}var f=e.retrieve("fvScroller");if(!f&&window.Fx&&Fx.Scroll){f=new Fx.Scroll(e,{transition:"quad:out",offset:{y:-20}});e.store("fvScroller",f)}if(c){if(f){f.toElement(c)}else{e.scrollTo(e.getScroll().x,c.getPosition(e).y-20)}}}return a}});FormValidator.addAllThese([["validate-enforce-oncheck",{test:function(a,b){if(a.checked){var c=a.getParent("form").retrieve("validator");if(!c){return true}(b.toEnforce||$(b.enforceChildrenOf).getElements("input, select, textarea")).map(function(d){c.enforceField(d)})}return true}}],["validate-ignore-oncheck",{test:function(a,b){if(a.checked){var c=a.getParent("form").retrieve("validator");if(!c){return true}(b.toIgnore||$(b.ignoreChildrenOf).getElements("input, select, textarea")).each(function(d){c.ignoreField(d);c.resetField(d)})}return true}}],["validate-nospace",{errorMsg:function(){return FormValidator.getMsg("noSpace")},test:function(a,b){return!a.get("value").test(/\s/)}}],["validate-toggle-oncheck",{test:function(b,c){var d=b.getParent("form").retrieve("validator");if(!d){return true}var a=c.toToggle||$(c.toToggleChildrenOf).getElements("input, select, textarea");if(!b.checked){a.each(function(e){d.ignoreField(e);d.resetField(e)})}else{a.each(function(e){d.enforceField(e)})}return true}}],["validate-reqchk-bynode",{errorMsg:function(){return FormValidator.getMsg("reqChkByNode")},test:function(a,b){return($(b.nodeId).getElements(b.selector||"input[type=checkbox], input[type=radio]")).some(function(c){return c.checked})}}],["validate-required-check",{errorMsg:function(a,b){return b.useTitle?a.get("title"):FormValidator.getMsg("requiredChk")},test:function(a,b){return!!a.checked}}],["validate-reqchk-byname",{errorMsg:function(a,b){return FormValidator.getMsg("reqChkByName").substitute({label:b.label||a.get("type")})},test:function(b,d){var c=d.groupName||b.get("name");var a=$$(document.getElementsByName(c)).some(function(g,f){return g.checked});var e=b.getParent("form").retrieve("validator");if(a&&e){e.resetField(b)}return a}}],["validate-match",{errorMsg:function(a,b){return FormValidator.getMsg("match").substitute({matchName:b.matchName||$(b.matchInput).get("name")})},test:function(b,c){var d=b.get("value");var a=$(c.matchInput)&&$(c.matchInput).get("value");return d&&a?d==a:true}}],["validate-after-date",{errorMsg:function(a,b){return FormValidator.getMsg("afterDate").substitute({label:b.afterLabel||(b.afterElement?FormValidator.getMsg("startDate"):FormValidator.getMsg("currentDate"))})},test:function(b,c){var d=$(c.afterElement)?Date.parse($(c.afterElement).get("value")):new Date();var a=Date.parse(b.get("value"));return a&&d?a>=d:true}}],["validate-before-date",{errorMsg:function(a,b){return FormValidator.getMsg("beforeDate").substitute({label:b.beforeLabel||(b.beforeElement?FormValidator.getMsg("endDate"):FormValidator.getMsg("currentDate"))})},test:function(b,c){var d=Date.parse(b.get("value"));var a=$(c.beforeElement)?Date.parse($(c.beforeElement).get("value")):new Date();return a&&d?a>=d:true}}],["validate-custom-required",{errorMsg:function(){return FormValidator.getMsg("required")},test:function(a,b){return a.get("value")!=b.emptyValue}}],["validate-same-month",{errorMsg:function(a,b){var c=$(b.sameMonthAs)&&$(b.sameMonthAs).get("value");var d=a.get("value");if(d!=""){return FormValidator.getMsg(c?"sameMonth":"startMonth")}},test:function(a,b){var d=Date.parse(a.get("value"));var c=Date.parse($(b.sameMonthAs)&&$(b.sameMonthAs).get("value"));return d&&c?d.format("%B")==c.format("%B"):true}}]]);var OverText=new Class({Implements:[Options,Events,Class.Occlude],Binds:["reposition","assert","focus"],options:{element:"label",positionOptions:{position:"upperLeft",edge:"upperLeft",offset:{x:4,y:2}},poll:false,pollInterval:250},property:"OverText",initialize:function(b,a){this.element=$(b);if(this.occlude()){return this.occluded}this.setOptions(a);this.attach(this.element);OverText.instances.push(this);if(this.options.poll){this.poll()}return this},toElement:function(){return this.element},attach:function(){var a=this.options.textOverride||this.element.get("alt")||this.element.get("title");if(!a){return}this.text=new Element(this.options.element,{"class":"overTxtDiv",styles:{lineHeight:"normal",position:"absolute"},html:a,events:{click:this.hide.pass(true,this)}}).inject(this.element,"after");if(this.options.element=="label"){this.text.set("for",this.element.get("id"))}this.element.addEvents({focus:this.focus,blur:this.assert,change:this.assert}).store("OverTextDiv",this.text);window.addEvent("resize",this.reposition.bind(this));this.assert();this.reposition()},startPolling:function(){this.pollingPaused=false;return this.poll()},poll:function(a){if(this.poller&&!a){return this}var b=function(){if(!this.pollingPaused){this.assert()}}.bind(this);if(a){$clear(this.poller)}else{this.poller=b.periodical(this.options.pollInterval,this)}return this},stopPolling:function(){this.pollingPaused=true;return this.poll(true)},focus:function(){if(!this.text.isDisplayed()||this.element.get("disabled")){return}this.hide()},hide:function(){if(this.text.isDisplayed()&&!this.element.get("disabled")){this.text.hide();this.fireEvent("textHide",[this.text,this.element]);this.pollingPaused=true;try{this.element.fireEvent("focus").focus()}catch(a){}}return this},show:function(){if(!this.text.isDisplayed()){this.text.show();this.reposition();this.fireEvent("textShow",[this.text,this.element]);this.pollingPaused=false}return this},assert:function(){this[this.test()?"show":"hide"]()},test:function(){var a=this.element.get("value");return!a},reposition:function(){try{this.assert();if(!this.element.getParent()||!this.element.offsetHeight){return this.hide()}if(this.test()){this.text.position($merge(this.options.positionOptions,{relativeTo:this.element}))}}catch(a){}return this}});OverText.instances=[];OverText.update=function(){return OverText.instances.map(function(a){if(a.element&&a.text){return a.reposition()}return null})};if(window.Fx&&Fx.Reveal){Fx.Reveal.implement({hideInputs:Browser.Engine.trident?"select, input, textarea, object, embed, .overTxtDiv":false})}Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(b,a){this.elements=this.subject=$$(b);this.parent(a)},compute:function(g,h,j){var c={};for(var d in g){var a=g[d],e=h[d],f=c[d]={};for(var b in a){f[b]=this.parent(a[b],e[b],j)}}return c},set:function(b){for(var c in b){var a=b[c];for(var d in a){this.render(this.elements[c],d,a[d],this.options.unit)}}return this},start:function(c){if(!this.check(c)){return this}var h={},j={};for(var d in c){var f=c[d],a=h[d]={},g=j[d]={};for(var b in f){var e=this.prepare(this.elements[d],b,f[b]);a[b]=e.from;g[b]=e.to}}return this.parent(h,j)}});var Accordion=Fx.Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false,trigger:"click",initialDisplayFx:true},initialize:function(){var c=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});this.parent(c.elements,c.options);this.togglers=$$(c.togglers);this.container=$(c.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth"}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"}for(var b=0,a=this.togglers.length;b<a;b++){this.addSection(this.togglers[b],this.elements[b])}this.elements.each(function(e,d){if(this.options.show===d){this.fireEvent("active",[this.togglers[d],e])}else{for(var f in this.effects){e.setStyle(f,0)}}},this);if($chk(this.options.display)){this.display(this.options.display,this.options.initialDisplayFx)}},addSection:function(d,b){d=$(d);b=$(b);var e=this.togglers.contains(d);this.togglers.include(d);this.elements.include(b);var a=this.togglers.indexOf(d);d.addEvent(this.options.trigger,this.display.bind(this,a));if(this.options.height){b.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"})}if(this.options.width){b.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"})}b.fullOpacity=1;if(this.options.fixedWidth){b.fullWidth=this.options.fixedWidth}if(this.options.fixedHeight){b.fullHeight=this.options.fixedHeight}b.setStyle("overflow","hidden");if(!e){for(var c in this.effects){b.setStyle(c,0)}}return this},display:function(a,b){b=$pick(b,true);a=($type(a)=="element")?this.elements.indexOf(a):a;if((this.timer&&this.options.wait)||(a===this.previous&&!this.options.alwaysHide)){return this}this.previous=a;var c={};this.elements.each(function(f,e){c[e]={};var d=(e!=a)||(this.options.alwaysHide&&(f.offsetHeight>0));this.fireEvent(d?"background":"active",[this.togglers[e],f]);for(var g in this.effects){c[e][g]=d?0:f[this.effects[g]]}},this);return b?this.start(c):this.set(c)}});Fx.Move=new Class({Extends:Fx.Morph,options:{relativeTo:document.body,position:"center",edge:false,offset:{x:0,y:0}},start:function(a){return this.parent(this.element.position($merge(this.options,a,{returnPos:true})))}});Element.Properties.move={set:function(a){var b=this.retrieve("move");if(b){b.cancel()}return this.eliminate("move").store("move:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("move")){if(a||!this.retrieve("move:options")){this.set("move",a)}this.store("move",new Fx.Move(this,this.retrieve("move:options")))}return this.retrieve("move")}};Element.implement({move:function(a){this.get("move").start(a);return this}});Fx.Reveal=new Class({Extends:Fx.Morph,options:{styles:["padding","border","margin"],transitionOpacity:!Browser.Engine.trident4,mode:"vertical",display:"block",hideInputs:Browser.Engine.trident?"select, input, textarea, object, embed":false},dissolve:function(){try{if(!this.hiding&&!this.showing){if(this.element.getStyle("display")!="none"){this.hiding=true;this.showing=false;this.hidden=true;var d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});var g=(this.element.style.height===""||this.element.style.height=="auto");this.element.setStyle("display","block");if(this.options.transitionOpacity){d.opacity=1}var b={};$each(d,function(h,e){b[e]=[h,0]},this);var f=this.element.getStyle("overflow");this.element.setStyle("overflow","hidden");var a=this.options.hideInputs?this.element.getElements(this.options.hideInputs):null;this.$chain.unshift(function(){if(this.hidden){this.hiding=false;$each(d,function(h,e){d[e]=h},this);this.element.setStyles($merge({display:"none",overflow:f},d));if(g){if(["vertical","both"].contains(this.options.mode)){this.element.style.height=""}if(["width","both"].contains(this.options.mode)){this.element.style.width=""}}if(a){a.setStyle("visibility","visible")}}this.fireEvent("hide",this.element);this.callChain()}.bind(this));if(a){a.setStyle("visibility","hidden")}this.start(b)}else{this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("hide",this.element)}}else{if(this.options.link=="chain"){this.chain(this.dissolve.bind(this))}else{if(this.options.link=="cancel"&&!this.hiding){this.cancel();this.dissolve()}}}}catch(c){this.hiding=false;this.element.setStyle("display","none");this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("hide",this.element)}return this},reveal:function(){try{if(!this.showing&&!this.hiding){if(this.element.getStyle("display")=="none"||this.element.getStyle("visiblity")=="hidden"||this.element.getStyle("opacity")==0){this.showing=true;this.hiding=false;this.hidden=false;var g,d;this.element.measure(function(){g=(this.element.style.height===""||this.element.style.height=="auto");d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode})}.bind(this));$each(d,function(h,e){d[e]=h});if($chk(this.options.heightOverride)){d.height=this.options.heightOverride.toInt()}if($chk(this.options.widthOverride)){d.width=this.options.widthOverride.toInt()}if(this.options.transitionOpacity){this.element.setStyle("opacity",0);d.opacity=1}var b={height:0,display:this.options.display};$each(d,function(h,e){b[e]=0});var f=this.element.getStyle("overflow");this.element.setStyles($merge(b,{overflow:"hidden"}));var a=this.options.hideInputs?this.element.getElements(this.options.hideInputs):null;if(a){a.setStyle("visibility","hidden")}this.start(d);this.$chain.unshift(function(){this.element.setStyle("overflow",f);if(!this.options.heightOverride&&g){if(["vertical","both"].contains(this.options.mode)){this.element.style.height=""}if(["width","both"].contains(this.options.mode)){this.element.style.width=""}}if(!this.hidden){this.showing=false}if(a){a.setStyle("visibility","visible")}this.callChain();this.fireEvent("show",this.element)}.bind(this))}else{this.callChain();this.fireEvent("complete",this.element);this.fireEvent("show",this.element)}}else{if(this.options.link=="chain"){this.chain(this.reveal.bind(this))}else{if(this.options.link=="cancel"&&!this.showing){this.cancel();this.reveal()}}}}catch(c){this.element.setStyles({display:this.options.display,visiblity:"visible",opacity:1});this.showing=false;this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("show",this.element)}return this},toggle:function(){if(this.element.getStyle("display")=="none"||this.element.getStyle("visiblity")=="hidden"||this.element.getStyle("opacity")==0){this.reveal()}else{this.dissolve()}return this}});Element.Properties.reveal={set:function(a){var b=this.retrieve("reveal");if(b){b.cancel()}return this.eliminate("reveal").store("reveal:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("reveal")){if(a||!this.retrieve("reveal:options")){this.set("reveal",a)}this.store("reveal",new Fx.Reveal(this,this.retrieve("reveal:options")))}return this.retrieve("reveal")}};Element.Properties.dissolve=Element.Properties.reveal;Element.implement({reveal:function(a){this.get("reveal",a).reveal();return this},dissolve:function(a){this.get("reveal",a).dissolve();return this},nix:function(){var a=Array.link(arguments,{destroy:Boolean.type,options:Object.type});this.get("reveal",a.options).dissolve().chain(function(){this[a.destroy?"destroy":"dispose"]()}.bind(this));return this},wink:function(){var b=Array.link(arguments,{duration:Number.type,options:Object.type});var a=this.get("reveal",b.options);a.reveal().chain(function(){(function(){a.dissolve()}).delay(b.duration||2000)})}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(b,a){this.element=this.subject=$(b);this.parent(a);var d=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body)}var c=this.element;if(this.options.wheelStops){this.addEvent("start",function(){c.addEvent("mousewheel",d)},true);this.addEvent("complete",function(){c.removeEvent("mousewheel",d)},true)}},set:function(){var a=Array.flatten(arguments);this.element.scrollTo(a[0],a[1])},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a)})},start:function(c,h){if(!this.check(c,h)){return this}var e=this.element.getSize(),f=this.element.getScrollSize();var b=this.element.getScroll(),d={x:c,y:h};for(var g in d){var a=f[g]-e[g];if($chk(d[g])){d[g]=($type(d[g])=="number")?d[g].limit(0,a):a}else{d[g]=b[g]}d[g]+=this.options.offset[g]}return this.parent([b.x,b.y],[d.x,d.y])},toTop:function(){return this.start(false,0)},toLeft:function(){return this.start(0,false)},toRight:function(){return this.start("right",false)},toBottom:function(){return this.start(false,"bottom")},toElement:function(b){var a=$(b).getPosition(this.element);return this.start(a.x,a.y)}});Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(b,a){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper)}},true);this.element=this.subject=$(b);this.parent(a);var c=this.element.retrieve("wrapper");this.wrapper=c||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);this.now=[];this.open=true},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight},horizontal:function(){this.margin="margin-left";this.layout="width";this.offset=this.element.offsetWidth},set:function(a){this.element.setStyle(this.margin,a[0]);this.wrapper.setStyle(this.layout,a[1]);return this},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a)})},start:function(b,e){if(!this.check(b,e)){return this}this[e||this.options.mode]();var d=this.element.getStyle(this.margin).toInt();var c=this.wrapper.getStyle(this.layout).toInt();var a=[[d,c],[0,this.offset]];var g=[[d,c],[-this.offset,0]];var f;switch(b){case"in":f=a;break;case"out":f=g;break;case"toggle":f=(c==0)?a:g}return this.parent(f[0],f[1])},slideIn:function(a){return this.start("in",a)},slideOut:function(a){return this.start("out",a)},hide:function(a){this[a||this.options.mode]();this.open=false;return this.set([-this.offset,0])},show:function(a){this[a||this.options.mode]();this.open=true;return this.set([0,this.offset])},toggle:function(a){return this.start("toggle",a)}});Element.Properties.slide={set:function(b){var a=this.retrieve("slide");if(a){a.cancel()}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},b))},get:function(a){if(a||!this.retrieve("slide")){if(a||!this.retrieve("slide:options")){this.set("slide",a)}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")))}return this.retrieve("slide")}};Element.implement({slide:function(d,e){d=d||"toggle";var b=this.get("slide"),a;switch(d){case"hide":b.hide(e);break;case"show":b.show(e);break;case"toggle":var c=this.retrieve("slide:flag",b.open);b[c?"slideOut":"slideIn"](e);this.store("slide:flag",!c);a=true;break;default:b.start(d,e)}if(!a){this.eliminate("slide:flag")}return this}});var SmoothScroll=Fx.SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(b,c){c=c||document;this.doc=c.getDocument();var d=c.getWindow();this.parent(this.doc,b);this.links=this.options.links?$$(this.options.links):$$(this.doc.links);var a=d.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(f){if(f.href.indexOf(a)!=0){return}var e=f.href.substr(a.length);if(e){this.useLink(f,e)}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){d.location.hash=this.anchor},true)}},useLink:function(c,a){var b;c.addEvent("click",function(d){if(b!==false&&!b){b=$(a)||this.doc.getElement("a[name="+a+"]")}if(b){d.preventDefault();this.anchor=a;this.toElement(b);c.blur()}}.bind(this))}});Fx.Sort=new Class({Extends:Fx.Elements,options:{mode:"vertical"},initialize:function(b,a){this.parent(b,a);this.elements.each(function(c){if(c.getStyle("position")=="static"){c.setStyle("position","relative")}});this.setDefaultOrder()},setDefaultOrder:function(){this.currentOrder=this.elements.map(function(b,a){return a})},sort:function(e){if($type(e)!="array"){return false}var i=0;var a=0;var h={};var d=this.options.mode=="vertical";var f=this.elements.map(function(m,j){var l=m.getComputedSize({styles:["border","padding","margin"]});var n;if(d){n={top:i,margin:l["margin-top"],height:l.totalHeight};i+=n.height-l["margin-top"]}else{n={left:a,margin:l["margin-left"],width:l.totalWidth};a+=n.width}var k=d?"top":"left";h[j]={};var o=m.getStyle(k).toInt();h[j][k]=o||0;return n},this);this.set(h);e=e.map(function(j){return j.toInt()});if(e.length!=this.elements.length){this.currentOrder.each(function(j){if(!e.contains(j)){e.push(j)}});if(e.length>this.elements.length){e.splice(this.elements.length-1,e.length-this.elements.length)}}i=0;a=0;var b=0;var c={};e.each(function(l,j){var k={};if(d){k.top=i-f[l].top-b;i+=f[l].height}else{k.left=a-f[l].left;a+=f[l].width}b=b+f[l].margin;c[l]=k},this);var g={};$A(e).sort().each(function(j){g[j]=c[j]});this.start(g);this.currentOrder=e;return this},rearrangeDOM:function(a){a=a||this.currentOrder;var b=this.elements[0].getParent();var c=[];this.elements.setStyle("opacity",0);a.each(function(d){c.push(this.elements[d].inject(b).setStyles({top:0,left:0}))},this);this.elements.setStyle("opacity",1);this.elements=$$(c);this.setDefaultOrder();return this},getDefaultOrder:function(){return this.elements.map(function(b,a){return a})},forward:function(){return this.sort(this.getDefaultOrder())},backward:function(){return this.sort(this.getDefaultOrder().reverse())},reverse:function(){return this.sort(this.currentOrder.reverse())},sortByElements:function(a){return this.sort(a.map(function(b){return this.elements.indexOf(b)},this))},swap:function(c,b){if($type(c)=="element"){c=this.elements.indexOf(c)}if($type(b)=="element"){b=this.elements.indexOf(b)}var a=$A(this.currentOrder);a[this.currentOrder.indexOf(c)]=b;a[this.currentOrder.indexOf(b)]=c;this.sort(a)}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var b=Array.link(arguments,{options:Object.type,element:$defined});this.element=$(b.element);this.document=this.element.getDocument();this.setOptions(b.options||{});var a=$type(this.options.handle);this.handles=((a=="array"||a=="collection")?$$(this.options.handle):$(this.options.handle))||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};this.attach()},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);return this},start:function(c){if(this.options.preventDefault){c.preventDefault()}this.mouse.start=c.page;this.fireEvent("beforeStart",this.element);var a=this.options.limit;this.limit={x:[],y:[]};for(var d in this.options.modifiers){if(!this.options.modifiers[d]){continue}if(this.options.style){this.value.now[d]=this.element.getStyle(this.options.modifiers[d]).toInt()}else{this.value.now[d]=this.element[this.options.modifiers[d]]}if(this.options.invert){this.value.now[d]*=-1}this.mouse.pos[d]=c.page[d]-this.value.now[d];if(a&&a[d]){for(var b=2;b--;b){if($chk(a[d][b])){this.limit[d][b]=$lambda(a[d][b])()}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop)},check:function(a){if(this.options.preventDefault){a.preventDefault()}var b=Math.round(Math.sqrt(Math.pow(a.page.x-this.mouse.start.x,2)+Math.pow(a.page.y-this.mouse.start.y,2)));if(b>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",[this.element,a]).fireEvent("snap",this.element)}},drag:function(a){if(this.options.preventDefault){a.preventDefault()}this.mouse.now=a.page;for(var b in this.options.modifiers){if(!this.options.modifiers[b]){continue}this.value.now[b]=this.mouse.now[b]-this.mouse.pos[b];if(this.options.invert){this.value.now[b]*=-1}if(this.options.limit&&this.limit[b]){if($chk(this.limit[b][1])&&(this.value.now[b]>this.limit[b][1])){this.value.now[b]=this.limit[b][1]}else{if($chk(this.limit[b][0])&&(this.value.now[b]<this.limit[b][0])){this.value.now[b]=this.limit[b][0]}}}if(this.options.grid[b]){this.value.now[b]-=((this.value.now[b]-this.limit[b][0])%this.options.grid[b])}if(this.options.style){this.element.setStyle(this.options.modifiers[b],this.value.now[b]+this.options.unit)}else{this.element[this.options.modifiers[b]]=this.value.now[b]}}this.fireEvent("drag",[this.element,a])},cancel:function(a){this.document.removeEvent("mousemove",this.bound.check);this.document.removeEvent("mouseup",this.bound.cancel);if(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element)}},stop:function(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);if(a){this.fireEvent("complete",[this.element,a])}}});Element.implement({makeResizable:function(a){var b=new Drag(this,$merge({modifiers:{x:"width",y:"height"}},a));this.store("resizer",b);return b.addEvent("drag",function(){this.fireEvent("resize",b)}.bind(this))}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false,precalculate:false,includeMargins:true,checkDroppables:true},initialize:function(c,b){this.parent(c,b);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body)}var a=this.element.getStyle("position");if(a=="static"){a="absolute"}if([this.element.getStyle("left"),this.element.getStyle("top")].contains("auto")){this.element.position(this.element.getPosition(this.element.offsetParent))}this.element.setStyle("position",a);this.addEvent("start",this.checkDroppables,true);this.overed=null},start:function(f){if(this.container){var b=this.container.getCoordinates(this.element.getOffsetParent()),c={},e={};["top","right","bottom","left"].each(function(g){c[g]=this.container.getStyle("border-"+g).toInt();e[g]=this.element.getStyle("margin-"+g).toInt()},this);var d=this.element.offsetWidth+e.left+e.right;var a=this.element.offsetHeight+e.top+e.bottom;if(this.options.includeMargins){$each(e,function(h,g){e[g]=0})}if(this.container==this.element.getOffsetParent()){this.options.limit={x:[0-e.left,b.right-c.left-c.right-d+e.right],y:[0-e.top,b.bottom-c.top-c.bottom-a+e.bottom]}}else{this.options.limit={x:[b.left+c.left-e.left,b.right-c.right-d+e.right],y:[b.top+c.top-e.top,b.bottom-c.bottom-a+e.bottom]}}}if(this.options.precalculate){this.positions=this.droppables.map(function(g){return g.getCoordinates()})}this.parent(f)},checkAgainst:function(c,b){c=(this.positions)?this.positions[b]:c.getCoordinates();var a=this.mouse.now;return(a.x>c.left&&a.x<c.right&&a.y<c.bottom&&a.y>c.top)},checkDroppables:function(){var a=this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=a){if(this.overed){this.fireEvent("leave",[this.element,this.overed])}if(a){this.fireEvent("enter",[this.element,a])}this.overed=a}},drag:function(a){this.parent(a);if(this.options.checkDroppables&&this.droppables.length){this.checkDroppables()}},stop:function(a){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed,a]);this.overed=null;return this.parent(a)}});Element.implement({makeDraggable:function(a){var b=new Drag.Move(this,a);this.store("dragger",b);return b}});var Slider=new Class({Implements:[Events,Options],Binds:["clickedElement","draggedKnob","scrolledElement"],options:{onTick:function(a){if(this.options.snap){a=this.toPosition(this.step)}this.knob.setStyle(this.property,a)},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(f,a,e){this.setOptions(e);this.element=$(f);this.knob=$(a);this.previousChange=this.previousEnd=this.step=-1;var g,b={},d={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";g="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";g="offsetWidth"}this.half=this.knob[g]/2;this.full=this.element[g]-this.knob[g]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);d[this.axis]=this.property;b[this.axis]=[-this.options.offset,this.full-this.options.offset];this.bound={clickedElement:this.clickedElement.bind(this),scrolledElement:this.scrolledElement.bindWithEvent(this),draggedKnob:this.draggedKnob.bind(this)};var c={snap:0,limit:b,modifiers:d,onDrag:this.bound.draggedKnob,onStart:this.bound.draggedKnob,onBeforeStart:(function(){this.isDragging=true}).bind(this),onComplete:function(){this.isDragging=false;this.draggedKnob();this.end()}.bind(this)};if(this.options.snap){c.grid=Math.ceil(this.stepWidth);c.limit[this.axis][1]=this.full}this.drag=new Drag(this.knob,c);this.attach()},attach:function(){this.element.addEvent("mousedown",this.bound.clickedElement);if(this.options.wheel){this.element.addEvent("mousewheel",this.bound.scrolledElement)}this.drag.attach();return this},detach:function(){this.element.removeEvent("mousedown",this.bound.clickedElement);this.element.removeEvent("mousewheel",this.bound.scrolledElement);this.drag.detach();return this},set:function(a){if(!((this.range>0)^(a<this.min))){a=this.min}if(!((this.range>0)^(a>this.max))){a=this.max}this.step=Math.round(a);this.checkStep();this.fireEvent("tick",this.toPosition(this.step));this.end();return this},clickedElement:function(c){if(this.isDragging||c.target==this.knob){return}var b=this.range<0?-1:1;var a=c.page[this.axis]-this.element.getPosition()[this.axis]-this.half;a=a.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+b*this.toStep(a));this.checkStep();this.fireEvent("tick",a);this.end()},scrolledElement:function(a){var b=(this.options.mode=="horizontal")?(a.wheel<0):(a.wheel>0);this.set(b?this.step-this.stepSize:this.step+this.stepSize);a.stop()},draggedKnob:function(){var b=this.range<0?-1:1;var a=this.drag.value.now[this.axis];a=a.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+b*this.toStep(a));this.checkStep()},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent("change",this.step)}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"")}},toStep:function(a){var b=(a+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(b-=b%this.stepSize):b},toPosition:function(a){return(this.full*Math.abs(this.min-a))/(this.steps*this.stepSize)-this.options.offset}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(a,b){this.setOptions(b);this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(a)||a));if(!this.options.clone){this.options.revert=false}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert))}},attach:function(){this.addLists(this.lists);return this},detach:function(){this.lists=this.removeLists(this.lists);return this},addItems:function(){Array.flatten(arguments).each(function(a){this.elements.push(a);var b=a.retrieve("sortables:start",this.start.bindWithEvent(this,a));(this.options.handle?a.getElement(this.options.handle)||a:a).addEvent("mousedown",b)},this);return this},addLists:function(){Array.flatten(arguments).each(function(a){this.lists.push(a);this.addItems(a.getChildren())},this);return this},removeItems:function(){return $$(Array.flatten(arguments).map(function(a){this.elements.erase(a);var b=a.retrieve("sortables:start");(this.options.handle?a.getElement(this.options.handle)||a:a).removeEvent("mousedown",b);return a},this))},removeLists:function(){return $$(Array.flatten(arguments).map(function(a){this.lists.erase(a);this.removeItems(a.getChildren());return a},this))},getClone:function(b,a){if(!this.options.clone){return new Element("div").inject(document.body)}if($type(this.options.clone)=="function"){return this.options.clone.call(this,b,a,this.list)}return a.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:a.getStyle("width")}).inject(this.list).position(a.getPosition(a.getOffsetParent()))},getDroppables:function(){var a=this.list.getChildren();if(!this.options.constrain){a=this.lists.concat(a).erase(this.list)}return a.erase(this.clone).erase(this.element)},insert:function(c,b){var a="inside";if(this.lists.contains(b)){this.list=b;this.drag.droppables=this.getDroppables()}else{a=this.element.getAllPrevious().contains(b)?"before":"after"}this.element.inject(b,a);this.fireEvent("sort",[this.element,this.clone])},start:function(b,a){if(!this.idle){return}this.idle=false;this.element=a;this.opacity=a.get("opacity");this.list=a.getParent();this.clone=this.getClone(b,a);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){b.stop();this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone])}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(b)},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var a=this.element.getStyles("width","height");var b=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:b.top,left:b.left,width:a.width,height:a.height,opacity:0.25}).chain(this.reset.bind(this))}else{this.reset()}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element)},serialize:function(){var c=Array.link(arguments,{modifier:Function.type,index:$defined});var b=this.lists.map(function(d){return d.getChildren().map(c.modifier||function(e){return e.get("id")},this)},this);var a=c.index;if(this.lists.length==1){a=0}return $chk(a)&&a>=0&&a<this.lists.length?b[a]:b}});Request.JSONP=new Class({Implements:[Chain,Events,Options,Log],options:{url:"",data:{},retries:0,timeout:0,link:"ignore",callbackKey:"callback",injectScript:document.head},initialize:function(a){this.setOptions(a);this.running=false;this.requests=0;this.triesRemaining=[]},check:function(){if(!this.running){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));return false}return false},send:function(c){if(!$chk(arguments[1])&&!this.check(c)){return this}var e=$type(c),a=this.options,b=$chk(arguments[1])?arguments[1]:this.requests++;if(e=="string"||e=="element"){c={data:c}}c=$extend({data:a.data,url:a.url},c);if(!$chk(this.triesRemaining[b])){this.triesRemaining[b]=this.options.retries}var d=this.triesRemaining[b];(function(){var f=this.getScript(c);this.log("JSONP retrieving script with url: "+f.get("src"));this.fireEvent("request",f);this.running=true;(function(){if(d){this.triesRemaining[b]=d-1;if(f){f.destroy();this.request(c,b);this.fireEvent("retry",this.triesRemaining[b])}}else{if(f&&this.options.timeout){f.destroy();this.cancel();this.fireEvent("failure")}}}).delay(this.options.timeout,this)}).delay(Browser.Engine.trident?50:0,this);return this},cancel:function(){if(!this.running){return this}this.running=false;this.fireEvent("cancel");return this},getScript:function(c){var b=Request.JSONP.counter,d;Request.JSONP.counter++;switch($type(c.data)){case"element":d=$(c.data).toQueryString();break;case"object":case"hash":d=Hash.toQueryString(c.data)}var e=c.url+(c.url.test("\\?")?"&":"?")+(c.callbackKey||this.options.callbackKey)+"=Request.JSONP.request_map.request_"+b+(d?"&"+d:"");if(e.length>2083){this.log("JSONP "+e+" will fail in Internet Explorer, which enforces a 2083 bytes length limit on URIs")}var a=new Element("script",{type:"text/javascript",src:e});Request.JSONP.request_map["request_"+b]=function(f){this.success(f,a)}.bind(this);return a.inject(this.options.injectScript)},success:function(b,a){if(a){a.destroy()}this.running=false;this.log("JSONP successfully retrieved: ",b);this.fireEvent("complete",[b]).fireEvent("success",[b]).callChain()}});Request.JSONP.counter=0;Request.JSONP.request_map={};Request.Queue=new Class({Implements:[Options,Events],Binds:["attach","request","complete","cancel","success","failure","exception"],options:{stopOnFailure:true,autoAdvance:true,concurrent:1,requests:{}},initialize:function(a){this.setOptions(a);this.requests=new Hash;this.addRequests(this.options.requests);this.queue=[];this.reqBinders={}},addRequest:function(a,b){this.requests.set(a,b);this.attach(a,b);return this},addRequests:function(a){$each(a,function(c,b){this.addRequest(b,c)},this);return this},getName:function(a){return this.requests.keyOf(a)},attach:function(a,b){if(b._groupSend){return this}["request","complete","cancel","success","failure","exception"].each(function(c){if(!this.reqBinders[a]){this.reqBinders[a]={}}this.reqBinders[a][c]=function(){this["on"+c.capitalize()].apply(this,[a,b].extend(arguments))}.bind(this);b.addEvent(c,this.reqBinders[a][c])},this);b._groupSend=b.send;b.send=function(c){this.send(a,c);return b}.bind(this);return this},removeRequest:function(b){var a=$type(b)=="object"?this.getName(b):b;if(!a&&$type(a)!="string"){return this}b=this.requests.get(a);if(!b){return this}["request","complete","cancel","success","failure","exception"].each(function(c){b.removeEvent(c,this.reqBinders[a][c])},this);b.send=b._groupSend;delete b._groupSend;return this},getRunning:function(){return this.requests.filter(function(a){return a.running})},isRunning:function(){return!!this.getRunning().getKeys().length},send:function(b,a){var c=function(){this.requests.get(b)._groupSend(a);this.queue.erase(c)}.bind(this);c.name=b;if(this.getRunning().getKeys().length>=this.options.concurrent||(this.error&&this.options.stopOnFailure)){this.queue.push(c)}else{c()}return this},hasNext:function(a){return(!a)?!!this.queue.length:!!this.queue.filter(function(b){return b.name==a}).length},resume:function(){this.error=false;(this.options.concurrent-this.getRunning().getKeys().length).times(this.runNext,this);return this},runNext:function(a){if(!this.queue.length){return this}if(!a){this.queue[0]()}else{var b;this.queue.each(function(c){if(!b&&c.name==a){b=true;c()}})}return this},runAll:function(){this.queue.each(function(a){a()});return this},clear:function(a){if(!a){this.queue.empty()}else{this.queue=this.queue.map(function(b){if(b.name!=a){return b}else{return false}}).filter(function(b){return b})}return this},cancel:function(a){this.requests.get(a).cancel();return this},onRequest:function(){this.fireEvent("request",arguments)},onComplete:function(){this.fireEvent("complete",arguments)},onCancel:function(){if(this.options.autoAdvance&&!this.error){this.runNext()}this.fireEvent("cancel",arguments)},onSuccess:function(){if(this.options.autoAdvance&&!this.error){this.runNext()}this.fireEvent("success",arguments)},onFailure:function(){this.error=true;if(!this.options.stopOnFailure&&this.options.autoAdvance){this.runNext()}this.fireEvent("failure",arguments)},onException:function(){this.error=true;if(!this.options.stopOnFailure&&this.options.autoAdvance){this.runNext()}this.fireEvent("exception",arguments)}});Request.implement({options:{initialDelay:5000,delay:5000,limit:60000},startTimer:function(b){var a=(function(){if(!this.running){this.send({data:b})}});this.timer=a.delay(this.options.initialDelay,this);this.lastDelay=this.options.initialDelay;this.completeCheck=function(c){$clear(this.timer);if(c){this.lastDelay=this.options.delay}else{this.lastDelay=(this.lastDelay+this.options.delay).min(this.options.limit)}this.timer=a.delay(this.lastDelay,this)};this.addEvent("complete",this.completeCheck);return this},stopTimer:function(){$clear(this.timer);this.removeEvent("complete",this.completeCheck);return this}});var Asset={javascript:function(f,d){d=$extend({onload:$empty,document:document,check:$lambda(true)},d);var b=new Element("script",{src:f,type:"text/javascript"});var e=d.onload.bind(b),a=d.check,g=d.document;delete d.onload;delete d.check;delete d.document;b.addEvents({load:e,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){e()}}}).set(d);if(Browser.Engine.webkit419){var c=(function(){if(!$try(a)){return}$clear(c);e()}).periodical(50)}return b.inject(g.head)},css:function(b,a){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:b},a)).inject(document.head)},image:function(c,b){b=$merge({onload:$empty,onabort:$empty,onerror:$empty},b);var d=new Image();var a=$(d)||new Element("img");["load","abort","error"].each(function(e){var f="on"+e;var g=b[f];delete b[f];d[f]=function(){if(!d){return}if(!a.parentNode){a.width=d.width;a.height=d.height}d=d.onload=d.onabort=d.onerror=null;g.delay(1,a,a);a.fireEvent(e,a,1)}});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1)}return a.set(b)},images:function(d,c){c=$merge({onComplete:$empty,onProgress:$empty,onError:$empty},c);d=$splat(d);var a=[];var b=0;return new Elements(d.map(function(e){return Asset.image(e,{onload:function(){c.onProgress.call(this,b,d.indexOf(e));b++;if(b==d.length){c.onComplete()}},onerror:function(){c.onError.call(this,b,d.indexOf(e));b++;if(b==d.length){c.onComplete()}}})}))}};var Color=new Native({initialize:function(b,c){if(arguments.length>=3){c="rgb";b=Array.slice(arguments,0,3)}else{if(typeof b=="string"){if(b.match(/rgb/)){b=b.rgbToHex().hexToRgb(true)}else{if(b.match(/hsb/)){b=b.hsbToRgb()}else{b=b.hexToRgb(true)}}}}c=c||"rgb";switch(c){case"hsb":var a=b;b=b.hsbToRgb();b.hsb=a;break;case"hex":b=b.hexToRgb(true);break}b.rgb=b.slice(0,3);b.hsb=b.hsb||b.rgbToHsb();b.hex=b.rgbToHex();return $extend(b,this)}});Color.implement({mix:function(){var a=Array.slice(arguments);var c=($type(a.getLast())=="number")?a.pop():50;var b=this.slice();a.each(function(d){d=new Color(d);for(var e=0;e<3;e++){b[e]=Math.round((b[e]/100*(100-c))+(d[e]/100*c))}});return new Color(b,"rgb")},invert:function(){return new Color(this.map(function(a){return 255-a}))},setHue:function(a){return new Color([a,this.hsb[1],this.hsb[2]],"hsb")},setSaturation:function(a){return new Color([this.hsb[0],a,this.hsb[2]],"hsb")},setBrightness:function(a){return new Color([this.hsb[0],this.hsb[1],a],"hsb")}});var $RGB=function(d,c,a){return new Color([d,c,a],"rgb")};var $HSB=function(d,c,a){return new Color([d,c,a],"hsb")};var $HEX=function(a){return new Color(a,"hex")};Array.implement({rgbToHsb:function(){var b=this[0],c=this[1],j=this[2];var g,f,h;var i=Math.max(b,c,j),e=Math.min(b,c,j);var k=i-e;h=i/255;f=(i!=0)?k/i:0;if(f==0){g=0}else{var d=(i-b)/k;var a=(i-c)/k;var l=(i-j)/k;if(b==i){g=l-a}else{if(c==i){g=2+d-l}else{g=4+a-d}}g/=6;if(g<0){g++}}return[Math.round(g*360),Math.round(f*100),Math.round(h*100)]},hsbToRgb:function(){var c=Math.round(this[2]/100*255);if(this[1]==0){return[c,c,c]}else{var a=this[0]%360;var e=a%60;var g=Math.round((this[2]*(100-this[1]))/10000*255);var d=Math.round((this[2]*(6000-this[1]*e))/600000*255);var b=Math.round((this[2]*(6000-this[1]*(60-e)))/600000*255);switch(Math.floor(a/60)){case 0:return[c,b,g];case 1:return[d,c,g];case 2:return[g,c,b];case 3:return[g,d,c];case 4:return[b,g,c];case 5:return[c,g,d]}}return false}});String.implement({rgbToHsb:function(){var a=this.match(/\d{1,3}/g);return(a)?a.rgbToHsb():null},hsbToRgb:function(){var a=this.match(/\d{1,3}/g);return(a)?a.hsbToRgb():null}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={}},addEvent:function(b,a){this.checker[b]=this.checker[b]||{};this.events[b]=this.events[b]||[];if(this.events[b].contains(a)){return false}else{this.events[b].push(a)}this.instances.each(function(c,d){c.addEvent(b,this.check.bind(this,[b,c,d]))},this);return this},check:function(c,a,b){this.checker[c][b]=true;var d=this.instances.every(function(f,e){return this.checker[c][e]||false},this);if(!d){return}this.checker[c]={};this.events[c].each(function(e){e.call(this,this.instances,a)},this)}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(b,a){this.parent(b,a);this.load()},save:function(){var a=JSON.encode(this.hash);if(!a||a.length>4096){return false}if(a=="{}"){this.dispose()}else{this.write(a)}return true},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this}});Hash.each(Hash.prototype,function(b,a){if(typeof b=="function"){Hash.Cookie.implement(a,function(){var c=b.apply(this.hash,arguments);if(this.options.autoSave){this.save()}return c})}});var IframeShim=new Class({Implements:[Options,Events,Class.Occlude],options:{className:"iframeShim",display:false,zIndex:null,margin:0,offset:{x:0,y:0},browsers:(Browser.Engine.trident4||(Browser.Engine.gecko&&!Browser.Engine.gecko19&&Browser.Platform.mac))},property:"IframeShim",initialize:function(b,a){this.element=$(b);if(this.occlude()){return this.occluded}this.setOptions(a);this.makeShim();return this},makeShim:function(){if(this.options.browsers){var c=this.element.getStyle("zIndex").toInt();if(!c){var b=this.element.getStyle("position");if(b=="static"||!b){this.element.setStyle("position","relative")}this.element.setStyle("zIndex",c||1)}c=($chk(this.options.zIndex)&&c>this.options.zIndex)?this.options.zIndex:c-1;if(c<0){c=1}this.shim=new Element("iframe",{src:(window.location.protocol=="https")?"://0":"javascript:void(0)",scrolling:"no",frameborder:0,styles:{zIndex:c,position:"absolute",border:"none",filter:"progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"},"class":this.options.className}).store("IframeShim",this);var a=(function(){this.shim.inject(this.element,"after");this[this.options.display?"show":"hide"]();this.fireEvent("inject")}).bind(this);if(Browser.Engine.trident&&!IframeShim.ready){window.addEvent("load",a)}else{a()}}else{this.position=this.hide=this.show=this.dispose=$lambda(this)}},position:function(){if(!IframeShim.ready){return this}var a=this.element.measure(function(){return this.getSize()});if($type(this.options.margin)){a.x=a.x-(this.options.margin*2);a.y=a.y-(this.options.margin*2);this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin}if(this.shim){this.shim.set({width:a.x,height:a.y}).position({relativeTo:this.element,offset:this.options.offset})}return this},hide:function(){if(this.shim){this.shim.setStyle("display","none")}return this},show:function(){if(this.shim){this.shim.setStyle("display","block")}return this.position()},dispose:function(){if(this.shim){this.shim.dispose()}return this},destroy:function(){if(this.shim){this.shim.destroy()}return this}});window.addEvent("load",function(){IframeShim.ready=true});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(a,b){this.element.scrollTo(a,b)},fps:50},initialize:function(b,a){this.setOptions(a);this.element=$(b);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.bound={attach:this.attach.bind(this),detach:this.detach.bind(this),getCoords:this.getCoords.bind(this)}},start:function(){this.listener.addEvents({mouseenter:this.bound.attach,mouseleave:this.bound.detach})},stop:function(){this.listener.removeEvents({mouseenter:this.bound.attach,mouseleave:this.bound.detach});this.timer=$clear(this.timer)},attach:function(){this.listener.addEvent("mousemove",this.bound.getCoords)},detach:function(){this.listener.removeEvent("mousemove",this.bound.getCoords);this.timer=$clear(this.timer)},getCoords:function(a){this.page=(this.listener.get("tag")=="body")?a.client:a.page;if(!this.timer){this.timer=this.scroll.periodical(Math.round(1000/this.options.fps),this)}},scroll:function(){var b=this.element.getSize(),a=this.element.getScroll(),f=this.element.getOffsets(),c=this.element.getScrollSize(),e={x:0,y:0};for(var d in this.page){if(this.page[d]<(this.options.area+f[d])&&a[d]!=0){e[d]=(this.page[d]-this.options.area-f[d])*this.options.velocity}else{if(this.page[d]+this.options.area>(b[d]+f[d])&&a[d]+b[d]!=c[d]){e[d]=(this.page[d]-b[d]+this.options.area-f[d])*this.options.velocity}}}if(e.y||e.x){this.fireEvent("change",[a.x+e.x,a.y+e.y])}}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(a){a.setStyle("visibility","visible")},onHide:function(a){a.setStyle("visibility","hidden")},title:"title",text:function(a){return a.get("rel")||a.get("href")},showDelay:100,hideDelay:100,className:null,offset:{x:16,y:16},fixed:false},initialize:function(){var a=Array.link(arguments,{options:Object.type,elements:$defined});if(a.options&&a.options.offsets){a.options.offset=a.options.offsets}this.setOptions(a.options);this.container=new Element("div",{"class":"tip"});this.tip=this.getTip();if(a.elements){this.attach(a.elements)}},getTip:function(){return new Element("div",{"class":this.options.className,styles:{visibility:"hidden",display:"none",position:"absolute",top:0,left:0}}).adopt(new Element("div",{"class":"tip-top"}),this.container,new Element("div",{"class":"tip-bottom"})).inject(document.body)},attach:function(b){var a=function(d,c){if(d==null){return""}return $type(d)=="function"?d(c):c.get(d)};$$(b).each(function(d){var e=a(this.options.title,d);d.erase("title").store("tip:native",e).retrieve("tip:title",e);d.retrieve("tip:text",a(this.options.text,d));var c=["enter","leave"];if(!this.options.fixed){c.push("move")}c.each(function(f){d.addEvent("mouse"+f,d.retrieve("tip:"+f,this["element"+f.capitalize()].bindWithEvent(this,d)))},this)},this);return this},detach:function(a){$$(a).each(function(c){["enter","leave","move"].each(function(d){c.removeEvent("mouse"+d,c.retrieve("tip:"+d)||$empty)});c.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");if($type(this.options.title)=="string"&&this.options.title=="title"){var b=c.retrieve("tip:native");if(b){c.set("title",b)}}},this);return this},elementEnter:function(b,a){$A(this.container.childNodes).each(Element.dispose);["title","text"].each(function(d){var c=a.retrieve("tip:"+d);if(!c){return}this[d+"Element"]=new Element("div",{"class":"tip-"+d}).inject(this.container);this.fill(this[d+"Element"],c)},this);this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this,a);this.tip.setStyle("display","block");this.position((!this.options.fixed)?b:{page:a.getPosition()})},elementLeave:function(b,a){$clear(this.timer);this.tip.setStyle("display","none");this.timer=this.hide.delay(this.options.hideDelay,this,a)},elementMove:function(a){this.position(a)},position:function(d){var b=window.getSize(),a=window.getScroll(),e={x:this.tip.offsetWidth,y:this.tip.offsetHeight},c={x:"left",y:"top"},f={};for(var g in c){f[c[g]]=d.page[g]+this.options.offset[g];if((f[c[g]]+e[g]-a[g])>b[g]){f[c[g]]=d.page[g]-this.options.offset[g]-e[g]}}this.tip.setStyles(f)},fill:function(a,b){if(typeof b=="string"){a.set("html",b)}else{a.adopt(b)}},show:function(a){this.fireEvent("show",[this.tip,a])},hide:function(a){this.fireEvent("hide",[this.tip,a])}});MooTools.lang.set("en-US","Date",{months:["January","February","March","April","May","June","July","August","September","October","November","December"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dateOrder:["month","date","year"],shortDate:"%m/%d/%Y",shortTime:"%I:%M%p",AM:"AM",PM:"PM",ordinal:function(a){return(a>3&&a<21)?"th":["th","st","nd","rd","th"][Math.min(a%10,4)]},lessThanMinuteAgo:"less than a minute ago",minuteAgo:"about a minute ago",minutesAgo:"{delta} minutes ago",hourAgo:"about an hour ago",hoursAgo:"about {delta} hours ago",dayAgo:"1 day ago",daysAgo:"{delta} days ago",lessThanMinuteUntil:"less than a minute from now",minuteUntil:"about a minute from now",minutesUntil:"{delta} minutes from now",hourUntil:"about an hour from now",hoursUntil:"about {delta} hours from now",dayUntil:"1 day from now",daysUntil:"{delta} days from now"});MooTools.lang.set("en-US","FormValidator",{required:"This field is required.",minLength:"Please enter at least {minLength} characters (you entered {length} characters).",maxLength:"Please enter no more than {maxLength} characters (you entered {length} characters).",integer:"Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.",numeric:'Please enter only numeric values in this field (i.e. "1" or "1.1" or "-1" or "-1.1").',digits:"Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).",alpha:"Please use letters only (a-z) with in this field. No spaces or other characters are allowed.",alphanum:"Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.",dateSuchAs:"Please enter a valid date such as {date}",dateInFormatMDY:'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")',email:'Please enter a valid email address. For example "fred@domain.com".',url:"Please enter a valid URL such as http://www.google.com.",currencyDollar:"Please enter a valid $ amount. For example $100.00 .",oneRequired:"Please enter something for at least one of these inputs.",errorPrefix:"Error: ",warningPrefix:"Warning: ",noSpace:"There can be no spaces in this input.",reqChkByNode:"No items are selected.",requiredChk:"This field is required.",reqChkByName:"Please select a {label}.",match:"This field needs to match the {matchName} field",startDate:"the start date",endDate:"the end date",currendDate:"the current date",afterDate:"The date should be the same or after {label}.",beforeDate:"The date should be the same or before {label}.",startMonth:"Please select a start month",sameMonth:"These two dates must be in the same month - you must change one or the other."});var OWR={};OWR=function(a,b,c,d){this.init(a,b,c,d)};OWR.prototype={currentId:0,pageOffset:0,menuTogglerStatus:0,isLoading:0,adding:'',period:0,TS:[],nbLogsLine:0,sortables:false,aAcc:{},lang:'',languages:['fr_FR','en_US'],messages:[],lastUpd:0,ttl:0,keywords:'',sort:'',dir:'',token:'',boardTogglerStatus:1,init:function(a,b,c,d){this.loading(true);if(!this.languages.contains(a)){a='en_US'}this.lang=a;this.ttl=b/1000;this.lastUpd=this.getTS();this.period=this.getLastNews.periodical(b,this);this.token=c;switch(this.lang){case'fr_FR':this.messages['Loading interface']="Chargement de l'interface";this.messages['Adding a category']="Ajout d'une catégorie";this.messages['Adding a stream']="Ajout d'un flux";this.messages['Searching for keywords']="Recherche des mots-clés";this.messages['Renaming the element']="Renomage de l'élément";this.messages['Moving the element']="Déplacement de l'élement";this.messages['Asking for the RSS gateway token']="Demande du lien pour la passerelle RSS";this.messages['Asking for the OPML gateway token']="Demande du lien pour la passerelle OPML";this.messages['Asking for the REST auth token']="Demande des identifiants de connexion REST";this.messages['Refreshing the interface']="Mise à jour de l'interface";this.messages['Marking news as read']="Marquage des nouvelles comme lues";this.messages['Refreshing the menu']="Mise à jour du menu";this.messages['Getting the news']="Récupération des nouvelles";this.messages['Asking for refreshing of streams']="Demande de mise à jour des flux";this.messages['Deleting']="Suppression";this.messages['Moving to page ']="Déplacement vers la page ";this.messages['Deleting news']="Suppression des nouvelles";this.messages['Making the maintenance.. please wait, it may take a while']="Maintenance en cours, celà peut prendre un certain temps";this.messages['Setting the new interface language']="Mise à jour de la langue de l'interface";this.messages['Getting the list of the users']="Récupération des données utilisateurs";this.messages['Wait wait ! A request is still running ! Please confirm you are leaving']="Attendez ! Attendez ! Une requête est toujours en cours ! Veuillez confirmer que vous partez";this.messages['Abort current request to the server ?']="Abandonner la requête en cours vers le serveur ?";this.messages['Delete ?']="Supprimer ?";this.messages['Getting contents of the category']="Récupération du contenu de la catégorie";this.messages['Getting details of the stream']="Récupération des détails du flux";this.messages['Getting contents of the new']="Récupération du contenu de la nouvelle";this.messages['Clearing myself, bye !']="Nettoyage en cours, à bientôt !";this.messages['Getting details of the new']="Récupération des informations de la nouvelle";this.messages['Marking news as unread']="Marquage des nouvelles comme non-lues";this.messages['Editing the url of the stream']="Édition de l'url du flux";break;case'en_US':break;default:break}var n=this.setLog('Loading interface');this.setTS();this.initMenu(true);this.initContents();if(d!=="0"){this.currentId='search';this.initCurrent();$('menu_title_streams').getNext().toggle();$('keywords').set('value',d);$('menu_tools').getNext().toggle();$('do_search').status=1;$('contents_do_search').slide('in')}this.loading(false,n)},getMessage:function(a){return($defined(this.messages[a])?this.messages[a]:a)},initMenu:function(d){this.loading(true);if(d){$$('div.menu_actions_toggler').removeEvents('click').each(function(c){c.addEvent('click',function(e,a){e.stop();var b=a.get('id');if(!a.status){a.status=1;$('contents_'+b).setStyle('display','block').slide('in')}else{a.status=!a.status;$('contents_'+b).slide()}}.bindWithEvent(this,c))},this);$$('div.menu_actions_contents').each(function(a){a.slide('out')});$$('li.menu_part_title').each(function(a,k){var n=a.getNext();if(k>0){n.toggle()}a.removeEvents('click').addEvent('click',function(){this.toggle()}.bindWithEvent(n))})}else{this.initSortables()}this.loading(false)},gstreamsToggle:function(a,b){var c=$('groupContainer_'+a);if(!$defined(b.status)){if(!c){var e=$('stream_'+a);if(!e){return}e.adopt(new Element('ul',{'id':'groupContainer_'+a,'class':'menu_groups'}))}this.getMenuPartGroup(a)}else{b.setStyle('background-position',(b.status?'-303px 0px':'-319px 0px'));c.getParent().setStyle('height','auto');c.toggle();b.status=!b.status}},toggleBoard:function(){var a=$('board');if(this.boardTogglerStatus===0){$('menu').setStyle('top','75px');$('contents').setStyle('margin-top','80px');a.setStyle('display','block');$('board_toggler').setStyle('background-position','-692px 0px');this.boardTogglerStatus=1}else{$('menu').setStyle('top','0px');$('contents').setStyle('margin-top','0px');a.setStyle('display','none');$('board_toggler').setStyle('background-position','-675px 0px');this.boardTogglerStatus=0}},manageToggler:function(a){if(a||this.menuTogglerStatus===0){$('menu').setStyle('display','none');$('contents').setStyle('width','100%');$('menu_toggler').setStyle('background-position','-18px 0px');this.menuTogglerStatus=1}else{$('contents').setStyle('width','75%');$('menu').setStyle('display','block');$('menu_toggler').setStyle('background-position','0px 0px');this.menuTogglerStatus=0}},loadImage:function(a,b){this.loading(true);var c=a.getFirst();var p=a.getParent('div.article_contents');var d=p.getParent().getSize();var e=p.getSize();c.addEvent('load',function(){a.set('title',b);a.set('target','_blank');a.onclick=function(){this.set('href',b)};p.getParent().setStyle('height',d.y+(p.getSize().y-e.y));this.loading(false)}.bindWithEvent(this));c.set('src',b);a.set('class','')},initContents:function(){this.loading(true);$$('div[class^=article_title]').removeEvents('click').each(function(f){var g;f.addEvent('click',function(e,d){$clear(g);if(e.target.get('class')==='link_go'||e.target.hasClass('new_status')){return}e.stop();g=(function(){var a=d.get('id').split('_');var b=$('new__'+a[1]+'_'+a[2]+'_'+a[3]);if(!b){return}if(!b.get('html').trim()){this.getNew(d.get('id'))}else{var c=d.getStyle('color');if(!c||'white'===c||'#000000'===c||'#000'===c||'#ffffff'===c||'#FFFFFF'===c||'#fff'===c||'#ffffff'===c){d.setStyles({'background-color':'#BBBBBB','color':'black'})}else{d.setStyles({'background-color':'#666666','color':'white'})}b.toggle()}}).delay(200,this)}.bindWithEvent(this,f));f.addEvent('dblclick',function(e,a){$clear(g);window.open(a.getFirst().getChildren('.link_go').get('href'));if(a.hasClass('new_container_nread')){this.updateNews(a.get('id').split('_')[1])}}.bindWithEvent(this,f))},this);this.loading(false)},setLogs:function(b,c){if(!b){return}$each(b,function(a){if('object'===typeof a){this.setLogs(a,c)}else{this.setLog(a,c)}},this)},parseResponse:function(a,b,c){if(a){if(a.location){window.location.href=a.location}if(a.logs){this.setLogs(a.logs)}if(a.errors){this.setLogs(a.errors,true)}if($defined(a.contents)){if(c){var c=$(c);if(c){c.empty();c.set('html',a.contents)}if(a.unreads){this.getUnread(a.unreads)}return''}if(a.unreads){this.getUnread(a.unreads)}return a.contents}else{if(c){var c=$(c);if(c){c.empty();c.set('html',a)}}if(a.unreads){this.getUnread(a.unreads)}}}else{if(b){this.setLog(b,true)}if(c){var c=$(c);if(c){c.empty()}}}return''},editStreamGroupsFormAction:function(){var f=$('editstreamgroup');var v=f.getChildren().getChildren('input[name=name]')[0].get('value');if(''===v){return false}this.loading(true);var n=this.setLog('Adding a category');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(e,n){this.loading(false,n);var f=this.parseResponse(e);f.id=f.id.toInt();$$('select[id^=move_]').each(function(b){var c=false;b.getChildren('option').each(function(a){if(a.get('value').toInt()===f.id){c=true}});if(!c){var d=new Element('option',{'value':f.id});d.appendText(v);d.inject(b)}});if(!$('stream_'+f.id)&&f.menu){var g=new Element('div');g.set('html',f.menu);$('menu_streams').grab(g.getFirst());if(!$$('a.anchor')){this.initMenu()}}}.bindWithEvent(this,n));r.post(f);return false},editStreamFormAction:function(){this.loading(true);var n=this.setLog('Adding a stream');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);if(b){var c=new Element('div',{'html':b});var d=c.getFirst();var e=d.get('id');var f=$(e);if(f){d.replaces(f)}else{d.inject('menu_streams')}this.initMenu()}}.bindWithEvent(this,n));r.post($('editstream'));return false},searchFormAction:function(d){var e='';if(d){e=$('search_'+d).get('value')}else{e=$('keywords').get('value');d=0}if(e===''){return false}this.loading(true);var n=this.setLog('Searching for keywords');this.setLog('"'+e+'"');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c){this.loading(false,n);this.parseResponse(a,null,'body_container');this.initContents();this.pageOffset=0;this.keywords=b;this.currentId='search_'+c;this.initCurrent();var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop()}.bindWithEvent(this,[n,e,d]));if(!d){r.post($('search_0'))}else{r.post({'do':'search','id':d,'keywords':e})}return false},searchStream:function(a){if(!a){return}this.loading(true);var b=$('search_'+a);var c=$('stream_toggler_'+a);if(!c){c=$('gstream_toggler_'+a)}if(b.getStyle('display')=='inline'){if(this.sortables){c.status?this.sortables.addItems(c.getParents()[1]):this.sortables.removeItems(c.getParents()[1])}b.setStyle('display','none')}else{if(this.sortables){this.sortables.removeItems(c.getParents()[1])}b.setStyle('display','inline')}this.loading(false)},raiseXHRError:function(a,n){this.loading(false,n,true);a=JSON.decode(a,true);if(a.errors){this.setLogs(a.errors,true)}if(a.unreads){this.getUnread(a.unreads)}},inputRename:function(g){this.loading(true);var h=g.get('value');if(h===''){g.setStyle('display','none');this.loading(false);return}var i=g.get('id').split('_')[1];var j=$('showStream_'+i).get('html');myRegexp=new RegExp('(.*?)( \\(<span id="unread_\\d+">\\d+</span>\\))','gi');var k=j.replace(myRegexp,h+"$2");if(j==k){g.setStyle('display','none');this.loading(false);return}var n=this.setLog('Renaming the element');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(e,n,f){this.loading(false,n);this.parseResponse(e);$('showStream_'+i).set('html',f);if($('stream_'+i).hasClass('groups')){f=f.replace(myRegexp,"$1");$$('select[id^=move_]').each(function(b){var c=false;b.getChildren('option').each(function(a){if(a.get('value').toInt()==i){a.set('html',f);c=true}});if(!c){var d=new Element('option',{'value':i});d.inject(b);d.appendText(f)}})}if(this.sortables&&!$('stream_toggler_'+i).status){this.sortables.addItems($('stream_'+i))}}.bindWithEvent(this,[n,k]));r.post({'do':'rename','name':g.get('value'),'id':i});g.setStyle('display','none')},inputEditStreamUrl:function(c){this.loading(true);var d=c.get('value');if(d===''){c.setStyle('display','none');this.loading(false);return}var e=c.get('id').split('_')[1];var f=c.getParents('.menu_groups')[0].get('id').split('_')[1];var n=this.setLog('Editing the url of the stream');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);this.parseResponse(a);this.getMenuPartGroup(b);this.showStream(0)}.bindWithEvent(this,[n,f]));r.post({'do':'editstream','url':c.get('value'),'id':e});c.setStyle('display','none')},selectMove:function(c){this.loading(true);var n=this.setLog('Moving the element');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);this.parseResponse(a);var s=$('stream_'+b.get('id').split('_')[1]);var o=$('gstream_toggler_'+b.get('value'));if(s&&o.status){s.inject($('groupContainer_'+b.get('value')))}else{s.destroy()}this.initMenu();this.initCurrent()}.bindWithEvent(this,[n,c]));r.post({'do':'move','id':c.get('id').split('_')[1],'gid':c.get('value')})},getRestAuthToken:function(){this.loading(true);var n=this.setLog('Asking for the REST auth token');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);prompt('',b)}.bindWithEvent(this,n));r.get({'do':'regeneraterestauthtoken'})},getRssToken:function(c){this.loading(true);var n=this.setLog('Asking for the RSS gateway token');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);prompt('',b)}.bindWithEvent(this,n));r.get({'do':'regeneratersstoken','id':c})},editOPML:function(){if($('opml').get('value').length){this.loading(true);var n=this.setLog('Adding a stream');var b=new Element('iframe');b.set({'id':'ieditopml','name':'ieditopml'});b.setStyles({'width':0,'height':0,'border':'none'});var f=$('editopml');f.set('action','./?do=editopml&token='+this.token);f.set('target','ieditopml');f.getParent().adopt(b);b.addEvent('load',function(e,n){this.loading(false,n);$('ieditopml').destroy();window.location='./?token='+this.token}.bindWithEvent(this,n));f.submit()}else{var v=$('url').get('value');if(!v){return false}this.loading(true);var n=this.setLog('Adding a stream');var r=new Request.JSON({'url':'./?do=editopml&token='+this.token});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.post($('editopml'))}return false},getOpmlToken:function(c){this.loading(true);var n=this.setLog('Asking for the OPML gateway token');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);prompt('',b)}.bindWithEvent(this,n));r.get({'do':'regenerateopmltoken','id':c})},initCurrent:function(){this.loading(true);if(typeof(this.currentId)==='string'&&-1!==this.currentId.indexOf("search_")){var a=this.currentId.split('_')[1].toInt();$$('a[id^=current_]').setStyle('display','none');if(!a){$('current_search').setStyle('display','block')}else{$('current_'+a).setStyle('display','block')}}else{$$('a[id^=current_]').setStyle('display','none');$('current_'+this.currentId).setStyle('display','block')}this.loading(false)},initSortables:function(){if(this.sortables){delete this.sortables}this.sortables=new Sortables($$('ul.menu_groups'),{clone:true,revert:true,onStart:function(e){this.currentgid=e.getParent().get('id').split('_')[1].toInt()}});this.sortables.addEvent('complete',function(e,a){if(!a.currentgid){return}var b=e.getParent().get('id').split('_')[1].toInt();if(b===a.currentgid){a.currentgid=0;return}var c=e.get('id').split('_')[1];a.currentgid=0;this.moveSortables(c,b)}.bindWithEvent(this,this.sortables))},streamsToggle:function(a,b){var c=$('streamContainer_'+a);if(!$defined(b.status)){if(!c){var e=$('stream_'+a);if(!e){return}e.adopt(new Element('ul',{'id':'streamContainer_'+a,'class':'stream_more'}))}this.getMenuPartStream(a);if(this.sortables){this.sortables.removeItems(b.getParents()[1])}}else{b.setStyle('background-position',(b.status?'-303px 0px':'-319px 0px'));b.getParents()[2].setStyle('height','auto');c.toggle();if(this.sortables){b.status?this.sortables.addItems(b.getParents()[1]):this.sortables.removeItems(b.getParents()[1])}b.status=!b.status}},moveSortables:function(c,d){if(!c||!d){return}this.loading(true);var n=this.setLog('Moving the element');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.post({'do':'move','id':c,'gid':d})},loading:function(a,b,c){if(a){if(!this.isLoading){$('logo').set('src','./images/images.php?f=owr_loading.gif')}++this.isLoading}else{if(this.isLoading>0){--this.isLoading}if(!this.isLoading){$('logo').set('src','./images/images.php?f=owr_50_50.png')}if($chk(b)){b=b.toInt();var d=$('logs').getChildren()[b];if(d){d.set('html','<span style="color:'+(c?'red':'green')+'">'+d.get('html')+'</span>')}}}},editStreamUrl:function(a){if(!a){return}this.loading(true);var b=$('editurl_'+a);if(b.getStyle('display')=='inline'){b.setStyle('display','none');if(this.sortables&&!$('stream_toggler_'+a).status){this.sortables.addItems(b.getParents('li[id^=stream_]')[0])}}else{if(this.sortables){this.sortables.removeItems(b.getParents('li[id^=stream_]')[0])}b.setStyle('display','inline')}this.loading(false)},renameStream:function(a){if(!a){return}this.loading(true);var b=$('rename_'+a);if(b.getStyle('display')=='inline'){b.setStyle('display','none');if(this.sortables&&!$('stream_toggler_'+a).status){this.sortables.addItems(b.getParents('li[id^=stream_]')[0])}}else{if(this.sortables){this.sortables.removeItems(b.getParents('li[id^=stream_]')[0])}b.setStyle('display','inline')}this.loading(false)},moveStream:function(a){if(!a){return}this.loading(true);var b=$('move_'+a);b.setStyle('display',b.getStyle('display')=='inline'?'none':'inline');this.loading(false)},getUnread:function(d){this.loading(true);if(!d){var n=this.setLog('Refreshing the interface');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(c,n){this.loading(false,n);$$('span[id^=unread_]').each(function(a){var b=a.get('id').split('_');if(c.contents[b[1]]){a.set('html',c.contents[b[1]]);a.getParent().setStyle('font-weight','bold')}else{a.set('html','0');a.getParent().setStyle('font-weight','')}});this.lastUpd=this.getTS()}.bindWithEvent(this,n));r.get({'do':'getunread'})}else{$$('span[id^=unread_]').each(function(a){var b=a.get('id').split('_');if(d[b[1]]){a.set('html',d[b[1]]);a.getParent().setStyle('font-weight','bold')}else{a.set('html','0');a.getParent().setStyle('font-weight','normal')}});this.lastUpd=this.getTS();this.loading(false)}},updateNews:function(f,g){var h=0;if('page'==f){f=[];$$('div.new_container_nread').each(function(a){this.push(a.get('id').split('_')[1])},f);if(!f.length){return}}else{if(g){h=$$('div[id^=new_'+f+']')[0].hasClass('new_container_read')?1:0}}this.loading(true);var n=this.setLog(h?'Marking news as unread':'Marking news as read');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(c,n,d){this.loading(false,n);this.parseResponse(c);if(this.currentId===0&&f===0){$('body_container').empty();this.pageOffset=0}else{if('object'===typeof f||f===this.currentId){$$('div.new_container_nread]').removeClass('new_container_nread').addClass('new_container_read');$$('a[id^=imgnew]').setStyle('display','none');if('object'===typeof f&&(0===this.currentId||this.sort)){--this.pageOffset}}else{var e=0;if(0===f.toInt()){$$('div.new_container_nread').each(function(a){a.removeClass('new_container_nread').addClass('new_container_read');++e})}else{if(d){$$('div.new_container_read').each(function(a){var b=a.get('id').split('_');if(b[1]==f||b[2]==f||b[3]==f){a.removeClass('new_container_read').addClass('new_container_nread');$('imgnew_'+f).setStyle('display','block')}})}else{$$('div.new_container_nread').each(function(a){var b=a.get('id').split('_');if(b[1]==f||b[2]==f||b[3]==f){a.removeClass('new_container_nread').addClass('new_container_read');$('imgnew_'+f).setStyle('display','none');++e}})}}if(e>0&&(0===this.currentId||this.sort)){--this.pageOffset}}}}.bindWithEvent(this,[n,h]));if('object'===typeof f){r.get({'ids':f,'do':'upnew','currentid':this.currentId,'status':h})}else{r.get({'id':f,'do':'upnew','currentid':this.currentId,'status':h,'timestamp':this.getCurrentTS(f)})}},clearLogs:function(){$('logs').empty();this.nbLogsLine=0},showStream:function(e,f,g){this.loading(true);if(!e){e=0}var n=this.setLog('Getting the news');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c,d){this.loading(false,n);this.currentId=d;this.initCurrent();this.parseResponse(a,null,'body_container');this.initContents();var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop();this.setTS();this.pageOffset=0;this.sort=b;this.dir=c}.bindWithEvent(this,[n,f,g,e]));if(typeof e==='string'&&-1!==e.indexOf('search_')){e=e.split('_')[1];r.get({'do':'search','keywords':this.keywords,'offset':this.pageOffset,'sort':f,'dir':g,'id':e})}else{r.get({'id':e,'do':'getstream','sort':f,'dir':g})}},refreshStream:function(c,d){this.loading(true);if(!c){c=0}if(!d){d=0}else{if(d!==0&&d!==1){if(d==="true"){d=1}else{d=0}}}var n=this.setLog('Asking for refreshing of streams');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.get({'id':c,'do':'refreshstream','currentid':this.currentId,'force':d})},deleteStream:function(f){if(!confirm(this.getMessage('Delete ?'))){return}if(!f){f=0}this.loading(true);var n=this.setLog('Deleting');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(c,n){this.loading(false,n);if(0!==f&&(f==this.currentId||0===this.currentId)){this.parseResponse(c,null,'body_container');this.initContents()}else{if(0===f){$('body_container').empty();$('menu_streams').getChildren().each(function(a){if('stream_0'!=a.get('id')){a.destroy()}});$$('select[id^=move_]').each(function(b){b.getChildren('option').each(function(a){a.destroy()})})}this.parseResponse(c)}if(0!==f){if($('stream_'+f)){$('stream_'+f).destroy();$$('select[id^=move_]').each(function(b){b.getChildren('option').each(function(a){if(a.get('value').toInt()===f){a.destroy()}})})}var d=$$('div[id^=new_\d+]');var e=[];d.each(function(a){e=a.get('id').split('_');if(e[1]==f||e[2]==f||e[3]==f){a.destroy();$('new__'+f[1]+'_'+f[2]+'_'+f[3]).destroy()}})}if(f==this.currentId){this.currentId=0}}.bindWithEvent(this,n));r.get({'do':'delete','id':f,'currentid':this.currentId})},deleteUser:function(c){if(!c){return}if(!confirm(this.getMessage('Delete ?'))){return}this.loading(true);var n=this.setLog('Deleting');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);$('user_'+b).destroy()}.bindWithEvent(this,[n,c]));r.get({'do':'delete','id':c})},moveToPage:function(c){if(!c){c=0}if(this.pageOffset==c){return}this.loading(true);if('next'===c){c=this.pageOffset>=0?this.pageOffset+1:0}else{if('prev'===c){c=this.pageOffset>0?this.pageOffset-1:0}}var n=this.setLog(['Moving to page ',c+1]);var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);$$('div.links[id^=moveToPage_]').destroy();this.parseResponse(a,null,'body_container');this.initContents();var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop();this.pageOffset=c}.bindWithEvent(this,n));if(typeof this.currentId==='string'&&-1!==this.currentId.indexOf('search_')){r.get({'do':'search','keywords':this.keywords,'offset':c,'sort':this.sort,'dir':this.dir,'id':this.currentId.split('_')[1]})}else{r.get({'do':'getstream','id':this.currentId,'offset':c,'sort':this.sort,'dir':this.dir})}},clearStream:function(c){if(!confirm(this.getMessage('Delete ?'))){return}this.loading(true);var n=this.setLog('Deleting news');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'body_container');this.initContents()}.bindWithEvent(this,n));r.get({'do':'clearstream','id':c,'currentid':this.currentId})},askMaintenance:function(){this.loading(true);var n=this.setLog('Making the maintenance.. please wait, it may take a while');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.get({'do':'maintenance'})},setLog:function(b,c){if(!b){return}var d=new Element('li');var e=new Element('span');if(c){e.set('class','error')}var f=new Date();var h=f.getHours();var m=f.getMinutes();var s=f.getSeconds();e.appendText((h<10?'0'+h.toString():h)+':'+(m<10?'0'+m.toString():m)+':'+(s<10?'0'+s.toString():s)+' ');if("string"!==(typeof b)){b.each(function(a){if($defined(this.messages[a])){a=this.messages[a]}e.appendText(a)},this)}else{if($defined(this.messages[b])){b=this.messages[b]}e.appendText(b)}d.adopt(e);++this.nbLogsLine;d.set('id','logging_line_'+this.nbLogsLine);if(!$('logs')){$('logs_container').adopt(new Element('ul',{'id':'logs'}))}$('logs').adopt(d);if(this.nbLogsLine>3){var s=new Fx.Scroll($('logs_container'),{duration:1});s.toElement(d)}return(this.nbLogsLine-1)},setLang:function(c){this.loading(true);var n=this.setLog('Setting the new interface language');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);if(!a.errors){window.location.href='./?token='+this.token;return}this.parseResponse(a)}.bindWithEvent(this,n));r.post({'do':'changelang','newlang':c})},getUsersList:function(){this.loading(true);var n=this.setLog('Getting the list of the users');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'body_container');this.currentId=0;var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop()}.bindWithEvent(this,n));r.get({'do':'getusers'})},getLastNews:function(){if((this.lastUpd+this.ttl)>this.getTS()){return}this.loading(true);var n=this.setLog('Refreshing the interface');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);if(0===this.currentId){this.parseResponse(a)}else{this.parseResponse(a)}}.bindWithEvent(this,n));r.get({'do':'getlastnews','currentid':this.currentId})},confirmExit:function(){if(this.isLoading){this.setLog('Wait wait ! A request is still running ! Please confirm you are leaving',true);if(!confirm('Abort current request to the server ?')){return false}}return true},getMenuPartGroup:function(c){if(!c){return}this.loading(true);var n=this.setLog('Getting contents of the category');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'groupContainer_'+c);this.initSortables();$('gstream_toggler_'+c).setStyle('background-position','-319px 0px').status=1;$('groupContainer_'+c).setStyle('display','block').getParent().setStyle('height','auto')}.bindWithEvent(this,n));r.get({'do':'getmenupartgroup','id':c})},getMenuPartStream:function(c){if(!c){return}this.loading(true);var n=this.setLog('Getting details of the stream');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'streamContainer_'+c);$('stream_toggler_'+c).setStyle('background-position','-319px 0px').status=1;$('streamContainer_'+c).setStyle('display','block').getParents()[2].setStyle('height','auto')}.bindWithEvent(this,n));r.get({'do':'getmenupartstream','id':c})},getNewDetails:function(d,e){if(!d){return false}if(!e.status){this.loading(true);var n=this.setLog('Getting details of the new');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c){this.loading(false,n);this.parseResponse(a,null,'new_details_'+c);$('new_details_'+c).toggle();addthis.button('#addthis_'+c,{'ui_cobrand':'OWR','data_use_cookies':false,'data_use_flash':false});b.status=1}.bindWithEvent(this,[n,e,d]));r.get({'do':'getnewdetails','id':d})}else{$('new_details_'+d).toggle()}},getTS:function(){return Math.floor((new Date()).getTime()/1000)},setTS:function(a){if(a){this.TS[a]=this.getTS()}else{this.TS[this.currentId]=this.getTS()}},getCurrentTS:function(a){if(a){if($defined(this.TS[a])){return this.TS[a]}}else{if($defined(this.TS[this.currentId])){return this.TS[this.currentId]}}return 0},getNew:function(h){if(!h){return}this.loading(true);var n=this.setLog('Getting contents of the new');var i=$(h);var j=i.hasClass('new_container_nread')?1:0;var k=h.split('_');idc=i.getNext();var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c,d,e){this.loading(false,n);var f=this.parseResponse(a);if(f){c.set('html',f).toggle();e.removeClass('new_container_nread').addClass('new_container_read').setStyles({'background-color':'#666666','color':'white'})}var g=$('imgnew_'+b[1]);if(g){g.setStyle('display','none')}if(0===this.currentId){--this.pageOffset}}.bindWithEvent(this,[n,k,idc,j,i]));r.get({'do':'getnewcontents','id':k[1],'live':j,'currentid':this.currentId,'offset':this.pageOffset})},clear:function(){this.setLog('Clearing myself, bye !');if($chk(this.period)){$clear(this.period)}delete this.period;delete this.currentId;delete this.pageOffset;delete this.menuTogglerStatus;delete this.isLoading;if($chk(this.adding)){delete this.adding}delete this.aAcc;delete this.TS;delete this.nbLogsLine;delete this.sortables;delete this.lang;delete this.adding;delete this.languages;delete this.messages;delete this.lastUpd;delete this.ttl;delete this.keywords;delete this.sort;delete this.dir;delete this.token;delete this.boardTogglerStatus;return true}}; 
     48var MooTools={version:"1.2.2",build:"f0491d62fbb7e906789aa3733d6a67d43e5af7c9"};var Native=function(k){k=k||{};var a=k.name;var i=k.legacy;var b=k.protect;var c=k.implement;var h=k.generics;var f=k.initialize;var g=k.afterImplement||function(){};var d=f||i;h=h!==false;d.constructor=Native;d.$family={name:"native"};if(i&&f){d.prototype=i.prototype}d.prototype.constructor=d;if(a){var e=a.toLowerCase();d.prototype.$family={name:e};Native.typize(d,e)}var j=function(n,l,o,m){if(!b||m||!n.prototype[l]){n.prototype[l]=o}if(h){Native.genericize(n,l,b)}g.call(n,l,o);return n};d.alias=function(n,l,o){if(typeof n=="string"){if((n=this.prototype[n])){return j(this,l,n,o)}}for(var m in n){this.alias(m,n[m],l)}return this};d.implement=function(m,l,o){if(typeof m=="string"){return j(this,m,l,o)}for(var n in m){j(this,n,m[n],l)}return this};if(c){d.implement(c)}return d};Native.genericize=function(b,c,a){if((!a||!b[c])&&typeof b.prototype[c]=="function"){b[c]=function(){var d=Array.prototype.slice.call(arguments);return b.prototype[c].apply(d.shift(),d)}}};Native.implement=function(d,c){for(var b=0,a=d.length;b<a;b++){d[b].implement(c)}};Native.typize=function(a,b){if(!a.type){a.type=function(c){return($type(c)===b)}}};(function(){var a={Array:Array,Date:Date,Function:Function,Number:Number,RegExp:RegExp,String:String};for(var h in a){new Native({name:h,initialize:a[h],protect:true})}var d={"boolean":Boolean,"native":Native,object:Object};for(var c in d){Native.typize(d[c],c)}var f={Array:["concat","indexOf","join","lastIndexOf","pop","push","reverse","shift","slice","sort","splice","toString","unshift","valueOf"],String:["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]};for(var e in f){for(var b=f[e].length;b--;){Native.genericize(window[e],f[e][b],true)}}})();var Hash=new Native({name:"Hash",initialize:function(a){if($type(a)=="hash"){a=$unlink(a.getClean())}for(var b in a){this[b]=a[b]}return this}});Hash.implement({forEach:function(b,c){for(var a in this){if(this.hasOwnProperty(a)){b.call(c,this[a],a,this)}}},getClean:function(){var b={};for(var a in this){if(this.hasOwnProperty(a)){b[a]=this[a]}}return b},getLength:function(){var b=0;for(var a in this){if(this.hasOwnProperty(a)){b++}}return b}});Hash.alias("forEach","each");Array.implement({forEach:function(c,d){for(var b=0,a=this.length;b<a;b++){c.call(d,this[b],b,this)}}});Array.alias("forEach","each");function $A(b){if(b.item){var a=b.length,c=new Array(a);while(a--){c[a]=b[a]}return c}return Array.prototype.slice.call(b)}function $arguments(a){return function(){return arguments[a]}}function $chk(a){return!!(a||a===0)}function $clear(a){clearTimeout(a);clearInterval(a);return null}function $defined(a){return(a!=undefined)}function $each(c,b,d){var a=$type(c);((a=="arguments"||a=="collection"||a=="array")?Array:Hash).each(c,b,d)}function $empty(){}function $extend(c,a){for(var b in(a||{})){c[b]=a[b]}return c}function $H(a){return new Hash(a)}function $lambda(a){return(typeof a=="function")?a:function(){return a}}function $merge(){var a=Array.slice(arguments);a.unshift({});return $mixin.apply(null,a)}function $mixin(e){for(var d=1,a=arguments.length;d<a;d++){var b=arguments[d];if($type(b)!="object"){continue}for(var c in b){var g=b[c],f=e[c];e[c]=(f&&$type(g)=="object"&&$type(f)=="object")?$mixin(f,g):$unlink(g)}}return e}function $pick(){for(var b=0,a=arguments.length;b<a;b++){if(arguments[b]!=undefined){return arguments[b]}}return null}function $random(b,a){return Math.floor(Math.random()*(a-b+1)+b)}function $splat(b){var a=$type(b);return(a)?((a!="array"&&a!="arguments")?[b]:b):[]}var $time=Date.now||function(){return+new Date};function $try(){for(var b=0,a=arguments.length;b<a;b++){try{return arguments[b]()}catch(c){}}return null}function $type(a){if(a==undefined){return false}if(a.$family){return(a.$family.name=="number"&&!isFinite(a))?false:a.$family.name}if(a.nodeName){switch(a.nodeType){case 1:return"element";case 3:return(/\S/).test(a.nodeValue)?"textnode":"whitespace"}}else{if(typeof a.length=="number"){if(a.callee){return"arguments"}else{if(a.item){return"collection"}}}}return typeof a}function $unlink(c){var b;switch($type(c)){case"object":b={};for(var e in c){b[e]=$unlink(c[e])}break;case"hash":b=new Hash(c);break;case"array":b=[];for(var d=0,a=c.length;d<a;d++){b[d]=$unlink(c[d])}break;default:return c}return b}var Browser=$merge({Engine:{name:"unknown",version:0},Platform:{name:(window.orientation!=undefined)?"ipod":(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.querySelector)},Plugins:{},Engines:{presto:function(){return(!window.opera)?false:((arguments.callee.caller)?960:((document.getElementsByClassName)?950:925))},trident:function(){return(!window.ActiveXObject)?false:((window.XMLHttpRequest)?5:4)},webkit:function(){return(navigator.taintEnabled)?false:((Browser.Features.xpath)?((Browser.Features.query)?525:420):419)},gecko:function(){return(document.getBoxObjectFor==undefined)?false:((document.getElementsByClassName)?19:18)}}},Browser||{});Browser.Platform[Browser.Platform.name]=true;Browser.detect=function(){for(var b in this.Engines){var a=this.Engines[b]();if(a){this.Engine={name:b,version:a};this.Engine[b]=this.Engine[b+a]=true;break}}return{name:b,version:a}};Browser.detect();Browser.Request=function(){return $try(function(){return new XMLHttpRequest()},function(){return new ActiveXObject("MSXML2.XMLHTTP")})};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var a=($try(function(){return navigator.plugins["Shockwave Flash"].description},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")})||"0 r0").match(/\d+/g);return{version:parseInt(a[0]||0+"."+a[1],10)||0,build:parseInt(a[2],10)||0}})();function $exec(b){if(!b){return b}if(window.execScript){window.execScript(b)}else{var a=document.createElement("script");a.setAttribute("type","text/javascript");a[(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerText":"text"]=b;document.head.appendChild(a);document.head.removeChild(a)}return b}Native.UID=1;var $uid=(Browser.Engine.trident)?function(a){return(a.uid||(a.uid=[Native.UID++]))[0]}:function(a){return a.uid||(a.uid=Native.UID++)};var Window=new Native({name:"Window",legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(a){$uid(a);if(!a.Element){a.Element=$empty;if(Browser.Engine.webkit){a.document.createElement("iframe")}a.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{}}a.document.window=a;return $extend(a,Window.Prototype)},afterImplement:function(b,a){window[b]=Window.Prototype[b]=a}});Window.Prototype={$family:{name:"window"}};new Window(window);var Document=new Native({name:"Document",legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(a){$uid(a);a.head=a.getElementsByTagName("head")[0];a.html=a.getElementsByTagName("html")[0];if(Browser.Engine.trident&&Browser.Engine.version<=4){$try(function(){a.execCommand("BackgroundImageCache",false,true)})}if(Browser.Engine.trident){a.window.attachEvent("onunload",function(){a.window.detachEvent("onunload",arguments.callee);a.head=a.html=a.window=null})}return $extend(a,Document.Prototype)},afterImplement:function(b,a){document[b]=Document.Prototype[b]=a}});Document.Prototype={$family:{name:"document"}};new Document(document);Array.implement({every:function(c,d){for(var b=0,a=this.length;b<a;b++){if(!c.call(d,this[b],b,this)){return false}}return true},filter:function(d,e){var c=[];for(var b=0,a=this.length;b<a;b++){if(d.call(e,this[b],b,this)){c.push(this[b])}}return c},clean:function(){return this.filter($defined)},indexOf:function(c,d){var a=this.length;for(var b=(d<0)?Math.max(0,a+d):d||0;b<a;b++){if(this[b]===c){return b}}return-1},map:function(d,e){var c=[];for(var b=0,a=this.length;b<a;b++){c[b]=d.call(e,this[b],b,this)}return c},some:function(c,d){for(var b=0,a=this.length;b<a;b++){if(c.call(d,this[b],b,this)){return true}}return false},associate:function(c){var d={},b=Math.min(this.length,c.length);for(var a=0;a<b;a++){d[c[a]]=this[a]}return d},link:function(c){var a={};for(var e=0,b=this.length;e<b;e++){for(var d in c){if(c[d](this[e])){a[d]=this[e];delete c[d];break}}}return a},contains:function(a,b){return this.indexOf(a,b)!=-1},extend:function(c){for(var b=0,a=c.length;b<a;b++){this.push(c[b])}return this},getLast:function(){return(this.length)?this[this.length-1]:null},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null},include:function(a){if(!this.contains(a)){this.push(a)}return this},combine:function(c){for(var b=0,a=c.length;b<a;b++){this.include(c[b])}return this},erase:function(b){for(var a=this.length;a--;a){if(this[a]===b){this.splice(a,1)}}return this},empty:function(){this.length=0;return this},flatten:function(){var d=[];for(var b=0,a=this.length;b<a;b++){var c=$type(this[b]);if(!c){continue}d=d.concat((c=="array"||c=="collection"||c=="arguments")?Array.flatten(this[b]):this[b])}return d},hexToRgb:function(b){if(this.length!=3){return null}var a=this.map(function(c){if(c.length==1){c+=c}return c.toInt(16)});return(b)?a:"rgb("+a+")"},rgbToHex:function(d){if(this.length<3){return null}if(this.length==4&&this[3]==0&&!d){return"transparent"}var b=[];for(var a=0;a<3;a++){var c=(this[a]-0).toString(16);b.push((c.length==1)?"0"+c:c)}return(d)?b:"#"+b.join("")}});Function.implement({extend:function(a){for(var b in a){this[b]=a[b]}return this},create:function(b){var a=this;b=b||{};return function(d){var c=b.arguments;c=(c!=undefined)?$splat(c):Array.slice(arguments,(b.event)?1:0);if(b.event){c=[d||window.event].extend(c)}var e=function(){return a.apply(b.bind||null,c)};if(b.delay){return setTimeout(e,b.delay)}if(b.periodical){return setInterval(e,b.periodical)}if(b.attempt){return $try(e)}return e()}},run:function(a,b){return this.apply(b,$splat(a))},pass:function(a,b){return this.create({bind:b,arguments:a})},bind:function(b,a){return this.create({bind:b,arguments:a})},bindWithEvent:function(b,a){return this.create({bind:b,arguments:a,event:true})},attempt:function(a,b){return this.create({bind:b,arguments:a,attempt:true})()},delay:function(b,c,a){return this.create({bind:c,arguments:a,delay:b})()},periodical:function(c,b,a){return this.create({bind:b,arguments:a,periodical:c})()}});Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this))},round:function(a){a=Math.pow(10,a||0);return Math.round(this*a)/a},times:function(b,c){for(var a=0;a<this;a++){b.call(c,a,this)}},toFloat:function(){return parseFloat(this)},toInt:function(a){return parseInt(this,a||10)}});Number.alias("times","each");(function(b){var a={};b.each(function(c){if(!Number[c]){a[c]=function(){return Math[c].apply(null,[this].concat($A(arguments)))}}});Number.implement(a)})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);String.implement({test:function(a,b){return((typeof a=="string")?new RegExp(a,b):a).test(this)},contains:function(a,b){return(b)?(b+this+b).indexOf(b+a+b)>-1:this.indexOf(a)>-1},trim:function(){return this.replace(/^\s+|\s+$/g,"")},clean:function(){return this.replace(/\s+/g," ").trim()},camelCase:function(){return this.replace(/-\D/g,function(a){return a.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/[A-Z]/g,function(a){return("-"+a.charAt(0).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(a){return a.toUpperCase()})},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},toInt:function(a){return parseInt(this,a||10)},toFloat:function(){return parseFloat(this)},hexToRgb:function(b){var a=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(a)?a.slice(1).hexToRgb(b):null},rgbToHex:function(b){var a=this.match(/\d{1,3}/g);return(a)?a.rgbToHex(b):null},stripScripts:function(b){var a="";var c=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){a+=arguments[1]+"\n";return""});if(b===true){$exec(a)}else{if($type(b)=="function"){b(a,c)}}return c},substitute:function(a,b){return this.replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)=="\\"){return d.slice(1)}return(a[c]!=undefined)?a[c]:""})}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(b){for(var a in this){if(this.hasOwnProperty(a)&&this[a]===b){return a}}return null},hasValue:function(a){return(Hash.keyOf(this,a)!==null)},extend:function(a){Hash.each(a,function(c,b){Hash.set(this,b,c)},this);return this},combine:function(a){Hash.each(a,function(c,b){Hash.include(this,b,c)},this);return this},erase:function(a){if(this.hasOwnProperty(a)){delete this[a]}return this},get:function(a){return(this.hasOwnProperty(a))?this[a]:null},set:function(a,b){if(!this[a]||this.hasOwnProperty(a)){this[a]=b}return this},empty:function(){Hash.each(this,function(b,a){delete this[a]},this);return this},include:function(a,b){if(this[a]==undefined){this[a]=b}return this},map:function(b,c){var a=new Hash;Hash.each(this,function(e,d){a.set(d,b.call(c,e,d,this))},this);return a},filter:function(b,c){var a=new Hash;Hash.each(this,function(e,d){if(b.call(c,e,d,this)){a.set(d,e)}},this);return a},every:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&!b.call(c,this[a],a)){return false}}return true},some:function(b,c){for(var a in this){if(this.hasOwnProperty(a)&&b.call(c,this[a],a)){return true}}return false},getKeys:function(){var a=[];Hash.each(this,function(c,b){a.push(b)});return a},getValues:function(){var a=[];Hash.each(this,function(b){a.push(b)});return a},toQueryString:function(a){var b=[];Hash.each(this,function(f,e){if(a){e=a+"["+e+"]"}var d;switch($type(f)){case"object":d=Hash.toQueryString(f,e);break;case"array":var c={};f.each(function(h,g){c[g]=h});d=Hash.toQueryString(c,e);break;default:d=e+"="+encodeURIComponent(f)}if(f!=undefined){b.push(d)}});return b.join("&")}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});var Event=new Native({name:"Event",initialize:function(a,f){f=f||window;var k=f.document;a=a||f.event;if(a.$extended){return a}this.$extended=true;var j=a.type;var g=a.target||a.srcElement;while(g&&g.nodeType==3){g=g.parentNode}if(j.test(/key/)){var b=a.which||a.keyCode;var m=Event.Keys.keyOf(b);if(j=="keydown"){var d=b-111;if(d>0&&d<13){m="f"+d}}m=m||String.fromCharCode(b).toLowerCase()}else{if(j.match(/(click|mouse|menu)/i)){k=(!k.compatMode||k.compatMode=="CSS1Compat")?k.html:k.body;var i={x:a.pageX||a.clientX+k.scrollLeft,y:a.pageY||a.clientY+k.scrollTop};var c={x:(a.pageX)?a.pageX-f.pageXOffset:a.clientX,y:(a.pageY)?a.pageY-f.pageYOffset:a.clientY};if(j.match(/DOMMouseScroll|mousewheel/)){var h=(a.wheelDelta)?a.wheelDelta/120:-(a.detail||0)/3}var e=(a.which==3)||(a.button==2);var l=null;if(j.match(/over|out/)){switch(j){case"mouseover":l=a.relatedTarget||a.fromElement;break;case"mouseout":l=a.relatedTarget||a.toElement}if(!(function(){while(l&&l.nodeType==3){l=l.parentNode}return true}).create({attempt:Browser.Engine.gecko})()){l=false}}}}return $extend(this,{event:a,type:j,page:i,client:c,rightClick:e,wheel:h,relatedTarget:l,target:g,code:b,key:m,shift:a.shiftKey,control:a.ctrlKey,alt:a.altKey,meta:a.metaKey})}});Event.Keys=new Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});Event.implement({stop:function(){return this.stopPropagation().preventDefault()},stopPropagation:function(){if(this.event.stopPropagation){this.event.stopPropagation()}else{this.event.cancelBubble=true}return this},preventDefault:function(){if(this.event.preventDefault){this.event.preventDefault()}else{this.event.returnValue=false}return this}});function Class(b){if(b instanceof Function){b={initialize:b}}var a=function(){Object.reset(this);if(a._prototyping){return this}this._current=$empty;var c=(this.initialize)?this.initialize.apply(this,arguments):this;delete this._current;delete this.caller;return c}.extend(this);a.implement(b);a.constructor=Class;a.prototype.constructor=a;return a}Function.prototype.protect=function(){this._protected=true;return this};Object.reset=function(a,c){if(c==null){for(var e in a){Object.reset(a,e)}return a}delete a[c];switch($type(a[c])){case"object":var d=function(){};d.prototype=a[c];var b=new d;a[c]=Object.reset(b);break;case"array":a[c]=$unlink(a[c]);break}return a};new Native({name:"Class",initialize:Class}).extend({instantiate:function(b){b._prototyping=true;var a=new b;delete b._prototyping;return a},wrap:function(a,b,c){if(c._origin){c=c._origin}return function(){if(c._protected&&this._current==null){throw new Error('The method "'+b+'" cannot be called.');}var e=this.caller,f=this._current;this.caller=f;this._current=arguments.callee;var d=c.apply(this,arguments);this._current=f;this.caller=e;return d}.extend({_owner:a,_origin:c,_name:b})}});Class.implement({implement:function(a,d){if($type(a)=="object"){for(var e in a){this.implement(e,a[e])}return this}var f=Class.Mutators[a];if(f){d=f.call(this,d);if(d==null){return this}}var c=this.prototype;switch($type(d)){case"function":if(d._hidden){return this}c[a]=Class.wrap(this,a,d);break;case"object":var b=c[a];if($type(b)=="object"){$mixin(b,d)}else{c[a]=$unlink(d)}break;case"array":c[a]=$unlink(d);break;default:c[a]=d}return this}});Class.Mutators={Extends:function(a){this.parent=a;this.prototype=Class.instantiate(a);this.implement("parent",function(){var b=this.caller._name,c=this.caller._owner.parent.prototype[b];if(!c){throw new Error('The method "'+b+'" has no parent.');}return c.apply(this,arguments)}.protect())},Implements:function(a){$splat(a).each(function(b){if(b instanceof Function){b=Class.instantiate(b)}this.implement(b)},this)}};var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false},clearChain:function(){this.$chain.empty();return this}});var Events=new Class({$events:{},addEvent:function(c,b,a){c=Events.removeOn(c);if(b!=$empty){this.$events[c]=this.$events[c]||[];this.$events[c].include(b);if(a){b.internal=true}}return this},addEvents:function(a){for(var b in a){this.addEvent(b,a[b])}return this},fireEvent:function(c,b,a){c=Events.removeOn(c);if(!this.$events||!this.$events[c]){return this}this.$events[c].each(function(d){d.create({bind:this,delay:a,"arguments":b})()},this);return this},removeEvent:function(b,a){b=Events.removeOn(b);if(!this.$events[b]){return this}if(!a.internal){this.$events[b].erase(a)}return this},removeEvents:function(c){var d;if($type(c)=="object"){for(d in c){this.removeEvent(d,c[d])}return this}if(c){c=Events.removeOn(c)}for(d in this.$events){if(c&&c!=d){continue}var b=this.$events[d];for(var a=b.length;a--;a){this.removeEvent(d,b[a])}}return this}});Events.removeOn=function(a){return a.replace(/^on([A-Z])/,function(b,c){return c.toLowerCase()})};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent){return this}for(var a in this.options){if($type(this.options[a])!="function"||!(/^on[A-Z]/).test(a)){continue}this.addEvent(a,this.options[a]);delete this.options[a]}return this}});var Element=new Native({name:"Element",legacy:window.Element,initialize:function(a,b){var c=Element.Constructors.get(a);if(c){return c(b)}if(typeof a=="string"){return document.newElement(a,b)}return $(a).set(b)},afterImplement:function(a,b){Element.Prototype[a]=b;if(Array[a]){return}Elements.implement(a,function(){var c=[],g=true;for(var e=0,d=this.length;e<d;e++){var f=this[e][a].apply(this[e],arguments);c.push(f);if(g){g=($type(f)=="element")}}return(g)?new Elements(c):c})}});Element.Prototype={$family:{name:"element"}};Element.Constructors=new Hash;var IFrame=new Native({name:"IFrame",generics:false,initialize:function(){var e=Array.link(arguments,{properties:Object.type,iframe:$defined});var c=e.properties||{};var b=$(e.iframe)||false;var d=c.onload||$empty;delete c.onload;c.id=c.name=$pick(c.id,c.name,b.id,b.name,"IFrame_"+$time());b=new Element(b||"iframe",c);var a=function(){var f=$try(function(){return b.contentWindow.location.host});if(f&&f==window.location.host){var g=new Window(b.contentWindow);new Document(b.contentWindow.document);$extend(g.Element.prototype,Element.Prototype)}d.call(b.contentWindow,b.contentWindow.document)};(window.frames[c.id])?a():b.addListener("load",a);return b}});var Elements=new Native({initialize:function(f,b){b=$extend({ddup:true,cash:true},b);f=f||[];if(b.ddup||b.cash){var g={},e=[];for(var c=0,a=f.length;c<a;c++){var d=$.element(f[c],!b.cash);if(b.ddup){if(g[d.uid]){continue}g[d.uid]=true}e.push(d)}f=e}return(b.cash)?$extend(f,this):f}});Elements.implement({filter:function(a,b){if(!a){return this}return new Elements(Array.filter(this,(typeof a=="string")?function(c){return c.match(a)}:a,b))}});Document.implement({newElement:function(a,b){if(Browser.Engine.trident&&b){["name","type","checked"].each(function(c){if(!b[c]){return}a+=" "+c+'="'+b[c]+'"';if(c!="checked"){delete b[c]}});a="<"+a+">"}return $.element(this.createElement(a)).set(b)},newTextNode:function(a){return this.createTextNode(a)},getDocument:function(){return this},getWindow:function(){return this.window}});Window.implement({$:function(b,c){if(b&&b.$family&&b.uid){return b}var a=$type(b);return($[a])?$[a](b,c,this.document):null},$$:function(a){if(arguments.length==1&&typeof a=="string"){return this.document.getElements(a)}var f=[];var c=Array.flatten(arguments);for(var d=0,b=c.length;d<b;d++){var e=c[d];switch($type(e)){case"element":f.push(e);break;case"string":f.extend(this.document.getElements(e,true))}}return new Elements(f)},getDocument:function(){return this.document},getWindow:function(){return this}});$.string=function(c,b,a){c=a.getElementById(c);return(c)?$.element(c,b):null};$.element=function(a,d){$uid(a);if(!d&&!a.$family&&!(/^object|embed$/i).test(a.tagName)){var b=Element.Prototype;for(var c in b){a[c]=b[c]}}return a};$.object=function(b,c,a){if(b.toElement){return $.element(b.toElement(a),c)}return null};$.textnode=$.whitespace=$.window=$.document=$arguments(0);Native.implement([Element,Document],{getElement:function(a,b){return $(this.getElements(a,true)[0]||null,b)},getElements:function(a,d){a=a.split(",");var c=[];var b=(a.length>1);a.each(function(e){var f=this.getElementsByTagName(e.trim());(b)?c.extend(f):c=f},this);return new Elements(c,{ddup:b,cash:!d})}});(function(){var h={},f={};var i={input:"checked",option:"selected",textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?"innerHTML":"value"};var c=function(l){return(f[l]||(f[l]={}))};var g=function(n,l){if(!n){return}var m=n.uid;if(Browser.Engine.trident){if(n.clearAttributes){var q=l&&n.cloneNode(false);n.clearAttributes();if(q){n.mergeAttributes(q)}}else{if(n.removeEvents){n.removeEvents()}}if((/object/i).test(n.tagName)){for(var o in n){if(typeof n[o]=="function"){n[o]=$empty}}Element.dispose(n)}}if(!m){return}h[m]=f[m]=null};var d=function(){Hash.each(h,g);if(Browser.Engine.trident){$A(document.getElementsByTagName("object")).each(g)}if(window.CollectGarbage){CollectGarbage()}h=f=null};var j=function(n,l,s,m,p,r){var o=n[s||l];var q=[];while(o){if(o.nodeType==1&&(!m||Element.match(o,m))){if(!p){return $(o,r)}q.push(o)}o=o[l]}return(p)?new Elements(q,{ddup:false,cash:!r}):null};var e={html:"innerHTML","class":"className","for":"htmlFor",text:(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?"innerText":"textContent"};var b=["compact","nowrap","ismap","declare","noshade","checked","disabled","readonly","multiple","selected","noresize","defer"];var k=["value","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"];b=b.associate(b);Hash.extend(e,b);Hash.extend(e,k.associate(k.map(String.toLowerCase)));var a={before:function(m,l){if(l.parentNode){l.parentNode.insertBefore(m,l)}},after:function(m,l){if(!l.parentNode){return}var n=l.nextSibling;(n)?l.parentNode.insertBefore(m,n):l.parentNode.appendChild(m)},bottom:function(m,l){l.appendChild(m)},top:function(m,l){var n=l.firstChild;(n)?l.insertBefore(m,n):l.appendChild(m)}};a.inside=a.bottom;Hash.each(a,function(l,m){m=m.capitalize();Element.implement("inject"+m,function(n){l(this,$(n,true));return this});Element.implement("grab"+m,function(n){l($(n,true),this);return this})});Element.implement({set:function(o,m){switch($type(o)){case"object":for(var n in o){this.set(n,o[n])}break;case"string":var l=Element.Properties.get(o);(l&&l.set)?l.set.apply(this,Array.slice(arguments,1)):this.setProperty(o,m)}return this},get:function(m){var l=Element.Properties.get(m);return(l&&l.get)?l.get.apply(this,Array.slice(arguments,1)):this.getProperty(m)},erase:function(m){var l=Element.Properties.get(m);(l&&l.erase)?l.erase.apply(this):this.removeProperty(m);return this},setProperty:function(m,n){var l=e[m];if(n==undefined){return this.removeProperty(m)}if(l&&b[m]){n=!!n}(l)?this[l]=n:this.setAttribute(m,""+n);return this},setProperties:function(l){for(var m in l){this.setProperty(m,l[m])}return this},getProperty:function(m){var l=e[m];var n=(l)?this[l]:this.getAttribute(m,2);return(b[m])?!!n:(l)?n:n||null},getProperties:function(){var l=$A(arguments);return l.map(this.getProperty,this).associate(l)},removeProperty:function(m){var l=e[m];(l)?this[l]=(l&&b[m])?false:"":this.removeAttribute(m);return this},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this},hasClass:function(l){return this.className.contains(l," ")},addClass:function(l){if(!this.hasClass(l)){this.className=(this.className+" "+l).clean()}return this},removeClass:function(l){this.className=this.className.replace(new RegExp("(^|\\s)"+l+"(?:\\s|$)"),"$1");return this},toggleClass:function(l){return this.hasClass(l)?this.removeClass(l):this.addClass(l)},adopt:function(){Array.flatten(arguments).each(function(l){l=$(l,true);if(l){this.appendChild(l)}},this);return this},appendText:function(m,l){return this.grab(this.getDocument().newTextNode(m),l)},grab:function(m,l){a[l||"bottom"]($(m,true),this);return this},inject:function(m,l){a[l||"bottom"](this,$(m,true));return this},replaces:function(l){l=$(l,true);l.parentNode.replaceChild(this,l);return this},wraps:function(m,l){m=$(m,true);return this.replaces(m).grab(m,l)},getPrevious:function(l,m){return j(this,"previousSibling",null,l,false,m)},getAllPrevious:function(l,m){return j(this,"previousSibling",null,l,true,m)},getNext:function(l,m){return j(this,"nextSibling",null,l,false,m)},getAllNext:function(l,m){return j(this,"nextSibling",null,l,true,m)},getFirst:function(l,m){return j(this,"nextSibling","firstChild",l,false,m)},getLast:function(l,m){return j(this,"previousSibling","lastChild",l,false,m)},getParent:function(l,m){return j(this,"parentNode",null,l,false,m)},getParents:function(l,m){return j(this,"parentNode",null,l,true,m)},getSiblings:function(l,m){return this.getParent().getChildren(l,m).erase(this)},getChildren:function(l,m){return j(this,"nextSibling","firstChild",l,true,m)},getWindow:function(){return this.ownerDocument.window},getDocument:function(){return this.ownerDocument},getElementById:function(o,n){var m=this.ownerDocument.getElementById(o);if(!m){return null}for(var l=m.parentNode;l!=this;l=l.parentNode){if(!l){return null}}return $.element(m,n)},getSelected:function(){return new Elements($A(this.options).filter(function(l){return l.selected}))},getComputedStyle:function(m){if(this.currentStyle){return this.currentStyle[m.camelCase()]}var l=this.getDocument().defaultView.getComputedStyle(this,null);return(l)?l.getPropertyValue([m.hyphenate()]):null},toQueryString:function(){var l=[];this.getElements("input, select, textarea",true).each(function(m){if(!m.name||m.disabled){return}var n=(m.tagName.toLowerCase()=="select")?Element.getSelected(m).map(function(o){return o.value}):((m.type=="radio"||m.type=="checkbox")&&!m.checked)?null:m.value;$splat(n).each(function(o){if(typeof o!="undefined"){l.push(m.name+"="+encodeURIComponent(o))}})});return l.join("&")},clone:function(o,l){o=o!==false;var r=this.cloneNode(o);var n=function(v,u){if(!l){v.removeAttribute("id")}if(Browser.Engine.trident){v.clearAttributes();v.mergeAttributes(u);v.removeAttribute("uid");if(v.options){var w=v.options,s=u.options;for(var t=w.length;t--;){w[t].selected=s[t].selected}}}var x=i[u.tagName.toLowerCase()];if(x&&u[x]){v[x]=u[x]}};if(o){var p=r.getElementsByTagName("*"),q=this.getElementsByTagName("*");for(var m=p.length;m--;){n(p[m],q[m])}}n(r,this);return $(r)},destroy:function(){Element.empty(this);Element.dispose(this);g(this,true);return null},empty:function(){$A(this.childNodes).each(function(l){Element.destroy(l)});return this},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this},hasChild:function(l){l=$(l,true);if(!l){return false}if(Browser.Engine.webkit&&Browser.Engine.version<420){return $A(this.getElementsByTagName(l.tagName)).contains(l)}return(this.contains)?(this!=l&&this.contains(l)):!!(this.compareDocumentPosition(l)&16)},match:function(l){return(!l||(l==this)||(Element.get(this,"tag")==l))}});Native.implement([Element,Window,Document],{addListener:function(o,n){if(o=="unload"){var l=n,m=this;n=function(){m.removeListener("unload",n);l()}}else{h[this.uid]=this}if(this.addEventListener){this.addEventListener(o,n,false)}else{this.attachEvent("on"+o,n)}return this},removeListener:function(m,l){if(this.removeEventListener){this.removeEventListener(m,l,false)}else{this.detachEvent("on"+m,l)}return this},retrieve:function(m,l){var o=c(this.uid),n=o[m];if(l!=undefined&&n==undefined){n=o[m]=l}return $pick(n)},store:function(m,l){var n=c(this.uid);n[m]=l;return this},eliminate:function(l){var m=c(this.uid);delete m[l];return this}});window.addListener("unload",d)})();Element.Properties=new Hash;Element.Properties.style={set:function(a){this.style.cssText=a},get:function(){return this.style.cssText},erase:function(){this.style.cssText=""}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase()}};Element.Properties.html=(function(){var c=document.createElement("div");var a={table:[1,"<table>","</table>"],select:[1,"<select>","</select>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"]};a.thead=a.tfoot=a.tbody;var b={set:function(){var e=Array.flatten(arguments).join("");var f=Browser.Engine.trident&&a[this.get("tag")];if(f){var g=c;g.innerHTML=f[1]+e+f[2];for(var d=f[0];d--;){g=g.firstChild}this.empty().adopt(g.childNodes)}else{this.innerHTML=e}}};b.erase=b.set;return b})();if(Browser.Engine.webkit&&Browser.Engine.version<420){Element.Properties.text={get:function(){if(this.innerText){return this.innerText}var a=this.ownerDocument.newElement("div",{html:this.innerHTML}).inject(this.ownerDocument.body);var b=a.innerText;a.destroy();return b}}}Element.Properties.events={set:function(a){this.addEvents(a)}};Native.implement([Element,Window,Document],{addEvent:function(e,g){var h=this.retrieve("events",{});h[e]=h[e]||{keys:[],values:[]};if(h[e].keys.contains(g)){return this}h[e].keys.push(g);var f=e,a=Element.Events.get(e),c=g,i=this;if(a){if(a.onAdd){a.onAdd.call(this,g)}if(a.condition){c=function(j){if(a.condition.call(this,j)){return g.call(this,j)}return true}}f=a.base||f}var d=function(){return g.call(i)};var b=Element.NativeEvents[f];if(b){if(b==2){d=function(j){j=new Event(j,i.getWindow());if(c.call(i,j)===false){j.stop()}}}this.addListener(f,d)}h[e].values.push(d);return this},removeEvent:function(c,b){var a=this.retrieve("events");if(!a||!a[c]){return this}var f=a[c].keys.indexOf(b);if(f==-1){return this}a[c].keys.splice(f,1);var e=a[c].values.splice(f,1)[0];var d=Element.Events.get(c);if(d){if(d.onRemove){d.onRemove.call(this,b)}c=d.base||c}return(Element.NativeEvents[c])?this.removeListener(c,e):this},addEvents:function(a){for(var b in a){this.addEvent(b,a[b])}return this},removeEvents:function(a){var c;if($type(a)=="object"){for(c in a){this.removeEvent(c,a[c])}return this}var b=this.retrieve("events");if(!b){return this}if(!a){for(c in b){this.removeEvents(c)}this.eliminate("events")}else{if(b[a]){while(b[a].keys[0]){this.removeEvent(a,b[a].keys[0])}b[a]=null}}return this},fireEvent:function(d,b,a){var c=this.retrieve("events");if(!c||!c[d]){return this}c[d].keys.each(function(e){e.create({bind:this,delay:a,"arguments":b})()},this);return this},cloneEvents:function(d,a){d=$(d);var c=d.retrieve("events");if(!c){return this}if(!a){for(var b in c){this.cloneEvents(d,b)}}else{if(c[a]){c[a].keys.each(function(e){this.addEvent(a,e)},this)}}return this}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};(function(){var a=function(b){var c=b.relatedTarget;if(c==undefined){return true}if(c===false){return false}return($type(this)!="document"&&c!=this&&c.prefix!="xul"&&!this.hasChild(c))};Element.Events=new Hash({mouseenter:{base:"mouseover",condition:a},mouseleave:{base:"mouseout",condition:a},mousewheel:{base:(Browser.Engine.gecko)?"DOMMouseScroll":"mousewheel"}})})();Element.Properties.styles={set:function(a){this.setStyles(a)}};Element.Properties.opacity={set:function(a,b){if(!b){if(a==0){if(this.style.visibility!="hidden"){this.style.visibility="hidden"}}else{if(this.style.visibility!="visible"){this.style.visibility="visible"}}}if(!this.currentStyle||!this.currentStyle.hasLayout){this.style.zoom=1}if(Browser.Engine.trident){this.style.filter=(a==1)?"":"alpha(opacity="+a*100+")"}this.style.opacity=a;this.store("opacity",a)},get:function(){return this.retrieve("opacity",1)}};Element.implement({setOpacity:function(a){return this.set("opacity",a,true)},getOpacity:function(){return this.get("opacity")},setStyle:function(b,a){switch(b){case"opacity":return this.set("opacity",parseFloat(a));case"float":b=(Browser.Engine.trident)?"styleFloat":"cssFloat"}b=b.camelCase();if($type(a)!="string"){var c=(Element.Styles.get(b)||"@").split(" ");a=$splat(a).map(function(e,d){if(!c[d]){return""}return($type(e)=="number")?c[d].replace("@",Math.round(e)):e}).join(" ")}else{if(a==String(Number(a))){a=Math.round(a)}}this.style[b]=a;return this},getStyle:function(g){switch(g){case"opacity":return this.get("opacity");case"float":g=(Browser.Engine.trident)?"styleFloat":"cssFloat"}g=g.camelCase();var a=this.style[g];if(!$chk(a)){a=[];for(var f in Element.ShortStyles){if(g!=f){continue}for(var e in Element.ShortStyles[f]){a.push(this.getStyle(e))}return a.join(" ")}a=this.getComputedStyle(g)}if(a){a=String(a);var c=a.match(/rgba?\([\d\s,]+\)/);if(c){a=a.replace(c[0],c[0].rgbToHex())}}if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(a,10)))){if(g.test(/^(height|width)$/)){var b=(g=="width")?["left","right"]:["top","bottom"],d=0;b.each(function(h){d+=this.getStyle("border-"+h+"-width").toInt()+this.getStyle("padding-"+h).toInt()},this);return this["offset"+g.capitalize()]-d+"px"}if((Browser.Engine.presto)&&String(a).test("px")){return a}if(g.test(/(border(.+)Width|margin|padding)/)){return"0px"}}return a},setStyles:function(b){for(var a in b){this.setStyle(a,b[a])}return this},getStyles:function(){var a={};Array.each(arguments,function(b){a[b]=this.getStyle(b)},this);return a}});Element.Styles=new Hash({left:"@px",top:"@px",bottom:"@px",right:"@px",width:"@px",height:"@px",maxWidth:"@px",maxHeight:"@px",minWidth:"@px",minHeight:"@px",backgroundColor:"rgb(@, @, @)",backgroundPosition:"@px @px",color:"rgb(@, @, @)",fontSize:"@px",letterSpacing:"@px",lineHeight:"@px",clip:"rect(@px @px @px @px)",margin:"@px @px @px @px",padding:"@px @px @px @px",border:"@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)",borderWidth:"@px @px @px @px",borderStyle:"@ @ @ @",borderColor:"rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)",zIndex:"@",zoom:"@",fontWeight:"@",textIndent:"@px",opacity:"@"});Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};["Top","Right","Bottom","Left"].each(function(g){var f=Element.ShortStyles;var b=Element.Styles;["margin","padding"].each(function(h){var i=h+g;f[h][i]=b[i]="@px"});var e="border"+g;f.border[e]=b[e]="@px @ rgb(@, @, @)";var d=e+"Width",a=e+"Style",c=e+"Color";f[e]={};f.borderWidth[d]=f[e][d]=b[d]="@px";f.borderStyle[a]=f[e][a]=b[a]="@";f.borderColor[c]=f[e][c]=b[c]="rgb(@, @, @)"});(function(){Element.implement({scrollTo:function(h,i){if(b(this)){this.getWindow().scrollTo(h,i)}else{this.scrollLeft=h;this.scrollTop=i}return this},getSize:function(){if(b(this)){return this.getWindow().getSize()}return{x:this.offsetWidth,y:this.offsetHeight}},getScrollSize:function(){if(b(this)){return this.getWindow().getScrollSize()}return{x:this.scrollWidth,y:this.scrollHeight}},getScroll:function(){if(b(this)){return this.getWindow().getScroll()}return{x:this.scrollLeft,y:this.scrollTop}},getScrolls:function(){var i=this,h={x:0,y:0};while(i&&!b(i)){h.x+=i.scrollLeft;h.y+=i.scrollTop;i=i.parentNode}return h},getOffsetParent:function(){var h=this;if(b(h)){return null}if(!Browser.Engine.trident){return h.offsetParent}while((h=h.parentNode)&&!b(h)){if(d(h,"position")!="static"){return h}}return null},getOffsets:function(){if(Browser.Engine.trident){var l=this.getBoundingClientRect(),j=this.getDocument().documentElement;var m=d(this,"position")=="fixed";return{x:l.left+((m)?0:j.scrollLeft)-j.clientLeft,y:l.top+((m)?0:j.scrollTop)-j.clientTop}}var i=this,h={x:0,y:0};if(b(this)){return h}while(i&&!b(i)){h.x+=i.offsetLeft;h.y+=i.offsetTop;if(Browser.Engine.gecko){if(!f(i)){h.x+=c(i);h.y+=g(i)}var k=i.parentNode;if(k&&d(k,"overflow")!="visible"){h.x+=c(k);h.y+=g(k)}}else{if(i!=this&&Browser.Engine.webkit){h.x+=c(i);h.y+=g(i)}}i=i.offsetParent}if(Browser.Engine.gecko&&!f(this)){h.x-=c(this);h.y-=g(this)}return h},getPosition:function(k){if(b(this)){return{x:0,y:0}}var l=this.getOffsets(),i=this.getScrolls();var h={x:l.x-i.x,y:l.y-i.y};var j=(k&&(k=$(k)))?k.getPosition():{x:0,y:0};return{x:h.x-j.x,y:h.y-j.y}},getCoordinates:function(j){if(b(this)){return this.getWindow().getCoordinates()}var h=this.getPosition(j),i=this.getSize();var k={left:h.x,top:h.y,width:i.x,height:i.y};k.right=k.left+k.width;k.bottom=k.top+k.height;return k},computePosition:function(h){return{left:h.x-e(this,"margin-left"),top:h.y-e(this,"margin-top")}},position:function(h){return this.setStyles(this.computePosition(h))}});Native.implement([Document,Window],{getSize:function(){if(Browser.Engine.presto||Browser.Engine.webkit){var i=this.getWindow();return{x:i.innerWidth,y:i.innerHeight}}var h=a(this);return{x:h.clientWidth,y:h.clientHeight}},getScroll:function(){var i=this.getWindow(),h=a(this);return{x:i.pageXOffset||h.scrollLeft,y:i.pageYOffset||h.scrollTop}},getScrollSize:function(){var i=a(this),h=this.getSize();return{x:Math.max(i.scrollWidth,h.x),y:Math.max(i.scrollHeight,h.y)}},getPosition:function(){return{x:0,y:0}},getCoordinates:function(){var h=this.getSize();return{top:0,left:0,bottom:h.y,right:h.x,height:h.y,width:h.x}}});var d=Element.getComputedStyle;function e(h,i){return d(h,i).toInt()||0}function f(h){return d(h,"-moz-box-sizing")=="border-box"}function g(h){return e(h,"border-top-width")}function c(h){return e(h,"border-left-width")}function b(h){return(/^(?:body|html)$/i).test(h.tagName)}function a(h){var i=h.getDocument();return(!i.compatMode||i.compatMode=="CSS1Compat")?i.html:i.body}})();Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y},getWidth:function(){return this.getSize().x},getScrollTop:function(){return this.getScroll().y},getScrollLeft:function(){return this.getScroll().x},getScrollHeight:function(){return this.getScrollSize().y},getScrollWidth:function(){return this.getScrollSize().x},getTop:function(){return this.getPosition().y},getLeft:function(){return this.getPosition().x}});Native.implement([Document,Element],{getElements:function(h,g){h=h.split(",");var c,e={};for(var d=0,b=h.length;d<b;d++){var a=h[d],f=Selectors.Utils.search(this,a,e);if(d!=0&&f.item){f=$A(f)}c=(d==0)?f:(c.item)?$A(c).concat(f):c.concat(f)}return new Elements(c,{ddup:(h.length>1),cash:!g})}});Element.implement({match:function(b){if(!b||(b==this)){return true}var d=Selectors.Utils.parseTagAndID(b);var a=d[0],e=d[1];if(!Selectors.Filters.byID(this,e)||!Selectors.Filters.byTag(this,a)){return false}var c=Selectors.Utils.parseSelector(b);return(c)?Selectors.Utils.filter(this,c,{}):true}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(b,c){if(!c){return true}var a=$uid(b);if(!c[a]){return c[a]=true}return false},parseNthArgument:function(h){if(Selectors.Cache.nth[h]){return Selectors.Cache.nth[h]}var e=h.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!e){return false}var g=parseInt(e[1],10);var d=(g||g===0)?g:1;var f=e[2]||false;var c=parseInt(e[3],10)||0;if(d!=0){c--;while(c<1){c+=d}while(c>=d){c-=d}}else{d=c;f="index"}switch(f){case"n":e={a:d,b:c,special:"n"};break;case"odd":e={a:2,b:0,special:"n"};break;case"even":e={a:2,b:1,special:"n"};break;case"first":e={a:0,special:"index"};break;case"last":e={special:"last-child"};break;case"only":e={special:"only-child"};break;default:e={a:(d-1),special:"index"}}return Selectors.Cache.nth[h]=e},parseSelector:function(e){if(Selectors.Cache.parsed[e]){return Selectors.Cache.parsed[e]}var d,h={classes:[],pseudos:[],attributes:[]};while((d=Selectors.RegExps.combined.exec(e))){var i=d[1],g=d[2],f=d[3],b=d[5],c=d[6],j=d[7];if(i){h.classes.push(i)}else{if(c){var a=Selectors.Pseudo.get(c);if(a){h.pseudos.push({parser:a,argument:j})}else{h.attributes.push({name:c,operator:"=",value:j})}}else{if(g){h.attributes.push({name:g,operator:f,value:b})}}}}if(!h.classes.length){delete h.classes}if(!h.attributes.length){delete h.attributes}if(!h.pseudos.length){delete h.pseudos}if(!h.classes&&!h.attributes&&!h.pseudos){h=null}return Selectors.Cache.parsed[e]=h},parseTagAndID:function(b){var a=b.match(Selectors.RegExps.tag);var c=b.match(Selectors.RegExps.id);return[(a)?a[1]:"*",(c)?c[1]:false]},filter:function(f,c,e){var d;if(c.classes){for(d=c.classes.length;d--;d){var g=c.classes[d];if(!Selectors.Filters.byClass(f,g)){return false}}}if(c.attributes){for(d=c.attributes.length;d--;d){var b=c.attributes[d];if(!Selectors.Filters.byAttribute(f,b.name,b.operator,b.value)){return false}}}if(c.pseudos){for(d=c.pseudos.length;d--;d){var a=c.pseudos[d];if(!Selectors.Filters.byPseudo(f,a.parser,a.argument,e)){return false}}}return true},getByTagAndID:function(b,a,d){if(d){var c=(b.getElementById)?b.getElementById(d,true):Element.getElementById(b,d,true);return(c&&Selectors.Filters.byTag(c,a))?[c]:[]}else{return b.getElementsByTagName(a)}},search:function(o,h,t){var b=[];var c=h.trim().replace(Selectors.RegExps.splitter,function(k,j,i){b.push(j);return":)"+i}).split(":)");var p,e,A;for(var z=0,v=c.length;z<v;z++){var y=c[z];if(z==0&&Selectors.RegExps.quick.test(y)){p=o.getElementsByTagName(y);continue}var a=b[z-1];var q=Selectors.Utils.parseTagAndID(y);var B=q[0],r=q[1];if(z==0){p=Selectors.Utils.getByTagAndID(o,B,r)}else{var d={},g=[];for(var x=0,w=p.length;x<w;x++){g=Selectors.Getters[a](g,p[x],B,r,d)}p=g}var f=Selectors.Utils.parseSelector(y);if(f){e=[];for(var u=0,s=p.length;u<s;u++){A=p[u];if(Selectors.Utils.filter(A,f,t)){e.push(A)}}p=e}}return p}};Selectors.Getters={" ":function(h,g,j,a,e){var d=Selectors.Utils.getByTagAndID(g,j,a);for(var c=0,b=d.length;c<b;c++){var f=d[c];if(Selectors.Utils.chk(f,e)){h.push(f)}}return h},">":function(h,g,j,a,f){var c=Selectors.Utils.getByTagAndID(g,j,a);for(var e=0,d=c.length;e<d;e++){var b=c[e];if(b.parentNode==g&&Selectors.Utils.chk(b,f)){h.push(b)}}return h},"+":function(c,b,a,e,d){while((b=b.nextSibling)){if(b.nodeType==1){if(Selectors.Utils.chk(b,d)&&Selectors.Filters.byTag(b,a)&&Selectors.Filters.byID(b,e)){c.push(b)}break}}return c},"~":function(c,b,a,e,d){while((b=b.nextSibling)){if(b.nodeType==1){if(!Selectors.Utils.chk(b,d)){break}if(Selectors.Filters.byTag(b,a)&&Selectors.Filters.byID(b,e)){c.push(b)}}}return c}};Selectors.Filters={byTag:function(b,a){return(a=="*"||(b.tagName&&b.tagName.toLowerCase()==a))},byID:function(a,b){return(!b||(a.id&&a.id==b))},byClass:function(b,a){return(b.className&&b.className.contains(a," "))},byPseudo:function(a,d,c,b){return d.call(a,c,b)},byAttribute:function(c,d,b,e){var a=Element.prototype.getProperty.call(c,d);if(!a){return(b=="!=")}if(!b||e==undefined){return true}switch(b){case"=":return(a==e);case"*=":return(a.contains(e));case"^=":return(a.substr(0,e.length)==e);case"$=":return(a.substr(a.length-e.length)==e);case"!=":return(a!=e);case"~=":return a.contains(e," ");case"|=":return a.contains(e,"-")}return false}};Selectors.Pseudo=new Hash({checked:function(){return this.checked},empty:function(){return!(this.innerText||this.textContent||"").length},not:function(a){return!Element.match(this,a)},contains:function(a){return(this.innerText||this.textContent||"").contains(a)},"first-child":function(){return Selectors.Pseudo.index.call(this,0)},"last-child":function(){var a=this;while((a=a.nextSibling)){if(a.nodeType==1){return false}}return true},"only-child":function(){var b=this;while((b=b.previousSibling)){if(b.nodeType==1){return false}}var a=this;while((a=a.nextSibling)){if(a.nodeType==1){return false}}return true},"nth-child":function(g,e){g=(g==undefined)?"n":g;var c=Selectors.Utils.parseNthArgument(g);if(c.special!="n"){return Selectors.Pseudo[c.special].call(this,c.a,e)}var f=0;e.positions=e.positions||{};var d=$uid(this);if(!e.positions[d]){var b=this;while((b=b.previousSibling)){if(b.nodeType!=1){continue}f++;var a=e.positions[$uid(b)];if(a!=undefined){f=a+f;break}}e.positions[d]=f}return(e.positions[d]%c.a==c.b)},index:function(a){var b=this,c=0;while((b=b.previousSibling)){if(b.nodeType==1&&++c>a){return false}}return(c==a)},even:function(b,a){return Selectors.Pseudo["nth-child"].call(this,"2n+1",a)},odd:function(b,a){return Selectors.Pseudo["nth-child"].call(this,"2n",a)},selected:function(){return this.selected}});Element.Events.domready={onAdd:function(a){if(Browser.loaded){a.call(this)}}};(function(){var b=function(){if(Browser.loaded){return}Browser.loaded=true;window.fireEvent("domready");document.fireEvent("domready")};if(Browser.Engine.trident){var a=document.createElement("div");(function(){($try(function(){a.doScroll("left");return $(a).inject(document.body).set("html","temp").dispose()}))?b():arguments.callee.delay(50)})()}else{if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(["loaded","complete"].contains(document.readyState))?b():arguments.callee.delay(50)})()}else{window.addEvent("load",b);document.addEvent("DOMContentLoaded",b)}}})();var JSON=new Hash({$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(a){return JSON.$specialChars[a]||"\\u00"+Math.floor(a.charCodeAt()/16).toString(16)+(a.charCodeAt()%16).toString(16)},encode:function(b){switch($type(b)){case"string":return'"'+b.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case"array":return"["+String(b.map(JSON.encode).filter($defined))+"]";case"object":case"hash":var a=[];Hash.each(b,function(e,d){var c=JSON.encode(e);if(c){a.push(JSON.encode(d)+":"+c)}});return"{"+a+"}";case"number":case"boolean":return String(b);case false:return"null"}return null},decode:function(a,b){if($type(a)!="string"||!a.length){return null}if(b&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(a.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))){return null}return eval("("+a+")")}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this)}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(b,a){this.key=b;this.setOptions(a)},write:function(b){b=encodeURIComponent(b);if(this.options.domain){b+="; domain="+this.options.domain}if(this.options.path){b+="; path="+this.options.path}if(this.options.duration){var a=new Date();a.setTime(a.getTime()+this.options.duration*24*60*60*1000);b+="; expires="+a.toGMTString()}if(this.options.secure){b+="; secure"}this.options.document.cookie=this.key+"="+b;return this},read:function(){var a=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return(a)?decodeURIComponent(a[1]):null},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write("");return this}});Cookie.write=function(b,c,a){return new Cookie(b,a).write(c)};Cookie.read=function(a){return new Cookie(a).read()};Cookie.dispose=function(b,a){return new Cookie(b,a).dispose()};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:"high",allowScriptAccess:"always",wMode:"transparent",swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object},initialize:function(l,m){this.instance="Swiff_"+$time();this.setOptions(m);m=this.options;var b=this.id=m.id||this.instance;var a=$(m.container);Swiff.CallBacks[this.instance]={};var e=m.params,g=m.vars,f=m.callBacks;var h=$extend({height:m.height,width:m.width},m.properties);var k=this;for(var d in f){Swiff.CallBacks[this.instance][d]=(function(n){return function(){return n.apply(k.object,arguments)}})(f[d]);g[d]="Swiff.CallBacks."+this.instance+"."+d}e.flashVars=Hash.toQueryString(g);if(Browser.Engine.trident){h.classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";e.movie=l}else{h.type="application/x-shockwave-flash";h.data=l}var j='<object id="'+b+'"';for(var i in h){j+=" "+i+'="'+h[i]+'"'}j+=">";for(var c in e){if(e[c]){j+='<param name="'+c+'" value="'+e[c]+'" />'}}j+="</object>";this.object=((a)?a.empty():new Element("div")).set("html",j).firstChild},replaces:function(a){a=$(a,true);a.parentNode.replaceChild(this.toElement(),a);return this},inject:function(a){$(a,true).appendChild(this.toElement());return this},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments))}});Swiff.CallBacks={};Swiff.remote=function(a,b){var c=a.CallFunction('<invoke name="'+b+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+"</invoke>");return eval(c)};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:"ignore"},initialize:function(a){this.subject=this.subject||this;this.setOptions(a);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var b=this.options.wait;if(b===false){this.options.link="cancel"}},getTransition:function(){return function(a){return-(Math.cos(Math.PI*a)-1)/2}},step:function(){var a=$time();if(a<this.time+this.options.duration){var b=this.transition((a-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,b))}else{this.set(this.compute(this.from,this.to,1));this.complete()}},set:function(a){return a},compute:function(c,b,a){return Fx.compute(c,b,a)},check:function(){if(!this.timer){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));return false}return false},start:function(b,a){if(!this.check(b,a)){return this}this.from=b;this.to=a;this.time=0;this.transition=this.getTransition();this.startTimer();this.onStart();return this},complete:function(){if(this.stopTimer()){this.onComplete()}return this},cancel:function(){if(this.stopTimer()){this.onCancel()}return this},onStart:function(){this.fireEvent("start",this.subject)},onComplete:function(){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject)}},onCancel:function(){this.fireEvent("cancel",this.subject).clearChain()},pause:function(){this.stopTimer();return this},resume:function(){this.startTimer();return this},stopTimer:function(){if(!this.timer){return false}this.time=$time()-this.time;this.timer=$clear(this.timer);return true},startTimer:function(){if(this.timer){return false}this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true}});Fx.compute=function(c,b,a){return(b-c)*a+c};Fx.Durations={"short":250,normal:500,"long":1000};Fx.CSS=new Class({Extends:Fx,prepare:function(d,e,b){b=$splat(b);var c=b[1];if(!$chk(c)){b[1]=b[0];b[0]=d.getStyle(e)}var a=b.map(this.parse);return{from:a[0],to:a[1]}},parse:function(a){a=$lambda(a)();a=(typeof a=="string")?a.split(" "):$splat(a);return a.map(function(c){c=String(c);var b=false;Fx.CSS.Parsers.each(function(f,e){if(b){return}var d=f.parse(c);if($chk(d)){b={value:d,parser:f}}});b=b||{value:c,parser:Fx.CSS.Parsers.String};return b})},compute:function(d,c,b){var a=[];(Math.min(d.length,c.length)).times(function(e){a.push({value:d[e].parser.compute(d[e].value,c[e].value,b),parser:d[e].parser})});a.$family={name:"fx:css:value"};return a},serve:function(c,b){if($type(c)!="fx:css:value"){c=this.parse(c)}var a=[];c.each(function(d){a=a.concat(d.parser.serve(d.value,b))});return a},render:function(a,d,c,b){a.setStyle(d,this.serve(c,b))},search:function(a){if(Fx.CSS.Cache[a]){return Fx.CSS.Cache[a]}var b={};Array.each(document.styleSheets,function(e,d){var c=e.href;if(c&&c.contains("://")&&!c.contains(document.domain)){return}var f=e.rules||e.cssRules;Array.each(f,function(j,g){if(!j.style){return}var h=(j.selectorText)?j.selectorText.replace(/^\w+/,function(i){return i.toLowerCase()}):null;if(!h||!h.test("^"+a+"$")){return}Element.Styles.each(function(k,i){if(!j.style[i]||Element.ShortStyles[i]){return}k=String(j.style[i]);b[i]=(k.test(/^rgb/))?k.rgbToHex():k})})});return Fx.CSS.Cache[a]=b}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(a){if(a.match(/^#[0-9a-f]{3,6}$/i)){return a.hexToRgb(true)}return((a=a.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[a[1],a[2],a[3]]:false},compute:function(c,b,a){return c.map(function(e,d){return Math.round(Fx.compute(c[d],b[d],a))})},serve:function(a){return a.map(Number)}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(b,a){return(a)?b+a:b}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=$(b);this.parent(a)},set:function(b,a){if(arguments.length==1){a=b;b=this.property||this.options.property}this.render(this.element,b,a,this.options.unit);return this},start:function(c,e,d){if(!this.check(c,e,d)){return this}var b=Array.flatten(arguments);this.property=this.options.property||b.shift();var a=this.prepare(this.element,this.property,b);return this.parent(a.from,a.to)}});Element.Properties.tween={set:function(a){var b=this.retrieve("tween");if(b){b.cancel()}return this.eliminate("tween").store("tween:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("tween")){if(a||!this.retrieve("tween:options")){this.set("tween",a)}this.store("tween",new Fx.Tween(this,this.retrieve("tween:options")))}return this.retrieve("tween")}};Element.implement({tween:function(a,c,b){this.get("tween").start(arguments);return this},fade:function(c){var e=this.get("tween"),d="opacity",a;c=$pick(c,"toggle");switch(c){case"in":e.start(d,1);break;case"out":e.start(d,0);break;case"show":e.set(d,1);break;case"hide":e.set(d,0);break;case"toggle":var b=this.retrieve("fade:flag",this.get("opacity")==1);e.start(d,(b)?0:1);this.store("fade:flag",!b);a=true;break;default:e.start(d,arguments)}if(!a){this.eliminate("fade:flag")}return this},highlight:function(c,a){if(!a){a=this.retrieve("highlight:original",this.getStyle("background-color"));a=(a=="transparent")?"#fff":a}var b=this.get("tween");b.start("background-color",c||"#ffff88",a).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));b.callChain()}.bind(this));return this}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=$(b);this.parent(a)},set:function(a){if(typeof a=="string"){a=this.search(a)}for(var b in a){this.render(this.element,b,a[b],this.options.unit)}return this},compute:function(e,d,c){var a={};for(var b in e){a[b]=this.parent(e[b],d[b],c)}return a},start:function(b){if(!this.check(b)){return this}if(typeof b=="string"){b=this.search(b)}var e={},d={};for(var c in b){var a=this.prepare(this.element,c,b[c]);e[c]=a.from;d[c]=a.to}return this.parent(e,d)}});Element.Properties.morph={set:function(a){var b=this.retrieve("morph");if(b){b.cancel()}return this.eliminate("morph").store("morph:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("morph")){if(a||!this.retrieve("morph:options")){this.set("morph",a)}this.store("morph",new Fx.Morph(this,this.retrieve("morph:options")))}return this.retrieve("morph")}};Element.implement({morph:function(a){this.get("morph").start(a);return this}});Fx.implement({getTransition:function(){var a=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof a=="string"){var b=a.split(":");a=Fx.Transitions;a=a[b[0]]||a[b[0].capitalize()];if(b[1]){a=a["ease"+b[1].capitalize()+(b[2]?b[2].capitalize():"")]}}return a}});Fx.Transition=function(b,a){a=$splat(a);return $extend(b,{easeIn:function(c){return b(c,a)},easeOut:function(c){return 1-b(1-c,a)},easeInOut:function(c){return(c<=0.5)?b(2*c,a)/2:(2-b(2*(1-c),a))/2}})};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(a){for(var b in a){Fx.Transitions[b]=new Fx.Transition(a[b])}};Fx.Transitions.extend({Pow:function(b,a){return Math.pow(b,a[0]||6)},Expo:function(a){return Math.pow(2,8*(a-1))},Circ:function(a){return 1-Math.sin(Math.acos(a))},Sine:function(a){return 1-Math.sin((1-a)*Math.PI/2)},Back:function(b,a){a=a[0]||1.618;return Math.pow(b,2)*((a+1)*b-a)},Bounce:function(f){var e;for(var d=0,c=1;1;d+=c,c/=2){if(f>=(7-4*d)/11){e=c*c-Math.pow((11-6*d-11*f)/4,2);break}}return e},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a[0]||1)/3)}});["Quad","Cubic","Quart","Quint"].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(c){return Math.pow(c,[a+2])})});var Request=new Class({Implements:[Chain,Events,Options],options:{url:"",data:"",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"text/javascript, text/html, application/xml, text/xml, */*"},async:true,format:false,method:"post",link:"ignore",isSuccess:null,emulation:true,urlEncoded:true,encoding:"utf-8",evalScripts:false,evalResponse:false,noCache:false},initialize:function(a){this.xhr=new Browser.Request();this.setOptions(a);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers)},onStateChange:function(){if(this.xhr.readyState!=4||!this.running){return}this.running=false;this.status=0;$try(function(){this.status=this.xhr.status}.bind(this));if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml)}else{this.response={text:null,xml:null};this.failure()}this.xhr.onreadystatechange=$empty},isSuccess:function(){return((this.status>=200)&&(this.status<300))},processScripts:function(a){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return $exec(a)}return a.stripScripts(this.options.evalScripts)},success:function(b,a){this.onSuccess(this.processScripts(b),a)},onSuccess:function(){this.fireEvent("complete",arguments).fireEvent("success",arguments).callChain()},failure:function(){this.onFailure()},onFailure:function(){this.fireEvent("complete").fireEvent("failure",this.xhr)},setHeader:function(a,b){this.headers.set(a,b);return this},getHeader:function(a){return $try(function(){return this.xhr.getResponseHeader(a)}.bind(this))},check:function(){if(!this.running){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));return false}return false},send:function(j){if(!this.check(j)){return this}this.running=true;var h=$type(j);if(h=="string"||h=="element"){j={data:j}}var d=this.options;j=$extend({data:d.data,url:d.url,method:d.method},j);var f=j.data,b=j.url,a=j.method;switch($type(f)){case"element":f=$(f).toQueryString();break;case"object":case"hash":f=Hash.toQueryString(f)}if(this.options.format){var i="format="+this.options.format;f=(f)?i+"&"+f:i}if(this.options.emulation&&["put","delete"].contains(a)){var g="_method="+a;f=(f)?g+"&"+f:g;a="post"}if(this.options.urlEncoded&&a=="post"){var c=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers.set("Content-type","application/x-www-form-urlencoded"+c)}if(this.options.noCache){var e="noCache="+new Date().getTime();f=(f)?e+"&"+f:e}if(f&&a=="get"){b=b+(b.contains("?")?"&":"?")+f;f=null}this.xhr.open(a.toUpperCase(),b,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(l,k){try{this.xhr.setRequestHeader(k,l)}catch(m){this.fireEvent("exception",[k,l])}},this);this.fireEvent("request");this.xhr.send(f);if(!this.options.async){this.onStateChange()}return this},cancel:function(){if(!this.running){return this}this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent("cancel");return this}});(function(){var a={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(b){a[b]=function(){var c=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(c,{method:b.toLowerCase()}))}});Request.implement(a)})();Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false},processHTML:function(c){var b=c.match(/<body[^>]*>([\s\S]*?)<\/body>/i);c=(b)?b[1]:c;var a=new Element("div");return $try(function(){var d="<root>"+c+"</root>",g;if(Browser.Engine.trident){g=new ActiveXObject("Microsoft.XMLDOM");g.async=false;g.loadXML(d)}else{g=new DOMParser().parseFromString(d,"text/xml")}d=g.getElementsByTagName("root")[0];if(!d){return null}for(var f=0,e=d.childNodes.length;f<e;f++){var h=Element.clone(d.childNodes[f],true,true);if(h){a.grab(h)}}return a})||a.set("html",c)},success:function(d){var c=this.options,b=this.response;b.html=d.stripScripts(function(e){b.javascript=e});var a=this.processHTML(b.html);b.tree=a.childNodes;b.elements=a.getElements("*");if(c.filter){b.tree=b.elements.filter(c.filter)}if(c.update){$(c.update).empty().set("html",b.html)}else{if(c.append){$(c.append).adopt(a.getChildren())}}if(c.evalScripts){$exec(b.javascript)}this.onSuccess(b.tree,b.elements,b.html,b.javascript)}});Element.Properties.send={set:function(a){var b=this.retrieve("send");if(b){b.cancel()}return this.eliminate("send").store("send:options",$extend({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")},a))},get:function(a){if(a||!this.retrieve("send")){if(a||!this.retrieve("send:options")){this.set("send",a)}this.store("send",new Request(this.retrieve("send:options")))}return this.retrieve("send")}};Element.Properties.load={set:function(a){var b=this.retrieve("load");if(b){b.cancel()}return this.eliminate("load").store("load:options",$extend({data:this,link:"cancel",update:this,method:"get"},a))},get:function(a){if(a||!this.retrieve("load")){if(a||!this.retrieve("load:options")){this.set("load",a)}this.store("load",new Request.HTML(this.retrieve("load:options")))}return this.retrieve("load")}};Element.implement({send:function(a){var b=this.get("send");b.send({data:this,url:a||b.options.url});return this},load:function(){this.get("load").send(Array.link(arguments,{data:Object.type,url:String.type}));return this}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(a){this.parent(a);this.headers.extend({Accept:"application/json","X-Request":"JSON"})},success:function(a){this.response.json=JSON.decode(a,this.options.secure);this.onSuccess(this.response.json,a)}});MooTools.More={version:"1.2.2.2"};(function(){var a={language:"en-US",languages:{"en-US":{}},cascades:["en-US"]};var b;MooTools.lang=new Events();$extend(MooTools.lang,{setLanguage:function(c){if(!a.languages[c]){return this}a.language=c;this.load();this.fireEvent("langChange",c);return this},load:function(){var c=this.cascade(this.getCurrentLanguage());b={};$each(c,function(e,d){b[d]=this.lambda(e)},this)},getCurrentLanguage:function(){return a.language},addLanguage:function(c){a.languages[c]=a.languages[c]||{};return this},cascade:function(e){var c=(a.languages[e]||{}).cascades||[];c.combine(a.cascades);c.erase(e).push(e);var d=c.map(function(f){return a.languages[f]},this);return $merge.apply(this,d)},lambda:function(c){(c||{}).get=function(e,d){return $lambda(c[e]).apply(this,$splat(d))};return c},get:function(e,d,c){if(b&&b[e]){return(d?b[e].get(d,c):b[e])}},set:function(d,e,c){this.addLanguage(d);langData=a.languages[d];if(!langData[e]){langData[e]={}}$extend(langData[e],c);if(d==this.getCurrentLanguage()){this.load();this.fireEvent("langChange",d)}return this},list:function(){return Hash.getKeys(a.languages)}})})();var Log=new Class({log:function(){Log.logger.call(this,arguments)}});Log.logged=[];Log.logger=function(){if(window.console&&console.log){console.log.apply(console,arguments)}else{Log.logged.push(arguments)}};Class.refactor=function(b,a){$each(a,function(e,d){var c=b.prototype[d];if(c&&(c=c._origin)&&typeof e=="function"){b.implement(d,function(){var f=this.previous;this.previous=c;var g=e.apply(this,arguments);this.previous=f;return g})}else{b.implement(d,e)}});return b};Class.Mutators.Binds=function(a){return a};Class.Mutators.initialize=function(a){return function(){$splat(this.Binds).each(function(b){var c=this[b];if(c){this[b]=c.bind(this)}},this);return a.apply(this,arguments)}};Class.Occlude=new Class({occlude:function(c,b){b=$(b||this.element);var a=b.retrieve(c||this.property);if(a&&!$defined(this.occluded)){this.occluded=a}else{this.occluded=false;b.store(c||this.property,this)}return this.occluded}});(function(){var b={wait:function(c){return this.chain(function(){this.callChain.delay($pick(c,500),this)}.bind(this))}};Chain.implement(b);if(window.Fx){Fx.implement(b);["Css","Tween","Elements"].each(function(c){if(Fx[c]){Fx[c].implement(b)}})}try{Element.implement({chains:function(c){$splat($pick(c,["tween","morph","reveal"])).each(function(d){d=this.get(d);if(!d){return}d.setOptions({link:"chain"})},this);return this},pauseFx:function(d,c){this.chains(c).get($pick(c,"tween")).wait(d);return this}})}catch(a){}})();Array.implement({min:function(){return Math.min.apply(null,this)},max:function(){return Math.max.apply(null,this)},average:function(){return this.length?this.sum()/this.length:0},sum:function(){var a=0,b=this.length;if(b){do{a+=this[--b]}while(b)}return a},unique:function(){return[].combine(this)}});(function(){new Native({name:"Date",initialize:Date,protect:true});["now","parse","UTC"].each(function(d){Native.genericize(Date,d,true)});Date.Methods={};["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds","Time","TimezoneOffset","Week","Timezone","GMTOffset","DayOfYear","LastMonth","UTCDate","UTCDay","UTCFullYear","AMPM","UTCHours","UTCMilliseconds","UTCMinutes","UTCMonth","UTCSeconds"].each(function(d){Date.Methods[d.toLowerCase()]=d});$each({ms:"Milliseconds",year:"FullYear",min:"Minutes",mo:"Month",sec:"Seconds",hr:"Hours"},function(e,d){Date.Methods[d]=e});var c=function(e,d){return"0".repeat(d-e.toString().length)+e};Date.implement({set:function(g,e){switch($type(g)){case"object":for(var f in g){this.set(f,g[f])}break;case"string":g=g.toLowerCase();var d=Date.Methods;if(d[g]){this["set"+d[g]](e)}}return this},get:function(e){e=e.toLowerCase();var d=Date.Methods;if(d[e]){return this["get"+d[e]]()}return null},clone:function(){return new Date(this.get("time"))},increment:function(d,e){return this.multiply(d,e)},decrement:function(d,e){return this.multiply(d,e,false)},multiply:function(e,j,d){e=e||"day";j=$pick(j,1);d=$pick(d,true);var k=d?1:-1;var h=this.format("%m").toInt()-1;var f=this.format("%Y").toInt();var g=this.get("time");var i=0;switch(e){case"year":j.times(function(l){if(Date.isLeapYear(f+l)&&h>1&&k>0){l++}if(Date.isLeapYear(f+l)&&h<=1&&k<0){l--}i+=Date.units.year(f+l)});break;case"month":j.times(function(n){if(k<0){n++}var m=h+(n*k);var l=l;if(m<0){l--;m=12+m}if(m>11||m<0){l+=(m/12).toInt()*k;m=m%12}i+=Date.units.month(m,l)});break;case"day":return this.set("date",this.get("date")+(k*j));default:i=Date.units[e]()*j;break}this.set("time",g+(i*k));return this},isLeapYear:function(){return Date.isLeapYear(this.get("year"))},clearTime:function(){["hr","min","sec","ms"].each(function(d){this.set(d,0)},this);return this},diff:function(h,f){f=f||"day";if($type(h)=="string"){h=Date.parse(h)}switch(f){case"year":return h.format("%Y").toInt()-this.format("%Y").toInt();break;case"month":var e=(h.format("%Y").toInt()-this.format("%Y").toInt())*12;return e+h.format("%m").toInt()-this.format("%m").toInt();break;default:var g=h.get("time")-this.get("time");if(g<0&&Date.units[f]()>(-1*(g))){return 0}else{if(g>=0&&g<Date.units[f]()){return 0}}return((h.get("time")-this.get("time"))/Date.units[f]()).round()}return null},getWeek:function(){var d=(new Date(this.get("year"),0,1)).get("date");return Math.round((this.get("dayofyear")+(d>3?d-4:d+3))/7)},getTimezone:function(){return this.toString().replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3")},getGMTOffset:function(){var d=this.get("timezoneOffset");return((d>0)?"-":" + ")+c(Math.floor(Math.abs(d)/60),2)+c(d%60,2)},parse:function(d){this.set("time",Date.parse(d));return this},isValid:function(d){return!!(d||this).valueOf()},format:function(e){if(!this.isValid()){return"invalid date"}e=e||"%x %X";e=({db:"%Y-%m-%d %H:%M:%S",compact:"%Y%m%dT%H%M%S",iso8601:"%Y-%m-%dT%H:%M:%S%T",rfc822:"%a, %d %b %Y %H:%M:%S %Z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"})[e.toLowerCase()]||e;var g=this;return e.replace(/\%([aAbBcdHIjmMpSUWwxXyYTZ\%])/g,function(d,f){switch(f){case"a":return Date.getMsg("days")[g.get("day")].substr(0,3);case"A":return Date.getMsg("days")[g.get("day")];case"b":return Date.getMsg("months")[g.get("month")].substr(0,3);case"B":return Date.getMsg("months")[g.get("month")];case"c":return g.toString();case"d":return c(g.get("date"),2);case"H":return c(g.get("hr"),2);case"I":return((g.get("hr")%12)||12);case"j":return c(g.get("dayofyear"),3);case"m":return c((g.get("mo")+1),2);case"M":return c(g.get("min"),2);case"p":return Date.getMsg(g.get("hr")<12?"AM":"PM");case"S":return c(g.get("seconds"),2);case"U":return c(g.get("week"),2);case"W":throw new Error("%W is not supported yet");case"w":return g.get("day");case"x":return g.format(Date.getMsg("shortDate"));case"X":return g.format(Date.getMsg("shortTime"));case"y":return g.get("year").toString().substr(2);case"Y":return g.get("year");case"T":return g.get("GMTOffset");case"Z":return g.get("Timezone");case"%":return"%"}return f})},setAMPM:function(d){d=d.toUpperCase();if(this.format("%H").toInt()>11&&d=="AM"){return this.decrement("hour",12)}else{if(this.format("%H").toInt()<12&&d=="PM"){return this.increment("hour",12)}}return this}});Date.alias("diff","compare");Date.alias("format","strftime");var b=Date.parse;var a=function(e,d){if(Date.isLeapYear(d.toInt())&&e===1){return 29}return[31,28,31,30,31,30,31,31,30,31,30,31][e]};$extend(Date,{getMsg:function(e,d){return MooTools.lang.get("Date",e,d)},units:{ms:$lambda(1),second:$lambda(1000),minute:$lambda(60000),hour:$lambda(3600000),day:$lambda(86400000),week:$lambda(608400000),month:function(g,e){var f=new Date();return a($pick(g,f.format("%m").toInt()),$pick(e,f.format("%Y").toInt()))*86400000},year:function(d){d=d||new Date().format("%Y").toInt();return Date.isLeapYear(d.toInt())?31622400000:31536000000}},isLeapYear:function(d){return new Date(d,1,29).getDate()==29},fixY2K:function(f){if(!isNaN(f)){var e=new Date(f);if(e.get("year")<2000&&f.toString().indexOf(e.get("year"))<0){e.increment("year",100)}return e}else{return f}},parse:function(f){var e=$type(f);if(e=="number"){return new Date(f)}if(e!="string"){return f}if(!f.length){return null}var d;Date.parsePatterns.each(function(j,g){if(d){return}var h=j.re.exec(f);if(h){d=j.handler(h)}});return d||new Date(b(f))},parseDay:function(d,g){var f=-1;switch($type(d)){case"number":f=Date.getMsg("days")[d-1]||false;if(!f){throw new Error("Invalid day index value must be between 1 and 7");}break;case"string":var e=Date.getMsg("days").filter(function(h){return this.test(h)},new RegExp("^"+d,"i"));if(!e.length){throw new Error("Invalid day string");}if(e.length>1){throw new Error("Ambiguous day");}f=e[0]}return(g)?Date.getMsg("days").indexOf(f):f},parseMonth:function(g,f){var e=-1;switch($type(g)){case"object":e=Date.getMsg("months")[g.get("mo")];break;case"number":e=Date.getMsg("months")[g-1]||false;if(!e){throw new Error("Invalid month index value must be between 1 and 12:"+index);}break;case"string":var d=Date.getMsg("months").filter(function(h){return this.test(h)},new RegExp("^"+g,"i"));if(!d.length){throw new Error("Invalid month string");}if(d.length>1){throw new Error("Ambiguous month");}e=d[0]}return(f)?Date.getMsg("months").indexOf(e):e},parseUTC:function(e){var d=new Date(e);var f=Date.UTC(d.get("year"),d.get("mo"),d.get("date"),d.get("hr"),d.get("min"),d.get("sec"));return new Date(f)},orderIndex:function(d){return Date.getMsg("dateOrder").indexOf(d)+1},parsePatterns:[{re:/^(\d{4})[\.\-\/](\d{1,2})[\.\-\/](\d{1,2})$/,handler:function(d){return new Date(d[1],d[2]-1,d[3])}},{re:/^(\d{4})[\.\-\/](\d{1,2})[\.\-\/](\d{1,2})\s(\d{1,2}):(\d{1,2})(?:\:(\d{1,2}))?(\w{2})?$/,handler:function(e){var f=new Date(e[1],e[2]-1,e[3]);f.set("hr",e[4]);f.set("min",e[5]);f.set("sec",e[6]||0);if(e[7]){f.set("ampm",e[7])}return f}},{re:/^(\d{1,2})[\.\-\/](\d{1,2})[\.\-\/](\d{2,4})$/,handler:function(e){var f=new Date(e[Date.orderIndex("year")],e[Date.orderIndex("month")]-1,e[Date.orderIndex("date")]);return Date.fixY2K(f)}},{re:/^(\d{1,2})[\.\-\/](\d{1,2})[\.\-\/](\d{2,4})\s(\d{1,2})[:\.](\d{1,2})(?:[\:\.](\d{1,2}))?(\w{2})?$/,handler:function(e){var f=new Date(e[Date.orderIndex("year")],e[Date.orderIndex("month")]-1,e[Date.orderIndex("date")]);f.set("hr",e[4]);f.set("min",e[5]);f.set("sec",e[6]||0);if(e[7]){f.set("ampm",e[7])}return Date.fixY2K(f)}}]})})();["LastDayOfMonth","Ordinal"].each(function(a){Date.Methods[a.toLowerCase()]=a});Date.implement({timeDiffInWords:function(a){return Date.distanceOfTimeInWords(this,a||new Date)},getOrdinal:function(a){return Date.getMsg("ordinal",a||this.get("date"))},getDayOfYear:function(){return((Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()+1,0,0,0)-Date.UTC(this.getFullYear(),0,1,0,0,0))/Date.units.day())},getLastDayOfMonth:function(){var a=this.clone();a.setMonth(a.getMonth()+1,0);return a.getDate()}});Date.alias("timeDiffInWords","timeAgoInWords");$extend(Date,{distanceOfTimeInWords:function(b,a){return this.getTimePhrase(((a.getTime()-b.getTime())/1000).toInt(),b,a)},getTimePhrase:function(d,c,a){var b=function(){var e;if(d>=0){e="Ago"}else{d=d*-1;e="Until"}if(d<60){return Date.getMsg("lessThanMinute"+e,d)}else{if(d<120){return Date.getMsg("minute"+e,d)}else{if(d<(45*60)){d=(d/60).round();return Date.getMsg("minutes"+e,d)}else{if(d<(90*60)){return Date.getMsg("hour"+e,d)}else{if(d<(24*60*60)){d=(d/3600).round();return Date.getMsg("hours"+e,d)}else{if(d<(48*60*60)){return Date.getMsg("day"+e,d)}else{d=(d/86400).round();return Date.getMsg("days"+e,d)}}}}}}};return b().substitute({delta:d})}});Date.parsePatterns.extend([{re:/^(\d{4})(?:-?(\d{2})(?:-?(\d{2})(?:[T ](\d{2})(?::?(\d{2})(?::?(\d{2})(?:\.(\d+))?)?)?(?:Z|(?:([-+])(\d{2})(?::?(\d{2}))?)?)?)?)?)?$/,handler:function(a){var c=0;var b=new Date(a[1],0,1);if(a[3]){b.set("date",a[3])}if(a[2]){b.set("mo",a[2]-1)}if(a[4]){b.set("hr",a[4])}if(a[5]){b.set("min",a[5])}if(a[6]){b.set("sec",a[6])}if(a[7]){b.set("ms",("0."+a[7]).toInt()*1000)}if(a[9]){c=(a[9].toInt()*60)+a[10].toInt();c*=((a[8]=="-")?1:-1)}b.setTime((b*1)+(c*60*1000).toInt());return b}},{re:/^tod/i,handler:function(){return new Date()}},{re:/^tom/i,handler:function(){return new Date().increment()}},{re:/^yes/i,handler:function(){return new Date().decrement()}},{re:/^(\d{1,2})(st|nd|rd|th)?$/i,handler:function(a){var b=new Date();b.set("date",a[1].toInt());return b}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+)$/i,handler:function(a){var b=new Date();b.set("mo",Date.parseMonth(a[2],true),a[1].toInt());return b}},{re:/^(\d{1,2})(?:st|nd|rd|th)? (\w+),? (\d{4})$/i,handler:function(a){var b=new Date();b.set("mo",Date.parseMonth(a[2],true),a[1].toInt());b.setYear(a[3]);return b}},{re:/^(\w+) (\d{1,2})(?:st|nd|rd|th)?,? (\d{4})$/i,handler:function(a){var b=new Date();b.set("mo",Date.parseMonth(a[1],true),a[2].toInt());b.setYear(a[3]);return b}},{re:/^next (\w+)$/i,handler:function(e){var f=new Date();var b=f.getDay();var c=Date.parseDay(e[1],true);var a=c-b;if(c<=b){a+=7}f.set("date",f.getDate()+a);return f}},{re:/^\d+\s[a-zA-z]..\s\d.\:\d.$/,handler:function(b){var c=new Date();b=b[0].split(" ");c.set("date",b[0]);var a;Date.getMsg("months").each(function(e,d){if(new RegExp("^"+b[1]).test(e)){a=d}});c.set("mo",a);c.set("hr",b[2].split(":")[0]);c.set("min",b[2].split(":")[1]);c.set("ms",0);return c}},{re:/^last (\w+)$/i,handler:function(a){return Date.parse("next "+a[0]).decrement("day",7)}}]);Hash.implement({getFromPath:function(a){var b=this.getClean();a.replace(/\[([^\]]+)\]|\.([^.[]+)|[^[.]+/g,function(c){if(!b){return null}var d=arguments[2]||arguments[1]||arguments[0];b=(d in b)?b[d]:null;return c});return b},cleanValues:function(a){a=a||$defined;this.each(function(c,b){if(!a(c)){this.erase(b)}},this);return this},run:function(){var a=arguments;this.each(function(c,b){if($type(c)=="function"){c.run(a)}})}});(function(){var b=["À","à","Á","á","Â","â","Ã","ã","Ä","ä","Å","å","Ă","ă","Ą","ą","Ć","ć","Č","č","Ç","ç","Ď","ď","Đ","đ","È","è","É","é","Ê","ê","Ë","ë","Ě","ě","Ę","ę","Ğ","ğ","Ì","ì","Í","í","Î","î","Ï","ï","Ĺ","ĺ","Ľ","ľ","Ł","ł","Ñ","ñ","Ň","ň","Ń","ń","Ò","ò","Ó","ó","Ô","ô","Õ","õ","Ö","ö","Ø","ø","ő","Ř","ř","Ŕ","ŕ","Š","š","Ş","ş","Ś","ś","Ť","ť","Ť","ť","Ţ","ţ","Ù","ù","Ú","ú","Û","û","Ü","ü","Ů","ů","Ÿ","ÿ","ý","Ý","Ž","ž","Ź","ź","Ż","ż","Þ","þ","Ð","ð","ß","Œ","œ","Æ","æ","µ"];var a=["A","a","A","a","A","a","A","a","Ae","ae","A","a","A","a","A","a","C","c","C","c","C","c","D","d","D","d","E","e","E","e","E","e","E","e","E","e","E","e","G","g","I","i","I","i","I","i","I","i","L","l","L","l","L","l","N","n","N","n","N","n","O","o","O","o","O","o","O","o","Oe","oe","O","o","o","R","r","R","r","S","s","S","s","S","s","T","t","T","t","T","t","U","u","U","u","U","u","Ue","ue","U","u","Y","y","Y","y","Z","z","Z","z","Z","z","TH","th","DH","dh","ss","OE","oe","AE","ae","u"];var c={"[\xa0\u2002\u2003\u2009]":" ","\xb7":"*","[\u2018\u2019]":"'","[\u201c\u201d]":'"',"\u2026":"...","\u2013":"-","\u2014":"--","\uFFFD":"&raquo;"};String.implement({standardize:function(){var d=this;b.each(function(f,e){d=d.replace(new RegExp(f,"g"),a[e])});return d},repeat:function(d){return new Array(d+1).join(this)},pad:function(e,g,d){if(this.length>=e){return this}g=g||" ";var f=g.repeat(e-this.length).substr(0,e-this.length);if(!d||d=="right"){return this+f}if(d=="left"){return f+this}return f.substr(0,(f.length/2).floor())+this+f.substr(0,(f.length/2).ceil())},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,"")},tidy:function(){var d=this.toString();$each(c,function(f,e){d=d.replace(new RegExp(e,"g"),f)});return d}})})();String.implement({parseQueryString:function(){var b=this.split(/[&;]/),a={};if(b.length){b.each(function(g){var c=g.indexOf("="),d=c<0?[""]:g.substr(0,c).match(/[^\]\[]+/g),e=decodeURIComponent(g.substr(c+1)),f=a;d.each(function(j,h){var k=f[j];if(h<d.length-1){f=f[j]=k||{}}else{if($type(k)=="array"){k.push(e)}else{f[j]=$defined(k)?[k,e]:e}}})})}return a},cleanQueryString:function(a){return this.split("&").filter(function(e){var b=e.indexOf("="),c=b<0?"":e.substr(0,b),d=e.substr(b+1);return a?a.run([c,d]):$chk(d)}).join("&")}});var URI=new Class({Implements:Options,regex:/^(?:(\w+):)?(?:\/\/(?:(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,parts:["scheme","user","password","host","port","directory","file","query","fragment"],schemes:{http:80,https:443,ftp:21,rtsp:554,mms:1755,file:0},initialize:function(b,a){this.setOptions(a);var c=this.options.base||URI.base;b=b||c;if(b&&b.parsed){this.parsed=$unlink(b.parsed)}else{this.set("value",b.href||b.toString(),c?new URI(c):false)}},parse:function(c,b){var a=c.match(this.regex);if(!a){return false}a.shift();return this.merge(a.associate(this.parts),b)},merge:function(b,a){if(!b.scheme&&!a.scheme){return false}if(a){this.parts.every(function(c){if(b[c]){return false}b[c]=a[c]||"";return true})}b.port=b.port||this.schemes[b.scheme.toLowerCase()];b.directory=b.directory?this.parseDirectory(b.directory,a?a.directory:""):"/";return b},parseDirectory:function(b,c){b=(b.substr(0,1)=="/"?"":(c||"/"))+b;if(!b.test(URI.regs.directoryDot)){return b}var a=[];b.replace(URI.regs.endSlash,"").split("/").each(function(d){if(d==".."&&a.length>0){a.pop()}else{if(d!="."){a.push(d)}}});return a.join("/")+"/"},combine:function(a){return a.value||a.scheme+"://"+(a.user?a.user+(a.password?":"+a.password:"")+"@":"")+(a.host||"")+(a.port&&a.port!=this.schemes[a.scheme]?":"+a.port:"")+(a.directory||"/")+(a.file||"")+(a.query?"?"+a.query:"")+(a.fragment?"#"+a.fragment:"")},set:function(b,d,c){if(b=="value"){var a=d.match(URI.regs.scheme);if(a){a=a[1]}if(a&&!$defined(this.schemes[a.toLowerCase()])){this.parsed={scheme:a,value:d}}else{this.parsed=this.parse(d,(c||this).parsed)||(a?{scheme:a,value:d}:{value:d})}}else{this.parsed[b]=d}return this},get:function(a,b){switch(a){case"value":return this.combine(this.parsed,b?b.parsed:false);case"data":return this.getData()}return this.parsed[a]||undefined},go:function(){document.location.href=this.toString()},toURI:function(){return this},getData:function(c,b){var a=this.get(b||"query");if(!$chk(a)){return c?null:{}}var d=a.parseQueryString();return c?d[c]:d},setData:function(a,c,b){if($type(arguments[0])=="string"){a=this.getData();a[arguments[0]]=arguments[1]}else{if(c){a=$merge(this.getData(),a)}}return this.set(b||"query",Hash.toQueryString(a))},clearData:function(a){return this.set(a||"query","")}});["toString","valueOf"].each(function(a){URI.prototype[a]=function(){return this.get("value")}});URI.regs={endSlash:/\/$/,scheme:/^(\w+):/,directoryDot:/\.\/|\.$/};URI.base=new URI($$("base[href]").getLast(),{base:document.location});String.implement({toURI:function(a){return new URI(this,a)}});URI=Class.refactor(URI,{combine:function(f,e){if(!e||f.scheme!=e.scheme||f.host!=e.host||f.port!=e.port){return this.previous.apply(this,arguments)}var a=f.file+(f.query?"?"+f.query:"")+(f.fragment?"#"+f.fragment:"");if(!e.directory){return(f.directory||(f.file?"":"./"))+a}var d=e.directory.split("/"),c=f.directory.split("/"),g="",h;var b=0;for(h=0;h<d.length&&h<c.length&&d[h]==c[h];h++){}for(b=0;b<d.length-h-1;b++){g+="../"}for(b=h;b<c.length-1;b++){g+=c[b]+"/"}return(g||(f.file?"":"./"))+a},toAbsolute:function(a){a=new URI(a);if(a){a.set("directory","").set("file","")}return this.toRelative(a)},toRelative:function(a){return this.get("value",new URI(a))}});Element.implement({tidy:function(){this.set("value",this.get("value").tidy())},getTextInRange:function(b,a){return this.get("value").substring(b,a)},getSelectedText:function(){if(document.selection&&document.selection.createRange){return document.selection.createRange().text}return this.getTextInRange(this.getSelectionStart(),this.getSelectionEnd())},getSelectedRange:function(){if($defined(this.selectionStart)){return{start:this.selectionStart,end:this.selectionEnd}}var e={start:0,end:0};var a=this.getDocument().selection.createRange();if(!a||a.parentElement()!=this){return e}var c=a.duplicate();if(this.type=="text"){e.start=0-c.moveStart("character",-100000);e.end=e.start+a.text.length}else{var b=this.get("value");var d=b.length-b.match(/[\n\r]*$/)[0].length;c.moveToElementText(this);c.setEndPoint("StartToEnd",a);e.end=d-c.text.length;c.setEndPoint("StartToStart",a);e.start=d-c.text.length}return e},getSelectionStart:function(){return this.getSelectedRange().start},getSelectionEnd:function(){return this.getSelectedRange().end},setCaretPosition:function(a){if(a=="end"){a=this.get("value").length}this.selectRange(a,a);return this},getCaretPosition:function(){return this.getSelectedRange().start},selectRange:function(e,a){if(this.createTextRange){var c=this.get("value");var d=c.substr(e,a-e).replace(/\r/g,"").length;e=c.substr(0,e).replace(/\r/g,"").length;var b=this.createTextRange();b.collapse(true);b.moveEnd("character",e+d);b.moveStart("character",e);b.select()}else{this.focus();this.setSelectionRange(e,a)}return this},insertAtCursor:function(b,a){var d=this.getSelectedRange();var c=this.get("value");this.set("value",c.substring(0,d.start)+b+c.substring(d.end,c.length));if($pick(a,true)){this.selectRange(d.start,d.start+b.length)}else{this.setCaretPosition(d.start+b.length)}return this},insertAroundCursor:function(b,a){b=$extend({before:"",defaultMiddle:"",after:""},b);var c=this.getSelectedText()||b.defaultMiddle;var g=this.getSelectedRange();var f=this.get("value");if(g.start==g.end){this.set("value",f.substring(0,g.start)+b.before+c+b.after+f.substring(g.end,f.length));this.selectRange(g.start+b.before.length,g.end+b.before.length+c.length)}else{var d=f.substring(g.start,g.end);this.set("value",f.substring(0,g.start)+b.before+d+b.after+f.substring(g.end,f.length));var e=g.start+b.before.length;if($pick(a,true)){this.selectRange(e,e+d.length)}else{this.setCaretPosition(e+f.length)}}return this}});Element.implement({measure:function(e){var g=function(h){return!!(!h||h.offsetHeight||h.offsetWidth)};if(g(this)){return e.apply(this)}var d=this.getParent(),b=[],f=[];while(!g(d)&&d!=document.body){b.push(d.expose());d=d.getParent()}var c=this.expose();var a=e.apply(this);c();b.each(function(h){h()});return a},expose:function(){if(this.getStyle("display")!="none"){return $empty}var a=this.getStyles("display","position","visibility");return this.setStyles({display:"block",position:"absolute",visibility:"hidden"}).setStyles.pass(a,this)},getDimensions:function(a){a=$merge({computeSize:false},a);var d={};var c=function(f,e){return(e.computeSize)?f.getComputedSize(e):f.getSize()};if(this.getStyle("display")=="none"){d=this.measure(function(){return c(this,a)})}else{try{d=c(this,a)}catch(b){}}return $chk(d.x)?$extend(d,{width:d.x,height:d.y}):$extend(d,{x:d.width,y:d.height})},getComputedSize:function(a){a=$merge({styles:["padding","border"],plains:{height:["top","bottom"],width:["left","right"]},mode:"both"},a);var c={width:0,height:0};switch(a.mode){case"vertical":delete c.width;delete a.plains.width;break;case"horizontal":delete c.height;delete a.plains.height;break}var b=[];$each(a.plains,function(g,f){g.each(function(h){a.styles.each(function(i){b.push((i=="border")?i+"-"+h+"-width":i+"-"+h)})})});var e={};b.each(function(f){e[f]=this.getComputedStyle(f)},this);var d=[];$each(a.plains,function(g,f){var h=f.capitalize();c["total"+h]=0;c["computed"+h]=0;g.each(function(i){c["computed"+i.capitalize()]=0;b.each(function(k,j){if(k.test(i)){e[k]=e[k].toInt()||0;c["total"+h]=c["total"+h]+e[k];c["computed"+i.capitalize()]=c["computed"+i.capitalize()]+e[k]}if(k.test(i)&&f!=k&&(k.test("border")||k.test("padding"))&&!d.contains(k)){d.push(k);c["computed"+h]=c["computed"+h]-e[k]}})})});["Width","Height"].each(function(g){var f=g.toLowerCase();if(!$chk(c[f])){return}c[f]=c[f]+this["offset"+g]+c["computed"+g];c["total"+g]=c[f]+c["total"+g];delete c["computed"+g]},this);return $extend(e,c)}});(function(){var a=false;window.addEvent("domready",function(){var b=new Element("div").setStyles({position:"fixed",top:0,right:0}).inject(document.body);a=(b.offsetTop===0);b.dispose()});Element.implement({pin:function(c){if(this.getStyle("display")=="none"){return null}var d;if(c!==false){d=this.getPosition();if(!this.retrieve("pinned")){var f={top:d.y-window.getScroll().y,left:d.x-window.getScroll().x};if(a){this.setStyle("position","fixed").setStyles(f)}else{this.store("pinnedByJS",true);this.setStyles({position:"absolute",top:d.y,left:d.x});this.store("scrollFixer",(function(){if(this.retrieve("pinned")){this.setStyles({top:f.top.toInt()+window.getScroll().y,left:f.left.toInt()+window.getScroll().x})}}).bind(this));window.addEvent("scroll",this.retrieve("scrollFixer"))}this.store("pinned",true)}}else{var e;if(!Browser.Engine.trident){if(this.getParent().getComputedStyle("position")!="static"){e=this.getParent()}else{e=this.getParent().getOffsetParent()}}d=this.getPosition(e);this.store("pinned",false);var b;if(a&&!this.retrieve("pinnedByJS")){b={top:d.y+window.getScroll().y,left:d.x+window.getScroll().x}}else{this.store("pinnedByJS",false);window.removeEvent("scroll",this.retrieve("scrollFixer"));b={top:d.y,left:d.x}}this.setStyles($merge(b,{position:"absolute"}))}return this.addClass("isPinned")},unpin:function(){return this.pin(false).removeClass("isPinned")},togglepin:function(){this.pin(!this.retrieve("pinned"))}})})();(function(){var a=Element.prototype.position;Element.implement({position:function(r){if(r&&($defined(r.x)||$defined(r.y))){return a?a.apply(this,arguments):this}$each(r||{},function(t,s){if(!$defined(t)){delete r[s]}});r=$merge({relativeTo:document.body,position:{x:"center",y:"center"},edge:false,offset:{x:0,y:0},returnPos:false,relFixedPosition:false,ignoreMargins:false,allowNegative:false},r);var b={x:0,y:0};var h=false;var c=this.measure(function(){return $(this.getOffsetParent())});if(c&&c!=this.getDocument().body){b=c.measure(function(){return this.getPosition()});h=true;r.offset.x=r.offset.x-b.x;r.offset.y=r.offset.y-b.y}var q=function(s){if($type(s)!="string"){return s}s=s.toLowerCase();var t={};if(s.test("left")){t.x="left"}else{if(s.test("right")){t.x="right"}else{t.x="center"}}if(s.test("upper")||s.test("top")){t.y="top"}else{if(s.test("bottom")){t.y="bottom"}else{t.y="center"}}return t};r.edge=q(r.edge);r.position=q(r.position);if(!r.edge){if(r.position.x=="center"&&r.position.y=="center"){r.edge={x:"center",y:"center"}}else{r.edge={x:"left",y:"top"}}}this.setStyle("position","absolute");var p=$(r.relativeTo)||document.body;var i=p==document.body?window.getScroll():p.getPosition();var o=i.y;var g=i.x;if(Browser.Engine.trident){var l=p.getScrolls();o+=l.y;g+=l.x}var j=this.getDimensions({computeSize:true,styles:["padding","border","margin"]});if(r.ignoreMargins){r.offset.x=r.offset.x-j["margin-left"];r.offset.y=r.offset.y-j["margin-top"]}var n={};var d=r.offset.y;var e=r.offset.x;var k=window.getSize();switch(r.position.x){case"left":n.x=g+e;break;case"right":n.x=g+e+p.offsetWidth;break;default:n.x=g+((p==document.body?k.x:p.offsetWidth)/2)+e;break}switch(r.position.y){case"top":n.y=o+d;break;case"bottom":n.y=o+d+p.offsetHeight;break;default:n.y=o+((p==document.body?k.y:p.offsetHeight)/2)+d;break}if(r.edge){var m={};switch(r.edge.x){case"left":m.x=0;break;case"right":m.x=-j.x-j.computedRight-j.computedLeft;break;default:m.x=-(j.x/2);break}switch(r.edge.y){case"top":m.y=0;break;case"bottom":m.y=-j.y-j.computedTop-j.computedBottom;break;default:m.y=-(j.y/2);break}n.x=n.x+m.x;n.y=n.y+m.y}n={left:((n.x>=0||h||r.allowNegative)?n.x:0).toInt(),top:((n.y>=0||h||r.allowNegative)?n.y:0).toInt()};if(p.getStyle("position")=="fixed"||r.relFixedPosition){var f=window.getScroll();n.top=n.top.toInt()+f.y;n.left=n.left.toInt()+f.x}if(r.returnPos){return n}else{this.setStyles(n)}return this}})})();Element.implement({isDisplayed:function(){return this.getStyle("display")!="none"},toggle:function(){return this[this.isDisplayed()?"hide":"show"]()},hide:function(){var b;try{if("none"!=this.getStyle("display")){b=this.getStyle("display")}}catch(a){}return this.store("originalDisplay",b||"block").setStyle("display","none")},show:function(a){return this.setStyle("display",a||this.retrieve("originalDisplay")||"block")},swapClass:function(a,b){return this.removeClass(a).addClass(b)}});var InputValidator=new Class({Implements:[Options],options:{errorMsg:"Validation failed.",test:function(a){return true}},initialize:function(b,a){this.setOptions(a);this.className=b},test:function(b,a){if($(b)){return this.options.test($(b),a||this.getProps(b))}else{return false}},getError:function(c,a){var b=this.options.errorMsg;if($type(b)=="function"){b=b($(c),a||this.getProps(c))}return b},getProps:function(a){if(!$(a)){return{}}return a.get("validatorProps")}});Element.Properties.validatorProps={set:function(a){return this.eliminate("validatorProps").store("validatorProps",a)},get:function(a){if(a){this.set(a)}if(this.retrieve("validatorProps")){return this.retrieve("validatorProps")}if(this.getProperty("validatorProps")){try{this.store("validatorProps",JSON.decode(this.getProperty("validatorProps")))}catch(c){return{}}}else{var b=this.get("class").split(" ").filter(function(d){return d.test(":")});if(!b.length){this.store("validatorProps",{})}else{a={};b.each(function(d){var f=d.split(":");if(f[1]){try{a[f[0]]=JSON.decode(f[1])}catch(g){}}});this.store("validatorProps",a)}}return this.retrieve("validatorProps")}};var FormValidator=new Class({Implements:[Options,Events],Binds:["onSubmit"],options:{fieldSelectors:"input, select, textarea",ignoreHidden:true,useTitles:false,evaluateOnSubmit:true,evaluateFieldsOnBlur:true,evaluateFieldsOnChange:true,serial:true,stopOnFailure:true,warningPrefix:function(){return FormValidator.getMsg("warningPrefix")||"Warning: "},errorPrefix:function(){return FormValidator.getMsg("errorPrefix")||"Error: "}},initialize:function(b,a){this.setOptions(a);this.element=$(b);this.element.store("validator",this);this.warningPrefix=$lambda(this.options.warningPrefix)();this.errorPrefix=$lambda(this.options.errorPrefix)();if(this.options.evaluateOnSubmit){this.element.addEvent("submit",this.onSubmit)}if(this.options.evaluateFieldsOnBlur){this.watchFields(this.getFields())}},toElement:function(){return this.element},getFields:function(){return(this.fields=this.element.getElements(this.options.fieldSelectors))},watchFields:function(a){a.each(function(b){b.addEvent("blur",this.validationMonitor.pass([b,false],this));if(this.options.evaluateFieldsOnChange){b.addEvent("change",this.validationMonitor.pass([b,true],this))}},this)},validationMonitor:function(){$clear(this.timer);this.timer=this.validateField.delay(50,this,arguments)},onSubmit:function(a){if(!this.validate(a)&&a){a.preventDefault()}else{this.reset()}},reset:function(){this.getFields().each(this.resetField,this);return this},validate:function(b){var a=this.getFields().map(function(c){return this.validateField(c,true)},this).every(function(c){return c});this.fireEvent("formValidate",[a,this.element,b]);if(this.options.stopOnFailure&&!a&&b){b.preventDefault()}return a},validateField:function(i,a){if(this.paused){return true}i=$(i);var d=!i.hasClass("validation-failed");var f,h;if(this.options.serial&&!a){f=this.element.getElement(".validation-failed");h=this.element.getElement(".warning")}if(i&&(!f||a||i.hasClass("validation-failed")||(f&&!this.options.serial))){var c=i.className.split(" ").some(function(j){return this.getValidator(j)},this);var g=[];i.className.split(" ").each(function(j){if(j&&!this.test(j,i)){g.include(j)}},this);d=g.length===0;if(c&&!i.hasClass("warnOnly")){if(d){i.addClass("validation-passed").removeClass("validation-failed");this.fireEvent("elementPass",i)}else{i.addClass("validation-failed").removeClass("validation-passed");this.fireEvent("elementFail",[i,g])}}if(!h){var e=i.className.split(" ").some(function(j){if(j.test("^warn-")||i.hasClass("warnOnly")){return this.getValidator(j.replace(/^warn-/,""))}else{return null}},this);i.removeClass("warning");var b=i.className.split(" ").map(function(j){if(j.test("^warn-")||i.hasClass("warnOnly")){return this.test(j.replace(/^warn-/,""),i,true)}else{return null}},this)}}return d},test:function(b,d,e){var a=this.getValidator(b);d=$(d);if(d.hasClass("ignoreValidation")){return true}e=$pick(e,false);if(d.hasClass("warnOnly")){e=true}var c=a?a.test(d):true;if(a&&this.isVisible(d)){this.fireEvent("elementValidate",[c,d,b,e])}if(e){return true}return c},isVisible:function(a){if(!this.options.ignoreHidden){return true}while(a!=document.body){if($(a).getStyle("display")=="none"){return false}a=a.getParent()}return true},resetField:function(a){a=$(a);if(a){a.className.split(" ").each(function(b){if(b.test("^warn-")){b=b.replace(/^warn-/,"")}a.removeClass("validation-failed");a.removeClass("warning");a.removeClass("validation-passed")},this)}return this},stop:function(){this.paused=true;return this},start:function(){this.paused=false;return this},ignoreField:function(a,b){a=$(a);if(a){this.enforceField(a);if(b){a.addClass("warnOnly")}else{a.addClass("ignoreValidation")}}return this},enforceField:function(a){a=$(a);if(a){a.removeClass("warnOnly").removeClass("ignoreValidation")}return this}});FormValidator.getMsg=function(a){return MooTools.lang.get("FormValidator",a)};FormValidator.adders={validators:{},add:function(b,a){this.validators[b]=new InputValidator(b,a);if(!this.initialize){this.implement({validators:this.validators})}},addAllThese:function(a){$A(a).each(function(b){this.add(b[0],b[1])},this)},getValidator:function(a){return this.validators[a.split(":")[0]]}};$extend(FormValidator,FormValidator.adders);FormValidator.implement(FormValidator.adders);FormValidator.add("IsEmpty",{errorMsg:false,test:function(a){if(a.type=="select-one"||a.type=="select"){return!(a.selectedIndex>=0&&a.options[a.selectedIndex].value!="")}else{return((a.get("value")==null)||(a.get("value").length==0))}}});FormValidator.addAllThese([["required",{errorMsg:function(){return FormValidator.getMsg("required")},test:function(a){return!FormValidator.getValidator("IsEmpty").test(a)}}],["minLength",{errorMsg:function(a,b){if($type(b.minLength)){return FormValidator.getMsg("minLength").substitute({minLength:b.minLength,length:a.get("value").length})}else{return""}},test:function(a,b){if($type(b.minLength)){return(a.get("value").length>=$pick(b.minLength,0))}else{return true}}}],["maxLength",{errorMsg:function(a,b){if($type(b.maxLength)){return FormValidator.getMsg("maxLength").substitute({maxLength:b.maxLength,length:a.get("value").length})}else{return""}},test:function(a,b){return(a.get("value").length<=$pick(b.maxLength,10000))}}],["validate-integer",{errorMsg:FormValidator.getMsg.pass("integer"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^-?[1-9]\d*$/).test(a.get("value"))}}],["validate-numeric",{errorMsg:FormValidator.getMsg.pass("numeric"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^-?(?:0$0(?=\d*\.)|[1-9]|0)\d*(\.\d+)?$/).test(a.get("value"))}}],["validate-digits",{errorMsg:FormValidator.getMsg.pass("digits"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^[\d() .:\-\+#]+$/.test(a.get("value")))}}],["validate-alpha",{errorMsg:FormValidator.getMsg.pass("alpha"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^[a-zA-Z]+$/).test(a.get("value"))}}],["validate-alphanum",{errorMsg:FormValidator.getMsg.pass("alphanum"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||!(/\W/).test(a.get("value"))}}],["validate-date",{errorMsg:function(a,b){if(Date.parse){var c=b.dateFormat||"%x";return FormValidator.getMsg("dateSuchAs").substitute({date:new Date().format(c)})}else{return FormValidator.getMsg("dateInFormatMDY")}},test:function(a,b){if(FormValidator.getValidator("IsEmpty").test(a)){return true}var g;if(Date.parse){var f=b.dateFormat||"%x";g=Date.parse(a.get("value"));var e=g.format(f);if(e!="invalid date"){a.set("value",e)}return!isNaN(g)}else{var c=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!c.test(a.get("value"))){return false}g=new Date(a.get("value").replace(c,"$1/$2/$3"));return(parseInt(RegExp.$1,10)==(1+g.getMonth()))&&(parseInt(RegExp.$2,10)==g.getDate())&&(parseInt(RegExp.$3,10)==g.getFullYear())}}}],["validate-email",{errorMsg:FormValidator.getMsg.pass("email"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i).test(a.get("value"))}}],["validate-url",{errorMsg:FormValidator.getMsg.pass("url"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i).test(a.get("value"))}}],["validate-currency-dollar",{errorMsg:FormValidator.getMsg.pass("currencyDollar"),test:function(a){return FormValidator.getValidator("IsEmpty").test(a)||(/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(a.get("value"))}}],["validate-one-required",{errorMsg:FormValidator.getMsg.pass("oneRequired"),test:function(a,b){var c=$(b["validate-one-required"])||a.parentNode;return c.getElements("input").some(function(d){if(["checkbox","radio"].contains(d.get("type"))){return d.get("checked")}return d.get("value")})}}]]);Element.Properties.validator={set:function(a){var b=this.retrieve("validator");if(b){b.setOptions(a)}return this.store("validator:options")},get:function(a){if(a||!this.retrieve("validator")){if(a||!this.retrieve("validator:options")){this.set("validator",a)}this.store("validator",new FormValidator(this,this.retrieve("validator:options")))}return this.retrieve("validator")}};Element.implement({validate:function(a){this.set("validator",a);return this.get("validator",a).validate()}});FormValidator.Inline=new Class({Extends:FormValidator,options:{scrollToErrorsOnSubmit:true,scrollFxOptions:{offset:{y:-20}}},initialize:function(b,a){this.parent(b,a);this.addEvent("onElementValidate",function(g,f,e,h){var d=this.getValidator(e);if(!g&&d.getError(f)){if(h){f.addClass("warning")}var c=this.makeAdvice(e,f,d.getError(f),h);this.insertAdvice(c,f);this.showAdvice(e,f)}else{this.hideAdvice(e,f)}})},makeAdvice:function(d,f,c,g){var e=(g)?this.warningPrefix:this.errorPrefix;e+=(this.options.useTitles)?f.title||c:c;var a=(g)?"warning-advice":"validation-advice";var b=this.getAdvice(d,f);if(b){b=b.clone(true,true).set("html",e).replaces(b)}else{b=new Element("div",{html:e,styles:{display:"none"},id:"advice-"+d+"-"+this.getFieldId(f)}).addClass(a)}f.store("advice-"+d,b);return b},getFieldId:function(a){return a.id?a.id:a.id="input_"+a.name},showAdvice:function(b,c){var a=this.getAdvice(b,c);if(a&&!c.retrieve(this.getPropName(b))&&(a.getStyle("display")=="none"||a.getStyle("visiblity")=="hidden"||a.getStyle("opacity")==0)){c.store(this.getPropName(b),true);if(a.reveal){a.reveal()}else{a.setStyle("display","block")}}},hideAdvice:function(b,c){var a=this.getAdvice(b,c);if(a&&c.retrieve(this.getPropName(b))){c.store(this.getPropName(b),false);if(a.dissolve){a.dissolve()}else{a.setStyle("display","none")}}},getPropName:function(a){return"advice"+a},resetField:function(a){a=$(a);if(!a){return this}this.parent(a);a.className.split(" ").each(function(b){this.hideAdvice(b,a)},this);return this},getAllAdviceMessages:function(d,c){var b=[];if(d.hasClass("ignoreValidation")&&!c){return b}var a=d.className.split(" ").some(function(g){var e=g.test("^warn-")||d.hasClass("warnOnly");if(e){g=g.replace(/^warn-/,"")}var f=this.getValidator(g);if(!f){return}b.push({message:f.getError(d),warnOnly:e,passed:f.test(),validator:f})},this);return b},getAdvice:function(a,b){return b.retrieve("advice-"+a)},insertAdvice:function(a,c){var b=c.get("validatorProps");if(!b.msgPos||!$(b.msgPos)){if(c.type.toLowerCase()=="radio"){c.getParent().adopt(a)}else{a.inject($(c),"after")}}else{$(b.msgPos).grab(a)}},validateField:function(h,g){var a=this.parent(h,g);if(this.options.scrollToErrorsOnSubmit&&!a){var c=$(this).getElement(".validation-failed");var e=$(this).getParent();var b=function(i){return i.getScrollSize().y!=i.getSize().y};var d;while(e!=document.body&&!b(e)){e=e.getParent()}var f=e.retrieve("fvScroller");if(!f&&window.Fx&&Fx.Scroll){f=new Fx.Scroll(e,{transition:"quad:out",offset:{y:-20}});e.store("fvScroller",f)}if(c){if(f){f.toElement(c)}else{e.scrollTo(e.getScroll().x,c.getPosition(e).y-20)}}}return a}});FormValidator.addAllThese([["validate-enforce-oncheck",{test:function(a,b){if(a.checked){var c=a.getParent("form").retrieve("validator");if(!c){return true}(b.toEnforce||$(b.enforceChildrenOf).getElements("input, select, textarea")).map(function(d){c.enforceField(d)})}return true}}],["validate-ignore-oncheck",{test:function(a,b){if(a.checked){var c=a.getParent("form").retrieve("validator");if(!c){return true}(b.toIgnore||$(b.ignoreChildrenOf).getElements("input, select, textarea")).each(function(d){c.ignoreField(d);c.resetField(d)})}return true}}],["validate-nospace",{errorMsg:function(){return FormValidator.getMsg("noSpace")},test:function(a,b){return!a.get("value").test(/\s/)}}],["validate-toggle-oncheck",{test:function(b,c){var d=b.getParent("form").retrieve("validator");if(!d){return true}var a=c.toToggle||$(c.toToggleChildrenOf).getElements("input, select, textarea");if(!b.checked){a.each(function(e){d.ignoreField(e);d.resetField(e)})}else{a.each(function(e){d.enforceField(e)})}return true}}],["validate-reqchk-bynode",{errorMsg:function(){return FormValidator.getMsg("reqChkByNode")},test:function(a,b){return($(b.nodeId).getElements(b.selector||"input[type=checkbox], input[type=radio]")).some(function(c){return c.checked})}}],["validate-required-check",{errorMsg:function(a,b){return b.useTitle?a.get("title"):FormValidator.getMsg("requiredChk")},test:function(a,b){return!!a.checked}}],["validate-reqchk-byname",{errorMsg:function(a,b){return FormValidator.getMsg("reqChkByName").substitute({label:b.label||a.get("type")})},test:function(b,d){var c=d.groupName||b.get("name");var a=$$(document.getElementsByName(c)).some(function(g,f){return g.checked});var e=b.getParent("form").retrieve("validator");if(a&&e){e.resetField(b)}return a}}],["validate-match",{errorMsg:function(a,b){return FormValidator.getMsg("match").substitute({matchName:b.matchName||$(b.matchInput).get("name")})},test:function(b,c){var d=b.get("value");var a=$(c.matchInput)&&$(c.matchInput).get("value");return d&&a?d==a:true}}],["validate-after-date",{errorMsg:function(a,b){return FormValidator.getMsg("afterDate").substitute({label:b.afterLabel||(b.afterElement?FormValidator.getMsg("startDate"):FormValidator.getMsg("currentDate"))})},test:function(b,c){var d=$(c.afterElement)?Date.parse($(c.afterElement).get("value")):new Date();var a=Date.parse(b.get("value"));return a&&d?a>=d:true}}],["validate-before-date",{errorMsg:function(a,b){return FormValidator.getMsg("beforeDate").substitute({label:b.beforeLabel||(b.beforeElement?FormValidator.getMsg("endDate"):FormValidator.getMsg("currentDate"))})},test:function(b,c){var d=Date.parse(b.get("value"));var a=$(c.beforeElement)?Date.parse($(c.beforeElement).get("value")):new Date();return a&&d?a>=d:true}}],["validate-custom-required",{errorMsg:function(){return FormValidator.getMsg("required")},test:function(a,b){return a.get("value")!=b.emptyValue}}],["validate-same-month",{errorMsg:function(a,b){var c=$(b.sameMonthAs)&&$(b.sameMonthAs).get("value");var d=a.get("value");if(d!=""){return FormValidator.getMsg(c?"sameMonth":"startMonth")}},test:function(a,b){var d=Date.parse(a.get("value"));var c=Date.parse($(b.sameMonthAs)&&$(b.sameMonthAs).get("value"));return d&&c?d.format("%B")==c.format("%B"):true}}]]);var OverText=new Class({Implements:[Options,Events,Class.Occlude],Binds:["reposition","assert","focus"],options:{element:"label",positionOptions:{position:"upperLeft",edge:"upperLeft",offset:{x:4,y:2}},poll:false,pollInterval:250},property:"OverText",initialize:function(b,a){this.element=$(b);if(this.occlude()){return this.occluded}this.setOptions(a);this.attach(this.element);OverText.instances.push(this);if(this.options.poll){this.poll()}return this},toElement:function(){return this.element},attach:function(){var a=this.options.textOverride||this.element.get("alt")||this.element.get("title");if(!a){return}this.text=new Element(this.options.element,{"class":"overTxtDiv",styles:{lineHeight:"normal",position:"absolute"},html:a,events:{click:this.hide.pass(true,this)}}).inject(this.element,"after");if(this.options.element=="label"){this.text.set("for",this.element.get("id"))}this.element.addEvents({focus:this.focus,blur:this.assert,change:this.assert}).store("OverTextDiv",this.text);window.addEvent("resize",this.reposition.bind(this));this.assert();this.reposition()},startPolling:function(){this.pollingPaused=false;return this.poll()},poll:function(a){if(this.poller&&!a){return this}var b=function(){if(!this.pollingPaused){this.assert()}}.bind(this);if(a){$clear(this.poller)}else{this.poller=b.periodical(this.options.pollInterval,this)}return this},stopPolling:function(){this.pollingPaused=true;return this.poll(true)},focus:function(){if(!this.text.isDisplayed()||this.element.get("disabled")){return}this.hide()},hide:function(){if(this.text.isDisplayed()&&!this.element.get("disabled")){this.text.hide();this.fireEvent("textHide",[this.text,this.element]);this.pollingPaused=true;try{this.element.fireEvent("focus").focus()}catch(a){}}return this},show:function(){if(!this.text.isDisplayed()){this.text.show();this.reposition();this.fireEvent("textShow",[this.text,this.element]);this.pollingPaused=false}return this},assert:function(){this[this.test()?"show":"hide"]()},test:function(){var a=this.element.get("value");return!a},reposition:function(){try{this.assert();if(!this.element.getParent()||!this.element.offsetHeight){return this.hide()}if(this.test()){this.text.position($merge(this.options.positionOptions,{relativeTo:this.element}))}}catch(a){}return this}});OverText.instances=[];OverText.update=function(){return OverText.instances.map(function(a){if(a.element&&a.text){return a.reposition()}return null})};if(window.Fx&&Fx.Reveal){Fx.Reveal.implement({hideInputs:Browser.Engine.trident?"select, input, textarea, object, embed, .overTxtDiv":false})}Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(b,a){this.elements=this.subject=$$(b);this.parent(a)},compute:function(g,h,j){var c={};for(var d in g){var a=g[d],e=h[d],f=c[d]={};for(var b in a){f[b]=this.parent(a[b],e[b],j)}}return c},set:function(b){for(var c in b){var a=b[c];for(var d in a){this.render(this.elements[c],d,a[d],this.options.unit)}}return this},start:function(c){if(!this.check(c)){return this}var h={},j={};for(var d in c){var f=c[d],a=h[d]={},g=j[d]={};for(var b in f){var e=this.prepare(this.elements[d],b,f[b]);a[b]=e.from;g[b]=e.to}}return this.parent(h,j)}});var Accordion=Fx.Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false,trigger:"click",initialDisplayFx:true},initialize:function(){var c=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});this.parent(c.elements,c.options);this.togglers=$$(c.togglers);this.container=$(c.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show}if(this.options.start){this.options.display=false;this.options.show=false}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity"}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth"}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight"}for(var b=0,a=this.togglers.length;b<a;b++){this.addSection(this.togglers[b],this.elements[b])}this.elements.each(function(e,d){if(this.options.show===d){this.fireEvent("active",[this.togglers[d],e])}else{for(var f in this.effects){e.setStyle(f,0)}}},this);if($chk(this.options.display)){this.display(this.options.display,this.options.initialDisplayFx)}},addSection:function(d,b){d=$(d);b=$(b);var e=this.togglers.contains(d);this.togglers.include(d);this.elements.include(b);var a=this.togglers.indexOf(d);d.addEvent(this.options.trigger,this.display.bind(this,a));if(this.options.height){b.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"})}if(this.options.width){b.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"})}b.fullOpacity=1;if(this.options.fixedWidth){b.fullWidth=this.options.fixedWidth}if(this.options.fixedHeight){b.fullHeight=this.options.fixedHeight}b.setStyle("overflow","hidden");if(!e){for(var c in this.effects){b.setStyle(c,0)}}return this},display:function(a,b){b=$pick(b,true);a=($type(a)=="element")?this.elements.indexOf(a):a;if((this.timer&&this.options.wait)||(a===this.previous&&!this.options.alwaysHide)){return this}this.previous=a;var c={};this.elements.each(function(f,e){c[e]={};var d=(e!=a)||(this.options.alwaysHide&&(f.offsetHeight>0));this.fireEvent(d?"background":"active",[this.togglers[e],f]);for(var g in this.effects){c[e][g]=d?0:f[this.effects[g]]}},this);return b?this.start(c):this.set(c)}});Fx.Move=new Class({Extends:Fx.Morph,options:{relativeTo:document.body,position:"center",edge:false,offset:{x:0,y:0}},start:function(a){return this.parent(this.element.position($merge(this.options,a,{returnPos:true})))}});Element.Properties.move={set:function(a){var b=this.retrieve("move");if(b){b.cancel()}return this.eliminate("move").store("move:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("move")){if(a||!this.retrieve("move:options")){this.set("move",a)}this.store("move",new Fx.Move(this,this.retrieve("move:options")))}return this.retrieve("move")}};Element.implement({move:function(a){this.get("move").start(a);return this}});Fx.Reveal=new Class({Extends:Fx.Morph,options:{styles:["padding","border","margin"],transitionOpacity:!Browser.Engine.trident4,mode:"vertical",display:"block",hideInputs:Browser.Engine.trident?"select, input, textarea, object, embed":false},dissolve:function(){try{if(!this.hiding&&!this.showing){if(this.element.getStyle("display")!="none"){this.hiding=true;this.showing=false;this.hidden=true;var d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});var g=(this.element.style.height===""||this.element.style.height=="auto");this.element.setStyle("display","block");if(this.options.transitionOpacity){d.opacity=1}var b={};$each(d,function(h,e){b[e]=[h,0]},this);var f=this.element.getStyle("overflow");this.element.setStyle("overflow","hidden");var a=this.options.hideInputs?this.element.getElements(this.options.hideInputs):null;this.$chain.unshift(function(){if(this.hidden){this.hiding=false;$each(d,function(h,e){d[e]=h},this);this.element.setStyles($merge({display:"none",overflow:f},d));if(g){if(["vertical","both"].contains(this.options.mode)){this.element.style.height=""}if(["width","both"].contains(this.options.mode)){this.element.style.width=""}}if(a){a.setStyle("visibility","visible")}}this.fireEvent("hide",this.element);this.callChain()}.bind(this));if(a){a.setStyle("visibility","hidden")}this.start(b)}else{this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("hide",this.element)}}else{if(this.options.link=="chain"){this.chain(this.dissolve.bind(this))}else{if(this.options.link=="cancel"&&!this.hiding){this.cancel();this.dissolve()}}}}catch(c){this.hiding=false;this.element.setStyle("display","none");this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("hide",this.element)}return this},reveal:function(){try{if(!this.showing&&!this.hiding){if(this.element.getStyle("display")=="none"||this.element.getStyle("visiblity")=="hidden"||this.element.getStyle("opacity")==0){this.showing=true;this.hiding=false;this.hidden=false;var g,d;this.element.measure(function(){g=(this.element.style.height===""||this.element.style.height=="auto");d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode})}.bind(this));$each(d,function(h,e){d[e]=h});if($chk(this.options.heightOverride)){d.height=this.options.heightOverride.toInt()}if($chk(this.options.widthOverride)){d.width=this.options.widthOverride.toInt()}if(this.options.transitionOpacity){this.element.setStyle("opacity",0);d.opacity=1}var b={height:0,display:this.options.display};$each(d,function(h,e){b[e]=0});var f=this.element.getStyle("overflow");this.element.setStyles($merge(b,{overflow:"hidden"}));var a=this.options.hideInputs?this.element.getElements(this.options.hideInputs):null;if(a){a.setStyle("visibility","hidden")}this.start(d);this.$chain.unshift(function(){this.element.setStyle("overflow",f);if(!this.options.heightOverride&&g){if(["vertical","both"].contains(this.options.mode)){this.element.style.height=""}if(["width","both"].contains(this.options.mode)){this.element.style.width=""}}if(!this.hidden){this.showing=false}if(a){a.setStyle("visibility","visible")}this.callChain();this.fireEvent("show",this.element)}.bind(this))}else{this.callChain();this.fireEvent("complete",this.element);this.fireEvent("show",this.element)}}else{if(this.options.link=="chain"){this.chain(this.reveal.bind(this))}else{if(this.options.link=="cancel"&&!this.showing){this.cancel();this.reveal()}}}}catch(c){this.element.setStyles({display:this.options.display,visiblity:"visible",opacity:1});this.showing=false;this.callChain.delay(10,this);this.fireEvent("complete",this.element);this.fireEvent("show",this.element)}return this},toggle:function(){if(this.element.getStyle("display")=="none"||this.element.getStyle("visiblity")=="hidden"||this.element.getStyle("opacity")==0){this.reveal()}else{this.dissolve()}return this}});Element.Properties.reveal={set:function(a){var b=this.retrieve("reveal");if(b){b.cancel()}return this.eliminate("reveal").store("reveal:options",$extend({link:"cancel"},a))},get:function(a){if(a||!this.retrieve("reveal")){if(a||!this.retrieve("reveal:options")){this.set("reveal",a)}this.store("reveal",new Fx.Reveal(this,this.retrieve("reveal:options")))}return this.retrieve("reveal")}};Element.Properties.dissolve=Element.Properties.reveal;Element.implement({reveal:function(a){this.get("reveal",a).reveal();return this},dissolve:function(a){this.get("reveal",a).dissolve();return this},nix:function(){var a=Array.link(arguments,{destroy:Boolean.type,options:Object.type});this.get("reveal",a.options).dissolve().chain(function(){this[a.destroy?"destroy":"dispose"]()}.bind(this));return this},wink:function(){var b=Array.link(arguments,{duration:Number.type,options:Object.type});var a=this.get("reveal",b.options);a.reveal().chain(function(){(function(){a.dissolve()}).delay(b.duration||2000)})}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(b,a){this.element=this.subject=$(b);this.parent(a);var d=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body)}var c=this.element;if(this.options.wheelStops){this.addEvent("start",function(){c.addEvent("mousewheel",d)},true);this.addEvent("complete",function(){c.removeEvent("mousewheel",d)},true)}},set:function(){var a=Array.flatten(arguments);this.element.scrollTo(a[0],a[1])},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a)})},start:function(c,h){if(!this.check(c,h)){return this}var e=this.element.getSize(),f=this.element.getScrollSize();var b=this.element.getScroll(),d={x:c,y:h};for(var g in d){var a=f[g]-e[g];if($chk(d[g])){d[g]=($type(d[g])=="number")?d[g].limit(0,a):a}else{d[g]=b[g]}d[g]+=this.options.offset[g]}return this.parent([b.x,b.y],[d.x,d.y])},toTop:function(){return this.start(false,0)},toLeft:function(){return this.start(0,false)},toRight:function(){return this.start("right",false)},toBottom:function(){return this.start(false,"bottom")},toElement:function(b){var a=$(b).getPosition(this.element);return this.start(a.x,a.y)}});Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical"},initialize:function(b,a){this.addEvent("complete",function(){this.open=(this.wrapper["offset"+this.layout.capitalize()]!=0);if(this.open&&Browser.Engine.webkit419){this.element.dispose().inject(this.wrapper)}},true);this.element=this.subject=$(b);this.parent(a);var c=this.element.retrieve("wrapper");this.wrapper=c||new Element("div",{styles:$extend(this.element.getStyles("margin","position"),{overflow:"hidden"})}).wraps(this.element);this.element.store("wrapper",this.wrapper).setStyle("margin",0);this.now=[];this.open=true},vertical:function(){this.margin="margin-top";this.layout="height";this.offset=this.element.offsetHeight},horizontal:function(){this.margin="margin-left";this.layout="width";this.offset=this.element.offsetWidth},set:function(a){this.element.setStyle(this.margin,a[0]);this.wrapper.setStyle(this.layout,a[1]);return this},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a)})},start:function(b,e){if(!this.check(b,e)){return this}this[e||this.options.mode]();var d=this.element.getStyle(this.margin).toInt();var c=this.wrapper.getStyle(this.layout).toInt();var a=[[d,c],[0,this.offset]];var g=[[d,c],[-this.offset,0]];var f;switch(b){case"in":f=a;break;case"out":f=g;break;case"toggle":f=(c==0)?a:g}return this.parent(f[0],f[1])},slideIn:function(a){return this.start("in",a)},slideOut:function(a){return this.start("out",a)},hide:function(a){this[a||this.options.mode]();this.open=false;return this.set([-this.offset,0])},show:function(a){this[a||this.options.mode]();this.open=true;return this.set([0,this.offset])},toggle:function(a){return this.start("toggle",a)}});Element.Properties.slide={set:function(b){var a=this.retrieve("slide");if(a){a.cancel()}return this.eliminate("slide").store("slide:options",$extend({link:"cancel"},b))},get:function(a){if(a||!this.retrieve("slide")){if(a||!this.retrieve("slide:options")){this.set("slide",a)}this.store("slide",new Fx.Slide(this,this.retrieve("slide:options")))}return this.retrieve("slide")}};Element.implement({slide:function(d,e){d=d||"toggle";var b=this.get("slide"),a;switch(d){case"hide":b.hide(e);break;case"show":b.show(e);break;case"toggle":var c=this.retrieve("slide:flag",b.open);b[c?"slideOut":"slideIn"](e);this.store("slide:flag",!c);a=true;break;default:b.start(d,e)}if(!a){this.eliminate("slide:flag")}return this}});var SmoothScroll=Fx.SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(b,c){c=c||document;this.doc=c.getDocument();var d=c.getWindow();this.parent(this.doc,b);this.links=this.options.links?$$(this.options.links):$$(this.doc.links);var a=d.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(f){if(f.href.indexOf(a)!=0){return}var e=f.href.substr(a.length);if(e){this.useLink(f,e)}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){d.location.hash=this.anchor},true)}},useLink:function(c,a){var b;c.addEvent("click",function(d){if(b!==false&&!b){b=$(a)||this.doc.getElement("a[name="+a+"]")}if(b){d.preventDefault();this.anchor=a;this.toElement(b);c.blur()}}.bind(this))}});Fx.Sort=new Class({Extends:Fx.Elements,options:{mode:"vertical"},initialize:function(b,a){this.parent(b,a);this.elements.each(function(c){if(c.getStyle("position")=="static"){c.setStyle("position","relative")}});this.setDefaultOrder()},setDefaultOrder:function(){this.currentOrder=this.elements.map(function(b,a){return a})},sort:function(e){if($type(e)!="array"){return false}var i=0;var a=0;var h={};var d=this.options.mode=="vertical";var f=this.elements.map(function(m,j){var l=m.getComputedSize({styles:["border","padding","margin"]});var n;if(d){n={top:i,margin:l["margin-top"],height:l.totalHeight};i+=n.height-l["margin-top"]}else{n={left:a,margin:l["margin-left"],width:l.totalWidth};a+=n.width}var k=d?"top":"left";h[j]={};var o=m.getStyle(k).toInt();h[j][k]=o||0;return n},this);this.set(h);e=e.map(function(j){return j.toInt()});if(e.length!=this.elements.length){this.currentOrder.each(function(j){if(!e.contains(j)){e.push(j)}});if(e.length>this.elements.length){e.splice(this.elements.length-1,e.length-this.elements.length)}}i=0;a=0;var b=0;var c={};e.each(function(l,j){var k={};if(d){k.top=i-f[l].top-b;i+=f[l].height}else{k.left=a-f[l].left;a+=f[l].width}b=b+f[l].margin;c[l]=k},this);var g={};$A(e).sort().each(function(j){g[j]=c[j]});this.start(g);this.currentOrder=e;return this},rearrangeDOM:function(a){a=a||this.currentOrder;var b=this.elements[0].getParent();var c=[];this.elements.setStyle("opacity",0);a.each(function(d){c.push(this.elements[d].inject(b).setStyles({top:0,left:0}))},this);this.elements.setStyle("opacity",1);this.elements=$$(c);this.setDefaultOrder();return this},getDefaultOrder:function(){return this.elements.map(function(b,a){return a})},forward:function(){return this.sort(this.getDefaultOrder())},backward:function(){return this.sort(this.getDefaultOrder().reverse())},reverse:function(){return this.sort(this.currentOrder.reverse())},sortByElements:function(a){return this.sort(a.map(function(b){return this.elements.indexOf(b)},this))},swap:function(c,b){if($type(c)=="element"){c=this.elements.indexOf(c)}if($type(b)=="element"){b=this.elements.indexOf(b)}var a=$A(this.currentOrder);a[this.currentOrder.indexOf(c)]=b;a[this.currentOrder.indexOf(b)]=c;this.sort(a)}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var b=Array.link(arguments,{options:Object.type,element:$defined});this.element=$(b.element);this.document=this.element.getDocument();this.setOptions(b.options||{});var a=$type(this.options.handle);this.handles=((a=="array"||a=="collection")?$$(this.options.handle):$(this.options.handle))||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};this.attach()},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);return this},start:function(c){if(this.options.preventDefault){c.preventDefault()}this.mouse.start=c.page;this.fireEvent("beforeStart",this.element);var a=this.options.limit;this.limit={x:[],y:[]};for(var d in this.options.modifiers){if(!this.options.modifiers[d]){continue}if(this.options.style){this.value.now[d]=this.element.getStyle(this.options.modifiers[d]).toInt()}else{this.value.now[d]=this.element[this.options.modifiers[d]]}if(this.options.invert){this.value.now[d]*=-1}this.mouse.pos[d]=c.page[d]-this.value.now[d];if(a&&a[d]){for(var b=2;b--;b){if($chk(a[d][b])){this.limit[d][b]=$lambda(a[d][b])()}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop)},check:function(a){if(this.options.preventDefault){a.preventDefault()}var b=Math.round(Math.sqrt(Math.pow(a.page.x-this.mouse.start.x,2)+Math.pow(a.page.y-this.mouse.start.y,2)));if(b>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",[this.element,a]).fireEvent("snap",this.element)}},drag:function(a){if(this.options.preventDefault){a.preventDefault()}this.mouse.now=a.page;for(var b in this.options.modifiers){if(!this.options.modifiers[b]){continue}this.value.now[b]=this.mouse.now[b]-this.mouse.pos[b];if(this.options.invert){this.value.now[b]*=-1}if(this.options.limit&&this.limit[b]){if($chk(this.limit[b][1])&&(this.value.now[b]>this.limit[b][1])){this.value.now[b]=this.limit[b][1]}else{if($chk(this.limit[b][0])&&(this.value.now[b]<this.limit[b][0])){this.value.now[b]=this.limit[b][0]}}}if(this.options.grid[b]){this.value.now[b]-=((this.value.now[b]-this.limit[b][0])%this.options.grid[b])}if(this.options.style){this.element.setStyle(this.options.modifiers[b],this.value.now[b]+this.options.unit)}else{this.element[this.options.modifiers[b]]=this.value.now[b]}}this.fireEvent("drag",[this.element,a])},cancel:function(a){this.document.removeEvent("mousemove",this.bound.check);this.document.removeEvent("mouseup",this.bound.cancel);if(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element)}},stop:function(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);if(a){this.fireEvent("complete",[this.element,a])}}});Element.implement({makeResizable:function(a){var b=new Drag(this,$merge({modifiers:{x:"width",y:"height"}},a));this.store("resizer",b);return b.addEvent("drag",function(){this.fireEvent("resize",b)}.bind(this))}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false,precalculate:false,includeMargins:true,checkDroppables:true},initialize:function(c,b){this.parent(c,b);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);if(this.container&&$type(this.container)!="element"){this.container=$(this.container.getDocument().body)}var a=this.element.getStyle("position");if(a=="static"){a="absolute"}if([this.element.getStyle("left"),this.element.getStyle("top")].contains("auto")){this.element.position(this.element.getPosition(this.element.offsetParent))}this.element.setStyle("position",a);this.addEvent("start",this.checkDroppables,true);this.overed=null},start:function(f){if(this.container){var b=this.container.getCoordinates(this.element.getOffsetParent()),c={},e={};["top","right","bottom","left"].each(function(g){c[g]=this.container.getStyle("border-"+g).toInt();e[g]=this.element.getStyle("margin-"+g).toInt()},this);var d=this.element.offsetWidth+e.left+e.right;var a=this.element.offsetHeight+e.top+e.bottom;if(this.options.includeMargins){$each(e,function(h,g){e[g]=0})}if(this.container==this.element.getOffsetParent()){this.options.limit={x:[0-e.left,b.right-c.left-c.right-d+e.right],y:[0-e.top,b.bottom-c.top-c.bottom-a+e.bottom]}}else{this.options.limit={x:[b.left+c.left-e.left,b.right-c.right-d+e.right],y:[b.top+c.top-e.top,b.bottom-c.bottom-a+e.bottom]}}}if(this.options.precalculate){this.positions=this.droppables.map(function(g){return g.getCoordinates()})}this.parent(f)},checkAgainst:function(c,b){c=(this.positions)?this.positions[b]:c.getCoordinates();var a=this.mouse.now;return(a.x>c.left&&a.x<c.right&&a.y<c.bottom&&a.y>c.top)},checkDroppables:function(){var a=this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=a){if(this.overed){this.fireEvent("leave",[this.element,this.overed])}if(a){this.fireEvent("enter",[this.element,a])}this.overed=a}},drag:function(a){this.parent(a);if(this.options.checkDroppables&&this.droppables.length){this.checkDroppables()}},stop:function(a){this.checkDroppables();this.fireEvent("drop",[this.element,this.overed,a]);this.overed=null;return this.parent(a)}});Element.implement({makeDraggable:function(a){var b=new Drag.Move(this,a);this.store("dragger",b);return b}});var Slider=new Class({Implements:[Events,Options],Binds:["clickedElement","draggedKnob","scrolledElement"],options:{onTick:function(a){if(this.options.snap){a=this.toPosition(this.step)}this.knob.setStyle(this.property,a)},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(f,a,e){this.setOptions(e);this.element=$(f);this.knob=$(a);this.previousChange=this.previousEnd=this.step=-1;var g,b={},d={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";g="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";g="offsetWidth"}this.half=this.knob[g]/2;this.full=this.element[g]-this.knob[g]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);d[this.axis]=this.property;b[this.axis]=[-this.options.offset,this.full-this.options.offset];this.bound={clickedElement:this.clickedElement.bind(this),scrolledElement:this.scrolledElement.bindWithEvent(this),draggedKnob:this.draggedKnob.bind(this)};var c={snap:0,limit:b,modifiers:d,onDrag:this.bound.draggedKnob,onStart:this.bound.draggedKnob,onBeforeStart:(function(){this.isDragging=true}).bind(this),onComplete:function(){this.isDragging=false;this.draggedKnob();this.end()}.bind(this)};if(this.options.snap){c.grid=Math.ceil(this.stepWidth);c.limit[this.axis][1]=this.full}this.drag=new Drag(this.knob,c);this.attach()},attach:function(){this.element.addEvent("mousedown",this.bound.clickedElement);if(this.options.wheel){this.element.addEvent("mousewheel",this.bound.scrolledElement)}this.drag.attach();return this},detach:function(){this.element.removeEvent("mousedown",this.bound.clickedElement);this.element.removeEvent("mousewheel",this.bound.scrolledElement);this.drag.detach();return this},set:function(a){if(!((this.range>0)^(a<this.min))){a=this.min}if(!((this.range>0)^(a>this.max))){a=this.max}this.step=Math.round(a);this.checkStep();this.fireEvent("tick",this.toPosition(this.step));this.end();return this},clickedElement:function(c){if(this.isDragging||c.target==this.knob){return}var b=this.range<0?-1:1;var a=c.page[this.axis]-this.element.getPosition()[this.axis]-this.half;a=a.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+b*this.toStep(a));this.checkStep();this.fireEvent("tick",a);this.end()},scrolledElement:function(a){var b=(this.options.mode=="horizontal")?(a.wheel<0):(a.wheel>0);this.set(b?this.step-this.stepSize:this.step+this.stepSize);a.stop()},draggedKnob:function(){var b=this.range<0?-1:1;var a=this.drag.value.now[this.axis];a=a.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+b*this.toStep(a));this.checkStep()},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent("change",this.step)}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"")}},toStep:function(a){var b=(a+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(b-=b%this.stepSize):b},toPosition:function(a){return(this.full*Math.abs(this.min-a))/(this.steps*this.stepSize)-this.options.offset}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false},initialize:function(a,b){this.setOptions(b);this.elements=[];this.lists=[];this.idle=true;this.addLists($$($(a)||a));if(!this.options.clone){this.options.revert=false}if(this.options.revert){this.effect=new Fx.Morph(null,$merge({duration:250,link:"cancel"},this.options.revert))}},attach:function(){this.addLists(this.lists);return this},detach:function(){this.lists=this.removeLists(this.lists);return this},addItems:function(){Array.flatten(arguments).each(function(a){this.elements.push(a);var b=a.retrieve("sortables:start",this.start.bindWithEvent(this,a));(this.options.handle?a.getElement(this.options.handle)||a:a).addEvent("mousedown",b)},this);return this},addLists:function(){Array.flatten(arguments).each(function(a){this.lists.push(a);this.addItems(a.getChildren())},this);return this},removeItems:function(){return $$(Array.flatten(arguments).map(function(a){this.elements.erase(a);var b=a.retrieve("sortables:start");(this.options.handle?a.getElement(this.options.handle)||a:a).removeEvent("mousedown",b);return a},this))},removeLists:function(){return $$(Array.flatten(arguments).map(function(a){this.lists.erase(a);this.removeItems(a.getChildren());return a},this))},getClone:function(b,a){if(!this.options.clone){return new Element("div").inject(document.body)}if($type(this.options.clone)=="function"){return this.options.clone.call(this,b,a,this.list)}return a.clone(true).setStyles({margin:"0px",position:"absolute",visibility:"hidden",width:a.getStyle("width")}).inject(this.list).position(a.getPosition(a.getOffsetParent()))},getDroppables:function(){var a=this.list.getChildren();if(!this.options.constrain){a=this.lists.concat(a).erase(this.list)}return a.erase(this.clone).erase(this.element)},insert:function(c,b){var a="inside";if(this.lists.contains(b)){this.list=b;this.drag.droppables=this.getDroppables()}else{a=this.element.getAllPrevious().contains(b)?"before":"after"}this.element.inject(b,a);this.fireEvent("sort",[this.element,this.clone])},start:function(b,a){if(!this.idle){return}this.idle=false;this.element=a;this.opacity=a.get("opacity");this.list=a.getParent();this.clone=this.getClone(b,a);this.drag=new Drag.Move(this.clone,{snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){b.stop();this.clone.setStyle("visibility","visible");this.element.set("opacity",this.options.opacity||0);this.fireEvent("start",[this.element,this.clone])}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,"before");this.drag.start(b)},end:function(){this.drag.detach();this.element.set("opacity",this.opacity);if(this.effect){var a=this.element.getStyles("width","height");var b=this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));this.effect.element=this.clone;this.effect.start({top:b.top,left:b.left,width:a.width,height:a.height,opacity:0.25}).chain(this.reset.bind(this))}else{this.reset()}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent("complete",this.element)},serialize:function(){var c=Array.link(arguments,{modifier:Function.type,index:$defined});var b=this.lists.map(function(d){return d.getChildren().map(c.modifier||function(e){return e.get("id")},this)},this);var a=c.index;if(this.lists.length==1){a=0}return $chk(a)&&a>=0&&a<this.lists.length?b[a]:b}});Request.JSONP=new Class({Implements:[Chain,Events,Options,Log],options:{url:"",data:{},retries:0,timeout:0,link:"ignore",callbackKey:"callback",injectScript:document.head},initialize:function(a){this.setOptions(a);this.running=false;this.requests=0;this.triesRemaining=[]},check:function(){if(!this.running){return true}switch(this.options.link){case"cancel":this.cancel();return true;case"chain":this.chain(this.caller.bind(this,arguments));return false}return false},send:function(c){if(!$chk(arguments[1])&&!this.check(c)){return this}var e=$type(c),a=this.options,b=$chk(arguments[1])?arguments[1]:this.requests++;if(e=="string"||e=="element"){c={data:c}}c=$extend({data:a.data,url:a.url},c);if(!$chk(this.triesRemaining[b])){this.triesRemaining[b]=this.options.retries}var d=this.triesRemaining[b];(function(){var f=this.getScript(c);this.log("JSONP retrieving script with url: "+f.get("src"));this.fireEvent("request",f);this.running=true;(function(){if(d){this.triesRemaining[b]=d-1;if(f){f.destroy();this.request(c,b);this.fireEvent("retry",this.triesRemaining[b])}}else{if(f&&this.options.timeout){f.destroy();this.cancel();this.fireEvent("failure")}}}).delay(this.options.timeout,this)}).delay(Browser.Engine.trident?50:0,this);return this},cancel:function(){if(!this.running){return this}this.running=false;this.fireEvent("cancel");return this},getScript:function(c){var b=Request.JSONP.counter,d;Request.JSONP.counter++;switch($type(c.data)){case"element":d=$(c.data).toQueryString();break;case"object":case"hash":d=Hash.toQueryString(c.data)}var e=c.url+(c.url.test("\\?")?"&":"?")+(c.callbackKey||this.options.callbackKey)+"=Request.JSONP.request_map.request_"+b+(d?"&"+d:"");if(e.length>2083){this.log("JSONP "+e+" will fail in Internet Explorer, which enforces a 2083 bytes length limit on URIs")}var a=new Element("script",{type:"text/javascript",src:e});Request.JSONP.request_map["request_"+b]=function(f){this.success(f,a)}.bind(this);return a.inject(this.options.injectScript)},success:function(b,a){if(a){a.destroy()}this.running=false;this.log("JSONP successfully retrieved: ",b);this.fireEvent("complete",[b]).fireEvent("success",[b]).callChain()}});Request.JSONP.counter=0;Request.JSONP.request_map={};Request.Queue=new Class({Implements:[Options,Events],Binds:["attach","request","complete","cancel","success","failure","exception"],options:{stopOnFailure:true,autoAdvance:true,concurrent:1,requests:{}},initialize:function(a){this.setOptions(a);this.requests=new Hash;this.addRequests(this.options.requests);this.queue=[];this.reqBinders={}},addRequest:function(a,b){this.requests.set(a,b);this.attach(a,b);return this},addRequests:function(a){$each(a,function(c,b){this.addRequest(b,c)},this);return this},getName:function(a){return this.requests.keyOf(a)},attach:function(a,b){if(b._groupSend){return this}["request","complete","cancel","success","failure","exception"].each(function(c){if(!this.reqBinders[a]){this.reqBinders[a]={}}this.reqBinders[a][c]=function(){this["on"+c.capitalize()].apply(this,[a,b].extend(arguments))}.bind(this);b.addEvent(c,this.reqBinders[a][c])},this);b._groupSend=b.send;b.send=function(c){this.send(a,c);return b}.bind(this);return this},removeRequest:function(b){var a=$type(b)=="object"?this.getName(b):b;if(!a&&$type(a)!="string"){return this}b=this.requests.get(a);if(!b){return this}["request","complete","cancel","success","failure","exception"].each(function(c){b.removeEvent(c,this.reqBinders[a][c])},this);b.send=b._groupSend;delete b._groupSend;return this},getRunning:function(){return this.requests.filter(function(a){return a.running})},isRunning:function(){return!!this.getRunning().getKeys().length},send:function(b,a){var c=function(){this.requests.get(b)._groupSend(a);this.queue.erase(c)}.bind(this);c.name=b;if(this.getRunning().getKeys().length>=this.options.concurrent||(this.error&&this.options.stopOnFailure)){this.queue.push(c)}else{c()}return this},hasNext:function(a){return(!a)?!!this.queue.length:!!this.queue.filter(function(b){return b.name==a}).length},resume:function(){this.error=false;(this.options.concurrent-this.getRunning().getKeys().length).times(this.runNext,this);return this},runNext:function(a){if(!this.queue.length){return this}if(!a){this.queue[0]()}else{var b;this.queue.each(function(c){if(!b&&c.name==a){b=true;c()}})}return this},runAll:function(){this.queue.each(function(a){a()});return this},clear:function(a){if(!a){this.queue.empty()}else{this.queue=this.queue.map(function(b){if(b.name!=a){return b}else{return false}}).filter(function(b){return b})}return this},cancel:function(a){this.requests.get(a).cancel();return this},onRequest:function(){this.fireEvent("request",arguments)},onComplete:function(){this.fireEvent("complete",arguments)},onCancel:function(){if(this.options.autoAdvance&&!this.error){this.runNext()}this.fireEvent("cancel",arguments)},onSuccess:function(){if(this.options.autoAdvance&&!this.error){this.runNext()}this.fireEvent("success",arguments)},onFailure:function(){this.error=true;if(!this.options.stopOnFailure&&this.options.autoAdvance){this.runNext()}this.fireEvent("failure",arguments)},onException:function(){this.error=true;if(!this.options.stopOnFailure&&this.options.autoAdvance){this.runNext()}this.fireEvent("exception",arguments)}});Request.implement({options:{initialDelay:5000,delay:5000,limit:60000},startTimer:function(b){var a=(function(){if(!this.running){this.send({data:b})}});this.timer=a.delay(this.options.initialDelay,this);this.lastDelay=this.options.initialDelay;this.completeCheck=function(c){$clear(this.timer);if(c){this.lastDelay=this.options.delay}else{this.lastDelay=(this.lastDelay+this.options.delay).min(this.options.limit)}this.timer=a.delay(this.lastDelay,this)};this.addEvent("complete",this.completeCheck);return this},stopTimer:function(){$clear(this.timer);this.removeEvent("complete",this.completeCheck);return this}});var Asset={javascript:function(f,d){d=$extend({onload:$empty,document:document,check:$lambda(true)},d);var b=new Element("script",{src:f,type:"text/javascript"});var e=d.onload.bind(b),a=d.check,g=d.document;delete d.onload;delete d.check;delete d.document;b.addEvents({load:e,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){e()}}}).set(d);if(Browser.Engine.webkit419){var c=(function(){if(!$try(a)){return}$clear(c);e()}).periodical(50)}return b.inject(g.head)},css:function(b,a){return new Element("link",$merge({rel:"stylesheet",media:"screen",type:"text/css",href:b},a)).inject(document.head)},image:function(c,b){b=$merge({onload:$empty,onabort:$empty,onerror:$empty},b);var d=new Image();var a=$(d)||new Element("img");["load","abort","error"].each(function(e){var f="on"+e;var g=b[f];delete b[f];d[f]=function(){if(!d){return}if(!a.parentNode){a.width=d.width;a.height=d.height}d=d.onload=d.onabort=d.onerror=null;g.delay(1,a,a);a.fireEvent(e,a,1)}});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1)}return a.set(b)},images:function(d,c){c=$merge({onComplete:$empty,onProgress:$empty,onError:$empty},c);d=$splat(d);var a=[];var b=0;return new Elements(d.map(function(e){return Asset.image(e,{onload:function(){c.onProgress.call(this,b,d.indexOf(e));b++;if(b==d.length){c.onComplete()}},onerror:function(){c.onError.call(this,b,d.indexOf(e));b++;if(b==d.length){c.onComplete()}}})}))}};var Color=new Native({initialize:function(b,c){if(arguments.length>=3){c="rgb";b=Array.slice(arguments,0,3)}else{if(typeof b=="string"){if(b.match(/rgb/)){b=b.rgbToHex().hexToRgb(true)}else{if(b.match(/hsb/)){b=b.hsbToRgb()}else{b=b.hexToRgb(true)}}}}c=c||"rgb";switch(c){case"hsb":var a=b;b=b.hsbToRgb();b.hsb=a;break;case"hex":b=b.hexToRgb(true);break}b.rgb=b.slice(0,3);b.hsb=b.hsb||b.rgbToHsb();b.hex=b.rgbToHex();return $extend(b,this)}});Color.implement({mix:function(){var a=Array.slice(arguments);var c=($type(a.getLast())=="number")?a.pop():50;var b=this.slice();a.each(function(d){d=new Color(d);for(var e=0;e<3;e++){b[e]=Math.round((b[e]/100*(100-c))+(d[e]/100*c))}});return new Color(b,"rgb")},invert:function(){return new Color(this.map(function(a){return 255-a}))},setHue:function(a){return new Color([a,this.hsb[1],this.hsb[2]],"hsb")},setSaturation:function(a){return new Color([this.hsb[0],a,this.hsb[2]],"hsb")},setBrightness:function(a){return new Color([this.hsb[0],this.hsb[1],a],"hsb")}});var $RGB=function(d,c,a){return new Color([d,c,a],"rgb")};var $HSB=function(d,c,a){return new Color([d,c,a],"hsb")};var $HEX=function(a){return new Color(a,"hex")};Array.implement({rgbToHsb:function(){var b=this[0],c=this[1],j=this[2];var g,f,h;var i=Math.max(b,c,j),e=Math.min(b,c,j);var k=i-e;h=i/255;f=(i!=0)?k/i:0;if(f==0){g=0}else{var d=(i-b)/k;var a=(i-c)/k;var l=(i-j)/k;if(b==i){g=l-a}else{if(c==i){g=2+d-l}else{g=4+a-d}}g/=6;if(g<0){g++}}return[Math.round(g*360),Math.round(f*100),Math.round(h*100)]},hsbToRgb:function(){var c=Math.round(this[2]/100*255);if(this[1]==0){return[c,c,c]}else{var a=this[0]%360;var e=a%60;var g=Math.round((this[2]*(100-this[1]))/10000*255);var d=Math.round((this[2]*(6000-this[1]*e))/600000*255);var b=Math.round((this[2]*(6000-this[1]*(60-e)))/600000*255);switch(Math.floor(a/60)){case 0:return[c,b,g];case 1:return[d,c,g];case 2:return[g,c,b];case 3:return[g,d,c];case 4:return[b,g,c];case 5:return[c,g,d]}}return false}});String.implement({rgbToHsb:function(){var a=this.match(/\d{1,3}/g);return(a)?a.rgbToHsb():null},hsbToRgb:function(){var a=this.match(/\d{1,3}/g);return(a)?a.hsbToRgb():null}});var Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={}},addEvent:function(b,a){this.checker[b]=this.checker[b]||{};this.events[b]=this.events[b]||[];if(this.events[b].contains(a)){return false}else{this.events[b].push(a)}this.instances.each(function(c,d){c.addEvent(b,this.check.bind(this,[b,c,d]))},this);return this},check:function(c,a,b){this.checker[c][b]=true;var d=this.instances.every(function(f,e){return this.checker[c][e]||false},this);if(!d){return}this.checker[c]={};this.events[c].each(function(e){e.call(this,this.instances,a)},this)}});Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(b,a){this.parent(b,a);this.load()},save:function(){var a=JSON.encode(this.hash);if(!a||a.length>4096){return false}if(a=="{}"){this.dispose()}else{this.write(a)}return true},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this}});Hash.each(Hash.prototype,function(b,a){if(typeof b=="function"){Hash.Cookie.implement(a,function(){var c=b.apply(this.hash,arguments);if(this.options.autoSave){this.save()}return c})}});var IframeShim=new Class({Implements:[Options,Events,Class.Occlude],options:{className:"iframeShim",display:false,zIndex:null,margin:0,offset:{x:0,y:0},browsers:(Browser.Engine.trident4||(Browser.Engine.gecko&&!Browser.Engine.gecko19&&Browser.Platform.mac))},property:"IframeShim",initialize:function(b,a){this.element=$(b);if(this.occlude()){return this.occluded}this.setOptions(a);this.makeShim();return this},makeShim:function(){if(this.options.browsers){var c=this.element.getStyle("zIndex").toInt();if(!c){var b=this.element.getStyle("position");if(b=="static"||!b){this.element.setStyle("position","relative")}this.element.setStyle("zIndex",c||1)}c=($chk(this.options.zIndex)&&c>this.options.zIndex)?this.options.zIndex:c-1;if(c<0){c=1}this.shim=new Element("iframe",{src:(window.location.protocol=="https")?"://0":"javascript:void(0)",scrolling:"no",frameborder:0,styles:{zIndex:c,position:"absolute",border:"none",filter:"progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"},"class":this.options.className}).store("IframeShim",this);var a=(function(){this.shim.inject(this.element,"after");this[this.options.display?"show":"hide"]();this.fireEvent("inject")}).bind(this);if(Browser.Engine.trident&&!IframeShim.ready){window.addEvent("load",a)}else{a()}}else{this.position=this.hide=this.show=this.dispose=$lambda(this)}},position:function(){if(!IframeShim.ready){return this}var a=this.element.measure(function(){return this.getSize()});if($type(this.options.margin)){a.x=a.x-(this.options.margin*2);a.y=a.y-(this.options.margin*2);this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin}if(this.shim){this.shim.set({width:a.x,height:a.y}).position({relativeTo:this.element,offset:this.options.offset})}return this},hide:function(){if(this.shim){this.shim.setStyle("display","none")}return this},show:function(){if(this.shim){this.shim.setStyle("display","block")}return this.position()},dispose:function(){if(this.shim){this.shim.dispose()}return this},destroy:function(){if(this.shim){this.shim.destroy()}return this}});window.addEvent("load",function(){IframeShim.ready=true});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(a,b){this.element.scrollTo(a,b)},fps:50},initialize:function(b,a){this.setOptions(a);this.element=$(b);this.listener=($type(this.element)!="element")?$(this.element.getDocument().body):this.element;this.timer=null;this.bound={attach:this.attach.bind(this),detach:this.detach.bind(this),getCoords:this.getCoords.bind(this)}},start:function(){this.listener.addEvents({mouseenter:this.bound.attach,mouseleave:this.bound.detach})},stop:function(){this.listener.removeEvents({mouseenter:this.bound.attach,mouseleave:this.bound.detach});this.timer=$clear(this.timer)},attach:function(){this.listener.addEvent("mousemove",this.bound.getCoords)},detach:function(){this.listener.removeEvent("mousemove",this.bound.getCoords);this.timer=$clear(this.timer)},getCoords:function(a){this.page=(this.listener.get("tag")=="body")?a.client:a.page;if(!this.timer){this.timer=this.scroll.periodical(Math.round(1000/this.options.fps),this)}},scroll:function(){var b=this.element.getSize(),a=this.element.getScroll(),f=this.element.getOffsets(),c=this.element.getScrollSize(),e={x:0,y:0};for(var d in this.page){if(this.page[d]<(this.options.area+f[d])&&a[d]!=0){e[d]=(this.page[d]-this.options.area-f[d])*this.options.velocity}else{if(this.page[d]+this.options.area>(b[d]+f[d])&&a[d]+b[d]!=c[d]){e[d]=(this.page[d]-b[d]+this.options.area-f[d])*this.options.velocity}}}if(e.y||e.x){this.fireEvent("change",[a.x+e.x,a.y+e.y])}}});var Tips=new Class({Implements:[Events,Options],options:{onShow:function(a){a.setStyle("visibility","visible")},onHide:function(a){a.setStyle("visibility","hidden")},title:"title",text:function(a){return a.get("rel")||a.get("href")},showDelay:100,hideDelay:100,className:null,offset:{x:16,y:16},fixed:false},initialize:function(){var a=Array.link(arguments,{options:Object.type,elements:$defined});if(a.options&&a.options.offsets){a.options.offset=a.options.offsets}this.setOptions(a.options);this.container=new Element("div",{"class":"tip"});this.tip=this.getTip();if(a.elements){this.attach(a.elements)}},getTip:function(){return new Element("div",{"class":this.options.className,styles:{visibility:"hidden",display:"none",position:"absolute",top:0,left:0}}).adopt(new Element("div",{"class":"tip-top"}),this.container,new Element("div",{"class":"tip-bottom"})).inject(document.body)},attach:function(b){var a=function(d,c){if(d==null){return""}return $type(d)=="function"?d(c):c.get(d)};$$(b).each(function(d){var e=a(this.options.title,d);d.erase("title").store("tip:native",e).retrieve("tip:title",e);d.retrieve("tip:text",a(this.options.text,d));var c=["enter","leave"];if(!this.options.fixed){c.push("move")}c.each(function(f){d.addEvent("mouse"+f,d.retrieve("tip:"+f,this["element"+f.capitalize()].bindWithEvent(this,d)))},this)},this);return this},detach:function(a){$$(a).each(function(c){["enter","leave","move"].each(function(d){c.removeEvent("mouse"+d,c.retrieve("tip:"+d)||$empty)});c.eliminate("tip:enter").eliminate("tip:leave").eliminate("tip:move");if($type(this.options.title)=="string"&&this.options.title=="title"){var b=c.retrieve("tip:native");if(b){c.set("title",b)}}},this);return this},elementEnter:function(b,a){$A(this.container.childNodes).each(Element.dispose);["title","text"].each(function(d){var c=a.retrieve("tip:"+d);if(!c){return}this[d+"Element"]=new Element("div",{"class":"tip-"+d}).inject(this.container);this.fill(this[d+"Element"],c)},this);this.timer=$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this,a);this.tip.setStyle("display","block");this.position((!this.options.fixed)?b:{page:a.getPosition()})},elementLeave:function(b,a){$clear(this.timer);this.tip.setStyle("display","none");this.timer=this.hide.delay(this.options.hideDelay,this,a)},elementMove:function(a){this.position(a)},position:function(d){var b=window.getSize(),a=window.getScroll(),e={x:this.tip.offsetWidth,y:this.tip.offsetHeight},c={x:"left",y:"top"},f={};for(var g in c){f[c[g]]=d.page[g]+this.options.offset[g];if((f[c[g]]+e[g]-a[g])>b[g]){f[c[g]]=d.page[g]-this.options.offset[g]-e[g]}}this.tip.setStyles(f)},fill:function(a,b){if(typeof b=="string"){a.set("html",b)}else{a.adopt(b)}},show:function(a){this.fireEvent("show",[this.tip,a])},hide:function(a){this.fireEvent("hide",[this.tip,a])}});MooTools.lang.set("en-US","Date",{months:["January","February","March","April","May","June","July","August","September","October","November","December"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dateOrder:["month","date","year"],shortDate:"%m/%d/%Y",shortTime:"%I:%M%p",AM:"AM",PM:"PM",ordinal:function(a){return(a>3&&a<21)?"th":["th","st","nd","rd","th"][Math.min(a%10,4)]},lessThanMinuteAgo:"less than a minute ago",minuteAgo:"about a minute ago",minutesAgo:"{delta} minutes ago",hourAgo:"about an hour ago",hoursAgo:"about {delta} hours ago",dayAgo:"1 day ago",daysAgo:"{delta} days ago",lessThanMinuteUntil:"less than a minute from now",minuteUntil:"about a minute from now",minutesUntil:"{delta} minutes from now",hourUntil:"about an hour from now",hoursUntil:"about {delta} hours from now",dayUntil:"1 day from now",daysUntil:"{delta} days from now"});MooTools.lang.set("en-US","FormValidator",{required:"This field is required.",minLength:"Please enter at least {minLength} characters (you entered {length} characters).",maxLength:"Please enter no more than {maxLength} characters (you entered {length} characters).",integer:"Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.",numeric:'Please enter only numeric values in this field (i.e. "1" or "1.1" or "-1" or "-1.1").',digits:"Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).",alpha:"Please use letters only (a-z) with in this field. No spaces or other characters are allowed.",alphanum:"Please use only letters (a-z) or numbers (0-9) only in this field. No spaces or other characters are allowed.",dateSuchAs:"Please enter a valid date such as {date}",dateInFormatMDY:'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")',email:'Please enter a valid email address. For example "fred@domain.com".',url:"Please enter a valid URL such as http://www.google.com.",currencyDollar:"Please enter a valid $ amount. For example $100.00 .",oneRequired:"Please enter something for at least one of these inputs.",errorPrefix:"Error: ",warningPrefix:"Warning: ",noSpace:"There can be no spaces in this input.",reqChkByNode:"No items are selected.",requiredChk:"This field is required.",reqChkByName:"Please select a {label}.",match:"This field needs to match the {matchName} field",startDate:"the start date",endDate:"the end date",currendDate:"the current date",afterDate:"The date should be the same or after {label}.",beforeDate:"The date should be the same or before {label}.",startMonth:"Please select a start month",sameMonth:"These two dates must be in the same month - you must change one or the other."});var OWR={};OWR=function(a,b,c,d){this.init(a,b,c,d)};OWR.prototype={currentId:0,pageOffset:0,menuTogglerStatus:0,isLoading:0,adding:'',period:0,TS:[],nbLogsLine:0,sortables:false,aAcc:{},lang:'',languages:['fr_FR','en_US'],messages:[],lastUpd:0,ttl:0,keywords:'',sort:'',dir:'',token:'',boardTogglerStatus:1,init:function(a,b,c,d){this.loading(true);if(!this.languages.contains(a)){a='en_US'}this.lang=a;this.ttl=b/1000;this.lastUpd=this.getTS();this.period=this.getLastNews.periodical(b,this);this.token=c;switch(this.lang){case'fr_FR':this.messages['Loading interface']="Chargement de l'interface";this.messages['Adding a category']="Ajout d'une catégorie";this.messages['Adding a stream']="Ajout d'un flux";this.messages['Searching for keywords']="Recherche des mots-clés";this.messages['Renaming the element']="Renomage de l'élément";this.messages['Moving the element']="Déplacement de l'élement";this.messages['Asking for the RSS gateway token']="Demande du lien pour la passerelle RSS";this.messages['Asking for the OPML gateway token']="Demande du lien pour la passerelle OPML";this.messages['Asking for the REST auth token']="Demande des identifiants de connexion REST";this.messages['Refreshing the interface']="Mise à jour de l'interface";this.messages['Marking news as read']="Marquage des nouvelles comme lues";this.messages['Refreshing the menu']="Mise à jour du menu";this.messages['Getting the news']="Récupération des nouvelles";this.messages['Asking for refreshing of streams']="Demande de mise à jour des flux";this.messages['Deleting']="Suppression";this.messages['Moving to page ']="Déplacement vers la page ";this.messages['Deleting news']="Suppression des nouvelles";this.messages['Making the maintenance.. please wait, it may take a while']="Maintenance en cours, celà peut prendre un certain temps";this.messages['Setting the new interface language']="Mise à jour de la langue de l'interface";this.messages['Getting the list of the users']="Récupération des données utilisateurs";this.messages['Wait wait ! A request is still running ! Please confirm you are leaving']="Attendez ! Attendez ! Une requête est toujours en cours ! Veuillez confirmer que vous partez";this.messages['Abort current request to the server ?']="Abandonner la requête en cours vers le serveur ?";this.messages['Delete ?']="Supprimer ?";this.messages['Getting contents of the category']="Récupération du contenu de la catégorie";this.messages['Getting details of the stream']="Récupération des détails du flux";this.messages['Getting contents of the new']="Récupération du contenu de la nouvelle";this.messages['Clearing myself, bye !']="Nettoyage en cours, à bientôt !";this.messages['Getting details of the new']="Récupération des informations de la nouvelle";this.messages['Marking news as unread']="Marquage des nouvelles comme non-lues";this.messages['Editing the url of the stream']="Édition de l'url du flux";this.messages['Editing tags']="Édition des tags";break;case'en_US':break;default:break}var n=this.setLog('Loading interface');this.setTS();this.initMenu(true);this.initContents();if(d!=="0"){this.currentId='search';this.initCurrent();$('menu_title_streams').getNext().toggle();$('keywords').set('value',d);$('menu_tools').getNext().toggle();$('do_search').status=1;$('contents_do_search').slide('in')}this.loading(false,n)},getMessage:function(a){return($defined(this.messages[a])?this.messages[a]:a)},initMenu:function(d){this.loading(true);if(d){$$('div.menu_actions_toggler').removeEvents('click').each(function(c){c.addEvent('click',function(e,a){e.stop();var b=a.get('id');if(!a.status){a.status=1;$('contents_'+b).setStyle('display','block').slide('in')}else{a.status=!a.status;$('contents_'+b).slide()}}.bindWithEvent(this,c))},this);$$('div.menu_actions_contents').each(function(a){a.slide('out')});$$('li.menu_part_title').each(function(a,k){var n=a.getNext();if(k>0){n.toggle()}a.removeEvents('click').addEvent('click',function(){this.toggle()}.bindWithEvent(n))})}else{this.initSortables()}this.loading(false)},gstreamsToggle:function(a,b){var c=$('groupContainer_'+a);if(!$defined(b.status)){if(!c){var e=$('stream_'+a);if(!e){return}e.adopt(new Element('ul',{'id':'groupContainer_'+a,'class':'menu_groups'}))}this.getMenuPartGroup(a)}else{b.setStyle('background-position',(b.status?'-303px 0px':'-319px 0px'));c.getParent().setStyle('height','auto');c.toggle();b.status=!b.status}},toggleBoard:function(){var a=$('board');if(this.boardTogglerStatus===0){$('menu').setStyle('top','75px');$('contents').setStyle('margin-top','80px');a.setStyle('display','block');$('board_toggler').setStyle('background-position','-692px 0px');this.boardTogglerStatus=1}else{$('menu').setStyle('top','0px');$('contents').setStyle('margin-top','0px');a.setStyle('display','none');$('board_toggler').setStyle('background-position','-675px 0px');this.boardTogglerStatus=0}},manageToggler:function(a){if(a||this.menuTogglerStatus===0){$('menu').setStyle('display','none');$('contents').setStyle('width','100%');$('menu_toggler').setStyle('background-position','-18px 0px');this.menuTogglerStatus=1}else{$('contents').setStyle('width','75%');$('menu').setStyle('display','block');$('menu_toggler').setStyle('background-position','0px 0px');this.menuTogglerStatus=0}},loadImage:function(a,b){this.loading(true);var c=a.getFirst();var p=a.getParent('div.article_contents');var d=p.getParent().getSize();var e=p.getSize();c.addEvent('load',function(){a.set('title',b);a.set('target','_blank');a.onclick=function(){this.set('href',b)};p.getParent().setStyle('height',d.y+(p.getSize().y-e.y));this.loading(false)}.bindWithEvent(this));c.set('src',b);a.set('class','')},initContents:function(){this.loading(true);$$('div[class^=article_title]').removeEvents('click').each(function(f){var g;f.addEvent('click',function(e,d){$clear(g);if(e.target.hasClass('link_go')){if(d.hasClass('new_container_nread')){this.updateNews(d.get('id').split('_')[1])}return false}if(e.target.hasClass('new_status')||e.target.hasClass('new_tag')||e.target.hasClass('new_tags')){return false}e.stop();g=(function(){var a=d.get('id').split('_');var b=$('new__'+a[1]+'_'+a[2]+'_'+a[3]);if(!b){return false}if(!b.get('html').trim()){this.getNew(d.get('id'))}else{var c=d.getStyle('color');if(!c||'white'===c||'#000000'===c||'#000'===c||'#ffffff'===c||'#FFFFFF'===c||'#fff'===c||'#ffffff'===c){d.setStyles({'background-color':'#BBBBBB','color':'black'})}else{d.setStyles({'background-color':'#666666','color':'white'})}b.toggle()}}).delay(200,this)}.bindWithEvent(this,f));f.addEvent('dblclick',function(e,a){if(e.target.hasClass('new_status')||e.target.hasClass('new_tag')||e.target.hasClass('new_tags')){return false}$clear(g);window.open(a.getFirst().getChildren('.link_go').get('href'));if(a.hasClass('new_container_nread')){this.updateNews(a.get('id').split('_')[1])}}.bindWithEvent(this,f))},this);this.loading(false)},setLogs:function(b,c){if(!b){return}$each(b,function(a){if('object'===typeof a){this.setLogs(a,c)}else{this.setLog(a,c)}},this)},parseResponse:function(a,b,c){if(a){if(a.location){window.location.href=a.location}if(a.logs){this.setLogs(a.logs)}if(a.errors){this.setLogs(a.errors,true)}if($defined(a.contents)){if(c){var c=$(c);if(c){c.empty();c.set('html',a.contents)}if(a.unreads){this.getUnread(a.unreads)}return''}if(a.unreads){this.getUnread(a.unreads)}return a.contents}else{if(c){var c=$(c);if(c){c.empty();c.set('html',a)}}if(a.unreads){this.getUnread(a.unreads)}}}else{if(b){this.setLog(b,true)}if(c){var c=$(c);if(c){c.empty()}}}return''},editStreamGroupsFormAction:function(){var f=$('editstreamgroup');var v=f.getChildren().getChildren('input[name=name]')[0].get('value');if(''===v){return false}this.loading(true);var n=this.setLog('Adding a category');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(e,n){this.loading(false,n);var f=this.parseResponse(e);f.id=f.id.toInt();$$('select[id^=move_]').each(function(b){var c=false;b.getChildren('option').each(function(a){if(a.get('value').toInt()===f.id){c=true}});if(!c){var d=new Element('option',{'value':f.id});d.appendText(v);d.inject(b)}});if(!$('stream_'+f.id)&&f.menu){var g=new Element('div');g.set('html',f.menu);$('menu_streams').grab(g.getFirst());if(!$$('a.anchor')){this.initMenu()}}}.bindWithEvent(this,n));r.post(f);return false},editStreamFormAction:function(){this.loading(true);var n=this.setLog('Adding a stream');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);if(b){var c=new Element('div',{'html':b});var d=c.getFirst();var e=d.get('id');var f=$(e);if(f){d.replaces(f)}else{d.inject('menu_streams')}this.initMenu()}}.bindWithEvent(this,n));r.post($('editstream'));return false},searchFormAction:function(d){var e='';if(d){e=$('search_'+d).get('value')}else{e=$('keywords').get('value');d=0}if(e===''){return false}this.loading(true);var n=this.setLog('Searching for keywords');this.setLog('"'+e+'"');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c){this.loading(false,n);this.parseResponse(a,null,'body_container');this.initContents();this.pageOffset=0;this.keywords=b;this.currentId='search_'+c;this.initCurrent();var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop()}.bindWithEvent(this,[n,e,d]));if(!d){r.post($('search_0'))}else{r.post({'do':'search','id':d,'keywords':e})}return false},searchStream:function(a){if(!a){return}this.loading(true);var b=$('search_'+a);var c=$('stream_toggler_'+a);if(!c){c=$('gstream_toggler_'+a)}if(b.getStyle('display')=='inline'){if(this.sortables){c.status?this.sortables.addItems(c.getParents()[1]):this.sortables.removeItems(c.getParents()[1])}b.setStyle('display','none')}else{if(this.sortables){this.sortables.removeItems(c.getParents()[1])}b.setStyle('display','inline')}this.loading(false)},raiseXHRError:function(a,n){this.loading(false,n,true);a=JSON.decode(a,true);if(a.errors){this.setLogs(a.errors,true)}if(a.unreads){this.getUnread(a.unreads)}},inputRename:function(g){this.loading(true);var h=g.get('value');if(h===''){g.setStyle('display','none');this.loading(false);return}var i=g.get('id').split('_')[1];var j=$('showStream_'+i).get('html');myRegexp=new RegExp('(.*?)( \\(<span id="unread_\\d+">\\d+</span>\\))','gi');var k=j.replace(myRegexp,h+"$2");if(j==k){g.setStyle('display','none');this.loading(false);return}var n=this.setLog('Renaming the element');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(e,n,f){this.loading(false,n);this.parseResponse(e);$('showStream_'+i).set('html',f);if($('stream_'+i).hasClass('groups')){f=f.replace(myRegexp,"$1");$$('select[id^=move_]').each(function(b){var c=false;b.getChildren('option').each(function(a){if(a.get('value').toInt()==i){a.set('html',f);c=true}});if(!c){var d=new Element('option',{'value':i});d.inject(b);d.appendText(f)}})}if(this.sortables&&!$('stream_toggler_'+i).status){this.sortables.addItems($('stream_'+i))}}.bindWithEvent(this,[n,k]));r.post({'do':'rename','name':g.get('value'),'id':i});g.setStyle('display','none')},inputEditStreamUrl:function(c){this.loading(true);var d=c.get('value');if(d===''){c.setStyle('display','none');this.loading(false);return}var e=c.get('id').split('_')[1];var f=c.getParents('.menu_groups')[0].get('id').split('_')[1];var n=this.setLog('Editing the url of the stream');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);this.parseResponse(a);this.getMenuPartGroup(b);this.showStream(0)}.bindWithEvent(this,[n,f]));r.post({'do':'editstream','url':c.get('value'),'id':e});c.setStyle('display','none')},selectMove:function(c){this.loading(true);var n=this.setLog('Moving the element');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);this.parseResponse(a);var s=$('stream_'+b.get('id').split('_')[1]);var o=$('gstream_toggler_'+b.get('value'));if(s&&o.status){s.inject($('groupContainer_'+b.get('value')))}else{s.destroy()}this.initMenu();this.initCurrent()}.bindWithEvent(this,[n,c]));r.post({'do':'move','id':c.get('id').split('_')[1],'gid':c.get('value')})},getRestAuthToken:function(){this.loading(true);var n=this.setLog('Asking for the REST auth token');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);prompt('',b)}.bindWithEvent(this,n));r.get({'do':'regeneraterestauthtoken'})},getRssToken:function(c){this.loading(true);var n=this.setLog('Asking for the RSS gateway token');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);prompt('',b)}.bindWithEvent(this,n));r.get({'do':'regeneratersstoken','id':c})},editOPML:function(){if($('opml').get('value').length){this.loading(true);var n=this.setLog('Adding a stream');var b=new Element('iframe');b.set({'id':'ieditopml','name':'ieditopml'});b.setStyles({'width':0,'height':0,'border':'none'});var f=$('editopml');f.set('action','./?do=editopml&token='+this.token);f.set('target','ieditopml');f.getParent().adopt(b);b.addEvent('load',function(e,n){this.loading(false,n);$('ieditopml').destroy();window.location='./?token='+this.token}.bindWithEvent(this,n));f.submit()}else{var v=$('url').get('value');if(!v){return false}this.loading(true);var n=this.setLog('Adding a stream');var r=new Request.JSON({'url':'./?do=editopml&token='+this.token});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.post($('editopml'))}return false},getOpmlToken:function(c){this.loading(true);var n=this.setLog('Asking for the OPML gateway token');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);var b=this.parseResponse(a);prompt('',b)}.bindWithEvent(this,n));r.get({'do':'regenerateopmltoken','id':c})},initCurrent:function(){this.loading(true);if(typeof(this.currentId)==='string'&&-1!==this.currentId.indexOf("search_")){var a=this.currentId.split('_')[1].toInt();$$('a[id^=current_]').setStyle('display','none');if(!a){$('current_search').setStyle('display','block')}else{$('current_'+a).setStyle('display','block')}}else{$$('a[id^=current_]').setStyle('display','none');$('current_'+this.currentId).setStyle('display','block')}this.loading(false)},initSortables:function(){if(this.sortables){delete this.sortables}this.sortables=new Sortables($$('ul.menu_groups'),{clone:true,revert:true,onStart:function(e){this.currentgid=e.getParent().get('id').split('_')[1].toInt()}});this.sortables.addEvent('complete',function(e,a){if(!a.currentgid){return}var b=e.getParent().get('id').split('_')[1].toInt();if(b===a.currentgid){a.currentgid=0;return}var c=e.get('id').split('_')[1];a.currentgid=0;this.moveSortables(c,b)}.bindWithEvent(this,this.sortables))},streamsToggle:function(a,b){var c=$('streamContainer_'+a);if(!$defined(b.status)){if(!c){var e=$('stream_'+a);if(!e){return}e.adopt(new Element('ul',{'id':'streamContainer_'+a,'class':'stream_more'}))}this.getMenuPartStream(a);if(this.sortables){this.sortables.removeItems(b.getParents()[1])}}else{b.setStyle('background-position',(b.status?'-303px 0px':'-319px 0px'));b.getParents()[2].setStyle('height','auto');c.toggle();if(this.sortables){b.status?this.sortables.addItems(b.getParents()[1]):this.sortables.removeItems(b.getParents()[1])}b.status=!b.status}},moveSortables:function(c,d){if(!c||!d){return}this.loading(true);var n=this.setLog('Moving the element');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.post({'do':'move','id':c,'gid':d})},loading:function(a,b,c){if(a){if(!this.isLoading){$('logo').set('src','./images/images.php?f=owr_loading.gif')}++this.isLoading}else{if(this.isLoading>0){--this.isLoading}if(!this.isLoading){$('logo').set('src','./images/images.php?f=owr_50_50.png')}if($chk(b)){b=b.toInt();var d=$('logs').getChildren()[b];if(d){d.set('html','<span style="color:'+(c?'red':'green')+'">'+d.get('html')+'</span>')}}}},editStreamUrl:function(a){if(!a){return}this.loading(true);var b=$('editurl_'+a);if(b.getStyle('display')=='inline'){b.setStyle('display','none');if(this.sortables&&!$('stream_toggler_'+a).status){this.sortables.addItems(b.getParents('li[id^=stream_]')[0])}}else{if(this.sortables){this.sortables.removeItems(b.getParents('li[id^=stream_]')[0])}b.setStyle('display','inline')}this.loading(false)},renameStream:function(a){if(!a){return}this.loading(true);var b=$('rename_'+a);if(b.getStyle('display')=='inline'){b.setStyle('display','none');if(this.sortables&&!$('stream_toggler_'+a).status){this.sortables.addItems(b.getParents('li[id^=stream_]')[0])}}else{if(this.sortables){this.sortables.removeItems(b.getParents('li[id^=stream_]')[0])}b.setStyle('display','inline')}this.loading(false)},moveStream:function(a){if(!a){return}this.loading(true);var b=$('move_'+a);b.setStyle('display',b.getStyle('display')=='inline'?'none':'inline');this.loading(false)},getUnread:function(d){this.loading(true);if(!d){var n=this.setLog('Refreshing the interface');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(c,n){this.loading(false,n);$$('span[id^=unread_]').each(function(a){var b=a.get('id').split('_');if(c.contents[b[1]]){a.set('html',c.contents[b[1]]);a.getParent().setStyle('font-weight','bold')}else{a.set('html','0');a.getParent().setStyle('font-weight','')}});this.lastUpd=this.getTS()}.bindWithEvent(this,n));r.get({'do':'getunread'})}else{$$('span[id^=unread_]').each(function(a){var b=a.get('id').split('_');if(d[b[1]]){a.set('html',d[b[1]]);a.getParent().setStyle('font-weight','bold')}else{a.set('html','0');a.getParent().setStyle('font-weight','normal')}});this.lastUpd=this.getTS();this.loading(false)}},updateNews:function(f,g){var h=0;if('page'==f){f=[];$$('div.new_container_nread').each(function(a){this.push(a.get('id').split('_')[1])},f);if(!f.length){return}}else{if(g){h=$$('div[id^=new_'+f+']')[0].hasClass('new_container_read')?1:0}}this.loading(true);var n=this.setLog(h?'Marking news as unread':'Marking news as read');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(c,n,d){this.loading(false,n);this.parseResponse(c);if(this.currentId===0&&f===0){$('body_container').empty();this.pageOffset=0}else{if('object'===typeof f||f===this.currentId){$$('div.new_container_nread]').removeClass('new_container_nread').addClass('new_container_read');$$('a[id^=imgnew]').setStyle('display','none');if('object'===typeof f&&(0===this.currentId||this.sort)){--this.pageOffset}}else{var e=0;if(0===f.toInt()){$$('div.new_container_nread').each(function(a){a.removeClass('new_container_nread').addClass('new_container_read');++e})}else{if(d){$$('div.new_container_read').each(function(a){var b=a.get('id').split('_');if(b[1]==f||b[2]==f||b[3]==f){a.removeClass('new_container_read').addClass('new_container_nread');$('imgnew_'+f).setStyle('display','block')}})}else{$$('div.new_container_nread').each(function(a){var b=a.get('id').split('_');if(b[1]==f||b[2]==f||b[3]==f){a.removeClass('new_container_nread').addClass('new_container_read');$('imgnew_'+f).setStyle('display','none');++e}})}}if(e>0&&(0===this.currentId||this.sort)){--this.pageOffset}}}}.bindWithEvent(this,[n,h]));if('object'===typeof f){r.get({'ids':f,'do':'upnew','currentid':this.currentId,'status':h})}else{r.get({'id':f,'do':'upnew','currentid':this.currentId,'status':h,'timestamp':this.getCurrentTS(f)})}},clearLogs:function(){$('logs').empty();this.nbLogsLine=0},showStream:function(e,f,g){this.loading(true);if(!e){e=0}var n=this.setLog('Getting the news');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c,d){this.loading(false,n);this.currentId=d;this.initCurrent();this.parseResponse(a,null,'body_container');this.initContents();var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop();this.setTS();this.pageOffset=0;this.sort=b;this.dir=c}.bindWithEvent(this,[n,f,g,e]));if(typeof e==='string'&&-1!==e.indexOf('search_')){e=e.split('_')[1];r.get({'do':'search','keywords':this.keywords,'offset':this.pageOffset,'sort':f,'dir':g,'id':e})}else{r.get({'id':e,'do':'getstream','sort':f,'dir':g})}},refreshStream:function(c,d){this.loading(true);if(!c){c=0}if(!d){d=0}else{if(d!==0&&d!==1){if(d==="true"){d=1}else{d=0}}}var n=this.setLog('Asking for refreshing of streams');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.get({'id':c,'do':'refreshstream','currentid':this.currentId,'force':d})},deleteStream:function(f){if(!confirm(this.getMessage('Delete ?'))){return}if(!f){f=0}this.loading(true);var n=this.setLog('Deleting');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(c,n){this.loading(false,n);if(0!==f&&(f==this.currentId||0===this.currentId)){this.parseResponse(c,null,'body_container');this.initContents()}else{if(0===f){$('body_container').empty();$('menu_streams').getChildren().each(function(a){if('stream_0'!=a.get('id')){a.destroy()}});$$('select[id^=move_]').each(function(b){b.getChildren('option').each(function(a){a.destroy()})})}this.parseResponse(c)}if(0!==f){if($('stream_'+f)){$('stream_'+f).destroy();$$('select[id^=move_]').each(function(b){b.getChildren('option').each(function(a){if(a.get('value').toInt()===f){a.destroy()}})})}var d=$$('div[id^=new_\d+]');var e=[];d.each(function(a){e=a.get('id').split('_');if(e[1]==f||e[2]==f||e[3]==f){a.destroy();$('new__'+f[1]+'_'+f[2]+'_'+f[3]).destroy()}})}if(f==this.currentId){this.currentId=0}}.bindWithEvent(this,n));r.get({'do':'delete','id':f,'currentid':this.currentId})},deleteUser:function(c){if(!c){return}if(!confirm(this.getMessage('Delete ?'))){return}this.loading(true);var n=this.setLog('Deleting');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);$('user_'+b).destroy()}.bindWithEvent(this,[n,c]));r.get({'do':'delete','id':c})},deleteNew:function(c){if(!c){return}if(!confirm(this.getMessage('Delete ?'))){return}this.loading(true);var n=this.setLog('Deleting');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);$$('id^=new__?'+b).destroy()}.bindWithEvent(this,[n,c]));r.get({'do':'delete','id':c})},moveToPage:function(c){if(!c){c=0}if(this.pageOffset==c){return}this.loading(true);if('next'===c){c=this.pageOffset>=0?this.pageOffset+1:0}else{if('prev'===c){c=this.pageOffset>0?this.pageOffset-1:0}}var n=this.setLog(['Moving to page ',c+1]);var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);$$('div.links[id^=moveToPage_]').destroy();this.parseResponse(a,null,'body_container');this.initContents();var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop();this.pageOffset=c}.bindWithEvent(this,n));if(typeof this.currentId==='string'&&-1!==this.currentId.indexOf('search_')){r.get({'do':'search','keywords':this.keywords,'offset':c,'sort':this.sort,'dir':this.dir,'id':this.currentId.split('_')[1]})}else{r.get({'do':'getstream','id':this.currentId,'offset':c,'sort':this.sort,'dir':this.dir})}},clearStream:function(c){if(!confirm(this.getMessage('Delete ?'))){return}this.loading(true);var n=this.setLog('Deleting news');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'body_container');this.initContents()}.bindWithEvent(this,n));r.get({'do':'clearstream','id':c,'currentid':this.currentId})},askMaintenance:function(){this.loading(true);var n=this.setLog('Making the maintenance.. please wait, it may take a while');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a)}.bindWithEvent(this,n));r.get({'do':'maintenance'})},setLog:function(b,c){if(!b){return}var d=new Element('li');var e=new Element('span');if(c){e.set('class','error')}var f=new Date();var h=f.getHours();var m=f.getMinutes();var s=f.getSeconds();e.appendText((h<10?'0'+h.toString():h)+':'+(m<10?'0'+m.toString():m)+':'+(s<10?'0'+s.toString():s)+' ');if("string"!==(typeof b)){b.each(function(a){if($defined(this.messages[a])){a=this.messages[a]}e.appendText(a)},this)}else{if($defined(this.messages[b])){b=this.messages[b]}e.appendText(b)}d.adopt(e);++this.nbLogsLine;d.set('id','logging_line_'+this.nbLogsLine);if(!$('logs')){$('logs_container').adopt(new Element('ul',{'id':'logs'}))}$('logs').adopt(d);if(this.nbLogsLine>3){var s=new Fx.Scroll($('logs_container'),{duration:1});s.toElement(d)}return(this.nbLogsLine-1)},setLang:function(c){this.loading(true);var n=this.setLog('Setting the new interface language');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);if(!a.errors){window.location.href='./?token='+this.token;return}this.parseResponse(a)}.bindWithEvent(this,n));r.post({'do':'changelang','newlang':c})},getUsersList:function(){this.loading(true);var n=this.setLog('Getting the list of the users');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'body_container');this.currentId=0;var s=new Fx.Scroll(document.body,{'wheelStops':true});s.toTop()}.bindWithEvent(this,n));r.get({'do':'getusers'})},getLastNews:function(){if((this.lastUpd+this.ttl)>this.getTS()){return}this.loading(true);var n=this.setLog('Refreshing the interface');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);if(0===this.currentId){this.parseResponse(a)}else{this.parseResponse(a)}}.bindWithEvent(this,n));r.get({'do':'getlastnews','currentid':this.currentId})},confirmExit:function(){if(this.isLoading){this.setLog('Wait wait ! A request is still running ! Please confirm you are leaving',true);if(!confirm('Abort current request to the server ?')){return false}}return true},getMenuPartGroup:function(c){if(!c){return}this.loading(true);var n=this.setLog('Getting contents of the category');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'groupContainer_'+c);this.initSortables();$('gstream_toggler_'+c).setStyle('background-position','-319px 0px').status=1;$('groupContainer_'+c).setStyle('display','block').getParent().setStyle('height','auto')}.bindWithEvent(this,n));r.get({'do':'getmenupartgroup','id':c})},getMenuPartStream:function(c){if(!c){return}this.loading(true);var n=this.setLog('Getting details of the stream');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n){this.loading(false,n);this.parseResponse(a,null,'streamContainer_'+c);$('stream_toggler_'+c).setStyle('background-position','-319px 0px').status=1;$('streamContainer_'+c).setStyle('display','block').getParents()[2].setStyle('height','auto')}.bindWithEvent(this,n));r.get({'do':'getmenupartstream','id':c})},getNewDetails:function(d,e){if(!d){return false}if(!e.status){this.loading(true);var n=this.setLog('Getting details of the new');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c){this.loading(false,n);this.parseResponse(a,null,'new_details_'+c);$('new_details_'+c).toggle();addthis.button('#addthis_'+c,{'ui_cobrand':'OWR','data_use_cookies':false,'data_use_flash':false});b.status=1}.bindWithEvent(this,[n,e,d]));r.get({'do':'getnewdetails','id':d})}else{$('new_details_'+d).toggle()}},getTS:function(){return Math.floor((new Date()).getTime()/1000)},setTS:function(a){if(a){this.TS[a]=this.getTS()}else{this.TS[this.currentId]=this.getTS()}},getCurrentTS:function(a){if(a){if($defined(this.TS[a])){return this.TS[a]}}else{if($defined(this.TS[this.currentId])){return this.TS[this.currentId]}}return 0},getNew:function(h){if(!h){return}this.loading(true);var n=this.setLog('Getting contents of the new');var i=$(h);var j=i.hasClass('new_container_nread')?1:0;var k=h.split('_');idc=i.getNext();var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b,c,d,e){this.loading(false,n);var f=this.parseResponse(a);if(f){c.set('html',f).toggle();e.removeClass('new_container_nread').addClass('new_container_read').setStyles({'background-color':'#666666','color':'white'})}var g=$('imgnew_'+b[1]);if(g){g.setStyle('display','none')}if(0===this.currentId){--this.pageOffset}}.bindWithEvent(this,[n,k,idc,j,i]));r.get({'do':'getnewcontents','id':k[1],'live':j,'currentid':this.currentId,'offset':this.pageOffset})},editTags:function(a){var b=$('edit_tags_'+a);if(!b){return}if(b.hasClass('hidden')){b.removeClass('hidden')}else{b.addClass('hidden')}},inputEditTags:function(e,f){var n=this.setLog('Editing tags');var r=new Request.JSON({url:'./?token='+this.token,onSuccess:function(a,b){if(!a){this.parseResponse(null,b)}}.bindWithEvent(this)});r.addEvent('failure',function(a,n){this.raiseXHRError(a.responseText,n)}.bindWithEvent(this,n));r.addEvent('success',function(a,n,b){this.loading(false,n);var c=this.parseResponse(a);if(c){var d=new Element('div',{'html':c});$('menu_tags').adopt(d.getChildren())}this.editTags(b)}.bindWithEvent(this,[n,f]));r.post({'do':'edittagsrelations','ids':f,'name':e.get('value')})},clear:function(){this.setLog('Clearing myself, bye !');if($chk(this.period)){$clear(this.period)}delete this.period;delete this.currentId;delete this.pageOffset;delete this.menuTogglerStatus;delete this.isLoading;if($chk(this.adding)){delete this.adding}delete this.aAcc;delete this.TS;delete this.nbLogsLine;delete this.sortables;delete this.lang;delete this.adding;delete this.languages;delete this.messages;delete this.lastUpd;delete this.ttl;delete this.keywords;delete this.sort;delete this.dir;delete this.token;delete this.boardTogglerStatus;return true}}; 
    4949<?php  
    5050switch($encoding) 
  • js/owr_nominify.js

    r012c49 r077f3f  
    897897                this.messages['Marking news as unread'] = "Marquage des nouvelles comme non-lues"; 
    898898                this.messages['Editing the url of the stream'] = "Édition de l'url du flux"; 
     899                this.messages['Editing tags'] = "Édition des tags"; 
    899900            break; 
    900901            case 'en_US': // don't need here, messages are by default in english 
     
    10271028            item.addEvent('click', function(e, el) { 
    10281029                $clear(timer); 
    1029                 if(e.target.get('class') === 'link_go' || e.target.hasClass('new_status')) {return;} 
     1030                if(e.target.hasClass('link_go')) { 
     1031                    if(el.hasClass('new_container_nread')) { 
     1032                        this.updateNews(el.get('id').split('_')[1]); 
     1033                    } 
     1034                    return false; 
     1035                } 
     1036                if(e.target.hasClass('new_status') || e.target.hasClass('new_tag') || e.target.hasClass('new_tags')) {return false;} 
    10301037                e.stop(); 
    10311038                timer = (function(){ 
    10321039                    var id = el.get('id').split('_'); 
    10331040                    var element = $('new__'+id[1]+'_'+id[2]+'_'+id[3]); 
    1034                     if(!element) {return;} // hu ? 
     1041                    if(!element) {return false;} // hu ? 
    10351042                    if(!element.get('html').trim()) { 
    10361043                        this.getNew(el.get('id')); 
     
    10471054            }.bindWithEvent(this, item)); 
    10481055            item.addEvent('dblclick', function(e, el) { 
     1056                if(e.target.hasClass('new_status') || e.target.hasClass('new_tag') || e.target.hasClass('new_tags')) {return false;} 
    10491057                $clear(timer); 
    10501058                window.open(el.getFirst().getChildren('.link_go').get('href')); 
     
    18971905        r.get({'do': 'delete', 'id': id}); 
    18981906    }, 
     1907    deleteNew: function(id) { 
     1908        if(!id) { return; } 
     1909        if(!confirm(this.getMessage('Delete ?'))) { 
     1910            return; 
     1911        } 
     1912        this.loading(true); 
     1913        var n = this.setLog('Deleting'); 
     1914        var r = new Request.JSON({ 
     1915            url: './?token='+this.token, 
     1916            onSuccess: function(json, text) { 
     1917                if(!json) { 
     1918                    this.parseResponse(null, text); 
     1919                } 
     1920            }.bindWithEvent(this) 
     1921        }); 
     1922        r.addEvent('failure', function(xhr, n) { 
     1923            this.raiseXHRError(xhr.responseText, n); 
     1924        }.bindWithEvent(this, n)); 
     1925        r.addEvent('success', function(json, n, id){ 
     1926            this.loading(false, n); 
     1927            $$('id^=new__?'+id).destroy(); 
     1928        }.bindWithEvent(this, [n, id])); 
     1929        r.get({'do': 'delete', 'id': id}); 
     1930    }, 
    18991931    moveToPage: function(offset) { 
    19001932        if(!offset) { offset = 0; } 
     
    22252257        }.bindWithEvent(this, [n, ids, idc, live, el])); 
    22262258        r.get({'do': 'getnewcontents', 'id': ids[1], 'live': live, 'currentid': this.currentId, 'offset':this.pageOffset}); 
     2259    }, 
     2260    editTags: function(id) { 
     2261        var tags = $('edit_tags_'+id); 
     2262        if(!tags) { 
     2263            return; 
     2264        } 
     2265        if(tags.hasClass('hidden')) { 
     2266            tags.removeClass('hidden'); 
     2267        } else { 
     2268            tags.addClass('hidden'); 
     2269        } 
     2270    }, 
     2271    inputEditTags: function(obj, id) { 
     2272        var n = this.setLog('Editing tags'); 
     2273        var r = new Request.JSON({ 
     2274            url: './?token='+this.token, 
     2275            onSuccess: function(json, text) { 
     2276                if(!json) { 
     2277                    this.parseResponse(null, text); 
     2278                } 
     2279            }.bindWithEvent(this) 
     2280        }); 
     2281        r.addEvent('failure', function(xhr, n) { 
     2282            this.raiseXHRError(xhr.responseText, n); 
     2283        }.bindWithEvent(this, n)); 
     2284        r.addEvent('success', function(json, n, id){ 
     2285            this.loading(false, n); 
     2286            var contents = this.parseResponse(json); 
     2287            if(contents) { 
     2288                var div = new Element('div',{'html':contents}); 
     2289                $('menu_tags').adopt(div.getChildren()); 
     2290            } 
     2291            this.editTags(id); 
     2292        }.bindWithEvent(this, [n,id])); 
     2293        r.post({'do': 'edittagsrelations', 'ids': id, 'name': obj.get('value')}); 
    22272294    }, 
    22282295    clear: function() { 
Note: See TracChangeset for help on using the changeset viewer.