jQuery.noConflict();

jQuery(document).ready(function() {
	
	jQuery('#facebook .button').toggle(function() {
		var obj = jQuery(this),
		text = obj.find('span').html();
		
		obj.data('text', text)
			.find('span').html('Hide Facebook window').end()
			.next().show();
		}, function() {
			var obj = jQuery(this);
			
			obj.find('span')
				.html(obj.data('text')).end()
				.next().hide();
		} );
		
		jQuery('.ba_fancybox').fancybox({
			'titlePosition'   : 'inside',
			'showCloseButton' : true,
			'onComplete'      : triggerFancyboxLargeImage,
			'titleFormat'     : function(title, currentArray, currentIndex, currentOpts) {
			return '<div>' + currentIndex + ' </div><div>(' +  (currentIndex + 1) + '/' + currentArray.length + ')</div>';
		}
	});
	
	jQuery(".slideshow").each(function() {
		var slideshow = jQuery(this);
		var viewport  = slideshow.find(".viewport");
		
		viewport.find(".item:not(:first) img").hide();
		
		setInterval(function() {
			var width = 0;
			viewport.find(".item").each(function() {
				var item = jQuery(this);
				if (viewport.height() < item.height()) viewport.height(item.height());
				if (width < item.find("img").width()) width = item.find("img").width();
			});
			slideshow.width(width);
		}, 100);
		
		handleSlideshow(viewport, 0, true);
	});	
	
});

function handleSlideshow(viewport, index, firstCall) {
	var item = viewport.find(".item:eq(" + index + ")");
	if (item.length == 0) {
		item  = viewport.find(".item").first();
		index = 0;
	}
	
	item.css("z-index", 100).find(".title span").show()
		.end().siblings().css("z-index", 0).find(".title span").hide();
	
	if (firstCall !== true) {
		item.find("img").hide().fadeIn(750, function() { item.siblings().find("img").hide(); });
	}
	
	viewport.parent().find(".total .current").html(index + 1);
	
	var duration = item.find(".duration").html() * 1000;
	setTimeout(function() {
		handleSlideshow(viewport, index + 1);
	}, duration);
}


function triggerFancyboxLargeImage() {

  var index = parseInt(jQuery("#fancybox-title div:first").html()) + 1;
	var image = jQuery("#list_exhibition_art div:nth-child(" + index  + ")").find("a img").attr("alt");

  ajaxLoader('#fancybox-title .left'); // set loader when we have the image id...

  if(image) {
    doAjaxRequest('CoMeT_function=run_module&module=Exhibition&function=fancybox_image_info&image=' + image, triggerFancyboxOriginalImageResponse);
  }
}


function triggerFancyboxOriginalImageResponse(html) {

	jQuery("#fancybox-title div:first").html(html);

  var imgHeight = jQuery("#fancybox-inner").height();
  var txtHeight = jQuery("#fancybox-title").height();
  jQuery("#fancybox-outer").height(imgHeight + txtHeight + 30);

  // large fancybox
  jQuery(".large_fancybox").fancybox({
    'showCloseButton'	: true,
    'titlePosition' 	: 'inside',
    'onComplete'      : resizeFancyboxOriginalImage,
    'autoScale'       : false
  });
}


function resizeFancyboxOriginalImage() {
  var imgHeight = jQuery("#fancybox-img").height();
  jQuery("#fancybox-outer").height(imgHeight  + 20);
}


/**
 * common functions
 *
 */

function doAjaxRequest(pars, callback) {
  jQuery.ajax({
    type: "POST",
    url: "?",
    data: pars,
    success: callback
  });
}

function ajaxLoader(target_div) {
  jQuery(target_div).show();
  div_content = '<div id="ajax_loader"></div>';
  jQuery(target_div).html(div_content);
}

function validateEmail(elementValue) {
  var emailPattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
  return emailPattern.test(elementValue);
}

