function attachEventListener(target, eventType, functionRef, capture)
{
  if (typeof target.addEventListener != "undefined")
  {
	target.addEventListener(eventType, functionRef, capture);
  }
  else if (typeof target.attachEvent != "undefined")
  {
	target.attachEvent("on" + eventType, functionRef);
  }
  else
  {
	eventType = "on" + eventType;

	if (typeof target[eventType] == "function")
	{
	  var oldListener = target[eventType];

	  target[eventType] = function()
	  {
		oldListener();

		return  functionRef();
	  }
	}
	else
	{
	  target[eventType] = functionRef;
	}
  }

  return true; 
}


function mouseSubmit(wait) {
   
	var myBody = document.body;
	
	if (wait == 'wait') {  
		 myBody.style.cursor = "progress";
		 document.getElementById('journey').style.cursor = "progress";
		 document.getElementById('time').style.cursor = "progress";
		 
		var fieldset = document.getElementsByTagName("fieldset");

		for (var i = 0; i < fieldset.length; i++) {
		  fieldset[i].style.cursor = "progress";
		}
		
		var a = document.getElementsByTagName("a");

		for (var i = 0; i < a.length; i++) {
		  a[i].style.cursor = "progress";
		}
		
		var input = document.getElementsByTagName("input");
		
		for (var i = 0; i < input.length; i++) {
		
		  input[i].style.cursor = "progress";
		}
		 
		window.setTimeout("mouse('out')", 100000);
	} 
	else {
		myBody.style.cursor = "default";
	}
}
   
function updateVia(viaType)
{
	if (document.forms[0].avoidTariffZoneActive) document.forms[0].avoidTariffZoneActive.value="0";
	if (document.forms[0].placeInfo_via) document.forms[0].placeInfo_via.value="invalid";
	if (document.forms[0].typeInfo_via) document.forms[0].typeInfo_via.value="invalid";
	if (document.forms[0].nameInfo_via) document.forms[0].nameInfo_via.value="invalid";

	switch (viaType)
	{
		// via location
		case 1 : 
		{
			var obj3 = document.getElementById("viaType3");
			if (obj3) obj3.disabled=true;
			
			var obj4 = document.getElementById("viaType4");
			if (obj4) obj4.disabled=true;
			
			if (document.forms[0].itdLPxx_viaType) document.forms[0].itdLPxx_viaType.value="1";
			
			break;
		}
		// avoid location
		case 2 :		
		{
			break;
		}
		// via london centre
		case 3 : 
		{
			var obj = document.getElementById("locationInput_via");
			if (obj)  obj.disabled=true;
			if (document.forms[0].itdLPxx_viaType) document.forms[0].itdLPxx_viaType.value="3";
			
			if (document.forms[0].placeInfo_via)
				document.forms[0].placeInfo_via.value="";

			if (document.forms[0].typeInfo_via)
				document.forms[0].typeInfo_via.value="stopID";

			if (document.forms[0].nameInfo_via)
				document.forms[0].nameInfo_via.value="1000248:1001171:1001276:1001221:1000254:1001108:1000077:1000145:1000138:1000040:1000045:1000139";
			
			break;
		}
		// aviod london centre
		case 4 : 
		{
			var obj = document.getElementById("locationInput_via");
			if (obj)  obj.disabled=true; 
			
			if (document.forms[0].itdLPxx_viaType) document.forms[0].itdLPxx_viaType.value="4";
			if (document.forms[0].avoidTariffZoneActive) document.forms[0].avoidTariffZoneActive.value="1";
			
			if(document.forms[0].viaType4.checked == false)
			{
				document.forms[0].itdLPxx_viaType.value="3";
			}
			
			break;
		}
	}
};

function checkPedestrian(obj){
	if(obj==true){
		document.forms[0].onlyITPedestrian.value="1";
	}
	else{
		document.forms[0].onlyITPedestrian.value="0";
	}
};

// display the ea home overlay 
function eaHomeOverlay(style){
	document.getElementById('eaHomeOvlerlay').style.display=style;
}


// display the ea home overlay 
function changeOverlay(id, style){
	document.getElementById(id).style.display=style;
}


// display the ea home overlay 
/* function emHomeOverlay(style){
	document.getElementById('emHomeOverlay').style.display=style;
} */

// display selected line on route map 
function displaySelectedLine(dir){

	var line = document.getElementById('itdLPxx_mapIt').value
	var coord = '';
	var lineH = line.replace('$dir$', dir);

	mdvJpMaps['mdvROPMap'].mapIt(this.id, 3, lineH, coord);
}

