var currentTime = new Date();
var currentYear = currentTime.getFullYear();
var currentHours = currentTime.getHours();
var currentMinutes = currentTime.getMinutes();

function findDKRejser(){
	document.forms['rejseplanform'].action = 'http://www.rejseplanen.dk/bin/query.exe/mn';
	document.forms['rejseplanform'].euMode.value = '';
	document.getElementById('dkrejser').className = 'findrejsetabon';
	document.getElementById('oresundrejser').className = 'findrejsetab';
}

function findOresundRejser(){
	document.forms['rejseplanform'].action = 'http://euspirit.rejseplanen.dk/bin/query.exe/mn';
	document.forms['rejseplanform'].euMode.value = 'ORESUND';
	document.getElementById('dkrejser').className = 'findrejsetab';
	document.getElementById('oresundrejser').className = 'findrejsetabon';
}

function submitRejseplan(me){

	//lille hack returntime skal nulstilles, da rejseplanen checker på returntime og ikke på showDateTimeFieldForReturnJourney
	if(me.showDateTimeFieldForReturnJourney.value=='no'){
		me.returntime.value='';	
		me.returndate.value='';
	} else {
//		me.returndate.value=me.hjemrejsedag.value+'.'+me.hjemrejsemaned.value+'.'+currentYear;	
	}

//	alert(me.date.value + '\n' + me.returndate.value)
	
	me.submit();

}

function showReturnTrip(me){
  
	me.returndate.value=me.date.value;

	makeRequest('/ajrgfx/ajax/select_returnday.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsedag');

	makeRequest('/ajrgfx/ajax/select_returnmonth.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsemaned');


}

function changeDepartureDay(me){

	me.date.value=me.udrejsedag.value;
	
	makeRequest('/ajrgfx/ajax/select_month.asp?udrejsedag='+me.date.value,'udrejsemaned');
	
	if(me.showDateTimeFieldForReturnJourney.value=='yes'){

		var udrejsedato = new Date( formatDate(me.date.value) );
		var hjemrejsedato = new Date( formatDate(me.returndate.value) );
			
		if(udrejsedato>hjemrejsedato){
			
			me.returndate.value = me.date.value;

		}
	
		makeRequest('/ajrgfx/ajax/select_returnday.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsedag');

		makeRequest('/ajrgfx/ajax/select_returnmonth.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsemaned');
		
	}

}

function changeDepartureMonth(me){
	
	me.date.value = me.udrejsemaned.value;
	
	makeRequest('/ajrgfx/ajax/select_day.asp?udrejsedag='+me.date.value,'udrejsedag');
	
	makeRequest('/ajrgfx/ajax/select_month.asp?udrejsedag='+me.date.value,'udrejsemaned');
	
	if(me.showDateTimeFieldForReturnJourney.value=='yes'){

		var udrejsedato = new Date( formatDate(me.date.value) );
		var hjemrejsedato = new Date( formatDate(me.returndate.value) );
	
		if(udrejsedato>hjemrejsedato){
			
			me.returndate.value = me.date.value;

		}
	
		makeRequest('/ajrgfx/ajax/select_returnday.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsedag');

		makeRequest('/ajrgfx/ajax/select_returnmonth.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsemaned');
	}

}

function changeReturnday(me){

	me.returndate.value=me.hjemrejsedag.value;
	
	makeRequest('/ajrgfx/ajax/select_returnmonth.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsemaned');
	
}

function changeReturnMonth(me){

	me.returndate.value=me.hjemrejsemaned.value;
	
	var udrejsedato = new Date( formatDate(me.date.value) );
	var hjemrejsedato = new Date( formatDate(me.returndate.value) );
			
	if(udrejsedato>hjemrejsedato){
		
		me.returndate.value = me.date.value;

	}

	makeRequest('/ajrgfx/ajax/select_returnday.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsedag');

	makeRequest('/ajrgfx/ajax/select_returnmonth.asp?udrejsedag='+me.date.value+'&hjemrejsedag='+me.returndate.value,'hjemrejsemaned');


}

