var calculator	= function() {
	
	var idSuffix = 'Id';
	var idChart = 'flashcontent';
	var afterSaveLocationId = 'locationId';
	var chartObj = 'da';
	
	var calculate = function(formId, action) {
		
		var url = wwwbase.get() + 'calculators/' + action + '/';
		var pars = $(formId).serialize();
		
		new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: recieve } );	
		
	};
	
	var recieve = function(request) {		
		eval('var result = ' + request.responseText + ';');
		
		calculator.setChart(result['action'], '200', '300', '0');
	
		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 setChart = function(actions, width, height, hasCo2Cmissionen) {
		if ($(idChart)) {
			if(typeof chartObj != 'object') {
				chartObj = new SWFObject(wwwbase.get() + 'amcolumn/amcolumn.swf', 'amcolumn', width, height, '8', '#FFFFFF');
				chartObj.addParam("wmode","transparent");
				chartObj.addVariable('path', wwwbase.get() + 'amcolumn/');
				chartObj.addVariable('settings_file', escape(wwwbase.get() + 'amcolumn/amcolumn_settings.xml'));
				chartObj.addVariable('preloader_color', '#999999');
				chartObj.addVariable("width",width);
				chartObj.addVariable("height",height);
			}
			param = '?actions=' + actions + '&' + 'has_co2_emissionen=' + hasCo2Cmissionen + '&' + Math.random();
			chartObj.addVariable('data_file', escape(wwwbase.get() + 'calculators/chart_data/' + param));
			chartObj.write(idChart);
		}
	};
	
	var checkCompensateCheckboxes = function(formId, error, errorOK) {
		for ( var i=0; i<$(formId).length; i++ ) {
		    if($(formId)[i].name == "Compensate[]" && $(formId)[i].checked == true)
		        return true;
		}
		popup.showAlert(error, errorOK);
		return false;
	};
	
	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 {	
		calculate: function(formId, action) {
			calculate(formId, action);
		},		
		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;
			$(formId).submit();
		},
		
		estimationCar: function(receiverId, title) {
			popup.showPopup('calculators', 'estimation_car', 'receiverId=' + receiverId + '&title=' + title);
		},
		estimationCarSetResult: function(resultId, receiverId) {
			
			$(receiverId).value = $(resultId).value;
			$(receiverId).onkeyup();
			popup.closePopup();
		},
		setCarsizeConsume: function(resultId, receiverId) {
			
			$(receiverId).value = $(resultId).value;
		},
		
		setChart: function(actions, width, height, hasCo2Cmissionen) {
			setChart(actions, width, height, hasCo2Cmissionen);
		},
		
		checkCompensateCheckboxes: function(formId, error, errorOK) {
			return checkCompensateCheckboxes(formId, error, errorOK);
		},
		
		checkAgreeTermsCheckbox: function(formId, error, error2, errorOK) {
			return checkAgreeTermsCheckbox(formId, error, error2, errorOK);
		},
		
		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;
	    }
	};
}();