/**
 * @author Michal
 */

var t;
var tt;

function top() {	
  if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
  	window.scrollBy(0, -10);
  	t = setTimeout('top()', 10);
  }  else {
  	if (ReservationForm.alertmsgQueue) {
		alert(ReservationForm.alertmsgQueue);
		ReservationForm.alertmsgQueue = false;
	}
  	clearTimeout(t);	
  }
}

function smoothScrollTo(dst) {
	if (document.body.scrollTop < dst || document.documentElement.scrollTop < dst) {
  	window.scrollBy(0, 10);
  	tt = setTimeout('smoothScrollTo('+dst+')', 10);
  }  else {
  	if (ReservationForm.alertmsgQueue) {
		alert(ReservationForm.alertmsgQueue);
		ReservationForm.alertmsgQueue = false;
	}
  	clearTimeout(tt);	
  }
}

var ReservationForm = new Object;
ReservationForm.online = false;
ReservationForm.step = 1;
ReservationForm.id_obiektu = false;

ReservationForm.check = function () {
	var userid = $('id_community_users').value;
	if(userid) {
		var wariant = document.rezerwacja_form_warianty.id_wariantu;
		if (wariant) {
			ReservationForm.submit();
		} else {
			ReservationForm.alertmsgQueue = 'Wybierz wariant pakietu.';
			top();					
		}
	} else {
		ajax_aktywuj2(true,true);
	}
}

ReservationForm.zaladujWarianty = function() {		
	var id_oferty = $('id_oferty').value;
		
	var resp = function(req){
		$('warianty_div').innerHTML = req.responseText;
		ustawMouseOver('warianty_div');
		Element.hide('warianty_loading');
		var war = document.getElementsByClassName('wariant');
		var warlen = war.length;
		var h = ((35*warlen)+115)+'px';
		$('warianty_box').style.height = h;
		$('warianty_loading').style.height = h;
		$('warianty_loading_bg').style.height = h;
	}
		
	var pars = Form.serialize('rezerwacja_form_warianty');
	var args = {
		method: 'post',
		parameters: pars,
		onComplete: resp,
		evalScipts: true
	};
	var url = '/2008/admin/pakiety_front/ajax_warianty/id_oferty/' + id_oferty + '/new/true';
	var AjaxReq = new Ajax.Request(url, args);
	
}

ReservationForm.update = function() {
	var sid = $('sync_id').value;
	if (sid) {
		ReservationProxy.check($('sync_id').value, $('data_przyjazdu').value);
	} else {
		//alert('Sprawdz warianty');
		ReservationForm.zaladujWarianty();
	}
}

ReservationForm.setup = function(parent) {
	if(!parent) { var parent = 'rez_terminy'; }
	var war = document.getElementsByClassName('wariant');
	var warlen = war.length;
	
	for (var i=0; i<warlen; i++) {
		war[i].onmouseover = ReservationForm.wariantOver;
		war[i].onmouseout = ReservationForm.wariantOut;
		war[i].onclick = function(){
			ReservationForm.select(this);			
		}		
	}
	
	var chk = 0;
	var war_radio = $$('.war_radio');
	var len = war_radio.length;
	for(var i = 0; i<len; i++) {
		if(war_radio[i].checked == true) {
			ReservationForm.calculate();
			ReservationForm.select($('w'+i));
			chk = 1;
		}
	}
	
	if(!chk) {
		ReservationForm.calculate();
		ReservationForm.select($('w0'));
	}
	
	//var h = $('warianty_div').getHeight();
	//$('warianty_box').style.height = h+'px';
		
	var h = ((78*warlen)+115)+'px';
	$('warianty_box').style.height = h;
	$('warianty_loading').style.height = h;
	$('warianty_loading_bg').style.height = h;
}

ReservationForm.setupHint = function() {
	var w = $$('.war_radio');
	w.each(function(e){
		if(e.checked) {
			if(e.attributes.online.value) {
				$('hint_online').show();
				$('hint_zapytanie').hide();
				$('cart_hint').innerHTML = $('hint_online').innerHTML;
			} else {
				$('hint_online').hide();
				$('hint_zapytanie').show();
				$('cart_hint').innerHTML = $('hint_zapytanie').innerHTML;
			}
		}
	});	
}