function udrejseSelect(me){

	if(me.id=='udrejsearrive'){
	
		me.src='/ajrgfx/gfx/checked.gif';
		document.getElementById('udrejsedepart').src='/ajrgfx/gfx/unchecked.gif';
		document.forms['rejseplanform'].timesel.value='arrive';
		
	} else {

		me.src='/ajrgfx/gfx/checked.gif';
		document.getElementById('udrejsearrive').src='/ajrgfx/gfx/unchecked.gif';
		document.forms['rejseplanform'].timesel.value='depart';
	
	}

}

function hjemrejseSelect(me){

	if(me.id=='hjemrejsearrive'){
	
		me.src='/ajrgfx/gfx/checked.gif';
		document.getElementById('hjemrejsedepart').src='/ajrgfx/gfx/unchecked.gif';
		document.forms['rejseplanform'].returntimesel.value='arrive';
	
	} else {

		me.src='/ajrgfx/gfx/checked.gif';
		document.getElementById('hjemrejsearrive').src='/ajrgfx/gfx/unchecked.gif';
		document.forms['rejseplanform'].returntimesel.value='depart';
	
	}

}

function tripTypeSelect(me){

	if(me.id=='returntrip'){
	
		me.src='/ajrgfx/gfx/checked.gif';
		document.getElementById('onewaytrip').src='/ajrgfx/gfx/unchecked.gif';
		document.getElementById('afrejse2').style.display='block';
		document.forms['rejseplanform'].showDateTimeFieldForReturnJourney.value='yes';
		document.forms['rejseplanform'].requestBoth.value='yes';
		
		if(document.forms['rejseplanform'].returntime.value==''){ document.forms['rejseplanform'].returntime.value = document.forms['rejseplanform'].time.value }
		
		showReturnTrip(document.forms['rejseplanform']);
	
	} else {

		me.src='/ajrgfx/gfx/checked.gif';
		document.getElementById('returntrip').src='/ajrgfx/gfx/unchecked.gif';
		document.getElementById('afrejse2').style.display='none';
		document.forms['rejseplanform'].showDateTimeFieldForReturnJourney.value='no';
		document.forms['rejseplanform'].requestBoth.value='';
	
	}

}

function formatDate( datestring ){

	var day = datestring.split('-')[0]
	var month = (datestring.split('-')[1] -1)
	var year = datestring.split('-')[2]

	var mydate = new Date();
	mydate.setFullYear(year,month,day);
	
	return mydate;

}

function makeRequest(url,type) {
    var httpRequest;
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
            // See note below about this line
        }
    } 
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {}
        }
    }
    if (!httpRequest) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }

	httpRequest.onreadystatechange = function() { renderHtml(httpRequest,type); }
	
    httpRequest.open('GET', url, true);
    httpRequest.send('');
}

function renderHtml(httpRequest,id) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
			if(id!=''){document.getElementById(id).innerHTML=httpRequest.responseText};
        } else {
//            alert('There was a problem with the request.');
        }
    }
}

function IsValidTime(me) {
	// Checks if time is in HH:MM:SS AM/PM format.
	// The seconds and AM/PM are optional.

	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

	var timeStr = me.value;

	var matchArray = timeStr.match(timePat);
		if (matchArray == null) {
//		alert("Time is not in a valid format.");
		me.value = currentHours + ':' + currentMinutes;
		return false;
	}

	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }

	if (hour < 0  || hour > 24) {
//		alert("Time format hh:mm ");
		me.value = currentHours + ':' + currentMinutes;
		return false;
	}

//	if (hour <= 12 && ampm == null) {
//		if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
//			alert("You must specify AM or PM.");
//			return false;
//		}
//	}
	
//	if  (hour > 12 && ampm != null) {
//		alert("You can't specify AM or PM for military time.");
//		return false;
//	}
	
	if (minute<0 || minute > 59) {
//		alert ("Minute must be between 0 and 59.");
		me.value = currentHours + ':' + currentMinutes;
		return false;
	}
	
	if (second != null && (second < 0 || second > 59)) {
//		alert ("Second must be between 0 and 59.");
		me.value = currentHours + ':' + currentMinutes;
		return false;
	}
	return false;
}
