infobubble = function() {
	this.init();
}

infobubble.prototype = {

	init : function() {

		var mainform = document.getElementById('mainform');

		if ( ! mainform ) {
			return false;
		}

		var field = mainform.getElementsByTagName('fieldset');
		var arrInfo = field[0].getElementsByTagName('a');

		for (var i = 0, il = arrInfo.length; i < il; i++) {
			
			document.getElementById('bubble' + i).getElementsByTagName('a')[0].onclick = ( function( arrActInfo ) {
				return function() {
					
					this.parentNode.style.display = 'none';
					arrActInfo.className = '';
					return false;
					
				}
			} ) ( arrInfo[i] );
			
			arrInfo[i].onclick = ( function(i, arrInfo) {
				return function() {
					
					for ( var e = 0, el = arrInfo.length; e < el; e++ ) {
						if ( e != i ) {
							document.getElementById('bubble' + e).style.display = 'none';
							arrInfo[e].className = '';				
						}
					}
					
					if ( this.className == 'sel' ) {
						document.getElementById('bubble' + i).style.display = 'none';
						this.className = '';
					} else {
						document.getElementById('bubble' + i).style.display = 'block';
						this.className = 'sel';
					}
					return false;
				}
			} ) ( i, arrInfo );
		}

	}
}

var infobubble = new infobubble();

check = function() {
	this.init();
}

check.prototype = {

	init: function() {

		var mainform = this.getForm();
		if ( mainform ) {
			mainform.onsubmit = function() {
				return check.checkValues();
			}

			var input_list = mainform.getElementsByTagName( 'input' );
			for ( var i = 0; i < input_list.length; i++ ) {
				this.clearNotNums( input_list[ i ] );
				this.separateNums( input_list[ i ] );
				input_list[ i ].onblur = function() {
					check.clearNotNums( this );
					check.separateNums( this );
				}
				input_list[ i ].onfocus = function() {
					check.clearNotNums( this );
				}
			}
		}
	},
	getForm: function() {

		var mainform = document.getElementById( 'mainform' );
		return mainform;
	},
	separateNums: function( object ) {
		var string = String( object.value );
		var rgx = /(\d+)(\d{3})/;
		while ( rgx.test( string ) ) {
			string = string.replace( rgx, '$1' + ' ' + '$2' );
		}
		object.value = string;
	},
	clearNotNums: function( object ) {
		var string = String( object.value );
		var rgx = /\D+/;
		while ( rgx.test( string ) ) {
			string = string.replace( rgx, '' );
		}
		object.value = string;
	},
	checkValues: function() {

		var mainform = this.getForm();
		if ( ! mainform ) {
			return false;
		}

		$has_error = false;
		$error_message = 'Kérem javítsa a következő hibá(ka)t:<br/>';

		var input_list = mainform.getElementsByTagName( 'input' );
		for ( var i = 0; i < input_list.length; i++ ) {
			this.clearNotNums( input_list[ i ] );
			if ( input_list[ i ].value.length != 0 && ! input_list[ i ].value.match( /\d+/g ) ) {
				input_list[ i ].value = 0;
				$has_error = true;
			}
		}
		if ( $has_error ) {
			$error_message += 'Kérem csak számokat adjon meg!<br/>';
		}
		if ( mainform.mf_hitelcel.options[ mainform.mf_hitelcel.selectedIndex ].value == '_empty' ) {
			$has_error = true;
			$error_message += 'Válasszon hitelcélt!<br/>';
		}
		if ( mainform.mf_munkaber.value == '' && mainform.mf_munkaber_apeh.value == '' && mainform.mf_ingatlanfed.value == '' ) {
			$has_error = true;
			//$error_message += 'Adjon meg havi jövedelmet vagy ingatlanfedezetet!<br/>';
			$error_message += 'Adja meg az ingatlanfedezet értékét!<br/>';
		}
		if ( mainform.mf_haztartkeres.value < 1 ) {
			$has_error = true;
			$error_message += 'Adja meg a háztartásban élő keresők számát!<br/>';
		}
		if ( mainform.mf_eletkor.value < 18 ) {
			$has_error = true;
			$error_message += 'Az életkor nem lehet 18 évnél kisebb!<br/>';
		}
		if ( mainform.mf_ido.value < 1 ) {
			$has_error = true;
			$error_message += 'Adja meg a futamidőt!<br/>';
		}

		if ( ! $has_error ) {
			return true;
		}

		$error_message = '<p>' + $error_message + '</p><div></div>';

		$error_bubble = document.getElementById( 'bubbleerror' );
		$error_bubble.innerHTML = $error_message;

		$error_bubble.style.display = 'block';

		return false;
	}
}

