// array of routes (0 - not selected, 1 - selected, selected by default)
var tripSelector = new Array();
var odvDefaultValue ='';

// ==================================================================
// This function gets the input date string and splits it up
// for trip computation.
// ==================================================================

function setDate() {
	if (document.getElementById('tripdate') && 
	    document.getElementById('itdDateDay') && 
	    document.getElementById('itdDateMonth') && 
	    document.getElementById('itdDateYear')) {
		var dateString = document.getElementById('tripdate').value;
		var dateArray = dateString.split('.');
		document.getElementById('itdDateDay').value = dateArray[0];
		document.getElementById('itdDateMonth').value = dateArray[1];
		document.getElementById('itdDateYear').value = '20' + dateArray[2];
	}
}


// ==================================================================
// This function sets the focus on a stop/address/poi list.
// ==================================================================

function setFocus() {
	if(document.getElementById('originplace'))
	document.getElementById('originplace').focus();
	else if (document.getElementById('destinationplace'))
	document.getElementById('destinationplace').focus();
}


// ==================================================================
// This function causes submit if the focus is e.g. on a list and
// the enter key is pressed
// ==================================================================


// submit if enter pressed
function checkReturnKey(event) {

	if(!event) event = window.event;
	var keycode = event.which || event.keyCode;

	if (event && event.keyCode==13) {
		document.forms[0].submit();
	}
	
}


// ==================================================================
// This function selects the trips shown/hidden in the printed
// overview.
// ==================================================================

function selectToPrint(routeId) {
	if(document.getElementById('tripSelector' + routeId)) {
		if(document.getElementById('tripSelector' + routeId).checked == true) 
			tripSelector[routeId] = 1;
		else
			tripSelector[routeId] = 0;
	}
}


// ==================================================================
// This function prints the selected trips (print overview). 
// ==================================================================

function printOverview (){

	var rows = document.getElementsByTagName('tr');
	for(var i=0; i<rows.length; i++) {
		var classes = rows[i].className;
		if(classes.indexOf('printroute') >= 0) {
		
			for (var j=1; j<tripSelector.length; j++) {
				// hide trip
				if(tripSelector[j] != 1 && classes.indexOf('route' + j) >= 0)
					rows[i].className =  rows[i].className.substring(0, classes.indexOf('route' + j)+6)+' dontprint';
					
				// show trip
				else if(tripSelector[j] == 1 && classes.indexOf('route' + j) >= 0 && classes.indexOf('dontprint') >= 0)
					rows[i].className = classes.substring(0, rows[i].className.indexOf('dontprint'));
					if(document.getElementById('routeSpacer' + j))
					document.getElementById('routeSpacer' + j).className='dontprint';
			}
		}						
	}
	window.print();
}


// ==================================================================
// This prints the detailview of a trip.
// ==================================================================

function printTrip(routeId){
	var rows = document.getElementsByTagName('tr');
	for(var i=0; i<rows.length; i++) {
		var classes = rows[i].className;
		if (classes.indexOf('route' + routeId) < 0 && classes.indexOf('printroute') >= 0) 
			rows[i].className += ' dontprint';
		else if (classes.indexOf('route' + routeId) >= 0 && classes.indexOf('printroute') >= 0)
			rows[i].className = classes.substring(0, classes.length-9);
			
	}
	window.print();
}


// ==================================================================
// This function show the selected trips. 
// ==================================================================

function viewDetails(){

	var rows = document.getTrsByClassName('row');
	
	for(var i=0; i<rows.length; i++) {
		var classes = rows[i].className;
		
		if(rows[i] && document.getElementById(rows[i].id.substring(6))) {
				
				if(document.getElementById(rows[i].id.substring(6)).checked==false){
					rows[i].className =  rows[i].className +' dontdisplay';
				 }
				// show trip
				else if(document.getElementById(rows[i].id.substring(6)).checked==true){
				
					if(rows[i].className.indexOf('dontdisplay')!='-1'){
						rows[i].className = classes.substring(0, rows[i].className.indexOf('dontdisplay'));
					}
					else{
						rows[i].className = classes.substring(0, rows[i].className.lastIndexOf('route')+7);;
					}
				}
		}						
	}
	
	
	/* document.forms[0].command.value='nop';
	document.forms[0].submit(); */
	
}

