
/*
** top up
*/

TopUp.images_path = "/themes/default/js/top_up/images/";
TopUp.addPresets(
{
	'.top_up_gallery a.top_up' : 
	{
		layout: 'dashboard',
		effect: 'appear',
		shaded: 1,
		resizable: 0,
		overlayClose: 1
	}
});

/*
** scrollBottomListener
*/

function ScrollBottomListener () 
{
	var _this = this;

	this.activated = false;

	this.listen = function()
	{
		$(document).scroll(function()
		{
			if (_this.activated)
			{
				var limitScrollTop = $(document).height() - $(window).height() - 10;
				if( $(document).scrollTop() >= limitScrollTop )
				{
					_this.listenFunction();
				}
			}
		});
	}

	this.listenFunction = function()
	{
		// overide.
	}
	
	this.clear = function()
	{
		_this.activated = false;
		_this.listenFunction = function() {};
	}
}

var scrollBottomListenerInstance = new ScrollBottomListener();
scrollBottomListenerInstance.listen();

/*
** static / draggable
*/

function setStatic (element)
{
	$(element).addClass('static');
}

function setDraggable (element, align)
{
	$(element).append('<div class="help"><span>drag me</span></div>');
	$(element).draggable();
	$(element).css('cursor', 'move');
	$(element).addClass('draggable');
	$(element).addClass('draggable_' + align);
}

/*
** init
*/

function initAddressChangeEvent (event)
{
	$('#content').html(getHtmlLoader());

	//
    $('a').each(function() 
	{
		var href = $(this).attr('href');
		if (href == event.path) 
		{
			$(this).addClass('selected');
		} 
		 else 
		{
			$(this).removeClass('selected');	
		}
       });

	//
	$.ajax({ url: event.value,
		success: function(data) {

			initBackground();

			//
			$('#content').html(data);
			$('#content').hide().fadeIn();
			
			//
			_gaq.push(['_trackEvent', 'Page', 'Open', event.value]);
		}
	});
}

function initTopButton ()
{
	$('#top a').attr('href', 'javascript:;');
 	$('#top a').click (
		function() {
			$('body').scrollTo(0, 500);
		}
	);
}

function initMosaic ()
{
	$('ul.mosaic li.item').each(function(index) 
	{
		var _this = $(this);
		var info = _this.children('div.info');
		if (info) 
		{
			_this.hover(
				  function () {
				    $(info).show();
				  },
				  function () {
				    $(info).hide();
				  }
			);
			info.hide();
		}
	 });
}

function initListAjaxLoad (listName)
{
	$('ul.' + listName + ' li.item').each(function(index) 
	{
		var _this = $(this);
		var header = _this.children('div.item-header');
		var addthis = header.children('div.addthis');
		var more = _this.children('div.item-more');
		if (more) 
		{
			var h3 = header.children('h3');
			var a = more.children('a');
			var href = a.attr('href');

			header.css('cursor', 'pointer');
			header.hover(
				  function () {
				    addthis.show();
				  },
				  function () {
				    addthis.hide();
				  }
			);
			header.click(function() {
				var is_content = _this.children('div.item-content').length;
				
				if (is_content) 
				{
					h3.removeClass('close');
					h3.addClass('open');
					_this.children('div.item-content').remove();
				}
				 else
				{
					h3.removeClass('open');
					h3.addClass('close');
					_this.append('<div class="item-content">' + getHtmlLoader() + '</div>');
					var content = _this.children('div.item-content');
					$.ajax({ 
						url: href,
						context: more,
						success: function(data){
							content.hide().html(data).show();
							_gaq.push(['_trackEvent', 'Page', 'Open', href]);
					}});
				}
			});
		}

		h3.addClass('open');
		more.hide();
		addthis.hide();

	 });
}


function initPaginationAjaxLoad (paginationName)
{
	var pagination = $('#' + paginationName);
	var button = pagination.children('div.page-button');
	var href = button.children('a').attr('href');
	button.children('a').attr('href', 'javascript:;');

	//
	button.click(function() 
	{
		loadPaginationAjaxLoad(paginationName, href);
	});

	//
	scrollBottomListenerInstance.activated = true;
	scrollBottomListenerInstance.listenFunction = function () 
	{
		loadPaginationAjaxLoad(paginationName, href);
		scrollBottomListenerInstance.clear();
	}
	

}

function loadPaginationAjaxLoad (paginationName, url)
{
	var pagination = $('#' + paginationName);
	var button = pagination.children('div.page-button');

	button.html(getHtmlLoader());
	$.ajax({ 
		url: url, 
		context: pagination,
		success: function(data) {
			pagination.html(data);
			_gaq.push(['_trackEvent', 'Page', 'Open', url]);
		}
	});
}

/*
** background
*/

function initBackground ()
{
	$('#background').remove();
	$('body').append('<div id="background"></div>');
}

function setBackgroundFlash ()
{
	initBackground();
	var html = '<div id="flashContent"></div>';
	$('#background').html(html);
}

function setBackgroundImage (image, width, height)
{
	initBackground();
	var html ='<div id="imageContent">';
	html += '<img src="/files/' + image + '" width="' + width + '" height="' + height + '" />';
	html += '</div>';
	$('#background').html(html);
	$('#imageContent').css('margin-top', -(height/2));
	$('#imageContent').css('margin-left', -(width/2));
}

/*
** modal
*/

var closeModalAjax = function (hash)
{
	var $modalWindow = $(hash.w);
	$modalWindow.fadeOut('fast', function()
	{
		hash.o.remove();
	});
};

var openModalAjax = function (hash)
{
	var $modalWindow = $(hash.w);
	$modalWindow.fadeIn('fast');
}

function initModalAjax (jqModalWindowName)
{
	$('#' + jqModalWindowName).remove();

	//
	var html = '<div id="' + jqModalWindowName + '" class="jqmWindowAjax jqmWindow">'
	html += '<div class="jqmClose"><span>close</span></div>'
	html += '<div class="jqmContent"></div>'
	html += '</div>'
	$('body').append(html);

	//
	var t = $('#' + jqModalWindowName + ' div.jqmContent');
    $('#' + jqModalWindowName).jqm(
	{
		overlay: 30,
		trigger: 'a.trigger-' + jqModalWindowName,
		ajax: '@href',
		target: t,
		onHide: closeModalAjax,
		onShow: openModalAjax
    });
}

/*
** utils
*/

function getHtmlLoader ()
{
	html = '<div class="loader">';
	html += '<img src="/themes/default/images/ajax-loader.gif" alt="">';
	html += '</div>';
	return html;
}


