//Массив определений
definitions = new Array();
definitions={	'def_consumer':		'Consumer credit card is a type of card that allows a person to borrow money from a loan company to purchase goods and services.',
		'def_student':			'A student credit card is a specially designed card for those who are still learning in a high school, a college or a university. This is a financial instrument that allows students to start building their credit history under quite favorable conditions.',
		'def_business':		'Business credit card is a financial instrument for small business owners that helps managing the finances of a small private owned company. Small business credit cards establish personal credit history.',
		'def_instant_approval':	'With instant approval credit card you get approved straight away after the application.',
		'def_intro_apr_bt':		'0% interest rate will be applied on your transferred balance. This interest rate will remain the same for a certain period of time according to a card\'s terms and conditions.',
		'def_intro_apr_pur':		'0% interest rate will be applied on your purchases. This interest rate will remain the same during a certain period of time according to card\'s terms and conditions.',
		'def_cash_back_rewards':	'Credit cards that give a cardholder a certain fixed amount of money for each use of the card.',
		'def_frequent_flyer_rewards':'Credit cards that give a cardholder a certain fixed amount of air miles for every dollar spent.',
		'def_point_rewards':		'Credit cards that give a cardholder a certain amount of points for each dollar spend. These points can be lately redeemed for rebates, gift certificates or some other rewards.',
		'def_gasoline_rewards':	'Credit cards that give a cardholder points for every dollar spend on gas. These points can be lately redeemed for cash, gift cards or some other rewards.',
		'def_hotel_rewards':		'Credit cards that give a cardholder points for every dollar spent. These points can be lately redeemed for free stays in certain hotels.',
		'def_charity_rewards':		'Credit cards that allow you to spend your rewards (no matter whether they are miles, points or cash back) on charitable donations.'};
				
/**
* функция обработки кликов на дивы заменяющие инпут элементы
* intro_el - Элемент, по которому кликнули
* intro_el_name - id родителя группы элементов (имитируется группа чекбоксов или радиобуттонов)
* outer_el - Элемент, в который будет помещаться результат
* type - тип элементов построенных на div'ax (radio или checkbox)
* cl_off - className выключенного Радио (Чекбокс элемента
* cl_on - className включенного Радио (Чекбокс элемента
*/
function activate_but () {
	document.getElementById('con').className = document.getElementById('consumer').className == 'check_1dis'? 'consumer_no': 'consumer';	
	document.getElementById('stu').className = document.getElementById('student').className == 'check_1dis'? 'student_no': 'student';	
	document.getElementById('bus').className = document.getElementById('business').className == 'check_1dis'? 'business_no': 'business';	
}