// display selected line on route map 
function checkSelectedLine(obj, dir){

	var line = document.getElementById('itdLPxx_mapIt').value;
	var coord = '';
	
	if(document.getElementById('H').checked == true && document.getElementById('R').checked == true){
	
		document.getElementById('headerH').style.display ='';
		document.getElementById('headerR').style.display ='none';
	}
	else if(document.getElementById('R').checked == true){
		document.getElementById('headerH').style.display ='none';
		document.getElementById('headerR').style.display ='';
	}
	else{
		document.getElementById('headerH').style.display ='';
		document.getElementById('headerR').style.display ='none';
	}
	
	line = line.replace('$dir$', dir);

	if(obj.checked==true){
		mdvJpMaps['mdvROPMap'].mapIt(this.id, 3, line, coord);
	}
	else{
		mdvJpMaps['mdvROPMap'].unMapIt(dir, line, coord);
	}
}

document.removeElement = function(element){
	element.parentNode.removeChild(element)
};

document.getDivsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("div");
    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;
}

document.getImgsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("img");
    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;
}

document.getMyElementsByClassName = function(elem, clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName(elem);
    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;
}


function disableCycle(){		
				
	if(document.forms[0]){

		if(document.forms[0].cyclingActive)
		{
		
			if ( document.forms[0].cyclingActive.checked == false ) 
			{
			  document.getElementById('speedFactorBicycle50').disabled=true;
			  document.getElementById('speedFactorBicycle100').disabled=true;
			  document.getElementById('speedFactorBicycle150').disabled=true;
			  document.getElementById('cycleType107').disabled=true;
			  document.getElementById('cycleType101').disabled=true;
			  document.getElementById('cycleType102').disabled=true;
			}
			else
			{
			  document.getElementById('speedFactorBicycle50').disabled=false;
			  document.getElementById('speedFactorBicycle100').disabled=false;
			  document.getElementById('speedFactorBicycle150').disabled=false;
			  document.getElementById('cycleType101').disabled=false;
			  document.getElementById('cycleType107').disabled=false;
			  document.getElementById('cycleType102').disabled=false;
			}
		}
	}
}

function getSize(element) {
	/* if(window.document.getElementById('zelle' +element)){
		var tdHeight = window.document.getElementById('zelle' +element).offsetHeight;

		window.document.getElementById('line' +element).style.height= tdHeight + 'px';
	}
	if(window.document.getElementById('cell2' +element)){
		var tdHeight = window.document.getElementById('cell2' +element).offsetHeight;
	
		window.document.getElementById('line2' +element).height= tdHeight;
	} */
	
	var line =	document.getDivsByClassName('redLinePrint');

	for(i=0; i < line.length; i++ ){
		line[i].style.height = line[i].parentNode.offsetHeight - line[i].previousSibling.offsetHeight +5 + 'px';
	}
	
	
}

function OperatorSelectionSetSelection(select, type){

	var obj = document.forms[0].preferInclOP;
	var useOnlyOP = document.forms[0].useOnlyOP;
	var preferInclOP = document.forms[0].preferInclOP;
	var preferExclOP = document.forms[0].preferExclOP;


	if(type=='preferExclOP')
	{
		obj = document.forms[0].preferExclOP;
	}

	else if(type=='useOnlyOP'){
		obj = document.forms[0].useOnlyOP;
	}

	if (obj)
	{

		for (var iIndex = 0; iIndex < obj.length; iIndex++)
			if(obj[iIndex].checked==true){
				obj[iIndex].checked=select;
				document.forms[0].preferInclOP[iIndex].disabled=false;
				document.forms[0].preferExclOP[iIndex].disabled=false;
				document.forms[0].useOnlyOP[iIndex].disabled=false;
				document.forms[0].preferInclOP[iIndex].parentNode.style.color='#3f3f3f';
				document.forms[0].preferExclOP[iIndex].parentNode.style.color='#3f3f3f';
				document.forms[0].useOnlyOP[iIndex].parentNode.style.color='#3f3f3f';
			}
	}

	var count = 0;

	if (useOnlyOP)
	{
		if (useOnlyOP && count > 0)
		{
			for (var iIndex = 0; iIndex < useOnlyOP.length; iIndex++)
				if(useOnlyOP[iIndex])
				{
					useOnlyOP[iIndex].disabled=true;
					useOnlyOP[iIndex].parentNode.style.color='#999999';
				}

		}	

		else if(count == 0){
			for (var iIndex = 0; iIndex < useOnlyOP.length; iIndex++)
				if(useOnlyOP[iIndex])
				{
					useOnlyOP[iIndex].disabled=false;
					useOnlyOP[iIndex].parentNode.style.color='#3f3f3f';
				}
		}
	}
}


