/*
<div id='lbOverlay'></div>
<div id='lbCenter' class='messageGood/messageBad'>
	<div class='messageHeader'>
	</div>
	<div class='messageBody'>
	</div>
</div>


<div class="messageBox">
<div class="mb-t-l"></div>
<div class="mb-t-c"></div>
<div class="mb-t-r"></div>
<div class="mb-c-l">
        <div class="mb-c-r">
            <div class="mb-c-c"></div>
          </div>
      </div>
    <div class="mb-b-l">
         <div class="mb-b-r">
             <div class="mb-b-c"></div>
        </div>
    </div>
</div>
*/
var Zpravy = new Class({
	initialize: function(nadpis,type,data){
			options = $extend({
			classOk: 'messageBox',
			classKo: 'messageBox',
			classInfo:'messageBox',
			initialWidth:500,
			initialHeight:250,
			isForm:false
			});		
			switch(type){
				default:
				case'info':tridaStylu=options.classInfo;break;
				case'good':tridaStylu=options.classOk;break;
				case'bad':tridaStylu=options.classKo;break;
			}
		this.skryj();
		if($(data)){
			text=$(data).innerHTML;
			//$(data).destroy();
		}else{
			text=data;
		}
		
		pozadi= new Element('div', {'id': 'lbOverlay', 'styles': {'display': ''}}).addEvent("click", this.close);
		fx = {pozadi: pozadi.effect('opacity', {duration: 20}).hide()};
		fx.pozadi.start(0.7);				
		this.position();
		pozadi.injectInside(document.body);
		
		messageBox = new Element('div', {'class':tridaStylu});
		messageBox.setStyles({top: window.getScrollTop() + (window.getHeight() / 5), width: 600, marginLeft: ((window.getWidth()/2)-300), display: ""});
		messageBox.injectInside(document.body);
		messageBox_t_l = new Element('div', {'class': 'mb-t-l'}).injectInside(messageBox);
		messageBox_t_c = new Element('div', {'class': 'mb-t-c'}).injectInside(messageBox);
		messageBox_t_c_span = new Element('span').injectInside(messageBox_t_c);
		messageBox_t_c_span.setHTML(nadpis);
		messageBox_t_c_close = new Element('div', {'class': 'mb-t-c-close'}).injectInside(messageBox_t_c);
		messageBox_t_c_close.addEvent("click", this.close);
		messageBox_t_r = new Element('div', {'class': 'mb-t-r'}).injectInside(messageBox);
		messageBox_c_l = new Element('div', {'class': 'mb-c-l'});
		messageBox_c_r = new Element('div', {'class': 'mb-c-r'}).injectInside(messageBox_c_l);
		messageBox_c_c = new Element('div', {'class': 'mb-c-c'}).injectInside(messageBox_c_r);
		messageBox_c_c_p = new Element('p',{'id':'detail-zpravy'}).injectInside(messageBox_c_c);
		messageBox_c_c_p.setHTML(text);
		messageBox_c_l.injectInside(messageBox);
		messageBox_b_l = new Element('div', {'class': 'mb-b-l'});
		messageBox_b_r = new Element('div', {'class': 'mb-b-r'}).injectInside(messageBox_b_l);
		messageBox_b_c = new Element('div', {'class': 'mb-b-c'}).injectInside(messageBox_b_r);		
		messageBox_b_l.injectInside(messageBox);
		//fx.overlay.start(0.9);
		//return false;
	},
	insertForm:function(){
		formular=new Element('form',{'method':'post'}).injectInside(messageBox_c_c);
		isForm=true;
	},	
	makeInputs:function(aLabels,aTypes,aValidatorsParam,formatParam,idToInsert,clear){
		insertVystupTo=idToInsert;
		aVlidators=aValidatorsParam;
		format=formatParam;
		clearBeforeInsert=clear;
		window.inputs=new Array;
		if(isForm)messageBox_c_c=formular;
		for(i=0;i<aLabels.length;i++){
		//aLabels.each(function (label){
			label=aLabels[i];
			typeOfInput=aTypes[i];
			oLabel=new Element('label',{'for':'vstup'}).injectInside(messageBox_c_c);
			oLabel.setHTML(label);
			switch(typeOfInput){
				case'text':input=new Element('input',{'type':'text','name':'box[]'});break;
				case'textarea':input=new Element('textarea',{'name':'box[]','cols':'50','rows':'5'});break;
			}
			window.inputs.push(input.injectInside(messageBox_c_c));
			input.focus();
		};
		oSubmit=new Element('input',{'type':'submit','value':'   OK    ','class':'btn'}).injectInside(messageBox_c_c);
		if(isForm){//mam form tak nic neresim a cekamproste na submit
		}else{
			oSubmit.addEvent('click',this.doSubmit);
			oSubmit.addEvent('dblclick',this.closeSubmit);
		}
	},
	doSubmit:function(){
		window.doClose=true;
		for(i=0;i<window.inputs.length;i++){
			window.inputs[i].value=window.inputs[i].value.replace(/^\s+|\s+$/g,"");
			if(!validateInput(window.inputs[i].value,aVlidators[i])){
				window.inputs[i].style.border='1px solid red';
				window.doClose=false;
				
			}else{
				window.inputs[i].style.border='1px solid green';
				format=format.replace('#'+i,window.inputs[i].value);
			}
		}
		if(window.doClose)insertAtCursor(insertVystupTo,format,clearBeforeInsert);
		oSubmit.fireEvent('dblclick');
	},
	closeSubmit:function(){
		//alert(this.doClose);
		if(window.doClose){
			pozadi.parentNode.removeChild(pozadi);
			messageBox.parentNode.removeChild(messageBox);
			window.skryte.forEach(function(el){
				el.style.visibility='visible';
			});
			window['removeEvent']("scroll", this.position)['removeEvent']("resize", this.position);
		}
	},	
	close:function(){
			pozadi.parentNode.removeChild(pozadi);
			messageBox.parentNode.removeChild(messageBox);
			window.skryte.forEach(function(el){
				el.style.visibility='visible';
			});
			window['removeEvent']("scroll", this.position)['removeEvent']("resize", this.position);
	},
	skryj: function () {
		window.skryte=new Array;
		["object","embed","select"].forEach(function(tag) {
			var elements = $A(document.getElementsByTagName(tag));
			elements.each(function(el){
					//el.setStyle('visibility','hidden'); nejde v IE
					if(el.name!=''){
						el.style.visibility='hidden';
						window.skryte.push(el);
					}
			});
		});
		//zmena pozice pri scrolovani
		window['addEvent']("scroll", this.position)['addEvent']("resize", this.position);		
	},
	position:function() {
		pozadi.setStyles({top: window.getScrollTop(), height: window.getHeight()});
	}	
})
	
