function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}


if(typeof SEARCHBOX=="undefined")
{
	var SEARCHBOX  = {
		showAdvancedSearch:function(){
			document.getElementById('searchbox').className = document.getElementById('searchbox').className.replace(" simple", "");

			document.getElementById('searchbox').className+=" advanced";
			document.getElementById('searchbox').className = document.getElementById('searchbox').className.replace(" splBoxLeftSearchShort", "");

			document.getElementById('searchbox').className+=" advBoxLeftSearchShort";
		},

		showSimpleSearch:function(){

			if(document.getElementById('panstwo')){
				if(document.getElementById('panstwo').getAttribute('multiple')){
					SEARCHBOX.chooseOneDestination();
				}
			}

			document.getElementById('searchbox').className = document.getElementById('searchbox').className.replace(" advanced", "");

			document.getElementById('searchbox').className+=" simple";

			document.getElementById('searchbox').className = document.getElementById('searchbox').className.replace(" advBoxLeftSearchShort", "");

			document.getElementById('searchbox').className+=" splBoxLeftSearchShort";
		},


		showAdvancedSearchHotels:function(){

			document.getElementById('hotelSearchbox').className = document.getElementById('hotelSearchbox').className.replace(" splVersion", "");
			document.getElementById('hotelSearchbox').className+=" advVersion";
		},

		showSimpleSearchHotels:function(){
			if(document.getElementById('panstwo')){
				if(document.getElementById('panstwo').getAttribute('multiple')){
					SEARCHBOX.chooseOneDestination();
				}
			}
			document.getElementById('hotelSearchbox').className = document.getElementById('hotelSearchbox').className.replace(" advVersion", "");
			document.getElementById('hotelSearchbox').className+=" splVersion";
		},

		displayRegions:function(panstwo, param){
			var additionalParam = '';
			if(param)
			{
				param = '&'+param;
			}
			else
			{
				param = '';
			}

			var callback =
				{
				  success: function(o) {
						var regions=o.responseXML.getElementsByTagName('region');
						var i,regionName,regionValue;
						var id_destynacje=document.getElementById('id_destynacje');
						id_destynacje.setAttribute('disabled','disabled');
						id_destynacje.innerHTML='';
						for(i=0;i<regions.length;i++){
							regionValue=regions[i].getAttribute('value');
							regionName=regions[i].firstChild.nodeValue;
							id_destynacje.options[i]=new Option(regionName,regionValue);
						}

						if(regions.length==1){
							id_destynacje.setAttribute('disabled','disabled');
							id_destynacje.innerHTML="<option>\n"+"-- dowolny --\n"+"</option>";
						}else{
							id_destynacje.removeAttribute('disabled');
						}

				  },
				  failure: function(o) {}
				};
			YAHOO.util.Connect.asyncRequest('GET', '/?page=search_regionsAjax&type=text/xml&panstwo='+panstwo+param, callback, null);
		},

		displayRegionsNarty:function(panstwo){
			var callback =
				{
				  success: function(o) {
						var regions=o.responseXML.getElementsByTagName('region');
						var i,regionName,regionValue;
						var id_destynacje=document.getElementById('id_destynacje');
						id_destynacje.setAttribute('disabled','disabled');
						id_destynacje.innerHTML='';
						for(i=0;i<regions.length;i++){
							regionValue=regions[i].getAttribute('value');
							regionName=regions[i].firstChild.nodeValue;
							id_destynacje.options[i]=new Option(regionName,regionValue);
						}

						if(regions.length==1){
							id_destynacje.setAttribute('disabled','disabled');
							id_destynacje.innerHTML="<option>\n"+"-- dowolny --\n"+"</option>";

						}else{
							id_destynacje.removeAttribute('disabled');
						}

				  },
				  failure: function(o) {}
				};
			YAHOO.util.Connect.asyncRequest('GET', '/?page=search_regionsAjax&type=text/xml&panstwo='+panstwo+'&narty=on', callback, null);
		},


		displayRegionsHOT:function(panstwo){
			var callback =
				{
				  success: function(o) {
						var regions=o.responseXML.getElementsByTagName('region');
						var i,regionName,regionValue;
						var id_destynacje=document.getElementById('id_destynacje');
						id_destynacje.setAttribute('disabled','disabled');
						id_destynacje.innerHTML='';
						for(i=0;i<regions.length;i++){
							regionValue=regions[i].getAttribute('value');
							regionName=regions[i].firstChild.nodeValue;
							id_destynacje.options[i]=new Option(regionName,regionValue);
						}
						if(regions.length==1){
							id_destynacje.setAttribute('disabled','disabled');
							/*id_destynacje.innerHTML="<option>\n"+
														"- wybierz kierunek aby okreœliæ region -\n"+
													"</option>";*/
						}else{
							id_destynacje.removeAttribute('disabled');
						}

				  },
				  failure: function(o) {}
				};
			YAHOO.util.Connect.asyncRequest('GET', '/?page=search_regionsHotAjax&type=text/xml&panstwo='+panstwo, callback, null);
		},

		chooseFewDestinations:function(){
			document.getElementById('chooseOneDestination').className='';
			document.getElementById('chooseFewDestinations').className='hidden';
			document.getElementById('chooseOneDestination').className='moreGroup';
			document.getElementById('chooseOneDestination').style.display='block';
			document.getElementById('kierunek_cont').style.background="url('http://static.wakacje.pl/wakacje/images/searchBox/kierunek_top_bg.gif') no-repeat #FFD987 top left";

			var t = document.getElementById('chooseOneDestination');
			for (var n=0; n <= t.length; n++) {
				if(t.options[n].selected == 'selected') {
					document.getElementById('chooseFewDestinations')
				}
			}

			var id_destynacje=document.getElementById('id_destynacje');
			id_destynacje.setAttribute('disabled', 'disabled');
			id_destynacje.length = 0;
			id_destynacje.options[0] = new Option('-- dowolny --', 0);

			var panstwa=document.getElementById('panstwo');

			panstwa.setAttribute('multiple','multiple');
			panstwa.setAttribute('size','7');
			panstwa.setAttribute('tabindex','1');
			panstwa.setAttribute('name','panstwo[]');
			panstwa.className='select_panstwo multiple';

			var clonedPanstwa=panstwa.cloneNode(true);
			clonedPanstwa.onchange=function(){};

			clonedPanstwa.value = panstwa.value;
			panstwa.parentNode.replaceChild(clonedPanstwa,panstwa);
		},

		chooseOneDestination:function(){
			document.getElementById('chooseFewDestinations').className='';
			//document.getElementById('chooseOneDestination').className='hidden';
			document.getElementById('chooseOneDestination').style.display='none';
			//document.getElementById('chooseOneDestination').className='';
			document.getElementById('kierunek_cont').style.background="url()";

			var id_destynacje=document.getElementById('id_destynacje');
			id_destynacje.innerHTML="<option>\n"+
										"-- dowolny --\n"+
									"</option>";



			var panstwa=document.getElementById('panstwo');

			panstwa.removeAttribute('multiple');
			panstwa.removeAttribute('size');
			panstwa.setAttribute('name','panstwo');
			panstwa.className='select_panstwo';

			var clonedPanstwa=panstwa.cloneNode(true);
			clonedPanstwa.onchange=function(){
				SEARCHBOX.displayRegions(this.value)
			};

			clonedPanstwa.value = panstwa.value;
			panstwa.parentNode.replaceChild(clonedPanstwa,panstwa);

			SEARCHBOX.displayRegions(clonedPanstwa.value);
		},


		chooseFewDepartures:function(){
				document.getElementById('chooseOneDeparture').className='';
				document.getElementById('chooseFewDepartures').className='hidden';
			try {
				document.getElementById('wyjazd_z_bottom').className='moreGroup';
				document.getElementById('wyjazd_z_bottom').style.display='block';
				document.getElementById('wyjazd_z_cont').style.background="url('http://static.wakacje.pl/wakacje/images/searchBox/more_bg_t.gif') no-repeat #FFD987 top left";
			} catch(error) {}
			var departure=document.getElementById('id_okol');

			departure.setAttribute('multiple','multiple');
			departure.setAttribute('size','7');
			departure.setAttribute('tabindex','1');
			departure.setAttribute('name','id_okol[]');
			departure.className='select_id_okol multiple';

			var clonedDeparture = departure.cloneNode(true);

			clonedDeparture.value = departure.value;

			departure.parentNode.replaceChild(clonedDeparture, departure);
		},

		chooseOneDeparture:function(){
			document.getElementById('chooseOneDeparture').className='hidden';
			document.getElementById('chooseFewDepartures').className='';
			try {
				document.getElementById('wyjazd_z_bottom').className='';
				document.getElementById('wyjazd_z_cont').style.background="url()";
			} catch(error) {}

			var departure=document.getElementById('id_okol');

			departure.removeAttribute('multiple');
			departure.removeAttribute('size');
			departure.setAttribute('name','id_okol');
			departure.className='select_id_okol';

			var clonedDeparture = departure.cloneNode(true);

			clonedDeparture.value = departure.value;

			departure.parentNode.replaceChild(clonedDeparture, departure);
		},


		clearSearchForm:function(){
			var form=document.getElementById('form_wyszukaj');
			var inputs=form.getElementsByTagName('input');
			var selects=form.getElementsByTagName('select');
			var input;
			var select;

			for(i=0, input; input=inputs.item(i++); ){
				if (input.getAttribute('type') == "text"){
					input.value = '';
				}else if (input.getAttribute('type') == "checkbox"){
					input.checked = false;
				}
			}

			for(i=0, select; select=selects.item(i++); ){
				select.value="";
				select.value="0";
			}

		},


		validateHotelCategory:function(){
			minCategory=document.getElementById('kategoria_hotelu__gte');
			maxCategory=document.getElementById('kategoria_hotelu__lte');
			if(minCategory.value==50){
				maxCategory.value=0;
				maxCategory.setAttribute('disabled','disabled');
			}else{
				maxCategory.removeAttribute('disabled');
			}
		},

		showDepartureCalendar:function(posX,posY){
			startDate=null;
			selectedMonth=null;
			wyjazd=document.getElementById('dzien__gte');
			if(validDate(wyjazd.value)){
				currentMonth=(new Date()).getMonth()+1;
				pickedMonth=wyjazd.value.split('.')[1];
				if(currentMonth<=pickedMonth){
					selectedMonth=pickedMonth-currentMonth;
				}else{
					selectedMonth=pickedMonth-currentMonth+12;
				}
			}
			(new CALENDAR('dzien__gte',posX,posY,startDate,selectedMonth)).showCalendar();

		},

		showReturnCalendar:function(posX,posY){
			startDate=null;
			wyjazd=document.getElementById('dzien__gte');
			powrot=document.getElementById('dzien_zak__lte');
			if(validDate(powrot.value)){
				selYear = wyjazd.value.split('.')[2];
				selMonth = (powrot.value.split('.')[1]-wyjazd.value.split('.')[1]);
				if(powrot.value.split('.')[2] > wyjazd.value.split('.')[2]) {
					selMonth += ((powrot.value.split('.')[2] - wyjazd.value.split('.')[2]) * 12);
				}
				selDay = powrot.value.split('.')[0];
			}
			else if(validDate(wyjazd.value)) {
				selYear = wyjazd.value.split('.')[2];
				selMonth = 0;
				selDay = wyjazd.value.split('.')[0];
			}

			if(validDate(wyjazd.value)){
				startDate=new Date(wyjazd.value.split('.')[2],wyjazd.value.split('.')[1]-1,wyjazd.value.split('.')[0]);
			}
			//console.log('dzien_zak__lte',posX,posY,startDate,selMonth,selDay,selYear);
			(new CALENDAR('dzien_zak__lte',posX,posY,startDate,selMonth,selDay,selYear)).showCalendar();
		}
	}
}