function toggle_check (intro_el,intro_el_name,outer_el,type,cl_off,cl_on,cl_dis){
	//Проверяем, что элемент не disabled
	if (intro_el.className!=cl_dis){
		//Меняем класс данного элемента
		
		
		var outer=document.getElementById(outer_el);
		//Если радио	
		if (type=='radio'){
			intro_el.className=intro_el.className == cl_off? cl_on: intro_el.className;
			var el=document.getElementById(intro_el_name).getElementsByTagName('div');
			//Отключаем все остальные радио буттоны, кроме нажатого
			for (i=0;i<el.length;i++) el[i].className=(el[i]!=intro_el)&&el[i].className!=cl_dis?cl_off:el[i].className;
			//Если текущий элемент включен, то заполняем инпут элемент
			outer.value=intro_el.className!=cl_off?intro_el.id:'';
		}	
		
		if (type=='checkbox') {
			intro_el.className=intro_el.className == cl_off? cl_on: cl_off;
			var el=document.getElementById(intro_el_name).getElementsByTagName('div');
			outer.value='';
			for (i=0;i<el.length;i++)outer.value += (el[i].className==cl_on)?((outer.value)?(","+el[i].id):el[i].id):'';
		}
	}	
}
/**
*
*/
function disable_group (intro_el_name,outer_el,cl_dis){
	var el=document.getElementById(intro_el_name).getElementsByTagName('div');
	for (i=0;i<el.length;i++) el[i].className=cl_dis;
	var outer=document.getElementById(outer_el);
	outer.value='';
}
//Отправляем форму на сервер
function find_card(form) {
	//alert(form);
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
		if (req.readyState !== 4) {
			document.getElementById('up_10_cr').style.display="block";
			document.getElementById('find').style.marginBottom="0px";
		}
        if (req.readyState == 4) {		
			document.getElementById('up_10_cr').style.display="none";
			document.getElementById('find').style.marginBottom="24px";
            document.getElementById('page_4').innerHTML=req.responseText;
            document.getElementById('page_4').innerHTML+=req.responseJS.products;
			show_block(4);
        }
    }
    req.open('POST', 'ccf.phtml', true);
    req.send({q: form});
}
function links_actionrew(form,cur_el,next_el,next_el_id,this_el,num,type,num_block){
	links_action(form,cur_el,'cash_back_rewards','cash_back_rewards',this_el,num,type,num_block);
	links_action(form,cur_el,'point_rewards','point_rewards',this_el,num,type,num_block);
	links_action(form,cur_el,'hotel_rewards','hotel_rewards',this_el,num,type,num_block);
	links_action(form,cur_el,'frequent_flyer_rewards','frequent_flyer_rewards',this_el,num,type,num_block);
	links_action(form,cur_el,'gasoline_rewards','gasoline_rewards',this_el,num,type,num_block);
	links_action(form,cur_el,'charity_rewards','charity_rewards',this_el,num,type,num_block);
}	
//Функция управляющая доступностью элементов на базе массива зависимостей
function links_action(form,cur_el,next_el,next_el_id,this_el,num,type,num_block){		
	if (this_el.className!='check_1dis'){
		document.getElementById('page_4').innerHTML='';
		if (document.getElementById('banklist')){
			document.getElementById('banklist').style.display='none';
		}	
		switch (next_el){
			case 'card_type': 
				disable_group ('ct','card_type','check_1dis');
				disable_group ('iabt','intro_period_bt','check_1dis');
				disable_group ('iap','intro_period_pur','check_1dis');
				disable_group ('rew','rewards_all','check_1dis');	
				break;
			case 'bank':
				disable_group ('iabt','intro_period_bt','check_1dis');
				disable_group ('iap','intro_period_pur','check_1dis');
				disable_group ('rew','rewards_all','check_1dis');
				document.getElementById('bankc').value='';
				break;
			case 'intro_period_bt':
				disable_group ('iap','intro_period_pur','check_1dis');
				disable_group ('rew','rewards_all','check_1dis');			
				break;
			case 'instant_approval':
				disable_group ('iabt','intro_period_bt','check_1dis');
				disable_group ('iap','intro_period_pur','check_1dis');
				disable_group ('rew','rewards_all','check_1dis');				
				break;
			case 'intro_period_pur':
				disable_group ('rew','rewards_all','check_1dis');
				break;
		}
		
		if (next_el=='bank'){
			document.getElementById('bankc').value='';
		}
		//var d = new Date();
		//document.getElementById('debug').innerHTML+=Date()+' start<br>';
		var req = new JsHttpRequest();
		req.onreadystatechange = function() {
			if (req.readyState !== 4) {
				document.getElementById('up_'+num+'_'+type).style.display="block";
			}
			if (req.readyState == 4) {
				document.getElementById('up_'+num+'_'+type).style.display="none";				
				//document.getElementById('debug').innerHTML+=Date()+' stop<br>';
				document.getElementById('debug').innerHTML=req.responseText;
				switch (next_el){
					case 'card_type': 
						document.getElementById('find').disabled=true;
						for (var i=0;i<req.responseJS.products.length;i++){
							var el=document.getElementById(next_el_id).getElementsByTagName('div');
							for (j=0;j<el.length;j++) {
								el[j].className=req.responseJS.products[i].toLowerCase()==el[j].id?'check_1':el[j].className;
							}
							//document.getElementById('debug').innerHTML+=req.responseJS.products[i]+"<br>";
						}					
						//document.getElementById('debug').innerHTML+=req.responseJS.products.c+'<br>';
						//document.getElementById('debug').innerHTML+=req.responseJS.products.sql+'<br>';
						break;
					case 'bank':
						document.getElementById('find').disabled=false;
						if (cur_el=='certain_bank'){
							var list_of_banks = new Array()
							for (var i=0;i<req.responseJS.products.length;i++){
								list_of_banks[i]=req.responseJS.products[i];
							}
							getBankList(document.getElementById('cb'),list_of_banks);
						}else{
							if (req.responseJS.products[0]=='0'){
								var el=document.getElementById(next_el_id).getElementsByTagName('div');
								for (j=0;j<el.length;j++) el[j].className='check_1dis';
							}else{
								var el=document.getElementById(next_el_id).getElementsByTagName('div');
								for (j=0;j<el.length;j++) el[j].className='check_1';
							}
							disable_group ('ia','instant_approval','check_1dis');
						}
						break;
					case 'intro_period_bt':
						document.getElementById('find').disabled=false;	
						var el=document.getElementById(next_el_id).getElementsByTagName('div');
						fl0=false;
						fl5=false;
						fl12=false;
						flu=false;
						for (var i=0;i<req.responseJS.products.length;i++){
							fl0=req.responseJS.products[i]==6?true:fl0;
							fl5=((req.responseJS.products[i]>6 && req.responseJS.products[i]<=12) || req.responseJS.products[i].indexOf('Up to 12', 0) !== -1)?true:fl5;
							fl12=req.responseJS.products[i]>12?true:fl12;
							flu=req.responseJS.products[i]=='Until Paid Off'?true:flu;
						}
						 el[0].className=fl0?'check_1':'check_1dis';
						 el[1].className=fl5?'check_1':'check_1dis';
						 el[2].className=fl12?'check_1':'check_1dis';
						 el[3].className=flu?'check_1':'check_1dis';
						 if (!fl0&&!fl5&&!fl12&&!flu){
						 	links_action(document.getElementById('ccf'),'intro_period_bt','intro_period_pur','iap',document.getElementById('page_4'),num,type,num_block);
						 }
						break;
					case 'instant_approval':
						var el=document.getElementById(next_el_id).getElementsByTagName('div');
						flyes=false;
						//flno=false;
						flno=true;
						for (var i=0;i<req.responseJS.products.length;i++){
							flyes=req.responseJS.products[i]=='Yes'?true:flyes;
							//flno=req.responseJS.products[i]=='No'?true:flno;
						}
						 el[0].className=flyes?'check_1':'check_1dis';
						 el[1].className=flno?'check_1':'check_1dis';					
						break;
					case 'intro_period_pur':
						var el=document.getElementById(next_el_id).getElementsByTagName('div');
						fl0=false;
						fl6=false;
						fl12=false;
						//flno=false;
						//flno=true;
						for (var i=0;i<req.responseJS.products.length;i++){
							fl0=req.responseJS.products[i]==6?true:fl0;
							fl6=req.responseJS.products[i]>6 && req.responseJS.products[i]<=12?true:fl6;
							fl12=req.responseJS.products[i]>12?true:fl12;
							//flno=req.responseJS.products[i]!=0?true:flno;
						}
						 el[0].className=fl0?'check_1':'check_1dis';
						 el[1].className=fl6?'check_1':'check_1dis';
						 el[2].className=fl12?'check_1':'check_1dis';
						 el[3].className='check_1';
						 if (!fl0 && !fl6 && !fl12){
						 	links_actionrew(document.getElementById('ccf'),'intro_period_pur','rewards_all','rew',document.getElementById('page_4'),num,type,num_block);
						 }
						break;
					default: 
						flyes=false;
						for (var i=0;i<req.responseJS.products.length;i++){
							flyes=req.responseJS.products[i]=='Yes'||req.responseJS.products[i]=='1'?true:flyes;
						}
						 var el=document.getElementById(next_el_id).className=flyes?'check_1':'check_1dis';
						break;
				}
				
				//document.getElementById('debug').innerHTML=req.responseText;
				if (num_block == 2 || num_block == 3) show_block(num_block);
				if (num_block == 2)	long_div3();
				setTimeout("activate_but()",250);
				
			}
			
		}
		req.open('POST', 'ccf.phtml', true);
		req.send({q: form,cur_el: cur_el,next_el:next_el});
	}
	//setTimeout("activate_but()",3000);
	
}
//Функция для выбора банков
function toggle_ability(){	
	//document.getElementById(id).style.display=el=='yes'?'':'none';
	document.getElementById('bankc').style.display='none';
	if (document.getElementById('banklist')){
		document.getElementById('banklist').style.display='none';
	}
	document.getElementById('bankc').disabled=true;
}	
function change_history(el){
	document.ccf.credit_history.value=el.id;
}
	
