//overtext objektumok

var lmo;

var lpo;

var reo;

var rpo;

var rao;

var ots;


//POPUP LOAD

function main_popup(){

    $('main_popup_bg').style.display='block';

    $('main_popup').style.display='block';

    window.scrollTo(0,30);

    document.body.style.overflow='hidden';   

}



//IE képernyő rerenderelési bug "javítása"

function zio1(){

    window.parent.document.body.style.zoom =1.01;

    window.parent.document.body.style.zoom =1;

}



//megnézi hogy benne van e a needlle elem a haystack tömmben, argStrict: ha true az egyezést a vátozó tipusára is nézi nem csak az értékre

function in_array(needle, haystack, argStrict){

    var key = '', strict = !!argStrict; 

    if (strict){

        for (key in haystack){

            if (haystack[key] === needle){

                return true;            

            }

        }

    }else{

        for (key in haystack){

            if (haystack[key] == needle){

                return true;

            }

        }

    }

    return false;

}



//egy adott class-ú html elemekkel tér vissza

function getElementsByClass(searchClass,node,tag){

	var classElements = new Array();

	if ( node == null )

		node = document;

	if ( tag == null )

		tag = '*';

	var els = node.getElementsByTagName(tag);

	var elsLen = els.length;

	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");

	for (i = 0, j = 0; i < elsLen; i++) {

		if ( pattern.test(els[i].className) ) {

			classElements[j] = els[i];

			j++;

		}

	}

	return classElements;

}



//jelszó emlékeztető küldése ajax hívással a bejelntkező form e-mail mezője alapján, majd a visszatért válasz megjelenítése

function remind(){  

    var email = $('log_email').value;

    var re = new RegExp(/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);

    

    if(email==""){

        $('hibas_login').innerHTML = "Kérem adja meg az email címét!";

        $('hibas_login').style.display='block';

        zio1();

        return;

    }else{

        $('hibas_login').style.display='none';

    }

    if(re.exec(email)==null){

		$('hibas_login').innerHTML = "<strong>Érvénytelen e-mail cím!</strong> Kérem, írja be helyesen!";

		$('hibas_login').style.display='block';

        zio1();

		return false;

	}else{

		$('hibas_login').style.display='none';

	}

    

    

    var req = new Request.JSON({

		url: "/index.php?reminder",

		onSuccess: function(resp){

			if (resp.jo){

				$('hibas_login').innerHTML = "E-mail címére hamarosan megérkezik a jelszó emlékeztető!";

                $('hibas_login').style.display='block';

                $('log_email').value="";

                lmo.reposition();

                zio1();

			}else{

				$('hibas_login').innerHTML = resp.mess;

				$('hibas_login').style.display='block';

                zio1();

			}

		}

	}).get({'emailS':email});

    zio1();

}



//regisztrációs form megjelenítése

function show_reg(){

    $('reg_email').value="";

    $('reg_pass').value="";

    $('reg_passa').value="";

	$('regisztracio').style.display='block';

	$('bejelentkezes').style.display='none';

	$('regisztracio_szoveg').style.display='none';

	$('sikeres_reg').style.display='none';

	$('hibas_jelszavak').style.display='none';

	$('hibas_login').style.display='none';

    $('jelentkezzen_be').style.display='block';

     zio1();

    reo.reposition();

    rpo.reposition();

    rao.reposition();

    //ots.reposition();

}



//login form megjelenítése

function show_login(){

    $('log_email').value="";

    $('log_pass').value="";

	$('bejelentkezes').style.display='block';

	$('regisztracio').style.display='none';

	$('regisztracio_szoveg').style.display='block';

	$('sikeres_reg').style.display='none';

	$('hibas_jelszavak').style.display='none';

	$('hibas_login').style.display='none';

    $('jelentkezzen_be').style.display='none';

    zio1();

    lmo.reposition();

    lpo.reposition();

    

}



//regisztrációs form ellenőrzése, majd postolása ajax hívással, a visszaérkezett válasz megjelenítése

function ajax_reg(){

	$('sikeres_reg').style.display='none';

    var re = new RegExp(/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);

	var email = $('reg_email').value;

	var pass = $('reg_pass').value;

	var pass1 = $('reg_passa').value;

	if(email=="" || pass=="" || pass1==""){

		$('hibas_jelszavak').innerHTML = "<strong>Nincs kitöltve minden mező!</strong> Kérem, írja be mindet!";

		$('hibas_jelszavak').style.display='block';

        zio1();

		return false;

	}else{

		$('hibas_jelszavak').style.display='none';

	}

    

    if(re.exec(email)==null){

		$('hibas_jelszavak').innerHTML = "<strong>Érvénytelen e-mail cím!</strong> Kérem, írja be helyesen!";

		$('hibas_jelszavak').style.display='block';

        zio1();

		return false;

	}else{

		$('hibas_jelszavak').style.display='none';

	}

    

	if(pass!=pass1){

		$('hibas_jelszavak').innerHTML = "<strong>A beírt jelszavak eltérőek!</strong> Kérem, írja be helyesen!";

		$('hibas_jelszavak').style.display='block';

        zio1();

		return false;

	}else{

		$('hibas_jelszavak').style.display='none';

	}

	if(pass.length<5){

		$('hibas_jelszavak').innerHTML = "<strong>A jelszó rövidebb mint 5 karakter!</strong> Kérem hosszabb jelszót válasszon!";

		$('hibas_jelszavak').style.display='block';

        zio1();

		return false;

	}else{

		$('hibas_jelszavak').style.display='none';

	}

	

	var req = new Request.JSON({

		url: "index.php?regBtn",

		onSuccess: function(resp){

			if (resp.jo){

				$('sikeres_reg').style.display='block';

				$('regisztracio').style.display='none';

				$('reg_email').value="";

				$('reg_pass').value="";

				$('reg_passa').value="";

                zio1();

			}else{

				$('hibas_jelszavak').innerHTML = resp.mess;

				$('hibas_jelszavak').style.display='block';

                zio1();

			}

		}

	}).get({'emailS':email,'passWordS':pass,'passWordAgainS':pass1,'url':location.href});

    zio1();

    return false;

}