function removeUseOnly(select, obj){
	var useOnlyOP = document.forms[0].useOnlyOP;
	var preferInclOP = document.forms[0].preferInclOP;
	var preferExclOP = document.forms[0].preferExclOP;

		if (useOnlyOP)
		{
			for (var iIndex = 0; iIndex < useOnlyOP.length; iIndex++)
				if(useOnlyOP[iIndex].checked==true && useOnlyOP[iIndex].id != obj.id)
				{
					useOnlyOP[iIndex].checked=select;
				}
		}
		
		if (preferInclOP)
		{
			for (var iIndex = 0; iIndex < preferInclOP.length; iIndex++)

				if(preferInclOP[iIndex] && obj.checked==true)
				{
					preferInclOP[iIndex].disabled=true;
					preferInclOP[iIndex].parentNode.style.color='#999999';
				}
				else if(preferInclOP[iIndex]){
					preferInclOP[iIndex].disabled=false;
					preferInclOP[iIndex].parentNode.style.color='#3f3f3f';
				}
		}
		
		if (preferExclOP)
		{
			for (var iIndex = 0; iIndex < preferExclOP.length; iIndex++)

				if(preferExclOP[iIndex] && obj.checked==true)
				{
					preferExclOP[iIndex].disabled=true;
					preferExclOP[iIndex].parentNode.style.color='#999999';
				}

				else if(preferExclOP[iIndex]){
					preferExclOP[iIndex].disabled=false;
					preferExclOP[iIndex].parentNode.style.color='#3f3f3f';
				}				
		}
}

function disableOtherOP(type1, type2, obj){

	var id=  obj.value.split(':');
	var useOnlyOP = document.forms[0].useOnlyOP;
	var preferInclOP = document.forms[0].preferInclOP;
	var preferExclOP = document.forms[0].preferExclOP;

	if(obj.checked==true){
		document.getElementById(type1 + '_'+ id[2]).disabled=true;
		document.getElementById('span' + type1 + '_'+ id[2]).style.color='#999999';
		document.getElementById(type2 + '_'+ id[2]).disabled=true;
		document.getElementById('span' + type2 + '_'+ id[2]).style.color='#999999';
	}
	else{
		document.getElementById(type1 + '_'+ id[2]).disabled=false;
		document.getElementById('span' + type1 + '_'+ id[2]).style.color='#3f3f3f';
		document.getElementById(type2 + '_'+ id[2]).disabled=false;
		document.getElementById('span' + type2 + '_'+ id[2]).style.color='#3f3f3f';
	}
	
	if(type2=='useOnlyOP'){

		var count = 0;
		
		if (useOnlyOP)
		{
			for (var iIndex = 0; iIndex < preferInclOP.length; iIndex++)

				if(preferInclOP[iIndex] && preferInclOP[iIndex].checked==true)
				{
					++count
				}
				
			
			for (var iIndex = 0; iIndex < preferExclOP.length; iIndex++)

				if(preferExclOP[iIndex] && preferExclOP[iIndex].checked==true)

				{
					++count
				}
				
			
			if (useOnlyOP && count > 0)
			{
				for (var iIndex = 0; iIndex < useOnlyOP.length; iIndex++)
					if(useOnlyOP[iIndex])
					{
						useOnlyOP[iIndex].disabled=true;
						useOnlyOP[iIndex].parentNode.style.color='#999999';
					}
			}	

			else if(count == 0){
			
				for (var iIndex = 0; iIndex < useOnlyOP.length; iIndex++)
					if(useOnlyOP[iIndex])
					{
						useOnlyOP[iIndex].disabled=false;
						useOnlyOP[iIndex].parentNode.style.color='#3f3f3f';
					}
			}
		}
	}
	checkSelMOT('OP');
}


