var dialog;

document.observe("dom:loaded", function(){
	
    dialog = new ldDialog(); 
								
	});


var ldDialog = Class.create();


ldDialog.prototype = {
  
	//constructor  
	initialize: function() {
	
		//initialize window
		this.dialog = new Window('ldDialog', {
								className: 'ldDialog',
								top:100, left:100, 
								width: 680, height: 513, 
								zIndex:150, 
								resizable: false, 
								title: " ", 
								onBeforeShow: function(){
										WindowUtilities.disableScreen('dialog','overlay_modal',0.6);	
									},
								onClose: function(){
										WindowUtilities.enableScreen();
									}
							});
		
		// create and append dialog content DOMs
		this.dialogContent = new Element('div',{'id':'dialogContent'}).update(new Element('img',{'src':'../../img/loading.gif','style':'margin:100px 300px;'}));
		this.eventKeydown = this.checkEscClose.bindAsEventListener(this);
		
	},
	
	show: function(dialogTitle, width, height) {
		this.dialog.setTitle(dialogTitle);
		if(width && height) {
			this.dialog.setSize(width, height);
		} else {
			this.dialog.setSize('680', '513');
		}
		this.dialog.setContent(this.dialogContent);
		this.dialog.showCenter();
		Event.observe(document, 'keydown', this.eventKeydown);
	},
	
	
	showMessage: function(args) {
		this.dialog.setSize('330', '167');
		this.dialog.setTitle(args.title);
		if(args.type == "error") 	{ iconClass = "modalErrorIcon" };
		if(args.type == "warning") 	{ iconClass = "modalWarningIcon" };
		if(args.type == "delete") 	{ iconClass = "modalDeleteIcon" };
		if(args.type == "info") 	{ iconClass = "modalInfoIcon" };
		var messageContainer = new Element('div',{'id':'messageContainer'});
		var messageIcon = new Element('div',{'id':'messageicon'}).addClassName(iconClass);
		var messageContent = new Element('div',{'id':'messagecontent'})
								.insert(new Element('b').update(args.messageBold))
								.insert(new Element('div').update(args.messageNormal));
		var messageFooter = new Element('div',{'id':'messagefooter'});
		var messageForm = new Element('form',{'onsubmit':'return false;'});
		args.controls.each(function(item){
			var button = new Element('button').update(item.title).observe('click',item.callback);
			button.addClassName((item.defaultBtn)? 'primarybtn' : 'btn');
			messageForm.insert(button);
		});
		messageFooter.insert(messageForm);
		messageContainer.insert(messageIcon).insert(messageContent).insert(messageFooter);
		this.dialog.setContent(messageContainer);
		this.dialog.showCenter();
		Event.observe(document, 'keydown', this.eventKeydown);
	},
	
	close: function() {
		this.dialog.close();
		this.dialogContent = new Element('div',{'id':'dialogContent'}).update(new Element('img',{'src':'../../img/loading.gif','style':'margin:100px 300px;'}));
		Event.stopObserving(document, 'keydown', this.eventKeydown);
	},
	
	checkEscClose: function(event) {
		if(event.keyCode == 27) {
			this.close();
		}
	},
	
	setURL: function(url) {
		this.dialog.setURL(url);
	},
	
	setContent: function(content) {
		this.dialog.setContent(content);
	}
	
	
}


