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,
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();
});