/******************************/
/***** quicksearch scrips *****/
/******************************/

var QSDefault = 1; // 0 = package, 1 = nur club, 2 = nur flug, 3 = nur mietwagen

var airports = new Array (
'-1|beliebig',
'DepartureArea.1|Deutschland - Nord',
'DepartureArea.4|Deutschland - Ost',
'DepartureArea.2|Deutschland - S&uuml;d',
'DepartureArea.3|Deutschland - West',
'SXF|Berlin-Sch&ouml;nefeld (SXF)',
'TXL|Berlin-Tegel (TXL)',
'BRE|Bremen (BRE)',
'DTM|Dortmund (DTM)',
'DRS|Dresden (DRS)',
'DUS|D&uuml;sseldorf (DUS)',
'ERF|Erfurt (ERF)',
'FRA|Frankfurt/Main (FRA)',
'FDH|Friedrichshafen (FDH)',
'GRZ|Graz (GRZ)',
'HAM|Hamburg (HAM)',
'HAJ|Hannover (HAJ)',
'INN|Innsbruck (INN)',
'FKB|Karlsruhe/Baden (FKB)',
'CGN|K&ouml;ln-Flughafen K&ouml;ln Bonn (CGN)',
'LEJ|Leipzig/Halle (LEJ)',
'LNZ|Linz (LNZ)',
'FMM|Memmingen (FMM)',
'MUC|M&uuml;nchen (MUC)',
'FMO|M&uuml;nster (FMO)',
'NUE|N&uuml;rnberg (NUE)',
'PAD|Paderborn (PAD)',
'RLG|Rostock-Laage (RLG)',
'SCN|Saarbr&uuml;cken (SCN)',
'STR|Stuttgart (STR)',
'ZQW|Zweibrücken (ZQW)',
'SZG|Salzburg (SZG)',
'BSL|Basel (BSL)',
'VIE|Wien (VIE)',
'MLH|Mulhouse (MLH)',
'ZRH|Z&uuml;rich (ZRH)'
);

var QSclubs = new Array(
'-1|beliebiger Club',
'LDK42061|Club Select Alpenrose Z&uuml;rs (&Ouml;sterreich)',
'AGA11055|Club Agadir (Marokko)',
'SZG87041|Club Amad&eacute; (&Ouml;sterreich)',
'SZG42061|Club Ampflwang (&Ouml;sterreich)',
'BDS15010|Club Apulia (Italien)',
'BAC57061|Club Arosa (Schweiz)',
'PMI55023|Club Cala Serena (Mallorca)',
'AYT12050|Club &Ccedil;amyuva (T&uuml;rkei)',
'KGS15010|Club Daidalos (Griechenland)',
'FUE14010|Club Esquinzo Playa (Spanien)',
'ROS53015|Club Fleesensee (Deutschland)',
'FUE11001|Club Jandia Playa (Spanien)',
'GPA10011|Club Kyllini Beach (Griechenland)',
'HER41020|Club Lyttos Beach (Griechenland)',
'MLE12120|Club Maldives (Malediven)',
'AYT31043|Club Nobilis (T&uuml;rkei)',
'AYT46015|Club Pamfilya (T&uuml;rkei)',
'BAC22061|Club Piz Buin (Schweiz)',
'AGP70001|Club Playa Granada (Spanien)',
'FAO26026|Club Quinta da Ria (Portugal)',
'RAK11055|Riad Zakaria (Marokko)',
'KLU58071|Club Schlanitzen Alm (&Ouml;sterreich)',
'BAC69061|Club Schweizerhof (Schweiz)',
'HRG11025|Club Soma Bay (&Auml;gypten)'
);

var countries = new Array (
'-1|beliebig',
'GeoGroup.45100|&Auml;gypten',
'GeoGroup.46929|Deutschland',
'GeoGroup.45102|Griechenland',
'GeoGroup.46907|Italien',
'GeoGroup.45037|Marokko',
'GeoGroup.45104|&Ouml;sterreich',
'GeoGroup.45041|Portugal',
'GeoGroup.45105|Schweiz',
'GeoGroup.45106|Spanien',
'GeoGroup.46904|T&uuml;rkei'
);

var QSclubsExceptions = new Array(
'LDK42061|Club Select Alpenrose Z&uuml;rs (&Ouml;sterreich)',
'SZG87041|Club Amad&eacute; (&Ouml;sterreich)',
'SZG42061|Club Ampflwang (&Ouml;sterreich)',
'BAC57061|Club Arosa (Schweiz)',
'ROS53015|Club Fleesensee (Deutschland)',
'BAC22061|Club Piz Buin (Schweiz)',
'KLU58071|Club Schlanitzen Alm (&Ouml;sterreich)',
'BAC69061|Club Schweizerhof (Schweiz)'
);

var countriesExceptions = new Array (
'GeoGroup.46929|Deutschland',
'GeoGroup.46075|&Ouml;sterreich',
'GeoGroup.45105|Schweiz'
);
// hlx packages
var extraClubExceptions = new Array (
'ROS53015|Club Fleesensee (Deutschland)',
'LDK42061|Club Select Alpenrose Z&uuml;rs (&Ouml;sterreich)',
'SZG87041|Club Amad&eacute; (&Ouml;sterreich)',
'SZG42061|Club Ampflwang (&Ouml;sterreich)',
'KLU58071|Club Schlanitzen Alm (&Ouml;sterreich)'
);
var extraCountryExceptions = new Array('GeoGroup.46929|Deutschland');