//Konfirmálás után, kijelentkezés ajax hívással, illetve a képernyőn a jelentkezen be rész megjelenítése

function ajax_logout(){

	if(!confirm("Tényleg kijelentkezik?")){

		return;

	}

	var req = new Request.JSON({

		url: "index.php?logOutBtn",

		onSuccess: function(resp){

			if (resp.jo){

				$('bejelentkezve').style.display='none';

                  $('up_reg_but').style.display='block';

				$('jelentkezzen_be').style.display='block';

				$('ajanl_pic').src="/img/littlePics/01.jpg";

                $('ajanl_pic').style.cursor='default';

                $('ajanl_pic').removeEvents('click');                

               // $('ajanl_title').style.cursor='default';

			}			

		}

	}).get();

    zio1();

}



//bejelentkezés form ellenérzése majd postolása ajax hívással, és a visszatért válasz feldolgozása/megjelenítése

function ajax_login(){

    var re = new RegExp(/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,3})$/);

	var email = $('log_email').value;

	var pass = $('log_pass').value;

	if(email=="" || pass=="" ) {

		$('hibas_login').innerHTML = "<strong>Nincs kitöltve minden mező hellyesen!</strong> Kérem, írja be mindet!";

		$('hibas_login').style.display='block';

        zio1();

		return false;

    }else if( re.exec(email)==null ){

        $('hibas_login').innerHTML = "<strong>Érvénytelen e-mail cím!</strong> Kérem, írja be helyesen!";

		$('hibas_login').style.display='block';

        zio1();

        return false;

	}else{

		$('hibas_login').style.display='none';

	}

	var req = new Request.JSON({

		url: "index.php?logInBtn",

		onSuccess: function(resp){

			if (resp.jo){

				$('bejelentkezve').style.display='block';

				$('jelentkezzen_be').style.display='none';

				$('bejelentkezes').style.display='none';

				$('regisztracio_szoveg').style.display='none';

				$('hibas_login').style.display='none';

                $('up_reg_but').style.display='none';

				$('log_email').value="";

				$('log_pass').value="";

				var z = $('media');

				if(!ajanl_tip)ajanl_tip=false;

				if(z && ajanl_tip){

				    $('ajanl_pic').removeEvents('click');

                //    $('ajanl_title').removeEvents('click');

				    pic = z.style.backgroundImage.replace("url(","");                                        

                    pic = pic.replace("'","");

                    pic = pic.replace("'","");

                    pic = pic.replace('"',"");

                    pic = pic.replace('"',"");

                    pic = pic.substring(0,pic.length-1);

                    

					$('ajanl_pic').src = pic;

                    $('ajanl_pic').style.cursor='pointer';                                        

                    $('ajanl_pic').addEvent('click',function(){

                        if(ajanl_tip){

                   		   ajax_addFav(ajanl_tip,ajanl_id);

                        }

                    });

				}

                zio1();

				

			}else{

				$('hibas_login').innerHTML = resp.mess;

				$('hibas_login').style.display='block';

                zio1();

			}

		}

	}).get({'emailS':email,'passWordS':pass});

    zio1();

    return false;

}



//egy kedvenc hozzáadása a listához. tip: az elem tipusa, id: az elem azonosítója az adatbázisban

function ajax_addFav(tip,id){

	var req = new Request.JSON({

		url: "index.php",

		onSuccess: function(resp){

			if (resp.jo){

				alert("Ajánlata sikeresen felvéve.\r\nHogy ajánlásait elküldje ismerőseinek \r\nkattintson az 'Ajánlja ismerőseinek' gombra!");

			}else{

				alert(resp.mess);

                if(resp.mess == "Előbb kérem jelentkezzen be vagy regisztráljon!"){

                    show_reg();

                    window.scrollTo(0, 760);

                }

			}

		}

	}).get({'favId':id,'type':tip});    

}



//ajax hívás: egy kedvenc eltávolítása a listból

function ajax_remFav(tip,id,button,cat){

	if(!confirm("Biztosan eltávolítja?"))return;

	var req = new Request.JSON({

		url: "index.php",

		onSuccess: function(resp){

			if (resp.jo){

				$("show_fav_"+tip+id).style.display='none';

                $(button).style.display='none';

                $('aj_cnt_'+cat).value = $('aj_cnt_'+cat).value-1;

                if($('aj_cnt_'+cat).value<1)$('aj_tit_'+cat).style.display='none';

			}else{

				alert("Hiba történt!")

			}

		}

	});

    req.get({'delFavId':id,'type':tip});

}



//ajax hívás: a kedvencek elküldése e-milben

