var zindex=1000;
var popup_opened=0;

function showPopup(id) {

	var id = arguments[0];
	var withborder = arguments[1];
	
	if (typeof(withborder)!="boolean") {
		withborder = true;
	}
	
    var div = $(id);
    
    if($(id)) {
        if (div.match('.fakepopup')) {
            var popup=div.getParent('.popup');
            if (!popup) {
                makePopup(div, withborder);
                popup=div.getParent('.popup');
            }
            if ((popup.getStyle('display')!='block')) {
                var calque=$('calque');
                if (calque) {
                    if (calque.getStyle('display')!='block') {
                        calque.setStyle('display','block');
                        if (Browser.Engine.trident4) hideSelect();
                    }
                    popup_opened++;
                    size=window.getScrollSize();
                    zindex++;
                    calque.setStyles({'width':size.x, 'height':size.y, 'z-index':zindex});
                }

                popup.setStyle('display','block');
                div.setStyles({'display':'block'});
                var scroll = document.getScroll();
                var dsize = document.getSize();
                var psize = popup.getSize();
                zindex++;
                popup.setStyles({'top':scroll.y+Math.floor((dsize.y-psize.y)/2), 'left':scroll.x+Math.floor((dsize.x-psize.x)/2), 'z-index':zindex});
            }
        }
        else {
            div.setStyles({'display':'block'});
        }
    }
}

function hidePopup(id) {
    var div = $(id);
    if(div) {
        var popup=div.getParent('.popup');
        if(popup) {
            zindex--;
            popup.setStyle('display', 'none');
            var calque=$('calque');
            if (calque) {
                popup_opened--;
                zindex--;
                calque.setStyles({'z-index':zindex});
                if(Math.max(popup_opened,0)==0) {
                    popup_opened=0;
                    calque.setStyle('display','none');
                    if (Browser.Engine.trident4) showSelect();
                }
            }
        }
        else {
            div.setStyles({'display':'none'});
        }
    }
}

function showSelect() {
    var selects = $$('select');
    for(var i=0; i<selects.length; i++) {
        selects[i].setStyle('display','inline');
    }
}

function hideSelect() {
    var selects = $$('select');
    for(var i=0; i<selects.length; i++) {
        selects[i].setStyle('display','none');
    }
}

function makePopup(target, withborder) {

    target.setStyle('display','block'); // sinon => size = 0
    size=target.getSize();
    
    if (!withborder) {
    	var popup=new Element("div", {'class':'popup'});
    	var container=new Element("div", {'id':target.id+'_content', 'class':'popup-content'});
    	popup.appendChild(container);
	    $(document.body).appendChild(popup);
	    container.grab(target);    	
    }
    else {
    	
	    var popup=new Element("div", {'class':'popup'});
	
	    var handler = new Element("div");
	    handler.appendChild(new Element("div", {'class':'popup-left-top-corner floatleft trans'}));
	    handler.appendChild(new Element("div", {'class':'popup-top-middle floatleft trans'}).setStyles({'width':size.x}));
	    var closer = new Element("div", {'id':'closer-'+target.id, 'class':'popup-right-top-corner floatleft trans'});
	    closer.addEvents({
	    'click': function(){
	        hidePopup(target.id)
	    }
	    });
	    handler.appendChild(closer);
	    popup.appendChild(handler);
	
	    popup.appendChild(new Element("div", {'style':'clear: both;'}));
	
	    var left = new Element("div", {'class':'popup-left-middle trans'});
	    var right = new Element("div", {'class':'popup-right-middle trans'});
	    var container=new Element("div", {'id':target.id+'_content', 'class':'popup-content'});
	
	    right.appendChild(container);
	    left.appendChild(right);
	    popup.appendChild(left);
	    popup.appendChild(new Element("div", {'style':'clear: both;'}));
	    popup.appendChild(new Element("div", {'class':'popup-left-bottom-corner floatleft trans'}));
	    popup.appendChild(new Element("div", {'class':'popup-bottom-middle floatleft trans'}).setStyles({'width':size.x}));
	    popup.appendChild(new Element("div", {'class':'popup-right-bottom-corner floatleft trans'}));
	
	    $(document.body).appendChild(popup);
	
	    container.grab(target);
	
	    new Drag(popup,  { 'handle' : handler } );
    
    }

}

document.addEvent('domready', function() {
    var calque=new Element("div", {'id':'calque','class':'calque'});
    $(document.body).adopt(calque);
});