var hn = new Array();
hn['LDK42061'] = 'alpenrose'; 
hn['SZG87041'] = 'amade'; 
hn['AGA11055'] = 'agadir'; 
hn['SZG42061'] = 'ampflwang'; 
hn['BDS15010'] = 'apulia'; 
hn['BAC57061'] = 'arosa'; 
hn['PMI55023'] = 'serena'; 
hn['AYT12050'] = 'camyuva'; 
hn['KGS15010'] = 'daidalos'; 
hn['FUE14010'] = 'esquinzo'; 
hn['ROS53015'] = 'fleesensee'; 
hn['FUE11001'] = 'jandia'; 
hn['GPA10011'] = 'kyllini'; 
hn['HER41020'] = 'lyttos'; 
hn['MLE12120'] = 'maldive';
hn['AYT31043'] = 'nobilis'; 
hn['AYT46015'] = 'pamfilya'; 
hn['BAC22061'] = 'buin'; 
hn['AGP70001'] = 'granada'; 
hn['FAO26026'] = 'quinta'; 
hn['RAK11055'] = 'riad'; 
hn['DLM15030'] = 'sarig';
hn['KLU58071'] = 'schlanitzen'; 
hn['BAC69061'] = 'schweizer'; 
hn['HRG11025'] = 'soma';


// mietwagen

var QSrentalcarCountries = new Array(
'-1|Bitte w&auml;hlen Sie ein Land',
'Argentinien|Argentinien',
'Aruba|Aruba',
'Australien|Australien',
'Belgien|Belgien',
'Bosnien-Herzegowina|Bosnien-Herzegowina',
'Brasilien|Brasilien',
'Bulgarien|Bulgarien',
'Costa Rica|Costa Rica',
'D&auml;nemark|D&auml;nemark',
'Deutschland|Deutschland',
'Dominikanische Republik|Dominikanische Republik',
'Estland|Estland',
'Finnland|Finnland',
'Frankreich|Frankreich',
'Griechenland|Griechenland',
'Gro&szlig;britannien|Gro&szlig;britannien',
'Guadeloupe|Guadeloupe',
'Irland|Irland',
'Island|Island',
'Israel|Israel',
'Italien|Italien',
'Jamaika|Jamaika',
'Kanada|Kanada',
'Kapverden|Kapverden',
'Kroatien|Kroatien',
'Kuba|Kuba',
'Lettland|Lettland',
'Litauen|Litauen',
'Luxemburg|Luxemburg',
'Malediven|Malediven',
'Malta|Malta',
'Marokko|Marokko',
'Martinique|Martinique',
'Mauritius|Mauritius',
'Mexiko|Mexiko',
'Monaco|Monaco',
'Namibia|Namibia',
'Neuseeland|Neuseeland',
'Niederlande|Niederlande',
'Niederl&auml;ndische Antillen|Niederl&auml;ndische Antillen',
'Norwegen|Norwegen',
'&Ouml;sterreich|&Ouml;sterreich',
'Polen|Polen',
'Portugal|Portugal',
'Puerto Rico|Puerto Rico',
'Reunion|Reunion',
'Rum&auml;nien|Rum&auml;nien',
'Schweden|Schweden',
'Schweiz|Schweiz',
'Serbien und Montenegro|Serbien und Montenegro',
'Slowakei|Slowakei',
'Slowenien|Slowenien',
'Spanien|Spanien',
'S&uuml;dafrika|S&uuml;dafrika',
'Trinidad & Tobago|Trinidad & Tobago',
'Tschechische Republik|Tschechische Republik',
'Tunesien|Tunesien',
'T&uuml;rkei|T&uuml;rkei',
'Ungarn|Ungarn',
'USA|USA',
'Vereinigte Arabische Emirate|Vereinigte Arabische Emirate',
'Zypern|Zypern'
);

// club or GeoGroup selection
function toggleDestination(what){
	hideErrCell();
	if (what == 'conQSClubSelectCell' || what == 'conQSClubOnlySelectCell') {
		document.getElementById('conQSGeoGroupSelectCell').style.display = 'none';
		if (document.getElementById('conQSTravelType1').checked){
			document.getElementById('conQSClubOnlySelectCell').style.display = 'block';
			document.getElementById('conQSClubSelectCell').style.display = 'none';
			document.getElementById('conQSGeoGroupSelect').style.display = 'none';
			document.getElementById('conQSGeoGroupSelectPT').style.display = 'none';			
		}else if(document.getElementById('conQSTravelType0').checked){
			document.getElementById('conQSClubOnlySelectCell').style.display = 'none';
			document.getElementById('conQSClubSelectCell').style.display = 'block';
			document.getElementById('conQSGeoGroupSelect').style.display = 'none';
			document.getElementById('conQSGeoGroupSelectPT').style.display = 'none';											
		}
	} else if (what == 'conQSGeoGroupSelectCell'){
		document.getElementById('conQSGeoGroupSelectCell').style.display = 'block';
		if(document.getElementById('conQSTravelType1').checked){
			document.getElementById('conQSClubOnlySelectCell').style.display = 'none';
			document.getElementById('conQSClubSelectCell').style.display = 'none';
			document.getElementById('conQSGeoGroupSelect').style.display = 'block';
			document.getElementById('conQSGeoGroupSelectPT').style.display = 'none';			
		}else if(document.getElementById('conQSTravelType0').checked){
			document.getElementById('conQSClubOnlySelectCell').style.display = 'none';
			document.getElementById('conQSClubSelectCell').style.display = 'none';
			document.getElementById('conQSGeoGroupSelect').style.display = 'none';
			document.getElementById('conQSGeoGroupSelectPT').style.display = 'block';			
		}
	} else {
		document.getElementById('conQSClubSelectCell').style.display = 'none';
		if(document.getElementById('conQSClubOnlySelectCell')){
			document.getElementById('conQSClubOnlySelectCell').style.display = 'none';
		}
		document.getElementById('conQSOpening').innerHTML = '';
		document.getElementById(what).style.display = 'block';
	}
}

