document.observe("dom:loaded", function() {

	if($('sonderangebotContainer')) {
		initMultipageTeaser();
	}
	if($('schriftgradminus')) {
		setFontsize();
	}

	registerStichwortSucheEvents();
});

function resetOrt() {
	new Ajax.Request("/web/skripte/template/reset_recherche.cfm/type/ort");
}

function resetLand() {
	new Ajax.Request("/web/skripte/template/reset_recherche.cfm/type/land");
}

/*
* Stichwortsuche event handler.
*/
function registerStichwortSucheEvents () {

	var stichwortsuche = cic.$('stichwortsuche');
	if(stichwortsuche) {
		cic.addEvent(stichwortsuche, 'focus', stichwortGotFocus);
		cic.addEvent(stichwortsuche, 'blur', stichwortLostFocus);
		// AutoCompleter function.
		sitchwortSucheAutoComplete = new Ajax.Autocompleter('stichwortsuche','autoCompleterDiv',
			'/web/skripte/dsp_suggestions.cfm',
			{ afterUpdateElement:submitSearch, Frequency:0.9, minChars:3}
		);
	}
}

function stichwortKeyObserver(event) {
	code = (window.event) ? window.event.keyCode: event.which;
}

function stichwortGotFocus() {
	var stichwortsuche = cic.$('stichwortsuche');
	var value = stichwortsuche.value;
	var defaultValue = stichwortsuche.getAttribute("default");
	stichwortsuche.value = (defaultValue == value) ? "" : value;
	//stichwortsuche.select();
	if(defaultValue !== value && value !== "") {
		//sitchwortSucheAutoComplete.activate();
	}
}

function stichwortLostFocus() {
	var stichwortsuche = cic.$('stichwortsuche');
	stichwortsuche.value = (stichwortsuche.value == "") ? stichwortsuche.defaultValue : stichwortsuche.value;
}

function submitSearch(text, li) {
	var stichwortsuche = cic.$('stichwortsuche');

	if(li.getAttribute('ishead')) 
		li = li.next();

	if(stichwortsuche.value == "" || stichwortsuche.value == undefined) {
		if(li.childNodes[1])
			stichwortsuche.value = li.childNodes[1].innerHTML;
		else {
			stichwortsuche.value = stichwortsuche.getAttribute("default");
			return;//stichwortsuche.value =  "";
		}
			
	}


	var val = stichwortsuche.value;
			val = val.replace(/[ü]/g, 'ue');
	var _url = "" ;
	var ids = li.getAttribute("id").split("_");
	var form = document.getElementById("formsuche");

	
	
	switch(parseInt(ids[1])) {
		case 12:
			if(!form) {
				new Ajax.Request("/web/skripte/template/getseolink.cfm/suchtype/reiseart/id/"+ids[0], {asynchronous:false,
				onSuccess: function(response) {
					window.location.href = response.responseText.strip() +"?stichwortsuche="+stichwortsuche.value;
				},
				onFailure: function() {
					window.location.href = "/web/index.cfm/idreiseart/"+ids[0];
				}
			})
		} else {

				var reisearten = document.getElementById("IdReiseart");
				document.getElementById("IdLand").selectedIndex = 0;
				document.getElementById("IdOrt").selectedIndex = 0;
				document.getElementById("AnzErwachsene").selectedIndex = 0;
				document.getElementById("AnzKinder").selectedIndex = 0;
	
				for(var i = 0, len = reisearten.options.length; i < len; i++) {
					if(reisearten.options[i].value == ids[0]) {
						reisearten.selectedIndex = i;
					}
				}
				form.setAttribute("action", "/suchergebnis.html?stichwortsuche="+stichwortsuche.value);
				form.submit();
			}

			break;

		case 19:
			
			if(!form) {
				new Ajax.Request("/web/skripte/template/getseolink.cfm/suchtype/ort/id/"+ids[0], {asynchronous:false,
				onSuccess: function(response) {
					window.location.href = response.responseText.strip() +"?stichwortsuche="+stichwortsuche.value;
				},
				onFailure: function() {
					window.location.href = "/web/index.cfm/idreiseart/"+ids[0];
				}
			})
		} else {
			document.getElementById("IdReiseart").selectedIndex = 0;
			document.getElementById("IdLand").selectedIndex = 0;
			document.getElementById("AnzErwachsene").selectedIndex = 0;
			document.getElementById("AnzKinder").selectedIndex = 0;
			changeOrt();

			var orte = document.getElementById("IdOrt");

			for(var i = 0, len = orte.options.length; i < len; i++) {
				if(orte.options[i].value == ids[0]) {
					orte.selectedIndex = i;
				}
			}
			form.setAttribute("action", "/suchergebnis.html?stichwortsuche="+stichwortsuche.value);
			form.submit();
		}		
			break;
		default:
				
			new Ajax.Request("/web/skripte/template/getseolink.cfm/suchtype/objekt/id/" + ids[0] , {
				onSuccess: function(response) {
					window.location.href = response.responseText.strip() + "?stichwortsuche="+stichwortsuche.value;
				},
				onFailure: function() {
					window.location.href = "/web/index.cfm/pm/detail/idobjekt/" + ids[0] +"/stichwortsuche/"+stichwortsuche.value;
				}
			});

	}
	//querystring += "&stichwortsuche=" + encodeURI(val) + "&istrecherche=true" ;

	//window.location.replace(_url);
}
function updateSchriftgrad(idx, len) {

	if(idx == 0) {
		$('schriftgradminus').style.cssText="display:none;";
	} else if(idx == len - 1) {
		$('schriftgradplus').style.cssText="display:none;";
	} 

	if(idx > 0 && $('schriftgradminus').style.display == "none") {
		$('schriftgradminus').style.cssText ="display:block";
  } 

	if(idx < len - 1 && $('schriftgradplus').style.display == "none") {
		$('schriftgradplus').style.cssText="display:block";
  } 
}

