

window.booking = window.booking || {};

booking = function() {}

booking.prototype = {
	init : function() {
		booking.form = new booking.form();
		booking.request = new booking.request();
		booking.general = new booking.general();

	}
}


/**
* booking form
*/
booking.form = function() {
	this.aSelectedTab = new Array();
}

booking.request = function() {

	sURI = '../conterior/conterior/index.php';
	this.sLastVisited = '';
	currSite = '';
}

booking.general = function() {}

/**
 * Formularbehandlung
 */
booking.form.prototype = {

	getFormData : function(sFormName) {
		var sCont = $(document).contents().find('#' + sFormName);
		var aFormInfo = sFormName.split('_');

		if (aFormInfo.length == 2) {
			booking.request.handleSearchData(aFormInfo, sCont.serialize())
		}
		//return false;
	},

	setTab : function(sTab, sArrayIndex) {
		this.aSelectedTab[sArrayIndex] = sTab;
	},
	getBasketData : function(sFormName) {
		var sCont = $(document).contents().find('#' + sFormName);

		booking.request.handleBasketData(sCont.serialize());
	},
	getUserData : function(sFormName) {
		var sCont = $(document).contents().find('#' + sFormName);
		var bComplete = this.checkUserForm(sCont);
		if (bComplete == true) {
			document.getElementById(sFormName).submit();
		} else {
			alert('Bitt füllen Sie alle markierten Felder aus.');
		}
	},
	getConfirm : function(sFormName) {
		var sCont = $(document).contents().find('#' + sFormName);

		booking.request.handleConfirmData(sCont.serialize());
	},
	checkUserForm : function(sCont) {
		var sElements = sCont.serialize();
		var aElements = sElements.split('&');
		for (var sIndex in aElements) {
			var aElementParts = aElements[sIndex].split('=');
			switch (aElementParts[0]) {
				case 'sSurname' : if (aElementParts[1] == '') return false;break;
				case 'sPrename' : if (aElementParts[1] == '') return false;break;
				case 'sStreet' : if (aElementParts[1] == '') return false;break;
				case 'sHomeNumber' : if (aElementParts[1] == '') return false;break;
				case 'sZipCode' : if (aElementParts[1] == '') return false;break;
				case 'sCity' : if (aElementParts[1] == '') return false;break;
				case 'sPhone' : if (aElementParts[1] == '') return false;break;
				case 'sEMail' : if (aElementParts[1] == '') return false;break;
			}
		}
		return true;
	}
}

/**
 * XMLHTTPRequest
 */