function displayExtraText(where,which){ // where = extra exception Array, which = club/country value
	where = eval(where);
	var checkString = where.join('_');
	if(checkString.indexOf(which)!=-1){
		document.getElementById('conQSDepartureSelfTravelExtraCell').style.display='block';
		for(i=0;i<extraClubExceptions.length;i++){
			if(where[i].indexOf(which) != -1){
				if (document.getElementById('conQSClubName'))
					document.getElementById('conQSClubName').innerHTML=extraClubExceptions[i].split('|')[1];
				break;
			}
		}
		
	} else {
		document.getElementById('conQSDepartureSelfTravelExtraCell').style.display='none';
	}
	//  short duration for Fleesensee, &Ouml;sterreich, Schweiz
	var dur = document.getElementById('conQSDuration');
	if(which.indexOf('ROS53015')!=-1 || which.indexOf('46929')!=-1){
		if(dur.value == 7) {dur.value = 2}
	} else {
		if(dur.value == 2) {dur.value = 7}
	}
}

function createQsNumberedPdOptions(start,end,singlestring,normalstring,selection){
	var pd = '';
	for(i=start;i<=end;i++){
		pd += '<option value="'+i+'"'+((i==selection)?' selected="selected"':'')+'>';
		if(i==-1){
			pd += 'beliebig'
		} else {
			pd += ((i==0)?'--':i+' ')+((i==1)?singlestring:normalstring)
		}
		pd +='</option>';
		if(i==-1){i++}
	}
	return pd;
}

function createQsArrayPdOptions(valueArray,selection){
	var pd = '';
	for(i=0;i<valueArray.length;i++){
		var va = valueArray[i].split('|');
		pd += '<option value="'+va[0]+'"'+((va[0]==selection)?' selected="selected"':'')+'>'+va[1]+'</option>';
	}
	return pd;
}

function checkExceptions(where,which) { // where = exception Array, which = club/country value
//	ce = oldTT; // oldTT?
/**
 * Fehler: oldTT is not defined
 */
	where = eval(where);
	var checkString = where.join('_');
	if(checkString.indexOf(which)!=-1){
		if(usrSel == ''){
			ce = 1;
		} else {
			ce = usrSel;
		}
	} else {
		if(usrSel == ''){
			ce = 0;
		} else {
			ce = usrSel;
		}
	}
	return ce;
}

function showOpeningDates(clubname){
/*	var opening = '';
	var cname = '';
	for(i=0;i<QSclubs.length;i++){
		if(QSclubs[i].indexOf(clubname)!=-1){cname=QSclubs[i].split('|')[1]}
	}
	for(i=1;i<clubs.length;i++){
		if(cname.indexOf(clubs[i][0])!=-1){
			var os = clubDates[i];
			var osSort = new Array();
			var ds1 = (os[1]!='') ? stringToDate(os[1].substr(0,10)) : '';
			var ds2 = (os[2]!='') ? stringToDate(os[2].substr(0,10)) : '';
			
			if(os[1] == os[2]){
				opening = 'Ganzj&auml;hrig ge&ouml;ffnet';
			} else {
				opening = 'Ge&ouml;ffnet: ';
				if(ds2>ds1){
					if(os[1]!=''){
						opening += os[1];
						if(now<ds1){setStartDate(ds1,0)}
					}
					if(os[2]!=''){
						opening += ((os[1]!='')?', ':'')+os[2];
						if(os[1]=='' && now<ds2){setStartDate(ds2,0)}
					}
				} else {
					if(os[2]!=''){
						opening += os[2];
						if(now<ds2){setStartDate(ds2,0)}
					}
					if(os[1]!=''){
						opening += ((os[2]!='')?', ':'')+os[1];
						if(os[2]=='' && now<ds1){setStartDate(ds1,0)}
					}
				}
			}
			break;
		}
	}
	document.getElementById('conQSOpening').innerHTML = opening;
	*/
}

function showErrCell(txt){
//	document.getElementById('QSErrCell').innerHTML = txt;
//	document.getElementById('QSErrCell').style.display = 'block';
}

function hideErrCell(){
//	document.getElementById('QSErrCell').innerHTML = '';
//	document.getElementById('QSErrCell').style.display = 'none';
//	QSerr = false;
}

function setStartDate(startdate, daysFromStartdate, daysOffset){
	if(typeof startdate != 'object'){
		now = startdate.split('.');
		now = new Date(now[2],parseInt(now[1])-1,now[0],0,0,0);
	} else {
		now = startdate
	}
	daysToStartdate = (typeof daysFromStartdate == 'undefined') ? 7 : daysFromStartdate;
	defaultDateoffset = (typeof daysOffset == 'undefined') ? 21 : daysOffset
	var start = calcEnddate(now,daysToStartdate);
	var end = calcEnddate(start,defaultDateoffset);
	document.getElementById('conQSStartdateInput').value = dateToString(start);
	document.getElementById('conQSEnddateInput').value = dateToString(end);
}