/* NEW */
function addEvent(elm, evType, fn, useCapture) { if(!elm) return false; if(elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true;	} else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r;	} else { elm['on' + evType] = fn; } };

var correctDate = {
	old_date: '',
	testDateFormat: function(date){
			if (date==''){
				return '';
			}
		  var correct_final = /^[0-9]{2}[.][0-9]{2}[.][0-9]{4}$/; // format wymagany
		  var correct1 = /^[0-9]+[.][0-9]+[.][0-9]{4}$/; // rok na koncu
		  var correct2 = /^[0-9]{4}[.][0-9]+[.][0-9]+$/; // rok na poczatku

		  var y, m, d, date_array, odp, date_dots;

		  date_dots = date.replace(/[^0-9]/ig,".");
		  date_array = date_dots.split('.');

		  if(correct1.test(date_dots)) {
		  	y = date_array[2]; m = date_array[1]; d = date_array[0];
		  }
		  else if(correct2.test(date_dots)){
		  	y = date_array[0]; m = date_array[1]; d = date_array[2];
		  }
		  else {
		  	return this.old_date;
		  }

		  m = this.leadingZeros(this.testDateMonths(m), 2);
		  d = this.leadingZeros(this.testDateDays(y, (m), d), 2);
		  odp = this.testDatePast(y, m, d);

		  if(correct_final.test(odp)) {
		  	return odp;
		  }
		  else {
		  	return this.old_date;
		  }
	},
	testDateDays: function(year, month, day) { // sprawdza ilosc dni dla podanego m-ca
		month = month - 1;
		daysInMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
	      daysInMonths[1] = 29;
	    else
	      daysInMonths[1] = 28;

		if (day > daysInMonths[month]) {
			return daysInMonths[month];
		}
		else {
			return day;
		}
	},
	testDateMonths: function(month) {
		if (month > 12) {
			return 12;
		}
		else {
			return month;
		}
	},
	testDatePast: function(year, month, day) { // dopuszczalny jest tylko biezacy, lub nastepny rok
		var present_date = new Date();
		date = new Date();
		date_next = new Date();
		date.setFullYear(year, (month-1), day);
		date_next.setFullYear((present_date.getFullYear() + 1), present_date.getMonth(), present_date.getDate());

		if (date < present_date || date > date_next) {
			return this.leadingZeros(present_date.getDate(), 2) + '.' + this.leadingZeros(present_date.getMonth()+1, 2) + '.' + present_date.getFullYear();
		}
		else {
			return day + '.' + month + '.' + year;
		}
	},
	leadingZeros: function(n, totalDigits) { // dodaje wiodace zera
      	n = n.toString();
        var pd = '';
        if (totalDigits > n.length) {
            for (i=0; i < (totalDigits-n.length); i++) {
                pd += '0';
            }
        }
        return pd + n.toString();
    },
	checkChar: function(e) { // nie pozwala na wpisywanie liter
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;

		var reg = /^[a-zA-Zêó¹œ³¿ŸæñÊÓ¥Œ£¯ÆÑ]$/; // znaki zabronione
		var ch = String.fromCharCode(keycode);
		//alert(ch);
		 if (reg.test(ch)) {
		 	return false;
		 }
		 else {
		 	return true;
		 }
	}
};

