function FilterMenuIniter(){
	
		//form check a uncheck
		var checkIt=function(elem){
				elem.checked=true;
				Dom.addClass(elem,'checked');
				Dom.setAttribute(elem,"checked","checked");
		}
		
		var unCheckIt=function(elem){
				elem.checked=false;
				Dom.removeClass(elem,'checked');
				elem.removeAttribute('checked');
		}
	
		/**
		 * Nacte parametry do aktualniho menu
		 * @param searchData array
		 *
		 */
		 this.filterMenuSet = function(searchData) {
			 
			if ( typeof(searchData)=="object" ){
				
								
				// prochazim vsechny polozky dat z vyhledavace
				for (var x in searchData){
					
					// slozeni ceny 
					if (x=="cenaOd"||x=="cenaDo"){
						var relatedFormContainer = Dom.get("filtrCenaContent");
						var inputs = Dom.getElementsBy(function(elem){return elem.type == "checkbox"},'input',relatedFormContainer);
						
						if (inputs.length>0){
							
							// odskrtnu nerozhoduje
							var nerozhoduje = Dom.getElementBy(function(elem){return elem.value.indexOf("nerozhoduje")==0},'input',relatedFormContainer);
							if (nerozhoduje){unCheckIt(nerozhoduje)};
							
							// oznacit vsechny inputy za vybranym
							var searchInputsAndCheckByValue = function(inputs,value){
								for (z=0;z<inputs.length;z++){
									if ( inputs[z].value.indexOf(value)>(-1) ){
										//zaskrtnu input
										checkIt(inputs[z]);
										// vyplnim label
										//setPriceLabel(inputs[z]);
									}
								}
							}
							
							// oznacit vsechny inputy pred
							var checkAllNextInputSiblinks = function(input){
								var nextInput = Dom.getNextSiblingBy(input,function(elem){return elem.tagName=="INPUT"});
								if (nextInput){
									checkIt(nextInput);
									//setPriceLabel(nextInput);
									arguments.callee(nextInput);
								}
							}
							
							var checkAllPreviousInputSiblinks = function(input){
								var PreviousInput = Dom.getPreviousSiblingBy(input,function(elem){return (elem.tagName=="INPUT" && elem.value!="nerozhoduje")});
								if (PreviousInput){
									checkIt(PreviousInput);
									//setPriceLabel(PreviousInput);
									arguments.callee(PreviousInput);
								}
							}
							
							// pokud mame jen cenu do ... musime vyplnit vsechny polozky pred ni
							if (x=="cenaOd" && !searchData['cenaDo']){
								// alert('just Od');
								
								var input = Dom.getElementBy(function(elem){return elem.value.indexOf(searchData[x])>(-1)},'input',relatedFormContainer);
								checkIt(input);
								//setPriceLabel(input);
								checkAllNextInputSiblinks(input);
								
								
							// pokud mame jen cenu od ... musime vyplnit vsechny polozky za ni
							} else if (x=="cenaDo" && !searchData['cenaOd']) {
								
								var input = Dom.getElementBy(function(elem){return elem.value.indexOf(searchData[x])>(-1)},'input',relatedFormContainer);
								checkIt(input);
								//setPriceLabel(input);
								checkAllPreviousInputSiblinks(input);
								
							} else {
								searchInputsAndCheckByValue(inputs,searchData[x]);
								
							}
						}
						
					// mame oznaceny checky ve formulari tak setnem label
					if (searchData['cenaOd'] || searchData['cenaDo']){
						
						var relatedFormContainer = Dom.get("filtrCenaContent");
						var relatedLabelHolder = Dom.getFirstChild(Dom.get("c"));
						var inputs = Dom.getElementsBy(function(elem){return elem.type == "checkbox"},'input',relatedFormContainer);
						
						for (var k=0;k<inputs.length;k++){
							if (inputs[k].checked){
								var relatedLabel = Dom.getNextSibling(inputs[k]).innerHTML;
								
								if (Dom.hasClass(relatedLabelHolder,'virgin') || relatedLabelHolder.innerHTML==Dom.getNextSibling(inputs[k]).innerHTML){
									Dom.removeClass(relatedLabelHolder,'virgin');
									relatedLabelHolder.innerHTML = relatedLabel;
								} else {
									relatedLabelHolder.innerHTML = "Více položek ...";
								}
								
							}
						}
					}

					// vlozeni lastminute 
					} else if (x=="lm" && searchData[x]==true) {
						checkIt(Dom.get("checkFilterLastminute"));
						
					// vlozeni casu
					} else if (x=="od"||x=="do") {
						
						switch (x){
							case "od":
								var relatedLabelHolder = Dom.getFirstChild(Dom.get("od"));
								Dom.get("datum_odlet").value = searchData[x];
							break;
							case "do":
								var relatedLabelHolder = Dom.getFirstChild(Dom.get("do"));
								Dom.get("datum_prilet").value = searchData[x];
							break;
						}
						
						Dom.removeClass(relatedLabelHolder,'virgin');
						relatedLabelHolder.innerHTML = searchData[x];
					
					// ostatni polozky
					} else {
						
						// hacky kuli polozkam ktere jsou ve spolecnem containeru s jinymi ktere maji odlisny url parametr ... takze se jim podstrkuje manualne jiny container
						
						switch(x){

							case "z":
								var idContainer = Dom.get('d').className.split(" ")[Dom.get('d').className.split(" ").length-1];	
							break;
							case "sa":
								var idContainer = Dom.get('h').className.split(" ")[Dom.get('h').className.split(" ").length-1];	
							break;
							default:
								var idContainer = Dom.get(x).className.split(" ")[Dom.get(x).className.split(" ").length-1];							
							}
						
						var relatedFormContainer = Dom.get(idContainer);
						var inputs = Dom.getElementsBy(function(elem){return elem.type == "checkbox"},'input',relatedFormContainer);
						
						// mame inputy muzem porovnavat
						if (inputs.length>0){
							// prochazim vsechny inputy v dane skupine ve formulari
							for (z=0;z<inputs.length;z++){
								// vice vybranych moznosti
								if (searchData[x][0]){
									for (var g in searchData[x]){
										if (inputs[z].value==searchData[x][g]){
											// odskrtnu nerozhoduje
											var nerozhoduje = Dom.getElementBy(function(elem){return elem.value.indexOf("nerozhoduje")==0},'input',relatedFormContainer);
											if (nerozhoduje){unCheckIt(nerozhoduje)};
											//zaskrtnu input
											checkIt(inputs[z]);
											// vyplnim label
											
											// hacky kuli polozkam ktere jsou ve spolecnem containeru s jinymi ktere maji odlisny url parametr ... takze se jim podstrkuje manualne jiny container
											switch(x){
												case "z":
													var relatedLabelHolder = Dom.getFirstChild(Dom.get('d'));
												break;
												case "sa":
													var relatedLabelHolder = Dom.getFirstChild(Dom.get('h'));
												break;
												default:
													var relatedLabelHolder = Dom.getFirstChild(Dom.get(x));
												}
													
											
											var relatedLabel = Dom.getNextSibling(inputs[z]).innerHTML;
											if (Dom.hasClass(relatedLabelHolder,'virgin')){
												Dom.removeClass(relatedLabelHolder,'virgin');
												relatedLabelHolder.innerHTML = relatedLabel;
											} else {
												relatedLabelHolder.innerHTML = "Více položek ...";
											}
										}
									}
									
								// jedna vybrana moznost
								} else {

									if (inputs[z].value==searchData[x]){
										// odskrtnu nerozhoduje
										var nerozhoduje = Dom.getElementBy(function(elem){return elem.value.indexOf("nerozhoduje")==0},'input',relatedFormContainer);
										if (nerozhoduje){unCheckIt(nerozhoduje)};
										
										// zaskrtnu input
										checkIt(inputs[z]);
										
											// hacky kuli polozkam ktere jsou ve spolecnem containeru s jinymi ktere maji odlisny url parametr ... takze se jim podstrkuje manualne jiny container
											switch(x){
												case "z":
													var relatedLabelHolder = Dom.getFirstChild(Dom.get('d'));
												break;
												case "sa":
													var relatedLabelHolder = Dom.getFirstChild(Dom.get('h'));
												break;
												default:
													var relatedLabelHolder = Dom.getFirstChild(Dom.get(x));
												}
										
										var relatedLabel = Dom.getNextSibling(inputs[z]).innerHTML;
										if (Dom.hasClass(relatedLabelHolder,'virgin')){
											Dom.removeClass(relatedLabelHolder,'virgin');
											relatedLabelHolder.innerHTML = relatedLabel;
										} else {
											relatedLabelHolder.innerHTML = "Více položek ...";
										}
									}
								}
							} 
						}
					}
				}
			}
		}
		
		// funkce vrati search url z aktualniho nastaveni widgetu ================================
		this.getUrlString = function(){
			
			var filterForm = Dom.get("searchData");
			var formData = {}
			for (var x=0;x<filterForm.elements.length;x++){
				filterForm.elements[x]
				formData[filterForm.elements[x].name] = filterForm.elements[x];
			}
			var formData = {};
			var formElems = Dom.getElementsByClassName('checked', 'input' , filterForm);
			for (var x=0;x<formElems.length; x++){
				if (formElems[x].value && formElems[x].value!="nerozhoduje"){
					formData[formElems[x].name] = "";
				}
			}
			for (var x=0;x<formElems.length; x++){
				if (formElems[x].value && formElems[x].value!="nerozhoduje"){
					formData[formElems[x].name] += formData[formElems[x].name]==""?formElems[x].value:","+formElems[x].value;
				}
			}
			if (formData['lm']){
				formData['lm']="1";
			}
			// vypocet max a min ceny
			if (formData['cena']){
				// vytvorim si pole vsech cen ktere se dostaly do vyhledavani
				var cenyAll = formData['cena'].replace(/,/g,"-").split("-");
				delete(formData['cena']);

				// zde je cilem projit vsechny ceny a izolovat nejvetsi a nejmensi
				var cenaOd = 999999;
				var cenaDo = 0;

				for (var x=0; x < cenyAll.length; x++){
					cenaOd = Math.min(cenaOd,cenyAll[x]);
					cenaDo = Math.max(cenaDo,cenyAll[x]);
				}
				
				if (cenaOd > 0) {
					formData['cenaOd'] = cenaOd;
				}
				if (cenaDo <= 23000) {
					formData['cenaDo'] = cenaDo;
				}
				
			}
			
			//prefix
			var getStrig = "/zajezdy/vyhledavani/";
			function isEmpty(ob){
				for(var i in ob){ return false; }
				return true;
			}
			// validace 
			if (isEmpty(formData)){
				alert("Zvolte prosím parametry vyhledávání.");
				return;
			} else {
				//slozeni stringu
				var counter = 0;
				for (var x in formData){
					getStrig+=x+"="+formData[x]+"|";
				}
				
				// pridani parametru textoveho zobrazeni
					if (window.location.href.indexOf("tz=text")>0){
						getStrig = getStrig+"tz=text";
					} else {
						getStrig = getStrig.substring(0,getStrig.length-1);					
					}

				return getStrig;
			}
		}
			
		//Get url =================================================================
		this.gotoUrl = function(url){
			window.location = url;
			
		} 
	}