// ==================================================================
// This function causes submit if the focus is e.g. on a list and
// the enter key is pressed
// ==================================================================

function checkReturnKey(event) {
	var form = 0;
		
	if(!event) event = window.event;
	var keycode = event.which || event.keyCode;

	if (event && event.keyCode==13) {
		document.forms[form].submit();
	}
}


// ==================================================================
// This function overwrites the vorcheck function on the www.stadtwerke-wien.at
// server. It opens a tooltip with iframe for map, netplan or help.
// ==================================================================

function vorcheckMDV(objid, typ, iurl) {
	$("#"+objid+" iframe").attr("src", iurl) ;
}

// ==================================================================
// This function toggles the inline map.
// ==================================================================

function toggleInlineMap (usage) {	
	var form = 0;
	if (usage == 'ttb') {
		form = 1;
	}
			
	if (document.getElementById('mdvMap_' + usage) ) {
		if (document.getElementById('mdvMap_' + usage).style.display == 'none') {
			document.forms[form].execInst.value = 'verifyOnly';
			document.getElementById('itdLPxx_mapOpen_' + usage).value = 'true';
			document.getElementById('mapButton_' + usage).title = closeMap;
			document.getElementById('mapButton_' + usage).innerHTML = closeMap;
			// close netplan
			if (document.getElementById('mdvNetplan_' + usage)) {
				document.getElementById('mdvNetplan_' + usage).style.display = 'none';
				document.getElementById('netplanButton_' + usage).innerHTML = openMap;
				document.getElementById('itdLPxx_netplanOpen_' + usage).value = '';
			}
			if (usage=='pp')
				document.forms[form].command.value='ppOdvChange' + document.forms[form].ppOdvPos.value;
			document.forms[form].execInst.value = 'verifyOnly';
			document.forms[form].submit();
		}
		else {
			document.getElementById('mdvMap_' + usage).style.display = 'none';
			document.getElementById('itdLPxx_mapOpen_' + usage).value = 'false';
			document.getElementById('mapButton_' + usage).title = openMap;
			document.getElementById('mapButton_' + usage).innerHTML = openMap;
		}
	}
}

// ==================================================================
// This function toggles the inline netplan.
// ==================================================================

function toggleInlineNetplan (usage) {	
	var form = 0;
	if (usage == 'ttb') {
		form = 1;
	}
			
	if (document.getElementById('mdvNetplan_' + usage) ) {
		if (document.getElementById('mdvNetplan_' + usage).style.display == 'none') {
			document.forms[form].execInst.value = 'verifyOnly';
			document.getElementById('itdLPxx_netplanOpen_' + usage).value = 'true';
			document.getElementById('netplanButton_' + usage).title = closeNetplan;
			document.getElementById('netplanButton_' + usage).innerHTML = closeNetplan;
			// close map
			if (document.getElementById('mdvMap_' + usage)) {
				document.getElementById('mdvMap_' + usage).style.display = 'none';
				document.getElementById('mapButton_' + usage).innerHTML = openMap;
				document.getElementById('itdLPxx_mapOpen_' + usage).value = '';
			}
			document.forms[form].execInst.value = 'verifyOnly';
			document.forms[form].submit();
		}
		else {
			document.getElementById('mdvNetplan_' + usage).style.display = 'none';
			document.getElementById('itdLPxx_netplanOpen_' + usage).value = 'false';
			document.getElementById('netplanButton_' + usage).title = openNetplan;
			document.getElementById('netplanButton_' + usage).innerHTML = openNetplan;
		}
	}
}

// ==================================================================
// This function toggles and loads the interactive output map.
// ==================================================================

function toggleOutputMap (index, sessionID, requestID) {
	// load map
	if (document.getElementById('mdvOutputMap_' + index)) {
		// display map container
		if (document.getElementById('outputMap_' + index)) {
			if (document.getElementById('outputMap_' + index).style.display == 'none') {
				document.getElementById('outputMap_' + index).style.display = '';
				// exchange open/close link
				document.getElementById('openOutputMap_' + index).style.display = 'none';
				document.getElementById('closeOutputMap_' + index).style.display = '';
				// load map
				onLoadInlineMapHandler();
				mdvOutputMaps['mdvOutputMap_' + index].display(); 
				mdvOutputMaps['mdvOutputMap_' + index].displayJourney(sessionID, requestID, index);
			}
			else {
				document.getElementById('outputMap_' + index).style.display = 'none';
				// exchange open/close link
				document.getElementById('openOutputMap_' + index).style.display = '';
				document.getElementById('closeOutputMap_' + index).style.display = 'none';
			}
		}
	}
	
}


