﻿var $_imagePath = '/content/images/system/';
var $_XMLPath = '/content/slideshow_xml/';

$(document).ready(function () {
	$.each($('.slideshowOuter'), function (key, value) {
		if ($(this).hasClass('divSlideshowAstma')) { getSlidesCollection('slideshow_astma.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowFlaat')) { getSlidesCollection('slideshow_flaat.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowForhoejetBlodtryk')) { getSlidesCollection('slideshow_forhoejetblodtryk.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowLus')) { getSlidesCollection('slideshow_lus.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowNaesespray')) { getSlidesCollection('slideshow_naesespray.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowOejendraaber')) { getSlidesCollection('slideshow_oejendraaber.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowOejensalve')) { getSlidesCollection('slideshow_oejensalve.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowOerdraaber')) { getSlidesCollection('slideshow_oeredraaber.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowPriktest')) { getSlidesCollection('slideshow_priktest.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowSaadanFungererHjerte')) { getSlidesCollection('slideshow_saadanfungererhjertet.xml', $(this), 520); }
		if ($(this).hasClass('divSlideshowSaadanMaalerDuBlodtryk')) { getSlidesCollection('slideshow_saadanmaalerdublodtryk.xml', $(this), 520); }
	});
});

function initSlideshow(iDiv, iSlides, iWidth) {
	iDiv.prev('.divSlideshowStartup').find('.SlideshowDescriptionIntro').before(createSlideshowImg('/Content/Images/blank.gif', 'borderNone', '500', '281'));
	iDiv.prev('.divSlideshowStartup').append(createSlideshowImg('/Content/Images/system/slideshow_toolbar_disabled.gif', 'borderNone', '500', '24'));
	iDiv.prev('.divSlideshowStartup').find('.SlideshowDescriptionIntro').html(iSlides[0].desc);
	iDiv.prev('.divSlideshowStartup').find('img:first-child').attr('src', iSlides[0].slide);
	iDiv.prev('.divSlideshowStartup').bind('click', function () { // SLIDESHOW IS HIDDEN UNTIL ACTIVATED
		$(this).next('.slideshowOuter').toggle(true);
		$(this).toggle(false);
		handleAudio(iDiv, iSlides, getCurrentPos(iDiv));
	});

	if (slideshowHasAudio(iSlides)) { iDiv.prev('.divSlideshowStartup').prev('.slideshowHeader').append($('<div>').addClass('hasAudioIcon').attr('title', getConfigValue('alttext_hasaudio')).css('background-image', 'url(' + $_imagePath + 'slideshow_audio_24x16_hasaudio.gif)').css('background-position', '0px 1px')); }

	iDiv.find('.slidesContainer').css('overflow', 'hidden');
	iDiv.find('.slideInner').html('').css('width', iWidth * iSlides.length);

	addSlides(iDiv.find('.slideInner'), iSlides, iWidth);

	iDiv.find('.slideInner').animate({ 'marginLeft': iWidth * (-getCurrentPos(iDiv)) });

	manageControls(iDiv, iSlides, getCurrentPos(iDiv));

	iDiv.find('.btnSlideshowForward').bind('click', function () {
		setCurrentPos(iDiv, 1);
		manageControls(iDiv, iSlides, getCurrentPos(iDiv));
		iDiv.find('.slideInner').animate({ 'marginLeft': iWidth * (-getCurrentPos(iDiv)) });
	});
	iDiv.find('.btnSlideshowPrevious').bind('click', function () {
		setCurrentPos(iDiv, -1);
		manageControls(iDiv, iSlides, getCurrentPos(iDiv));
		iDiv.find('.slideInner').animate({ 'marginLeft': iWidth * (-getCurrentPos(iDiv)) });
	});
	iDiv.find('.btnSlideshowReset').bind('click', function () {
		$(iDiv.find('input:hidden').get(0)).val(1);
		manageControls(iDiv, iSlides, getCurrentPos(iDiv));
		iDiv.find('.slideInner').animate({ 'marginLeft': iWidth * (-getCurrentPos(iDiv)) });
	});
	iDiv.find('.btnAudioToggle').click(function () {
		stopAllAudio();
		if (getCookie('slideshowAudioOFF') == null) {
			setCookieSimple('slideshowAudioOFF', 1, 31);
		} else {
			setCookieSimple('slideshowAudioOFF', 0, -1);
			setCookieSimple('slideshowAudioFailAlertOFF', 0, -1);
		}
		handleAudio(iDiv, iSlides, getCurrentPos(iDiv));
	});
	$(iDiv.find('input:hidden').get(1)).val(1); // <<< SLIDESHOW LOADED
}
function manageControls(iDiv, iSlides, currentPos) {
	$(iDiv).find('.divCurrentSlide').text((currentPos) + '/' + (iSlides.length - 1));

	iDiv.find('.btnAudioToggle').attr('src', $_imagePath + 'slideshow_audio_28x22_off.gif');
	iDiv.find('.btnSlideshowPrevious').css('background-image', 'url(' + $_imagePath + 'slideshow_btn_bg_50x22.gif)');
	iDiv.find('.btnSlideshowForward').css('background-image', 'url(' + $_imagePath + 'slideshow_btn_bg_50x22.gif)');
	iDiv.find('.btnSlideshowReset').css('background-image', 'url(' + $_imagePath + 'slideshow_btn_bg_28x22.gif)');
	iDiv.prev('.divSlideshowStartupOuter').attr('title', getConfigValue('alttext_start'));
	iDiv.find('.btnSlideshowForward').attr('title', getConfigValue('button_next'));
	iDiv.find('.btnSlideshowPrevious').attr('title', getConfigValue('button_back'));
	iDiv.find('.btnSlideshowReset').attr('title', getConfigValue('button_rewind'));

	if (currentPos == 1) {
		$(iDiv).find('.btnSlideshowPrevious').removeAttr('title').attr('disabled', 'disabled');
		$(iDiv).find('.btnSlideshowReset').removeAttr('title').attr('disabled', 'disabled');
	} else {
		$(iDiv).find('.btnSlideshowPrevious').removeAttr('disabled');
		$(iDiv).find('.btnSlideshowReset').removeAttr('disabled');
	}
	if (currentPos == iSlides.length - 1) { $(iDiv).find('.btnSlideshowForward').removeAttr('title').attr('disabled', 'disabled'); } else { $(iDiv).find('.btnSlideshowForward').removeAttr('disabled'); }

	handleAudio(iDiv, iSlides, currentPos);
}
function handleAudio(iDiv, iSlides, currentPos) {
	stopAllAudio();
	$(iDiv).find('.btnAudioToggle').removeAttr('title').attr({ 'disabled': 'disabled', 'src': $_imagePath + 'slideshow_audio_28x22_disabled.gif' });
	$(iDiv).find('iframe').data('iFrameAudio', null);

	if (iSlides[currentPos].audio != null) {
		$(iDiv).find('iframe').data('iFrameAudio', '/content/usercontrols/slideshow3.0_audio_iframe.htm?audiosource=' + iSlides[currentPos].audio);
		$(iDiv).find('.btnAudioToggle').removeAttr('disabled').attr({ 'title': getConfigValue('audio_off'), 'src': $_imagePath + 'slideshow_audio_28x22.gif' });
		if (getCookie('slideshowAudioOFF') == null) {
			if ($(iDiv.find('input:hidden').get(1)).val() == '1') {
				stopAllAudio();
				$(iDiv).find('.btnAudioToggle').attr('src', $_imagePath + 'slideshow_audio_28x22_loading.gif');
				$(iDiv).find('iframe').attr('src', $(iDiv).find('iframe').data('iFrameAudio'));
			}
		}
		else {
			disableAudioBtns();
		}
	}
}

