/*
	modify the window object to adjust top-bar and bottom-bar
	Also provide custom positioning for dialog status message
*/
var gDialogId = 'dekoh_dialog';
var gdekoh_fontSize="x-small";
var currentActiveDialog = null;
var dekohDialog = Class.create();
dekohDialog.prototype = {
	initialize:function(id){
		this.options = Object.extend({
			className:         "&nbsp;",
			title:              "",
			minWidth:           200,
			minHeight:          300,
			resizable:          true,
			closable:           true,
			minimizable:        true,
			maximizable:        true,
			draggable:          true,
			showEffect:         Effect.Appear,
			hideEffect:         Effect.Fade,
			showEffectOptions:  {duration:0.6},
			hideEffectOptions:  {duration:0.1},
			effectOptions:      null,
			parent:             document.getElementsByTagName("body").item(0),
			url:                null,
			onload:             Prototype.emptyFunction,
			width:              200,
			height:             300,
			opacity:            1,
			recenterAuto:       true,
			wiredDrag:          false,
			xPos:               0,
			yPos:               0,
			content:            "",
			topMessage:         "",
			toolBarContent:     null,
			isModel:            true
		},arguments[1] || {});

		var win = new Window(id, {className: this.options.className, title: this.options.title, minWidth: this.options.minWidth, minHeight: this.options.minHeight, resizable: this.options.resizable, closable: this.options.closable, minimizable: this.options.minimizable, maximizable: this.options.maximizable, draggable: this.options.draggable, showEffect: this.options.showEffect, showEffectOptions: this.options.showEffectOptions, hideEffect: this.options.hideEffect, hideEffectOptions: this.options.hideEffectOptions});
		win.setSize(this.options.width,this.options.height);
		this.win = win;

		var D_content = "";
		if(this.options.topMessage != null){
			D_content += "<div class='" + this.options.className + "_dialog_info resizableText'>";
			//font-resize toolbar removed temporarily
			//D_content += "<div style='float:right;margin-right:14px;'><table><tr><td onclick='gdekoh_fontSize=\"x-small\";dialog_resizeText()' class='tbTxtSize8'>&nbsp;</td> <td onclick='gdekoh_fontSize=\"small\";dialog_resizeText()' class='tbTxtSize10'>&nbsp;</td> <td onclick='gdekoh_fontSize=\"medium\";dialog_resizeText()' class='tbTxtSize12'>&nbsp;</td></tr></table></div>" + this.options.topMessage + "</div>";
			D_content += this.options.topMessage + "</div>";
		}

		D_content += "<div style='padding:12px;position:relative;'>" + this.options.content + "</div>";

		if(this.options.toolBarContent!=null)
			D_content+="<div class='"+this.options.className+"_dialog_toolbar' style='position:absolute;top:"+(win.height-20)+"px;left:16px;width:"+(win.width-10)+"px;'>"+this.options.toolBarContent+"</div>";

		win.getContent().innerHTML = D_content;

		this.setStatusMsg = function(msgType,msgTxt){
			$('dekoh_MessageIcon').style.display = 'block';
            var styleClass="dekoh_StatusBlankIcon";
            switch(msgType){
				case 'error':
					styleClass = 'dekoh_StatusErrorIcon';
					break;
				case 'success':
					styleClass = 'dekoh_StatusSuccessIcon';
					break;
				case 'waiting':
					styleClass = 'dekoh_StatusWaitingIcon';
					break;
                case 'nomessage':
					styleClass = 'dekoh_StatusBlankIcon';
					break;
                case 'info':
                    styleClass="dekoh_StatusInfoIcon";
                    break;
                default:
					styleClass = 'dekoh_StatusBlankIcon';
					break;
			}
			if(msgTxt==null){
				msgTxt = "";
			}

			$('dekoh_MessageIcon').className = styleClass;
			$('dekoh_MessageText').innerHTML = msgTxt;

			if(msgType == null)
				$('dekoh_MessageIcon').style.display = 'none';
        };

		this.win.setStatusBar('<div id="dekoh_DstatusMessage"><div id="dekoh_MessageIcon" class="dekoh_StatusBlankIcon" style="position:relative;margin-right: 5px;float:left;margin-top:2px;">&nbsp;</div><span style="vertical-align:middle;line-height:20px;" id="dekoh_MessageText"></span></div>');

		if($('dekoh_DstatusMessage'))
			$('dekoh_DstatusMessage').style.position = "relative";

		if($('dekoh_DstatusMessage'))
			$('dekoh_DstatusMessage').style.left = "-23px";

		if(this.options.toolBarContent!=null && $('dekoh_DstatusMessage'))
			$('dekoh_DstatusMessage').style.top = "-36px";
		else
			$('dekoh_DstatusMessage').style.top = "-36px";

		win.setDestroyOnClose();
		win.show(this.options.isModel);
		win.toFront();
		win.showCenter();
		currentActiveDialog = this;
	}
}

/*
	this dialog will appear as sub-dialog to the main dialog
	e.g.    as alert box
			as modal window
*/
var dekohSubDialog = Class.create();
dekohSubDialog.prototype = {
	initialize:function(id){
		this.options = Object.extend({
			classsName:         "&nbsp;",
			title:              "Information",
			minWidth:           200,
			minHeight:          100,
			resizable:          false,
			closable:           true,
			minimizable:        false,
			maximizable:        false,
			draggable:          true,
			showEffect:         Effect.Appear,
			hideEffect:         Effect.Fade,
			showEffectOptions:  {duration:0.6},
			hideEffectOptions:  {duration:0.1},
			effectOptions:      null,
			parent:             oPeopleChooserDialog,
			url:                null,
			onload:             Prototype.emptyFunction,
			width:              200,
			height:             100,
			opacity:            1,
			recenterAuto:       true,
			wiredDrag:          false,
			xPos:               0,
			yPos:               0,
			content:            "",
			topMessage:         "",
			toolBarContent:     "",
			isModel:            true
		},arguments[1] || {});

		var win = new Window(id, {className: this.options.className, title: this.options.title, minWidth: this.options.minWidth, minHeight: this.options.minHeight, resizable: this.options.resizable, closable: this.options.closable, minimizable: this.options.minimizable, maximizable: this.options.maximizable, draggable: this.options.draggable, showEffect: this.options.showEffect, showEffectOptions: this.options.showEffectOptions, hideEffect: this.options.hideEffect, hideEffectOptions: this.options.hideEffectOptions});
		win.setSize(this.options.width,this.options.height);
		this.win = win;
		this.id = id;

		var D_content = '';
		D_content += '<div class="dekoh_text" style="padding:12px;position:relative;text-align:center;">' + this.options.content + '</div>';

		win.getContent().innerHTML = D_content;
		win.setDestroyOnClose();
		win.show(this.options.isModel);
		win.toFront();
		win.showCenter();
	}
}

function closeDialog(dialogId){
	Windows.close(dialogId);
}

function dialog_resizeText(){

	//collect all the dialog elements with class name "resizableText"
	var arrTextNodes = arrTextNodes = $$('.resizableText');

	//set font-size to the current global
	arrTextNodes.each(function(member,index){
		arrTextNodes[index].style.fontSize = gdekoh_fontSize;
	})
}