ReservationForm.wariantOver = function() {
	var rad = this.getElementsByClassName('war_radio');
	if(!rad[0].checked) {
		this.style.backgroundColor = '#ebebeb';
	}
	this.onmouseout = ReservationForm.wariantOut;
}

ReservationForm.wariantOut = function() {
	var rad = this.getElementsByClassName('war_radio');
	if(!rad[0].checked) {
		this.style.backgroundColor = '';
	}	
}

ReservationForm.select = function(ref) {
	var rad = ref.getElementsByClassName('war_radio');
	rad[0].checked = true;
	ReservationForm.calculate();

	var ceny = $('warianty_div').getElementsByClassName('war_cena');
	var cenylen = ceny.length;
	
	var warianty = $('warianty_div').getElementsByClassName('wariant');
	for(var i = 0; i < warianty.length; i++) {
		warianty[i].style.backgroundColor = '';
	}
	
	ref.style.backgroundColor = '#f5f5f5';

	for(var i = 0; i < cenylen; i++) {
		ceny[i].style.color = '#b1b1b1';
	}
	
	var vdesc = ref.getElementsByClassName('variant_desc');	
	var vdesc = vdesc[0].innerHTML;
	
	var vprice = ref.getElementsByClassName('war_cena');
	var vprice = vprice[0].innerHTML;
	
	$('cart_date_from').innerHTML = $('data_przyjazdu').value;
	$('cart_variant_desc').innerHTML = vdesc;
	$('cart_price').innerHTML = vprice;
	
	Element.show('hint');	
	Element.show('booking_cart');
		
	var thiscena = ref.getElementsByClassName('war_cena');
	thiscena[0].style.color = '#ff3300';
	
	ReservationForm.setupHint();
}

ReservationForm.calculate = function() {
	var zaliczka_proc = $('zaliczka_procent').value;
	
	var war = $('warianty_div').getElementsByClassName('war_radio');
	var warlen = war.length;

	for (var i=0; i<warlen; i++) {
		if(war[i].checked == true) {
			var cena = war[i].attributes.cena.value;
			var cena_z = war[i].attributes.cena_z.value;
			var cena_s = war[i].attributes.cena_s.value;
			var kwota = war[i].attributes.kwota.value;
			var price_full = war[i].attributes.price_full.value;
			if(!price_full) {
				var price_full = kwota;
			}
		}
	}

	$('cena_zaliczka').innerHTML = cena;
	$('cena_zaliczka2').innerHTML = cena_z;
	$('cena_zaliczka3').innerHTML = cena_s;
	$('kwota').value = kwota;
	$('price_full').value = price_full;

}

ReservationForm.submit = function() {
	
	var user_id = $('rezerwacja_form_dane').id_community_users.value;
	var v = $('id_wariantu').value;
	
	if($('rezerwacja_form_dane')&&v) {

		if((validate($('rezerwacja_form_dane')))
			&&(validate($('rezerwacja_form_terminy')))) {

			var form1 = Form.serialize('rezerwacja_form_terminy');
			var form2 = Form.serialize('rezerwacja_form_dane');
			
			if($('rezerwacja_form_warianty')) {
				var form3 = Form.serialize('rezerwacja_form_warianty');
			} else {
				var form3 = '';
			}
			
			var pars = form1 + '&' + form2 + '&' + form3;
			var resp = function(req) {
				$('rez_zak_cont_inner').innerHTML = req.responseText;
				$('rez_wait').style.display = 'none';
			}
			
			ReservationProxy.call('booking', pars, resp);
			
			$('rez_kroki_container').style.display = 'none';
			$('rez_form_regulamin').style.display = 'none';
			$('rez_next').style.display = 'none';
			$('rez_wait').style.display = 'block';
			top();
		}
		
	} else {
		alert('Aby dokonać rezerwacji zaloguj się lub utwórz nowe konto.');
	}
	
}