function stopAllAudio() {
	$.each($('.slideshowOuter').find('iframe'), function (key, value) {
		$(this).attr('src', 'about:blank');
	});
}
function iframeLoaded(iThis) {
	$currDiv = $(iThis).closest('.slideshowOuter');
	if ($(iThis).data('iFrameAudio') != null) {
		$currDiv.find('.btnAudioToggle').removeAttr('disabled').attr({ 'title': getConfigValue('audio_off'), 'src': $_imagePath + 'slideshow_audio_28x22.gif' });
	}
}
function disableAudioBtns() {
	$.each($('.btnAudioToggle'), function (key, value) {
		if ($(this).attr('src') != $_imagePath + 'slideshow_audio_28x22_disabled.gif') {
			$(this).removeAttr('disabled').attr({ 'title': getConfigValue('audio_on'), 'src': $_imagePath + 'slideshow_audio_28x22_off.gif' });
		}
	});
}
function addSlides(iContainer, iSlides, iWidth) {
	$.each(iSlides, function (key, value) {
		$("<div>").addClass('slide').css({ float: "left", width: iWidth })
			.append(createDiv('divImageSlide', '<img src="' + value.slide + '" width="500" height="281" alt="" />', iWidth))
			.append(createDiv('SlideshowDescription', value.desc))
		.appendTo(iContainer);
	});
}
function setPlayBtn(ifrmLocation) {
	var aUrl = ifrmLocation.substring((ifrmLocation.lastIndexOf('/', ifrmLocation.indexOf('?')) + 1));
	var isMatch = null;
	$.each($('iframe'), function (key, value) {
		if (isMatch == null) {
			isMatch = $(this).attr('src') == aUrl ? $(this) : null;
		}
	});
	if (isMatch != null) {
		$currDiv = $(isMatch).closest('.slideshowOuter');
		$currDiv.find('.btnPlay').attr('src', $_imagePath + 'btn_speaker_28x22_play_01.gif');
	}
}
function getCurrentPos(iDiv) { return parseInt($(iDiv.find('input:hidden').get(0)).val()); }
function createSlideshowImg(iPath, iCls, iW, iH) { return $('<img>').addClass(iCls).attr({ src: iPath, width: iW, height: iH }); }
function setCurrentPos(iDiv, iVal) { $(iDiv.find('input:hidden').get(0)).val(parseInt(getCurrentPos(iDiv)) + parseInt(iVal)); }
function createDiv(iClass, iHtml, iWidth) { return $('<div>').addClass(iClass).css({ float: 'left', width: iWidth }).html(iHtml); }
function slideshowHasAudio(iSlides) {
	for (var i = 0; i < iSlides.length; i++) {
		if (iSlides[i].audio != null) {
			return true;
			break;
		}
	}
	return false;
}
function getSlidesCollection(iSrc, iDiv, iWidth) {
	jQuery.ajaxSetup({
		//beforeSend: function () {
		//$('#divAjaxResult').html('<div style="margin:140px 0px 0px 118px; color:#999;"><img src="/content/images/system/preloader24x24.gif" width="24" height="24" alt="" class="floatLeft mgnrgt8" /> <div class="floatLeft mgntop2"><b>Henter</b></div></div>') },
		//complete: function () {
		//alert('Gennemfoert'); $('#logo').css('background', 'none') },
		error: function () { alert('Error fetching XML file: \'' + $_XMLPath + iSrc + '\''); }
	});
	$.ajax({
		type: 'GET',
		async: false,
		url: $_XMLPath + iSrc,
		dataType: 'xml',
		success: function (data) {
			var i = 0;
			iArray = new Array($(data).find('slide').length);
			$(data).find('slide').each(function () {
				var aAudio = $(this).find('audio').text().length == 0 ? null : $(this).find('audio').text();
				iArray[i] = {
					slide: $(this).find('image').text(),
					desc: $(this).find('text').text(),
					audio: aAudio
				};
				i++;
			});
			initSlideshow(iDiv, iArray, iWidth)
		}
	});
}
function getConfigValue(iName) {
	var retVal = '';
	$.ajax({
		type: 'GET',
		async: false,
		url: $_XMLPath + '_slideshow_config.xml',
		dataType: 'xml',
		success: function (data) { retVal = fixXMLNewLines($(data).find(iName).text()); }
	});
	return retVal;
}
function fixXMLNewLines(iStr) { return iStr.split('\\n').join('\n'); }
