window.addEvents({

    'domready' : function() {

        new SmoothScroll();
        
        base_url = $('body_').getProperty('rel');
        base_style = base_url + 'static/styles/1/';
        
        if( Browser.Engine.version == 4 && Browser.Engine.trident ) {
            $$('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');
        }

        /* -- LOAD EXTERNAL SCRIPTS -- */
                                                                   
        if( $$('.wysiwyg').length > 0 ) new Asset.javascript(base_url+'static/javascript/libs/ckeditor/ckeditor.js');
       
        /* -- BLACKOUT -- */
        
        $('blackout').addEvent( 'click' , function() {
            this.addClass('hide');
            if( $('canvas') ) {
                $('canvas').empty();
                $('canvas').addClass('hide');
            }
        });

        /* -- TEXT SIZE -- */
        
        if( $('text_size') ) {

            access_size_ = $('text_size');
            container_ = $('content');

            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(); }

        });

        }        
        /* WIZARD */
    
        wiz_panels = $$('#wizard span');
    
        $$('#wizard li').each( function( el ) {
            el.addEvent( 'click' , function() {
                if( isNaN( el.getProperty('rel') ) ) {
                    location.href = base_url+'psychic-readings/' + el.getProperty('rel')
                } else setWizPanel( el.getProperty('rel') );
            })
        });
    
        function setWizPanel(no) {
            wiz_panels.addClass('hide')
            wiz_panels[no].removeClass('hide');
        }
    
        setWizPanel(0);
        
        /* -- SELECT HEAD */
        
        if( $$('.select_head').length != 0 ) {
        
            select_head_ = $$('.select_head');
            select_area_ = $$('input[name^=harea]');
            area_curr = 1;
        
            select_head_.addEvent( 'click' , function() {
                area_curr = this.getProperty('value');
                select_area_.removeProperty('checked');
                $$('input[name^=harea['+this.getProperty('value')+']]')[0].setProperty('checked','checked');
            });
            
            select_area_.addEvent( 'click' , function() {
                if( this.getProperty('rel') != area_curr ) {
                    select_area_.removeProperty('checked');
                    $$('input[rel='+this.getProperty('rel')+']')[0].setProperty('checked' ,'checked');
                    area_curr = this.getProperty('rel');
                }
            });

        }
        
        /* -- SUB NAV -- */
        
        subnav_ = $$('.subnav');
        
        if( subnav_.length > 0 ) {
        
            subnav_on_ = $$('.subnav_on');
            
            subnav_.addEvents({
           
                'mouseenter' : function() {
                
                    $$('.subnav_on').removeClass('subnav_on');                
                
                    a_ = this.getChildren('a[class~=subnav_head]');
                    a_.addClass( 'subnav_on' );
                
                    ul_ = this.getChildren('ul');
                    ul_.removeClass('hide');
                    ul_.setStyles({ 'left': this.getPosition().x , 'top' : this.getPosition().y + a_.getSize().y , 'min-width' : this.getSize().x-1 , 'z-index' : 2  });
                
                },
                
                'mouseleave' : function() {
                
                    ul_.addClass('hide');
                    
                    a_.removeClass('subnav_on');
                    subnav_on_.addClass('subnav_on');
                }   
           
            });
        
        }

        /* -- FORMS -- */

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

            $('content').adopt( new Element( 'div' , { 'id':'note' } ).setStyles({'top':y , 'left':x } ) );
            $('note').adopt( new Element( 'div' , { 'id':'note_inner' , 'html':txt } ) );
            
        }
        
        function form_catch() {
        
        forms_ = $$('#content form[name!=go]');
    
        forms_.addEvent( 'submit' , function(e) {
        
            e.stop();

            $$('#current_form').removeProperty( 'id' );

            current_form_ = this;
            current_form_.setProperty( 'id' , 'current_form' );
            
            if( $('openid') ) {
            
                if( $('openid_if') ) $('openid_if').destroy();
                
                $('openid_cont').setStyle( 'background' , 'url('+base_style+'images/ajax-loader.gif) no-repeat bottom right' );
                $('current_form').adopt( new Element( 'iframe' , { 'src':base_url+'openid/'+$('openid').getProperty('value')+'/' , 'id' : 'openid_if' , 'name' : 'openid_if' } ).setStyles({'width':'100%', 'height':400, 'border':0 }) );
                
                ( function() {
                
                    oid_load = 0;
                    txt_on = 0;

                    txt = $('openid_if').contentDocument.defaultView.document.body.innerHTML;
                            
                    if( txt == 'error' ) {
                        $('openid_cont').removeProperty( 'style' );
                        ( function() { $('openid_if').destroy(); } ).delay(50);   
                    }
                            
                    $('openid_if').addEvent( 'load' , function() {
                    
                        if( oid_load == 0 ) $('openid_cont').removeProperty( 'style' );
                            
                        txt = $('openid_if').contentDocument.defaultView.document.body.innerHTML;
                        if( txt == 'error' || txt.contains('ttuname###') ) {
                            $('openid_if').setStyles({'width':0, 'height':0 });
                            if( txt.contains('ttuname###') ) {
                                oid_name = txt.replace(/ttuname###/,'');
                                $('current_form').adopt( new Element( 'input' , { 'name':'cname', 'type':'hidden' , 'value':oid_name } ) );
                                form_submit();
                            }
                            txt_on = 1;
                        }
                            
                        if( oid_load == 1 || txt_on == 1 ) ( function() { $('openid_if').destroy(); } ).delay(50);

                        oid_load++;
                        
                    });
                
                } ).delay(500);
            
            } else form_submit();
            
            function form_submit() {

                sub_ = $$('#current_form input[type=submit]')[0];
                sub_.addClass( 'ajax' );
                
                if( $('sub') ) $('sub').destroy();
                current_form_.adopt( new Element( 'input' , { 'id':'sub' , 'type':'hidden' , 'name':sub_.getProperty('name') , 'value': sub_.getProperty('value') } ) );

                if( $$('#current_form .wysiwyg').length > 0 ) {
                    $$('#current_form .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/"+current_form_.getProperty('name'), onComplete: function(response){ if( response ) {

                    $$('#current_form input[type=submit]').removeClass( 'ajax' );

                    $$('#current_form b').addClass( 'error' );
                    $$('#current_form input').removeClass( 'error_border' );
                
                    response.insert ? ri = response.insert : ri = '';
                    
                    input_s = $$('#current_form input[type=submit]');
                    x = input_s[0].getPosition().x
                    y = input_s[0].getPosition().y
                
                    if( response.error ) {
                        
                        $$('#current_form b').removeProperty('id');
                        
                        response.error.each( function( el_name , i ) {
                            $$('#current_form *[name='+el_name+']').addClass( 'error_border' );
                            $$('#current_form *[name='+el_name+'_b]').addClass( 'error_border' );
                            $$('#current_form b[rel='+el_name+']').removeClass('error');
                            if( i == 0 ) $$('#current_form b[rel='+el_name+']')[0].setProperty('id', 'firsterror');
                        });
                     
                        error_scroll = new Fx.Scroll(window).toElement('firsterror');
                    
                        if( $('recaptcha_widget_div') ) Recaptcha.reload();
                    }
                
                    if( response.note ) {
                        add_note(x,y-200,response.note);
                    }
                
                    if( response.upload ) {
                
                    $('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' } ).setStyles({'width':0, 'height':0, 'border':0 }) );
                    $('current_form').submit();
                    
                    new Request.JSON({url: base_url+"global/upload_file.php", onComplete: function(tmp_file){ if( tmp_file ) {
                    
                        if( tmp_file.name ) {

                            $('upload_progress').set( 'html' , 'Upload starting ... ' );
                       
                            check_progress = ( function() {   
                        
                                new Request.JSON({url: base_url+"global/upload_file.php", onComplete: function(tmp_size){ if( tmp_size ) {
                            
                                    upload_bar = '';
                                    size_info = tmp_size.size.split('|');
                                
                                    if( size_info[1] == "MB" )      increment = 5;
                                    else if( size_info[1] == "KB" ) increment = 1024*5;
                                    else                            increment = 1024*1024*5;
                                
                                    for( i = 0 ; i < size_info[0] ; i+=increment ) upload_bar += '<img src="'+base_style+'images/progress.gif" width="25" height="15" style="margin-right:1px" />';
                                    $('upload_progress').set( 'html' ,  upload_bar );
                                
                                }}}).post({'act':'check_size', 'file':tmp_file.name });
                            
                            }).periodical(1000);
                        
                            $('upload_target').addEvent( 'load' , function() {
                            
                                $clear(check_progress);
                                txt = $('upload_target').contentDocument.defaultView.document.body.innerHTML;
                                add_note( x,y-200,txt );
                                txt = (txt + '').replace(/<br>/g, '\n');
                                $('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 {
                        
                            $('current_form').removeProperties('target', 'enctype', 'action');
                            $('file_info').destroy();
                            ( function() { $('upload_target').destroy(); } ).delay(50);  
                            $('upload_progress').set( 'html' , tmp_file.error );
                        }
                        
                    }}}).post({'act':'get_file'});

                }
        
                if( response.content ) {
                    $('content_main_inner').set('html',response.content);
                    new Fx.Scroll(window).toElement('content');
                    if( $('gateway_form') ) $('gateway_form').submit();
                }
                
                if( response.display ) {
                    $('display').set('html',response.display);
                }
                
                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.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.ckeditor ) {
                    CKEDITOR.instances.wreading.setData( response.ckeditor.text );
                }

                if( response.canvas ) {
                
                    doc_size = getSize();
                    doc_scroll_size = getScrollSize();
                    doc_scroll = getScroll();
                            
                    $('body_').adopt( 
                        new Element( 'div' , {'id':'canvas_base'} ).set('opacity',0.6).setStyles({'height':doc_scroll_size.y, 'width':doc_size.x}),
                        new Element( 'div' , {'id':'canvas_inner'} ).set('opacity',1)
                    );
                            
                    cnv_inner = $('canvas_inner').getSize();
                            
                    $('canvas_inner').setStyles({ 'top': ( (doc_size.y-cnv_inner.y)/2 ) + doc_scroll.y , 'left':(doc_size.x-cnv_inner.x)/2 });
                            
                    $('canvas_inner').set( 'html' , response.canvas );
                            
                    $('canvas_base').addEvent( 'click' , function(){ 
                        if( $('canvas_inner') ) $('canvas_inner').destroy();
                        if( $('canvas_base') ) $('canvas_base').destroy();
                    })
                           
                            
                    show_desc_ = $$('.show_desc');
                    card_info_ = $$('.card_info');
                            
                    show_desc_.each( function( el , i ) {
                        el.addEvent( 'click' , function() {
                            $('card_desc').set('html',card_info_[i].get('html'));
                         })
                    });
                            
                    if( $('under') ) {
                        floater = $$('.float');
                        float_fx = new Fx.Morph( floater[0] , { duration:400 , link:'cancel' } );
                        $('under').addEvents({
                            'mouseenter': function(){
                                float_fx.start({'opacity':[1,0.1]});
                            },
                            'mouseleave': function() {
                                float_fx.start({'opacity':[0.1,1]});
                            }
                        })
                    }
                            
                    if( $$('.save_content').length > 0 && $('save_this') ) {
                        $$('.save_content').addEvent( 'click' , function(e) {
                            e.stop();
                            content_save = $('save_this').get('html');
                            save_content_ = this;
                            new Request.JSON({url: base_url+'imps/psychic-readings', onComplete: function(response){   
                                if( response.success ) location.href = save_content_.getProperty('href'); 
                            }}).post({'content':content_save, 'name':save_content_.getProperty('name')});
                        });
                    }
                }                
                                
            }}}).post(current_form_);
            
            }
        
        });
        
        }
        
        form_catch();
        
        /* -- COURSES -- */
        
        if( $('course_number') ) {
        
            function update_coursenames() {
            
                var number_ = $('course_number').getProperty('value');
                var vals_ = $$('#course_names input[type=text]').getProperty('value');
            
                $('course_names').empty();

                for( var i = 0 ; i < number_ ; i++ ) {
                
                    vals_[i] ? val = vals_[i] : val = '';
                    $('course_names').set( 'html' , $('course_names').get('html') + "<div class='left required'>Name</div><div class='right'><input type='text' name='bnames[]' value='"+val+"' class='text l' /></div>" );
                
                }
            
            }
                
            $('course_number').addEvent( 'change' , update_coursenames );
            update_coursenames();
        
        }
        
        /* -- PANELS -- */
      
        
        if( $$('.panel').length > 0 ) {

            panel_li = [];
            panel_span = [];
            panel_set = [];
            panel_id = 0;
            
            cprog = $('body_').getProperty('class');
            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');
                
                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 );
            
            });
            
        }

        /* -- LOG IN REPLACE -- */
    
        if( $('log-in-form') ) {

            member_form_inp = $$("#member input[type='text']");

            function update_login() {
                 member_form_inp.each( function( el , i ) {
                    if( !el.getProperty( 'value' ) ) {
                        el.setProperty( 'type' , 'text' );
                        el.addClass( 'overtext' );
                        el.setProperty( 'value' , li_input[el.getProperty('rel')] );
                    }
                });
            }
            
            fx_login = new Fx.Slide( 'log-in-form' , { mode:'vertical' } ).hide();
            fx_password = new Fx.Slide( 'lost-password-form' , { mode:'vertical' } ).hide();

            $('log-in').addEvent( 'click' , function(e) {
                e.stop();
                update_login();
                fx_password.open ? fx_password.slideOut().chain( function() { fx_login.toggle() } ) : fx_login.toggle();
                
            });
            
            $('lost-password').addEvent( 'click' , function(e) {
                e.stop();
                update_login();
                fx_login.open ? fx_login.slideOut().chain( function() { fx_password.toggle() } ) : fx_password.toggle();
            });
            
            li_input = [];
            member_form_inp.each( function( el , i ) {li_input[i] = el.getProperty( 'value' );});

            member_form_inp.addEvents({
                'focus' : function() {
                    update_login();
                    this.setProperty( 'value' , '' );
                    this.removeClass( 'overtext' );
                    if( this.getProperty( 'name' ) == 'mpassword' && this.getProperty( 'type' ) == 'text' ) this.setProperty( 'type' , 'password' );
                }
            });
            
        }
         

        /* -- READINGS -- */
        

        if( $$('.reading_alter').length > 0 ) {
            $$('.reading_alter').addEvent( 'click' , function() {
            
                var img_ = this;
                
                if( this.getProperty('alt') == "Block Off" ) {
                
                    new Request.JSON({url: base_url+"imps/psychic-readings", onComplete: function(response){ if( response ) {
                
                        img_.setProperties({'src':base_url+'static/styles/2/images/restore.png','alt':'Restore','title':'Restore'});
            
                    }}}).post({ 'act' : 'reading_remove' , 'time' : this.getProperty('rel') }); 
                
                
                } else {
                
                    new Request.JSON({url: base_url+"imps/psychic-readings", onComplete: function(response){ if( response ) {
                
                        img_.setProperties({'src':base_url+'static/styles/2/images/delete.png','alt':'Block Off','title':'Block Off','class':'reading_remove'});
             
                    }}}).post({ 'act' : 'reading_restore' , 'time' : this.getProperty('rel') }); 
                
                }
            
            
            });
        }



        if( $('delete_written_spread') ) {
            $('delete_written_spread').addEvent( 'click' , function(e) {
                e.stop();
                new Request.JSON({url: base_url+"imps/psychic-readings", onComplete: function(response){ if( response ) {
                    Cookie.dispose( 'spreadwritten' );
                    $('spread_container').destroy();
                }}}).post({ 'act' : 'delete_written_spread' , 'id' : this.getProperty('rel') });
            });
        }
        
    /* -- SEARCH -- */
            
            s = 0;
        
            $$('.search').addEvents({

                'keyup': function() {
                
                    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( 1000 );
                        
                        s = 1;
                    
                    }

                },
                
                'keydown': function() {
                
                    if( s == 1 ) {
                        $clear( search_delay );
                        s = 0;
                    }
                }
            
            });
            
        /* -- delete -- */
        
        $$('.delete').addEvent( 'click' , function(e) {
        
            e.stop();
            x = e.client.x - 90;
            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>" );

            cell_tag = ''
            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.forward ) {
                
                        location.href = response.forward;
                        
                    } else if( response.success == 1 ) {
                    
                        while( ( cell_tag != 'tr' && cell_tag != 'div' ) || cell_curr.getProperty('class') == 'option_right' ) {
                            cell_curr = cell_curr.getParent();
                            cell_tag = cell_curr.get('tag');
                        }
                        
                        if( cell_curr.hasClass( 'show_parent' ) ) $$('rel=['+cell_curr.getProperty('name')+']').destroy();
                        
                        cell_height = cell_curr.getSize().y;
                        cell_curr.setStyle( 'height' , cell_height );

                        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()
                            }); 
                        });
                        
                    } 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();
            });
            
        });
             
        /* -- approve -- */
        
        $$('.approve').addEvent( 'click' , function(e) {
        
            e.stop();
            x = e.client.x - 90;
            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>" );

            cell_tag = ''
            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();
            });
            
        });
        
        /* -- parent child -- */
        
        wysiwyg_arr = [];
        
        $$('.show_child').addClass( 'hide' );
        $$('.show_parent').addEvent( 'click' , function(e) {
            e.stop();
            $$('*[rel='+this.getProperty('name')+']').toggleClass('hide');
            
            if( this.getProperty( 'rel' ) && this.getProperty( 'rel' ) == "wysiwyg_d" ) {
            
                check = $$('*[rel='+this.getProperty('name')+']');
                
                if( !check[0].hasClass( 'hide' ) && !wysiwyg_arr.contains(this.getProperty('name')) )  {
                
                    ta = $$('textarea[name='+this.getProperty('name')+']');
                    var oEditor = new FCKeditor(ta[0].getProperty('name')) ;
                    oEditor.BasePath = base_url+"static/javascript/libs/fckeditor/" ;
                    oEditor.Config["CustomConfigurationsPath"] = base_url+"static/javascript/libs/fckeditor/config_"+ta[0].getProperty('rel')+".js?" + ( new Date() * 1 ) ;
                    if( ta[0].getProperty('rel') == 'advanced' ) oEditor.Height = '500px';
                    oEditor.ReplaceTextarea();
                    
                    wysiwyg_arr.extend([this.getProperty('name')])

                }
            }
        });
        
        /* -- selectngo -- */

        $$('.selectngo').addEvent( 'change' , function() {
        
            location.href = this.getProperty('rel') + this.getProperty('value');
            return;           
        
        });
        
        /* -- a rel -- */
        
        $$('a[rel=external]').setProperty( 'target' , '_blank' );
        
        /* -- img display -- */
        
        $$('.thumbnail').addEvents({
            'mouseenter':function() {
                if( $('thumbnail_display') ) $('thumbnail_display').destroy();
                $('body_').adopt(  new Element( 'img' , { 'src':this.getProperty('name') , 'id' : 'thumbnail_display' } ) );
                $('thumbnail_display').setStyles({ 'position' : 'absolute' , 'top': this.getPosition().y - 50 , 'left' : this.getPosition().x + 150 , 'z-index' :100 });
                $('thumbnail_display').addEvent( 'click' , function() { $('thumbnail_display').destroy() });
            }
        });

        /* -- media display -- */
        
        $$('.medianail').addEvents({
        
            'mouseenter': function() {
                if( $('thumbnail_display') ) $('thumbnail_display').destroy();
                $('body_').adopt( new Element( 'div' , { 'id' : 'thumbnail_display' , 'class' : 'thumbnail_display' } ) );
                $('thumbnail_display').setStyles({ 'position' : 'absolute' , 'top' : this.getPosition().y - 50 , 'left' : this.getPosition().x + 150 , 'z-index':100 });
                $('thumbnail_display').set( 'html' , "<embed src='"+base_url+"static/flash/flvplayer.swf?file=" + this.getProperty('name') + "&amp;autoStart=true' type='application/x-shockwave-flash' width='426' height='240' allowscriptaccess='always' allowfullscreen='true' wmode='opaque'></embed>" );
                $('thumbnail_display').addEvent( 'click' , function() { $('thumbnail_display').destroy() });
            }
    
        })    

        /* -- 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('|') );
            
            }
            
        });
        
        /* -- currency -- */

        Cookie.read( 'currencycode' ) ? curr_code = Cookie.read( 'currencycode' ) : curr_code = 'GBP';
        
        currency_img_ = $$('#currency img');
        
        currency_img_.set( 'opacity' , 0.5 );
        $$('#currency img[alt='+curr_code+']').set( 'opacity' , 1 );
        
        
        currency_img_.addEvents({
            'click' : function() {
                Cookie.dispose( 'currencycode' );
                Cookie.write( 'currencycode' , this.getProperty('alt') , {'path':'/'} );
                location.href = location.href;
            }
        });
        
        /* -- prayers -- */
        
        if( $('prayer_select') ) {
        
            $$('#prayer_list div[rel='+$('prayer_select').getProperty('value')+']').removeClass('hide');
        
            $('prayer_select').addEvent( 'change' , function() {
                $$('#prayer_list div').addClass( 'hide' );
                $$('#prayer_list div[rel='+this.getProperty('value')+']').removeClass('hide');
            });
        }
        
        if( $$('.prayer').length > 0 ) {
            
            var prayers_ = $$('.prayer');
          

            prayers_.each( function( el ) {
            
                var fx_p = new Fx.Morph(el, {duration:1000, wait:false});
                el.addEvent('mouseenter', function(){
		            fx_p.start({ 'background-color': '#EFE0E8' , 'border-color': '#BF94AA'});
	            });
 
	            el.addEvent('mouseleave', function(){
		            fx_p.start({ 'background-color': '#FFF', 'border-color':'#888' });
	            });
            
            });
        
        }
        
        /* -- toggle create account -- */
        
        $$('input[name="mtype"]').addEvent( 'click' , function() {
            this.getProperty( 'value' ) == 3 ? $('view').removeClass('hide') : $('view').addClass('hide');
        });
        
        /* -- catch tab -- */
        
        $$('.code').addEvent( 'keydown' , function(e) {
            if( e.key == 'tab' ) {
                e.stop();
                this.insertAtCursor("    ");
                this.setCaretPosition(this.getCaretPosition()+4);
            }
        });
        
        /* -- swiff -- */
        
        
        if( $('swf_inject' ) ) {
            var obj = new Swiff(base_url+$('swf_inject' ).getProperty('rel'), {
            id: 'swf',
            container: $('swf_inject' ),
            width: 700,
            height: 500,
            params: {
                wmode: 'opaque',
                bgcolor: '#CCCCCC'
            },
            vars: {
                'data-file':base_url+"imps/admin?chart="+$('swf_inject' ).getProperty('class')
            }
        });
        }
        
        /* -- word count -- */
        
        if( $('word_count') ) {
        
            word_max = $('word_count_show').getProperty('name');
            word_sub = $('word_count_sub').getProperty('value');
        
            function update_word_count() {
        
                $('word_count').getProperty('value') == '' ? word_count_ = 0 : word_count_ = $('word_count').getProperty('value').replace(/\n/g,' ').trim().split( ' ' ).length;
            
                $('word_count_show').set('html' , word_count_ );

                if( word_count_ > word_max ) {
                    $('word_count_show').setStyle( 'color' , '#FF0000' );
                    $('word_count_sub').disabled = true;
                    $('word_count_sub').setProperty('value','Your text must be '+word_max+' words or less!');
                } else {
                    $('word_count_show').setStyle( 'color' , '#000000' );
                    $('word_count_sub').disabled = false;
                    $('word_count_sub').setProperty('value',word_sub);
                }
           
            
            }
        
            $('word_count').addEvent( 'keyup' , update_word_count );
            update_word_count();
        
        }

        /* -- book reading -- */
        
        $$('.book_reading').addEvent( 'click' , function(e) {
            
            e.stop();
            $('booking_time').set( 'html' , this.getProperty('title') );
            $('booking_unix').setProperty( 'value' , this.getProperty('id') );
            $('content_main_inner').set( 'html' , $('book_reading_form').get('html') );
            form_catch();

            if( $('delete_telephone_spread') ) {
                $('delete_telephone_spread').addEvent( 'click' , function(e) {
                    e.stop();
                    new Request.JSON({url: base_url+"imps/psychic-readings", onComplete: function(response){ if( response ) {
                        Cookie.dispose( 'spreadtelephone' );
                        $('spread_container').destroy();
                    }}}).post({ 'act' : 'delete_telephone_spread' , 'id' : this.getProperty('rel') });
                });
            }
        
        });
        
        /* -- sort -- */
        
        sort_ = $$('table.sort');
              
        if( sort_.length > 0 ) {
        
            HtmlTable.Parsers.dater = {
                convert: function() {
                    return new Date().parse(this.get('text'));
                },
                number: false
            };

            sort_.each( function( el , i ) {
                
                parse = [];
                el.getChildren('thead')[0].getChildren('tr')[0].getChildren('th').each( function(elb,ib) {
                    
                    if( elb.get('text') != '' ) { elb.getProperty('rel') ? parse[ib] = elb.getProperty('rel') : parse[ib] = parse[ib] = 'string';  }
                });
         
                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
                });

            });
        
        }
  
        
        /* -- accordian -- */
        
        if( $('accordian') ) {
            var accordion_ = new Fx.Accordion($$('#accordian .togglers'), $$('#accordian .togglees'), { display: 0, alwaysHide: true, initialDisplayFx: false });
        }

        function tbl_alternate() {

   		    if( $$('table.alternate' ).length > 0 ) {
        	    $$('table.alternate tr:even').addClass( 'dark' );
         	    $$('table.alternate tr:odd').addClass( 'light' );
			    $$('table.alternate tr.tblheader').removeClass('dark');
          	    $$('table.alternate tr.tblheader').removeClass('light');
   		    }
        }
        
        tbl_alternate();
        
    },
    
    'load': function() {
    
        $('keenlink').set( 'html' , '<a href="http://www.Keen.com/calls/PT_interimcall.asp?sid=4945690"><img src="http://www.Keen.com/calls/callimage.asp?sid=4945690&amp;ImageType=1" alt="keen" title="keen" /></a>' );

        $('body_').addEvent( 'click' , function() {
            if( $('note') )  $('note').destroy();
        });
        
        wysiwyg_ = [];
        $$('.wysiwyg').each( function( el , i ) {
            if( el.getProperty('rel') == "advanced" ) wysiwyg_[i] = CKEDITOR.replace( el , { 
                uiColor : '#AAAAAA',
                toolbar : [
                    ['Source','Templates','Maximize','-','Undo','Redo'],
                    ['Copy','Paste','PasteText','PasteFromWord'],
                    ['RemoveFormat'],
                    ['ShowBlocks'],
                    ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar'],
                    ['Link','Unlink','Anchor'],
                    ['TextColor','BGColor'],
                    '/',
                    ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
                    ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
                    ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
                    ['Format','Font','FontSize']
                ]
            });
            else if( el.getProperty('rel') == "forum" || el.getProperty('rel') == "blog" ) wysiwyg_[i] = CKEDITOR.replace( el , { uiColor : '#AAAAAA' , toolbar : [ [ 'Bold', 'Italic', 'Strike' , 'Underline', '-', 'TextColor' , 'FontSize', 'Font' ,'-' , 'NumberedList','BulletedList', '-', 'Subscript','Superscript' , '-', 'Link','Unlink' , '-' , 'Image','Flash' ,  '-' , 'Smiley']] });     
            else if( el.getProperty('rel') == "reading" ) wysiwyg_[i] = CKEDITOR.replace( el , { uiColor : '#AAAAAA' , toolbar : [ [ 'Source', 'Bold', 'Italic', 'Strike' , 'Underline', '-', 'TextColor' , 'Format' , 'FontSize', 'Font']] });                
            else wysiwyg_[i] = CKEDITOR.replace( el , { uiColor : '#AAAAAA' , toolbar : [ [ 'Bold', 'Italic', 'Strike' , 'Underline', '-', 'TextColor' , 'FontSize', 'Font']] });   
            

            el.getProperty('rel') != "advanced" && el.getProperty('rel') != "reading" ? CKEDITOR.config.forcePasteAsPlainText = true : CKEDITOR.config.forcePasteAsPlainText = false;

            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 = ''; });

        });  
        

        if( $('travel') ) {
        
            function SetDateTimeDropDown() {
	            var currentDate = new Date();
	            var hour = currentDate.getHours();
	            var minute = currentDate.getMinutes();
	
                var minutes = (Math.round(minute/5))* 5	
                minutes = minutes+15;
	
	            if (minutes > 59) {
		            minutes = minutes % 60;
		            hour++; 
		            if(hour > 23) {
			            day++;
			            hour = 0;
		            } 
	            }
		
	            var month = currentDate.getMonth();
	            var day = currentDate.getDate();
	            var year = currentDate.getFullYear();
	
	            var monthList = new Array(12);
	            monthList[0]="Jan";
	            monthList[1]="Feb";
	            monthList[2]="Mar";
	            monthList[3]="Apr";
	            monthList[4]="May";
	            monthList[5]="Jun";
	            monthList[6]="Jul";
	            monthList[7]="Aug";
	            monthList[8]="Sep";
	            monthList[9]="Oct";
	            monthList[10]="Nov";
	            monthList[11]="Dec";
	
	            var displayMonthsText = new Array(3);
	            var displayMonthsNumber = new Array(3);
	            var followingYear = year+1;
	
	            switch(month) {
	                case 10: 
		                displayMonthsText[0] = monthList[month]+" "+year;
		                displayMonthsText[1] = monthList[month+1]+" "+year;
		                displayMonthsText[2] = monthList[0]+" "+followingYear;
			
		                var month2 = month+1;
		                var month3 = month+2;
		
		                displayMonthsNumber[0] = month2+""+year;
		                displayMonthsNumber[1] = month3+""+year;
		                displayMonthsNumber[2] = "01"+followingYear;
		            break;
			
	                case 11: 
		                displayMonthsText[0] = monthList[month]+" "+year;
		                displayMonthsText[1] = monthList[0]+" "+followingYear;
		                displayMonthsText[2] = monthList[1]+" "+followingYear;
		
		                var currentMonth = month+1;
		                
		                displayMonthsNumber[0] = currentMonth+""+year;
		                displayMonthsNumber[1] = "01"+followingYear;
		                displayMonthsNumber[2] = "02"+followingYear;
		            break;
				
	                default:
		                var month2 = month+1;
		                var month3 = month+2;
		                var month4 = month+3;
			
		                displayMonthsText[0] = monthList[month]+" "+year;
		                displayMonthsText[1] = monthList[month2]+" "+year;
		                displayMonthsText[2] = monthList[month3]+" "+year;
		
		                displayMonthsNumber[0] = "0"+month2+year;
		                displayMonthsNumber[1] = "0"+month3+year;
		                displayMonthsNumber[2] = "0"+month4+year;
		            break;
	            }

	            var hourDropDownList = document.getElementById("timeHours"); 
	            var minutesDropDownList = document.getElementById("timeMinutes");
	            var daysDropDownList = document.getElementById("dateTimeDay");
	            var monthsDropDownList = document.getElementById("dateTimeMonth");

	            for (i = 0; i< hourDropDownList.options.length; i++){    
    	            if (hourDropDownList.options[i].value == hour) {
			            hourDropDownList.options[i].selected = true;
			            break;
		            }
	            }

	            for (k = 0; k< minutesDropDownList.options.length; k++){	    
    	            if (minutesDropDownList.options[k].value == minutes) {
			            minutesDropDownList.options[k].selected = true;
			            break;
		            }
	            }

	            for (m = 0; m< daysDropDownList.options.length; m++){    
		            if (daysDropDownList.options[m].value == day){
			            daysDropDownList.options[m].selected = true;
			            break;
		            }
	            }

	            for (n = 0; n< displayMonthsText.length; n++){	    
		            monthsDropDownList.options[n]=new Option(displayMonthsText[n], displayMonthsNumber[n]);
	            }
	            monthsDropDownList.selectedIndex = 0;
            }

            function AssembleParameters(){

	            var fixedType = document.getElementById("originaltype").value;  
	            var fixedData = document.getElementById("originaldata").value;  
	            var fixedName =  document.getElementById("originalname").value;

	            var directionList = document.getElementById("fromTo"); 
	            var inputText = document.getElementById("txtOrigin").value;  
	            var selection = directionList.options[directionList.selectedIndex].value;

	            document.getElementById("departureDate").value = GetDate();  
	            document.getElementById("departureTime").value = GetTime();

	            if( selection == "From") {
		            document.getElementById("originData").value = fixedData;    
		            document.getElementById("originName").value = fixedName;	 
		            document.getElementById("originType").value = fixedType;   	
		            document.getElementById("destinationData").value = inputText;  
	                document.getElementById("destinationName").value = inputText;  
	                document.getElementById("destinationType").value = "p";
	            } else {	
		            document.getElementById("destinationData").value = fixedData;  
    	            document.getElementById("destinationName").value = fixedName;  
    	            document.getElementById("destinationType").value = fixedType;
		            document.getElementById("originData").value = inputText;        
		            document.getElementById("originType").value = "p";       
		            document.getElementById("originName").value = inputText; 
	            }
            }

            function GetTime() {
	            var hour = document.getElementById("timeHours").options[document.getElementById("timeHours").selectedIndex].value; 
	            var min = document.getElementById("timeMinutes").options[document.getElementById("timeMinutes").selectedIndex].value; 
	            return hour+""+min;
            }

            function GetDate() {
                var day = document.getElementById("dateTimeDay").options[document.getElementById("dateTimeDay").selectedIndex].value; 
                var monthYear = document.getElementById("dateTimeMonth").options[document.getElementById("dateTimeMonth").selectedIndex].value; 
                return day+""+monthYear;
            }

            SetDateTimeDropDown();
        
        }
    
        
    }, 
    
    'unload': function() {
    
    
    },
    
    'resize': function() {
    }
    
});