function checkSelMOT(obj){
	var useOnlyOP = document.forms[0].useOnlyOP;
	var preferInclOP = document.forms[0].preferInclOP;
	var preferExclOP = document.forms[0].preferExclOP;
	var checkedOp = 0;

	for (var iIndex = 0; iIndex < useOnlyOP.length; iIndex++)
		if(useOnlyOP[iIndex].checked==true)
		{
			checkedOp += 1;
		}
		
	for (var iIndex = 0; iIndex < preferInclOP.length; iIndex++)

		if(preferInclOP[iIndex].checked==true)
		{
			checkedOp += 1;
		}
		
		
	for (var iIndex = 0; iIndex < preferExclOP.length; iIndex++)

		if(preferExclOP[iIndex].checked==true)
		{
			checkedOp += 1;
		}

	if(obj.checked==false || checkedOp!='0'){
		if (document.getElementById('selMOT'))
			document.getElementById('selMOT').value='0';
	}
	else{
		if (document.getElementById('selMOT'))
			document.getElementById('selMOT').value='1';
	}
};

// this function add and hide the via for em
function addHideVia(obj){

	if(obj.id=='add'){
		obj.id='hide';
		obj.value= hideVia;
		document.getElementById('odvVia').style.display='block';
		document.getElementById('itdLPxx_addVia').value='true';
	}
	else{
		obj.id='add';
		obj.value=addVia;
		document.getElementById('odvVia').style.display='none';
		document.getElementById('itdLPxx_addVia').value='';
		document.forms[0].nameState_via.value='empty';
		document.forms[0].nameInfo_via.value='';
	}
}

function printOneRoute(pos){

	if(pos >0 && count >0){
		for (i =1; i <= count; i++){
			
			if(i == pos)
			{
				document.getElementById('route' + i).className ='print';
			}
			else
			{
				document.getElementById('route' + i).className ='noprint';
			}
		}
			
		document.getElementById('routeOverview').className ='noprint';								
		print()
	}
}
		
function printAllRoute(){
	if(count >0){
	
		for (i =1; i <= count; i++)
				{							
					document.getElementById('route' + i).className ='print';
					document.getElementById('routeOverview').className ='print';		
				}
			print()
	}
}		

function checkTram(obj){
	document.getElementById('inclMOT_1').checked=obj;
}

function checkSelTTInput(){
	if(document.getElementById('lineName').value=='' && document.getElementById('inputOpName').value==''
	 && document.getElementById('name_seltt') && document.getElementById('name_seltt').value==''){
		return false;
	}
}


function displayOverlay(obj, style){
	document.getElementById('surveyOverlay').style.display=style;
	if(style =='block'){
		document.getElementById('surveyOverlayContent').style.top = obj.offsetTop -100 + 'px';
	}
	document.getElementById('surveyOverlayContent').style.display=style;
}

function sendOverlay(){

	var mail = document.forms['survey'].email.value;
	var expression = /^[_a-zA-Z0-9-](\.{0,1}[_a-zA-Z0-9-])*@([a-zA-Z0-9-]{1,}\.){0,}[a-zA-Z0-9-]{2,}(\.[a-zA-Z]{2,6}){1,2}$/; 

	if(!expression.exec(mail))
	{
		alert('Please Enter a valid e-mail address!');
		return false;
	}

	var host = 'http://80.168.17.70/zope/survey';
	
	var _params = { 
		datetime_request: document.forms['survey'].datetime_request.value, 
		server_id: document.forms['survey'].server_id.value, 
		virt_dir: document.forms['survey'].virt_dir.value,
		date_of_travel: document.forms['survey'].itdDate.value,
		email: document.forms['survey'].email.value
	};
	
	//var _ajax = mdvLib.ajax({ host: host, parameters: _params, method: 'post', onComplete: survey_onAjaxComplete });
	
	_params = $H(_params);
	_params = _params.toQueryString();
	
	var _img=new Image();

	var srcPages =host + '?' +_params;
	_img.src=srcPages; 
	
	displayOverlay('', 'none');
}

// show / hide the overlays
function attachedLinks(){

	var moreLinks = document.getMyElementsByClassName('a', 'moreLinks');
	var moreDesc = document.getMyElementsByClassName('div', 'moreDesc');

	for (var i=0; i < moreLinks.length; i++) {
		attachEventListener(moreLinks[i], 'mouseover', blockLinks.bind(moreDesc[i]), false);
		attachEventListener(moreLinks[i], 'mouseout', hideLinks.bind(moreDesc[i]), false);
	}
	
	for (var i=0; i < moreDesc.length; i++) {
		attachEventListener(moreDesc[i], 'mouseover', blockLinks.bind(moreDesc[i]), false);
		attachEventListener(moreDesc[i], 'mouseout', hideLinks.bind(moreDesc[i]), false);
	}
}

// show the overlay
function blockLinks(obj){
	this.style.display='block';
}

// hide the overlay
function hideLinks(){
	this.style.display='none';
}

attachEventListener(window, 'load', attachedLinks, false);