function quickSearch(which,initdate){ // which might be 'LDK42061'
	if(which){
		which = clubs[getClubID(which)][2]; // get hotelcode for club pulldown
		if(which.indexOf('|')!=-1){ which = which.split('|')[0] } // if result has doublecode, just take first
	} else {
		which = '-1'; // else deliver default value
	}
	var preselect = which; //'-1';
	if(which != '-1'){
		for(i=1;i<QSclubsExceptions.length;i++){
			if(QSclubsExceptions[i].indexOf(which)!=-1){
				QSDefault = 1
				//preselect = '-1';
				break;
			}
		}
	}
	
	// build up form
	var QS = '<div class="conQSHeader">Schnell buchen</div><div id="conQuickSearch">';
	QS += '	<form name="conQS">';
	QS += '		<div id="conQSForm" class="conQSFormRow">';
	//QS += '			<div id="conQSTravelTypeLabel" class="conQSLeftcell">Buchungsart</div>';
	/*QS += '			<div class="conQSFormRow">';
	QS += '				<div id="conQSTravelLinkCell" style="padding-bottom:5px; border-bottom:1px solid #8fbfdf">';
	QS += '					<span onclick="updateQSForm(0);usrSel=this.value;hideErrCell()" id="QSTravelLink0" class="QSTravelLink" style="color:#fff; cursor:pointer;">Club&amp;Flug</span>&nbsp;|';
	QS += '					<span onclick="updateQSForm(1);usrSel=this.value;hideErrCell()" id="QSTravelLink1" class="QSTravelLink" style="color:#fff; cursor:pointer;">Club</span>&nbsp;|';
	QS += '					<span onclick="updateQSForm(2);usrSel=this.value;hideErrCell()" id="QSTravelLink2" class="QSTravelLink" style="color:#fff; cursor:pointer;">Flug</span>&nbsp;|';
	QS += '					<span onclick="updateQSForm(3);usrSel=this.value;hideErrCell()" id="QSTravelLink3" class="QSTravelLink" style="color:#fff; cursor:pointer;">Mietwagen</span>';
	QS += '				</div>';
	QS += '			</div>';*/
	
	QS += '			<div class="conQSFormRow">';
	QS += '				<div id="conQSTravelTypeRadiosCell" style="padding-bottom:5px; border-bottom:1px solid #8fbfdf">';
	//QS += '					<select id="conQSTravelType" class="conQSSelectSmall" onchange="updateQSForm(this.value);usrSel=this.value;hideErrCell()"><option value="0" selected="selected">Urlaubspaket</option><option value="1">Nur Club</option><option value="2">Nur Flug</option><option value="3">Nur Mietwagen</option></select>';
	QS += '					<div id="conQSTravelTypeLabel0" class="conQSLeftcell"><input type="radio" name="conQSTravelType" id="conQSTravelType0" value="0" onclick="updateQSForm(this.value);usrSel=this.value;hideErrCell()" />&nbsp;Club&amp;Flug</div>';
	QS += '					<div id="conQSTravelTypeLabel1" class="conQSRightcell"><input type="radio" name="conQSTravelType" id="conQSTravelType1" value="1" onclick="updateQSForm(this.value);usrSel=this.value;hideErrCell()" />&nbsp;Club</div>';
	QS += '					<div id="conQSTravelTypeLabel2" class="conQSLeftcell"><input type="radio" name="conQSTravelType" id="conQSTravelType2" value="2" onclick="updateQSForm(this.value);usrSel=this.value;hideErrCell()" />&nbsp;Flug</div>';
	QS += '					<div id="conQSTravelTypeLabel3" class="conQSRightcell"><input type="radio" name="conQSTravelType" id="conQSTravelType3" value="3" onclick="updateQSForm(this.value);usrSel=this.value;hideErrCell()" />&nbsp;Mietwagen</div>';
	QS += '				</div>';
	QS += '			</div>';


	QS += '			<div id="conQSDepartureAirportCell" class="conQSFormRow">';
	QS += '				<div id="conQSDepartureAirportLabel" class="conQSLeftcell">Abflughafen</div>';
	QS += '				<div id="conQSDepartureAirportSelectCell" class="conQSFormRow">';
	QS += '					<select id="conQSDeparture" class="conQSSelectWide">'+createQsArrayPdOptions(airports,'-1')+'</select>';
	QS += '				</div>';
	QS += '				<div id="conQSDepartureAirport3lcCell">';
	QS += '					<input type="text" id="conQSOrigin3lc" class="conQSInputWide" value="Abflughafen eingeben" onclick="if(this.value==\'Abflughafen eingeben\'){this.value=\'\'};resetErrorColor(this.id)" onblur="if(this.value==\'\'){this.value=\'Abflughafen eingeben\'}" />';
	QS += '				</div>';
	QS += '			</div>';
	QS += '			<div id="conQSDepartureSelfTravelCell" class="conQSFormRow" style="padding-bottom:5px; border-bottom:1px solid #8fbfdf">';
	//QS += '				<div id="conQSDepartureSelfTravelLabel" class="conQSLeftcell">Anreise</div>';
	QS += '				<div id="conQSDepartureSelfTravelTextCell" class="conQSFormRow" style="font-weight:bold">Eigenanreise</div>';
	QS += '				<div id="conQSDepartureSelfTravelExtraCell" class="conQSFormRow"></div>';
	QS += '			</div>';
	QS += '			<div id="conQSDepartureClubAndGeoGroupCell" class="conQSFormRow">';
	QS += '				<div class="conQSFormRow">Clubauswahl</div>';
	QS += '				<div id="conQSDepartureClubLabel" class="conQSLeftcell"><input type="radio" name="club" onclick="toggleDestination(\'conQSClubSelectCell\')" id="conQSClubRadio" checked="checked" /> nach Club</div>';
	QS += '				<div id="conQSGeoGroupLabel" class="conQSRightcell"><input type="radio" name="club" onclick="toggleDestination(\'conQSGeoGroupSelectCell\')" id="conQSGeoGroupRadio" /> nach Land</div>';
	QS += '				<div id="conQSClubSelectCell" class="conQSFormRow">';
//	QS += '					<select id="conQSClubSelectST" class="conQSSelectWide">'+createQsArrayPdOptions(QSclubsST,preselect)+'</select>';
	QS += '					<select id="conQSClubSelect" class="conQSSelectWide" onchange="updateQSForm(checkExceptions(\'QSclubsExceptions\',this.value));displayExtraText(\'extraClubExceptions\',this.value);showOpeningDates(this.value);hideErrCell()">'+createQsArrayPdOptions(QSclubs,preselect)+'</select>';
	QS += '				</div>';
	QS += '				<div id="conQSGeoGroupSelectCell" class="conQSFormRow">';
//	QS += '					<select id="conQSGeoGroupSelectST" class="conQSSelectWide">'+createQsArrayPdOptions(countriesST,'-1')+'</select>';
	QS += '					<select id="conQSGeoGroupSelect" class="conQSSelectWide" onchange="updateQSForm(checkExceptions(\'countriesExceptions\',this.value));displayExtraText(\'extraCountryExceptions\',this.value);hideErrCell()">'+createQsArrayPdOptions(countries,'-1')+'</select>';
	QS += '				</div>';
	QS += '			</div>';
	QS += '			<div id="conQSRentalcarSelectCell" class="conQSFormRow">';
	QS += '				<div class="conQSFormRow">Anmietland</div>';
	QS += '				<select id="conQSRentalcarSelect" class="conQSSelectWide" onchange="hideErrCell()">'+createQsArrayPdOptions(QSrentalcarCountries,'-1')+'</select>';
	QS += '			</div>';
	QS += '			<div id="conQSDestination3lcCell" class="conQSFormRow">';
	QS += '				<div id="conQSDestination3lcLabel" class="conQSLeftcell">Zielflughafen</div>';
	QS += '				<div id="conQSDestinationAirport3lc">';
	QS += '					<input type="text" id="conQSDestination3lc" class="conQSInputWide" value="Zielflughafen eingeben" onclick="if(this.value==\'Zielflughafen eingeben\'){this.value=\'\'};resetErrorColor(this.id)" onblur="if(this.value==\'\'){this.value=\'Zielflughafen eingeben\'}" />';
	QS += '				</div>';
	QS += '			</div>';	
	QS += '			<div id="conQSOpening" class="conQSFormRow"></div>';
	QS += '			<div id="conQSDateLabelsCell" class="conQSFormRow">';
	QS += '				<div id="conQSStartdateNormalLabel">';
	QS += '					<div id="conQSStartdateLabel" class="conQSLeftcell">fr&uuml;heste Anreise</div>';
	QS += '					<div id="conQSEnddateLabel" class="conQSRightcell">sp&auml;teste Abreise </div>';
	QS += '				</div>';
	QS += '				<div id="conQSStartdateFlightLabel">';
	QS += '					<div id="conQSStartdateLabel" class="conQSLeftcell">Abflug</div>';
	QS += '					<div id="conQSEnddateLabel" class="conQSRightcell">R&uuml;ckflug</div>';
	QS += '				</div>';
	QS += '				<div id="conQSStartdateRentalcarLabel">';
	QS += '					<div id="conQSStartdateLabel" class="conQSLeftcell">Anmietung</div>';
	QS += '					<div id="conQSEnddateLabel" class="conQSRightcell">Abgabe</div>';
	QS += '				</div>';
	QS += '				<div id="conQSStartdateInputCell" class="conQSLeftcell">';
	QS += '					<input name="conQSStartdateInput" id="conQSStartdateInput" class="conQSInputSmall" type="text" maxlength="10" value="" />';
	QS += '					<a href="javascript:spawnInputFieldCalendar(self.document.conQS.conQSStartdateInput, 15, \'dd.MM.yyyy\',null,null,true,self.document.conQS.conQSEnddateInput);" class="conQSCalendarLink"><img src="/pics/rob/de_DE/icons/kalender_'+color[cc][1]+'.gif" border="0" width="16" height="17" /></a></div>';
	QS += '				<div id="conQSEnddateInputCell" class="conQSRightcell">';
	QS += '					<input name="conQSEnddateInput" id="conQSEnddateInput" class="conQSInputSmall" type="text" maxlength="10" value="" />';
	QS += '					<a href="javascript:spawnInputFieldCalendar(self.document.conQS.conQSEnddateInput, 15, \'dd.MM.yyyy\',null,null,true,self.document.conQS.conQSEnddateInput);" class="conQSCalendarLink"><img src="/pics/rob/de_DE/icons/kalender_'+color[cc][1]+'.gif" border="0" width="16" height="17" /></a></div>';
	QS += '			</div>';
	QS += '			<div class="conQSFormRow">';
	QS += '				<div id="conQSDurationLabel" class="conQSRightcell">Reisedauer</div>';
	QS += '				<div id="conQSDurationCell" class="">';
	QS += '					<select id="conQSDuration" class="conQSSelectSmall" onchange="checkEndDate(this.value)">'+createQsNumberedPdOptions(-1,28,'Tag','Tage',7)+'</select>';
	QS += '				</div>';
	QS += '			</div>';
	QS += '			<div id="conQSOccupationAndChildCell" class="conQSFormRow">';
	QS += '				<div id="conQSOccupationLabel" class="conQSLeftcell">Reisende</div>';
	QS += '				<div id="conQSChildrenLabel" class="conQSRightcell">Alter der Kinder</div>';
	QS += '				<div id="conQSOccupationSelectCell">';
	QS += '					<select id="conQSOccupation" class="conQSSelectSmall">'+createQsNumberedPdOptions(1,6,'Erwachsener','Erwachsene',2)+'</select>';
	QS += '				</div>';
	QS += '				<div id="conQSChildren" class="conQSRightcell">';
	QS += '					<select name="child1" id="child1" class="conQSSelectTiny">'+createQsNumberedPdOptions(0,17,'','',0)+'</select>';
	QS += '					<select name="child2" id="child2" class="conQSSelectTiny">'+createQsNumberedPdOptions(0,17,'','',0)+'</select>';
	QS += '					<select name="child3" id="child3" class="conQSSelectTiny">'+createQsNumberedPdOptions(0,17,'','',0)+'</select>';
	QS += '				</div>';
	QS += '			</div>';
	QS += '		  <div id="conQSAdvancedSearchCell" class="conQSFormRow"><a href="javascript:startQSearch(\'advanced\')" class="conQSAdvancedSearchLink" id="conQSAdvancedSearchLnk">Weitere W&uuml;nsche</a></div>';
	QS += '		</div>';
	QS += '		<div id="QSErrCell" class="conQSFormRow" style="display:none;padding:0 4px; color:#f00; background:#fff; border-bottom:1px solid #fff"></div>';
	//QS += '		<div id="conQSSearchBtnCell" style=" margin-top:0px; background:#fff;  border-top:3px solid #fff"><a href="javascript:startQSearch()" class="conQSSearchBtn">Suche starten <span class="conButton">&raquo;</span></a></div>';
	QS += '		<div id="conQSSearchBtnCell" style=" margin-top:0px; background:#fff;  border-top:3px solid #fff"><a href="javascript:startQSearch()" class="conQSSearchBtn">Suche starten</a></div>';
	QS += '	</form>';	QS += '</div>';
	document.write(QS);
	
	// quicksearch initialize
	if(initdate){
		idArr = initdate.split('.');
		var now = new Date(idArr[2], idArr[1]-1, idArr[0]-7, 0, 0 ,0);
	} else {
		var now = new Date();
	}
	setStartDate(now);
	oldTT = getTravelType('conQSTravelType'); 
	usrSel = '';
	updateQSForm(QSDefault);
}

