////////////////////////////////
// КАЛЬКУЛЯТОР
////////////////////////////////

var snum = 1;
var next_id = 1;
var temp_drivers = '';
deleteCookie('stop', "/");
addCookie('step', 1, 1, "/");


var step_data = {
	text: {
		1: 'Выберите параметры автомобиля:',
		2: 'Противоугонные системы автомобиля:',
		3: 'Лица допущенные к управлению:',
		4: 'Дополнительные параметры:',
		5: 'Расчет стоимости КАСКО:'
    },
    img: { 1: 1, 2: 2, 3: 3, 4: 3, 5: 3 },
    values: { 1: 'f_mark', 2: 'f_model', 3: 'f_year', 4: 'f_cost', 5: 'f_security', 6: 'f_payed', '6_1': 'f_bank', 7: 'f_owner', 8: 'f_drivers', 9: 'f_phone', 10: 'f_discount' },
	probeg: {
		1: 'с пробегом',
		2: 'без пробега'
    },
	valute: {
		'rur': 'рублей',
		'usd': 'долларов США',
		'eur': 'ЕВРО'
    },
	stat_security: {
		1: '',
		2: 'Звуковая сигнализация'
    },
	immobilaizer: {
		1: '',
		2: 'Иммобилайзер'
    },
	technoblock: {
		1: '',
		2: 'Техноблок'
    },
	mech_security: {
		1: '',
		2: 'Механическая ПС'
    },
	sput_security: {
		1: '',
		2: 'Спутниковая ПС'
    },
	payed: {
		1: 'Наличные',
		2: 'В кредит'
    },
	garant: {
		1: '',
		2: 'на гарантии'
    },
	strah_sum: {
		1: '',
		2: 'агрегатная страховая сумма'
    },
	franchise: {
		1: '',
		2: 'франшиза'
    },
	owner: {
		1: 'Физическое лицо',
		2: 'Юридическое лицо'
    },
	phone_codes: { 495: 1,496: 1,499:1,985:1,919:1,916:1,910:1,985:1,915:1,901:1,962:1,963:1,964:1,965:1,909:1,903:1,905:1,906:1,925:1,926:1,929:1 }
}

function clear_steps(id){
   var inputs = doc('form_data').getElementsByTagName('input');
   if (inputs.length) for (var i=0; i<inputs.length; i++) if (id == undefined || (id != undefined && inputs[i].id != id)) {
      inputs[i].value = '';
      deleteCookie(inputs[i].id, "/");
   }
   if (id == undefined) {
   	    deleteCookie('step', "/");
   	    deleteCookie('stop', "/");
   	    if (doc('acts')) doc('acts').style.display = 'none';
   	}
}


function format_cost(e){
   var val = e.value;
   if (val.length>0) {
    val = val.replace(/[^0-9]/g, "");
   	var j = 0;  var new_value = '';
   	if (val.length>=3){
   		for (var i=val.length-1; i>=0; i--) {
   		j++;
   		new_value = val.charAt(i)+new_value;
   		if (j%3==0) new_value = ' '+new_value;
   		}
   	} else new_value = val;
    e.value = trim(new_value);
   }
}


/// ВОДИЛЫ
function activate_drivers(){
  var value = doc('multi_drive').value;
  if (value != 2) value = 1;

  var selects = doc('all_drivers').getElementsByTagName('select');
  if (selects.length > 0) for (var i=0; i<selects.length; i++) {
  	 selects[i].disabled = (value == 2) ? true : false;
  }

  var imgs = doc('all_drivers').getElementsByTagName('img');
  var new_value = (value == 2) ? 1 : 2;
  var repl = new RegExp(value,"i");
  if (imgs.length > 0) for (var i=0; i<imgs.length; i++) imgs[i].src = imgs[i].src.replace(repl,new_value);
  doc('add_driver').src = doc('add_driver').src.replace(repl,new_value);
  //if (value == 2) doc('f_drivers').value = 'multi';
  setValue('f_drivers');
}

function allow_act(e){
 e.blur();
 if (/2/i.test(e.getElementsByTagName('img')[0].src)) return true;
 else return false;
}

function del_driver(id){
	var len = get_drivers_length();
	if (len == 1) close_message('info','Удалить всех лиц, допущенных к управлению нельзя!');
	else if (doc('driver_'+id) && doc('all_drivers')) {
		doc('all_drivers').removeChild(doc('driver_'+id));
		set_height();
	}
}

function get_drivers_length(){
	return doc('all_drivers').getElementsByTagName('div').length;
}