function setIFrameFontSize(font_size) {

  var iFrame =  document.getElementById('buchframe');

	if(!font_size) {
		font_size = getFontSize()
	}


	 if(!iFrame) return;
	
   if(iFrame.contentDocument ) { 
     iFrame.contentDocument.getElementsByTagName('body')[0].style.fontSize = font_size + "%";
   } else if ( iFrame.contentWindow ) { 
     iFrame.contentWindow.document.getElementsByTagName('body')[0].style.fontSize = font_size + "%";
   }

 }

function setFontsize() {
	var font_sizes = [63,71,80,88,97];
	Cookie.init({name: 'font-sizer', expires: 90, path: "/"});

	if (Cookie.getData('font-size') == undefined) {
		Cookie.setData('font-size', '63');
	}
	var curfontsize = Cookie.getData('font-size');
	document.body.style.fontSize = curfontsize + "%";

	setIFrameFontSize(curfontsize);

	updateSchriftgrad(font_sizes.indexOf(curfontsize), font_sizes.length);
	
}

function getFontSize() {
	var font_size = Cookie.getData('font-size');
	if (font_size == undefined) {
		font_size = '63'
	}
	return font_size;
}


var schriftgroesse = 1;

function schriftgrad (schrift) { 
	
	var font_size, new_font_size, new_font_size_index, font_sizes = [63,71,80,88,97];

	Cookie.init({name: 'font-sizer', expires: 90, path: "/"});

	font_size = Cookie.getData('font-size');

	if (font_size == undefined) {
		Cookie.setData('font-size', font_sizes[0]);
		font_size = font_sizes[0]
	}

	indexfontsize_temp = font_sizes.indexOf(font_size)
	if (indexfontsize_temp == -1) {
		indexfontsize_temp = 0;
	}
	
	// get index of font-size from font_sizes array.
	// and get the new Index
	new_font_size_index = indexfontsize_temp + schrift;
	
	//eval("document.getElementById('headlogo').src='/web/images/railtours_logo_"+new_font_size_index+".png'");
   
   	updateSchriftgrad(new_font_size_index, font_sizes.length)

	if(new_font_size_index < 0 || new_font_size_index > font_sizes.length) {
		return;
	} else {
		new_font_size = font_sizes[new_font_size_index];
		Cookie.setData('font-size', new_font_size);
		document.getElementsByTagName("body")[0].style.fontSize = new_font_size + "%";
		setIFrameFontSize(new_font_size)
	}

/*	
	schriftgroesse = schriftgroesse +schrift;
	if (schriftgroesse == 0) 
		{schriftgroesse = 1;document.getElementById('schriftgradminus').style.visibility="hidden"}
	else	
		{document.getElementById('schriftgradminus').style.visibility="visible"}
	
	if (schriftgroesse == 6) 
		{schriftgroesse = 5;document.getElementById('schriftgradplus').style.visibility="hidden"}
	else	
		{document.getElementById('schriftgradplus').style.visibility="visible"}
		
	if (schriftgroesse == 1) {document.getElementsByTagName("body")[0].style.fontSize = "63%"; font_size = 63}	
	if (schriftgroesse == 2) {document.getElementsByTagName("body")[0].style.fontSize = "71%"; font_size = 71}	
	if (schriftgroesse == 3) {document.getElementsByTagName("body")[0].style.fontSize = "80%"; font_size = 80}	
	if (schriftgroesse == 4) {document.getElementsByTagName("body")[0].style.fontSize = "88%"; font_size = 88}	
	if (schriftgroesse == 5) {document.getElementsByTagName("body")[0].style.fontSize = "97%"; font_size = 97}	


	Cookie.init({name: 'font-sizer', path: "/"});
	Cookie.setData('font-size', font_size);
*/
}

