

ScenarioHandler = { 
	scenarios: [],
	addScenario: function() {
		YAHOO.example.container.simpledialog1.show();
		$('scenario_dialog_name').focus();
	},
	handleSave: function() {	
		var update = false;
		var updatedRow = 0;
		var scenario = new Object();
		for (i=0;i<calc_flds.length;i++) {
			fldname = calc_flds[i];
			fld = $(fldname);
			if (fld.type == 'checkbox') {
				val = (fld.checked) ? 1:0;
			} else {
				val = fld.value;
			}
			eval('scenario.' + fldname + ' = val');
		}; 
		
		//scenario.name = prompt("Please enter a name for this scenario:");
		scenario.name = $('scenario_dialog_name').value;
		scenario.list = 'scenario-list';
		//scenario.server = true;
		
		if (scenario.name != undefined && scenario.name != '') {
		
			var user_scenarios = new Array();
			
			for (var i=0; i < this.scenarios.length; i++) {
				if (this.scenarios[i].name == scenario.name) {
					update = true;
					updatedRow = i;
				}
							
			}
				
			if (!update) {
				this.scenarios.push(scenario);
				scenarioTable.addRow(scenario, false);
			} else {
				this.scenarios[updatedRow] = scenario;
				scenarioTable.updateRow(scenario);
			}
			
			for (i=0; i < this.scenarios.length; i++) {
				
				if (this.scenarios[i].list == 'scenario-list') {
					user_scenarios.push(this.scenarios[i]);
				}
				
			}
			
			if (signedIn) {
				var myRequest = new Request.JSON({method: 'post', url: 'save.php', onSuccess: function(scn){ $('scenario-msg').innerHTML = scn.name + ' ' + scn.action; }});
				myRequest.send("type=scenario&scenario=" + JSON.encode(scenario));
			} else {
				$('scenario-msg').innerHTML = "Please Sign In to Save";
				
				// add all user scenarios to the cookie
				Cookie.set('scenarios', YAHOO.lang.JSON.stringify(user_scenarios));
			}	
			
			
		}
	
	},
	deleteScenario: function(name) {
		if (name != undefined && name != '') {
			var temArr = new Array();
			var user_scenarios = new Array();
			
			for (var i=0; i<this.scenarios.length; i++) {
				if (this.scenarios[i].name != name) {
					temArr.push(this.scenarios[i]);
					if (this.scenarios[i].list == 'scenario-list') {
						user_scenarios.push(this.scenarios[i]);
					}
				}
				
			}
			this.scenarios = temArr;
			
			scenarioTable.removeRow(name);
			
			if (signedIn) {
				var myRequest = new Request.JSON({method: 'post', url: 'save.php', onSuccess: function(scn){ $('scenario-msg').innerHTML = scn.name + ' ' + scn.action; }});
				myRequest.send("type=scenario&action=delete&name=" + name);
			} else {
				$('scenario-msg').innerHTML = "Please Sign In to Save";
				
				Cookie.set('scenarios', YAHOO.lang.JSON.stringify(user_scenarios));
			}	
			
			
		}

	},
	
	loadScenarios: function() {
		var user_scenarios = YAHOO.lang.JSON.parse(Cookie.get('scenarios'));
		scenarioTable.addRows(user_scenarios);
		if (signedIn) {
				// save any scenarios stored in cookie
				for (var i=0;i<user_scenarios.length;i++) {
					scenario = user_scenarios[i];
					var myRequest = new Request.JSON({method: 'post', url: 'save.php', onSuccess: function(scn){ $('scenario-msg').innerHTML = scn.name + ' ' + scn.action; }});
					myRequest.send("type=scenario&scenario=" + JSON.encode(scenario));
				}
				Cookie.remove('scenarios');
			} else {
				$('scenario-msg').innerHTML = "Please Sign In to Save";
		}
		
	},
	loadScenario: function(name){
		for (var i=0; i<this.scenarios.length; i++) {
			if (this.scenarios[i].name == name) {
				data = this.scenarios[i];
			}
		}
		for (i=0;i<calc_flds.length;i++) {
			fldname = calc_flds[i];
			if (data[fldname] != undefined) {
				fld = $(fldname);
				
				if (fld.type == 'checkbox') {
					
					fld.checked = data[fldname]; // toggleDiv needs to see checked
					
					if (fld.name == 'floating_on') {
						toggleDiv(fld, 'floating_container');
					}
					
				} else {
					fld.value = data[fldname];
				}
			}
		}
		setTimeout("calculate_all()",500);
	}
}



var scenarioTable = {
	
	addRow: function(data, saved) {
		var rowDiv = new Element('div', {
				'styles': {
					'display': 'block'
				},
				'class': 'scenario',
				'loan_amount': data.loan_amount,
				'id': 'user_scenarios_' + data.name
			});
		var amount = '';
		if (data.loan_amount != undefined) amount = data.loan_amount.replace('000,000', 'm').replace(',000', 'k') + ' @ ';	
		
		divhtml = data.name.substr(0,20) + '<br><nobr>' + amount + data.interest_percent.replace('.00', '')  + '%' + '</nobr><br>';
		divhtml += '<div class="scenario-control">';
		divhtml += '<span onClick="ScenarioHandler.loadScenario(\'' + data.name + '\'); return false;">Load</span> | ';
		divhtml += '<span onClick="ScenarioHandler.deleteScenario(\'' + data.name + '\'); return false;">Remove</span>';
		divhtml += '</div>';
		
		rowDiv.innerHTML = divhtml
		rowDiv.addClass('kwick');
		$(data.list).appendChild(rowDiv);
		
		if (saved) {
			// not going thru ScenarioHandler.save
			ScenarioHandler.scenarios.push(data);
		 					
		}
		
		//scenEnableKwicks();
		
		if (scen_kwicks_loaded) {
			scen_kwicks.push(rowDiv);
			scenfx.elements = scen_kwicks;
			rowDiv.fx = scenfx;
			enableKwick(rowDiv,scen_kwicks.length-1,scen_kwicks);
		}
		
	},
	updateRow: function(data) {
		var rowDiv = $('user_scenarios_' + data.name);
		var amount = '';
		if (data.loan_amount != undefined) amount = data.loan_amount.replace('000,000', 'm').replace(',000', 'k') + ' @ ';	
		
		divhtml = data.name.substr(0,20) + '<br><nobr>' + amount + data.interest_percent.replace('.00', '')  + '%' + '</nobr><br>';
		divhtml += '<div class="scenario-control">';
		divhtml += '<span onClick="ScenarioHandler.loadScenario(\'' + data.name + '\'); return false;">Load</span> | ';
		divhtml += '<span onClick="ScenarioHandler.deleteScenario(\'' + data.name + '\'); return false;">Remove</span>';
		divhtml += '</div>';
		
		rowDiv.innerHTML = divhtml
	},
	removeRow: function(name) {
		$('user_scenarios_' + name).destroy();
	},
	addRows: function(rows) {
		var tempRows = rows.slice();
		for (i=0;i<tempRows.length;i++) {
			this.addRow(tempRows[i], true);
		}
	}
}