document.getTrsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("tr");

    for(var i = 0;i < elements.length;i++){

        if(elements[i].className && elements[i].className.indexOf(" ") >= 0){
                        
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }

    return retVal;
}





// ==================================================================
// This function sets the type for input with location server and
// two-field input.
// ==================================================================

function setOdvType(type , usage, obj) {

	document.getElementById('type_'+usage).value = type;
		
	if(document.getElementById(usage).value.length==0 || 
		document.getElementById(usage).value==allValue || 
		document.getElementById(usage).value==stopValue || 
		document.getElementById(usage).value==addressValue || 
		document.getElementById(usage).value==poiValue){
		
		if(obj.value==0 && usage!='dm' && usage!='stt' && usage!='ttb'){
			document.getElementById('nameDefaultText_' +usage).value = allValue;
			document.getElementById(usage).value = allValue;
			odvDefaultValue = allValue;
		}
		else if(obj.value==2 || usage=='dm' || usage=='stt' || usage=='ttb'){
			document.getElementById('nameDefaultText_' +usage).value = stopValue;
			document.getElementById(usage).value = stopValue;
			odvDefaultValue = stopValue;
		}
		else if(obj.value==12)
		{
			document.getElementById('nameDefaultText_' +usage).value = addressValue;
			document.getElementById(usage).value = addressValue;
			odvDefaultValue =addressValue;
		}
		else if(obj.value==32){
			document.getElementById('nameDefaultText_' +usage).value = 'Ort';
			document.getElementById(usage).value = poiValue;
			odvDefaultValue =poiValue;
		}
		else{
			document.getElementById(usage).value = '';
			odvDefaultValue = '';
		}
	
	}
	
}


// ==================================================================
// This function sets the name for poi hierarchy.
// ==================================================================

function setName(obj, usage) {
	document.getElementById('name_' + usage).value = obj.value;
}


function changeMapImg(img){

	document.images['vvtOverviewMap'].src = 'images/overviewMap/' + img + '.jpg';

}


function onlyTrain(obj){

	if(obj){
		if(obj.checked==true){
			
			document.getElementById('exclMOT_1').name='exclMOT_1';
			document.getElementById('exclMOT_2').name='exclMOT_2';
			document.getElementById('exclMOT_3').name='exclMOT_3';
			document.getElementById('exclMOT_6').name='exclMOT_6';
			document.getElementById('exclMOT_7').name='exclMOT_7';
			document.getElementById('exclMOT_8').name='exclMOT_8';
			document.getElementById('exclMOT_9').name='exclMOT_9';
			document.getElementById('exclMOT_10').name='exclMOT_10';
			document.getElementById('exclMOT_11').name='exclMOT_11';
			
			document.getElementById('exclMOT_1').value='0';
			document.getElementById('exclMOT_2').value='1';
			document.getElementById('exclMOT_3').value='1';
			document.getElementById('exclMOT_6').value='0';
			document.getElementById('exclMOT_7').value='0';
			document.getElementById('exclMOT_8').value='1';
			document.getElementById('exclMOT_9').value='1';
			document.getElementById('exclMOT_10').value='1';
			document.getElementById('exclMOT_11').value='1';
		}
		else{
		
			document.getElementById('exclMOT_2').name='inclMOT_0';
			document.getElementById('exclMOT_3').name='inclMOT_0';
			document.getElementById('exclMOT_6').name='inclMOT_0';
			document.getElementById('exclMOT_7').name='inclMOT_0';
			document.getElementById('exclMOT_8').name='inclMOT_0';
			document.getElementById('exclMOT_9').name='inclMOT_0';
			document.getElementById('exclMOT_10').name='inclMOT_0';
			document.getElementById('exclMOT_11').name='inclMOT_0';
		}
	}
}