function ajax_sendFavs(){

    var re = new RegExp(/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,3})$/);

	var emails= $('emails_a').value;

    var text = $('text_a').value.replace(/\r\n/gi,"%666");

    text = text.replace(/\r/gi,"%666");

    text = text.replace(/\n/gi,"%666");

	if(emails=="") {

	    alert('Kérem írja be az e-mail címeket!');

		return false;

	}

    ems = emails.split(',');

    for(i=0;i<ems.length;i++){

        if(re.exec(ems[i].replace(/ /gi,""))==null){

            alert("Érvénytelen e-mail cím!\r\n Kérem, írja be helyesen!");

            return false;

        }

    }

	var req = new Request.JSON({

		url: "index.php?sendFavs",

		onSuccess: function(resp){

			if (resp.jo){

				alert('Az üzeneteket sikeresen elküldtük');

                 $('fancy_bckg').style.display = 'none';

                 $('fancy').style.display = 'none';

                 document.body.style.overflow='auto';

				

			}else{

				alert(resp.mess);

			}

		},

        onFailure: function(xhr){

            alert("Hiba lépett fel a kérés küldése közben!");

        }

	}).get({'emails_a':emails,'text_a':text});

    return false;

}



//ki be nyitogatja a tid azonosítúju elemet, button: a toggle gomb azonosítója, title: a gombon megjelenő szöveg

function toggle(tid,title,button){

    if($(tid).style.display=='none'){

        $(tid).style.display='block';

        $(button).innerHTML = title+" elrejtése -";

    }else{

        $(tid).style.display='none';

        $(button).innerHTML = title+" +";

    }

    zio1();

}