function getTravelType(radioClass){
	rcArr = document.getElementsByName(radioClass);
	rc = 0;
	for(i=0; i<rcArr.length; i++){
		if(rcArr[i].checked) {
			rc = rcArr[i].value;
			break;
		}
	}
	return rc;
}

// calendar need this for returndate offset
function getConcreteValidateVacationDateReturnOffset(){
	mygCVVDRO = 14;
	return mygCVVDRO;
}

function checkEndDate(dur){
	var sd = stringToDate(document.getElementById('conQSStartdateInput').value);
	var ed = stringToDate(document.getElementById('conQSEnddateInput').value);
	var end = calcEnddate(sd,dur);
	if(end>ed){document.getElementById('conQSEnddateInput').value = dateToString(end)}
}

function transformDate(which){
	return which.substr(6,4)+which.substr(3,2)+which.substr(0,2)
}

function setErrorColor(which){
	document.getElementById(which).style.color = 'red';
	document.getElementById(which).style.fontWeight = 'bold'
}

function resetErrorColor(which,col){
	if(typeof col == 'undefined'){ col = '#313131' }
	document.getElementById(which).style.color = col;
	document.getElementById(which).style.fontWeight = 'normal'
}

	function getTimestampFromDate(string){
		var day = string.split(".")[0];
		var month = string.split(".")[1];
		var year = string.split(".")[2];
		
		return Date.UTC(year, month-1, day, 0, 0, 0);
		
	}


