/**
 * Bootstrap_booking.js - Bootstrap for all booking Javascript functionality
 * 
 * @author  Webstores <info at webstores dot nl>
 *           Copyright (c) Webstores internet totaalbureau <http://www.webstores.nl/>
 */
 
// CallMeNow api functie defineren (ja tis niet zo'n beste plaats, weinig aan te doen)
function CMN_USER_INIT(cmn) {
	cmn.set_imageIdle('/site/webroot/img/phone/phone-idle.gif');
	cmn.set_imageCallingA('/site/webroot/img/phone/phone-a-calling.gif');
	cmn.set_imageABusy('/site/webroot/img/phone/phone-a-busy.gif');
	//cmn.set_imageANoAnswer('/site/webroot/img/phone/phone-a-busy.gif');
	cmn.set_imageCallingB('/site/webroot/img/phone/phone-b-calling.gif');		
	cmn.set_imageBBusy('/site/webroot/img/phone/phone-b-busy.gif');
	cmn.set_imageBNoAnswer('/site/webroot/img/phone/phone-a-busy.gif');
	cmn.set_imageABConnected('/site/webroot/img/phone/phone-connected.gif');
	//cmn.set_imageABDisconnected('/site/webroot/img/phone/phone-idle.gif');
	cmn.set_imageError('/site/webroot/img/phone/phone-idle.gif');
}

WS.Event.addEvent(window, 'load', function() {
	
	// Truncators
	jQuery('.truncate').each(function() {
		switch(this.id) {
			case 'category-description':
				new Truncator(this, {
					height: 240
				});
				break;
			default:
				new Truncator(this, {
					height: 240
				});
				break;
		}
	});
	
	// calendar submit
	if(get('calendar-submit')) {
		$('#calendar-submit').bind('click', function() {
			document.forms['calendar-form'].submit();
			return false;
		});
	}
	
	if(get('options-choice')){
		var inputs = get('options-choice').getElementsByTagName('input');
		var selects = get('options-choice').getElementsByTagName('select');
		
		for(var i = 0; i < inputs.length; i++) {
			//inputs[i].onclick = function(){optionsChange();}
			WS.Event.addEvent(inputs[i],'click',function(){optionsChange();})
		}
		
		for(var i = 0; i < selects.length; i++) {
			selects[i].onclick = function(){optionsChange();}
		}
	}
	
	// Vraag stellen ajax callback
	$('#question-submit').bind('click', function() {
		sendQuestion();
	});
	
	// Actiecode controle ajax callback
	$('#promocode_trigger').bind('click', function() {
		checkPromocode();
		return false;
	});
	
	// uitklappen van overzicht
	$('#showshow').bind('click', function() {
		showshow();
		$('#showshow').hide();
		return false;
	});
	
	// CallMeNow script inladen na windowload
	if(get('CMN_PhoneNumber')) {
		var el = document.createElement('script');
		el.setAttribute('src', 'http://projects.solition.nl/CallMeNow/FrontEnd/CallMeNow/CMN_RequestHandler.ashx?CMN_RegId=0253c422-6e6a-4ad3-b581-ec12f49d42ca&API=1');
		//Hieronder het script van webstores voor test
		//el.setAttribute('src', 'http://projects.solition.nl/CallMeNow/FrontEnd/CallMeNow/CMN_RequestHandler.ashx?CMN_RegId=b34f7f7a-91a9-4ccd-b880-ce2e529931a6&API=1');
		el.setAttribute('type', 'text/javascript');
		var head = document.getElementsByTagName('HEAD')[0];
		head.appendChild(el);
	}
	
	// validatie account
	if(get('yourdataform')){
		var FormVal = new WS.Validation('yourdataform');
		FormVal.initialize();
		
		WS.Event.addEvent('trigger', 'click', function(e) {
			WS.Event.stopEvent(e);
			
			var e1 = document.forms['yourdataform']['email'];
			var e2 = document.forms['yourdataform']['email2'];
			if(e1.value!=e2.value){
				alert('U dient ter controle 2 keer hetzelfde emailadres in te vullen.');
				return false;
			}
			
			var check = document.forms['yourdataform']['acknowledge'];
			if(check.checked!=true){
				alert('U dient nog akkoord te gaan met de voorwaarden van Preston Palace. Vink de optie aan a.u.b.');
				return false;
			}
			
			get('sumbinput').click();
		});
	}
	
	if(get('phone-button')) {
		$('#phone-button').colorbox({iframe:true, width:'680', height:'180'});
	}
});

/*function fireEventXB(el, set, type) {
	if(typeof el == 'string') {
		el = document.getElementById(el);
	}
	if(document.createEvent) {
		var evObj = document.createEvent(set);
		evObj.initEvent(type, true, false);
		el.dispatchEvent(evObj);
	}
	else if(document.createEventObject) {
		el.fireEvent('on' + type);
	}
}*/

/*
* JW: keuze betaalmethode
*/ 
function initPayment(type){
	if(type=="iDEAL25"){
		//console.log('iDEAL25');
		document.forms['booked']['amount'].value = document.forms['booked']['25price'].value;
		document.forms['booked']['SHASign'].value = document.forms['booked']['SHASign2'].value;
	}
	
	if(type=="creditcard"){
		//console.log('creditcard');
		document.forms['booked']['PM'].value = 'CreditCard';
		document.forms['booked']['BRAND'].value = '';
		document.forms['booked']['PMLIST'].value = 'VISA;MasterCard';
		
		document.forms['booked']['amount'].value = document.forms['booked']['creditcardprice'].value;
		document.forms['booked']['SHASign'].value = document.forms['booked']['SHASign3'].value;
	}
	
	document.forms['booked'].submit();
}

