/*
anyScript for mootools
changed by mn@points.de
v0.1: 2009-11-09
 */
var efaForm = $("efaForm");
function setInputFocusDate(){
	if (efaForm){		
		if (efaForm.itdDateDay) efaForm.itdDateDay.focus();
		test=true;
	}	
}

function setInputFocus()
{
	if ($("efaForm")){		
		if (efaForm.psParamWeekday && efaForm.psParamWeekday.type!="hidden" && efaForm.nameState_origin && efaForm.nameState_origin.value=="empty" && efaForm.placeState_origin && efaForm.placeState_origin.value=="empty" && efaForm.nameState_destination && efaForm.nameState_destination.value=="empty" && efaForm.placeState_destination && efaForm.placeState_destination.value=="empty") $("psParamWeekday").focus();
		// personal timetable for pda time
		else if (efaForm.itdTimeHour_arrFrom && efaForm.nameState_origin && efaForm.nameState_origin.value=="empty" && efaForm.placeState_origin && efaForm.placeState_origin.value=="empty" && efaForm.nameState_destination && efaForm.nameState_destination.value=="empty" && efaForm.placeState_destination && efaForm.placeState_destination.value=="empty") efaForm.itdTimeHour_arrFrom.focus();
		// origin name
		else if (efaForm.name_origin && efaForm.name_origin.type!="hidden") efaForm.name_origin.focus();
		// destination name
		else if (efaForm.name_destination && efaForm.name_destination.type!="hidden") efaForm.name_destination.focus();
		// itinerary
		else if ($("tripPrev"))$("tripPrev").focus();
		// fares
		else if ($("fare")) $("fare").focus();
		// download file
		else if ($("download")) $("download").focus();
		// download reset button
		else if ($("downloadReset"))$("downloadReset").focus();
		// map request
		else if (efaForm.stopSelector)efaForm.stopSelector.focus();
		// stop timetable type
		else if (efaForm.type_stt && efaForm.type_stt.value!="hp" && efaForm.nameState_stt.value=="empty") $("stop").focus();
		// stop timetable odv
		else if (efaForm.name_stt && efaForm.name_stt.type!="hidden")efaForm.name_stt.focus();
		// assigned stop stt
		else if (efaForm.assignedStop_stt && efaForm.assignedStop_stt[0] && efaForm.assignedStop_stt.type!="hidden") efaForm.assignedStop_stt[0].focus();
		// assigned stop stt
		else if (efaForm.assignedStop_stt && efaForm.assignedStop_stt.type!="hidden") efaForm.assignedStop_stt.focus();
		// departure monitor date
		else if (efaForm.itdDateDay && efaForm.nameState_dm && efaForm.nameState_dm.value=="empty" && efaForm.placeState_dm && efaForm.placeState_dm.value=="empty") efaForm.itdDateDay.focus();
		// departure monitor odv
		else if (efaForm.name_dm && efaForm.name_dm.type!="hidden") efaForm.name_dm.focus();
		// line selection
		else if (efaForm.dmLineSelection && efaForm.dmLineSelection[0].type!="hidden") efaForm.dmLineSelection.focus();
		// assigned stop dm
		else if (efaForm.assignedStop_dm && efaForm.assignedStop_dm[0] && efaForm.assignedStop_dm.type!="hidden") efaForm.assignedStop_dm[0].focus();
		// assigned stop dm
		else if (efaForm.assignedStop_dm && efaForm.assignedStop_dm.type!="hidden") efaForm.assignedStop_dm.focus();
		// dm for pda
		else if (efaForm.name_ss && efaForm.name_ss.type!="hidden") efaForm.name_ss.focus();
		// dm for pda assigned stop
		else if (efaForm.assignedStop_ss && efaForm.assignedStop_ss.type!="hidden") efaForm.assignedStop_ss[0].focus();
		// pda E-Mail address
		else if (efaForm.emailAddress && efaForm.emailAddress.type!="hidden") efaForm.emailAddress.focus();
		// pda reset button
		else if ($("pdaReset")) $("pdaReset").focus();
		// timetable book
		else if (efaForm.lineName && efaForm.lineName.type!="hidden") efaForm.lineName.focus();
		// timetable book line selection
		else if (efaForm.lineSelIndex) efaForm.lineSelIndex.focus();
		// spa type
		else if (efaForm.type_rop && efaForm.nameState_rop && efaForm.nameState_rop.value=="empty") $("stop").focus();
		// login
		else if (efaForm.netUsername && efaForm.netUsername.type!="hidden") efaForm.netUsername.focus();
		// first login and personal profile person
		else if (efaForm.ppPersonName && efaForm.ppPersonName.type!="hidden") efaForm.ppPersonName.focus();
		// personal profil odv
		else if (efaForm.ppOdvIdentifier && efaForm.ppOdvIdentifier.type!="hidden") efaForm.ppOdvIdentifier.focus();
		// personal profil options
		else if (efaForm.ppPTComfortMaxChanges && efaForm.ppPTComfortMaxChanges.type!="hidden") efaForm.ppPTComfortMaxChanges[0].focus();
		// personal profil configuration
		else if (efaForm.ppPTConfigurationSenderInfo && efaForm.ppPTConfigurationSenderInfo.type!="hidden") efaForm.ppPTConfigurationSenderInfo.focus();
		// print options
		else if (efaForm.psParamAddressName && efaForm.psParamAddressName.type!="hidden") efaForm.psParamAddressName.focus();
	}
}