booking.request.prototype = {

	handleSearchData : function(aParamInfo, sContent) {
		this.blendWaitIn();
		var sTabs = '';
		for (var TabIndex in booking.form.aSelectedTab) {
			sTabs += '&' + TabIndex+ '=' + booking.form.aSelectedTab[TabIndex];
		}

		this.sLastVisited = 'searchlist';
		var query = { identifier : aParamInfo[0], value : aParamInfo[1] + "||" + sContent + sTabs, exec : "ajax" };
		$('#bookingstep').html(booking.general.getBookingSteps(2));
		$.post(sURI, query, location.href=location.href + '&step=1');
		currSite = 'results';
		//$.post(sURI, {test : 'test'}, this.handleReturn);
	},
	handleBasketData : function(sContent) {
		this.blendWaitIn();

		var query = { identifier : 'setbasket', value : sContent, exec : "ajax" };
		$('#bookingstep').html(booking.general.getBookingSteps(5));
		$.post(sURI, query, this.handleReturn);

		//$.post(sURI, {test : 'test'}, this.handleReturn);
	},
	handleUserData : function(sContent) {
		this.blendWaitIn();
		var query = { identifier : 'setuser', value : sContent, exec : "ajax" };
		$.post(sURI, query, this.handleReturn);
		//$.post(sURI, {test : 'test'}, this.handleReturn);
	},
	handleConfirmData : function(sContent) {
		this.blendWaitIn();
		var query = { identifier : 'confirm', value : sContent, exec : "ajax" };
		$.post(sURI, query, this.handleReturn);

		//$.post(sURI, {test : 'test'}, this.handleReturn);
	},


	blendWaitIn : function() {
		$('#bookingforms').html('');
		$('#fog').css('display', 'block');
	},

	handleReturn : function(t) {
		booking.request.blendWaitOut();
		aSelectedTab = new Array()
		$('#bookingforms').html('<p>' + t + '</p>');
	},
	checkReturn : function(t) {
		alert(t);
		//booking.request.showBasket();
	},

	doMemorize : function(iID) {
		var query = { identifier : 'memorize', value : iID, exec : "ajax" };
		$.post(sURI, query, this.handleMemorize);
	},

	handleMemorize : function(t) {
		booking.request.blendWaitOut();
		var aReturnText = t.split(',');
		$('#notepad').val('Merkzettel(' + aReturnText[0] + ')');
		if ($('#memorize_' + aReturnText[1]).attr('value') == 'Merken') {
			$('#memorize_' + aReturnText[1]).attr('value', 'nicht mehr Merken');
		} else {
			$('#memorize_' + aReturnText[1]).attr('value', 'Merken');
			window.location.reload();
		}

		if (currSite == 'notepad') {
			booking.request.showNotepad();
		}
	},

	showRooms : function(iID) {
		this.blendWaitIn();
		this.sLastVisited = 'roomslist';
		var query = { identifier : 'booking', value : '2||'+iID, exec : "ajax" };
		$('#bookingstep').html(booking.general.getBookingSteps(3));
		$.post(sURI, query, this.handleReturn);
		currSite = 'rooms';
	},

	putinbasket : function(iID) {
		this.blendWaitIn();
		var query = { identifier : 'setbooking', value : iID, exec : "ajax" };
		$('#bookingstep').html(booking.general.getBookingSteps(4));
		$.post(sURI, query, this.handleReturn);
	},
	showBasket : function() {
		this.blendWaitIn();
		var query = { identifier : 'showbasket', exec : "ajax" };
		$('#bookingstep').html(booking.general.getBookingSteps(4));
		$.post(sURI, query, this.handleReturn);

		$('#submitbasket').attr('disabled', "true");
		currSite = 'basket';
	},
	showNotepad : function() {
		this.blendWaitIn();
		var query = { identifier : 'shownotepad', exec : "ajax" };
		$.post(sURI, query, this.handleReturn);
		currSite = 'notepad';
	},
	goBack : function(sBackTo) {
		this.blendWaitIn();
		if (sBackTo != '') {
			if (sBackTo != 'basket') {
				this.sLastVisited = sBackTo;
			}
			var query = { identifier : 'backto', value: sBackTo, exec : "ajax" };
			currSite = sBackTo;
		} else {
			var query = { identifier : 'backto', value: this.sLastVisited, exec : "ajax" };
			currSite = this.sLastVisited;
		}
		if (sBackTo == 'search') {
			$('#bookingstep').html(booking.general.getBookingSteps(1));
		}
		$.post(sURI, query, this.handleReturn);
	},
	blendWaitOut : function() {
		$('#fog').css('display', 'none');
	},
	checkAGBSelect : function() {

		var freeButton = true;
		var aAGB = $('[name=agb]');
		for (var i=0; i < aAGB.length; i++) {
			if (aAGB[i].checked == false) {
				freeButton = false;
			}
		}
		if (freeButton == true) {
			$('#submitbasket').removeAttr('disabled');
		} else {
			$('#submitbasket').attr('disabled', "disabled");
		}
	}
}

/**
 * allg. Funktionen
 */