// ==================================================================
// This function sets the focus on a select box.
// ==================================================================

function setFocus() {
	try {
		if (document.getElementById('f_monitoropt')) {
			document.getElementById('f_monitoropt').focus();
		}
		else if (document.forms[0].lineName) {
			document.forms[0].lineName.focus();
		}
		else if (document.getElementById('place_origin') && document.getElementById('place_origin').value=='') {
			document.getElementById('place_origin').focus();
		}
		else if(document.getElementById('placeList_origin')) {
			document.getElementById('placeList_origin').focus();
		}
		else if (document.getElementById('name_origin') && document.getElementById('name_origin').value=='') {
			document.getElementById('name_origin').focus();
		}
		else if(document.getElementById('nameList_origin')) {
			document.getElementById('nameList_origin').focus();
		}
		else if (document.getElementById('place_destination') && document.getElementById('place_destination').value=='') {
			document.getElementById('place_destination').focus();
		}
		else if (document.getElementById('placeList_destination')) {
			document.getElementById('placeList_destination').focus();
		}
		else if (document.getElementById('name_destination') && document.getElementById('name_destination').value=='') {
			document.getElementById('name_destination').focus();
		}
		else if (document.getElementById('nameList_destination')) {
			document.getElementById('nameList_destination').focus();
		}
		else if (document.getElementById('place_via') && document.getElementById('place_via').value=='') {
			document.getElementById('place_via').focus();
		}
		else if(document.getElementById('placeList_via')) {
			document.getElementById('placeList_via').focus();
		}
		else if (document.getElementById('name_via') && document.getElementById('name_via').value=='') {
			document.getElementById('name_via').focus();
		}
		else if(document.getElementById('nameList_via')) {
			document.getElementById('nameList_via').focus();
		}
		else if (document.getElementById('place_pp') && document.getElementById('place_pp').value=='') {
			document.getElementById('place_pp').focus();
		}
		else if (document.getElementById('placeList_pp')) {
			document.getElementById('placeList_pp').focus();
		}
		else if (document.getElementById('name_pp') && document.getElementById('name_pp').value=='') {
			document.getElementById('name_pp').focus();
		}
		else if (document.getElementById('nameList_pp')) {
			document.getElementById('nameList_pp').focus();
		}
		else if (document.getElementById('odvIdentifier')) {
			document.getElementById('odvIdentifier').focus();
		}
		else if (document.getElementById('nameList_pp')) {
			document.getElementById('nameList_pp').focus();
		}
		else if (document.getElementById('name_dm')) {
			document.getElementById('name_dm').focus();
		}
		else if (document.getElementById('name_ttb')) {
			document.getElementById('name_ttb').focus();
		}
		else if (document.getElementById('name_stt')) {
			document.getElementById('name_stt').focus();
		}
		else if (document.getElementById('name_ss')) {
			document.getElementById('name_ss').focus();
		}
		else if (document.getElementById('nameList_dm')) {
			document.getElementById('nameList_dm').focus();
		}
		else if (document.getElementById('nameList_stt')) {
			document.getElementById('nameList_stt').focus();
		}
		else if (document.getElementById('nameList_ttb')) {
			document.getElementById('nameList_ttb').focus();
		}
		else if (document.getElementById('firstName')) {
			document.getElementById('firstName').focus();
		}
		else if (document.getElementById('username')) {
			document.getElementById('username').focus();
		}
		else if (document.getElementById('password')) {
			document.getElementById('password').focus();
		}
        else if (document.getElementById('f_datum')) {
			document.getElementById('f_datum').focus();
		}
	}
	catch (e) {
	}
}