ReservationForm.submitNew = function() {
	
	Element.show('hint');
	
	var user_id = $('rezerwacja_form_dane').id_community_users.value;
	
	if($('rezerwacja_form_warianty')) {
		var form3 = Form.serialize('rezerwacja_form_warianty');
		var v = form3.split('=');
		if(v[1]) { var vok = true; } else { var vok = false; }
	} else {
		var form3 = '';
		var vok = true;
	}
	
	if (vok) {
	
		if ($('rezerwacja_form_dane')) {
		
			if ((validate($('rezerwacja_form_dane'))) &&
			(validate($('rezerwacja_form_terminy')))) {
			
				var form1 = Form.serialize('rezerwacja_form_terminy');
				var form2 = Form.serialize('rezerwacja_form_dane');
				var form4 = Form.serialize('rezerwacja_form_termin');
				
				if ($('rezerwacja_form_warianty')) {
					var form3 = Form.serialize('rezerwacja_form_warianty');
				}
				else {
					var form3 = '';
				}
				
				var pars = form1 + '&' + form2 + '&' + form3 + '&' + form4;
				var resp = function(req){
					$('bm_content4').innerHTML = req.responseText;
					pageTracker._trackPageview("/ajax/rezerwacja_wyslana.html");
				}
				
				ReservationForm.showStep(4);
				Element.hide('hint');
				
				var sid = $('sync_id').value;
				if (sid == '408') {
					ReservationProxy.call('booking', pars, resp, true);
				} else {
					ReservationProxy.call('booking', pars, resp);
				}				
				
				$('rez_next').hide();
				
				top();
			}
			
		}
		else {
			alert('Aby dokonać rezerwacji zaloguj się lub utwórz nowe konto.');
		}
		
	} else {
		alert('Proszę wybrać wariant rezerwacji');
		ReservationForm.showStep(2);
	}
	
}

ReservationForm.submitOld = function() {

	var user_id = $('rezerwacja_form_dane').id_community_users.value;
	//alert('user_id:'+user_id);

	if($('rezerwacja_form_dane')) {

		if((validate($('rezerwacja_form_dane')))
			&&(validate($('rezerwacja_form_terminy')))) {

			var form1 = Form.serialize('rezerwacja_form_terminy');
			var form2 = Form.serialize('rezerwacja_form_dane');
			var form4 = Form.serialize('rezerwacja_form_termin');
			
			if($('rezerwacja_form_warianty')) {
				var form3 = Form.serialize('rezerwacja_form_warianty');
			} else {
				var form3 = '';
			}

			$('rez_next').style.visibility = 'hidden';			
			
			var resp = function(req) {
				$('bm_content4').innerHTML = req.responseText;
				pageTracker._trackPageview("/ajax/rezerwacja_wyslana.html");
			}

			var pars = form1 + '&' + form2 + '&' + form3 + '&' + form4;
						
			var url = '/2008/obiekty_front/sendReservation';
			var args = {method:'post',parameters: pars, onComplete: resp};
												
			var AjaxRez = new Ajax.Request(url,args);
			
			$('rez_next').hide();
			ReservationForm.showStep(4);
			top();
			
		}
		
	} else {
		alert('Aby dokonać rezerwacji zaloguj się lub utwórz nowe konto.');
	}
}

ReservationForm.wstepna = function() {
	$('rezBtnAllpay').style.display = 'none';
	$('wstepna_info1').style.display = 'none';
	$('rez_pay_box').style.display = 'none';
	$('wstepna_info2').style.display = 'block';
}

ReservationForm.nextStep = function() {
	var tgt = ReservationForm.step+1;
	if(tgt == 5) {
		tgt = 3;
	}
	if(ReservationForm.step == 5) {
		tgt = 2;
	}
	ReservationForm.toggleBookingStep(tgt);
}

ReservationForm.toggleBookingStep = function(id) {	
	var st = true;
	if (id == 3) {
		if(!$('data_przyjazdu').value) {
			alert('Proszę wybrać datę przyjazdu.');
			st = false;
		}
	}
	
	if (st) {
		
		
		switch(id) {
			case 1: pageTracker._trackPageview("/ajax/1_opis.html"); break;
			case 2: pageTracker._trackPageview("/ajax/2_ceny_terminy.html"); break;
			case 3: pageTracker._trackPageview("/ajax/3_twoje_dane.html"); break;			
		}
		
		if(id == 3) {
			Element.show('hint');
		} else {
			Element.hide('hint');
		}
	
		if (ReservationForm.step != 4) {
			if (id == 4) {
				if (ReservationForm.step != 3) {
					ReservationForm.showStep(3);
				}
				else {
					if ($('sync_id').value) {
						ReservationForm.submitNew();
					}
					else {
						ReservationForm.submitOld();
					}
				}
			}
			else {
				$('rez_next').show();
				ReservationForm.showStep(id);
				if (id == 2) {
					//ReservationProxy.check($('sync_id').value, $('data_przyjazdu').value);
					ReservationForm.update();
				}
			}
		}
		
	}
}