function sonanclass (sonan,wert) {
	if (wert ==1)
		{document.getElementById("sonan_"+sonan).className = "sonanblendehigh";
		 document.getElementById("sonantext_"+sonan).className = "sonantexthigh";
		}
	else
	 	{document.getElementById("sonan_"+sonan).className = "sonanblende";
		 document.getElementById("sonantext_"+sonan).className = "sonantext";
		}
} 

function kurzclass (id,wert,breite) {
	var elem = document.getElementById("kurz_"+id)
	if(!elem) return;

	if (wert ==1) {
		elem.style.display='block';
		document.getElementById("kurz_rechts_"+id).className = "kurz_rechtshigh";
		if (breite=="schmal")
			{document.getElementById("kurz_mitte_"+id).className = "kurz_mittehighschmal";}
		else
			{document.getElementById("kurz_mitte_"+id).className = "kurz_mittehigh";}
	} else {
		elem.style.display='none';
		document.getElementById("kurz_rechts_"+id).className = "kurz_rechts";
		if (breite=="schmal")
			{document.getElementById("kurz_mitte_"+id).className = "kurz_mitteschmal";}
		else
			{document.getElementById("kurz_mitte_"+id).className = "kurz_mitte";}		
		}
} 



function displaysubmenue(menue,seite) {

 if (seite != 0) 
 	{self.location.href=seite+"/menueid/"+menue}
else	
{
 if(eval("document.getElementById('sub"+menue+"').style.display=='none'")) 
 	{eval("document.getElementById('sub"+menue+"').style.display='block'");
	document.getElementById("menue_"+menue).className = "menueinfohigh";
	}  
 else 
 	{eval("document.getElementById('sub"+menue+"').style.display='none'");
	document.getElementById("menue_"+menue).className = "menueinfo";
	}  
 } 
}
/*
function showCalender(event, options) {

	var DEFAULT_DATE = '01.01.1900';

	if(options.dependentOf) {
		var dependentOf = $(options.dependentOf);
		options.minDate = dependentOf.getValue();
	}
	
	/*
	 * set startValue in options object if already not.
   */
	/*	options.startDate=(options.startDate)?options.startDate:(cic.$(options.startDateContainer) && cic.$(options.startDateContainer).value != DEFAULT_DATE)?cic.$(options.startDateContainer).value:options.minDate;
	
		options.calendars = (options.calendars)?options.calendars:3;

console.info(options.calendars)
	/*
	 * show calender.
	 */
 /*  var calender = new Kalender(options.containerId, {
        onSelect: options.callback,
        minDate: options.minDate,
        maxDate: (options.maxDate) ? options.maxDate : '',
        startDate: options.startDate,
				dateList: options.dateList,
				calendars:options.calendars
    });

    calender.show();
    
	/*
	 * stop event.
	 */
