var cascoCalcObject = Class.create({
	initialize: function(){
		this.dollar = 8.08;
		$('casco_length').selectedIndex = 12;
		$('casco_factor_span').hide();
		
		$('casco_submit').observe('click', this.cascoForm.bind(this));
		$('casco_year').observe('change',this.changeYear.bind(this));
		$('casco_francise').observe('change', this.changeFrancise.bind(this));
		
		this.changeYear();
		this.changeFrancise();
	},
	changeFrancise: function() {
		if ($F('casco_francise') == 0) {
			$('casco_glass').checked = false;
			$('casco_glass').disable();
		}
		else $('casco_glass').enable();
	},
	changeYear: function() {
		if( $F('casco_year') == 1 ) {
			$('casco_damage').checked = false;
			$('casco_damage').disable();
		}
		else $('casco_damage').enable();
	},
	clearForms: function(){
		Form.reset('casco_form');
	},
	cascoForm: function(){
		var stavka = 1;
			
			/*
			 * <option value="0">Легковий автомобіль українського чи російського виробництва</option>
			 * <option value="1">Легковий автомобіль іноземного виробництва</option>
			 * <option value="2">Вантажний автомобіль до 2-ох тон</option>
			 * <option value="3">Вантажний автомобіль більше 2-ох тон</option>
			 * <option value="4">Мікроавтобус (до 9 чоловік)</option>
			 * <option value="5">Автобус < 20</option>
			 * <option value="6">Автобус > 20</option>
			 * <option value="7">Причіп</option>
			 * <option value="8">Мотоцикл</option>
			 * <option value="9">Спец. техніка</option>
			 * <option value="10">Сільгосп. техніка</option>		 
			 */
			
		var base = [
						[// Легковушки
							[ 5.5, 5.04, 4.8, 4.56, 4.32, 3.84, 3.6, 3.26 ],
							[ 5.8, 5.25, 5.00, 4.75, 4.50, 4.00, 3.75, 3.40 ]
						],
						[	// Иноземнки
							[ 6.00,	5.67,	5.40,	5.13,	4.86,	4.32,	4.05,	3.67],
							[6.30,	5.83,	5.55,	5.27,	5.00,	4.44,	4.16,	3.77],
							[6.50,	6.09,	5.80,	5.51,	5.22,	4.64,	4.35,	3.94],
							[7.00,	6.30,	6.00,	5.70,	5.40,	4.80,	4.50,	4.08],
						],
						[	// Грузовики
							[4.00,	3.68,	3.50,	3.33,	3.15,	2.80,	2.63,	2.38],
						],
						[
							[3.50,	3.15,	3.00,	2.85,	2.70,	2.40,	2.25,	2.04],
						],
						[ // Микроавтобус
							[5.25,	4.99,	4.75,	4.51,	4.28,	3.80,	3.56,	3.23],
						],
						[ // Автобус
							[3.60,	3.26,	3.10,	2.95,	2.79,	2.48,	2.33,	2.11],
						],
						[
							[3.30,	2.94,	2.80,	2.66,	2.52,	2.24,	2.10,	1.90],
						],
						[ // Прицепы
							[3.20,	2.84,	2.70,	2.57,	2.43,	2.16,	2.03,	1.84],
						],
						[	// Мото
							[11.70,	11.55,	11.00,	10.45,	9.90,	8.80,	8.25,	7.48],
						],
						[ // Спец.
							[2.42,	2.02,	1.92,	1.82,	1.73,	1.54,	1.44,	1.31],
						],
						[ // C/х
							[2.80,	2.42,	2.30,	2.19,	2.07,	1.84,	1.73,	1.56],
						]
					];
		var factor = 0;
				
		if( $F('casco_cartype') == 0 && $F('casco_cost') < 8000*this.dollar ) factor = 0;
		else if( $F('casco_cartype') == 0 && $F('casco_cost') >= 8000*this.dollar ) factor = 1;
		
		if( $F('casco_cartype') == 1 && $F('casco_cost') < 15000*this.dollar ) factor = 0;
		else if( $F('casco_cartype') == 1 && $F('casco_cost') < 40000*this.dollar ) factor = 1;
		else if( $F('casco_cartype') == 1 && $F('casco_cost') < 60000*this.dollar ) factor = 2;
		else if( $F('casco_cartype') == 1 && $F('casco_cost') >= 60000*this.dollar ) factor = 3;
		
		if( $F('casco_cartype') > 1 ) factor = 0;
		
		if( $F('casco_glass') ) stavka = stavka * 1.05;
		if( $F('casco_europe') ) stavka = stavka * 1.05;
		if( $F('casco_kvartal') ) stavka = stavka * 1.03;
		if( $F('casco_child') ) stavka = stavka * 1.15;
		if( $F('casco_oldyoung') ) stavka = stavka * 1.10;
		if( $F('casco_taxi') ) stavka = stavka * 3;
		// DAMAGES
		//if( $('casco_damage').checked ) stavka = stavka * 1.1;
		if( $F('casco_damage')) stavka = stavka * $F('casco_year') ;
		
		stavka = stavka*base[ $F('casco_cartype') ][ factor ][ $F('casco_francise') ];
		
		stavka = stavka* $F('casco_length');

		var sum = Math.round(($F('casco_cost') * stavka / 100)*100)/100;
		
		$('casco_result').update(sum);
		
		return false;
	},
	checkNum: function(obj){
	  var charpos = obj.value.search("[^0-9]"); 
      if (obj.value.length > 0 && charpos >= 0) {
	  	return false;
	  }
	  return true;
	},
	checkNumAndZap: function(obj){
	  if (obj.value.length > 0) {
	  	var charpos = obj.value.search("[^0-9.]");
	  	if (charpos >= 0 || isNaN(obj.value)) {
	  		return false;
	  	}
	  	return true;
	  } else {
	  	return false;
	  }
	}
});

Event.observe(window, 'load', function() {
	var calc = new cascoCalcObject();
	calc.changeYear;
});