/////////////////////////////////////////////////////////////////////////////////////
// Verify Date
function showdate1( year, month, date ){
	if (date < 10) date = "0" + date;
	else date = date;
	if (month < 10) month = "0" + month;
	else month = month;
	year = year + "";
	if (year.length > 2) {
		year = year.substring(3,4);
		if (year < 10) year = "0" + year;
		else year = year;
	}else{
		if (year < 10) year = "0" + year;
		else year = year;
	}
	efaForm.itdDateYear.value = year;
	efaForm.itdDateMonth.value = month;
	efaForm.itdDateDay.value = date;
}

//////////////////////////////////////////////////////////////////////
//Set dmLineSelection All of true
function preSubmit(){
	if (efaForm.dmLineSelection) efaForm.dmLineSelectionAll.value = 0;
	if (efaForm.dmLineSelection && efaForm.dmLineSelection.value == 'all') efaForm.dmLineSelectionAll.value = 1;
	if (efaForm.lineSelIndex && efaForm.lineSelIndex.value == 'all') efaForm.ppLineSelectionAll.value = 1;
}

///////////////////////////////////////////////////////////////////////
//Function add zero to 1-digit numbers
function padDateValue(val) {
	if (val >= 0 && val < 10) val = "0"+val;
	return val;
}
///////////////////////////////////////////////////////////////////////
//Function return 2-digit year
function getYearValue(val) {
	var jahr = val.getFullYear().toString(10);
	return jahr.substr(2,2);
}

///////////////////////////////////////////////////////////////////////
//Function initialize efa-form fields
function initEfaDate() {
	var heute = new Date();
	$("efaForm").itdDateDay.value = padDateValue(heute.getDate());
	$("efaForm").itdDateMonth.value = padDateValue(heute.getMonth()+1);
	$("efaForm").itdTimeHour.value = padDateValue(heute.getHours());
	$("efaForm").itdTimeMinute.value = padDateValue(heute.getMinutes());
	$("efaForm").itdDateYear.value = getYearValue(heute);
}

///////////////////////////////////////////////////////////////////////
//Function Up Down arrows
function dateUpDown(upOrDown){ 
	var jahrIntWert = $("efaForm").itdDateYear.value.toInt()+2000;
	if(jahrIntWert>2075) jahrIntWert-=100;
	var heute = new Date(jahrIntWert, $("efaForm").itdDateMonth.value-1, $("efaForm").itdDateDay.value);
	var millisecunden=(upOrDown == 'up')?heute.getTime()+(24*60*60*1000):heute.getTime()-(24*60*60*1000);
	heute.setTime(millisecunden);
	var tag = padDateValue(heute.getDate());
	monat = padDateValue(heute.getMonth() + 1);
	var jahr = getYearValue(heute);
	$("efaForm").itdDateDay.value = tag;
	$("efaForm").itdDateMonth.value = monat;
	$("efaForm").itdDateYear.value = jahr;
}

////////////////////////////////////////////////////////////////////////////////////////
// submit a form out of a combo box (IE Version only)
function checkReturnKey(){
	if (window.event && window.event.keyCode==13){		
		if ($("efaForm").execInst) $("efaForm").execInst.value='normal';
		preSubmit();
		prepareSubmittingHistoryOdvs();
		$("efaForm").submit();
	}
}

/////////////////////////////////////////////////////////////////////////////////////////
// close Java Applet and open XSLT Map
function openXSLTMapFormJavaApplet(){
	if (window.opener){
		window.opener.efaForm.itdLPxx_java.value='0';
		window.opener.efaForm.command.value="mapRequest_" + window.opener.odvMapRequest.mapUsage;
		window.opener.efaForm.submit();
	}
	window.close();
}

/////////////////////////////////////////////////////////////////////////////////////////
// selectAssignedStops value selection
function selectAssignedStopsValueSelection(){
	if (efaForm.reqType && efaForm.reqType.value == 'spa' && efaForm.selectAssignedStops) efaForm.selectAssignedStops.value = 0;
}