// ==================================================================
// This function sets the the Parameter dmLine Selection for "All lines"
// option. 
// ==================================================================
function checkLineSelection(){
	if (document.forms[0].dmLineSelection) {
		document.forms[0].dmLineSelectionAll.value = 0;
	}
	if (document.forms[0].dmLineSelection && document.forms[0].dmLineSelection.value == 'all') {
		document.forms[0].dmLineSelectionAll.value = 1;
	}
	
	// for personal profile...
	if (document.forms[0].lineSelIndex && document.forms[0].lineSelIndex.value == 'all') {
		document.forms[0].ppLineSelectionAll.value = 1;
	}
};


// ==================================================================
// This function checks the reentered password in personal profile 
// registration and . 
// ==================================================================

function checkPassword () {
	if (document.forms[0].itdLPxx_passwordValid) {
		if (document.forms[0].ppPersonNetPassword.value != document.forms[0].ppPersonConfirmNetPassword.value) {
			document.forms[0].ppPersonNetPassword.value = '';
			document.forms[0].ppPersonConfirmNetPassword.value = '';
			document.forms[0].itdLPxx_passwordValid.value = 'false';
		}	
	}
	if (document.forms[0].itdLPxx_formIncomplete) {
		if (document.forms[0].ppPersonFirstName.value == '' || document.forms[0].ppPersonName.value == '' || document.forms[0].ppPersonEmail.value == '' || document.forms[0].ppPersonNetUsername.value == '') {
			document.forms[0].ppPersonNetPassword.value = '';
			document.forms[0].ppPersonConfirmNetPassword.value = '';
			document.forms[0].itdLPxx_formIncomplete.value = 'true';
		}
		else 
			document.forms[0].itdLPxx_formIncomplete.value = 'false';
	}
}


// ==================================================================
// This function checks the plausibility of an e-mail address.
// ==================================================================

function checkEMail() {
	if (document.forms[0].itdLPxx_emailValid && document.forms[0].ppPersonEmail) {
		var email = document.forms[0].ppPersonEmail.value;
		// e-mail invalid
		if (!checkEMailAddressValidity(email)) {
			document.forms[0].ppPersonNetPassword.value = '';
			document.forms[0].ppPersonConfirmNetPassword.value = '';
			document.forms[0].itdLPxx_emailValid.value = 'false';
		}
		// e-mail valid
		else {
			document.forms[0].itdLPxx_emailValid.value = 'true';
		}	
	}
}