booking.general.prototype = {

	showDetails : function(iID) {
		var query = '?identifier=showdetail&value=' + iID + '&exec=ajax';
		document.getElementById(iID).innerHTML = '<a href="' + sURI + query + '" class="detail_' + iID + '"></a>';
		$('a.detail_' + iID).fancybox({hideOnContentClick : false, frameWidth: 800}).trigger("click");		
	},

	calcPrices : function(sID, fPrice, mValue, sType) {
		iCount = Math.floor(Math.abs(mValue));
		var fTotal = Number($('#totalwo').val());
		if (sType == 'text') {
			fPrice = fPrice * mValue;
			fPrice = fPrice.toFixed(2);
			var sPriceOut = fPrice.toString();
			var aPriceOut = sPriceOut.split('.');
			if (aPriceOut.length < 2) {
				aPriceOut[1] = '00';
			}
			sPriceOut = aPriceOut[0] + ',' + aPriceOut[1];
			$('#' + sID).text(sPriceOut);
		}

		if (sType == 'checkbox') {
			if (mValue.checked == true) {
				fPrice = fPrice.toFixed(2);
				var sPriceOut = fPrice.toString();
				var aPriceOut = sPriceOut.split('.');
				if (aPriceOut.length < 2) {
					aPriceOut[1] = '00';
				}
				sPriceOut = aPriceOut[0] + ',' + aPriceOut[1];
				$('#' + sID).text(sPriceOut);
			} else if (mValue.checked == false) {
				var sPrice = "0,00";
				$('#' + sID).text(sPrice);
			}

		}

		var calcs = jQuery.makeArray($('[name="calc"]'));

		var fCalcs = 0;
		jQuery.each(calcs, function() {
			fCalcs +=  Number(this.innerHTML.replace(/,/, '.'));
		});
		fTotal = fCalcs + fTotal;
		fTotal.toFixed(2);
		var sTotal = fTotal.toString();
		var aTotal = sTotal.split('.');
		if (aTotal.length < 2) {
			aTotal[1] = '00';
		}
		sTotal = aTotal[0] + ',' + aTotal[1];
		$('#total').text(sTotal);
	},

	getBookingSteps : function(iStep) {
		switch (iStep) {
			case 1 : booking.general.changeURL(1);return '<img src="/images/step1.jpg" alt="Buchungsschritt 1 Ferienwohnungen Insel R&uuml;gen buchen" width="200" height="250" border="0"   />'; break;
			case 2 : booking.general.changeURL(2);return '<img src="/images/step2.jpg" alt="Buchungsschritt 2 Ferienwohnungen Insel R&uuml;gen buchen" width="200" height="250" border="0"   />'; booking.general.changeURL(2);break;
			case 3 : booking.general.changeURL(3);return '<img src="/images/step3.jpg" alt="Buchungsschritt 3 Ferienwohnungen Insel R&uuml;gen buchen" width="200" height="250" border="0"   />'; booking.general.changeURL(3);break;
			case 4 : return '<img src="/images/step4.jpg" alt="Buchungsschritt 4 Ferienwohnungen Insel R&uuml;gen buchen" width="200" height="250" border="0"   />'; break;
			case 5 : return '<img src="/images/step5.jpg" alt="Buchungsschritt 5 Ferienwohnungen Insel R&uuml;gen buchen" width="200" height="250" border="0"   />'; break;
			default : return ''; break;
		}
	},

	changeURL : function(iStep) {

		var sHref = window.location.href;
		window.location.assign(sHref + '&step=' + iStep + '#');
	}


}

var oBooking = new window.booking();
oBooking.init();

function doNothing() {}

function getRatingByFilter() {
	var iType = $('#filtertype').val();
	var iObjectID = $('#filtertype').attr('name');
	var iReason = $('#filterreason').val();
	var iChildren = $('#filterchildren').val();
	var iAge = $('#filterage').val();
	sURI = '../conterior/conterior/index.php';
	$('#rating').html('<p>Daten werden geladen. Bitte warten.</p>')
	var query = { identifier : 'getfilterrating', value : iObjectID + '||' + iType + '||' + iReason + '||' + iChildren + '||' + iAge, exec : "ajax" };
	 $.post(sURI, query, function(t){
		$('#rating').html(t);
	 });
}

$(document).ready(function()   {
	if ($('#basket').attr('name') == 'basket') {
		 sURI = '../conterior/conterior/index.php';
		 var query = { identifier : 'basketsize', value : '', exec : "ajax" };
		 $.post(sURI, query, function(t){
		 	$('#basket').val('Warenkorb (' + t + ')');
		 });
		 
	};
	if ($('#notepad').attr('name') == 'notepad') {
		 sURI = '../conterior/conterior/index.php';
		 var query = { identifier : 'notepadsize', value : '', exec : "ajax" };
		 $.post(sURI, query, function(t){
		 	$('#notepad').val('Merkzettel (' + t + ')');
		 });
		 
	}
});