function set_drivers_value(){
  var value = '';
  var selects = doc('all_drivers').getElementsByTagName('select');
  if (selects.length > 0) for (var i=0; i<selects.length; i++) {
  	 value += selects[i].value+',';
  	 //doc('f_drivers_v').innerHTML = 'asdasdad'; //+= selects[i].value+'<br>';
  }
  if (value.length>0) value = value.substr(0,value.length-1);
  doc('drivers').value = value;
}

function set_height(){
  var len = get_drivers_length();
  if (len>0) doc('add_driver').style.marginTop = ((len-1)*30)+'px';
  set_drivers_value();
  activate_drivers();
  reloadPage();
}
/*
	    	<div class="driver" id="driver_1">
            	<select class="age" id="age_1" name="age_1">
            		<option value="none">Возраст</option>
            		<option value="18">Возраст</option>
            		<option value="61">61 и более</option>
            	</select>
            	<select class="stage" id="stage_1" name="stage_1">
            		<option value="none">Стаж</option>
            		<option value="0">Нет</option>
            		<option value="">Возраст - 18</option>
            		<option value="10">10 и более</option>
            	</select>
            	<a href="#" class="del_driver" onclick="if (allow_act(this)) del_driver(1); return false;"><img class="image" src="_design/img/act/del_2.png"></a>
	    	</div>
*/
function new_driver(age,stage){
	if (age == undefined) age = -1;
	if (stage == undefined) stage = -1;
    var id = get_drivers_length();
	var div = document.createElement('div');
	div.id = 'driver_'+id;
	div.className = 'driver';
	var select_age = document.createElement('select');
	select_age.id = 'age_'+id;
	select_age.name = 'age_'+id;
	select_age.className = 'age';
	select_age.onchange = new Function("set_stage(this,"+id+"); setValue('f_drivers');");

	var option = document.createElement('option');
    option.value = 'none';
    option.innerHTML = 'Возраст';
	select_age.appendChild(option);
	for (var i=18; i<=61; i++) {
	var option = document.createElement('option');
   	 	option.value = i;
    	option.innerHTML = (i!=61) ? i : '61 и более';
    	option.selected = (i==age || (i==61 && age>=61)) ? true : false;
		select_age.appendChild(option);
	}

	var select_stage = document.createElement('select');
	select_stage.id = 'stage_'+id;
	select_stage.name = 'stage_'+id;
	select_stage.className = 'stage';
	select_stage.onchange = new Function("set_drivers_value(); setValue('f_drivers');");

	var option = document.createElement('option');
    option.value = 'none';
    option.innerHTML = 'Стаж';
	select_stage.appendChild(option);
	var option = document.createElement('option');
    option.value = '0';
    option.selected = (stage==0 || age == 18) ? true : false;
    option.innerHTML = 'Нет';
	select_stage.appendChild(option);
	var from = (age == 18) ? 0 : 1;
	var end = ( ((age-18) < 10 && (age-18) > 0) || age == 18) ? age-18 : 10;
	for (var i=from; i<=end; i++) if (i>0) {
	var option = document.createElement('option');
   	 	option.value = i;
    	option.innerHTML = (i!=10) ? i : '10 и более';
    	option.selected = (i==stage || (i==end && stage>=end)) ? true : false;
		select_stage.appendChild(option);
	}


	var del_href = document.createElement('a');
	del_href.className = 'del_driver';
	del_href.href = '#';
	del_href.onclick = new Function("if (allow_act(this)) del_driver("+id+"); return false;");

	var del_image = document.createElement('img');
	del_image.className = 'image';
	del_image.src = '/img/act/del_2.png';
	del_image.alt = '';

	div.appendChild(select_age);
	div.appendChild(document.createTextNode(' '));
	div.appendChild(select_stage);
	div.appendChild(document.createTextNode(' '));
	del_href.appendChild(del_image);
	div.appendChild(del_href);
	doc('all_drivers').appendChild(div);

    set_height();
}

function set_stage(e,id){
	var select_stage = doc('stage_'+id);
    var stage = select_stage.value;
	select_stage.length = 2;
	var age = (parseInt(e.value)>0) ? parseInt(e.value) : -1;

	var from = (age == 18) ? 0 : 1;
	var end = ( ((age-18) < 10 && (age-18) > 0) || age == 18) ? age-18 : 10;
	for (var i=from; i<=end; i++) if (i>0) {
	var option = document.createElement('option');
   	 	option.value = i;
    	option.innerHTML = (i!=10) ? i : '10 и более';
    	option.selected = (i==stage || (i==end && stage>=end)) ? true : false;
		select_stage.appendChild(option);
	}
	//if (age == 18) select_stage.value = '';
	set_drivers_value();
}

