var simData = null;
var selectedMortgage = null;

function simulationValidate(){
	valid = false;
	if(selectedMortgage != null){
	
		// Validating duration
		elt = $('duration');
		elt_err = $('duration_err');
		elt_text = $('duration_text');
		if(selectedMortgage.type == 'V'){
			min = selectedMortgage.minyears;
			max = selectedMortgage.maxyears;
			if(!isNumber(elt) || !(elt.value >= min && elt.value <= max)){
				elt.style.color = '#ff0000';
				elt_text.style.color = '#ff0000';
				elt_err.innerHTML = '&nbsp;Valori validi tra ' + min + ' e ' + max + ' anni.';
				valid = false;
			} else {
				elt.style.color = '#666666';			
				elt_text.style.color = '#666666';						
				elt_err.innerHTML = '';
				valid = true;
			}
		}
		
		//// Validating numbers
		
		// Validating reddito
		elt = $('reddito');
		elt_text = $('reddito_text');
		if(elt) {
			elt.style.color = (isNumber(elt)) ? '#666666' : '#ff0000';
			if(isNumber(elt)){
				valid = true;
			}else{
				valid = false;
			}
		}
		if(elt_text) elt_text.style.color = (isNumber(elt)) ? '#666666' : '#ff0000';


		// Validating importo
		elt = $('importo');
		elt_text = $('importo_text');
		if(elt) {
			elt.style.color = (isNumber(elt)) ? '#666666' : '#ff0000';
			if(isNumber(elt)){
				valid = true;
			}else{
				valid = false;
			}
		}
		if(elt_text) elt_text.style.color = (isNumber(elt)) ? '#666666' : '#ff0000';


		// Validating valore
		elt = $('valore');
		elt_text = $('valore_text');
		if(elt) {
			elt.style.color = (isNumber(elt)) ? '#666666' : '#ff0000';
			if(isNumber(elt)){
				valid = true;
			}else{
				valid = false;
			}
		}
		if(elt_text) elt_text.style.color = (isNumber(elt)) ? '#666666' : '#ff0000';

		// Validating value rapport
		vimp = $('importo');
		vimp_text = $('importo_text');
		
		vhome = $('valore');
		vhome_text = $('valore_text');
		
		err = $('imp_err');
		
		perc = selectedMortgage.maxperc;
		if(vimp && vhome && err){
			ok = true;
			if((vhome.value * perc / 100) < vimp.value){
				err.innerHTML = '&nbsp;L\'importo richiesto non pu&ograve; superare l\''+perc+'% del valore dell\'immobile.';
				err.style.display = 'block';
				ok = false;
				valid = false;
			} else {
				err.innerHTML = '';
				err.style.display = 'none';
				valid = true;
			}
			
			vimp.style.color = (ok) ? '#666666' : '#ff0000';
			vimp_text.style.color = (ok) ? '#666666' : '#ff0000';
			vhome.style.color = (ok) ? '#666666' : '#ff0000';
			vhome_text.style.color = (ok) ? '#666666' : '#ff0000';
		}

	}
	elt = $('postButton');
	if(elt) elt.disabled = !valid;
}

function isNumber(elt){
	if(!elt) return;
	
	val = elt.value;
	numRe = new RegExp('^[0-9]*$');
	return val.match(numRe);
}

function fillMortgagesList(){
	mlist = $('type');	
	mlist.options[0] = new Option("-- Seleziona --", 0);
	for(i=0; i < simData.simulation.length; i++){
		mlist.options[i+1] = new Option(simData.simulation[i].description, simData.simulation[i].id);
	}
	selectedMortgage = null;
}

function typeChanged(){
	findMortgage();
	duration = $('duration');
	if(selectedMortgage != null){
		duration.value = selectedMortgage.defaultyears;
		if(selectedMortgage.type == 'V')
			duration.readOnly = false;
		else
			duration.readOnly = true;
	} else {
		duration.value = '0';
		duration.readOnly = true;
	}
	simulationValidate();
}


function checkPerc(){
	vimp = $('importo');
	vimp_text = $('importo_text');

	vhome = $('valore');
	vhome_text = $('valore_text');
	
	err = $('imp_err');
	
	if(selectedMortgage != null){
		perc = selectedMortgage.maxperc;
		if(vimp && vhome && err){
			ok = true;
			if((v_home * perc / 100) < v_imp){
				err.innerHTML = '&nbsp;L\'importo richiesto non pu&ograve; superare l\''+perc+'% del valore dell\'immobile.';
				err.style.display = 'block';
				ok = false;
			} else {
				elterr.innerHTML = '';
				err.style.display = 'none';
			}
			
			vimp.style.color = (ok) ? '#666666' : '#ff0000';
			vimp_text.style.color = (ok) ? '#666666' : '#ff0000';
			vhome.style.color = (ok) ? '#666666' : '#ff0000';
			vhome_text.style.color = (ok) ? '#666666' : '#ff0000';

			return ok;	
		}
	}
}

function findMortgage(){
	mlist = $('type');
	idx = mlist.selectedIndex;
	if(idx <= 0) 
		selectedMortgage = null;
	else
		selectedMortgage = simData.simulation[idx - 1];
}



