/*
 *  Тест на инв. ожидания
 *--------------------------------------------------------------------------*/
// TODO: 

var Test = Class.create();
Test.prototype = {
	
	initialize: function() {
		
		this.questions = {
			1: {
				text: 'Какого результата вы ожидаете от инвестиций в ПИФы?',
				answers: {
					a: { points: 0, text: 'Сберечь свои средства от инфляции' },
					b: { points: 1, text: 'Получить прибыль, превышающую инфляцию, минимум на 5-10%' },
					c: { points: 2, text: 'Рассчитываю на 15-20% прибыли в год' },
					d: { points: 3, text: 'Намерен существенно преумножить свой капитал' }
				}
			},
			
			
			
			2: {
				text: 'На какой период вы готовы вложить деньги?',
				answers: {
					a: { points: 3, text: 'Более 5 лет' },
					b: { points: 2, text: '3-5 лет' },
					c: { points: 1, text: '1-3 года' },
					d: { points: 0, text: 'Менее года' }
				}
			},
						
			
			
			3: {
				text: 'Как бы вы поступили в случае, если паи ПИФа, в который вы инвестировали деньги, в период падения рынка потерял 30% своей инвестиционной стоимости:',
				answers: {
					a: { points: 0, text: 'Первым делом вызвал бы «неотложку», а потом продал все паи' },
					b: { points: 3, text: 'Сильно переживал бы, поскольку 30%-ное падение - это очень серьезно, но все же не стал бы продавать свои паи ' },
					c: { points: 1, text: 'Продал бы часть паев, чтобы частично сократить убытки' },
					d: { points: 5, text: 'Так как я совершаю долгосрочные инвестиции, то не стал бы сильно переживать. А если бы были свободные деньги, то докупил бы паев' }
				}
			},
			
			
			
			4: {
				text: 'Предположим, Вы можете вложить 100 тыс. рублей в один из четырех ПИФов. Результаты будут получены через 2 года. По каждому из ПИФов приведены два равновероятных результата дохода сверх вложенных средств. Какой вариант вы предпочтете:',
				answers: {
					a: { points: 0, text: '18 тыс. в случае успеха или 17 тыс. в случае неудачи' },
					b: { points: 2, text: '20 тыс. в случае успеха или 15 тыс. в случае неудачи' },
					c: { points: 4, text: '25 тыс. в случае успеха или 12 тыс. в случае неудачи' },
					d: { points: 7, text: '50 тыс. в случае успеха или 5 тыс. в случае неудачи' }
				}
			},
			
			
			
			5: {
				text: 'Ниже приводится динамика стоимости четырех паевых фондов. Какой ПИФ предпочли бы вы?',
				answers: {
					a: { points: 5, text: 'Портфель А', add: [-15, 26, 19, -10, 28] },
					b: { points: 3, text: 'Портфель Б', add: [ 12, -8, 17,  15, 0] },
					c: { points: 1, text: 'Портфель В', add: [  8,  2,  6,  11, 3] },
					d: { points: 7, text: 'Портфель Г', add: [ -2, -15, 3, 37, 28] }
				},
				add: [ '&nbsp;', '1-й год', '2-й год', '3-й год', '4-й год', '5-й год' ]
			},
			
			
			
			6: {
				text: 'Вы потратили 900 рублей, чтобы купить счастливый лотерейный билет. Какой приз вы выберете?',
				answers: {
					a: { points: 7, text: 'Возможность выиграть 100 тыс. рублей с вероятностью 0,05%' },
					b: { points: 4, text: 'Возможность выиграть 10 тыс. рублей с вероятностью 25%' },
					c: { points: 2, text: 'Возможность выиграть 4 тыс. рублей с вероятностью 50%' },
					d: { points: 0, text: '1000 рублей наличными' }
				}
			}
		};
		
		
		
		this.report = [
			{ 
				min: 22, 
				max: 32,
				text:'Вы прекрасно понимаете, что ради высокой прибыли подчас приходится рисковать, а лучшие результаты при инвестировании достигаются на длительных промежутках времени. Используйте для достижения своих финансовых целей паи отраслевых фондов семейства «СТОИК» и интервальных фондов семейства «ОПЛОТ».'
			},
			
			{ 
				min: 16, 
				max: 21,
				text:'Вы хотите, чтобы инвестиции приносили большую прибыль, но не готовы ждать или идти на сверхриск. Скорее всего, вам подойдут паи фонда акций «СТОИК» или индексного фонда «УК ПСБ – Индекс ММВБ». Инвестируя, помните, что чем дольше деньги работают, тем эффективнее итоговый результат, а ради того, чтобы получить высокую прибыль, приходится рисковать.'
			},
			
			{ 
				min: 6, 
				max: 15,
				text:'«Тише едешь – дальше будешь»: по всей видимости, вам по душе это утверждение, и вы согласны получать хоть и меньшую прибыль, но при этом не подвергать свои инвестиции повышенному риску. Скорее всего, вам подойдут паи фонда смешанных инвестиций «ТИТАН» - хороший выбор. Однако не стоит забывать, что на длительных временных промежутках инвестиционный риск значительно снижается. Имеет смысл присмотреться к фондам акций.'
			},
			
			{ 
				min:0,
				max:5,
				text:'Стремление в первую очередь сохранить инвестированные деньги – похвально, однако из-за него не стоит рассчитывать на высокую прибыль. Если такое положение дел вас устраивает, то для инвестиций лучше выбрать паи фонда облигаций «ФИНАНСИСТ».<br />Если же вы хотите получать прибыль, превышающую уровень инфляции, то тогда вам стоит пересмотреть свое отношение к инвестиционному риску'
			}
		];
		

		
		this.num = 1; // начинаем тест с первого вопроса
		this.count = 6; // кол-во вопросов
		this.points = 0; // кол-во очков
		this.drawQuestion(this.num);
	},
	
	
	
	
	
	/*
	 *  Рисует форму с вариантами ответов
	 *--------------------------------------------------------------------------*/
	drawQuestion: function(num) {
		
		this.num = num;
		if(num > this.count) {
			this.result();
			return;
		}
		
		$('test').innerHTML = '';
		this.addElement('h3',  'test', null, 'Вопрос №' + num + ' из ' + this.count + '. ' + this.questions[num].text);
		this.addElement('div', 'test', {id: 'questions'});
		
		var str = null;
		str  = '<form action="" id="qform">';

		
		if(num == 5 ) {
			str += '<table><tr>';
			for(i=0; i<this.questions[num].add.length; i++) {
				str += '<th><strong>' + this.questions[num].add[i] + '</strong></th>';
			}
			str += '</tr>';
		}
		else str += '<ul>';
		
		
		for(key in this.questions[num].answers) {
			var text   = this.questions[num].answers[key].text;
			var points = this.questions[num].answers[key].points;

			if(num == 5 ) str += '<td>';
			else str += '<li id="g'+ key +'" onclick="$(\'q'+ num + '_' + key + '\').checked=\'true\'">';
			
			str += '<input type="radio" name="q'+ num + '" id="q'+ num +'_'+ key + '" value="'+ points + '">';
			str += '<label for="q'+ num +'_'+ key +'"> '+ text +'</label>';
			
			
			if(num == 5 ) {
				str += '</td>';
				for(i=0; i < this.questions[num].answers[key].add.length; i++) {
					str += '<td align="center">' + this.questions[num].answers[key].add[i] + '%</td>';
				}
				str += '</tr><tr>';
			}
			else str += '</li>';
		}
		
		if(num == 5 ) str += '</table>';
		else str += '</ul>';
		str += '</form>';
		str += '<img src="/pic/button-next.gif" id="test_submit" onclick="t.doAnswer()" alt="Далее &rarr;" />';
		$('test').innerHTML += str;
	},
	
	
	
	
	/*
	 *  Обработка ответа
	 *--------------------------------------------------------------------------*/
	doAnswer: function() {
		
		var key = null;
		var ans = -1; 
		for(i=0; i<document.forms['qform'].elements.length; i++) {
			if(document.forms['qform'].elements[i].checked == true)
				ans = document.forms['qform'].elements[i].value;
		}
		if(ans != -1) {
			this.points += parseInt(ans);
			this.num++;
			this.drawQuestion(this.num);
		}
	},
	
	
	
	/*
	 *  Выводит результат
	 *--------------------------------------------------------------------------*/
	result: function() {
		k = 0;
		key = null;

		for(i=0; i<this.report.length; i++) {
			if(this.points >= this.report[i].min  &&  this.points <= this.report[i].max ) {
				k = i;
			}
		}
		
		$('test').update('<h2>Сумма баллов: ' + this.points + '</h2>' + this.report[k].text);
	},
	
	
	/*
	 *  Добавляет элементы
	 *--------------------------------------------------------------------------*/
	addElement: function(ename, parent, attrs, innerHTML) {
		var el = document.createElement(ename);
		var key = null;
		if(typeof(attrs) == 'object') {
			for(key in attrs)
				el.setAttribute(key, attrs[key]);
		}
		if(innerHTML) el.innerHTML = innerHTML;
		$(parent).appendChild(el);
		return el;
	}
	
}
