var distance = function() {
	
	var idSuffix = 'Id';
	
	var recieve = function(request) {		
		eval('var result = ' + request.responseText + ';');
		
		if(result['compensate_with_payment'])
		{
			if(result['compensate_with_payment']=='hide')
			{
				$('has_paymentId').style.display = 'none';	
				$('has_payment2Id').style.display = 'none';	
			}
			else
			{
				$('has_paymentId').style.display = 'block';	
				$('has_payment2Id').style.display = 'block';	
			}	
		}		
	
		for ( var i in result ) {
			try{
			      $(i + idSuffix).value = result[i];
			      $(i + idSuffix).innerHTML = result[i];
			} catch(e){}
		}
	};
	
	var calculate_route = function(formId, action) {
		change_route('disable');
		submit_form(formId, action);
		//var url = wwwbase.get() + 'distances/' + action + '/';
		//var pars = $(formId).serialize();
		
		//new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: recieve } );	
		
	};	
	
	var submit_form = function(formId, action) {
		
		var url = wwwbase.get() + 'distances/' + action + '/';
		var pars = $(formId).serialize();
		
		new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: recieve } );	
		
	};		
	
	var clear_route = function(type)
	{
		if(type=='from')
		{
			$('fromLocation').value="";
			$('fromLocationHide').value="";
			$('routeId').value="";
		}
		else if(type=='to')
		{
			$('toLocation').value="";
			$('toLocationHide').value="";
			$('routeId').value="";
		}
		else if(type=='all')
		{
			$('fromLocation').value="";
			$('fromLocationHide').value="";
			$('toLocation').value="";
			$('toLocationHide').value="";
			$('routeId').value="";
		}
	};
	
	var change_route = function(action)
	{
		if(action=='disable')
		{
			$('routeId').disabled = 1;
			$('routeId').className = "disabled";				
		}
		else if(action=='enable')
		{
			$('routeId').disabled = 0;
			$('routeId').className = "";
		}
	};
	
	var checkform = function(text1,text2,text3,text4,msgOK)
	{
		var transport_type;
		for(var i=0; i< $('transport_typeId').length; i++)
		{
			if($('transport_typeId')[i].selected==true)	
			{
				transport_type = $('transport_typeId')[i].value; 
			}
		}
		
		if(transport_type=='car')
		{
			//check for consumption	
			if($('consumptionId').value=='' || $('consumptionId').value<=0)
			{
				popup.showAlert(text1, msgOK);	
				return false;
			}
		}
		else
		{
			//check for travellers	
			if($('travellersId').value=='' || $('travellersId').value<=0)
			{
				popup.showAlert(text2, msgOK);	
				return false;
			}
		}
		
		//check for hide-locations
		if($('fromLocationHide').value=='' || $('toLocationHide').value=='')
		{
			popup.showAlert(text3, msgOK);	
			return false;
		}
		
		//check for route!=0
		if($('routeId').value=='' || $('routeId').value<=0)
		{
			popup.showAlert(text4, msgOK);	
			return false;
		}
		
		return true;
	};
	
	var checkAgreeTermsCheckbox = function(formId, error, error2, errorOK) {
		if($("amount_valueId") && $("amount_valueId").value>0 && $("agree_emissionsId") && $("agree_emissionsId").checked == false)
		{
		    popup.showAlert(error, errorOK);
		    return false;
		}
		else if($("agree_termsId") && $("agree_termsId").checked == false)
		{
		    popup.showAlert(error2, errorOK);
		    return false;
		}
		return true;
	};	
	
	return {	
		hideElement: function(elementId, controlerId, controlerValue) {
			if ($(controlerId).value == controlerValue) {
				$(elementId).style.display = '';
			} else {
				$(elementId).style.display = 'none';				
			}
		},			
		showElement: function(elementId, controlerId, controlerValue) {
			if ($(controlerId).value == controlerValue) {
				$(elementId).style.display = 'none';
			} else {
				$(elementId).style.display = '';				
			}
		},			
		selectElement: function(elementId) {
			$(elementId).checked = 'checked';
		},
		onSubmit: function(form){
			for (var i in form.elements){
				if (form.elements[i].disabled == 1) {
					form.elements[i].disabled = 0;
				}
			}
		},
		submit: function(formId, action){
			$(formId).action = action;
			
			//Change 10.07.09: this doesn dot word on IE
			//for (var i in $(formId).elements){
			for(var i=0 ; i<$(formId).elements.length; i++){				
				if ($(formId).elements[i].disabled == 1) {
					$(formId).elements[i].disabled = 0;
				}
			}			
			$(formId).submit();
		},
		estimationCar: function(receiverId, title) {
			popup.showPopup('calculators', 'estimation_car', 'receiverId=' + receiverId + '&title=' + title);
		},		
		switch_transport_details: function(transport_typeId, travellers_boxId, fuel_boxId,from_country_boxId,to_country_boxId)
		{
			for ( var i=0; i<$(transport_typeId).length; i++ )
			{
				if($(transport_typeId)[i].selected==true)
				{
					if($(transport_typeId)[i].value=='car')
					{
						$(travellers_boxId).style.display = 'none';
						$(fuel_boxId).style.display = 'block';
					}
					else
					{
						$(travellers_boxId).style.display = 'block';
						$(fuel_boxId).style.display = 'none';
					}
					
					if($(transport_typeId)[i].value=='plane')
					{
						if($(from_country_boxId).style.display=='block')
						{
							//comes from car/bus/train	
							clear_route('all');
						}
						$(from_country_boxId).style.display = 'none';
						$(to_country_boxId).style.display = 'none';
					}
					else
					{
						if($(from_country_boxId).style.display=='none')
						{
							//comes from plane	
							clear_route('all');						
						}						
						$(from_country_boxId).style.display = 'block';
						$(to_country_boxId).style.display = 'block';
					}
				}
			}
		},
		calculate_route: function(formId, action)
		{
			calculate_route(formId, action);	
		},
		submit_form: function(formId, action)
		{
			submit_form(formId, action);	
		},		
		clear_route: function(type)
		{
			clear_route(type);
		},
		change_route: function(action)
		{
			change_route(action);
		},
		checkform: function(text1,text2,text3,text4,msgOK)
		{
			return checkform(text1,text2,text3,text4,msgOK);
		},
		calculate_total: function(){
		    var total = '0.00';
			//var vat_value = '0.00';
		    
		    if($("agree_emissionsId") && $("agree_emissionsId").checked == true)
			{
		        total = $("amount_valueId").value;
				//vat_value = $("vat_hid_valueId").value;
			}
		    
		    $("amountId").value = total;
		    //$("vat_valueId").innerHTML = vat_value;
	    },
		checkAgreeTermsCheckbox: function(formId, error, error2, errorOK) {
			return checkAgreeTermsCheckbox(formId, error, error2, errorOK);
		}
	};
}();