var check = new check();

tk_window = function() {
	this.resize();
}

tk_window.prototype = {

	resize: function() {
	    var agent = navigator.userAgent;
		if( agent.search( /iphone/i ) < 0 ) {
			var node = document.getElementById( 'torlesztesi_window' );
			if( node ) {
				var height = ( typeof window.innerHeight != 'undefined' ? window.innerHeight : document.documentElement.clientHeight );
				var width = ( typeof window.innerWidth != 'undefined' ? window.innerWidth : document.documentElement.clientWidth );
				height -= ( 248 + 150 );
				if( height < 300 ) height = 300;
				node.style.height = height + 'px';
				node.style.overflowY = 'scroll';
			}
		} 
	}
}

var tk_window = new tk_window();

sc_redemption = function() {
	this.init();
}

sc_redemption.prototype = {

	lang: undefined,
	init: function() {

		var mainform = document.getElementById( 'redemption-form' );
		if ( mainform ) {
			this.separateInputs( mainform );			
		}
	},
	setLang: function( lang ) {
		this.lang = lang;
	},
	separateInputs: function( form ) {
		var t = this;
		var input_list = form.getElementsByTagName( 'input' );
		for ( var i = 0; i < input_list.length; i++ ) {
			t.separateNums( input_list[ i ] );
			input_list[ i ].onblur = function() {
				t.separateNums( this );
				t.sendRequest();
			}
		}
	},
	separateNums: function( object ) {
		var string = String( object.value );
		var rgx = /(\d+)(\d{3})/;
		while ( rgx.test( string ) ) {
			string = string.replace( rgx, '$1' + ' ' + '$2' );
		}
		object.value = string;
	},
	clearSpaces: function( object ) {
		var string = String( object.value );
		var rgx = /\s+/;
		while ( rgx.test( string ) ) {
			string = string.replace( rgx, '' );
		}
		object.value = string;
	},
	increase: function( node_id, value ) {
		var node = document.getElementById( node_id );
		if ( node ) {
			var v = this.clearSpaces( node );
			var val = parseFloat( node.value ) + parseFloat( value );
			node.value = val;
			this.separateNums( node );
		}
		if ( ! this.check() ) {
			this.sendRequest()
		}
	},
	decrease: function( node_id, value ) {
		var node = document.getElementById( node_id );
		if ( node ) {
			var v = this.clearSpaces( node );
			var val = parseFloat( node.value ) - parseFloat( value );
			node.value = val;
			this.separateNums( node );
		}
		if ( ! this.check() ) {
			this.sendRequest()
		}
	},
	check: function() {
	},
	sendRequest: function() {
		var mainform = document.getElementById( 'redemption-form' );
		if ( !mainform ) {
			return;
		}
		
		var tk_hitelosszeg = document.getElementById( 'tk_hitelosszeg' );
		var tk_deviza_vetel = document.getElementById( 'tk_deviza_vetel' );
		var tk_deviza_eladas = document.getElementById( 'tk_deviza_eladas' );
		var tk_deviza_ea_valt = document.getElementById( 'tk_deviza_ea_valt' );
		var tk_eves_kamatlab = document.getElementById( 'tk_eves_kamatlab' );
		var tk_eves_kaml_valt = document.getElementById( 'tk_eves_kaml_valt' );
		var tk_hitel_futamido = document.getElementById( 'tk_hitel_futamido' );
		var tk_ing_piaci_ert = document.getElementById( 'tk_ing_piaci_ert' );
		var tk_ing_pert_valt = document.getElementById( 'tk_ing_pert_valt' );
		var tk_netto_jovedelem = document.getElementById( 'tk_netto_jovedelem' );
		var tk_netto_jov_valt = document.getElementById( 'tk_netto_jov_valt' );
		
		this.clearSpaces( tk_hitelosszeg );
		this.clearSpaces( tk_deviza_vetel );
		this.clearSpaces( tk_deviza_eladas );
		this.clearSpaces( tk_deviza_ea_valt );
		this.clearSpaces( tk_eves_kamatlab );
		this.clearSpaces( tk_eves_kaml_valt );
		this.clearSpaces( tk_hitel_futamido );
		this.clearSpaces( tk_ing_piaci_ert );
		this.clearSpaces( tk_ing_pert_valt );
		this.clearSpaces( tk_netto_jovedelem );
		this.clearSpaces( tk_netto_jov_valt );
		
		
		var url = 'index.php?_router_page=' + this.lang + '/kalkulatorok/torlesztesi_kalkulator';
		url += '&tk_hitelosszeg=' + String( tk_hitelosszeg.value );
		url += '&tk_deviza_vetel=' + String( tk_deviza_vetel.value );
		url += '&tk_deviza_eladas=' + String( tk_deviza_eladas.value );
		url += '&tk_deviza_ea_valt=' + String( tk_deviza_ea_valt.value );
		url += '&tk_eves_kamatlab=' + String( tk_eves_kamatlab.value );
		url += '&tk_eves_kaml_valt=' + String( tk_eves_kaml_valt.value );
		url += '&tk_hitel_futamido=' + String( tk_hitel_futamido.value );
		url += '&tk_ing_piaci_ert=' + String( tk_ing_piaci_ert.value );
		url += '&tk_ing_pert_valt=' + String( tk_ing_pert_valt.value );
		url += '&tk_netto_jovedelem=' + String( tk_netto_jovedelem.value );
		url += '&tk_netto_jov_valt=' + String( tk_netto_jov_valt.value );
		url += '&szamol=1';
		
		var t = this;
		
		dojo.xhrGet ({
			url: url,
            load: function ( data ) {
                    dojo.byId( 'content-main' ).innerHTML = data;
               		var mainform = document.getElementById( 'redemption-form' );
               		if ( mainform ) {
	                    t.separateInputs( mainform );
	                }
	                tk_window.resize();
                },
            error: function ( data ) {
                    console.error( 'Error: ', data );
                }
        });
	}
}

