
	/*
	* Vytvoreni widgetu s datem 
	* @param targetLabel HTML element do ktereho se vlozi datum z kalendare, a ze ktereho se bere pripadne prednastavene datum
	* @param class Custom classa na skinovani pozadi
	* @param funkce ktera se vykona pri zavreni kalendare
	* @param formPrvek formPrvek do ktereho se zapise hodnota
	* @return htmlelement s kalendarem
	*
	*/
	function SmallCalendar(targetLabel, customClassName, formPrvek){
		
		this.targetLabel = targetLabel;
		this.customClassName = customClassName;
		this.formPrvek = formPrvek;
		this.doafterClose = null;

		var that=this;
		this.relatedDateElement = null;
		
		this.makeHolderHtml = function(){
			/*
			var elem = document.createElement('div');
			elem.id="customCalendarHolder";
			document.body.appendChild(elem);
			*/
			var html = "<div id='customCalendarHolder' class='yui-skin-sam "+that.customClassName+"'></div>";
			return html;
		}
	

		this.dropCalendar = function(){
			
			var calendarCustom = new Cal("calendarCustom","customCalendarHolder"); 
						
			calendarCustom.cfg.setProperty("MONTHS_SHORT",   	["Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čec", "Srp", "Zář", "Říj", "Lis", "Pro"]); 
			calendarCustom.cfg.setProperty("MONTHS_LONG",    	["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"]); 
			calendarCustom.cfg.setProperty("WEEKDAYS_SHORT", 	["Ne", "Po", "Út", "St", "Čt", "Pá", "So"]); 
			calendarCustom.cfg.setProperty("WEEKDAYS_MEDIUM",	["Ne", "Po", "Út", "St", "Čt", "Pá", "So"]); 
			calendarCustom.cfg.setProperty("WEEKDAYS_LONG",  	["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"]);
	
			if (that.targetLabel.innerHTML!=""){
				// kuli YUI a oznacovani vybranych polozek musim prehodit mesice a dny
				var timeDataArr = that.targetLabel.innerHTML.split(".");
				if (timeDataArr.length){
					var timeData = timeDataArr[1]+"/"+timeDataArr[0]+"/"+timeDataArr[2];
				}
				calendarCustom.cfg.setProperty("selected",timeData,false)
			}
			
			function handleSelect(type,args,obj) { 
			
				var dates = args[0]; 
				var date = dates[0]; 
				var year = date[0], month = date[1], day = date[2]; 
				// hook kuli search widgetu
				if (Dom.hasClass(targetLabel,'virgin')){
					Dom.removeClass(targetLabel,'virgin');
				}
				
				// naplnit form element
				if (that.formPrvek){
					that.formPrvek.value =day + "." + month + "." + year;
				} 
				
				// naplnit label
				if(that.targetLabel.value){
					that.targetLabel.value = day + "." + month + "." + year; 
				} else {
					that.targetLabel.innerHTML = day + "." + month + "." + year; 
				}
				
				var ctxBoxElement = Dom.getAncestorByClassName(Dom.get("customCalendarHolder"),'ctxBox');			
				ctxBoxElement.parentNode.removeChild(ctxBoxElement);
				calendarCustom.hide();
			} 
			
			
			// DO ... 
			if (formPrvek.name.indexOf('do')>(-1) && that.relatedDateElement != null){
				
				var dneska = new Date();
				calendarCustom.cfg.setProperty("mindate",dneska,false);				
				
				if (formPrvek.value!="" && that.relatedDateElement.value==""){
					var formPrvekDate = formPrvek.value.split(".");
					calendarCustom.cfg.setProperty("selected",formPrvekDate[1]+"/"+formPrvekDate[0]+"/"+formPrvekDate[2],false);
					calendarCustom.cfg.setProperty("pagedate",formPrvekDate[1]+"/"+formPrvekDate[2]);	
				} else if (formPrvek.value=="" && that.relatedDateElement.value!=""){
					var formPrvekDate = that.relatedDateElement.value.split(".");
					calendarCustom.cfg.setProperty("pagedate",formPrvekDate[1]+"/"+formPrvekDate[2]);	
					calendarCustom.cfg.setProperty("mindate",formPrvekDate[1]+"/"+formPrvekDate[0]+"/"+formPrvekDate[2],false);
				} else {
					var formPrvekDate = that.relatedDateElement.value.split(".");
					calendarCustom.cfg.setProperty("mindate",formPrvekDate[1]+"/"+formPrvekDate[0]+"/"+formPrvekDate[2],false);
				}				
			
			// OD ... 
			} else if (formPrvek.name.indexOf('od')>(-1) && that.relatedDateElement != null){
				
				var dneska = new Date();
				calendarCustom.cfg.setProperty("mindate",dneska,false);
				
				if (formPrvek.value!="" && that.relatedDateElement.value==""){
					var formPrvekDate = formPrvek.value.split(".");
					calendarCustom.cfg.setProperty("selected",formPrvekDate[1]+"/"+formPrvekDate[0]+"/"+formPrvekDate[2],false);
					calendarCustom.cfg.setProperty("pagedate",formPrvekDate[1]+"/"+formPrvekDate[2]);	
				} else if (formPrvek.value=="" && that.relatedDateElement.value!=""){
					var formPrvekDate = that.relatedDateElement.value.split(".");
					calendarCustom.cfg.setProperty("pagedate",formPrvekDate[1]+"/"+formPrvekDate[2]);	
					calendarCustom.cfg.setProperty("maxdate",formPrvekDate[1]+"/"+formPrvekDate[0]+"/"+formPrvekDate[2],false);
				} else {
					var formPrvekDate = that.relatedDateElement.value.split(".");
					calendarCustom.cfg.setProperty("maxdate",formPrvekDate[1]+"/"+formPrvekDate[0]+"/"+formPrvekDate[2],false);
				}
				
			} else {
				
				// else 
				
			}
					
			
			// vychozi oznaceni 
			if (formPrvek.value!=""){
				var selectedDate = formPrvek.value.split(".");
				calendarCustom.cfg.setProperty("pagedate",selectedDate[1]+"/"+selectedDate[2]);				
			}
			
			calendarCustom.selectEvent.subscribe(handleSelect,calendarCustom.cal1, true);
			
			
			calendarCustom.render();
		
		}
		
		
	} 