function hide_drivers(){
  var selects = doc('all_drivers').getElementsByTagName('select');
  if (selects.length > 0) for (var i=0; i<selects.length; i++) selects[i].disabled = true;

  var imgs = doc('all_drivers').getElementsByTagName('img');
  var new_value = 1;
  var repl = new RegExp(2,"i");
  if (imgs.length > 0) for (var i=0; i<imgs.length; i++) imgs[i].src = imgs[i].src.replace(repl,new_value);
  doc('add_driver').src = doc('add_driver').src.replace(repl,new_value);

}

///// >>>>> ВОДИТЕЛИ


function get_form(form_id){
	var fdata = doc(form_id);
	var fields_value = new Array(fdata.length);
	for (var i=0; i<fdata.length; i++) fields_value[fdata.elements[i].name] = fdata.elements[i];

return fields_value;
}

function send_order(){

	 	var req = new JsHttpRequest();
		req.open(null, '/js/_ajax/calc/send_order.php', true);
		var fdata = get_form('form_data');
		var data = { 'fdata': fdata, 'fio' : doc('f_fio').value, 'tel' : doc('f_tel').value, 'time' : doc('f_time').value, 'email' : doc('f_email').value };
        req.send(data);

        show_message('Отправление заявки');

    	req.onreadystatechange = function() {
		//doc('debug').innerHTML = req.responseText;


		  if (req.readyState == 4) {
			  var result = req.responseJS.result;
			  var errors = req.responseJS.errors;
	          var focus = req.responseJS.focus;

            if (errors != '') close_message('error', errors, focus);
            else {
              clear_steps();

			  close_message('info','Ваша заявка принята, наш специалист свяжется с Вами в течении 30 минут.');

            }
         }
        }


}



function step_clear(num){
   if (step_data['values'][num]==undefined) return false;
   doc(step_data['values'][num]).value = '';
}

function check_step(){
 var current_step = getCookie('step');
 var stop = getCookie('stop');
 if (stop=='yes' && current_step<=11) { close_message('info','Вернуться к предыдущим пунктам невозможно!<br>Возможно только <a href="#" onclick="begin(); return false;">начать сначала</a>'); return false; }
return true;
}

function begin(){
//if ($('acts')) $('acts').style.display = 'none';
close_message();
clear_steps();
step(1);
}



function load_models(e,model_id){
  var req = new JsHttpRequest();
	var id = e.value;
    if (id == 0){
	var model = doc('model');
	model.length = 1;
    return false;
    }

  	req.open(null, '/js/_ajax/calc/load_models.php', true);
  	///// <<<<< меняется только ////////
    var data = { 'id': id };

    req.send(data);
	show_message();

    req.onreadystatechange = function() {
		if (req.readyState == 4) {

			//document.getElementById('debug').innerHTML = req.responseText;

			var options = req.responseJS.options;
			var ids = req.responseJS.ids;
			var model = doc('model');
			model.length = 1;
			if (options) {
                for (var i=0; i<options.length; i++){
                var option = document.createElement('option');
                option.value = ids[i];
                option.innerHTML = options[i];
                if (model_id>0 && model_id == ids[i]) option.selected = true;
				model.appendChild(option);
				}
				//doc('model').innerHTML = options;
				close_message();
			} //else close_message('error','Ошибка получения данных');





		}
    }

}


function setValue(name,value){
	var field_name = name.replace(/^f_/i,"");
	value = (doc(field_name)) ? doc(field_name).value : '';
    doc(name).value = value;

	if (name.length>0 && name!=undefined) {
		addCookie(name, value, 1, "/");
		var new_value = '';

 		switch(doc(field_name).type){
			case 'hidden': new_value = (step_data[field_name] && step_data[field_name][value]!=undefined) ? step_data[field_name][value] : ''; break;
 			case 'select-one': if (field_name == 'valute') new_value = doc(field_name).options[doc(field_name).selectedIndex].innerHTML;
 							   else if (doc(field_name).selectedIndex!=0) new_value = doc(field_name).options[doc(field_name).selectedIndex].innerHTML; break;
        	default: new_value = value;
        }

	}

}


function set_one(name,id){
  var other = (id == 2) ? 1 : 2;
  var setname = name.substring(2,name.length);
  	var value = doc(name+id).value;
  	if (value == 2) {
		doc(setname).value = id;
  		if (doc(name+other).value == 2) imgFormClick(name+other,'btn_check');
  	} else if (doc(name+other).value == 1) doc(setname).value = 0;

}