//kalkulátor



    //egy select végére beilleszt egy érték-szöveg párt, ha az még nincs benne 

    function insertDistinct(opt,value,text){

        van = false;

        for(i=0;i<opt.options.length;i++){

            if(opt.options[i].value == value){ 

                van=true;

                break;

            }

        }

        if(!van){            

            opt.options[opt.options.length] = new Option(text,value,false,false);

        }

    }

    

    //megkeresi egy adott elem kulcsát/indexét egy tömbben

    function find_key(value,arr){

        for(i in arr){

            if(arr[i]==value) return i;

        }

        return false;

    }        

    

    //egy mm.dd stringet alakít yyyy-mm-dd formába úgy hogy a megfelelő év kerül az elejére

    function convert_date(dat){

        if(dat){

            z = dat.split(".");

            return ((z[0]>7)?year_st:year_en) + "-" + z[0] + "-" + z[1];

        }else{

            return false;

        }

    }  

        

     /*gyors rendezés*/                       

        

    function a_swap(array,ind,ind1){

        var tmp = array[ind];

        array[ind]=array[ind1];

        array[ind1]=tmp;

    }

        

    function partition(array, begin, end, pivot){

	   var piv=convert_date(array[pivot]['from']);

       var tmp;       

       a_swap(array,pivot,end-1);   	   

	   var store=begin;

	   var ix;

	   for(ix=begin; ix<end-1;++ix){

		    if(convert_date(array[ix]['from'])<=piv) {

                 a_swap(array,store,ix);                 

			     ++store;

		    }

        }        

        a_swap(array,end-1,store);

	    return store;

    }

        

    function qsort(array, begin, end)

    {

	   if(end-1>begin) {

	   	   var pivot=begin+Math.floor(Math.random()*(end-begin));

           pivot=partition(array, begin, end, pivot);

		   qsort(array, begin, pivot);

		   qsort(array, pivot+1, end);

	   }

    }

    

    function quick_sort(array)

    {

	   qsort(array, 0, array.length);

    }  

    

    /*--gyors rendezés vége--*/

    

    var one_day=1000*60*60*24;

    

    //mm.dd stringé alakít egy Date objectet

    function dateMD(da){

        dm = da.getMonth() + 1;

        dd = da.getDate();

        ms = new String(dm);

        ds = new String(dd);

        if ( ms.length == 1 ) ms = "0" + ms;

        if ( ds.length == 1 ) ds = "0" + ds;	 

        return ms + "." + ds;

    }

    

    //yyyy-mm-dd stringé alakít egy Date objectet

    function format_date(da){

        dy = da.getFullYear();

        dm = da.getMonth() + 1;

        dd = da.getDate();

        if ( dy < 1970 ) dy = dy + 100;

        ys = new String(dy);

        ms = new String(dm); 

        ds = new String(dd);	 

        if ( ms.length == 1 ) ms = "0" + ms;

        if ( ds.length == 1 ) ds = "0" + ds;	 

        return ys = ys + "-" + ms + "-" + ds;

    }

    

    //egy Date object dátumra megnézi hogy az a hét melyik napján van (1-7 = H-V) 

    function getDateWDay(da){

        return (da.getDay()==0)?7:da.getDay();

    }

        

    //egy yyyy-mm-dd stringet alakít át Date object-é

    function deformat_date(dt){

        z = dt.split("-");        

        return new Date(z[0],z[1]-1,z[2]);

    }

    

    //paraméterként 2 stringet kap yyyy-mm-dd formában, és a két dátum közti napokkal tér vissza yyyy-mm-dd formátumban

    //valamint azzal hogy az adott dátumok milyen napra esnek

    function serialize_date(from,to){

        res = [];

        dys = [];

        z = from.split("-");

        start = new Date(z[0],z[1]-1,z[2]);               

        z = to.split("-");

        end = new Date(z[0],z[1]-1,z[2]);

        while(start<=end){

            res[res.length]=format_date(start);

            dys[dys.length]=(start.getDay()==0)?7:start.getDay();

            start.setDate(start.getDate()+1);                           

        }

        return [res,dys];

    }       

    

    function find_date(dt,tmb,fst){

        dat = dateMD(dt);

        dow = getDateWDay(dt);

        for(i=0;i<tmb.length;i++){

            if(tmb[i]['from']<=dat && tmb[i]['to']>=dat && (tmb[i]['arrive']==0 || tmb[i]['arrive']==dow || (!fst) )){

              //  $('calc_console').innerHTML+="<br/> Találat: "+tmb[i]['from']+"->"+tmb[i]['to']+"..."+tmb[i]['step']+" / "+dt;

                return i;

            }

        }

        return -1;

    }

    function deformat_sortDate(str){

        dt = str.split('.');
		if(dt[0].substr(0,1)=="0")
		{
			dt[0]=dt[0].substr(1,1);
		}
		
        y = 0;

        if(dt[0]<7){

            y = year_en;

        }else{

            y = year_st;

        }
		
        return new Date(y,dt[0]-1,dt[1]); //javascript 0-11-ig kezeli a dátumokat

    }

    //két dátum object közti különbség napokban

    function date_difference(dt1,dt2){

        return Math.ceil((dt2.getTime()-dt1.getTime())/(one_day));

    }

    // megkeresi hogy a dt Dátum objektum az adott tömbben felsorolt időszakok közül melyikben van benne (elsőként)
    // plusz keresési feltétel: ha az adott időszakban nem érkezhet meg bármikor, azt is figyeli, hogy érkezési napra esik-e a dt dátum, amennyiben    
    // amennyiben viszont az fst=false (azaz nem akkor érkezik hanem továbbléphet más turnusba ezt figyelmen kívül hagyja)
    // m: szelektor úgy mint ha nincs m akkor ajánlat ha "_m" az értéke akkor foglalás (később akár a selector segítésgével még bővíthető)
     function set_calculator_days(m){ 

        if(!m)m="";

        old = jQuery('#nights').val();

        /*for(i=((XX('nights'+m).options.length)-1);i>=0;i--){

            XX('nights'+m).options[i]=null;

        };*/

        date_ = jQuery('#arrive').val();
		room_ = jQuery('.room_type').val();
		
		aktualis = deformat_date(date_);  
		
        supply_ = jQuery('.supply').val();
	//alert(room_);
		
        if(date_ ){
		
		range_ = [];
		
		if(room_ =="0" || supply_=='false' || supply_=="0" || supply_=='null')
		{
		
			minnap=10;
			for(i in turnus)
			{
			 for (k in turnus[i] )
			 {
				if(turnus[i][k]['from'])
				{
				from_ = deformat_sortDate(turnus[i][k]['from']).getTime();
				to_ = deformat_sortDate(turnus[i][k]['to']).getTime();
			
				if(to_< from_)	
					{
					to_= deformat_sortDateNextYear(turnus[i][k]['to']).getTime();
					}
				half_day=1000*60*60*12;
				to_=to_+half_day;
			
				year=aktualis.getFullYear();
				month=aktualis.getMonth();
				day=aktualis.getDate();
				dat_= new Date(year,month,day);
				dat=dat_.getTime();
				
				if(from_<=dat && to_>=dat){
					if(turnus[i][k]['min'] && turnus[i][k]['min']<minnap )
					{
			//mi lenne, ha itt nézném a bennét?
				
						
						minnap=turnus[i][k]['min'];
						ind=i;
					}
				}
				}
			 }
			  
			
			}
		}
		else
		{
			minnap=0;
            ind = (room_+" + "+find_key(supply_,supply));     
		}
		
			minnap=parseInt(minnap);
			//alert(ind);
		
            for(i=0;i<turnus[ind].length;i++){                    

                    if(turnus[ind][i]['from'])range_[range_.length] = turnus[ind][i];

            }
			//console.log(range_);

            quick_sort(range_);   
			
             

            lesz = new Date();        

            num_nights=[];

            nights = 0;

            die=30;

            most = 0;

            step =0;
			
			
			while(most!=-1){

					die--;

					lesz.setTime(aktualis.getTime());

					most = find_date(aktualis,range_,(num_nights.length==0));
					
				
					if(most==-1)break;
					
					if(minnap!=0 && parseInt(range_[most]['min'])>parseInt(range_[most]['step']))
					{
					//console.log(parseInt(range_[most]['min']));
					range_[most]['min']=minnap
				
					}
					
					step = (num_nights.length==0)?parseInt(range_[most]['min']):parseInt(range_[most]['step']);
					//console.log('step'+step);
							//console.log('min '+range_[most]['min'] );
						
						kov_nap=new Date(aktualis.getTime()+one_day);
						knap=kov_nap.getDate();
						kmonth=kov_nap.getMonth();
						er=find_date(kov_nap,range_,false);
						
						
					lesz.setTime(aktualis.getTime()+step*one_day);
						knap=lesz.getDate();
						kmonth=kov_nap.getMonth();
						er=find_date(kov_nap,range_,false);
					//console.log(range_);
					kov = find_date(lesz,range_,false);
					//console.log('kov'+kov);
					if(kov!=-1)
					{
						if(parseInt(range_[kov]['step'])>step )
						{
						step_regi=step;
						step=parseInt(range_[kov]['step']);
						
						}
					
					}
					
					dow = getDateWDay(lesz);

					back = 0;

					if(kov!=-1 && most!=kov && range_[kov]['arrive']!=0 && range_[kov]['arrive']!= dow ){               
	
						
					back = date_difference(deformat_date(convert_date(range_[kov]['from'])),lesz);
					//console.log('back'+back);
						step-=back;
						
						lesz.setTime(lesz.getTime()-back*one_day); 
						//console.log('ifesback'+back);

					}
					
				//console.log('step'+step);
					
					if(kov==-1 || back>5){

						break;

					}else{
						
						nights+=step;
						//console.log('nights'+nights);
						//itt kellene 31 napra ellenőrizni , hogy lehet-e foglalni
					
						for(k=1;k<31;k++)
						{
						date_plus_one=aktualis.getTime()+k*step*one_day;
						date_plus_one=new Date(date_plus_one);
						
						
						//itt ellenőrzöm azt, hogy ha a bejelölt nap után következő napok aktívak-e, ha nem akkor megállítom az inaktív napnál
							if(!set_active_date(date_plus_one) )
							{
								stopDays=k;
									
								break;
							}
							else{
							stopDays=0;
							}
							
						}
					
						stopDays=stopDays-1;
					  
						
						if(nights > 31 || stopDays>0) break;
						
						

					   // if(back==0){
						
						
					
							if(!(step<0 || (num_nights.length==0 && step<range_[most]['min'] ) ))

								
								num_nights[num_nights.length]=nights;
								//console.log(num_nights);
					  //  }                    

					}
				
                aktualis.setTime(lesz.getTime());

                

                if(die<0)break;   
				
					//break;

            }
			

        

            /*if(step==1 && nights==0){

                nights+=1;

                num_nights[num_nights.length] = nights;

            }*/
			ejszakak=jQuery('#nights').val();
			ejszakak=parseInt(ejszakak);
		
			//	break;
								
				 
				
				jQuery("#nights").html('');
				opt=document.getElementById('nights');
				for(i=0;i<num_nights.length;i++){
				

					insertDistinct(opt,num_nights[i],num_nights[i],false,false);

				}  
				
				

            if(old) jQuery('#nights').val(old);  
						
			
        }
		

    }
    

    //egy adott dátumra kattintva, vagy szállást választva beállítja hogy milyen ellátást lehet választani
    function set_calculator_supply(m){

        if(!m)m="";

        for(i=(($('supply'+m).options.length)-1);i>=0;i--){

            $('supply'+m).options[i]=null;

        };

        room = $('room_type'+m).value;

        date_ = $('arrive'+m).value;        

        if(room) {
            if (insens.length < 1){             // ha nincs érvénytelen nap
                for (i in prices) {          // minden szoba foglalható, ezért
                    for (j in prices[i])     // kiszedjük az infót a rooms[szálltíp][szobatíp]
                    {                  // tömbből
                        z = j.split(" + ");     // szétválasztjuk a szállást az ellátástól
                        if(z[0]!=room){
                            continue;
                        }
                        if(z[1]){
                            insertDistinct($('supply'+m),supply[z[1]],z[1],false,false);
                        } else {
                            insertDistinct($('supply'+m),supply["önellátás"],"önellátás",false,false);
                        }
                        set_calculator_days(m);
                      //  set_calculator_travellers(m);
                    }
                }
            } else {
                for(i in insens){
                    z = i.split(" + ");
                    if(z[0]!=room){
                        continue;
                    }
                    if(in_array(date_,insens[i])) {
                        continue;
                    }
                    if(z[1]){
                        insertDistinct($('supply'+m),supply[z[1]],z[1],false,false);
                    }else{
                        insertDistinct($('supply'+m),supply["önellátás"],"önellátás",false,false);
                    }
                    set_calculator_days(m);
                    //set_calculator_travellers(m);
                }
            }
        }
    }        



    //beállítja jogy az adott szállásnál hány fő választható (felszorozza a szoba/apartman számával)

    function set_calculator_travellers(m){

        if(!m)m="";

        for(i=(($('travellers'+m).options.length)-1);i>=0;i--){

            $('travellers'+m).options[i]=null;

        };

        for(i=(($('travellers_in_room'+m).options.length)-1);i>=0;i--){

            $('travellers_in_room'+m).options[i]=null;

        };

        room_ = $('room_type'+m).value;

        supply_ = $('supply'+m).value;

        if(room){

            ind = (room_+" + "+find_key(supply_,supply));  

            max = parseInt(turnus[ind][0]['persons'])*parseInt($('rooms'+m).value);               

            for(i=1;i<=max;i++){

                $('travellers'+m).options[$('travellers'+m).options.length] = new Option(i,i,false,false);

            }

            for(i=1;i<=turnus[ind][0]['persons'];i++){

                $('travellers_in_room'+m).options[$('travellers_in_room'+m).options.length] = new Option(i,i,false,false);

            }

        }

    }


    //egy adott dátumra kattintva beállítja hogy mely szállás tipusokba lehet érkezni az adott napon
   function set_calculator_room_type(num){   

       // if(!m)m="";

  /*     for(i=((XX('room_type'+num).options.length)-1);i>=0;i--){

            XX('room_type'+num).options[i]=null;

        };   */

			

        date_ = jQuery('#arrive').val();
		
        //XX('arrive'+m).value='Betöltés...';

        if(date_){ 
		van=[];
			jQuery('select[name=room_type_'+num+']').html('<option value="0">Válasszon..</option>');
            for(i in insens){

                if (i=="all")continue;

                z = i.split(" + ");   
					
				
					//insertDistinct(XX('room_type'+m),'0','Válasszon',false,false);
                if (!in_array(date_,insens[i])){
					if(!in_array(z[0],van))
					{
					jQuery('select[name=room_type_'+num+']').append('<option value="'+z[0]+'">'+z[0]+'</option>');
					van[van.length]=z[0];
					}
                   // insertDistinct(XX('room_type'+m),z[0],z[0],false,false);

                  }            

            }

         //   set_calculator_supply(m);

        }

       // XX('arrive'+m).value=date_;

    }
