/*  search */

var extendedSearchFields = 'tx_hotelportal_hotels_name,tx_hotelportal_hotels_company,tx_hotelportal_hotels_distances,tx_hotelportal_hotels_hotelausstattung,tx_hotelportal_hotels_zimmerausstattung';
var isExtendedSearch = false;

function extendedSearch(){
	f = extendedSearchFields.split(',');
	if(!isExtendedSearch){
		for(i=0;i<f.length;i++){
			$(f[i]).style.display = 'block';
		}
		isExtendedSearch = true;
		$('extendedSearchButton').innerHTML = 'Einfache Suche';
	}
	else {
		for(i=0;i<f.length;i++){
			$(f[i]).style.display = 'none';
		}
		isExtendedSearch = false;
		$('extendedSearchButton').innerHTML = 'Erweiterte Suche';
	}
	return false;
}


var searchFormPrefix = 'tx_hotelportal_pi2_tx_hotelportal_hotels_';
var bigImage = null;
x = 320;
y = 240;
function showBigImage(imgsrc,name,city) {
	if(!bigImage){
		d = document.createElement('div');
		idAttr = document.createAttribute('id');
		idAttr.nodeValue = 'bigImageWrapper';
		d.setAttributeNode(idAttr);
		document.getElementsByTagName("body")[0].appendChild(d);
	}
	bigImage = $('bigImageWrapper');
	d.innerHTML = '<h3 class="tx_hotelportal_pi2-title">' + name + '</h3>' + city + '<br /><img src="' + imgsrc + '" id="bigImage" />';
	bigImage.style.position = 'absolute';
	bigImage.style.left = (x + 20) + "px";
	bigImage.style.top 	= (y) + "px";
	//bigImage.style.height 	= (240) + "px";
	bigImage.style.display = "block";
	//alert(" x: "  + x + " y: " + y + "Scroll: " + document.body.scrollTop);
}

function hideImage(){
	bigImage.style.display = "none";
}


var customFormCheckFunction = function(){
		arrival = getComparableDate($Sel('arrival_day'),$Sel('arrival_month'));
		departure = getComparableDate($Sel('departure_day'),$Sel('departure_month'));
		currentDate = getComparableDate(serverday,servermonth + serveryear);

		if(parseInt(departure) <= parseInt(arrival)){
			alert('Das Abreisedatum muss mindestens einen Tag nach dem Ankunftsdatum liegen');
			focusField('departure_day');
			return false;
		}
		else if (substractDates(departure,arrival) > 30){
		
			alert('Das Abreisedatum darf nur maximal 30 Tage nach dem Ankunftsdatum liegen');
			focusField('departure_day');
			return false;
		}
		else if (substractDates(arrival,currentDate) < 0){
			alert('Das Abreisedatum muss in der Zukunft liegen!');
			focusField('arrival_day');
			return false;
		}

		if($(searchFormPrefix + 'city_custom') && $F(searchFormPrefix + 'city_custom')=='' && $Sel('city')==''){
			alert('Bitte eine Stadt auswählen oder eingeben');
			focusField('city_custom');
			return false;
		}
		n = $$('div#tx_hotelportal_hotels_numberOfRooms  input');
		if($F(n[0])=='' && $F(n[1])=='' && $F(n[2])==''){
			$('tx_hotelportal_hotels_numberOfRooms').style.border = '1px solid red';
			alert('Bitte eine Zimmeranzahl auswählen');
			n[0].focus();
			return false;
		}
		if((parseInt(Number(($F(n[0]))) + parseInt(Number($F(n[1]))) + parseInt(Number($F(n[2]))))) > 3){

			alert('Es können nur maximal 3 Zimmer auf einmal gebucht werden!');
			n[0].focus();
			return false;
		}
		numError = false;
		n.each(function(p){
				if(isNaN($F(p))){
					focusField(p);
					numError = true;
					 
				}
			});
		if(numError){
			alert('Bitte nur ganze Zahlen in den rot umrandeten Feldern eingeben!');
			return false;
		}
		document.cookie = 'preselectArrday=' + $Sel('arrival_day') + ';';
		document.cookie = 'preselectArrmonthYear=\'' + $Sel('arrival_month') + '\';';
		document.cookie = 'preselectDepday=' + $Sel('departure_day') + ';';
		document.cookie = 'preselectDepmonthYear=\'' + $Sel('departure_month') + '\';';
		searchLightbox.activate();																														
		return true;
};

function focusField(id){
	if(typeof id == 'string')i = $(searchFormPrefix + id);
	else i = id;
	i.style.border = '2px solid red';
	i.focus();
	window.scrollBy(0,-100);
}
	

function getComparableDate(day,monthYear){
	y = monthYear.substr(2,4);
	m = monthYear.substr(0,2);
	return y + '' + m + '' + day;
}

function substractDates(d1,d2){
	a = new Date(parseInt(d1.substr(0,4),10),parseInt(d1.substr(4,2),10),parseInt(d1.substr(6,2),10));
	b = new Date(parseInt(d2.substr(0,4),10),parseInt(d2.substr(4,2),10),parseInt(d2.substr(6,2),10));
	return ((a.getTime()/(24*3600*1000))-(b.getTime()/(24*3600*1000)));
}


function $Sel(id){
	id = searchFormPrefix + id;
	if($(id) && $(id).type == 'select-one'){
		return $(id).options[$(id).selectedIndex].value;
	}
	else return '';
}

function updateCalendar(calObj){
	day = $Sel('arrival_day');
	monthYear = $Sel('arrival_month');
	arrival = getComparableDate(day,monthYear);
	departure = getComparableDate($Sel('departure_day'),$Sel('departure_month'));
	if(parseInt(departure) <= parseInt(arrival)){
		day = parseInt(day);
		year = parseInt(monthYear.substr(2,4));
		month = parseInt(monthYear.substr(0,2));
		n = calObj.getDaysInMonth(month,year);
		day = day + 1;
		if(day > n){
			day = 1;
			month += 1;
			if(month > 12){
				month = 1;
				year +=1;
			}
			if(month < 10)month = '0' + month;
			monthYear = month + '' + year;
		}
		
		selectOption($(searchFormPrefix + 'departure_day'),day);
		selectOption($(searchFormPrefix + 'departure_month'),monthYear);
	}

}

function preselectCalendar(calObj){
	if(document.cookie){
		if(document.cookie.indexOf(";")>0){
			tmp = document.cookie.split(';');
			for(i=0;i<tmp.length;i++){
				if(tmp[i].indexOf('preselect')>=0)eval(tmp[i] + ';');
			}
		}
	}
	selectOption($(searchFormPrefix + 'arrival_day'),preselectArrday);
	selectOption($(searchFormPrefix + 'arrival_month'),preselectArrmonthYear);
	selectOption($(searchFormPrefix + 'departure_day'),preselectDepday);
	selectOption($(searchFormPrefix + 'departure_month'),preselectDepmonthYear);
}

var errorLabels = {};

function showImg(imgSrc){
	$('tx-hotelportal-pi2_imagePoster').src = imgSrc;
}

function getRoute(){
	var url = 'http://maps.google.de/maps?daddr=' + $('daddr').value;
	var saddr = $('saddr').value;
	if(saddr)url = url + '&saddr=' + saddr;
	$('getRouteLink').href = url;
	return true;
}