/* exemple :
	si style = 'encyclo' prendra le style de la class 'encyclo'
	si type = 'drag' alors draggable
	-> cf ('mootools-moodalbox.css','mxcned.js')
*/

var popModalCookie = null;
var popModalResize = null;
var contenuModalResize = null;
var popModalDrag = null;
var popModalIE6Drag = null;
var div_son = null;
var popModalTop = null;
var popModalLeft = null;
var fdMask = null;
var fondModalClose = null;
var iframeMask_ie6 = null;
var modalMode = null;

function pop_modal(style, options) {
    if(options.cookie == true && popModalCookie == null) {
        popModalCookie = new Hash.Cookie('popModalCookie', {path : '/', duration: 365});
    }
	var pos_milieu_ecran = window.getHeight() / 2;
	var p_mod = null;

	if ((p_mod = $('pop-modal')) != null) {
		init_pop_modal(style);
		$('pop-modal').setProperty('class', style + '-pop-modal');
        if(window.ie6) { $('pop-modal-ie6').setProperty('class', style + '-pop-modal-ie6'); }

        if (popModalResize != null) popModalResize.detach();
		if (contenuModalResize != null) contenuModalResize.detach();

		if (options.modal == true) {

		    modalMode = true;
		    if ((fdMask = $('modal-fdMask')) == null) {
		      fdMask = new Element('div', {'id' : 'modal-fdMask'}).injectInside(document.body);
		    } else {
		      $('modal-fdMask').setProperty('class', 'dblock');
		    }
	        fdMaskHeight = window.getScrollHeight ();
	        /*
		    fdMaskHeight = window.getHeight();
		    if(window.ie6) {
		        fdMaskHeight = window.getScrollHeight ();
		    }
		    */
		    fdMask.setStyles({
    			'position' : 'absolute',
    			'width': window.getWidth(),
    			'height': fdMaskHeight,
    			'top' : 0,
    			'left' : 0,
    			'background-color' : '#FFFFFF',
    			'opacity' : .9,
    			'z-index' : 9998
    		});
    		if(window.ie6) {
    		    if ((iframeMask_ie6 = $('modal-iframeMaskIE6')) == null) {
    		      iframeMask_ie6 = new Element('iframe', {'id' : 'modal-iframeMaskIE6'}).injectInside(document.body);
    		    } else {
    		      $('modal-iframeMaskIE6').setProperty('class', 'dblock');
    		    }
    			iframeMask_ie6.setStyles({
    				'position' : 'absolute',
    				'filter' : 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)',
    				'width': window.getWidth(),
    				'height': fdMaskHeight,
    				'top' : 0,
    				'left' : 0,
    				'z-index' : 9997
    			});
    		} else {
    			fdMask.setStyles({'position' : 'fixed'});
    		}

    		if(options.fondModalClose == true) {
        		fdMask.addEvent('click',function(){
        			fermer_pop_modal(options.cookie, style);
        			$('modal-fdMask').remove();
        			if($('modal-iframeMaskIE6') != null) $('modal-iframeMaskIE6').remove();
        		});
    		}

		} else {

		    modalMode = false;
		}

		var popModalHeightMiddle = $('pop-modal').getCoordinates().height / 2;

		if(options.cookie == true && popModalCookie.get('top') != null && popModalCookie.get('left') != null) {
        	$('pop-modal').setStyles({'top': popModalCookie.get('top') + window.getScrollTop(), 'left': popModalCookie.get('left')});
        	if(window.ie6) { $('pop-modal-ie6').setStyles({'top': popModalCookie.get('top'), 'left': popModalCookie.get('left')}); }
		} else {
    		$('pop-modal').setStyle('top', pos_milieu_ecran - popModalHeightMiddle);
    		if(window.ie6) { $('pop-modal-ie6').setStyle('top', pos_milieu_ecran - popModalHeightMiddle); }

    		if(style == "panier" || style == "ficheTrou") {
    		    $('pop-modal').setStyles({'right' : 20});
    		    if(window.ie6) { $('pop-modal-ie6').setStyles({'right' : 20}); }
    		} else {
    		    var pos_largeur = (window.getWidth() - $('pop-modal').getStyle('width').toInt() ) /2 ;
    		    $('pop-modal').setStyles({'left' : pos_largeur.toInt()});
                if(window.ie6) { $('pop-modal-ie6').setStyles({'left' : pos_largeur.toInt()}); }
    		}
		}

		if(!window.ie6) {
			$('pop-modal').setStyles({'position' : 'fixed'});
		} else {
			$('pop-modal').setStyle('top', pos_milieu_ecran - popModalHeightMiddle + window.getScrollTop());
			window.addEvent('scroll', function() {
				$('pop-modal').setStyle('top', pos_milieu_ecran - popModalHeightMiddle + window.getScrollTop());
			});
		}

		if ((fermer_modal_bt= $('fermer-modal-bt')) != null) {
    		$('fermer-modal-bt').addEvent('click',function(){
    			fermer_pop_modal(options.cookie, style);
    			if($('modal-fdMask') != null) $('modal-fdMask').remove();
    			if($('modal-iframeMaskIE6') != null) $('modal-iframeMaskIE6').remove();
    		});

		    //$('fermer-modal-bt').focus();
		}

		if(options.drag == true) {
			pop_modal_drag(options.cookie);
			$('barre-modal').setStyles({'cursor' : 'move'});
		}

		if(options.resize == true && !window.ie6) { // TODO corriger bug ie6
			pop_modal_resize();
		}
	}
}

