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 toggleMultiSTT(obj){

    if(obj.value=='line'){
        jQuery('#name_seltt').attr('disabled', true);
        jQuery('#lineName').attr('disabled', false);
        jQuery('#inputOpName').attr('disabled', false);
    }
    else{
        jQuery('#name_seltt').attr('disabled', false);
        jQuery('#lineName').attr('disabled', true);
        jQuery('#inputOpName').attr('disabled', 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 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) {
	
	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
	};
	
	_params = $H(_params);
	_params = _params.toQueryString();
	
	var _img=new Image();

	var srcPages =host + '?' +_params;
	_img.src=srcPages; 
	
	displayOverlay('', 'none');
}


// This function sets the parameters for the request and submits the form
function submitStop(id, usage){
	
	var type = 'stopID';
	var odvID = id;

    if(document.getElementById('nameInfo_' + usage)){
        document.getElementById('placeInfo_' + usage).value = '';	
        document.getElementById('typeInfo_' + usage).value = type;
        document.getElementById('nameInfo_' + usage).value = odvID;
                
    	if (document.forms[0].execInst){
    		document.forms[0].execInst.value = 'verifyOnly';
    	}
    		
    	document.forms[0].submit();
    }
    else{
       var lang = document.forms[0].language.value;
       var link = 'XSLT_TRIP_REQUEST2?language=' + lang + '&sessionID=0';
           link += '&type_' + usage +'=stopID&name_' + usage +'=' +odvID
    
       location.href =link;
    }
};

// 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);



jQuery(document).ready(function() {
  
    if(jQuery('#name_sf').length =='1'){
        document.getElementById('name_sf').focus();
    }
    else if(jQuery('#name_dm').length =='1'){
        document.getElementById('name_dm').focus();
    }
    else if(jQuery('#name_seltt').length =='1' && jQuery('input[name="itdLPxx_selectType"]:checked').length =='1'){
        document.getElementById('name_seltt').focus();
    }
    
    

});
