var calc = {
  curr:{},
  curr_sel_els:function(){
    var re = [];
    for( var k in this.curr ){
      re.push( DOM.make( {
        tag:'option',
        text:k,
        prop:{
          value:this.curr[ k ]
        }
      } ) );
    }
    return re;
  }, // curr_sel_els
	
	nekust_ip:function( par ){
		return nekust_ip( par );
	}, // nekust_ip
	 
  term_sel_els:function( s, e, st ){
    var re = [];
    for( var i = s; i <= e; i = i + st ){
      re.push( DOM.make( {
        tag:'option',
        text:i,
        prop:{
          value:i
        }
      } ) );
    }
    return re;
  }, //
  
  lizings:function( par ){
    function calc_rez(){
      var sum = els.sum.value = Math.round( Number( els.price.value ) - Number( els.pirm_iemaksa.value ) );
      if( isNaN( els.sum.value ) ) els.sum.value = '';
      var men = Number( els.time.value );
      if( men == 0 ){
        els.rez.value = '';
        return;
      }
      var sum_proc = 0; 
      for( var i = 1; i <= men; i++ ){
        sum_proc += Number( els.proc.value ) / 100 * sum;        
        sum -= Math.round( Number( els.sum.value ) / men );        
      }
      els.rez.value = Math.round( ( Number( els.sum.value ) + sum_proc ) / men * 100 ) / 100;
      if( isNaN( els.rez.value ) ) els.rez.value = '';
    }
    var els = {};
    var re = DOM.make( {
      tag:'div',
      className:'zipcalc',
      els:[
        DOM.make( {
          tag:'table',
          prop:{
            cellSpacing:'0'
          },
          els:[
            DOM.make( {
              tag:'tbody',
              els:[
                DOM.make( {
                  tag:'tr',
                  className:'zipcalc_row_re',
                  els:[
                    DOM.make( {
                      tag:'td',
                      className:'zipcalc_row_name',
                      text:dic( 'Lizinga kalkulators' ),
                      prop:{                                                    
                        colSpan:'3',
                        style:{
                          textAlign:'center'
                        }
                      }
                    } )  
                  ]
                } ),
                DOM.make( {
                  tag:'tr',
                  els:[
                    DOM.make( {
                      tag:'td',
                      text:dic( 'Cena' ),
                      className:'zipcalc_row_name'
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[
                        els.price = DOM.make( {
                          tag:'input',
                          className:'inp',
                          prop:{
                            value:par.price || '',
                            onkeyup:function(){
                              els.pirm_iemaksa.value = Math.round( Number( els.pirm_iemaksap.value ) / 100 * Number( els.price.value ) );
                              if( isNaN( els.pirm_iemaksa.value ) ) els.pirm_iemaksa.value = '';
                              calc_rez();
                            },
                            onchange:function(){
                              this.onkeyup();
                            }
                          }
                        } )
                      ]
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[ 
                        els.currency = DOM.make( {
                          tag:'select',
                          className:'inp',
                          els:calc.curr_sel_els(),
                          prop:{
                            onchange:function(){
                              els.price.value = Math.round( Number( els.price.value ) * this.value_ / this.value );
                              els.price.onchange();
                              this.value_ = this.value; 
                              if( isNaN( els.price.value ) ) els.price.value = '';
                              els.re_curr.innerHTML = this.childNodes[ this.selectedIndex ].innerHTML;
                              els.curr1.innerHTML =els.re_curr.innerHTML;
                              els.curr2.innerHTML =els.re_curr.innerHTML;
                              calc_rez();
                            }
                          }
                        } )
                      ]
                    } )
                  ]
                } ),
                DOM.make( {
                  tag:'tr',
                  els:[
                    DOM.make( {
                      tag:'td',
                      text:dic( 'Pirma iemaksa' ),
                      className:'zipcalc_row_name'
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[ 
                        els.pirm_iemaksap = DOM.make( {
                          tag:'input',
                          className:'inp',
                          prop:{
                            value:'10',
                            onkeyup:function(){
                              els.pirm_iemaksa.value = Math.round( Number( els.pirm_iemaksap.value ) / 100 * Number( els.price.value ) );
                              if( isNaN( els.pirm_iemaksa.value ) ) els.pirm_iemaksa.value = ''; 
                              calc_rez();
                            },
                            onchange:function(){
                              this.onkeyup();
                            }
                          }
                        } )
                      ]
                    } ),
                    DOM.make( {
                      tag:'td',
                      text:'%'
                    } ) 
                  ]
                } ),                  
                DOM.make( {
                  tag:'tr',
                  els:[
                    DOM.make( {
                      tag:'td',
                      text:dic( 'Pirma iemaksa' ),
                      className:'zipcalc_row_name'
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[ 
                        els.pirm_iemaksa = DOM.make( {
                          tag:'input',
                          className:'inp',
                          prop:{
                            value:par.price ? Math.round( par.price * 0.1 ) : '',
                            onkeyup:function(){
                              els.pirm_iemaksap.value = Math.round( Number( this.value ) / Number( els.price.value ) * 10000 ) / 100;
                              if( isNaN( els.pirm_iemaksap.value ) ) els.pirm_iemaksap.value = ''; 
                              calc_rez();
                            },
                            onchange:function(){
                              this.onkeyup();
                            }
                          }
                        } )
                      ]
                    } ),
                    els.curr1 = DOM.make( {
                      tag:'td'
                    } )
                  ]
                } ),
                DOM.make( {
                  tag:'tr',
                  els:[
                    DOM.make( {
                      tag:'td',
                      text:dic( 'Lizinga summa' ),
                      className:'zipcalc_row_name'
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[ 
                        els.sum = DOM.make( {
                          tag:'input',
                          className:'inp',
                          prop:{
                            readOnly:true,
                            value:par.price ? ( els.price.value - els.pirm_iemaksa.value ) : '',
                            style:{
                              color:'#ccc'
                            }
                          }
                        } )
                      ]
                    } ),
                    els.curr2 = DOM.make( {
                      tag:'td'
                    } )
                  ]
                } ),
                DOM.make( {
                  tag:'tr',
                  els:[
                    DOM.make( {
                      tag:'td',
                      text:dic( 'Procentuala likme' ) + ' ' + dic( 'menesii' ),
                      className:'zipcalc_row_name'
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[ 
                        els.proc = DOM.make( {
                          tag:'input',
                          className:'inp',
                          prop:{
                            value:1,
                            onkeyup:function(){
                              this.value = this.value.replace( ',', '.' );
                              calc_rez();
                            },
                            onchange:function(){
                              this.onkeyup();
                            }
                          }
                        } )
                      ]
                    } ),
                    DOM.make( {
                      tag:'td',
                      text:'% ' + dic( 'no atlikuma' )  
                    } )
                  ]
                } ),
                DOM.make( {
                  tag:'tr',
                  els:[
                    DOM.make( {
                      tag:'td',
                      text:dic( 'Termins' ),
                      className:'zipcalc_row_name'                                                
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[ 
                        els.time = DOM.make( {
                          tag:'select',
                          className:'inp',
                          els:this.term_sel_els( 3, 60, 3 ),
                          prop:{
                            value:36,
                            onchange:calc_rez,
                            onkeyup:calc_rez
                          }
                        } )
                      ]
                    } ),
                    DOM.make( {
                      tag:'td',
                      text:dic( 'meeneshi' )
                    } )
                  ]
                } ),
                DOM.make( {
                  tag:'tr',
                  className:'zipcalc_row_re',
                  els:[
                    DOM.make( {
                      tag:'td',
                      text:dic( 'Ikmenesa maksajums' ),
                      className:'zipcalc_row_name'
                    } ),
                    DOM.make( {
                      tag:'td',
                      els:[ 
                        els.rez = DOM.make( {
                          tag:'input',
                          className:'inp',
                          prop:{
                            readOnly:true,
                            style:{
                              fontWeight:'bold'
                            }
                          }
                        } )
                      ]
                    } ),
                    els.re_curr = DOM.make( {
                      tag:'td'
                    } )
                  ]
                } )
              ]                
            } ) // tbody
          ] 
        } ) // table   
      ]
    } ); // div
    re.Append( par.node );
    if( par.currency ) els.currency.value = calc.curr[ par.currency ];
    els.currency.value_ = els.currency.value;    
    els.currency.onchange();
    return re;
  } // lizings
};

