window.addEvents({

    'domready' : function() {

        var base_ = $$('body')[0].getProperty('class').split('#');
        base_url = base_[0];
        base_style = base_url + 'static/styles/'+base_[1]+'/';

    /* -- make ie6 pretty -- */

        if( Browser.Engine.version == 4 && Browser.Engine.trident ) {
            
            $$('img[src$=png]').setStyle( 'behavior' , 'url(' + base_url + 'static/styles/iepngfix.htc)' );
        
            $$('input[type=text]').addClass('text');
            $$('input[type=file]').addClass('text');
            $$('input[type=password]').addClass('text');
            $$('input[type=text]').addClass('l');
            $$('input[type=file]').addClass('l');
            $$('input[type=password]').addClass('l');
            
            $$('input[class=s]').removeClass('l');
            $$('input[class=ms]').removeClass('l');
            $$('input[class=m]').removeClass('l');
            $$('input[class=ml]').removeClass('l');
            
        }
        
    /* -- hook page elements  -- */

        if( $$('.wysiwyg').length > 0 ) new Asset.javascript(base_url+'static/javascript/libs/ckeditor/ckeditor.js'); // wysiwyg editor
        
        var smoothscroll_ = new SmoothScroll(); // scroll to #id
        var tips_ = new Tips('.tippit').hide(); // tool tips
        
        $$('a[rel=external]').setProperty( 'target' , '_blank' );                                   // open link in new window (gets around validator disallowing target=_blank)
        $$('body')[0].addEvent( 'click' , function() { if( $('note') ) $('note').destroy();  });    // note remover
        if( $('openid_top') ) $('openid_top').addEvent( 'click' , function() { this.setProperty('value',''); } );

    /* -- hide and show rows on click (seen on pretty much every manage xxx page) -- */

        $$('.show_child').addClass( 'hide' );
        $$('.show_parent').addEvent( 'click' , function(e) {
            e.stop();
            $$('*[rel='+this.getProperty('name')+']').toggleClass('hide');
        });

    /* -- clock -- */
        
        if( $('clock' ) ) {
        
            var unixtime = $('clock').get('html') * 1;
            
            function makeclock() {
                $('clock').set('html' , new Date( unixtime * 1000).toGMTString().replace( /GMT/ , '' ).replace( /UTC/ , '' ) );
                unixtime += 1;
            }
            
            makeclock();
            var tick = makeclock.periodical(1000);
        
        }

    /* -- drop down navigation menus -- */
        
        var subnav_on_ = $$('.subnav_on');
        var a_ = [];
        var ul_ = [];
            
        $$('.subnav').addEvents({
           
            'mouseenter' : function() {
                
                $$('.subnav_on').removeClass('subnav_on');                
                
                var this_ = this.getChildren('a[class^=subnav_head]')[0];
                
                a_ = this.getChildren('a[class~=subnav_head]');
                a_.addClass( 'subnav_on' );
                
                ul_ = this.getChildren('ul');
                ul_.removeClass('hide');
                
                if( this_ ) {
                
                	if( Browser.Engine.version == 4 && Browser.Engine.trident ) {
                		ul_.setStyles({ 'left': this_.getPosition().x + 1 , 'top' : this_.getCoordinates().bottom -1 , 'width' : this_.getSize().x , 'z-index' : 3000  });
                	} else {
                		ul_.setStyles({ 'left': this_.getPosition().x + 1 , 'top' : this_.getCoordinates().bottom -1 , 'min-width' : this_.getSize().x , 'z-index' : 3000  });
                	}
                
                }                
            },

            'mouseleave' : function() {

                a_.removeClass('subnav_on');
                ul_.addClass('hide');
                subnav_on_.addClass('subnav_on');
                
            }   
           
        });
        
    /* -- show auction pledge total and reload every three minutes -- */

        if( $('auction_pledges') ) {
            function auction_pledges_load() { $('auction_pledges').set('load', {method: 'get'}).load(base_url+'auction/fetch/pledges/'); }
            var load_pledges = auction_pledges_load.periodical(180000);
            auction_pledges_load();
        }

    /* -- text resize -- */
        
        if( $('text_size') ) {

            var access_size_ = $('text_size');
            var container_ = $('container');
            var textsize_ = "1";
            
            if( Cookie.read('textsize') ) textsize_ = Cookie.read('textsize');
            
            switch( textsize_ ) {
                case "2":
                    container_.addClass( 'large' );
                    access_size_.set( 'html' , "Larger Text" );
                break;
                case "3":
                    container_.addClass( 'largest' );
                    access_size_.set( 'html' , "Reset Text" );
                break;
            }
            
            access_size_.addEvents({
        
                'click' : function(e) {
        
                    e.stop();

                    if( Cookie.read('textsize') ) {
                        textsize_ = Cookie.read('textsize');
                        Cookie.dispose('textsize', {duration:2 , path:'/'});
                    }
        
                    switch( textsize_ ) {
            
                        case "1":
                            access_size_.set( 'html' , "Larger Text" );
                            container_.addClass( 'large' );
                            Cookie.write( 'textsize', '2' , {duration:1 , path:'/'} );
                        break;
                
                        case "2":
                            access_size_.set( 'html' , "Reset Text" );
                            container_.addClass( 'largest' );
                            Cookie.write( 'textsize', '3', {duration:1 , path:'/'} );
                        break;
                    
                        default:
                            access_size_.set( 'html' , "Large Text" );
                            container_.removeClass('largest');
                            container_.removeClass('large');
                            Cookie.write( 'textsize', '1', {duration:1 , path:'/'} );
                        break;
            
                    }
            
                },
            
                'focus' :  function() {  this.blur(); }

            });

        }
        
    /* -- dynamic category / tag selects (found on adding item to auction or sharing) -- */
        
        if( $('select_snd') && $('select_rcv') && $('select_pop') ) {
        
            var sel;
            var hl;
            var cat_options_ = [];
            var cat_tags_= [];
            
            function update_select() {

                cat_options_ = $$('#select_pop ul[id=cat_'+ $('select_snd').getProperty('value') +'] li');                      // grab all tags in a category to populate second select
                if( $('select_rcv').getProperty('rel') != null ) cat_tags_ = $('select_rcv').getProperty('rel').split('|');     // grab tags to select initially
                
                $('select_rcv').empty();                // empty second select of current tags before filling it with the new ones

                cat_options_.each( function( el ) {     
                    cat_tags_.contains( el.get('html') ) ? sel = 'selected' : sel = '' // select
                    cat_tags_.contains( el.get('html') ) ? hl = 'highlight' : hl = ''  // highlight selected
                    $('select_rcv').adopt( new Element( 'option' , { 'html' : el.get('html') , 'value' : el.get('html') , 'selected' : sel , 'class' : hl } ) );
                });

            
            }
            
            $('select_snd').addEvent( 'change' , update_select );       // when first select changed, populate second select with appropriate tags
            update_select();                                            // load initial tags
            
        }

    /* -- dynamic select to form field (found on donations or sharing ) -- */
    
        if( $('select_ch') ) {
            function update_select_ch() {
                $$('.select_ch').addClass('hide');
                $$('div[rel=sel_'+$('select_ch').getProperty('value')+']').removeClass('hide');
            }
            $('select_ch').addEvent( 'change' , update_select_ch );
            update_select_ch();
        }
        
    /* -- skips from form input to form input (found when entering dates) -- */

        $$('input.skip').addEvent( 'keyup' , function() { 
            if( this.getProperty('value').length == this.getProperty('rel') && this.getNext() ) this.getNext().setProperty('value', '').focus();
        });

    /* -- adds the delete functionality next to image file upload fields -- */
        
        $$('input[type=file]').each( function(el) { if( el.getProperty('rel') && el.getProperty('rel') != '' ) {
            new Element( 'a' , { 'href':base_url+'imps/'+el.getProperty('class') , 'name': 'delete_file' , 'rel':el.getProperty('name')+' '+el.getProperty('rel') , 'class':'delete' , 'html':"<img src='"+base_url+"static/styles/1/images/delete.png' title='Delete' />"} ).inject( el , 'after' );
        }});
        
    /* -- table sort by headers (found on auction totals) -- */
        
        var sort_ = $$('table.sort');
              
        if( sort_.length > 0 ) {
        
            sort_.each( function( el , i ) {

                var parse = [];
                el.getChildren('thead')[0].getChildren('tr')[0].getChildren('th').each( function(elb,ib) {  // get the header parsing types
                    if( elb.get('text') != '' ) { parse[ib] = ( elb.getProperty('rel') ? elb.getProperty('rel') : 'string' );  }
                });
         
                var sort_table = new HtmlTable( el , {
                    parsers : parse,
                    classNoSort : 'nosort',
                    classZebra : (el.hasClass('zebra') ? 'light' : ''),
                    classHeadSort : 'sortasc' ,
                    classHeadSortRev: 'sortdesc' , 
                    zebra : (el.hasClass('zebra') ? true : false),
                    sortable : true,
                    sortIndex: null
                });

            });
        
        }

    /* -- table alternate colour rows -- */

        function tbl_alternate() {

   		    if( $$('table.alternate' ).length > 0 ) {
        	    $$('table.alternate tr:even').addClass( 'light' );
         	    $$('table.alternate tr:odd').addClass( 'dark' );
			    $$('table.alternate tr.tblheader').removeClass('light');
          	    $$('table.alternate tr.tblheader').removeClass('dark');
   		    }
        }
        
        tbl_alternate();
        
    /* -- note ( the little speech bubble that pops up ) -- */

        function add_note( x , y , txt ) {
        
            if( $('note') ) $('note').destroy();
            
            if( x + 300 > window.getWidth() )   x = window.getWidth() - 300;
            if( y < 0 )                         y = 0;

            $$('body')[0].adopt( new Element( 'div' , { 'id':'note' } ).setStyles({'top':y , 'left':x } ) );
            $('note').adopt( new Element( 'div' , { 'id':'note_inner' , 'html':txt } ) );
            
        } 
        
    /* -- forms ( ajax form controller, stops a reload and deals with the responses ) -- */       
        
        function form_load() {
        
            $$('form[class!=nogo]').addEvent( 'submit' , function(e) {
 
                e.stop();
                
                var current_form_ = this;
                var current_form_id = this.getProperty('id');
                var x = 200;
                var y = 200;

                var sub_ = current_form_.getElements('input[type=submit]');
                if( sub_.length > 0 ) {
                    sub_[0].addClass( 'ajax' );
                    if( $('sub') ) $('sub').destroy();
                    this.adopt( new Element( 'input' , { 'id':'sub' , 'type':'hidden' , 'name':sub_[0].getProperty('name') , 'value': sub_[0].getProperty('value') } ) );
                }
                
                current_form_.getElements('input[type=file]').each( function( el ) {
                    if( $(el.getProperty('name')) ) $(el.getProperty('name')).destroy();
                    current_form_.adopt( new Element( 'input' , { 'id':el.getProperty('name') , 'type':'hidden' , 'name':el.getProperty('name') , 'value': el.getProperty('value') } ) );
                });

                current_form_.getElements('.wysiwyg').each( function( el , i ) {
                    if( $('wysiwyg_'+i) ) $('wysiwyg_'+i).destroy();
                    current_form_.adopt( new Element( 'input' , { 'id':'wysiwyg_'+i , 'type':'hidden' , 'name':'ow_'+el.getProperty('name') , 'value': wysiwyg_[i].getData() } ) );
                });

                new Request.JSON({url: base_url+"imps/" + ( this.getProperty('name') ? this.getProperty('name') : this.getProperty('rel') ) , onComplete: function(response){ if( response ) {
                
                    if( sub_[0] ) {
                        sub_[0].removeClass( 'ajax' );
                        x = sub_[0].getPosition().x
                        y = sub_[0].getPosition().y
                    }
                    
                    current_form_.getElements('b').addClass( 'error' ).removeProperty('id');
                    current_form_.getElements('*[class=error_border]').removeClass( 'error_border' );
                    
                    response.insert ? ri = response.insert : ri = '';

                    if( response.error ) {
                    
                        response.error.each( function( el_name , i ) {
                            current_form_.getElements('*[name='+el_name+']').addClass( 'error_border' );
                            current_form_.getElements('*[name='+el_name+'_b]').addClass( 'error_border' );
                            current_form_.getElements('b[rel='+el_name+']').removeClass('error');
                            if( i == 0 ) $$('b[rel='+el_name+']').setProperty('id', 'firsterror');
                        });
            
                        new Fx.Scroll(window).toElement('firsterror');
                    
                    }
                
                    if( response.note ) {
                        response.upload ? add_note( x , y-200 , response.note + "<div class='ajax'>Please wait ...</div>") : add_note(x,y-200,response.note);
                    }
                    
                    if( response.upload ) {
                    
                        if( !$('upload_progress') ) $$('body')[0].adopt( new Element( 'div' , {'id':'upload_progress', 'class':'hide'} ) );
                
                        current_form_.setProperties({ 'target':'upload_target' , 'enctype':'multipart/form-data' , 'method':'post' , 'action':base_url+'global/upload_file.php'});
                        current_form_.adopt( new Element( 'input' , { 'name':'file_info', 'id':'file_info', 'type':'hidden' , 'value':response.upload } ) );
                        current_form_.adopt( new Element( 'iframe' , { 'id':'upload_target', 'name':'upload_target', 'src':base_url+'global/upload_file.php' } ) );
                        current_form_.submit();
                    
                        new Request.JSON({url: base_url+"global/upload_file.php", onComplete: function(file){ 
    
                            $('upload_target').addEvent( 'load' , function() {
                                
                                var txt = ( !Browser.Engine.webkit || Browser.Engine.webkit && Browser.Engine.version >= 3 ? $('upload_target').contentDocument.defaultView.document.body.innerHTML : $('upload_target').document.body.innerHTML );
                                add_note( x,y-200,txt );
                                txt = (txt + '').replace(/<br>/g, '\n');
                                
                                if( !response.forward ) {
                                
                                    $('upload_progress').set( 'html' , txt );
                                    current_form_.removeProperties('target', 'enctype', 'action');
                                    $('file_info').destroy();
                                    ( function() { $('upload_target').destroy(); } ).delay(50);  
                                
                                    if( ri != '' ) { $(ri['into']).set( 'html' , $(ri['into']).get('html') + ri['item'] );  }
                                
                                } else location.href = response.forward;
                                
                            }); 

                        }}).post();

                    }
            
                    if( response.content ) $('content_beta_inner').set('html',response.content);
                    
                    if( response.display ) {
                        $('display').set('html',response.display);
                        tbl_alternate(); 
                    }
                
                    if( response.cookie ) {
                        response.cookie.each( function( el , i ) {
                            Cookie.dispose( el.name );
                            Cookie.write( el.name , el.info , {duration: el.duration , path:'/'});
                        });
                    }

                    if( response.refresh == 1 ) location.href = location.href;
 
                    if( response.forward && !response.upload ) response.forward.contains('#') ? location.href = location.href + response.forward : location.href = response.forward;

                    if( response.destroy ) {
                        response.destroy.each( function( el , i ) {
                            $$('*[title='+el+']').destroy();
                        });
                    }
                    
                    if( response.panel ) { panel_switch( response.panel.panel , response.panel.index ); }

                }
                
                }}).post(current_form_);
        
            });
        
        }

        form_load(); // grab all the forms active on the page

        

    /* -- content paging ( ajax results ) -- */
        
        function paging() {
            
            var page_ = $$('.page');
            page_[0].removeClass('hide');
            
            $('content_pages').removeClass( 'pad' );
 
            if( $$('.page').length > 1 ) {
            
                $('content_pages').addClass( 'pad' );
                   
                $$('.page').each( function( el , i ) { el.setProperty('rel', i) } );
                    
                for( var i = 1 ; i <= $$('.page').length ; i++ ) $('content_pages').adopt( new Element( "span" , {'html':i , 'rel':i-1 , 'class' : 'page_change' } ) );
                        
                page_change_ = $$('#content_pages span');
                page_change_[0].addClass('page_on');
                        
                $$('.page_change').addEvent( 'click' , function() {
                    page_.addClass('hide');
                    page_change_.removeClass( 'page_on' );
                    this.addClass('page_on');
                    $$('.page[rel='+this.getProperty('rel')+']').removeClass('hide');
                });
                        
            }
        }

    /* -- content display ( ajax results ) -- */
                
        if( $('content_display') ) {
        
            function load_content(type) {
            
                var content_display_ = $('content_display').getProperty('title');
                var show_content = [ $$('.category_on').getProperty('rel').join('|') , $$('.tag_on').getProperty('rel').join('|') ];
                
                $('content_display').set('html','').addClass( 'ajax' );
                $('content_pages').empty();
                
                $('content_display').removeClass('hide');
                $('content_pages').removeClass('hide');
                
                type == 1 ? html = ( content_display_.contains('pinchhit') ? '<h2>Viewing Most Urgent</h2>' : '<h2>Viewing Latest</h2>' )  : html = '';
                new Request.JSON({url: base_url+"imps/"+content_display_ , onComplete: function(response){ if( response ) {
            
                    var page = 0;
  
                    response.each( function( el , i ) {
                        
                        if( page == 0 ) html += "<div class='page hide'>";
                        
                        html += el;
                        
                        if( page == 25 ) html += "</div>";
                        
                        page == 25 ? page = 0 : page++;
                        
                    });
                
                    if( page != 0 ) html += "</div>";
                
                    $('content_display').set('html',html).removeClass('ajax');
                    
                    $$('.delete').addEvent( 'click' , function(e) {
                        e.stop();
                        var this_curr = this;
                        new Request.JSON({url: this.getProperty('href') , onComplete: function(response){ if( response.success ) {
                            if( response.success == 1 ) this_curr.getParent().getParent().destroy();
                            else this_curr.getParent().destroy();
                        }}}).post({ 'act' : this.getProperty('name') , 'id' : this.getProperty( 'rel' ) });
                    });
               
                    $$('.claim').addEvent( 'click' , function(e) {
                        e.stop();
                        var this_curr = this;
                        new Request.JSON({url: this.getProperty('href') , onComplete: function(response){ if( response.success ) {
                            if( response.success == 1 ) this_curr.getParent().set('html',"<div class='pad light'><h1>Thank you!</h1>You have been e-mailed the bidder's contact details and they have been sent yours</div");
                        }}}).post({ 'act' : this.getProperty('name') , 'id' : this.getProperty( 'rel' ) });
                    });
                 
                    paging();
                
                }}}).get({ 'act' : "c" , 's' :  show_content , 't' : type  });
                
            }
            
            var load_delay = 0;
            
            $$('.category').addEvents({
                'click' : function(e) {
                    e.stop();
                    this.toggleClass('category_on');
                    if( load_delay != 0 ) $clear(load_delay);
                    load_delay = ( function() { load_content(); } ).delay(1000);
                },
                'focus' : function() { this.blur(); }
            });

            $$('.tag').addEvents({
                'click' : function(e) {
                    e.stop();
                    this.toggleClass('tag_on');
                    if( load_delay != 0 ) $clear(load_delay);
                    load_delay = ( function() { load_content(); } ).delay(1000);
                },
                'focus' : function() { this.blur(); }
            });
            
            load_content(1);
            
        }

    /* -- panels ( all areas that allow a switch between tabbed information ) -- */
      
        if( $$('.panel').length > 0 ) {

            var panel_li = [];
            var panel_span = [];
            var panel_set = [];
            var panel_id = 0;
            var p = -1;
            
            var cprog = base_[2];
            var hprog = location.hash.replace(/#/,'');

            function panel_switch( panel, segment ) {

                Cookie.dispose( 'cp'+cprog+panel );
                Cookie.write( 'cp'+cprog+panel , segment );
            
                panel_li[panel].removeClass('on');
                panel_li[panel][segment].addClass('on');
                               
                panel_span[panel].addClass('hide');
                panel_span[panel][segment].removeClass('hide');    

            }
            
            $$('.panel').each( function( el , i ) {
                
                el.getChildren('span').addClass('pspan'); // because ckeditor gets weird about it otherwise
                
                p = -1;
            
                panel_li[i] = el.getChildren('ul')[0].getChildren('li');
                panel_span[i] = el.getChildren('span');

                panel_li[i].setProperty( 'rel' , i );
                panel_id = i;
    
                panel_li[i].each( function( elb, ib ) {
                    elb.addEvent( 'click' , function() { 
                        panel_switch(elb.getProperty('rel'),ib);
                        if( elb.getProperty( 'id' ) ) location.hash = elb.getProperty( 'id' );
                    });
                    if( elb.getProperty( 'id' ) == hprog ) p = ib;
                });

                if( p == -1 ) Cookie.read( 'cp'+cprog+i ) && panel_li[i][Cookie.read( 'cp'+cprog+i )] ? p = Cookie.read( 'cp'+cprog+i ) : p = 0;
          
                panel_switch( i , p );
            
            });
            
        }

    /* -- Handles deletions on non-ajax loaded pages -- */
        
        $$('.delete').addEvent( 'click' , function(e) {
        
            e.stop();
            var x = e.client.x - 90;
            var y = e.client.y - 193 + getScroll().y;
            
            add_note( x , y , "<p><a href='#' id='delete_confirm'><b>Yes, I definitely want to delete this</b></a></p><p><a href='#' id='delete_remove'>I've changed my mind!</a></p>" );

            var cell_curr = this;
                
            $('delete_confirm').addEvent( 'click' , function(e) {
            
                e.stop();

                new Request.JSON({url: cell_curr.getProperty('href') , onComplete: function(response){ if( response ) {
                
                    $('note').destroy();
                    
                    if( response.success == 1 ) {
                    
                        c = 0;
                        while( !cell_curr.hasClass('deletewrap') && c < 20 ) {
                            cell_curr = cell_curr.getParent();
                            c++;
                        }
                        
                        if( c == 20 && !cell_curr.hasClass('deletewrap') ) {
                            alert( "Please remember to put class 'deletewrap' in the element to be deleted!" );
                            return;
                        }
                        
                        if( cell_curr.hasClass( 'show_parent' ) ) $$('rel=['+cell_curr.getProperty('name')+']').destroy();
                        
                        var cell_height = cell_curr.getSize().y;
                        cell_curr.setStyle( 'height' , cell_height );

                        var fade = new Fx.Morph( cell_curr , {duration: 'short', transition: Fx.Transitions.Sine.easeOut} );
                        fade.start({ opacity:[1,0] }).chain( function() {
                            cell_curr.empty();
                            fade.start({height:[cell_height,0]}).chain(function() {
                                cell_curr.destroy();
                                if( $$('.deletewrap').length == 0 ) location.href = location.href;
                            }); 
                        });

                    } 
                    else if( response.success == 2 )  cell_curr.destroy();
                    else if( response.forward )       location.href = response.forward;
                    else                              add_note( x , y , response.error );
                                
                }}}).post({ 'act' : cell_curr.getProperty( 'name' ) , 'id' : cell_curr.getProperty( 'rel' ) });

            });
            
            $('delete_remove').addEvent( 'click' , function(e) {
                e.stop();
                $('note').destroy();
            });
            
        });
             
    /* -- handles approvals on non-ajax loaded pages -- */
        
        $$('.approve').addEvent( 'click' , function(e) {
        
            e.stop();
            var x = e.client.x - 90;
            var y = e.client.y - 193 + getScroll().y;
            
            add_note( x , y , "<p><a href='#' id='approve_confirm'><b>Yes, I definitely want to approve this</b></a></p><p><a href='#' id='approve_remove'>I've changed my mind!</a></p>" );

            var cell_curr = this;
                
            $('approve_confirm').addEvent( 'click' , function(e) {
            
                e.stop();

                new Request.JSON({url: cell_curr.getProperty('href') , onComplete: function(response){ if( response ) {
                
                    $('note').destroy();
                    
                    if( response.forward )              location.href = response.forward;
                    else if( response.success == 1 )    cell_curr.destroy();
                    else                                add_note( x , y , response.error );
                                
                }}}).post({ 'act' : cell_curr.getProperty( 'name' ) , 'id' : cell_curr.getProperty( 'rel' ) });

            });
            
            $('approve_remove').addEvent( 'click' , function(e) {
                e.stop();
                $('note').destroy();
            });
            
        });        

    /* -- handles approvals on non-ajax loaded pages -- */
        
        $$('.notify').addEvent( 'click' , function(e) {
        
            e.stop();
            var x = e.client.x - 90;
            var y = e.client.y - 193 + getScroll().y;
            
            var cell_curr = this;
            var info = cell_curr.getProperty( 'rel' ).split( '#' );
            
            add_note( x , y , "<p><a href='#' id='notify_confirm'><b>Yes, I definitely want to notify " +info[1]+ "</b></a></p><p><a href='#' id='notify_remove'>I've changed my mind!</a></p>" );

            $('notify_confirm').addEvent( 'click' , function(e) {
            
                e.stop();

                new Request.JSON({url: cell_curr.getProperty('href') , onComplete: function(response){ if( response ) {
                
                    $('note').destroy();
                    
                    if( response.forward )              location.href = response.forward;
                    else if( response.success == 1 )    cell_curr.destroy();
                    else                                add_note( x , y , response.error );
                                
                }}}).post({ 'act' : cell_curr.getProperty( 'name' ) , 'id' : info[0] , 'email' : info[1] });

            });
            
            $('notify_remove').addEvent( 'click' , function(e) {
                e.stop();
                $('note').destroy();
            });
            
        }); 

    /* -- selectngo -- */

        $$('.selectngo').addEvent( 'change' , function() {
        
            location.href = this.getProperty('rel') + this.getProperty('value') + "/";
            return;           
        
        });
        
    /* -- img thumbs -- */
        
        $$('.img_thumb p').addEvent( 'click' , function() {
        
            this.toggleClass('on');
            
            if( $('img_delete') ) {
            
                delete_img = [];
                $$('.img_thumb p.on').each( function( el , i ) { delete_img[i] = el.getProperty( 'alt' ) });
                
                $('img_delete').setProperty( 'value' , delete_img.join('|') );
            
            }
            
        });
        
    /* -- search ( manage members ) -- */
            
        var s = 0;
        var search_delay = 0;
        
        $$('.search').addEvents({

            'keyup': function() {
                
                var this_search = this;
                    
                if( this_search.getProperty('value') != '' && s == 0 ) {
                
                    search_delay = ( function() {
                    
                        new Request.JSON({url: base_url+"imps/"+this_search.getProperty('name'), onComplete: function(response){ if( response ) {

                            if( response.display ) {
                                $('search_display').set( 'html' , response.display ) ; 
                                tbl_alternate();
                            } else $('search_display').set( 'html' , 'No results found!' );
                                
                            s = 0;
                                
                        }}}).post({ 'act' : 'search' , 'value' : this_search.getProperty('value') });
                        
                    }).delay( 2000 );
                        
                    s = 1;
                    
                }

            },
                
            'keydown': function() {
                
                if( s == 1 ) {
                    $clear( search_delay );
                    s = 0;
                }
            }
            
        });
        
        

    },
    
    'load': function() {

    /* -- wysiwyg configuration, slight delay or safari cries like a girl -- */        
        
        ( function() {
        
            wysiwyg_ = [];
        
            $$('.wysiwyg').each( function( el , i ) {
                if( el.getProperty('rel') == "advanced" ) wysiwyg_[i] = CKEDITOR.replace( el , { 
                    uiColor : '#AAAAAA',
                    toolbar : [
                        ['Source','Templates','Maximize','-','Undo','Redo'],
                        ['ShowBlocks'],
                        ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar'],
                        ['Link','Unlink','Anchor'],
                        ['TextColor','BGColor'],
                        '/',
                        ['Bold','Italic','Underline','Strike'],
                        ['NumberedList','BulletedList'],
                        ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
                        ['Format','Font','FontSize']
                    ]
                });
                else if( el.getProperty('rel') == "email" ) wysiwyg_[i] = CKEDITOR.replace( el , { uiColor : '#AAAAAA' , toolbar : [ ['Source'],[ 'Bold', 'Italic', 'Underline', '-', 'TextColor' , 'Format','FontSize', 'Font' ,'-' , 'NumberedList','BulletedList', '-', 'Link','Unlink']] });     
                else wysiwyg_[i] = CKEDITOR.replace( el , { uiColor : '#AAAAAA' , toolbar : [ [ 'Bold', 'Italic', 'Strike' , 'Underline', '-', 'TextColor' , 'FontSize', 'Font' , '-' , 'Smiley']] });                

                if( el.getProperty('rel') != "advanced" && el.getProperty('rel') != "email" )   CKEDITOR.config.forcePasteAsPlainText = true;

                CKEDITOR.config.height = el.getStyle('height');
                CKEDITOR.config.resize_enabled = 0;
                CKEDITOR.config.removePlugins = 'elementspath,save';
                CKEDITOR.config.pasteFromWordRemoveStyle = true; 
                CKEDITOR.config.disableNativeSpellChecker = false;

                CKEDITOR.on( 'instanceReady' , function(e) { e.editor.dataProcessor.writer.lineBreakChars = ''; });

            });  
        
        }).delay(500);
        

    /* -- OpenID window loader (usually found at the beginning of forms for guests) -- */
        
        if( $('openid') && $('openid_error') ) {
        
            var openid_ = 0;
            var openid_delay = 0;
            var txt = 0;
        
            $('openid').addEvents({

                'keyup': function() {
 
                    $('openid').removeClass( 'error_border' );      // remove any error alerts if this is a retry
                    $('openid_error').addClass('error');
                
                    var this_openid = this;
                    
                    if( this_openid.getProperty('value') != '' && openid_ == 0 ) {
                
                        var openid_delay = ( function() {
                        
                            $('openid_catch').empty();              // remove the iframe if this is a retry 
                            $('openid_catch').adopt( new Element( 'iframe' , { 'src' : base_url+'openid/'+$('openid').getProperty('value')+'/' , 'id' : 'openid_if' } )); // make the iframe
                            var oid_load = 0;
                            var txt = 0;

                            $('openid_if').addEvent( 'load' , function() {
                                    
                                $try( function() {
                                    txt = ( !Browser.Engine.webkit || Browser.Engine.webkit && Browser.Engine.version >= 3 ? $('openid_if').contentDocument.defaultView.document.body.innerHTML : $('openid_if').document.body.innerHTML );
                                });
                                    
                                if( txt != 0 ) { if( txt.contains( 'openidname###' ) ) {
                                    
                                    var oid_name = txt.replace(/openidname###/,'');
 
                                    new Element( 'div' , {'html': oid_name + " <input type='hidden' name='openid' value='" + oid_name + "' />"} ).replaces( $('openid') );
                                    $('openid_if').setStyles({'width':0, 'height':0 });
                                    if( $('openid_eg') ) $('openid_eg').destroy();
                                    $('member_bar').set('html','<p>Hi, ' + oid_name + '!</p>');

                                } } else if( txt != 0 ) {
                                    
                                    $('openid').setProperty('value','');
                                    $('openid').addClass( 'error_border' );
                                    $('openid_error').removeClass('error');
                                        
                                }
                                    
                                oid_load++;
                            
                                if( txt != 0 ) ( function() { 
                                    if( $('openid_if') ) $('openid_if').destroy(); 
                                    oid_load = 0;
                                } ).delay(50);

                            });
                      
                        }).delay( 2000 );
                        
                        openid_ = 1;

                    }

                },
                
                'keydown': function() {
                
                    if( openid_ == 1 ) {
                        $clear( openid_delay );
                        openid_ = 0;
                    }
                }
            
            });
        
        }
        
        /* -- tab code textarea -- */
        
        $$('.code').addEvent( 'keydown' , function(e) {
            if( e.key == 'tab' ) {
                e.stop();
                this.insertAtCursor("    ");
                this.setCaretPosition(this.getCaretPosition()+4);
            }
        });


    }

});