var enablepersist="off" //Enable saving state of content structure? (on/off)
if (document.getElementById)
{
  document.write('<style type="text/css">')
  document.write('.switchcontent{display:none;}')
  document.write('</style>')
}
function getElementbyClass(classname){
ccollect=new Array()
var inc=0
var alltags=document.all? document.all : document.getElementsByTagName("*")
for (i=0; i<alltags.length; i++){
if (alltags[i].className==classname)
ccollect[inc++]=alltags[i]
}
}
function contractcontent(omit){
var inc=0
while (ccollect[inc]){
if (ccollect[inc].id!=omit)
ccollect[inc].style.display="none"
inc++
}
}
function expandcontent(cid){
if (typeof ccollect!="undefined"){
 contractcontent(cid)
for(i=1;i<=cid;++i) {
 document.getElementById(i).style.display=(document.getElementById(i).style.display="block")
 selectedItem=i+"|"+document.getElementById(i).style.display
}
}
}
function revivecontent(){
selectedItem=getselectedItem()
selectedComponents=selectedItem.split("|")
contractcontent(selectedComponents[0])
document.getElementById(selectedComponents[0]).style.display=selectedComponents[1]
}

function reshowrecommendation(dd){
    if(dd.options[dd.selectedIndex].value == "__"){
	document.getElementById("resonanzdiv").style.display="block";
    } else {
	document.getElementById("resonanzdiv").style.display="none";
    }
}



function do_onload(){
getElementbyClass("switchcontent")
if (enablepersist=="on" && getselectedItem()!="")
revivecontent()
}
if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=do_onload 
if (enablepersist=="on" && document.getElementById)
window.onunload=saveswitchstate

/*/////////////////////////////////////////////////////////////////////////////////
                                    JS Kalender
	Beispiel:
		kalender = new Calender(document.getElementById('jscalender'), 'de');
		kalender.callBackFunction = function(tag,monat,jahr){
			document.forms[0].vdd.value = tag;
			document.forms[0].vmm.value = monat;
			document.forms[0].vyy.value = jahr;
			kalender.hide();
		}
	callBackFunction wird aufgerufen wenn auf ein Datum geklickt wird
/////////////////////////////////////////////////////////////////////////////////*/
/**
 * @projectDescription JS Kalender, callBackFunction wird aufgerufen wenn auf ein Item geklickt wird
 * @param {String} obref
 * @param {String} lang
 */
