///////////////////////////////////////OPEN IN NEW WINDOW

/**
* ouvre le lien dans une nouvelle fenêtre
*
*/
function openInNewWindow ( e ) {
	
        Event . stop ( e ) ;
	
        var href = Event . element ( e ) . href ;
	
        window . open ( href ) ;
}

/**
* initialise l'ouverture dans une autre fenêtre
*
*/
function initOpenInNewWindow ( ) {
	
        $$ ( '.openInNewWindow' ) . each ( function  ( e ) {
                Event . observe ( $ ( e ) , 'click', openInNewWindow )
        } ) ;
}

///////////////////////////////////////WATCHIMAGE

/**
 * watchImage
 * @param {event} e 
 */
function watchImage ( e ) {
	
        Event . stop ( e ) ;
	
        var href = Event . element ( e ) . href ;
	
        var data = $H ( {
                'href' : href, 
                'action' : 'watchimage'
        } ) . toQueryString ( ) ;
	
        new Ajax . Updater ( 'showImage', 'watchimage', {
                postBody : data,
                onComplete : function ( ) {
                        new Effect . Appear ( 'showImage' ) ;
                        Event . observe ( $ ( 'closeImage' ), 'click', function ( ) {
                                new Effect . Fade ( 'showImage' )
                        } ) ;
                }
        });
}

/**
 * initWatchImage
 */
function initWatchImage(   ) {
	 
        $$ ( '.watchImage' ) . each ( function  ( e ) {
                Event . observe ( $ ( e ) , 'click', watchImage )
        } ) ;
}

///////////////////////////////////////WATCHIMAGE

/**
 * journalImage
 */
function journalImage ( e ) {
 	
        Event . stop ( e ) ;
 	
        var href = Event . element ( e ) . href ;
        var id = Event . element ( e ) . id ;
 	
        if ( id == 'previousImage' ) {
                var moveX = -20 ;
                var positionBeforeMoving = 178 ;
        } else {
                var moveX = 20 ;
                var positionBeforeMoving = 138 ;
        }

	
        var data = $H ( {
                'href' : href, 
                'id' : id, 
                'action' : 'journalimage'
        } ) . toQueryString ( ) ;
	
        new Ajax . Request ( 'journalimage', {
                postBody : data,
                onLoading : function ( ) {

                        $ ( 'ajaxLoader' ) . show ( ) ;
                        $ ( 'ajaxLoader' ) . addClassName ( ' ajaxLoaderOk' ) ;
                },
                onSuccess : function ( requester ) {
			
                        var responseArray = eval ( requester . responseJSON ) ;
			
                        $ ( 'articleDetails' ) . update ( responseArray [ 'details' ] ) ;
			
                        loadImage = new Image ( ) ;
                        loadImage . src = responseArray [ 'image' ] ;
			
                        new Effect . Parallel ( [ 
			
                                new Effect . Move ( 'articleDetailImage', {
                                        sync : true, 
                                        x : moveX, 
                                        y : 0, 
                                        mode : 'relative'
                                } ),
                                new Effect . Fade( 'articleDetailImage', {
                                        sync : true
                                } )
			
                                ], { 
                                        duration : 1,
                                        afterFinish : function ( ) {
					
                                                $ ( 'articleDetailImage' ) . setStyle ( {
                                                        'left' : positionBeforeMoving + 'px'
                                                } ) ;
                                                $ ( 'articleDetailImage' ) . update ( responseArray [ 'image' ] ) ;
					
                                                new Effect . Parallel ( [ 

                                                        new Effect . Move ( 'articleDetailImage', {
                                                                sync : true, 
                                                                x : moveX, 
                                                                y : 0, 
                                                                mode : 'relative'
                                                        } ),
                                                        new Effect . Appear ( 'articleDetailImage', {
                                                                sync : true
                                                        } )

                                                        ], { 
                                                                duration : 1,
                                                                afterFinish : function ( ) {

                                                                        $ ( 'ajaxLoader' ) . removeClassName ( 'ajaxLoaderOk' ) ;
                                                                        $ ( 'ajaxLoader' ) . hide ( ) ;
                                                                }
                                                        } ) ;
                                        }
                                } ) ;
			
                        $$ ( '.journalImageHand' ) . each ( function  ( e ) {
                                Event . observe ( $ ( e ) , 'click', journalImage )
                        } ) ;
                }
        });
}