/* Eventy dodajemy zawsze przy wyswietlaniu kalendarza */
 addEvent(document, 'keyup', function(e) {
 	if(typeof(CALENDAR) == 'undefined') return false;
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;

	if(typeof(document.getElementById('calendar')) != 'undefined' && keycode == 27) {
		 new CALENDAR('','','','').closeCalendar();
	}
 }, true);

 addEvent(document.body, 'mousedown', function(e) {
 	if(typeof(CALENDAR) == 'undefined') return false;
	if(typeof(document.getElementById('calendar')) != 'undefined') {
		if (e == null) e = window.event;
		var target;
		if(e.target != null)
			target = e.target;
		else
			target = e.srcElement;
		var obj = e.srcElement || e.target;
		if (obj.target == 'body') {
			return false;
		}

		for (var i=0; i<50; i++) { //sprawdzam, czy rodzicem jest kalendarz - jesli nie, zamykamy
			if (obj == null || obj.nodeName == 'BODY') {
				new CALENDAR('', '', '', '').closeCalendar();
				return false;
			}
			else
				if (obj.id == 'calendar') {
					return false;
				}

				obj = obj.parentNode;
			};
	}
 }, true);



function getStyle(el,styleProp) { var x = document.getElementById(el); if (x.currentStyle) var y = x.currentStyle[styleProp]; else if (window.getComputedStyle) var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); return y; };