function init_pop_modal(style) {
	$('pop-modal').setStyles({width: '', height: ''});
	$('barre-modal').setStyles({cursor : 'default'});
	$('contenu-modal').setStyles({width: '', height: ''});
	$('barre-modal').setStyles({width: '', height: ''});
	$('resize-modal').setStyles({width: '', height: ''});

	var iframe_mod_ie6 = null;
	if ((iframe_mod_ie6 = $('pop-modal-ie6')) != null) return ;

	if(window.ie6) {
	    var iframe_ie6 = new Element('iframe', {
			'styles': { width: '', height: '' },
			'id' : 'pop-modal-ie6'
		}).addClass('pop-modal-ie6').injectInside(document.body);
		iframe_ie6.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
	}
	var panier_mod = null;
	if ((panier_mod = $('contenu-centre-modal')) != null) return ;

	if(style == 'panier' || style == 'fichetrou') {	    
        $('fermer-modal-bt').setHTML('&nbsp;');
	    new Element('div', {
			'id': 'contenu-centre-modal'
		}).addClass('contenu-centre-modal').injectInside($('contenu-modal'));
	    new Element('div', {
			'id': 'contenu-bas-modal'
		}).addClass('contenu-bas-modal').injectInside($('contenu-modal'));
	}
}

function fermer_pop_modal(cookie, style) {

    if(cookie == true && popModalCookie != null) {
       popModalCookie.extend({'display': 'none'});
    }
    if(style != 'panier' && style != 'fichetrou') {
    	if ((div_son = $('sons-swf')) != null) {
    		$('sons-swf').empty();
    	}
    	$('contenu-modal').empty();
    }
    $('pop-modal').setProperty('class', 'dnone');

    // Si IE6, rend invisible la fenetre pour IE6
    if(window.ie6) {
        var iframe_mod_ie6 = null;
	    if ((iframe_mod_ie6 = $('pop-modal-ie6')) == null) return ;
    	$('pop-modal-ie6').setProperty('class', 'dnone');
    }

    // rend le masque invisible
    if($('modal-fdMask') != null) $('modal-fdMask').setProperty('class', 'dnone');
	if($('modal-iframeMaskIE6') != null) $('modal-iframeMaskIE6').setProperty('class', 'dnone');
}


function pop_modal_drag(cookie)
{
	if (popModalDrag != null) return ;

	popModalDrag = $('pop-modal').makeDraggable({
		handle: $('pop-modal').getElementsBySelector('.barre-modal')[0],
		onComplete : function(){
			popModalTop =  $('pop-modal').getStyle('top');
			popModalLeft =  $('pop-modal').getStyle('left');
			if(cookie == true) {
			    popModalCookie.extend({'top': popModalTop, 'left': popModalLeft});
			}
		}
	});
	if(window.ie6) {
		popModalIE6Drag = $('pop-modal-ie6').makeDraggable({
			handle: $('pop-modal').getElementsBySelector('.barre-modal')[0]
		});
	}
}

function pop_modal_resize()
{
	if (popModalResize != null) {
		popModalResize.attach();
		contenuModalResize.attach();
		return ;
	}


	popModalResize = $('pop-modal').makeResizable({
			handle: $('pop-modal').getElementsBySelector('.resize-modal-bt')[0],
			limit: {x: [152, 802], y: [73, 802]}
	});

	contenuModalResize = $('contenu-modal').makeResizable({
			//handle: $('pop-modal').getElementsBySelector('.resize-modal-bt')[0],
			handle: $('pop-modal').getElementsBySelector('.resize-modal-bt')[0],
			limit: {x: [140, 790], y: [40, 768]}
	});

	$('resize-modal').setStyles({'display' : 'block'});
	if(window.ie6) {
		$('pop-modal-ie6').makeResizable({
			handle: $('pop-modal').getElementsBySelector('.resize-modal-bt')[0],
			limit: {x: [152, 802], y: [73, 802]}
		});
	}
}

// recentre la popup (utiliser en cas de resize)
function centerPopup () {

    // hauteur
    var pos_milieu_ecran = window.getHeight() / 2;
    $('pop-modal').setStyle('top', pos_milieu_ecran - ($('pop-modal').getCoordinates().height / 2));
	if(window.ie6) {

	    $('pop-modal-ie6').setStyle('top', pos_milieu_ecran - ($('pop-modal').getCoordinates().height / 2));
	}

	// largeur
	var pos_largeur = (window.getWidth() - $('pop-modal').getStyle('width').toInt() ) /2 ;
    $('pop-modal').setStyles({'left' : pos_largeur.toInt()});
    if(window.ie6) {
        $('pop-modal-ie6').setStyles({'left' : pos_largeur.toInt()});
    }
}

// agrandit le masque aux dimensions de l'ecran (a utiliser en cas de resize)
function fdMaskResizeToScreen () {

    var fdMaskHeight = window.getHeight();
    if(window.ie6) {
        fdMaskHeight = window.getScrollHeight ();
    }
    fdMask.setStyles({
		'width': window.getWidth(),
		'height': fdMaskHeight
    });

    if(window.ie6) {

        iframeMask_ie6.setStyles({
            'height' : fdMaskHeight,
            'width' : window.getWidth ()
        });
    }
}
