var	dialogs = 0;
var dialogs_elems = Array();

var Dialog = {
	options: '',
	
	close: function(did) {
		$(did).remove();
		dialogs--;
		//alert(dialogs);
		dialogs_elems.pop();
		if (dialogs == 0) {
			if (navigator.appName.indexOf('Explorer') >= 0) {
				var v = navigator.appVersion.split(';');
				var v2 = v[1].split(' ');
				var v3 = v2[2].split('.');
				var version = v3[0];
				if (version < 7) {
					var selects = document.getElementsByTagName('select');
					for (var i = 0; i < selects.length; i++)
		   				selects[i].style.visibility = 'visible';
				}
			}
			if (Element.getOpacity($('main')) == this.options.opacity)
				new Effect.Opacity($('main'),{duration:0.5, from:this.options.opacity, to:1.0});			
		}
        // hack by Nicolas
        if(document.getElementById('darkenScreenObject') != null){
            j('#darkenScreenObject').css({display: 'none'});
        }
	},
	

	bringToFront: function(did) {
		/*var maxZIndex = 0;
		for (var i = 0; i < dialogs_elems.length; i++) {
			if (dialogs_elems[i].style.zIndex > maxZIndex)
				maxZIndex = dialogs_elems[i].style.zIndex;
		}
		//alert(did+' '+maxZIndex);
		$(did).style.zIndex = maxZIndex + 1;*/
	},

	
	create: function(did,script,custom) {
		try {
			var dialog = $(did).width;	
			var cont = $(did+'_cont');
		   	this.options = Object.extend({ 
	      		querystr	: '',
				closebutton : true,
	      		loader		: '<div style="text-align:center"><img src="/images/ajaxloaders/animated_timer_bar.gif" /></div>'
		    }, arguments[2] || {});					
			
		} catch(e) {
	    	this.options = Object.extend({ 
	      		disablebg	: false,
	      		/*filter_div_id : 'main',*/
				closebutton : true,
	      		width		: 400,
	      		height		: 200,
	      		draggable	: true,
	      		loader		: '<div style="text-align:center"><img src="/images/ajaxloaders/animated_timer_bar.gif" /></div>',
	      		title		: 'title',
	      		querystr	: '',
	      		opacity		: 0.5
		    }, arguments[2] || {});				
			

		    if (this.options.disablebg && dialogs == 0)
				new Effect.Opacity($('main'),{duration:0.5, from:1.0, to:this.options.opacity});
		    	
			
		    var dialog = Builder.node('div', {id:did, className:'dialog'});
			dialog = $(dialog);
			
			var handle = Builder.node('div', {id:did+'_handle', className:'handle', onclick:"Dialog.bringToFront('"+did+"')"});
			var cont = Builder.node('div', {id:did+'_cont', className:'cont'});
			var dialogtitle = Builder.node('div', {id:did+'_dialogtitle', className:'dialogtitle'});
			var close = Builder.node('div', {id:did+'_close', className:'close'});
			//var close_img = Builder.node('img', {src:'/images/close.gif', style:'cursor:pointer', onclick:'this.parentNode.parentNode.parentNode.remove(); Dialog.showSelectsForIE()'});
			var close_img = Builder.node('img', {id: 'dialogCloseBtn',src:'/images/close.png', style:'cursor:pointer', vspace: 1,onclick:"Dialog.close('"+did+"'); return false"});
			
			if(this.options.closebutton)
				close.appendChild(close_img);
				
			handle.appendChild(dialogtitle);
			handle.appendChild(close);
			dialog.appendChild(handle);
			dialog.appendChild(cont);	
	
			dialogtitle = $(dialogtitle);
			cont = $(cont);
			
			dialogtitle = $(dialogtitle);
			cont = $(cont);
   
		    dialog.style.width = this.options.width+"px";
			handle.style.height = "15px";
			cont.style.height = (this.options.height - 15)+"px";
			cont.style.overflow = 'auto';
	
			var percentw = parseInt(((screen.availWidth - this.options.width) / 2 * 100) / screen.availWidth);
			dialog.style.left = (percentw * screen.availWidth) / 100+"px";
			
			dialogtitle.update(this.options.title);
			
			var percent = parseInt(((screen.availWidth - this.options.width) / 2 * 100) / screen.availWidth);
			dialog.style.left = (percent * screen.availWidth) / 100+"px";	
			dialog.style.top = '100px';
			document.body.appendChild(dialog);
	
			if (dialogs == 0 && navigator.appName.indexOf('Explorer') >= 0) {
				var v = navigator.appVersion.split(';');
				var v2 = v[1].split(' ');
				var v3 = v2[2].split('.');
				var version = v3[0];
				if (version < 7) {
					var selects = document.getElementsByTagName('select');
					for (var i = 0; i < selects.length; i++)
		   				selects[i].style.visibility = 'hidden';
				}
			}
	
			if (this.options.draggable) {	
				handle.style.cursor = 'move';	
				new Draggable(did,{
				  	handle:$(handle),	
					starteffect:'',
				   	endeffect:''
				});			
			}

			dialogs++;
			dialogs_elems.push(dialog);					

		}
		
        if(typeof(this.options.content) == 'undefined'){
            new Ajax.Updater(cont,script, {
                method: 'post',
                evalScripts: true,
                postBody: this.options.querystr,
                onCreate: cont.update(this.options.loader)
            });
        }else{
            cont.update(this.options.content);
        }
	}
}