/*	Event.stop(event);
}*/

function detail_showproduktmerken(objekt)
{
remotemerkzettel(objekt,'add')
}


function remotemerkzettel(merkid,action)
{	
remoteScript = "/web/skripte/remotemerkzettel.cfm?idobjekt="+merkid+"&action="+action;
var head = document.getElementsByTagName('head').item(0);	
var oldScript  = "";	
if (oldScript) head.removeChild(oldScript);	
script = document.createElement('script');	
script.src = remoteScript;
script.type = 'text/javascript';	
script.id = "Merkzettel";	
head.appendChild(script);
}	
	
function displaymap(breite,laenge,zparameter)
{	
 var zparam = 16;
 if (zparameter != '' &&  zparameter != 0)
 	{zparam = zparameter}
 if(breite != '' && laenge!= '' && breite!= 0 && laenge!= 0)
 	{
 	var map = new GMap2(document.getElementById("detail_grossbild"));
    map.setCenter(new GLatLng(breite,laenge),zparam);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	var point = new GLatLng(breite,laenge);
	var marker = new GMarker(point);
	map.addOverlay(marker);
	}  
 else
	{document.getElementById("detail_grossbild").innerHTML="Zu diesem Objekt gibt es leider keinen Lageplan.";}
}


function drawMap(mapContainerId, data, options) {
	if(! cic.$(mapContainerId)) return;
	var zoom = data.zoom;
	var latlng = new google.maps.LatLng(data.lat,data.lng);
	var infoWindow = new google.maps.InfoWindow();
	

	var options = {
		zoom: zoom,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
/*		mapTypeControl: true,
		mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DEFAULT},
		zoomControl: true,
		zoomControlOptions: {
		style: google.maps.ZoomControlStyle.SMALL
		},
		
		mapTypeId: google.maps.MapTypeId.ROADMAP,

		disableDefaultUI: true,
		
		navigationControl: true,
		navigationControlOptions: {
			style: google.maps.NavigationControlStyle.ANDROIDs,
			position: google.maps.ControlPosition.LEFT
		},
		
		scaleControl: true*/
	};

	var map = new google.maps.Map(cic.$(mapContainerId), options);
	

	// Creating a marker and positioning it on the map  
	var marker = new google.maps.Marker({  
  		position: latlng,  
  		map: map  
	});

}

function submitform(seite) {
	document.getElementById("aktive_seite").value = seite;
	document.getElementById("formsuche").submit();
}