var nekust_ip = function( par ){
	var els = {};
	function calc_rez(){
		els.sum.value = Math.round( Number( els.price.value ) - Number( els.pirm_iemaksa.value ) );
		if( isNaN( els.sum.value ) ) els.sum.value = '';
		var men = Number( els.time.value ) * 12;
		if( men == 0 ){
			els.rez.value = '';
			return;
		} 
		var p = Number( els.proc.value ) / 1200
		var k = 1 + p;
		var pw = Math.pow( k, men );      
		els.rez.value = Math.round( Number( els.sum.value ) * ( p * pw ) / ( pw - 1 ) );
		if( isNaN( els.rez.value ) ) els.rez.value = '';                 
	};      
	var re = DOM.make( {
		tag:'div',
		className:'zipcalc',        
		els:[
			DOM.make( {
				tag:'table',
				prop:{
					cellSpacing:'0'
				},
				els:[
					DOM.make( {
						tag:'tbody',
						els:[
							DOM.make( {
								tag:'tr',
								className:'zipcalc_row_re',
								els:[
									DOM.make( {
										tag:'td',
										className:'zipcalc_row_name',
										text:dic( 'Kredita kalkulators' ),
										prop:{                                                    
											colSpan:'3',
											style:{
												textAlign:'center'
											}
										}
									} )  
								]
							} ),
							DOM.make( {
								tag:'tr',
								els:[
									DOM.make( {
										tag:'td',
										text:dic( 'Objekta cena' ),
										className:'zipcalc_row_name'
									} ),
									DOM.make( {
										tag:'td',
										els:[
											els.price = DOM.make( {
												tag:'input',
												className:'inp',
												prop:{
													value:par.price || '',
													onkeyup:function(){
														els.pirm_iemaksa.value = Math.round( Number( els.pirm_iemaksap.value ) / 100 * Number( els.price.value ) );
														if( isNaN( els.pirm_iemaksa.value ) ) els.pirm_iemaksa.value = '';
														calc_rez();
													},
													onchange:function(){
														this.onkeyup();
													}
												}
											} )
										]
									} ),
									DOM.make( {
										tag:'td',
										els:[ 
											els.currency = DOM.make( {
												tag:'select',
												className:'inp',
												els:calc.curr_sel_els(),
												prop:{
													onchange:function(){
														els.price.value = Math.round( Number( els.price.value ) * this.value_ / this.value );
														els.price.onchange();
														this.value_ = this.value; 
														if( isNaN( els.price.value ) ) els.price.value = '';
														els.re_curr.innerHTML = this.childNodes[ this.selectedIndex ].innerHTML;
														els.curr1.innerHTML =els.re_curr.innerHTML;
														els.curr2.innerHTML =els.re_curr.innerHTML;
														calc_rez();
													}
												}
											} )
										]
									} )
								]
							} ),
							DOM.make( {
								tag:'tr',
								els:[
									DOM.make( {
										tag:'td',
										text:dic( 'Pirma iemaksa' ),
										className:'zipcalc_row_name'
									} ),
									DOM.make( {
										tag:'td',
										els:[ 
											els.pirm_iemaksap = DOM.make( {
												tag:'input',
												className:'inp',
												prop:{
													value:'10',
													onkeyup:function(){
														els.pirm_iemaksa.value = Math.round( Number( els.pirm_iemaksap.value ) / 100 * Number( els.price.value ) );
														if( isNaN( els.pirm_iemaksa.value ) ) els.pirm_iemaksa.value = ''; 
														calc_rez();
													},
													onchange:function(){
														this.onkeyup();
													}
												}
											} )
										]
									} ),
									DOM.make( {
										tag:'td',
										text:'%'
									} ) 
								]
							} ),                  
							DOM.make( {
								tag:'tr',
								els:[
									DOM.make( {
										tag:'td',
										text:dic( 'Pirma iemaksa' ),
										className:'zipcalc_row_name'
									} ),
									DOM.make( {
										tag:'td',
										els:[ 
											els.pirm_iemaksa = DOM.make( {
												tag:'input',
												className:'inp',
												prop:{
													value:par.price ? Math.round( par.price * 0.1 ) : '',
													onkeyup:function(){
														els.pirm_iemaksap.value = Math.round( Number( this.value ) / Number( els.price.value ) * 10000 ) / 100;
														if( isNaN( els.pirm_iemaksap.value ) ) els.pirm_iemaksap.value = ''; 
														calc_rez();
													},
													onchange:function(){
														this.onkeyup();
													}
												}
											} )
										]
									} ),
									els.curr1 = DOM.make( {
										tag:'td'
									} )
								]
							} ),
							DOM.make( {
								tag:'tr',
								els:[
									DOM.make( {
										tag:'td',
										text:dic( 'Kredita summa' ),
										className:'zipcalc_row_name'
									} ),
									DOM.make( {
										tag:'td',
										els:[ 
											els.sum = DOM.make( {
												tag:'input',
												className:'inp',
												prop:{
													readOnly:true,
													value:par.price ? ( els.price.value - els.pirm_iemaksa.value ) : '',
													style:{
														color:'#ccc'
													}
												}
											} )
										]
									} ),
									els.curr2 = DOM.make( {
										tag:'td'
									} )
								]
							} ),
							DOM.make( {
								tag:'tr',
								els:[
									DOM.make( {
										tag:'td',
										text:dic( 'Procentuala likme' ),
										className:'zipcalc_row_name'
									} ),
									DOM.make( {
										tag:'td',
										els:[ 
											els.proc = DOM.make( {
												tag:'input',
												className:'inp',
												prop:{
													value:5.7,
													onkeyup:function(){
														this.value = this.value.replace( ',', '.' );
														calc_rez();
													},
													onchange:function(){
														this.onkeyup();
													}
												}
											} )
										]
									} ),
									DOM.make( {
										tag:'td',
										text:'%'
									} )
								]
							} ),
							DOM.make( {
								tag:'tr',
								els:[
									DOM.make( {
										tag:'td',
										text:dic( 'Termins' ),
										className:'zipcalc_row_name'                                                
									} ),
									DOM.make( {
										tag:'td',
										els:[ 
											els.time = DOM.make( {
												tag:'input',
												className:'inp',
												prop:{
													value:20,
													onkeyup:calc_rez,
													onchange:calc_rez
												}
											} )
										]
									} ),
									DOM.make( {
										tag:'td',
										text:dic( 'gadi' )
									} )
								]
							} ),
							DOM.make( {
								tag:'tr',
								className:'zipcalc_row_re',
								els:[
									DOM.make( {
										tag:'td',
										text:dic( 'Ikmenesa maksajums' ),
										className:'zipcalc_row_name'
									} ),
									DOM.make( {
										tag:'td',
										els:[ 
											els.rez = DOM.make( {
												tag:'input',
												className:'inp',
												prop:{
													readOnly:true,
													style:{
														fontWeight:'bold'
													}
												}
											} )
										]
									} ),
									els.re_curr = DOM.make( {
										tag:'td'
									} )
								]
							} )
						]                
					} ) // tbody
				]
			} )        
		]
	} );
	re.Append( par.node );
	if( par.currency ) els.currency.value = calc.curr[ par.currency ];
	els.currency.value_ = els.currency.value;
	els.currency.onchange();
	return re;                  
}; // nekust_ip