/////////////////////////////////////////////////////////////////////////////////////////
// extract the type and name of the selected last odv by splitting the value
// at the ";" and fills the HTTP-parameters
function splitLastOdvValue(usage)
{
	// get the value of the selected lastOdv
	var name_usage = "name_" + usage;
	var valueNameUsage = document.getElementsByName(name_usage)[0].value;
	// if we have a valid value
	var valueLength = valueNameUsage.length;
	if (valueLength != 0){
		// get the index of the ";"
		var ix = valueNameUsage.split(';');
		var odvPlace = ix[0];
		var odvType = ix[1];
		var odvName = ix[2];
		if (odvType == "place") document.getElementsByName("place_" + usage)[0].value=odvPlace;
		else document.getElementsByName("placeInfo_" + usage)[0].value=odvPlace;
		document.getElementsByName("typeInfo_" + usage)[0].value=odvType;		
		document.getElementsByName("nameInfo_" + usage)[0].value=odvName;
	}
}

/////////////////////////////////////////////////////////////////////////////////////////
// Checks origin and destination for historical point type and prepares the
// http parameter where necessary.
function prepareSubmittingHistoryOdvs(){
	if (efaForm.type_origin && efaForm.type_origin.value == "hp") splitLastOdvValue('origin');
	if (efaForm.type_destination && efaForm.type_destination.value == "hp") splitLastOdvValue('destination');
	if (efaForm.type_stt && efaForm.type_stt.value == "hp") splitLastOdvValue('stt');
	if (efaForm.type_dm && efaForm.type_dm.value == "hp") splitLastOdvValue('dm');
	if (efaForm.type_ttb && efaForm.type_ttb.value == "hp") splitLastOdvValue('ttb');	
	if (efaForm.type_rop && efaForm.type_rop.value == "hp") splitLastOdvValue('rop');	
	if (efaForm.type_ss && efaForm.type_ss.value == "hp") splitLastOdvValue('ss');	
}
/////////////////////////////////////////////////////////////////////////////////////////
// Creates and error message becaus place is empty
function messagePlaceEmpty(errorMessage){
	alert(errorMessage);
	return false;
}
/////////////////////////////////////////////////////////////////////////////////////////
// get string length of place
function getStringLengthOfPlace(usage){
	var placeValue = document.getElementsByName("place_" + usage)[0].value;
	var placeValueLength = placeValue.length;
	return placeValueLength;
}
/////////////////////////////////////////////////////////////////////////////////////////
// Calls the "checkPlaceOfOdv" function if necessary
function callCheckPlaceOfOdv(errorMessage){
	var originPlaceStringLength = getStringLengthOfPlace("origin");
	var destinationPlaceStringLength = getStringLengthOfPlace("destination");
	if (!(originPlaceStringLength > 0)) messagePlaceEmpty(errorMessage);
	else if (!(destinationPlaceStringLength > 0)) messagePlaceEmpty(errorMessage);
}
/////////////////////////////////////////////////////////////////////////////////////////
// Check if EMail Address input box have been filled with a valid EMail
var testresults
function checkEMail(errorText){
	var str=efaForm.ppPersonEmail.value;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (str && filter.test(str)) {
		testresults=true;
	} else {
		alert(errorText);
		testresults=false;
	}
	return (testresults);
}
function setSTTLine(infos) {
	var values = infos.split(':');
	var line = values[0];
	var dir = values[1];
	var stop = values[2];
	var proj = values[3];
	var multiple = 'XSLT_STT_REQUEST?language=de&name_stt=' + stop +'&type_stt=stop&mode=direct&net=vvs';
	for (i = 0; i < efaForm.elements['dmLineSelection'].length; i ++) {
		if(efaForm.elements['dmLineSelection'].options[i].selected){
			var optionsValue = efaForm.elements['dmLineSelection'].options[i].value;
			var values2 = optionsValue.split(':');
			var line2 = values2[0];
			var dir2 = values2[1];
			var stop2 = values2[2];
			var proj2 = values2[3];
			var sup = values2[4];
			multiple = multiple + '&line=vvs:' + line2 + ':' + sup + ':' + dir2 + ':' + proj2;
		}
	}
	$('submitLink').href = multiple;
}
function setTTBLine(infos) {
	var values = infos.split(':');
	var line = values[0];
	var dir = values[1];
	var sup = values[2];
	var proj = values[3];
	$('submitLink').href = 'XSLT_TTB_REQUEST?language=de&command=direct&net=vvs&line=' + line + '&direction=' + dir + '&sup=' + sup + '&project=' + proj;
}
function setROPLine(infos) {
	var values = infos.split(':');
	var line = values[0];
	var dir = values[1];
	var sup = values[2];
	var proj = values[3];
	$('submitLink').href = 'XSLT_ROP_REQUEST?language=de&command=direct&net=vvs&line=' + line + '&direction=' + dir + '&sup=' + sup + '&project=' + proj;
}

