var monatTage=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var isOneway=false;
var isIni=5;

function iniAllExtern() {
	var isel=0;
	var lastiso='';
	emptyDD(document.Stations.Country);
	for(var i=0;i<land.length;i++) {
		if (land[i][1]!=lastiso){
			addOptDD(document.Stations.Country, land[i][0], land[i][1]);
			lastiso=land[i][1];
		}
	}
	if (document.Stations.setCountry){
		if (document.Stations.setCountry.value!=''){
			selIt(document.Stations.Country, document.Stations.setCountry.value, 'v');
			getOrteExtern();
		}
	}
	getDatum();
	fillMon('From');
	fillMon('To');
	fillZeit('From');
	fillZeit('To');
	calcDayOfWeek('From', -1);
	calcDayOfWeek('To', -1);

	disabledOrt();
}

function getDatum() {
	var jetzt=new Date();
	var heute=jetzt.getTime();
	var FromDate=heute + (3 * 24 * 60 * 60 * 1000);
	jetzt.setTime(FromDate);
	var FromJahr=jetzt.getFullYear();
	var FromMonat=jetzt.getMonth() + 1;
	var FromTag=jetzt.getDate();

	var ToDate=heute + (10 * 24 * 60 * 60 * 1000);
	jetzt.setTime(ToDate);
	var ToJahr=jetzt.getFullYear();
	var ToMonat=jetzt.getMonth() + 1;
	var ToTag=jetzt.getDate();

	if (document.Stations.setFromDate) {
		if (document.Stations.setFromDate.value == '') {
			document.Stations.setFromDate.value=FromJahr+'-'+nullDavor(FromMonat)+'-'+nullDavor(FromTag);
		}
	}
	if (document.Stations.setToDate) {
		if (document.Stations.setToDate.value == '') {
			document.Stations.setToDate.value=ToJahr+'-'+nullDavor(ToMonat)+'-'+nullDavor(ToTag);
		}
	}
}

function getOrteExtern() {
	document.Stations.setCountry.value=getselValue(document.Stations.Country, 'v');
	document.Stations.setCountryName.value=getselValue(document.Stations.Country, 't');

	var theIso=document.Stations.setCountry.value;
	emptyDD(document.Stations.Destination);

	document.Stations.Destination.disabled=true;
	addFile('http://www.holidayautos.de/log/JsX/city_' + theIso.toLowerCase() + '.js', theIso);
	window.setTimeout("iniStations(0)", 500);
}

function addFile(files, id) {
	if(!document.createElement) {
		return;
	}

	if (document.getElementById('jsCityArray')) {
		document.getElementById('jsCityArray').parentNode.removeChild(document.getElementById('jsCityArray'));
	}

	if(files!='') {
		var script=document.createElement('script');

		if(script) {
			script.setAttribute('type', 'text/javascript');
			script.setAttribute('src', files);
			script.setAttribute('id', 'jsCityArray');
			script.setAttribute('language', 'JavaScript');
			script.setAttribute('charset', 'ISO-8859-1');
			var head=document.getElementsByTagName('head')[0];
			if(head) {
				head.appendChild(script);
			}
		}
	}
}

function iniStations(ini) {
	try {
		with (document.Stations){
			countryIso=setCountry.value;
			country=setCountryName.value;
			destination=setDestination.value;
			for(var i=0;i<dat.length;i++) {
				var osplit=dat[i].split('#');
				if (osplit.length==4) {
					addOptDD(Destination, osplit[0], i)
				}
			}
			if (destination!='') {
				selIt(Destination, destination, 't')
			}
		}
	} catch (e) {
	}
	disabledOrt();
}

function fillMon(sWhich) {
	var preYear=eval('document.Stations.set'+sWhich+'Date.value.substring(0,4)');
	var preMon=eval('document.Stations.set'+sWhich+'Date.value.substring(5,7)');

	var thisMM=eval('document.Stations.'+sWhich+'Month');
	for(var i=current_month;i<monNamen.length;i++) {
		addOptDD(thisMM, monNamen[i]+' '+current_year, current_year+'-'+formatNull(i+1, 2));
	}
	for(var i=0;i<current_month;i++) {
		addOptDD(thisMM, monNamen[i]+' '+(current_year+1), (current_year+1)+'-'+formatNull(i+1, 2));
	}
	selIt(thisMM, eval('document.Stations.set'+sWhich+'Date.value.substring(0,7)'), 'v')
}

function fillZeit(sWhich) {
	var thisZZ=eval('document.Stations.'+sWhich+'Time');
	if (thisZZ){
		for(var i=0;i<10;i++) {
			addOptDD(thisZZ, '0'+i+':00', '0'+i+':00');
			addOptDD(thisZZ, '0'+i+':30', '0'+i+':30');
		}
		for(var i=10;i<24;i++) {
			addOptDD(thisZZ, i+':00', i+':00');
			addOptDD(thisZZ, i+':30', i+':30');
		}
		selIt(thisZZ, eval('document.Stations.set'+sWhich+'Time.value'), 'v');
	}
}

//formatiere auf führende Nullen
function formatNull(wert, anz){
	wert='0'+wert;
	if (wert.length!=anz){
		wert=wert.substring(1, wert.length)
	}
	return wert;
}