/*
* JW: voorwaarden accepteren tijdens account invullen.
*/ 
function initAccount(){
	var check = document.forms['booked']['acknowledge'];
	if(check.checked==true){
		// 
		document.forms['booked'].submit();
	}else{
		
	}
}

function agesChange(){
	var postBody = '';
	var values = [];
	var inputs = get('ages').getElementsByTagName('select');
	
	if(get('times')){
		var inputs2 = get('times').getElementsByTagName('select');
		for(var i = 0; i < inputs2.length; i++) {
			values.push(inputs2[i].name+'='+inputs2[i].value);
		}
	}
	
	postBody += '';
	
	for(var i = 0; i < inputs.length; i++) {
		values.push(inputs[i].name+'='+inputs[i].value);
	}
	
	postBody += values.join('&');
		
	WS.Ajax.request('/reserveren/ages_total', function(response) {
		setTotalPrice(response);
	}, postBody);
}

function checkPromocode(){
	var postBody = '';
	var code = get('actiecode').value;
	
	get('actiecode-result').innerHTML = '<img src="/img/booking/ajax-loader.gif" />&nbsp;Actiecode wordt gecontroleerd';
	
	WS.Ajax.request('/reserveren/check_promocode/'+code, function(response) {
		get('actiecode-result').innerHTML = response;
	}, postBody);
}

function sendQuestion() {
	var values = [];
	
	if($('#question-email').val()==''){
		alert('Vul uw emailadres in alstublieft.');
		return;
	}
	
	values.push('name='+$('#question-name').val());
	values.push('telephone='+$('#question-telephone').val());
	values.push('email='+$('#question-email').val());
	values.push('vraag='+$('#question-vraag').val());
	values.push('url='+$('#question-url').val());
	
	var postBody = values.join('&');
	
	WS.Ajax.request('/reserveren/question', function(response) {
		setQuestionSend(response);
	}, postBody);
}

function setQuestionSend(response) {
	$('.question').html(response);
}

function changelink(el, target) {
	var value = el.value;
	get(target).href = el.value;
}

function optionsChange(){
	var postBody = '';
	var values = [];
	var inputs = get('options-choice').getElementsByTagName('input');
	var selects = get('options-choice').getElementsByTagName('select');
	
	postBody += '';
	
	for(var i = 0; i < inputs.length; i++) {
		if(inputs[i].checked){
			values.push(inputs[i].name+'='+inputs[i].value);
						
			// check td
			//addClass(get('id_'+inputs[i].name), 'yes');
			if(inputs[i].value==1){
				addClass(get('id_'+inputs[i].name), 'yes');
			}else{
				addClass(get('id_'+inputs[i].name), 'check', true);
			}
		}
		/*
		if(inputs[i].name == 'verlenging' && inputs[i].checked){
			document.getElementById('book04').style.display = '';
			console.log('visible');
		}else if(inputs[i].name == 'verlenging' && !inputs[i].checked){
			document.getElementById('book04').style.display = 'none';
			console.log('hidden');
		}*/
	}
	
	for(var i = 0; i < selects.length; i++) {
		values.push(selects[i].name+'='+selects[i].value);
	}
	
	postBody += values.join('&');
			
	WS.Ajax.request('/reserveren/options_total', function(response) {
		setTotalOptions(response);
	}, postBody);
}

function setTotalPrice(response){
	get('innertotalprice').innerHTML = response;
}

function showGuests(){
	/*var guests = get('yourdata').getElementsByClassName('guests');*/
	var guests = WS.DOM.getElementsByClass('guests', get('yourdata'));
	for(var i = 0; i < guests.length; i++) {
		guests[i].style.display = '';
	}
}
function hideGuests(){
	var guests = WS.DOM.getElementsByClass('guests', get('yourdata'));
	for(var i = 0; i < guests.length; i++) {
		guests[i].style.display = 'none';
	}
}


function showshow(){
	var tables = WS.DOM.getElementsByClass('hidehide', get('summary-overview'));
	for(var i = 0; i < tables.length; i++) {
		/*tables[i].style.display = '';*/
		WS.toggleClass(tables[i],'hidehide');
	}
}

/*function checkRestaurants(){
	alert('Bistro check');
	if(get('bistroyes').checked == "checked"){
		alert('Bistro check');
	}
}*/

function setTotalOptions(response){
	var values = response.split('_');
	get('innertotalprice').innerHTML 	= values[0];
	get('inneroptionsprice').innerHTML 	= values[1];
	if(values[2]) {
		get('ccaction').innerHTML = 'U ontvangt de volgende opties gratis:<br />- Reserveringskosten<br />'+values[2];
	} else {
		if(get('ccaction')) {
		get('ccaction').innerHTML = 'U betaalt nu geen reserveringskosten. Bij 2 of meer nachten ontvangt u tevens gratis optie(s).<br>';
		}
	}	
}

function addClass(element, value, empty) {
	if(element){
		if (!element.className || empty) {
			element.className = value;
		} else {
			var newClassName = element.className;
			newClassName += " ";
			newClassName += value;
			element.className = newClassName;
		}
	}
}