function Calender(obref, lang){
	var self = this;
	this.obref = obref;
	this.day_names_l = new Array();
	this.month_names_l = new Array();
	this.day_names_l['de'] = new Array('Mo','Di','Mi','Do','Fr','Sa','So');
	this.month_names_l['de'] = new 

Array('Jänner','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
	this.day_names_l['en'] = new Array('Mo','Tu','We','Th','Fr','Sa','Su');
	this.month_names_l['en'] = new 

Array('January','February','March','April','May','June','July','August','September','October','November','December');
	this.day_names_l['fr'] = new Array('Lu','Ma','Me','Je','Ve','Sa','Di');
	this.month_names_l['fr'] = new 

Array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre');
	this.day_names_l['it'] = new Array('Lun','Mar','Mer','Gio','Ven','Sab','Dom');
	this.month_names_l['it'] = new 

Array('gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
	this.day_names_l['es'] = new Array('Lun','Mar','Mié','Jue','Vie','Sáb','Dom');
	this.month_names_l['es'] = new 

Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
	this.day_names = this.day_names_l[lang];
	this.month_names = this.month_names_l[lang];
	this.days = new Array();
	/**
	 * @projectDescription initialisiert den Kalender und befüllt den Container mit HTML-Code
	 */
	this.init = function(){
		html_output = '<div class="jsc_head"><a class="jsc_back" href="javascript:void(0);">&laquo;</a><h3></h3><a class="jsc_next" href="javascript:void(0);">&raquo;</a></div>\n';
		html_output += '<div class="jsc_body">\n';
		for(i=0;i<7;i++){
			html_output += '<span>' + self.day_names[i] + '</span>\n';
		}
		zw=0;
		for(i=0;i<41;i++){
			zw++;
			if(zw==6 || zw==7){
				html_output += '<a href="javascript:void(0);" class="jsc_special"></a>\n';
			}
			else{
				html_output += '<a href="javascript:void(0);"></a>\n';
			}
			if(zw==7){
				zw=0;
			}
		}
		html_output += '<a class="jsc_close" href="javascript:void(0);">x</a>\n';
		html_output += '</div>';
		self.obref.innerHTML = html_output;
		self.obref.getElementsByTagName('a')[self.obref.getElementsByTagName('a').length-1].onclick = function(){
			self.hide();
		}
		self.obref.getElementsByTagName('a')[0].onclick = function(){
			if(self.akt_month>1){
				self.setDate(self.akt_month-1, self.akt_year);
			}
			else{
				self.setDate(12, self.akt_year-1);
			}
		}
		self.obref.getElementsByTagName('a')[1].onclick = function(){
			if(self.akt_month<12){
				self.setDate(self.akt_month+1, self.akt_year);
			}
			else{
				self.setDate(1, self.akt_year+1);
			}
		}
		for(i=2;i<43;i++){
			self.obref.getElementsByTagName('a')[i].onclick = function(){
				self.itemOnClick(this);
			}
		}
		zw = new Date();
	}
	/**
	 * @projectDescription blendet den Kalender ein
	 */
	this.show = function(){
		self.obref.style.display = 'block';
	}
	/**
	 * @projectDescription blendet den Kalender aus
	 */
	this.hide = function(){
		self.obref.style.display = 'none';	
	}
	/**
	 * @projectDescription setzt Monat und Jahr
	 */
	this.setDate = function(month, year){
		self.akt_month = month;
		self.akt_year = year;
		blankdays = new Date(year,month-1,1).getDay();
		blankdays += -1;
		if(blankdays<0){
			blankdays=6;
		}
		for(i=27;month-1==new Date(year,month-1,i).getMonth();i++){
			maxdays = i;
		}
		for(i=0;i<blankdays+1;i++){
			self.days[i] = '';
		}
		for(i=i-1;i<maxdays+blankdays;i++){
			self.days[i] = i-blankdays+1;
		}
		for(;i<41;i++){
			self.days[i] = '';
		}
		self.aktualHTML();
	}
	/**
	 * @projectDescription aktualisiert den HTML-Code des Kalenders
	 */
	this.aktualHTML = function(){
		self.obref.getElementsByTagName('h3')[0].innerHTML = self.month_names[self.akt_month-1] + ' ' + self.akt_year;
		for(i=0;i<self.days.length;i++){
			self.obref.getElementsByTagName('a')[i+2].innerHTML = self.days[i];
			self.obref.getElementsByTagName('a')[i+2].className = self.obref.getElementsByTagName('a')[i+2].className.replace(/jsc_blank/gi, '');
			if(self.days[i]==""){
				self.obref.getElementsByTagName('a')[i+2].className += " jsc_blank";
			}
		}
	}
	/**
	 * @projectDescription wird aufgerufen wenn ein Item ausgewält wird
	 * @param {Object} obj
	 */
	this.itemOnClick = function(obj){
		if(obj.innerHTML!=''){
			self.callBackFunction(obj.innerHTML*1,self.akt_month,self.akt_year);
		}
	}
	this.hide();
	this.init();
	self.setDate(zw.getMonth()+1,zw.getFullYear());
}

//prefill form fields of the anreise

var ONE_WEEK = 7*24*60*60*1000;
function makeDay() {
   nowDay = new Date();
   return nowDay.getDate();
}

function makeMonth() {
   nowMonth = new Date();
   return nowMonth.getMonth()+1;
}

function makeYear() {
   nowYear = new Date();
   return nowYear.getFullYear();
}

function makeDayEnd() 
{
   var endDate = new Date();
   endDate.setTime(getEndDateMilli());
   return endDate.getDate();
}


/* Fixing end date methods 29.01.2010 */
function makeMonthEnd() 
{
   var endDate = new Date();
   endDate.setTime(getEndDateMilli());
   return endDate.getMonth()+1;
}

function makeYearEnd() 
{
   var endDate = new Date();
   endDate.setTime(getEndDateMilli());
   return endDate.getFullYear();
}

function getEndDateMilli()
{
   var nowDate = new Date().getTime();
   var time = nowDate + ONE_WEEK;
   return time;   
}
