if (typeof addscrolltop == 'undefined') {
	addscrolltop = 0;
}

if (typeof addscrollto == 'undefined') {
	addscrollto = null;
}

if (typeof settoggle == 'undefined') {
	settoggle = false;
}

jQuery(document).ready(function() {
	jQuery(".addlink").live("click", openUrlInBox);
	jQuery(".addtoggle").live("click", toggleBoxes);
	jQuery("form[name=addreservation]").live("submit", checkForms);
});

function runAddWidget(htmlelement,blockid,url)
{
	var newobject = jQuery(htmlelement).append('<div class="addsitewidget" addsite:block="' + blockid + '">Loading ... <a href="' + url + '" target="_blank">open in nieuw venster</a><\/div>');
	getAjaxPage(url, newobject.find('.addsitewidget'),blockid);
}

function openUrlInBox(event)
{
	event.preventDefault();

	var link_href = jQuery(this).attr("href");
	var rel = jQuery(this).attr("rel");

	var addTarget = jQuery(this).attr("addsite:target");
	var addBlock = jQuery(this).attr("addsite:block");

	// controle of er een blockid voorkomt in de rel attribuut van de link
	// anders controleer of er een blockid voorkomt in .addsitewidget

	var addWidget = jQuery(this).closest('.addsitewidget');

	if (addTarget) {
		var updatebox = jQuery('#' + addTarget);
	} else {
		var updatebox = addWidget;
	}

	if (!rel) {
		rel = updatebox.attr("rel");
	}

	if (!addBlock) {
		addBlock = addWidget.attr("addsite:block");
	}

	if (updatebox) {
		getAjaxPage(link_href,updatebox,addBlock);
	} else {
		location.href = link_href;
	}
}

function toggleBoxes(event)
{
	event.preventDefault();

	var link_href = jQuery(this).attr("href");
	var rel = jQuery(this).attr("rel");

	var addTarget = jQuery(this).attr("addsite:target");
	var addBlock = jQuery(this).attr("addsite:block");

	//var settoggle = true;

	// controle of er een blockid voorkomt in de rel attribuut van de link
	// anders controleer of er een blockid voorkomt in .addsitewidget

	var addWidget = jQuery(this).closest('.addsitewidget');

	if (addTarget) {
		var updatebox = jQuery('#' + addTarget);

		if (updatebox.length == 0) {
			settoggle = false;
			var updatebox = addWidget;
		}
		
	} else {
		var updatebox = addWidget;
	}

	if (!rel) {
		rel = updatebox.attr("rel");
	}

	if (!addBlock) {
		addBlock = addWidget.attr("addsite:block");
	}

	var addtogglebox = jQuery(this).closest('.addtogglebox');
	var toggles = jQuery(addtogglebox).find('.addtoggle');

	jQuery(this).addClass('addselected');

	if (updatebox) 
	{
		if (jQuery(updatebox).hasClass('addrefresh')) 
		{
			jQuery(updatebox).removeClass('addopen')
			//console.log('Refresh content');
		}

		//console.log('Updatebox');
		if (jQuery(updatebox).hasClass('addopen')) 
		{
			hideaddtoggles(toggles,jQuery(this));
			jQuery(updatebox).show();

			if (addscrollto != null) 
			{
				if (addscrollto == 'no') {
					//console.log('no scroll');
				} 
				else if (addscrollto == 'top') {
					//console.log('scroll top');
					window.scrollTo(0,0);
				} else {
					var pos = jQuery(addscrollto).offset();
					//console.log('scroll to 2 : ' + pos.top + ' -> ' + addscrollto);
					window.scrollTo(0,pos.top - addscrolltop);
				}
			}
			else
			{
				var pos = jQuery(updatebox).offset();
				//console.log('scroll to updatebox : ' + pos.top + ' -> ' + addscrollto);
				window.scrollTo(0,pos.top - addscrolltop);
			}

			//console.log('Is open');
		} 
		else 
		{
			//console.log('Get Page');
			getAjaxPage(link_href,updatebox,addBlock,toggles,jQuery(this));

			if (settoggle) {
				jQuery(updatebox).addClass('addopen');
			}
		}
	}
	else 
	{
		location.href = link_href;
	}
}

function hideaddtoggles(toggles,deactive)
{
	if (toggles != 'undefined' )
	{
		jQuery.each(toggles, function(i,val) 
		{
			jQuery(this).removeClass('addselected');
			var checkTarget = jQuery(this).attr("addsite:target");


			//var link_href = jQuery(this).attr("href");
			//if (jQuery(this).get(0) === jQuery(deactive).get(0))

			if (jQuery(this).attr("href") === jQuery(deactive).attr("href"))
			{
				jQuery(this).parent("li").addClass('active');
			}
			else
			{
				jQuery(this).parent("li").removeClass('active');
			}

			jQuery('#' + checkTarget).hide();	
		});
	}
}

