		var doupdates = false;
		var objects = new Array();

		var g_maxTerm = 24;
		var g_minTerm = 3;

    //    var micro_commis=0.5
		var micro_terms =[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60];

		var micro_procs=[0.179,0.179,0.179,0.179,0.179,0.179, 0.179, 0.179, 0.179, 0.179, 0.179,0.179,0.179,0.179,0.179,0.179,0.179, 0.179, 0.179, 0.179, 0.179, 0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179,0.179];
		var micro_procsgood=[0.159,0.159,0.159,0.159,0.159,0.159, 0.159, 0.159, 0.159, 0.159, 0.159,0.159,0.159,0.159,0.159,0.159,0.159, 0.159, 0.159, 0.159, 0.159, 0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159];
		var micro_procs2=[0.159,0.159,0.159,0.159,0.159,0.159, 0.159, 0.159, 0.159, 0.159, 0.159,0.159,0.159,0.159,0.159,0.159,0.159, 0.159, 0.159, 0.159, 0.159, 0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159,0.159];
		var micro_procsgood2=[0.139,0.139,0.139,0.139,0.139,0.139, 0.139, 0.139, 0.139, 0.139, 0.139,0.139,0.139,0.139,0.139,0.139,0.139, 0.139, 0.139, 0.139, 0.139, 0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139,0.139];

		var micro_procs_other=[0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15];
		var micro_procs2_other=[0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15];
		var micro_procsgood_other=[0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15];
		var micro_procsgood2_other=[0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14];

		var mini_terms =[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,57,58,59,60];

        var mini_procs=[0.18,0.18,0.18,0.18,0.18,0.18, 0.18, 0.18, 0.18, 0.18, 0.18,0.18,0.18,0.18,0.18,0.18,0.18, 0.18, 0.18, 0.18, 0.18, 0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18];
        var mini_procs2=[0.18,0.18,0.18,0.18,0.18,0.18, 0.18, 0.18, 0.18, 0.18, 0.18,0.18,0.18,0.18,0.18,0.18,0.18, 0.18, 0.18, 0.18, 0.18, 0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18,0.18];
        var mini_procsgood=[0.16,0.16,0.16,0.16,0.16,0.16, 0.16, 0.16, 0.16, 0.16, 0.16,0.16,0.16,0.16,0.16,0.16,0.16, 0.16, 0.16, 0.16, 0.16, 0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16];
        var mini_procsgood2=[0.16,0.16,0.16,0.16,0.16,0.16, 0.16, 0.16, 0.16, 0.16, 0.16,0.16,0.16,0.16,0.16,0.16,0.16, 0.16, 0.16, 0.16, 0.16, 0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16,0.16];
        var mini_procsgood2_other=[0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19];
        var mini_procsgood_other=[0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19,0.19];
        var mini_procs2_other=[0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21];
        var mini_procs_other =[0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21,0.21];

        var commos =0.5;
        var comother =0.6;          //коммисии
         var minicommos =0.4;
        var minicomother =0.1;

		var proc = 0.4;
		var proc_mini = 0.0;

		function getMp_fromAcTermRate(ac, term, rate) {
			return ac*Math.pow(1+rate/12, term)*(rate/12)/(Math.pow(1+rate/12, term)-1);
		}
		function getAc_fromMpTermRate(ac, term, rate) {
			return mp*(Math.pow(1+(rate/12), term) - 1)/(Math.pow(1+(rate/12), term)*(rate/12));
		}


		function getTc_fromAcFp(ac, fp) {
			if ( fp >= 1 )
				return 0;
			return ac/(1-fp);
		}

	function filterChars(field){
		var cfor = /[\D\s]+/ ;
		if(cfor.test(field.value))	{
			set_message('Можно использовать только цифры',true);
			return false;
		}
		var strval = new String(field.value);
		while(!strval.indexOf('0')){
			strval = strval.substr(1);
		}
		field.value = strval;
		//updateTerms();
		return true;
	}

		function kd(e) {
			var kk = 'undef';
			if ( window.event )
				kk = event.keyCode;
			else
				kk = e.which;
			var refr = (( kk > 47 ) && ( kk < 58 )) /*|| (( kk > 95 ) && ( kk < 106 ))*/ || (kk == 13) || (kk == 8) || (kk == 46);
			var ok = refr || (kk == 37) || (kk == 39) || (kk == 0);
			if ( ok ) {
				if ( refr ) updateTerms();
				return true;
			}
			return false;
		}

		function seek(obj) {
			return document.getElementById(obj);
		}
		function getAsInt(objName) {
			var val = parseInt(seek(objName).value);
			if ( ! val > 0 )
				val = 0;
			return val;
		}
		function getAsFloat(objName) {
			var val = parseFloat(seek(objName).value);
			if ( ! val > 0 )
				val = 0;
			return val;
		}
		function myRound(x) {
			return Math.round(x*100)/100.0;
		}
		function formatDate(x) {
			return Math.floor(x/12) + (x-12*Math.floor(x/12) > 0 ? (' ? '+ (x-12*Math.floor(x/12))) : '');
		}
		function makeObj(defaultClass, selectedClass, disabledClass) {
			var res = new Array();
			res.defaultClass = defaultClass;
			res.selectedClass = selectedClass;
			res.disabledClass = disabledClass;
			res.selected = false;
			res.disabled = false;
			return res;
		}
		function updateClass(objName) {
			if ( doupdates == false )
				return;
			var obj = objects[objName];
			var res = obj.defaultClass;
			if ( obj.disabled ) {
				res += ' ' + obj.disabledClass;
				if ( obj.selected )
					res += ' ' + obj.disabledClass + obj.selectedClass;
			}else{
				if ( obj.selected )
					res += ' ' + obj.selectedClass;
			}
//alert(objName +'/'+ obj  +'/'+ obj.selected  +'/'+ obj.disabled +'/'+ res);
			seek(objName).className = res;
		}
		function setSelected(objName, state) {
//		alert(objName + '/' + state);
			objects[objName].selected = state;
			updateClass(objName);
		}
		function setDisabled(objName, state) {
			objects[objName].disabled = state;
			updateClass(objName);
		}
		function setBlurred(objName) {
			setSelected(objName, false);
		}
		function setSelection(objName) {
			setSelected(objName, true);
		}

		objects['FIZ'] = makeObj ('FormField', 'SelectedField', 'Disabled');
		setSelected('FIZ', true);
		objects['YUR'] = makeObj('FormField', 'SelectedField', 'Disabled');
		objects['IND'] = makeObj('FormField', 'SelectedField', 'Disabled');

		objects['MOS'] = makeObj('FormField', 'SelectedField', 'Disabled');
		setSelected('MOS', true);
		objects['INO'] = makeObj('FormField', 'SelectedField', 'Disabled');