jQuery('.room_type').live('click',function(){
	
	var room = jQuery(this).val();
	
	//alert(room);
	
	var date_= jQuery('#arrive').val();  
	
	if(room){
	var supply_target=jQuery(this).parent().next().next().children();
	jQuery(supply_target).html('');
			jQuery(supply_target).append('<option value="0">Válasszon</option>');
		for(i in insens){
		
		z = i.split(" + ");
		
		if(z[0]!=room)continue;

            if(in_array(date_,insens[i]))continue;

			if(z.length>3){ 

				z[1]=z[1]+' + '+z[2]+' + '+z[3];

			}else if(z.length>2){

				z[1]=z[1]+' + '+z[2];

			}  
			
			
			
           if(z[1]){

		   
				jQuery(supply_target).append('<option value="'+supply[z[1]]+'">'+z[1]+'</option>');
                //insertDistinct(target,supply[z[1]],z[1],false,false);

            }else{

                //insertDistinct(target,supply["Önellátás"],"Önellátás",false,false);
				jQuery(supply_target).append('<option value="'+supply['Önellátás']+'">Önellátás</option>');

            }
			
		
		
		}
		
	
	}
	//set_travellers();
	set_calculator_days();
	
	});
	
	function set_travellers(){
	
	$('.travellers_in_room').each(function(){
	
	var room=$(this).parent().prev().prev().prev().prev().children('.room_type').val();
	
	var supply_=$(this).parent().prev().prev().children().val();
	//alert(supply_);
	var idje=$(this).attr('id');
	var num=ideje.substr(19);
	if(room && supply_)
	{
	 ind = (room+" + "+find_key(supply_,supply));  
	var szemelyek=parseInt(turnus[ind][0]['persons']);
	
	var potagyak=turnus[ind][0]['potagy'];
	console.log(potagyak);
	var target=$(this);
	
	$(target).html('');
	
		for(i=1;i<=szemelyek;i++)
		{
			var html='<option value="'+i+'">'+i+'</option>';
			$(target).append(html);
		}
		
		if(potagyak>0)
		{
		
			for(k=1;k<=potagyak;k++)
			{
				sz=k+szemelyek;
				var html='<option value="'+sz+'">'+sz+' (Pótággyal)</option>';
				$(target).append(html);
			}
		}
		
		var travellers=$(this).val();
		//alert(travellers);
		var travellers=parseInt(travellers);
		var num=$(this).attr('id');
	
	number=num.substr(19);
	
	number=parseInt(number);
		 $(this).parent().next().children().html('');
		for(i=1; i<=travellers; i++)
			{
			
			var html='<div id="age_'+i+'" class="age">';
			
			 html+=i + '. utas életkora *: <input type="text" maxlength="2" name="age_'+number+'['+i+']" value="" class="small" />';
			 
			 html+='</div>';
			 
			 $(this).parent().next().children().append(html);
			 }
	}
	
	});
	
	
	
	}
	jQuery('.supply').live('click',function(){
	
	
	var room = jQuery(this).parent().prev().prev().children('.room_type').val();
	
	var supply_=jQuery(this).val();
	if(room && supply_)
	{
	 ind = (room+" + "+find_key(supply_,supply));  
	var szemelyek=parseInt(turnus[ind][0]['persons']);
	
	var potagyak=parseInt(turnus[ind][0]['potagy']);
	//alert(potagyak);
	var target=jQuery(this).parent().next().next().children('.travellers_in_room');
	
	jQuery(target).html('<option value="0">Válasszon...</option>');
	
		for(i=1;i<=szemelyek;i++)
		{
			var html='<option value="'+i+'">'+i+'</option>';
			jQuery(target).append(html);
		}
		
		if(potagyak)
		{
		
			for(k=1;k<=potagyak;k++)
			{
				sz=k+szemelyek;
				var html='<option value="'+sz+'">'+sz+' (Pótággyal)</option>';
				jQuery(target).append(html);
			}
		}
	}
	set_calculator_days();
	});
	
	
	jQuery('.travellers_in_room').live('click',function(){
	
	var travellers=jQuery(this).val();
	
	var num=jQuery(this).attr('id');
	
	number=num.substr(19);
	
	number=parseInt(number);
	
	travellers=parseInt(travellers);
	//alert(travellers);
	jQuery(this).parent().next().children().html('');
	
	szobatipus=jQuery('select[name=room_type_'+number+']').val();
	ellatas=jQuery('select[name=supply_'+number+']').val();
	datum=jQuery('#arrive').val();
	szallas=jQuery('#acc_id').val();
	//alert(szobatipus+'+'+ellatas);
	
	jQuery.ajax({
	type:"POST",
	url:'../../spare_bed.php',
	data:"fields="+travellers+"&number="+number+"&szobatipus="+szobatipus+"&ellatas="+ellatas+'&szallas='+szallas+'&datum='+datum,
	success:function(resp){
	jQuery('#otravellers_age_'+number).html(resp);
	}
	
	});
	});
	


    //a datepickerben beállítja hogy az adott dátumban lehet-e érkezni a szállsáhelyre (kattinható e az a dátum)
    function set_active_date(date){
        dateFrom = year_st+"-01-01";
        dateTo = year_st+"-12-31";
	var month = date.getMonth()+1;
	var day   = date.getDate();

       	var date_str = [
	           date.getFullYear(),
	           (month < 10) ? '0'+month : month,
	           (day < 10 ) ? '0'+day : day
	].join('-');

        if(date_str < dateFrom || date_str > dateTo){
            return false;
        }        

        if(in_array(date_str,insens['all'])){
            return [false,'',''];
        }else{
            return [true,'',''];
        }                
     }