var sc_redemption = new sc_redemption();

menu = function() {
	this.init();
}

menu.prototype = {

	timer: new Array(),
	zIndex: new Array(),
	init: function() {
		var ul_item = document.getElementById( 'menu' );
		if ( ! ul_item ) {
			return;
		}
		var li_list = ul_item.getElementsByTagName( 'li' );

		for ( i = 0; i < li_list.length; i++ ) {
			if ( li_list[ i ].parentNode.id != 'menu' ) {
				continue;
			}
			
			this.zIndex[ li_list[ i ].id ] = 10 - i; 
		
			var ul_child = li_list[ i ].getElementsByTagName( 'ul' );
			for ( j = 0; j < ul_child.length; j++ ) {
				ul_child[ j ].id = li_list[ i ].id + '_child';
			}

			li_list[ i ].onmouseover = function() {
				clearTimeout( menu.timer[ this.id ] );
				this.style.zIndex = 20;
				var rgx = /over/;
				if ( this.className && ! rgx.test( this.className ) ) {
					this.className += ' over';
				} else {
					this.className = 'over';
				}
				if ( this.id == 'mi-ugyfelsugo' && menu.ieVersion( 6 ) ) {
					var select = document.getElementById( 'lehetosegek_select' );
					if( select ) { select.style.visibility = 'hidden'; }
				}
				var ul = document.getElementById( this.id + '_child' );
				if ( ul ) {
					ul.style.display = 'block';
				}
			}
			li_list[ i ].onmouseout = function() {
				var t = this;
				var cb = function() {
					menu.hide( t );
				}
				menu.timer[ this.id ] = setTimeout( cb, 150 );
			}
		}	
	},
	hide: function( node, zi ) {
		node.style.zIndex = this.zIndex[ node.id ];
		node.className = node.className.replace( /over/, '' );
		if ( node.id == 'mi-ugyfelsugo' && menu.ieVersion( 6 ) ) {
			var select = document.getElementById( 'lehetosegek_select' );
			if( select ) { select.style.visibility = 'visible'; }
		}
		var ul = document.getElementById( node.id + '_child' );
		if ( ul ) {
			ul.style.display = 'none';
		}
	},
	ieVersion: function(ieVersion) {
		var currUserAgent = navigator.userAgent.toLowerCase();
		if(!(navigator && navigator.userAgent && navigator.userAgent.toLowerCase)) {
			return false;
		} else {
			if(currUserAgent.indexOf('msie') + 1) {
				var ver = function() {
					var rv = -1; // just in case the current browser is not Internet Explorer
					if (navigator.appName == 'Microsoft Internet Explorer') {
						var ua = navigator.userAgent;
						var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
						if (re.exec(ua) != null) {
							rv = parseFloat( RegExp.$1 );
						}
					}
					return rv;
				};
				var valid = true;
				if ((ver > -1) && (ver < ieVersion)) {
					valid = false;
				}
				return valid;
			} else {
				return false;
			}
		}
	}
}

var menu = new menu();