/*		objects['RYAZ'] = makeObj('FormField', 'SelectedField', 'Disabled');
		objects['TUL'] = makeObj('FormField', 'SelectedField', 'Disabled');
		objects['YAR'] = makeObj('FormField', 'SelectedField', 'Disabled'); */

		objects['GOOD'] = makeObj('FormField', 'SelectedField', 'Disabled');
		setSelected('GOOD', true);
		objects['BAD'] = makeObj('FormField', 'SelectedField', 'Disabled');

		objects['if_carCost'] = makeObj('FormField', 'SelectedField', 'Disabled');
		setSelected('if_carCost', true);
		objects['if_creditAmount'] = makeObj('FormField', 'SelectedField', 'Disabled');
		objects['if_monthPay'] = makeObj('FormField', 'SelectedField', 'Disabled');

		objects['rc_rub'] = makeObj('FormField', 'SelectedField', 'Disabled');
		setSelected('rc_rub', true);
		objects['rc_usd'] = makeObj('FormField', 'SelectedField', 'Disabled');
		objects['rc_eur'] = makeObj('FormField', 'SelectedField', 'Disabled');

		objects['YearsLabel'] = makeObj('CalendarLabel', '', 'Disabled');
		objects['MonthsLabel'] = makeObj('CalendarLabel', '', 'Disabled');

		objects['pt_rub'] = makeObj('FormField', 'SelectedField', 'Disabled');
		objects['pt_prc'] = makeObj('FormField', 'SelectedField', 'Disabled');
		setSelected('pt_prc', true);

		var ct_unknown = false;
		var fp_unknown = false;

		function set_ct(val) {
			ct_unknown = val;
			seek('Years').disabled = val;
			seek('Months').disabled = val;
			setDisabled('YearsLabel', val);
			setDisabled('MonthsLabel', val);
			updateTerms();
		}

		function set_fp(val) {
			fp_unknown = val;
			seek('PrePay').disabled = val;
			seek('PrePayType2').disabled = val;
			seek('PrePayType1').disabled = val;
			setDisabled('pt_prc', val);
			setDisabled('pt_rub', val);
			updateTerms();
		}
		function getTerm() {
			return getAsInt('Years');
		}
		function getRate(term, fp) {
			var m_term = Math.min(Math.max(Math.round(term / 12), 1), 5);
			var m_fp = Math.min(Math.max(Math.floor(fp*10), 1), 9);
			if ( objects['rc_rub'].selected ) {
				return proc_rur[m_term][m_fp];
			}else{
				return proc_usd[m_term][m_fp];
			}
			return prc_usd[m_term][m_fp];
		}
		var tc_oldVal = 1;
		function getTotalCost(fp) {
		if (objects['MOS'].selected){
		 var commis = (getAsFloat('Incoming')*commos)/100;
		  }else{
		  var commis = (getAsFloat('Incoming')*comother)/100;
		  }
			if ( objects['if_carCost'].selected )
				return (getAsFloat('Incoming')+commis);
			if ( objects['if_creditAmount'].selected ) {
				if ( objects['pt_prc'].selected ) {

					return getTc_fromAcFp((getAsFloat('Incoming'), getAsFloat('PrePay') / 100.0)+commis);
				}else{
					return 1*getAsFloat('Incoming') + 1*getAsFloat('PrePay')+commis;
				}
			}
			return tc_oldVal;
			var rim = getRate(getTerm(), fp);
			return (getAsFloat('Incoming')*(Math.pow(1+rim, getTerm()) - 1)/(Math.pow(1+rim, getTerm())*rim)+commis);
		}
		function getFpPrc() {
//			if ( seek('PrePayType1').checked ) {
			if ( objects['pt_rub'].selected ) {
				var tc;
				if ( objects['if_monthPay'].selected ) {
					tc = tc_oldVal;
				}else{
 					tc = getTotalCost();
 				}
				if ( tc != 0 ) {
					return getAsFloat('PrePay') / tc;
				}
				return 0;
			}
//			if ( seek('PrePayType2').checked ) {
			if ( objects['pt_prc'].selected ) {
				return getAsFloat('PrePay') / 100.0;
			}
		}

		function updateTerms() {
		    if (objects['MOS'].selected){
		     var commis = (getAsFloat('Incoming')*commos)/100;
		     }else{
		     var commis = (getAsFloat('Incoming')*comother)/100;
		     }
			var ac= myRound(getAsFloat('Incoming'));
			if(!check_term()||!check_credit(ac)) return false;
			var sum_ac = ac;
			var mproc = 0;
			var term = getTerm();
			for(i=0; i<60; i++){
				if(term <= micro_terms[i]){

				if (objects['MOS'].selected){
				 if (objects['FIZ'].selected){
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood[i];
				  }else{
				  mproc=micro_procs[i];}
				 }else{
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood2[i];
				  }else{
				  mproc=micro_procs2[i];}
				 }
				}else{
				 if (objects['FIZ'].selected){
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood_other[i];
				  }else{
				  mproc=micro_procs_other[i];}
				 }else{
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood2_other[i];
				  }else{
				  mproc=micro_procs2_other[i];}
				 }
				}
						break;
					}
			}
			if (objects['MOS'].selected){
			    seek('rs_6').innerHTML = myRound(commos) + "%";
			 }else{
			    seek('rs_6').innerHTML = myRound(comother) + "%";
			 }
			seek('rs_5').innerHTML = myRound(mproc *100) + "%";
			var month_pay = (getMp_fromAcTermRate(ac, term, mproc)+commis);
			seek('rs_1').innerHTML = format(myRound(month_pay)+commis);
			seek('graf').style.display = "block";
			seek('warn').style.color= "black";
			var month_proc, sum_month_proc = 0;
			for(i = 1; i<=60; i++){
				if(i <= getTerm()){
					seek('mp_'+ i).innerHTML = format(myRound(month_pay)+commis);
					month_proc = sum_ac*mproc/12+commis;
					sum_month_proc += month_proc;
					seek('proc_'+ i).innerHTML = format(myRound(month_proc)+commis);
					seek('pay_'+ i).innerHTML = format(myRound(month_pay - month_proc)+commis);
					sum_ac -=  month_pay - month_proc ;
					seek('rec_'+ i).innerHTML = format(myRound(sum_ac));
					seek('tab_'+ i).style.color= "black";
				}else{
					seek('mp_'+i).innerHTML =  "0.00";
					seek('proc_'+ i).innerHTML = "0.00";
					seek('pay_'+ i).innerHTML = "0.00";
					seek('rec_'+ i).innerHTML = "0.00";
					seek('tab_'+ i).style.color= "rgb(255, 255, 255)";
				}
			}
			seek('rs_2').innerHTML = format(myRound(sum_month_proc));
			if(ac != 0){
				seek('rs_3').innerHTML = myRound(sum_month_proc / ac *100) + "%";
			}else{
				seek('rs_3').innerHTML = "0%";
			}
		}

		function updateTermsMini() {

		   if (objects['MOS'].selected){
		     var commis = (getAsFloat('Incoming')*minicommos)/100;
		     }else{
		     var commis = (getAsFloat('Incoming')*minicomother)/100;
		     }

			var ac= myRound(getAsFloat('Incoming'));
			if(!check_term_mini()||!check_credit_mini(ac)) return false;

			var sum_ac = ac;
			var mproc = 0;
			var term = getTerm();
			for(i=0; i<60; i++){
				if(term <= mini_terms[i]){
						if (objects['MOS'].selected){
				 if (objects['IND'].selected || objects['YUR'].selected){
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood[i];
				  }else{
				  mproc=micro_procs[i];}
				 }else{
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood2[i];
				  }else{
				  mproc=micro_procs2[i];}
				 }
				}else{
				 if (objects['IND'].selected || objects['YUR'].selected){
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood_other[i];
				  }else{
				  mproc=micro_procs_other[i];}
				 }else{
				  if(objects['GOOD'].selected){
				   mproc=micro_procsgood2_other[i];
				  }else{
				  mproc=micro_procs2_other[i];}
				 }
				}
						break;
					}
			}
			if (objects['MOS'].selected){
			    seek('rs_6').innerHTML = myRound(minicommos) + "%";
			 }else{
			    seek('rs_6').innerHTML = myRound(minicomother) + "%";
			 }
			seek('rs_5').innerHTML = myRound(mproc *100) + "%";

			var month_pay = getMp_fromAcTermRate(ac, term, mproc)+commis;
			seek('rs_1').innerHTML = format(myRound(month_pay)+commis);
			seek('graf').style.display = "block";
			seek('warn').style.color= "black";
			var month_proc, sum_month_proc = 0;
			for(i = 1; i<=60; i++){
				if(i <= getTerm()){
					seek('mp_'+ i).innerHTML = format(myRound(month_pay)+commis);
					month_proc = sum_ac*mproc/12+commis;
					sum_month_proc += month_proc;
					seek('proc_'+ i).innerHTML = format(myRound(month_proc)+commis);
					seek('pay_'+ i).innerHTML = format(myRound(month_pay - month_proc)+commis);
					sum_ac -=  month_pay - month_proc ;
					seek('rec_'+ i).innerHTML = format(myRound(sum_ac));
					seek('tab_'+ i).style.color= "black";
				}else{
					seek('mp_'+ i).innerHTML = "0.00";
					seek('proc_'+ i).innerHTML = "0.00";
					seek('pay_'+ i).innerHTML = "0.00";
					seek('rec_'+ i).innerHTML = "0.00";
					seek('tab_'+ i).style.color= "rgb(255, 255, 255)";
				}
			}
			seek('rs_2').innerHTML = format(myRound(sum_month_proc));
		/*	if(ac != 0){
				seek('rs_3').innerHTML = myRound(sum_month_proc / ac *100) + "%";
			}else{
				seek('rs_3').innerHTML = "0%";
			}*/
		}

		function changeMonth (delta) {
			if ( ct_unknown )
				return false;
			var dest = 'Months';
			var val = getAsInt(dest);
			val += delta;

			if ( val >= 12 ) {
				if (changeYear(+1, false) ) {
					val = 0;
				}else{
					val = 11;
				}
			}
			if ( val <  0) {
				if (changeYear(-1, false) ) {
					val = 11;
				}else{
					val = 0;
				}
			}
			seek(dest).value = val;
			updateTerms();
			return true;
		}

		function changeYear (delta, up) {
			if ( ct_unknown )
				return false;
			var dest = 'Years';
			var val = getAsInt(dest);
			val += delta;
			if ( val <  0) {
				seek(dest).value = 0;
				return false;
			}
			seek(dest).value = val;
			if ( up == undefined )
				updateTerms();
			return true;
		}

		function printr(obj) {
			var r = '<pre>';
			for (i in obj ) {
				r += i + ' = ' + obj[i] + '\n';
			}
			r+='</pre>';
			window.open('about:blank', 'bbb').document.write(r);
//			return alert(r);
		}

		function bound(x, left, right) {
			return (x >= left) && (x <= right);
		}