window.addEvent('domready', function() {

    if($('kifejezes')) {
        ots = new OverText($('kifejezes'),{
		
		positionOptions: { 

            position: {
        		x: 'left',
        		y: 'top'
        	},

            offset: {
                x:6,
                y:4
            }

        }
		});    // 2011.04.04
    }
	
    //overtextek beállítása a text inputokra

    $('user_cnt').style.display='block';

    var z = $('jelentkezzen_be').style.display;

    $('jelentkezzen_be').style.display='none';

	lmo = new OverText($('log_email'));

    lpo = new OverText($('log_pass'));

    $('jelentkezzen_be').style.display=z;

	$('bejelentkezes').style.display='none';

	$('regisztracio_szoveg').style.display='none';

	reo = new OverText($('reg_email'));

	rpo = new OverText($('reg_pass'));

	rao = new OverText($('reg_passa'));

	$('regisztracio').style.display='none';	

    hlo = new OverText($('nl-email'),{

        positionOptions: { 

            position: {

        		x: 'left',

        		y: 'top'

        	},

            offset: {

                x:9,

                y:6

            }

        }

    });

   	

    //ajaxos submitolás ENTER-re

    $('log_email').addEvent('keydown',function(event){

            if (event.key == "enter") ajax_login();

    });

    $('log_pass').addEvent('keydown',function(event){

            if (event.key == "enter") ajax_login();

    });

    

    $('reg_email').addEvent('keydown',function(event){

            if (event.key == "enter") ajax_reg();

    });

    $('reg_pass').addEvent('keydown',function(event){

            if (event.key == "enter") ajax_reg();

    });

     $('reg_passa').addEvent('keydown',function(event){

            if (event.key == "enter") ajax_reg();

    });

    

    if($('main_popup')){

        $('main_popup_bg').addEvent('click',function(){

            $('main_popup_bg').style.display='none';

            $('main_popup').style.display='none';

            document.body.style.overflow='auto';

            window.scrollTo(0,0);

        });

        $('main_popup_close').addEvent('click',function(){

            $('main_popup_bg').style.display='none';

            $('main_popup').style.display='none';

            document.body.style.overflow='auto';

            window.scrollTo(0,0);

        });

    }

        

    if($('arrive')){   //ha a kalkuátor van az adott oldalon (foglalás)

       //datepicker hozzárendelés

       $('arrive').setAttribute('readonly','readonly');                               

       jQuery(function() {

		

		jQuery("#arrive").datepicker({

			option: jQuery.datepicker.regional['hu'],

			dateFormat: 'yy-mm-dd', 

			changeMonth: false, 

			changeYear: false,

			beforeShowDay: function(date){

				return set_active_date(date);

			},

            onSelect: function(dateText, ins){

                set_calculator_room_type(1);
				 set_supply();

            }

            

		});

		

	   });
	   //mezők számozásához megnézi hányadik mezőnél voltunk
	   function get_field_number(){
	
		var prevFiledClass=jQuery('#more_room > a').parent('#more_room').parent().prev('.wide').children().attr('id');
		
		var number=prevFiledClass.substr(16);
		
		return number;
	}
	
	jQuery('.del > a').live('click',function(){
	
	//alert('hello');
	jQuery(this).parent().parent().next().next().next().next().next().next().next().remove();
	jQuery(this).parent().parent().next().next().next().next().next().next().remove();
	jQuery(this).parent().parent().next().next().next().next().next().remove();
	jQuery(this).parent().parent().next().next().next().next().remove();
	jQuery(this).parent().parent().next().next().next().remove();
	jQuery(this).parent().parent().next().next().remove();
	jQuery(this).parent().parent().next().remove();
	jQuery(this).parent().parent().remove();
	
	//number_of_rooms értékének csökkentése egyel
	var counter=$('#number_of_rooms').val();
	counter=parseInt(counter);
	counter=counter-1;
	
	jQuery('#number_of_rooms').val(counter);
	
	
	});
	
	//hozzáad mezőket
	function add_fields(counter){
	
	var room_type_label=jQuery('#room_type_1-label').html();
	
	var room_type_element=jQuery('#room_type_1-element > select').html();
	
	var supply_label=jQuery('#supply_1-label').html();
	
	var supply_element=jQuery('#supply_1-element > select').html();
	
	var travellers_in_room_label=jQuery('#travellers_in_room_1-label').html();
	
	var travellers_in_room_element=jQuery('#travellers_in_room_1-element > select').html();
	
	var target=jQuery('#more_room').parent('.clear');
	
	//alert(room_type_label);
	var htmlToInsert='<dd class="clear"><div class="del"><a href="javascript:void(0);">Szoba eltávolítása</a></div></dd>';
	
	htmlToInsert+='<dt id="room_type_'+counter+'-label">'+room_type_label+'</dt>';
	
	htmlToInsert+='<dd id="room_type_'+counter+'-element"><select name="room_type_'+counter+'" class="room_type">'+room_type_element+'</select></dd>';
	
	htmlToInsert+='<dt id="supply_'+counter+'-label">'+supply_label+'</dt>';
	
	htmlToInsert+='<dd id="supply_'+counter+'-element" ><select name="supply_'+counter+'" class="supply"><option value="0">Válasszon szobatípust</option></select></dd>';
	
	htmlToInsert+='<dt id="trevallers_in_room_'+counter+'-label">'+travellers_in_room_label+'</dt>';
	
	htmlToInsert+='<dd id="travellers_in_room_'+counter+'-element"><select name="travellers_in_room_'+counter+'" id="travellers_in_room_'+counter+'" class="travellers_in_room" ><option value="0">Válassszon ellátást...</option></select></dd>';
	
	htmlToInsert+='<dd class="clear wide"><div id="otravellers_age_'+counter+'"></div></dd>';
	
	jQuery('#number_of_rooms').val(counter);

	jQuery(htmlToInsert).insertBefore(target);
		set_calculator_room_type(counter);
	//add_room_type();
	
	
}

	   //a mág egy szoba hozzáadásásra kattintva hozzáadja a mezőket
	   jQuery('#more_room > a').live('click',function(){
		var counter=get_field_number();
		
		var arrive=jQuery('#arrive').val(); 
		
		if(arrive=="")
		{
		alert("Kérem előbb válassza ki a dátumot!");
		}
		else{
		
		counter=parseInt(counter);
		
		counter=counter+1;
		
		add_fields(counter);
		//set_supply();
		//set_travellers();
		
		}
		
	});
	//ellátás kitöltése
function set_supply(){
 jQuery('.supply').each(function(){
 var room =  jQuery(this).parent().prev().prev().children().val();
 var date =  jQuery('#arrive').val(); 
 //alert(room);
 
 if(room){
	
		for(i in insens){
		
		z = i.split(" + ");
		
		if(z[0]!=room)continue;

            if(in_array(date_,insens[i]))continue;

			if(z.length>3){ 

				z[1]=z[1]+' + '+z[2]+' + '+z[3];

			}else if(z.length>2){

				z[1]=z[1]+' + '+z[2];

			}  
			
			var supply_target=$('.supply');
			jQuery(supply_target).html('');
           if(z[1]){

		   
				 jQuery(supply_target).append('<option value="'+supply[z[1]]+'">'+z[1]+'</option>');
                //insertDistinct(target,supply[z[1]],z[1],false,false);

            }else{

                //insertDistinct(target,supply["Önellátás"],"Önellátás",false,false);
				 jQuery(supply_target).append('<option value="'+supply['Önellátás']+'">Önellátás</option>');

            }
		
		}
	
	}
 
 });
 set_calculator_days();
 
}

        //szobák listája
		
        set_calculator_room_type(1);

     

        //text inputok méretezése, nullázása (ahol kell)

       /* $('nights').style.width="50px";

        $('travellers').style.width="50px";

        $('rooms').style.width="50px";

        $('travellers_in_room').style.width="50px";

        for(i=(($('nights').options.length)-1);i>=0;i--){

            $('nights').options[i]=null;

        };*/

        //szobatipus váltásra esemény

       /* $("room_type").addEvent("change",function(){

            set_calculator_supply();

        });*/

        //szobaszám váltásra esemény

     /*   $("rooms").addEvent("change",function(){

            set_calculator_travellers();

        });*/

        //az összes select beállítása default állapotra

    //    set_calculator_supply();      

        set_calculator_days();

       //set_calculator_travellers();        

    }

         

    if($('arrive_m')){   //ha a kalkuátor van az adott oldalon (ajánlatkérés)

        /*LSD. fentebb: ajánlatkérés */

    

        $('arrive_m').setAttribute('readonly','readonly');

      

        jQuery(function() {

		

		jQuery("#arrive_m").datepicker({

			option: jQuery.datepicker.regional['hu'],

			dateFormat: 'yy-mm-dd', 

			changeMonth: false, 

			changeYear: false,

			beforeShowDay: function(date){

				return set_active_date(date);

			},

            onSelect: function(dateText, ins){

                set_calculator_room_type("_m");

            }

            

		});

		

	   });

             

        set_calculator_room_type('_m');

        

        $('nights_m').style.width="50px";

        $('travellers_m').style.width="50px";

        $('rooms_m').style.width="50px";

        $('travellers_in_room_m').style.width="50px";

        for(i=(($('nights_m').options.length)-1);i>=0;i--){

            $('nights_m').options[i]=null;

        };

       /* $("room_type_m").addEvent("change",function(){

            set_calculator_supply("_m");

        });*/

        $("rooms_m").addEvent("change",function(){

            //set_calculator_travellers("_m");

        });

       // set_calculator_supply("_m");

        set_calculator_days("_m");

     //   set_calculator_travellers("_m");      

                

    }

}); 