function startSuche()	{
	var form = document.getElementById("formsuche");
	form.setAttribute("action", "/suchergebnis.html");
	document.getElementById("istrecherche").value = true;
	form.submit();	
/*
		var idLand        = getSelectedValue("IdLand");
		var idReiseart    = getSelectedValue("IdReiseart");
		var form = document.getElementById("formsuche");

		document.getElementById("istrecherche").value = true;
		
		parameter = "/idreiseart/" + idReiseart;
		parameter += "/idLand/" + idLand;
		
		new Ajax.Request("/web/skripte/template/seourl.cfm" + parameter, {

		onSuccess: function(response) {
			form.setAttribute("action", response.responseText.strip())
			form.submit();	
		},

		onFailure: function(response) {
			form.setAttribute("action", "/uebersicht.html");
			form.submit();	
		}

	});
	*/
	
		/*
		
		if (location.host == 'railtours.cic.local')
			{window.location.href = "/web/index.cfm" + encodeURI(parameter);	}
		else
			//http://www.railtours.at/web/index.cfm
			{window.location.href = "/web/index.cfm" + encodeURI(parameter);}	
		*/
	}
	
	function getSelectedValue(id) 
	{
		var oSelect = document.getElementById(id);
		return oSelect.options[oSelect.selectedIndex].value;
	}	
	
	/** Auslesen der selektierten Ort ID **/
	function changeOrt()
	{
		landElement = document.getElementById("IdLand");
		reiseartElement = document.getElementById("IdReiseart");
		var idLand =  landElement.options[landElement.selectedIndex].value;
		var idReiseart =  reiseartElement.options[reiseartElement.selectedIndex].value;
		new Ajax.Request('/web/skripte/qry_sucheremote.cfm/change/ort/idLand/'+idLand+'/idReiseart/'+idReiseart, { asynchronous:false,   
		onSuccess: function(transport) {    
		$('ort_td').update(transport.responseText);
	   	}
		 
		}); 

	}
	
	function changeLand()
	{
		landElement = document.getElementById("IdLand");
		reiseartElement = document.getElementById("IdReiseart");
		var idLand =  landElement.options[landElement.selectedIndex].value;
		var idReiseart =  reiseartElement.options[reiseartElement.selectedIndex].value;
		new Ajax.Request('/web/skripte/qry_sucheremote.cfm/change/land/idReiseart/'+idReiseart+'/idLand/'+idLand, {   
		onSuccess: function(transport) {    
		$('land_td').update(transport.responseText);
	   	}
		 
		}); 
		
	}


function toggleCalendar(event, options) {

	 var calContainer = $('cal_' + options.containerId);

    if (calContainer && calContainer.visible()) {
        calContainer.hide();
        return;
    }
		else {
			showCalender(event, options);		
		}
}

Event.observe(document, 'click', function(e) {
		hideCalender(e)
	})


function showCalender(event, options) {

	var DEFAULT_DATE = '01.01.1900';

	if(options.dependentOf) {
		var dependentOf = $(options.dependentOf);
		options.minDate = dependentOf.getValue();
	}
	
	/*
	 * set startValue in options object if already not.
   */
		options.startDate=(options.startDate)?options.startDate:(cic.$(options.startDateContainer) && cic.$(options.startDateContainer).value != DEFAULT_DATE)?cic.$(options.startDateContainer).value:options.minDate;
	
		options.calendars = (options.calendars)?options.calendars:3;


	/*
	 * show calender.
	 */
   var calender = new Kalender(options.containerId, {
        onSelect: options.callback,
        minDate: options.minDate,
        maxDate: (options.maxDate) ? options.maxDate : '',
        startDate: options.startDate,
				dateList: options.dateList,
				calendars: options.calendars
    });

    calender.show();
    
	/*
	 * stop event.
	 */
	Event.stop(event);
}

function hideCalender(e) {
    if (e.button == 2) return;

    if (cic.$('cal_vnd'))
        cic.$('cal_vnd').style.display = 'none';
    if (cic.$('cal_bsd'))
        cic.$('cal_bsd').style.display = 'none';
}

function vndCallback(date) {
		var lsVonDate = date.LSDateFormat()
		var element = cic.$('hotelanreise');
		var lsBisDate = date.AddDays(1).LSDateFormat();

		if(element.type == "select-one") {
			element.options[0].value = lsVonDate;
			element.options[0].text = lsVonDate;
		} else {
    	element.value = lsVonDate;
		cic.$('hotelabreise').value = lsBisDate;
		}

		
}
function bsdCallback(date) {
    var lsBisDate = date.LSDateFormat()
		var element = cic.$('hotelabreise');

		if(element.type == "select-one") {
			element.options[0].value = lsBisDate;
			element.options[0].text = lsBisDate;
		} else {
    	element.value = lsBisDate;
		}
		
}
	