function change_card_type(el){
	document.ccf.card_type.value=el.className;
}

//Функция заполнения поля на основании выбранных checkbox'ов
function fill_hidden_rewards(){
	outer=document.ccf.rewards_all;
	obj=document.ccf.rewards;
	outer.value = '';
	for(var i = 0; i<obj.length; i++ ) {
		outer.value += (obj[i].checked)?((outer.value)?(","+obj[i].value):obj[i].value):'';
	}
}
//Функция заполняющая поле после выбора банка
function choose_bank(el){
	document.getElementById('bankc').value=el.innerHTML;
	document.getElementById('bankc').style.display='';
	document.getElementById('bankc').disabled=false;
	document.body.removeChild(document.getElementById("banklist"));
	links_action(document.getElementById('ccf'),'certain_bank','instant_approval','ia',el);
	
}

//Работа со слоями
//Функция определения координат текущего элемента. Кросс-браузерная
function getBounds(element) {
	var left = element.offsetLeft;
    var top = element.offsetTop;
    for (var parent = element.offsetParent; parent; parent = parent.offsetParent) {
    	left += parent.offsetLeft;
		top += parent.offsetTop;
	}
	return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}
//Добавление обработчика события для созданного слоя
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
//Создание слоя с определением термина
function getDefinition(obj) {
	var x =  getBounds(obj).left;
	var w =  getBounds(obj).width
	var y =  getBounds(obj).top;
	if (document.getElementById("definition")){
		document.body.removeChild(document.getElementById("definition"));
	}
	var definition = document.createElement("DIV");
	with(definition.style) {
		position = "absolute";
		top = y+10+"px";
		left = x+w+"px";
		width = "200px";
		border = "1px solid #666";
		background = "#CCC";
		cursor = "pointer";
	}
	definition.id = "definition";
	definition.innerHTML = definitions[obj.id];
	document.body.appendChild(definition);
}
//Создание слоя с таблицей банка
function getBankList(obj,list_of_banks) {
	var x =  getBounds(obj).left;
	var y =  getBounds(obj).top;
	var banklist = document.createElement("DIV");
	with(banklist.style) {
		position = "absolute";
		top = y+10+"px";
		left = x+30+"px";
		width = "200px";
		border = "1px solid #666";
		background = "#CCC";
		cursor = "pointer";
	}
	banklist.id = "banklist";
	str=createBankList(list_of_banks);
	banklist.innerHTML = str;
	document.body.appendChild(banklist);
}
//Создание слоя с определением термина
function lock(obj,str) {
	var x =  getBounds(obj).left;
	var w =  getBounds(obj).width
	var y =  getBounds(obj).top;
	var lock = document.createElement("DIV");
	with(lock.style) {
		position = "absolute";
		top = y+5+"px";
		left = x+w+"px";
		width = "200px";
		border = "1px solid #000000";
		background = "#808080";
		cursor = "pointer";
	}
	lock.id = "lock";
	lock.name = "lock";
	lock.innerHTML = "<center><img src='locked.PNG'></center>"; //<div class=lockedin>"+str+"</div>";
	document.body.appendChild(lock);
}

//Сокрытие определения
function hide() {
    document.body.removeChild(document.getElementById("definition"));
}

//Сделать первую букву заглавной
function FirstLetterToUpperCase(str) {
	str=str.substring(0,1).toUpperCase()+str.substring(1,str.length);
	return str;
}
//Формирование списка банков
function createBankList(list_of_banks){
	str='<table>';
	for (var i = 0; i<list_of_banks.length; i++ ){
		if (i%2==0){
			str+='<tr>';
			flag=true;
		}
		str+='<td class="banktd" onClick="choose_bank(this);">';
		str+=list_of_banks[i];
		str+='</td>';
		if (i%2==1){
			str+='</tr>';
			flag=false;
		}		
	}
	if (flag){
		str+='<td></td></tr>';
	}
	str+='</table>';
	return str;
}
	
	