QSerr = false;
function startQSearch(adv){
	var traveltype = getTravelType('conQSTravelType');

	var club = document.getElementById('conQSClubSelect').value;
	if (traveltype == 0) {
		var duration = document.getElementById('conQSDuration').value;
		
		//console.log(duration);
		var airports = document.getElementById('conQSDeparture').value;
	}
	if (traveltype == 1) {
		var duration = document.getElementById('conQSDuration2').value;
	}
	
	var GeoGroup = document.getElementById('conQSGeoGroupSelectPT').value;
	var startairport3LC = document.getElementById('conQSOrigin3lc').value;
	var destination3LC = document.getElementById('conQSDestination3lc').value;
	var rentalcarCountry = document.getElementById('conQSRentalcarSelect').value;
	
	// check if country club is selected
	var clubExcept = QSclubsExceptions.join('_');
	var countryExcept = countriesExceptions.join('_');
	var eCE = extraClubExceptions.join('_');
	var eCoE = extraCountryExceptions.join('_');
	if(traveltype == 0){
		if(document.getElementById('conQSClubRadio').checked && clubExcept.indexOf(club)!=-1 && eCE.indexOf(club)==-1) {
			QSerr = true;
			QSerrTxt = 'F&uuml;r diesen Club w&auml;hlen Sie bitte die Buchungsart "<a href=\"javascript:updateQSForm(1);hideErrCell()\" style=\"color:#f00\">Nur Club</a>".';
		} else if(countryExcept.indexOf(GeoGroup)!=-1 && eCoE.indexOf(GeoGroup)==-1) {
			QSerr = true;
			QSerrTxt = 'F&uuml;r dieses Reiseland w&auml;hlen Sie bitte die Buchungsart "<a href=\"javascript:updateQSForm(1);hideErrCell()\" style=\"color:#f00\">Nur Club</a>".';
		}
	}
	// check flight data
	if(traveltype == 2){
		if(!adv){
			if(startairport3LC == '' || startairport3LC == 'Abflughafen eingeben'){
				setErrorColor('conQSOrigin3lc');
				QSerr = true;
			} else {
				startairport3LC = '&Abflughafen=' + startairport3LC; 
				resetErrorColor('conQSOrigin3lc');
				QSerr = false;
			}
			if(destination3LC == '' || destination3LC == 'Zielflughafen eingeben'){
				setErrorColor('conQSDestination3lc');
				QSerr = true;
			} else {
				destination3LC = '&Zielflughafen=' + destination3LC; 
				resetErrorColor('conQSDestination3lc');
				if(!QSerr) {QSerr = false}
			}
		} else {
			if(startairport3LC == 'Abflughafen eingeben'){
				startairport3LC = ''
			} else {
				startairport3LC = '&Abflughafen=' + startairport3LC;
			}
			if(destination3LC == 'Zielflughafen eingeben'){
				destination3LC = ''
			} else {
				destination3LC = '&Zielflughafen=' + destination3LC;
			}
			if(!QSerr) {QSerr = false}
		}
	}
	
	var startdate ='';
	var returndate = '';
	if(traveltype == 2 || traveltype == 3){
		startdate = document.getElementById('conQSStartdateInput').value;
		returndate = document.getElementById('conQSEnddateInput').value;
	}else {
		startdate = transformDate(document.getElementById('conQSStartdateInput').value);
		returndate = transformDate(document.getElementById('conQSEnddateInput').value);
	}
	//var organizer = (traveltype == 0 && eCE.indexOf(club)!=-1)?'778':'1'; // package and extraClub => organizer 778, otherwise 1
	//var destination = (document.getElementById('conQSClubRadio').checked)?((!adv)?((club!='-1')?'&bookingcodes='+organizer+','+club+',RO':''):''):'&destination='+GeoGroup;
	var destination = (!document.getElementById('conQSClubRadio').checked)?'&destination='+GeoGroup:'';
	
	var hotelname = '';
	if(typeof hn[club] != 'undefined'){
		hotelname = hn[club];
		if(!document.getElementById('conQSGeoGroupRadio').checked){destination += '&hotelname='+hotelname + '&organizer=0';}
	}
	var occupancy = parseFloat(document.getElementById('conQSOccupation').value);
	var child1 = document.getElementById('child1').value;
	var child2 = document.getElementById('child2').value;
	var child3 = document.getElementById('child3').value;
	var sumPassengers = occupancy+((child1>0)?1:0)+((child2>0)?1:0)+((child3>0)?1:0);
	var nintynine = '';
	
	var iff = -1;
	if(traveltype == 0){
		iff = $('#conQSClubSelectCell select:eq(0)').val();
	}else if(traveltype == 1){
		iff = $('#conQSClubOnlySelectCell select:eq(0)').val();
	}
	
	var adult = document.getElementById('conQSOccupation').value;
	
	var timestampStart = getTimestampFromDate(document.getElementById('conQSStartdateInput').value);
	var timestampEnd = getTimestampFromDate(document.getElementById('conQSEnddateInput').value);
	
	var startDate = document.getElementById('conQSStartdateInput').value;
	var endDate = document.getElementById('conQSEnddateInput').value;
	
	var region = document.getElementById('conQSGeoGroupSelectPT').value != '' ? document.getElementById('conQSGeoGroupSelectPT').value : document.getElementById('conQSGeoGroupSelect').value;

	var airport = document.getElementById('conQSDeparture').value;
	
	for(i=0;i<occupancy;i++){nintynine += '99'+((i<occupancy-1)?';':'')}
	if(traveltype!=2){
		occupancy = nintynine+((child1>0)?';'+child1:'')+((child2>0)?';'+child2:'')+((child3>0)?';'+child3:'');
	} else {
		occupancy = (document.getElementById('conQSOccupation').selectedIndex) + 1;
		children = '';
		if(child1 != -1){
			children += child1;
		}
		if(child2 != -1){
			if(child1 != -1){
				children += ',';
			}
			children += child2;
		}
		if(child3 != -1){
			if(child1 != -1 || child2 != -1){
				children += ',';
			}
			children += child3;
		}						
		occupancy += (child1 != -1 || child2 != -1 || child3 != -1) ? '&ChildAge=' + children : '';
	}
	
	var url = 'http://www.robinson.com/WOT/Startseite';
	var tturl = 'http://ww2.robinson.com/booking/robinson/';
	//package
	if(traveltype==0){
		url = '';
		var detail = 'termine';
		if (document.getElementById('conQSClubRadio').checked){
			if (iff == '-1'){
				detail = 'zielgebiet';
			}
			if(adv){
				detail = "";
			}
			
		/**** maldives dauer ****/
		if(iff == 70667 && duration == '6_7'){
			duration = '6_8';
		}
		if(iff == 70667 && duration == '6_14'){
			duration = '6_15';
		}
			
			tturl += 'index.php?showresult=1&detail=' + detail + '&engine=pauschal&KID=793000&formular=4' +
			'&termin=' + startDate + '&ruecktermin=' + endDate + '&dauer=' + duration +
			'&IFF=' + iff + '&erwachsene=' + adult + '&alter1=' + child1 + '&alter2=' + child2 + '&alter3=' + child3 + '&abflughafen=' + airport + '&searchloc=quicksearch';
			
			if(adv){
				tturl += '&personen='+document.getElementById('conQSOccupation').value;
				if(child1){
					tturl += ';' + child1;
				}
				if(child2){
					tturl += ';' + child2;
				}
				if(child3){
					tturl += ';' + child3;
				}								
			}			
		} else {
			detail = 'zielgebiet';
			if(adv){
				detail = "";				
			}			
			tturl += 'index.php?showresult=1&detail=' + detail + '&engine=pauschal&KID=793000&formular=4' +
			'&termin=' + startDate + '&ruecktermin=' + endDate + '&dauer=' + duration +
			'&udfregionen=' + region + '&erwachsene=' + adult + '&alter1=' + child1 + '&alter2=' + child2 + '&alter3=' + child3 + '&abflughafen=' + airport + '&searchloc=quicksearch';

			if(adv){
				tturl += '&personen='+document.getElementById('conQSOccupation').value;
				if(child1){
					tturl += ';' + child1;
				}
				if(child2){
					tturl += ';' + child2;
				}
				if(child3){
					tturl += ';' + child3;
				}								
			}			
		}
	}
	
	// club
	if(traveltype==1){
		url += '?selftravel'+ destination + '&startdate=' + startdate + '&returndate=' + returndate + '&duration=' + duration + '&occupancy=' + occupancy + ((!adv)?'&page=result':'&page=advancedSearch');
		url = '';
		var detail = 'termine';
		if (document.getElementById('conQSClubRadio').checked) {
			if (iff == '-1'){
				detail = 'zielgebiet';
			}
			if(adv){
				detail = "";
			}
			tturl += 'erde/index.php?showresult=1&detail=' + detail + '&engine=erde&KID=793000&formular=4' +
			'&termin=' + startDate + '&ruecktermin=' + endDate + '&dauer=' + duration +
			'&IFF=' + iff + '&erwachsene=' + adult + '&alter1=' + child1 + '&alter2=' + child2 + '&alter3=' + child3 + '&searchloc=quicksearch';
			
			if(adv){
				tturl += '&personen='+document.getElementById('conQSOccupation').value;
				if(child1){
					tturl += ';' + child1;
				}
				if(child2){
					tturl += ';' + child2;
				}
				if(child3){
					tturl += ';' + child3;
				}								
			}			
		} else {
			detail = 'zielgebiet';
			if(adv){
				detail = "";
			}
			tturl += 'erde/index.php?showresult=1&selftravel&detail=' + detail + '&engine=erde&KID=793000&formular=4' + '&termin=' + startDate + '&ruecktermin=' + endDate + '&dauer=' + duration + '&erwachsene=' + adult + '&alter1=' + child1 + '&alter2=' + child2 + '&alter3=' + child3 + '&abflughafen=' + airport + '&udfregionen=' + region + '&searchloc=quicksearch';
			if(adv){
				tturl += '&personen='+document.getElementById('conQSOccupation').value;
				if(child1){
					tturl += ';' + child1;
				}
				if(child2){
					tturl += ';' + child2;
				}
				if(child3){
					tturl += ';' + child3;
				}								
			}			
		}



	}

	// flight
	if(traveltype==2){
		url += "?Flug"+destination3LC+ startairport3LC +"&Abflugdatum="+ startdate +"&Rueckflugdatum="+ returndate+ "&AnzahlReisende="+ occupancy + ((!adv)?'&Startseite=Angebotsliste':'&action=advancedSearch');
	}
	
	// mietwagen
	if(traveltype==3){
		url += "?Mietwagen&Land="+rentalcarCountry +"&Anmietung="+ startdate +"&Abgabe="+ returndate + ((!adv)?'&Startseite=List':'&page=advancedSearch');
	}
	if(!QSerr){
		hideErrCell();
		
		// tracking.kram richter
		/*if(traveltype == 0 || traveltype == 1){
			trackURI = 'http://fuerteventura.tui-spezial.de/statistik/index.php?'+((traveltype==0)?'package':'hotel');
			trackURI += '&destination='+ destination;
			trackURI += '&airports=' + airports; 
			trackURI += '&occupancy=' +occupancy;
			trackURI += '&startdate=' +startdate;
			trackURI += '&returndate=' +returndate;
			trackURI += '&duration=' +duration;
			trackURI += '&hotelname=' +hotelname;
			if(adv){trackURI += '&citytext=ww';}
			trackURI += '&organizer=0';
			trackURI += '&mandator=rob';
			document.getElementById('trackingImg').src = trackURI;
		}*/
		if (url == ''){
			location.href = tturl;
		} else {
			location.href = url;
		}
		//alert(url);
	} else {
		if(traveltype==0){
		 showErrCell(QSerrTxt);
		}
	}
}