function checkLineSelection(){

	if (document.forms['fplrequestfrom'].dmLineSelection) {
		document.forms['fplrequestfrom'].dmLineSelectionAll.value = 0;
	}
	
	if (document.forms['fplrequestfrom'].dmLineSelection && document.forms['fplrequestfrom'].dmLineSelection.value == 'all') {
		document.forms['fplrequestfrom'].dmLineSelectionAll.value = 1;
	}
};



////////////////////////////////////////////////////////////////////////////////////////
// MOT Synchronisation

function setMOTs(state) {
	if (state) {
        document.getElementById('inclMOT_2').name = 'inclMOT_2';
        document.getElementById('inclMOT_3').name = 'inclMOT_3';
        document.getElementById('inclMOT_6').name = 'inclMOT_6';
        document.getElementById('inclMOT_7').name = 'inclMOT_7';
        document.getElementById('inclMOT_8').name = 'inclMOT_8';
        document.getElementById('inclMOT_9').name = 'inclMOT_9';
        document.getElementById('inclMOT_10').name = 'inclMOT_10';
    }
    else {
        document.getElementById('inclMOT_2').name = 'itdLPxx_inclMOT_2';
        document.getElementById('inclMOT_3').name = 'itdLPxx_inclMOT_3';
        document.getElementById('inclMOT_6').name = 'itdLPxx_inclMOT_6';
        document.getElementById('inclMOT_7').name = 'itdLPxx_inclMOT_7';
        document.getElementById('inclMOT_8').name = 'itdLPxx_inclMOT_8';
        document.getElementById('inclMOT_9').name = 'itdLPxx_inclMOT_9';
        document.getElementById('inclMOT_10').name = 'itdLPxx_inclMOT_10';
    }
}

function setMOT1 (state) {
    if (state) {
        document.getElementById('inclMOT_1').name = 'inclMOT_1';
    }
    else {
        document.getElementById('inclMOT_1').name = 'itdLPxx_inclMOT_1';
    }
}

function setMOT11 () {
    if (document.getElementById('inclMOT_0').checked || document.getElementById('inclMOT_4').checked) {
        document.getElementById('inclMOT_11').name = 'inclMOT_11';
    }
    else {
        document.getElementById('inclMOT_11').name = 'itdLPxx_inclMOT_11';
    }
}


function AddToFavorites(obj, title, url){

  //Chrome
  if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1){
    document.getElementById('hiddenLink').style.display='block';
  }
  //Safari
  else if(navigator.appName=='Netscape' 
            && navigator.userAgent.toLowerCase().indexOf('safari') > -1){
    document.getElementById('hiddenLink').style.display='block';
  
  }
  else if(window.sidebar){
    // Mozilla Firefox Bookmark
    window.sidebar.addPanel(title, url,"");
    return false;
  } 
  else if(window.external){
    // IE Favorite
    window.external.AddFavorite(url, title);
    return false;
  } 
  else if(window.opera && window.print){
    //Opera Hotlist
    obj.setAttribute('href',url);
    obj.setAttribute('title',title);
    obj.setAttribute('rel','sidebar');
    obj.click();
    return false;
  }
}

// if odv text field is empty clear value
function refreshPoint(usage){
    if(document.getElementById(usage).value == ""){
        document.getElementById('nameInfo_'+usage).value = "invalid";
        document.getElementById('typeInfo_'+usage).value = "invalid";
    }
}



function displaySpinner(obj){
    mdvSpinner.show();
    if (parent.location===window.location || obj.href.search(/XSLT_\w+_REQUEST/)>-1) {
        location.href = obj.href;
    } else {
        parent.location.href = obj.href;
    }   
}