function buchungshinweis(idobjekt,fensterbreite) {
		open('/web/index.cfm?fuseaction=home.buchungshinweis&idobjekt=' + idobjekt,'zginfo','width='+fensterbreite+',height=420,scrollbars=Yes,location=No,left=150,top=0,menubar=No,alwaysRaised=Yes,resizable=Yes,toolbar=No,status =No').focus();
	}
	
function buchen(objId,objCode,jettravelId,login,alttext) {
		window.location.href = ('/web/index.cfm?pm=buchungsanfrage&objId=' + objId + '&objCode='+ objCode + '&jettravelId='+ jettravelId + '&login='+ login + '&alttext='+ alttext + '&debugmodus=0');
	}
	
function buchen_Leistung(objId,objCode,jettravelId,login,alttext) {
		window.location.href = ('/web/index.cfm?pm=buchungsanfrage&leistung=1&objId=' + objId + '&objCode='+ objCode + '&jettravelId='+ jettravelId + '&login='+ login + '&alttext='+ alttext);
	}
	
function druckversion(idObjekt,Version){
		open('/web/index.cfm?pm=detaildruck&version='+Version+'&idobjekt='+idObjekt,'Druckansicht','width=620,height=600,scrollbars=Yes,location=No,left=150,top=0,menubar=No,alwaysRaised=Yes,resizable=Yes,toolbar=No,status =No').focus();
	}


function Detailseite(idObjekt){
		open('/web/index.cfm?pm=detail&idobjekt='+idObjekt,'Detail'+idObjekt,'width=850,height=600,scrollbars=Yes,location=No,left=150,top=0,menubar=No,alwaysRaised=Yes,resizable=Yes,toolbar=No,status =No').focus();
	}	

	
function resize_myself(n,scroll)	{
		
		var ifObj=document.getElementById(n);
		var _height=ifObj.contentWindow.document.body.scrollHeight;
		if(ifObj.contentWindow.document.getElementById('buchungbestaetigung')){_height=900}
		
  		ifObj.style.height= parseFloat(_height / 10 + 50) + 'em';

		if(window.frames[n].document.getElementById('preisLegende') !== null) {
			new Effect.ScrollTo(window.frames[n].document.getElementById('preisLegende'));
		}
		else {
			new Effect.ScrollTo(ifObj.parentNode.id);
		}
	}
	
function scroller(){
		window.scrollTo(0,0);
	}
	
	
function infogrossbild(e, bild, nummer, position) {
		var element = Event.element(e);
		var position = element.positionedOffset();
    Event.stop(e);
    verschiebung = 200;
    if (position != NaN) { verschiebung = verschiebung + position }
    y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY - verschiebung;
    grossbildLayer = document.getElementById('gross' + bild + '_' + nummer);
    grossbildLayer.style.display = 'block';
    grossbildLayer.style.top = position.top + "px";
   // grossbildLayer.style.left = parseInt(position.left + element.getWidth() + 20) + "px";
	 new Draggable('gross' + bild + '_' + nummer)

}	
	Event.observe(document, 'click', function(e) {
		if(window.grossbildLayer && grossbildLayer.id != Event.element(e).parentNode.id) {
			grossbildLayer.style.display = 'none'; 
		}
	})

String.prototype.toDate = function() {
	var dateArray = this.split(".");
	return new Date(dateArray[2], dateArray[1] - 1, dateArray[0], 0, 0, 0);
};

Date.prototype.LSDateFormat = function() {
	var date = (this.getDate() > 9) ? this.getDate():0+''+this.getDate();
	var month = (this.getMonth() + 1 > 9)? parseInt(this.getMonth()+1) : 0 +''+ parseInt(this.getMonth()+1);
	return date + "." + month + "." + this.getFullYear();
};

Date.prototype.AddDays = function(numberOfDays) {
	if(isNaN(numberOfDays)) return;
	return new Date(this.setDate(this.getDate()+parseInt(numberOfDays)));
};
