

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 ) {
            
            if( $('slider') ) $('slider').setStyle( 'width' , getSize().x - 200 );

            $$('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
        
        $$('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

    /* -- 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');
        });
        
    /* -- 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 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').set('html',response.content);
                        new Fx.Scroll(window).toElement('content');
                        if( $('gateway_form') ) $('gateway_form').submit();
                    }
                    
                    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.data && response.callback ) {
                        toy_montage( response.data , response.journal , response.montage );
                    }
                    
                    if( response.panel ) { panel_switch( response.panel.panel , response.panel.index ); }

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

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

        
        toy_montage_fetch = function(c,journal,montage) {
       
            ( function() {
        
            new Request.JSON({url: base_url+"imps/gift-shop" , onComplete: function(response){ if( response ) {

                if( !response.contains("skip") )  $('montage_image').setProperty( 'src' , response + "?d=" + new Date().getTime() );
                
                $('montage_count').set('html',(c+1) + " of " + data_full.length);
                
                c++;
                
                if( c == data_full.length ) {
                
                    new Request.JSON({url: base_url+"imps/gift-shop" , onComplete: function(response){ if( response ) {

                        $('montage_count').set('html',"Done \\o/ Save it locally if you want it, these images aren't stored!");
                        $('montage_image').setProperty( 'src' , response + "?d=" + new Date().getTime() );
                        
                        $$('input[name=generate_montage]').removeProperty('disabled');
                        
                    }}}).post({ 'act' : "resize_img" , 'width' : $$('input[name=size_w]')[0].getProperty('value') , 'height' : $$('input[name=size_h]')[0].getProperty('value') });

                } else toy_montage_fetch(c,journal,montage);

            }}}).post({ 'act' : "get_img" , 'user' : data_full[c] , 'journal' : journal , 'montage' : montage });
            
            }).delay(1000);
        
        }
        
        toy_montage = function( data , journal , montage ) {
            
            $$('input[name=generate_montage]').setProperty('disabled','disabled');
            $('montage_count').set('html',"Images incoming! If you have a lot of interests or a large friend or reading list, go make a cup of tea." );
            data_full = data;
            toy_montage_fetch( (montage == 0 ? 0 : 1) , journal , montage);
            
        }
                

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

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

    /* -- 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;
                }
            }
            
        });
       
        
    /* -- slider -- */
    
        if( $('slider') ) {
        
            fx_ = [];

            navigation_ = $$('#navigation li a');
            navigation_on_ = $$('#navigation li a[href$='+location.hash.replace(/#/,'')+']');
            navigation_on_.length == 0 ? navigation_[0].addClass('on') : navigation_on_[0].addClass('on');

            navigation_.addEvent( 'click' , function(e) {
        
                if( this.getProperty('href').contains('#') && $('slider') ) {
                    e.stop();
                    navigation_.removeClass('on');
                    this.addClass('on');

                    getid = this.getProperty('href').split('#');
                    sliders(getid[1]);
                }
                
            });
        
            function carousel() {

                fx_ = [];
                start = 0;
                
                slider_imgs_.each( function( el , i ) {
  
                    fx_[i] = new Fx.Morph(el,{duration:8000 , transition: Fx.Transitions.linear}).start({'left':[start,start-180]}).chain( function() {
                        if( i == 0 ) {
                            slider_imgs_[0].set('opacity',0);
                            slider_imgs_[0].setStyle( 'left' , ( slider_imgs_.length - 1 ) * 180 );
                            fx_[i].start({'opacity':[0,1]});
                            push = slider_imgs_[0];
                            slider_imgs_.each( function( el, i ) { slider_imgs_[i] = slider_imgs_[i+1]; });
                            slider_imgs_[slider_imgs_.length-1] = push;
                        }       
                    });
                    
                    start += 180;

                });
  
            }
            
            function sliders(slider_) {
            
                slider_sections_ = $$('#slider div');
                slider_section_ = $$('#slider div[id='+slider_+']')[0];

                slider_imgs_ = slider_section_.getChildren('img');
                push = 0;
                start = 0;
                
                switch( slider_ ) {
                    case "webdevelopment": $('toolbox').setProperty('src',base_style+'images/toolbox_webdev.png');
                    break;
                    case "media": $('toolbox').setProperty('src',base_style+'images/toolbox_media.png');
                    break;
                }

                if( slider_imgs_[0].getProperty('alt') ) {
                    $('screen_img').addClass('hide');
                    $('screen_med').removeClass('hide');
                } else {
                    $('screen_med').addClass('hide');
                    $('screen_img').removeClass('hide');
                    $('screen_img').setProperty('src',slider_imgs_[0].getProperty('src').replace(/sm/,'lg') ); 
                }
                    
                fx_.each( function( el , i ) { fx_[i].cancel(); } );
                $clear(carousel_run);
            
                slider_sections_.addClass('hide');
                slider_section_.removeClass('hide');

                slider_imgs_.each( function( el , i ) {  el.setStyles( 'left' ,  180 * i  ); });
                
                if( slider_imgs_.length > 1 || Browser.Engine.version == 4 && Browser.Engine.trident ) {
                    carousel();
                    carousel_run = carousel.periodical(8100);
                }
            
                slider_imgs_.addEvent( 'click' , function() { 
                    if( this.getProperty('alt') ) {
                        $('screen_img').addClass('hide');
                        $('screen_med').removeClass('hide');
                        $('toolbox').setProperty('src',base_style+'images/toolbox_media.png');
                    } else {
                        $('screen_med').addClass('hide');
                        $('screen_img').removeClass('hide');
                        $('screen_img').setProperty('src',this.getProperty('src').replace(/sm/,'lg') ); 
                        $('toolbox').setProperty('src',base_style+'images/toolbox_webdev.png');
                    }
                });
            
            }
 
            carousel_run = 0;
            sliders( location.hash ? location.hash.replace(/#/,'') : 'webdevelopment' );
            
        }
        
    },
    
    '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);
        
	/* -- tab code textarea -- */
        
        $$('.code').addEvent( 'keydown' , function(e) {
            if( e.key == 'tab' ) {
                e.stop();
                this.insertAtCursor("    ");
                this.setCaretPosition(this.getCaretPosition()+4);
            }
        });

    /* -- drop down navigation menus -- */
        
        var subnav_on_ = $$('.subnav_on');
        var a_ = [];
        var ul_ = [];
            
        $$('.subnav').addEvents({
           
            'mouseenter' : function(e) {

                $$('.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 , 'width' : this_.getSize().x , 'z-index' : 3000  });
                	} else {
                		ul_.setStyles({ 'left': this_.getPosition().x + 1 , 'top' : this_.getCoordinates().bottom , 'min-width' : this_.getSize().x , 'z-index' : 3000  });
                	}
                
                }
            },

            'mouseleave' : function() {

                a_.removeClass('subnav_on');
                ul_.addClass('hide');
                subnav_on_.addClass('subnav_on');
                
            }   
           
        });
        
    /* -- gift shop -- */
        
        if( $('tipjar') ) {
            $$('.tipjar').addEvent( 'click' , function(e) {
                e.stop();
                $('tipjar').submit();
            });
        }
        
        if( $('load_fiction') && $('load_toys_url') ) {
        
            $('load_fiction').addEvent( 'click' , function() {
            
                journal_name = $$('input[name=journal_name]')[0].getProperty('value');
                journal_password = $$('input[name=journal_password]')[0].getProperty('value');
            
                new Request.JSON({url: base_url+"imps/gift-shop" , onComplete: function(response){ if( response ) {
            
                    CKEDITOR.instances.cchapter.setData( response );

                }}}).post({ 'act' : "load_fiction" , 'url' : $('load_toys_url').getProperty('value') , 'journal_name' : journal_name , 'journal_password' : journal_password });
            
            })
        }

        if( $('load_toys_image') ) {
        
            $('load_toys_image').addEvent( 'change' , function() {
            
                form_ = $$('form[name=gift-shop]')[0];
                
                form_.setProperties({ 'target':'upload_target' , 'enctype':'multipart/form-data' , 'method':'post' , 'action':base_url+'imps/gift-shop'});
                form_.adopt( new Element( 'input' , { 'name':'act', 'id':'act', 'type':'hidden' , 'value':'upload_cover' } ) );
                form_.adopt( new Element( 'iframe' , { 'id':'upload_target', 'name':'upload_target', 'src':base_url+'imps/gift-shop' } ).setStyles({'width':0, 'height':0, 'border':0 }) );
                form_.submit();
                
                $('story_cover').set('html','');
                $('story_cover').addClass( 'ajax' );

                $('upload_target').addEvent( 'load' , function() {
                    
                    txt = $('upload_target').contentDocument.defaultView.document.body.innerHTML;
                    $('story_cover').removeClass( 'ajax' );
                    if( txt != '' ) {
                        $('story_cover').set('html', "<img src='"+txt+"?d=" + new Date().getTime() + "' />" );
                        $('scover_img').setProperty('value',txt);
                    } else $('story_cover').set('html', "<strong style='background:#C00000 ; color:#FFF ; padding:4px 6px'>Invalid file format!</strong>" );
                                
                    form_.removeProperties('target', 'enctype', 'action');
                    $('act').destroy();
                    ( function() { $('upload_target').destroy(); } ).delay(50);  
                                
                }); 
    
            });
            
        }

        if( $('load_toys_text') ) {
        
            $('load_toys_text').addEvent( 'change' , function() {
            
                form_ = $$('form[name=gift-shop]')[0];
                
                form_.setProperties({ 'target':'upload_target' , 'enctype':'multipart/form-data' , 'method':'post' , 'action':base_url+'imps/gift-shop'});
                form_.adopt( new Element( 'input' , { 'name':'act', 'id':'act', 'type':'hidden' , 'value':'upload_chapter' } ) );
                form_.adopt( new Element( 'iframe' , { 'id':'upload_target', 'name':'upload_target', 'src':base_url+'imps/gift-shop' } ).setStyles({'width':0, 'height':0, 'border':0 }) );
                form_.submit();

                $('upload_target').addEvent( 'load' , function() {
                    
                    txt = $('upload_target').contentDocument.defaultView.document.body.innerHTML;
                    CKEDITOR.instances.cchapter.setData(txt );
                                
                    form_.removeProperties('target', 'enctype', 'action');
                    $('act').destroy();
                    ( function() { $('upload_target').destroy(); } ).delay(50);  
                                
                }); 
    
            });
            
        }

    }

});