function getAjaxPage(link_href,boxid,blockid,toggles,deactive)
{
	if (link_href.indexOf("?") > -1) {
		var url = link_href;
	} else {
		var url = link_href + '?';
	}

	url = url + '&blockid=' + blockid;
	url = url + '&jsoncallback=?';

	//alert(url);

	jQuery.getJSON( url,
		function(json)
		{
			if (json.isOK)
			{
				if (json.blockhtml != null)
				{
					if (json.blockhtml != '')
					{
						jQuery(boxid).html(json.blockhtml);
					}

					if (deactive) {
						hideaddtoggles(toggles,deactive);
					}

					jQuery(boxid).show();

					if (addscrollto != null) 
					{
						if (addscrollto == 'no') {
							//console.log('no scroll');
						} 
						else if (addscrollto == 'top') {
							//console.log('scroll top');
							window.scrollTo(0,0);
						} else {
							var pos = jQuery(addscrollto).offset();
							//console.log('scroll to 1 : ' + pos.top + ' -> ' + addscrollto);
							window.scrollTo(0,pos.top - addscrolltop);
						}
					}
					else
					{
						//console.log('scroll box: ' + boxid);
						var pos = jQuery(boxid).offset();
						//console.log('scroll to box : ' + pos.top + ' -> ' + addscrollto);
						window.scrollTo(0,pos.top - addscrolltop);
					}

					startSlideshow();

					//var pos = jQuery(boxid).offset();
					//alert(pos);

					if (jQuery('#addform'))
					{
						//alert('Formulier');
					}
					
					//jQuery('#addform').ajaxForm({ dataType: 'json', success: saveFormOK });
				}
			}
			else
			{
				checkError(json);
			}
		}
	);
}

function checkForms(event)
{
	event.preventDefault();

	if (document.addreservation.step.value == '') {
		return false;
	}

	var url = jQuery(this).attr("action");
	var addWidget = jQuery(this).closest('.addsitewidget');
	var velden = jQuery(this).serialize();

	//url = url.substr(0,url.indexOf("&jsoncallback="));
	url = url + '&' + velden;
	url = url + '&addform=post&jsoncallback=?';

	//alert(url);

	jQuery.getJSON( url,
		function(json)
		{
			if (json.isOK)
			{
				if (json.blockhtml != null)
				{
					jQuery(addWidget).html(json.blockhtml);

					if (addscrollto != null) 
					{
						if (addscrollto == 'no') {
							//console.log('no scroll');
						} 
						else if (addscrollto == 'top') {
							//console.log('scroll top');
							window.scrollTo(0,0);
						} else {
							var pos = jQuery(addscrollto).offset();
							//console.log('scroll to 1 : ' + pos.top + ' -> ' + addscrollto);
							window.scrollTo(0,pos.top - addscrolltop);
						}
					}
					else
					{
						var pos = jQuery(addWidget).offset();
						window.scrollTo(0,pos.top - addscrolltop);
					}
				}
			}
			else
			{
				checkError(json);
			}
		}
	);
}

function setButton(obj,s,direction,url,blockid)
{
	if (url && url != '') {
		var addWidget = jQuery(obj).closest('.addsitewidget');

		if (blockid && blockid != '') {
			var addBlock = blockid;
		} else {
			var addBlock = addWidget.attr("addsite:block");
		}

		if (addWidget.length > 0  && addBlock) {
			getAjaxPage(url,addWidget,addBlock);
		} else {
			location.href = url;
		}
	}
	else
	{
		document.addreservation.step.value = s;
		document.addreservation.direction.value = direction;
		//document.addreservation.submit();

		var formObj = jQuery(obj).closest('#addform');
		$(formObj).submit();
	}
}

function startSlideshow()
{
	// Add the controlbar
	 hs.addSlideshow({
		 autoplay: false,
		 interval: 5000,
		 repeat: true,
		 useControls: true,
		 fixedControls: 'fit',
		 overlayOptions: {
		 className: 'text-controls',
		 position: 'bottom center',
		 relativeTo: 'viewport',
		 offsetY: -60

	   },
		 thumbstrip: {
			position: 'bottom center',
			mode: 'horizontal',
			relativeTo: 'viewport'
		}
		
	 });
}

function togglePriceBox(obj,direction)
{
	var current = jQuery(obj).closest('.priceperiod');

	if (direction == 'next') {
		var check = current.next('.priceperiod');
	} else if (direction == 'prev') {
		var check = current.prev('.priceperiod');
	}

	if (check.length == 1) {
		current.hide();
		check.show();
	}
}