//		printr(seek('').style);
		doupdates = true;

		function set_message(msg,flag){
			seek('message').innerHTML = msg;
			if(flag==true) seek('message_box').style.display = '';
			else seek('message_box').style.display = 'none';

		}
		function format(number){
			var nint = Math.floor(number);
			var str = new String('' + nint);
			var start = str.length-3;
			var val = '';
			while(str.length>3){
				val = ' ' + str.substr(start,3) + val;
				str = str.substr(0,start);
				start = str.length-3;
			}
			val = str + val;
			var rem = Math.floor((number-Math.floor(number))*100);
			return val+(rem>0?(rem>9?'.' + rem:'.0'+rem):'.00') ;
		}

		function check_credit(val){
		 if(objects['BAD'].selected){
				if((val<30000 || val>300000)&&val!=0) {
					set_message('Размер кредита должен быть не менее 30 000 руб. и не более 300 000 руб.',true);
					return false;
				}	else {
					set_message('',false);
					return true;
				}
		 }else{
		   if((val<30000 || val>500000)&&val!=0) {
					set_message('Размер кредита должен быть не менее 30 000 руб. и не более 500 000 руб.',true);
					return false;
				}	else {
					set_message('',false);
					return true;
				}
		 }
		}

		function check_credit_mini(val){
				if((val<300000 || val>900000)&&val!=0) {
					set_message('Размер кредита должен быть не менее 300 000 руб. и не более 900 000 руб.',true);
					return false;
				}	else {
					set_message('',false);
					return true;
				}
		}

		var MINPRC = 0.1;
		function check_firstpay(val){
				if(getFpPrc() <MINPRC) {
					if(objects['pt_prc'].selected) set_message('??????????????  ?????? ?????? ?????????? ?? ????? '+Math.ceil(MINPRC*100)+'% ?? ????????? ??????????',true);
					else set_message('??????????????  ?????? ?????? ?????????? ?? ????? ' +  format(myRound(val*MINPRC)) + ' ???.',true);
					return false;
				} else if(getFpPrc() > 1.0){
					set_message('??????????????  ?????? ?? ????? ????????? ????????? ??????????',true);
					return false;
				}else {
					set_message('',false);
					return true;
				}
		}

		function check_term(){
		 if(objects['FIZ'].selected){
			if(getTerm()<3||getTerm()>60) {
				set_message('Кредит выдаётся на срок не менее 3 и не более 60 месяцев',true);
				return false;
			}else{
				set_message('',false);
				return true;
			}
		  }else{
		    if(getTerm()<3||getTerm()>60) {
				set_message('Кредит выдаётся на срок не менее 3 и не более 60 месяцев',true);
				return false;
			}else{
				set_message('',false);
				return true;
			}
		  }
		}

		function check_term_mini(){
			if(getTerm()<3||getTerm()>60) {
				set_message('Кредит выдаётся на срок не менее 3 и не более 60 месяцев',true);
				return false;
			}else{
				set_message('',false);
				return true;
			}
		}