/**
 * initJOurnalImages
 */
function initJournalImage(   ) {
	 
        $$ ( '.journalImageHand' ) . each ( function  ( e ) {
                Event . observe ( $ ( e ) , 'click', journalImage )
        } ) ;
}

/**
 * biblioImage
 */
function biblioImage ( e ) {

        Event . stop ( e ) ;

        var href = Event . element ( e ) . href ;
        var id = Event . element ( e ) . id ;

        if ( id == 'previousImage' ) {
                var moveX = -20 ;
                var positionBeforeMoving = 178 ;
        } else {
                var moveX = 20 ;
                var positionBeforeMoving = 138 ;
        }


        var data = $H ( {
                'href' : href, 
                'id' : id, 
                'action' : 'biblioimage'
        } ) . toQueryString ( ) ;

        new Ajax . Request ( 'biblioimage', {
                postBody : data,
                onLoading : function ( ) {

                        $ ( 'ajaxLoader' ) . show ( ) ;
                        $ ( 'ajaxLoader' ) . addClassName ( ' ajaxLoaderOk' ) ;
                },
                onSuccess : function ( requester ) {

                        var responseArray = eval ( requester . responseJSON ) ;

                        $ ( 'articleDetails' ) . update ( responseArray [ 'details' ] ) ;

                        loadImage = new Image ( ) ;
                        loadImage . src = responseArray [ 'image' ] ;

                        new Effect . Parallel ( [

                                new Effect . Move ( 'articleDetailImage', {
                                        sync : true, 
                                        x : moveX, 
                                        y : 0, 
                                        mode : 'relative'
                                } ),
                                new Effect . Fade( 'articleDetailImage', {
                                        sync : true
                                } )

                                ], {
                                        duration : 1,
                                        afterFinish : function ( ) {

                                                $ ( 'articleDetailImage' ) . setStyle ( {
                                                        'left' : positionBeforeMoving + 'px'
                                                } ) ;
                                                $ ( 'articleDetailImage' ) . update ( responseArray [ 'image' ] ) ;

                                                new Effect . Parallel ( [

                                                        new Effect . Move ( 'articleDetailImage', {
                                                                sync : true, 
                                                                x : moveX, 
                                                                y : 0, 
                                                                mode : 'relative'
                                                        } ),
                                                        new Effect . Appear ( 'articleDetailImage', {
                                                                sync : true
                                                        } )

                                                        ], {
                                                                duration : 1,
                                                                afterFinish : function ( ) {

                                                                        $ ( 'ajaxLoader' ) . removeClassName ( 'ajaxLoaderOk' ) ;
                                                                        $ ( 'ajaxLoader' ) . hide ( ) ;
                                                                }
                                                        } ) ;
                                        }
                                } ) ;

                        $$ ( '.biblioImageHand' ) . each ( function  ( e ) {
                                Event . observe ( $ ( e ) , 'click', biblioImage )
                        } ) ;
                }
        });
}

/**
 * initBiblioImages
 */
function initBiblioImage(   ) {

        $$ ( '.biblioImageHand' ) . each ( function  ( e ) {
                Event . observe ( $ ( e ) , 'click', biblioImage )
        } ) ;
}

///////////////////////////////////////INIT

Event.observe ( window, 'load', initJournalImage, false ) ; 
Event.observe ( window, 'load', initBiblioImage, false ) ;
Event.observe ( window, 'load', initOpenInNewWindow, false ) ; 
Event.observe ( window, 'load', initWatchImage ) ; 