ReservationForm.showStep = function(id) {
	ReservationForm.step = id;
	$$('.bm_content').each(function(e){
		e.hide();
	});
	$('bm_content' + id).show();
	$('bm').className = 'm m' + id;
}

ReservationForm.login = function(formid) {
	if(!formid) {
		var formid = 'rezerwacja_login';
	}

	if(validate($(formid))) {
		
		$('login_button').disabled = true;
		Element.show('card_loading');
	
		var resp = function(req) {
			var txt = req.responseText;
			
			$('login_button').disabled = false;
			Element.hide('card_loading');
			
			if(txt != 'false') {
				var obj = txt.evalJSON();
				ReservationForm.setupUserForm(obj);
			} else {
				alert('Nazwa użytkownika lub hasło są nieprawidłowe.');
				$(formid).username.value = '';
				$(formid).password.value = '';				
			}
		}		

		var formdata = Form.serialize(formid);
		var pars = formdata;
		var args = {method:'post',parameters: pars, onComplete: resp};
		var url = '/2008/admin/pakiety_front/ajax_login';
		var AjaxReq = new Ajax.Request(url,args);
	}
}

ReservationForm.setupUserForm = function(obj) {
	if(ReservationForm.online) {
		if(obj.karta_rabat > 49) {			
			$('rabat_kwota').value = 50;
		} else {
			$('rabat_kwota').value = 0;
		}
	}
			
	$('id_community_users').value = obj.id;
	$('imie').value = obj.imie;
	$('nazwisko').value = obj.nazwisko;
	$('email').value = obj.email;
	$('email').readOnly = true;
	$('ulica').value = obj.ulica;
	$('nr_domu').value = obj.nr_domu;
	$('miasto').value = obj.miasto;
	$('kod').value = obj.kod;
	$('telefon').value = obj.telefon;
	$('komorka').value = obj.komorka;
	
	//alert('Korszystasz ze swojej Karty SPA');
	
	/*$('rez_form_konto').innerHTML = obj.login_html;*/
	
	if(obj.karta_html) {
		$('info_card_inner').innerHTML = obj.karta_html;
		Element.hide('info_nocard');
		Element.show('info_card');
	}
	
	/*if(obj.nr_karty) {
		$('rez_kupon_content').innerHTML = '<br />Korzystasz ze swojej Karty SPA';
	}
	
	$('password').setAttribute('validate',false);
	Element.hide('password_row1');
	Element.hide('password_row2');
	ajax_zaladujwarianty();*/
}

ReservationForm.loadFAQ = function() {
	Element.show('bm_content5_loading');
	Element.hide('bm_content5_cnt');
	
	var resp = function(req) {
		var txt = req.responseText;
		Element.hide('bm_content5_loading');
		
		$('bm_content5_cnt').innerHTML = txt;
		Element.show('bm_content5_cnt');
	}		

	var pars = '&';
	var args = {method:'post',parameters: pars, onComplete: resp};
	var url = '/2008/admin/pakiety_front/ajaxfaq';
	var AjaxReq = new Ajax.Request(url,args);
}

ReservationForm.toggleHelp = function(id) {
	$$('div#help_zak .act').each(function(e) {
		e.removeClassName('act');
	});	
		
	$$('.help_cnt').each(function(e){
		e.hide();
	});
	
	$('help_zak'+id).addClassName('act');
	$('help_cnt'+id).show();
}

ReservationForm.toggleFAQ = function(id) {
	$$('div#faq_cat_zak .act').each(function(e) {
		e.removeClassName('act');
	});
	
	$$('.faq_cnt').each(function(e){
		e.hide();
	});
	
	$('faq_cat_zak'+id).addClassName('act');
	$('faq_zak'+id).show();
}