function checkEMailAddressValidity (email) {
	var mail = email;
	var expression = /^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{1,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$/;
	var success = false;
	// test email-address
	if (expression.exec(mail))
		success = true;
	return success;
}


// ==================================================================
// This function displays the list with named/recent locations. 
// ==================================================================

function displayLocations (usage, type) {
	var form = 0;
	if (usage == 'ttb')
		form = 1;
		
	document.forms[form].execInst.value='verifyOnly';
	document.getElementById('itdLPxx_ppOdv_' + usage).value= type;
	document.forms[form].submit();
}

// ==================================================================
// This function sets the type for my/recent locations list, if location
// server ist active. 
// ==================================================================

function setPPType (state, usage) {
	var form = 0;
	if (usage == 'ttb')
		form = 1;
		
	if (state)
		document.getElementById('type_' + usage).value = 'pp';
	else 
		document.getElementById('type_' + usage).value = 'any';
}


// ==================================================================
// This function sets the means to be excluded in personal profile
// options. This is necessary because personal profile options offer only
// means inclusion. 
// ==================================================================

function setExcludedMeans () {
	if (!document.forms[0].exclMOT_0_pp.checked && document.forms[0].inclMOT_0_inactive) 
		document.forms[0].inclMOT_0_inactive.name = 'inclMOT_0';
	else if (document.forms[0].exclMOT_0_pp.checked && document.forms[0].inclMOT_0) 
		document.forms[0].inclMOT_0.name = 'inclMOT_0_inactive';
	
	if (!document.forms[0].exclMOT_2_pp.checked && document.forms[0].inclMOT_2_inactive) 
		document.forms[0].inclMOT_2_inactive.name = 'inclMOT_2';
	else if (document.forms[0].exclMOT_2_pp.checked && document.forms[0].inclMOT_2)
		document.forms[0].inclMOT_2.name = 'inclMOT_2_inactive';
	
	if (!document.forms[0].exclMOT_4_pp.checked && document.forms[0].inclMOT_4_inactive) 
		document.forms[0].inclMOT_4_inactive.name = 'inclMOT_4';
	else if (document.forms[0].exclMOT_4_pp.checked && document.forms[0].inclMOT_4)
		document.forms[0].inclMOT_4.name = 'inclMOT_4_inactive';
	
	if (!document.forms[0].exclMOT_5_pp.checked && document.forms[0].inclMOT_5_inactive) 
		document.forms[0].inclMOT_5_inactive.name = 'inclMOT_5';
	else if (document.forms[0].exclMOT_5_pp.checked && document.forms[0].inclMOT_5)
		document.forms[0].inclMOT_5.name = 'inclMOT_5_inactive';
	
	if (!document.forms[0].exclMOT_6_pp.checked && document.forms[0].inclMOT_6_inactive) 
		document.forms[0].inclMOT_6_inactive.name = 'inclMOT_6';
	else if (document.forms[0].exclMOT_6_pp.checked && document.forms[0].inclMOT_6)
		document.forms[0].inclMOT_6.name = 'inclMOT_0_inactive';
	
	if (!document.forms[0].exclMOT_10_pp.checked && document.forms[0].inclMOT_10_inactive) 
		document.forms[0].inclMOT_10_inactive.name = 'inclMOT_10';
	else if (document.forms[0].exclMOT_10_pp.checked && document.forms[0].inclMOT_10)
		document.forms[0].inclMOT_10.name = 'inclMOT_10_inactive';
}

// ==================================================================
// This toggles the mot 1(commuter train) when mot 0 (train) is toggled.
// ==================================================================

function toggleMOT1 (state) {
	if (state && document.forms[0].exclMOT_1_inactive) 
		document.forms[0].exclMOT_1_inactive.name = 'exclMOT_1';
	else if (!state && document.forms[0].exclMOT_1)
		document.forms[0].exclMOT_1.name = 'exclMOT_1_inactive';
}



// ==================================================================
// This function overwrites the write3A function for the meta navigation of
// the frame version.
// ==================================================================

function write3A_Frame () {
	var title1 = (write3A_Frame.arguments[0]) ? write3A_Frame.arguments[0] : "";
	var title2 = (write3A_Frame.arguments[1]) ? write3A_Frame.arguments[1] : "";
	var title3 = (write3A_Frame.arguments[2]) ? write3A_Frame.arguments[2] : "";
	document.write("<span class=\"aaaFrame\">");
	document.write("<a href=\"Javascript: $.FontSizer.Decrease();\" title=\""+title1+"\" class=\"small\">A</a>");
	document.write("<a href=\"Javascript: $.FontSizer.Reset();\" title=\""+title2+"\" class=\"normal\">A</a>");
	document.write("<a href=\"Javascript: $.FontSizer.Increase();\" title=\""+title3+"\" class=\"large\">A</a>");
	document.write("</span>");
}


// ==================================================================
// This function toggles the advanced options.
// ==================================================================

function toggleAdvancedOptions () {
	if (document.getElementById('advancedOptions')) {
		// open/close options
		if (document.getElementById('advancedOptions').style.display == 'none')
			document.getElementById('advancedOptions').style.display = 'block';
		else 
			document.getElementById('advancedOptions').style.display = 'none';
	}
	// exchange advanced options button
	if (document.getElementById('openAdvancedOptionsButton')) {
		if (document.getElementById('openAdvancedOptionsButton').style.display == 'none')
			document.getElementById('openAdvancedOptionsButton').style.display = 'block';
		else
			document.getElementById('openAdvancedOptionsButton').style.display = 'none';
	}
	if (document.getElementById('closeAdvancedOptionsButton')) {
		if (document.getElementById('closeAdvancedOptionsButton').style.display == 'none')
			document.getElementById('closeAdvancedOptionsButton').style.display = 'block';
		else
			document.getElementById('closeAdvancedOptionsButton').style.display = 'none';
	}
}

/*function disableEnterKey(e) {
    var evt = e ? e : window.event;
    var key = evt.keyCode || evt.which;     
    return (key!=13); 
}

document.onkeypress = disableEnterKey;*/







