var APP = (function () { var instance, self; function init() { self = APP; if ($('.map-widget').length > 0) { self.Map.init(); } if ($('.media-widget').length > 0) { self.Media.init(); } if ($('#mainPageCounter').length > 0 || $('#subPageCounter').length > 0) { self.Counter.init(); } } return { getInstance: function () { if (!instance) { instance = init(); } return instance; } }; }()); APP.Map = (function () { var self, $xml, $mapwidget, activeState = 0, markerAutoShow = false; //IF marker is behind the map overlay, we need it. function init() { self = APP.Map; $mapwidget = $('.map-widget'); $mapwidget.find('.map-container map area').on('mouseover', function () { var id = $(this).attr('id'); $mapwidget.find('.map-parts').find('.' + id).addClass('show').siblings().removeClass('show'); if (markerAutoShow) { $mapwidget.find('.map-markers li').eq($(this).index()).addClass('show').siblings().removeClass('show'); } }); $mapwidget.find('.map-container').on({ 'click': function () { window.location = $(this).data('url'); }, 'mouseover': function () { $(this).addClass('show') .css('z-index', 30) .siblings().removeClass('show').css('z-index', 20); }, 'mouseout': function () { $('.map-container .map-markers li').removeClass('show'); } }, '.map-markers li'); $mapwidget.find('.menu').on({ 'click': function () { $(this).addClass('active').siblings().removeClass('active'); activeState = parseInt($(this).data('state'), 10) - 1; updateMarkers(); } }, 'li'); $.ajax({ url: 'esemenyek_xml', dataType: 'xml', success: function (data) { $xml = $(data); initFromXML(); } }); } function initFromXML() { //Sorce var buttonHolder = $xml.find('response > buttons'), buttons = buttonHolder.find('button'), defaultState = buttonHolder.attr('defaultstate'), regions = $xml.find('response > regions'), activeState = defaultState - 1, $menulist = $mapwidget.find('.menu li'), i; $menulist.eq(activeState).addClass('active'); //init menu texts for (i = 0; i < buttons.length; i++) { $menulist.eq(i).text(buttons.eq(i).text()) .data('state', buttons.eq(i).attr('state')); } updateMarkers(); } function updateMarkers() { $mapwidget.find('.map-markers').remove(); var state = $xml.find('response > states state[value="' + (activeState + 1) + '"]'), markers = state.find('markers marker'), regions = state.find('regions region'), $markersHolder = $(''), $marker, i; if (markers.length > 7) { markerAutoShow = false; for (i = 0; i < markers.length; i++) { $marker = $('
  • ') .css({ 'top': parseInt(markers.eq(i).attr('coordy'), 10) + 5, 'left': parseInt(markers.eq(i).attr('coordx'), 10) - 75 }) .data('url', markers.eq(i).attr('url')); $marker.append('
    ' + markers.eq(i).text() + '
    '); $markersHolder.append($marker); } } else { markerAutoShow = true; for (i = 0; i < markers.length; i++) { $marker = $('
  • ' + markers.eq(i).attr('value') + '
  • ') .css({ 'top': parseInt(markers.eq(i).attr('coordy'), 10) - 50, 'left': parseInt(markers.eq(i).attr('coordx'), 10) - 85 }); $markersHolder.append($marker); } } $mapwidget.find('.map-names').after($markersHolder); //Update area links! for (i = 0; i < regions.length; i++) { $mapwidget.find('map area').eq(i).attr('href', regions.eq(i).attr('url')); } updateTitle(); } function updateTitle() { var mapTitle = $mapwidget.find('.map-title'); switch (activeState) { case 0: mapTitle.text('Keressen az aktuális pályázataink között!'); break; case 1: mapTitle.text('Böngésszen a támogatott projektek között!'); break; case 2: mapTitle.text('Tekintse meg aktuális rendezvényeinket!'); break; case 3: mapTitle.html('Találja meg Önhöz legközelebbi
    ügyfélszolgálatunkat!'); break; } } return { init: init }; }()); APP.Media = (function () { var self, xml, mediaindex = 0, mediatype, itemcount, $mediawidget, $thumbnailWrapper, thumbnailMoveDistance = 300, player; //for videos function init() { self = APP.Media; $mediawidget = $('.media-widget'); $thumbnailWrapper = $mediawidget.find('.thumbnail-wrapper'); var url = $mediawidget.data('url'); $.ajax({ url: url, dataType: 'xml', success: function (data) { xml = $(data); buildThumbnails(); } }); } function buildThumbnails() { var $thumbnailList = $(''), $thumbnail; xml.find('channel item').each(function () { var item = $(this), thumburl = item.contents().filter('media\\:thumbnail').attr('url'), contenturl = item.contents().filter('media\\:content').attr('url'), mediatype = item.contents().filter('media\\:content').attr('medium'), //video, image, document title = item.find('title').first().text(), downloadurl = item.find('guid').text(); $thumbnail = $('
  • '); $thumbnailList.append($thumbnail); }); $thumbnailWrapper.append($thumbnailList); itemcount = xml.find('channel item').length; initListeners(); updateMedia(); } function initListeners() { $mediawidget.find('.bottom-section .arrow-wrapper').on('click', function () { if ($(this).hasClass('left')) { moveLeft(); } else { moveRight(); } }); $mediawidget.find('.media-wrapper .arrow-wrapper').on('click', function () { if ($(this).hasClass('left')) { if (mediaindex > 0) { mediaindex--; updateMedia(); } } else { if (mediaindex < itemcount - 1) { mediaindex++; updateMedia(); } } }); $mediawidget.find('.thumbnail-wrapper .thumbnail-list li').on('click', function () { mediaindex = $(this).index(); updateMedia(); }); } function moveLeft() { var $thumbnailList = $mediawidget.find('.thumbnail-wrapper .thumbnail-list'), targetX, actleft = $thumbnailList.position().left; if ($thumbnailList.position().left + thumbnailMoveDistance > 0) { targetX = 0; } else { targetX = actleft + thumbnailMoveDistance; } $thumbnailList.stop(true).animate({ left: targetX + 'px' }); } function moveRight() { var $thumbnailList = $mediawidget.find('.thumbnail-wrapper .thumbnail-list'), targetX, actleft = $thumbnailList.position().left; if ($thumbnailList.position().left - thumbnailMoveDistance < -($thumbnailList.width() - $thumbnailWrapper.width())) { targetX = -($thumbnailList.width() - $thumbnailWrapper.width()); } else { targetX = actleft - thumbnailMoveDistance; } $thumbnailList.stop(true).animate({ left: targetX + 'px' }); } function updateMedia() { var selectedItem = $mediawidget.find('.thumbnail-wrapper .thumbnail-list li').eq(mediaindex), mediatype = selectedItem.data('mediatype'), $mediaWrapper; //remove previous, TODO not doooo this $mediawidget.find('.media-wrapper .media-renderer').remove(); switch (mediatype) { case 'image': $mediaWrapper = $(''); $mediawidget.find('.media-wrapper').prepend($mediaWrapper); break; case 'video': $mediaWrapper = $(''); $mediawidget.find('.media-wrapper').prepend($mediaWrapper); createVideoPlayer($mediaWrapper); break; case 'document': break; } $mediawidget.find('.header h1').text(selectedItem.data('title')); $mediawidget.find('.header .download-button').attr('href', selectedItem.data('downloadurl')); } //Video functions function createVideoPlayer($wrapper) { self.player = jwplayer('lightbox-video').setup({ primary: 'flash', autostart: false, flashplayer: 'redesign/swf/player.swf', file: $wrapper.data('videourl'), height: 480, width: 640 }); self.player.play(); } return { init: init }; }()); APP.Counter = (function () { var startValue, speed, endValue, format, cutString, i, SET_SPEED = 1500, oldValue = [], enabled = false, dObj = new Date(), hour = dObj.getHours(), xmlurl; function init() { xmlurl = $('.pageCounter').data('xmlurl'); $.ajax({ type: 'GET', dataType: 'xml', url: xmlurl, success: parseXML }); } function parseXML(xml) { var newValue, $counterBody; $counterBody = $('.counterBody'); startValue = parseInt($(xml).find('umft_kifiz_ft').attr('startvalue'), 10); speed = parseFloat($(xml).find('umft_kifiz_ft').attr('speed')); endValue = parseInt($(xml).find('umft_kifiz_ft').attr('endvalue'), 10); if (hour >= 18 || hour < 8 || startValue > endValue) { format = endValue.toString().split(/(?=(?:\d{3})+(?:\.|$))/g).join('.'); newValue = []; for (i = 0; i < format.length; i++) { if (format[i] === '.') { newValue[i] = '' + format[i] + ''; } else { newValue[i] = '' + format[i] + ''; } } $counterBody.find('.numbers').html(newValue); } else { $counterBody.append('
    '); startValue = startValue + speed; format = startValue.toString().split(/(?=(?:\d{3})+(?:\.|$))/g).join('.'); cutString = format.substring(0, format.length - 6); newValue = []; for (i = 0; i < cutString.length; i++) { if (cutString.charAt(i) === '.') { newValue[i] = '' + cutString.charAt(i) + ''; } else { newValue[i] = '' + cutString.charAt(i) + ''; } } $counterBody.find('.numbers').html(newValue.join('')); setInterval(function () { if (hour >= 18 || hour < 8 || startValue > endValue) { format = endValue.toString().split(/(?=(?:\d{3})+(?:\.|$))/g).join('.'); newValue = []; for (i = 0; i < format.length; i++) { if (format[i] === '.') { newValue[i] = '' + format.charAt(i) + ''; } else { newValue[i] = '' + format.charAt(i) + ''; } } $counterBody.html(''); $counterBody.html('
    '); $counterBody.find('.numbers').html(newValue.join('')); } else { startValue = startValue + speed; format = startValue.toString().split(/(?=(?:\d{3})+(?:\.|$))/g).join('.'); cutString = format.substring(0, format.length - 6); newValue = []; for (i = 0; i < cutString.length; i++) { if (cutString[i] === '.') { newValue[i] = '' + cutString.charAt(i) + ''; } else { newValue[i] = '' + cutString.charAt(i) + ''; } } setTimeout(function () { $('.counterBody .numbers').html(newValue.join('')); for (i = 0; i < cutString.length; i++) { if (oldValue[i] !== newValue[i]) { if (enabled === true) { $('.counterBody .numbers span').eq(i).css('top', -11).animate({top: 0}, {duration: 180, method: 'easeInOutElastic'}); } else { $('.counterBody .numbers span').eq(8).css('top', -11).animate({top: 0}, {duration: 180, method: 'easeInOutElastic'}); } } } enabled = true; oldValue = newValue; }, 340); } }, SET_SPEED); } } return { init: init }; }()); $(document).on('ready', function () { APP.getInstance(); });