function fillDate(sWhich, iYear, iMonth, iDay) {
	//alert(sWhich+' '+iYear+' '+iMonth+' '+iDay);
	var thisDD=eval('document.Stations.'+sWhich+'Day');
	var thisMM=eval('document.Stations.'+sWhich+'Month');
	if (iDay-Number(monatTage[iMonth-1])>0) { //Überlänge
		iMonth+=1;
		if (iMonth>12) {iMonth=1;iYear+=1;}
		iDay=iDay-Number(monatTage[iMonth-1]);
		if (iDay==0) iDay=1;
		thisMM.selectedIndex=thisMM.selectedIndex+1;
	}
	emptyDD(thisDD);
	for (var counter=1; counter<=monatTage[Number(iMonth-1)]; counter++) {
		var thisDate=new Date(iYear,(iMonth-1),counter);
		addOptDD(thisDD, tagNamen[thisDate.getDay()]+' '+counter, counter);
	}
	var newIndex=monatTage[Number(iMonth-1)];
	if(iDay<=monatTage[Number(iMonth-1)]){
		newIndex=iDay;
	}
	if(newIndex<0) newIndex=1;
	thisDD.selectedIndex=newIndex;
}

function calcDayOfWeek(sWhich, ini) {
	var iDay=0; var iMonth=0; var iYear=0;
	var thisDD=eval('document.Stations.'+sWhich+'Day');
	var thisMM=eval('document.Stations.'+sWhich+'Month');

	if(thisMM.selectedIndex>=0) iYear=thisMM.options[thisMM.selectedIndex].value.substring(0,4);
	if(thisMM.selectedIndex>=0) iMonth=thisMM.options[thisMM.selectedIndex].value.substring(5,7);
	if(thisDD.selectedIndex>=0) iDay=thisDD.options[thisDD.selectedIndex].value;

	if (iYear=='') iYear=eval('document.Stations.set'+sWhich+'Date.value.substring(0,4)');
	if (iMonth=='') iMonth=eval('document.Stations.set'+sWhich+'Date.value.substring(5,7)');
	if (iDay=='') iDay=eval('document.Stations.set'+sWhich+'Date.value.substring(8,10)');

	if((iYear%4==0 && iYear%100!=0)||(iYear%400==0)){ monatTage[1]=29; }else{ monatTage[1]=28;}

	fillDate(sWhich, iYear, iMonth, iDay);
	if (sWhich=='From') {
		if (ini==0) addSetCal();
	}

	if (ini>0) thisDD.selectedIndex=ini;
	if (actCal==sWhich) drawCal(sWhich, 0, thisMM.options[thisMM.selectedIndex].value);
}

function showSelectMes(msg, errorLevel){
	if (document.Stations.searchType.value=='quickSearch'){
		showMes(msg, errorLevel, 'MessageSearchId')
	}else{
		showMes(msg, errorLevel, 'MessageId')
	}
}

function sendForm() {
	var paras='?from=quickBox'; var link=''; var completeURL='';
	paras=addPara(paras, 'searchType', document.Stations.searchType.value);
	paras=addPara(paras, 'Agentur', document.Stations.Agentur.value);
	paras=addPara(paras, 'AgentId', document.Stations.AgentId.value);
	paras=addPara(paras, 'IsoCode', document.Stations.Country.value);
	paras=addPara(paras, 'FromDate', document.Stations.FromMonth.value+'-'+document.Stations.FromDay.value);
	paras=addPara(paras, 'ToDate', document.Stations.ToMonth.value+'-'+document.Stations.ToDay.value);
	if (document.Stations.FromTime) paras=addPara(paras, 'PickupTime', document.Stations.FromTime.value);
	if (document.Stations.ToTime) paras=addPara(paras, 'ReturnTime', document.Stations.ToTime.value);
	if (getselValue(document.Stations.Destination, 'v') != '') {
		paras=addPara(paras, 'City', getselValue(document.Stations.Destination, 't'));
	}

	link=document.Stations.HpUrl.value;
	if (getQuery('zanoxdll')!=''){
		link=getQuery('zanoxdll');
		paras=addPara(paras, getQuery('zanoxparam'), document.Stations.HpUrl.value);
		completeURL=link+paras;
	}else if(document.Stations.HpCj){
		//http://www.qksrv.net/click-<pid>-<aid>?url=
		completeURL=document.Stations.HpCj.value+escape(link+paras);
	}else{
		completeURL=link+paras;
	}
	window.open(completeURL);
}

function nullDavor(Zahl) {
	if (Zahl < 10) {
		Zahl='0'+Zahl;
	}
	return Zahl;
}

function disabledOrt(){
	if (document.Stations.Country.value == '') {
		document.Stations.Destination.disabled=true;
	}else{
		document.Stations.Destination.disabled=false;
	}
}

function getQuery(qnam){
	qnam+='=';
	qsplit=window.location.search.split('&');
	for (i=0;i<=qsplit.length-1;i++) {
		if (qsplit[i].lastIndexOf(qnam)!=-1) {
			return unescape(qsplit[i].substring(qsplit[i].lastIndexOf(qnam)+qnam.length,qsplit[i].length));
			break;
		}
	}
	return '';
}