function show_step(cur_step,step){
  if (step==undefined) step = getCookie('step');
  if (step == '' || step == undefined || step == null || step > 5) step = 1;
  if (step == 3 && doc('all_drivers').innerHTML=='') setTimeout(driver_action,1);
  if (checkErrors(cur_step) == false) {
	   var n = parseInt(step)-1;
	   // Верхняя полоса Номер, Фон, Текст
	   if (step>=6) { addCookie('stop', 'yes', 1, "/"); doc('num2').style.left = '20px'; }
	   else doc('num2').style.left = '30px';
	   doc('num2').innerHTML = step;
	   doc('h2_text').style.top = (/\<br\>/.test(step_data['text'][step])) ? '16px' : '26px';
	   doc('h2_text').innerHTML = (step_data['text'][step]!=undefined) ? step_data['text'][step] : '';
	   doc('num1').style.backgroundImage = (step_data['img'][step]!=undefined) ? "url('/img/calc/step"+step_data['img'][step]+".jpg')" : "url('/img/calc/step1.jpg')";

	   addCookie('step', step, 1, "/");
  	   reloadPage();
  }
}

function checkErrors(){
  var result = false;

	  		if (doc('mark').value == 0) { close_message('error','Необходимо указать "Марку автомобиля"', 'mark'); return true; }
            if (doc('model').value == 0) { close_message('error','Необходимо указать "Модель автомобиля"', 'model'); return true; }
            if (doc('year').value == 0) { close_message('error','Необходимо указать "Год выпуска"', 'year'); return true; }
            if (doc('cost').value == 0) { close_message('error','Необходимо указать "Стоимость автомобиля"', 'cost'); return true; }
            if (doc('payed').value == 0) { close_message('error','Необходимо указать значение "Автомобиль приобретен"'); return true; }
            if (doc('owner').value == 0) { close_message('error','Укажите кто является собственником автомобиля'); return true; }
			if (doc('multi_drive').value==1){
							var selects = doc('all_drivers').getElementsByTagName('select');
							if (selects.length > 0) for (var i=0; i<selects.length; i++)
							  	 	if (selects[i].value == 'none') { close_message('error','Укажите '+(i%2==0?'возраст':'стаж')+' водителя',selects[i].id); return true; }
							}
			   var town = doc('region').value;
			   if (town == 'other' && (doc('region_other').value == 'введите ваш город' || doc('region_other').value == '')) {
			      close_message('error','Необходимо указать ваш город','region_other'); return true;
			   }

	if (doc('phone').value=='') { close_message('error','Необходимо указать телефон','phone');   return true; }
	else if (doc('phone').value.length!=13) { close_message('error','Телефон указан некорректно','phone'); return true; }

  return result;
}



function other_region(value){
   if (value == 'other') {
      doc('region_other').style.display = '';
   } else {
   	  doc('region_other').style.display = 'none';
   }
}


function send_kasko_result(){
  //if (doc('user_email').value == '') { close_message('error', 'Введите E-mail на который будет выслан расчет стоимости полиса КАСКО', 'user_email'); return false; }
  //if (/^[\w\-\.]{1,32}\@[\w\-\.]+\.[a-zA-Z0-9]{2,5}$/i.test(doc('user_email').value)==false) { close_message('error', 'Некорректно введен email адрес', 'user_email'); return false;}
			 var req = new JsHttpRequest();
			 req.open(null, '/js/_ajax/calc/send_kasko.php', true);
			 var fdata = get_form('form_data');
			 var data = { 'fdata': fdata }
    		 req.send(data);

			    req.onreadystatechange = function() {
					//document.getElementById('debug').innerHTML = req.responseText;

					if (req.readyState == 4) {
			              clear_steps();
						  close_message('info','Номер Вашего расчета <font style=color:red>'+req.responseJS.f_send+'</font>. В течение 2-х часов с Вами свяжется Ваш личный менеджер и сообщит результаты расчета. Если Вам требуется моментальный расчет, то просто позвоните по номеру (495) 988-59-92 и сообщите номер Вашего расчета.','','location.reload();');
						  //setTimeout(function(){location.reload();},10000);
					}
			    }

}


function setVozvrat(id){
	if (id == 4 && doc('vozvrat4').value == 2 && doc('vozvrat5').value == 2) {imgFormClick('vozvrat5','btn_check'); setValue('f_vozvrat5');}
	else if (id == 5 && doc('vozvrat5').value == 2 && doc('vozvrat4').value == 2) {imgFormClick('vozvrat4','btn_check'); setValue('f_vozvrat4');}
}