var searchFiltersChange = { // metody wywolywane po klikneiciu na checkboxy w filtrach wyszukiwarki
	dowolneId: '',
	groupId: '',
	childs: '',
	sourceInputId: '',
	setChilds: function() {
		this.childs = document.getElementById(this.groupId).getElementsByTagName('input');
	},
	addEvents: function() {
		for (var i=1; i<this.childs.length; i++) {
			addEvent(this.childs[i], 'change', searchFiltersChange.przelaczDowolne, false);
		}
	},
	przelaczDodatkowy: function(){
		if (document.getElementById('_rejs') && this.sourceInputId == 'offerType__9__gt') {
			document.getElementById('_rejs').checked = document.getElementById(this.sourceInputId).checked;
		} else if (document.getElementById('_dojazdWlasny') && this.sourceInputId == 'dojazd30') {
			document.getElementById('_dojazdWlasny').checked = document.getElementById(this.sourceInputId).checked;
		} else if (document.getElementById('_allInclusive') && this.sourceInputId == 'wyzywienie__3__gt') {
			document.getElementById('_allInclusive').checked = document.getElementById(this.sourceInputId).checked;
		} else if (document.getElementById('_narty') && this.sourceInputId == 'offerType__18__gt') {
			document.getElementById('_narty').checked = document.getElementById(this.sourceInputId).checked;
		} else if (document.getElementById('_dlaSeniorow') && this.sourceInputId == 'offerAttribute__10__eq') {
			document.getElementById('_dlaSeniorow').checked = document.getElementById(this.sourceInputId).checked;
		}
		this.sourceInputId = '';
	},
	przelaczDowolne: function() {
		this.przelaczDodatkowy();
		var count=0;
		for (var i=1; i<this.childs.length; i++) {
			if(this.childs[i].checked == true) {
				count++;
			}
		}
		if ((this.childs.length-1) == count) {
			document.getElementById(this.dowolneId).checked = true;
		} else {
			document.getElementById(this.dowolneId).checked = false;
		}
	},
	dowolneClick: function(){
        var obj = document.getElementById(this.dowolneId);
		var temp1, temp2;
		var chk;
		//alert(check_tab.length);
		if(obj.checked == true) {
			chk = true;
		}
		else {
			chk = false;
		}
		for (var n=1; n<this.childs.length; n++) {
				temp2 = this.childs[n];
				if(typeof temp2 != 'undefined') {
					temp2.checked = chk;
				}
			}


		if(document.getElementById('_rejs') && this.groupId=='gRodzajOferty'){
			document.getElementById('_rejs').checked = (chk? 'checked' : false);
		} else if(document.getElementById('_dojazdWlasny') && this.groupId=='gDojazdWlasny'){
			document.getElementById('_dojazdWlasny').checked = (chk? 'checked' : false);
		} else if(document.getElementById('_allInclusive') && this.groupId=='gWyzywienie'){
			document.getElementById('_allInclusive').checked = (chk? 'checked' : false);
		} else if(document.getElementById('_narty') && this.groupId=='gRodzajOferty'){
			document.getElementById('_narty').checked = (chk? 'checked' : false);
		} else if(document.getElementById('_dlaSeniorow') && this.groupId=='gRodzajOferty'){
			document.getElementById('_dlaSeniorow').checked = (chk? 'checked' : false);
		}

	}
};

function string_like_click() { // uzupelnianie/czyszczenie pola z kodem/nazwa oferty
	obj = document.getElementById('string__like');
	if(obj.value == 'kod lub nazwa oferty') {
		obj.value = '';
	}
	else if(obj.value == '') {
		obj.value = 'kod lub nazwa oferty';
	}
}
