/**
* CCMS fade Background
* Gives a div a fading background whit connected images
*
* Depentent files, jQueryScripts.js, style.css, map ajaxRequests
*
* @SB
*/


(function($) {
	$.ccmsFadeBackground = {version: '0.1 BETA'};

	$.fn.ccmsFadeBackground = function(settings) {
		settings = jQuery.extend({
			animationSpeed: 1000, /* time */
			structuurid: 1,
			ajaxGetImagesScript: '/javascript/ajaxRequests/getImgUl.php',
			ajaxGetBreakStatusScript: '/javascript/ajaxRequests/getBreakStatus.php',
			ajaxSetBreakStatusScript: '/javascript/ajaxRequests/setBreakStatus.php',
			extraPostData: '',
			timeOut: 5000,
			showBreakOption: false,
			breakActiveHtml: '<a href="Javascript:void(0);" class="bActivLink" rel="0">start</a>',
			breakNotActiveHtml: '<a href="Javascript:void(0);" class="bNotActivLink" rel="1">pauzeer</a>'
		}, settings);

		$.ccmsFadeBackground.cleanUp = function()	{
			if ($("div#imgHold").length > 0)	{
				$("body div#imgHold").remove();
			}
			if ($("div.imgAbsHolder").length > 0)	{
				$("div.imgAbsHolder").remove();
			}
		}

		var imgUlList = false;
		var exEl = $(this);

		//handle the images request
		//returns a
		$.ccmsFadeBackground.getImages = function(shOne)	{

			var extData = '';
			//extra data for request
			if (settings.extraPostData != '')	{
				var extData = '&extraData='+settings.extraPostData;
			}

			//make a request
			$.ajax({
				url: settings.ajaxGetImagesScript,
				type: "GET",
				data: 'wId='+ settings.structuurid + extData,
				dataType: "html",
				//cache: false,
				success: function(responseHtml) {
					if (responseHtml != '0')	{
						$.ccmsFadeBackground.handleRecievedDate(responseHtml,shOne);
					}
				}
			});
		}

		$.ccmsFadeBackground.handleRecievedDate = function(ajaxData,shOne)	{
			//put the images in a array

			if ($("div#imgHold").length == 0)	{
				var holder = $('<div id="imgHold"/>').html(ajaxData);
				$("body").append(holder);
			}

			// calling this before first clone
			initPrettyFotoLinks();

			if ($("div.imgAbsHolder").length == 0)	{
				//create a holder after the element
				var imgShowHolder = $('<div class="imgAbsHolder"/>');
				exEl.append(imgShowHolder);
				//$("div#content").html(imgShowHolder);
			}

			$.ccmsFadeBackground.handleBackground(0,false,shOne);

		}

		$.ccmsFadeBackground.handleBackground = function(curImg,restart,shOne)	{

			//check
			if ($("div#imgHold img").length > 0)	{

				var totalImages = $("div#imgHold img").length;

				var curBgImg = 'url('+$("div#imgHold img:eq("+curImg+")").attr('src')+')';

				var curA = $("div#imgHold a:eq("+curImg+")");

				// enable pretty photo before the clone
				$("div#imgHold a").attr('rel', 'prettyPhoto[gallery]');

				var curI = $(curA).clone(true);

				// disable pretty photo to avoide double
				$(curA).attr('rel', '');

				curImg++;

				if (shOne != 'yes')	{

					//put the first img
					if (curImg == 1 && restart === false)	{
						$("div.imgAbsHolder").html(curI);
						window.setTimeout(function()	{
							$.ccmsFadeBackground.handleBackground(curImg,false)
						},settings.timeOut);
					}else	{
						if (curImg <= totalImages)	{
							//div background src curI image
							$("div.imgAbsHolder").css('backgroundImage', curBgImg);
							$("div.imgAbsHolder img").fadeOut(settings.animationSpeed, function()	{
								$("div.imgAbsHolder").html(curI);
								//$("div.imgAbsHolder img").hide();
//								$("div.imgAbsHolder img").fadeIn(settings.animationSpeed, function()	{
									window.setTimeout(function()	{
										$.ccmsFadeBackground.handleBackground(curImg,false)
									},settings.timeOut);
//								});
							})
						}else	{
							//$.ccmsFadeBackground.stop();
							$.ccmsFadeBackground.handleBackground(0,true);
						}
					}

				}else	{
					$("div.imgAbsHolder").html(curI);
				}


			}
		}


		$.ccmsFadeBackground.setBreakStatus = function(setState)	{
			$.ajax({
				url: settings.ajaxSetBreakStatusScript,
				type: "GET",
				data: 'st='+ setState
			});
			$.ccmsFadeBackground.handleBreakOption('yes');
		}


		$.ccmsFadeBackground.handleBreakOption = function(onlyShow)	{
			//add a button
			if ($("div.breakHolder").length == 0)	{
				var breakHolder = $('<div class="breakHolder"/>');
				exEl.append(breakHolder);
			}
			//get the status for the button text
			$.ajax({
				url: settings.ajaxGetBreakStatusScript,
				dataType: "html",
				//cache: false,
				success: function(responseHtml) {


					if (onlyShow == 'yes')	{
						if (responseHtml == '0')	{
							$("div.breakHolder").html(settings.breakNotActiveHtml);
						}else	{
							$("div.breakHolder").html(settings.breakActiveHtml);
						}
					}else	{

						if (responseHtml == '0')	{
							$("div.breakHolder").html(settings.breakNotActiveHtml);
							$.ccmsFadeBackground.getImages();
						}else	{
							$("div.breakHolder").html(settings.breakActiveHtml);
							$.ccmsFadeBackground.getImages('yes');
							if ($("div#imgHold").length > 0)	{
								$("body div#imgHold").remove();
							}
						}
					}

					$("div.breakHolder a").click(function()	{
						var setState = $(this).attr('rel');
						//change the state
						$.ccmsFadeBackground.setBreakStatus(setState);
						if (setState == '0')	{
							//$.ccmsFadeBackground.handleBackground(0,true);
							$.ccmsFadeBackground.getImages();
						}else	{
							if ($("div#imgHold").length > 0)	{
								$("body div#imgHold").remove();
							}
						}
					});
				}
			});



		}

		$.ccmsFadeBackground.start = function()	{
			//execute the actions
			//$.ccmsFadeBackground.cleanUp();
			//$.ccmsFadeBackground.getImages();
			//check for showing break button
			if (settings.showBreakOption)	{
				$.ccmsFadeBackground.handleBreakOption('no');
			}else	{
				$.ccmsFadeBackground.cleanUp();
				$.ccmsFadeBackground.getImages();
			}
		}

		$.ccmsFadeBackground.stop = function()	{
			return false;
		}

		$.ccmsFadeBackground.stopAndClean = function()	{
			$.ccmsFadeBackground.cleanUp();
			return false;
		}




		//start the function
		$.ccmsFadeBackground.start();


	};
})(jQuery);
