
	/*
	+----------------------------------------------------------------
	|
	|	MJGUEST
	|	=============================================================
	|	Copyright (c) 2002-2006 Giacomo "mdsjack" Menni
	|	Terms of agreement and support at www.mdsjack.bo.it
	|
	+----------------------------------------------------------------
	|	[ INTERFACE MODULE ]
	|	Dynamic entries scrolling
	+----------------------------------------------------------------
	*/

/**
 * function onmousewheel,
 *	onmousewheel(element:Object [, callback:Function]):Void
 * @param	Object		window, document or DOM.element to use with callback
 * @param	Function	callback function with element scope (.call(...)) and delta wheel value as single parameter
 * @return	Void
 */
function onmousewheel(element, callback) {
		
	// @author	Andrea Giammarchi		[http://www.devpro.it/]
	// @license	MIT 					[http://www.opensource.org/licenses/mit-license.php]
	// @credits	Adomas Paltanavicius 	[http://adomas.org/javascript-mouse-wheel/]
	
	function __onwheel(event) {
		var	delta = 0;
		if(event.wheelDelta) {
			delta = event.wheelDelta / 120;
			if(window.opera)
				delta = -delta;
		}
		else if(event.detail)
			delta = -event.detail / 3;
		
		if(delta)
			callback.call(element, delta);
		/*
		if (http.busy)
		{
		//	document.getElementById('log').value += 'Stop scroll\n';
			
			if(event.preventDefault)
				event.preventDefault();
			
			event.returnValue = false;
			
			return false;
		}
		*/
		
		element.scrollTop -= delta * 40;
		return false;
	};
	
	if(element.addEventListener && !window.opera)
		element.addEventListener("DOMMouseScroll", __onwheel, false);
	else
		element.onmousewheel = (function(base){return function(evt){
			if(!evt) evt = window.event;
			if(base) base.call(element, evt);
			return __onwheel(evt);
		}})(element.onmousewheel);
};

var from = parseInt(location.url['from']) || 0;
var end = false;
var working = false;

function dyn_load_entries(delta)
{
	if (!http.busy && !end && delta < 0 && document.getElementById('page').scrollHeight-document.getElementById('page').scrollTop < 1000)
	{
		from += Settings.entriesxpage;
		
		if (!document.getElementById('dyn_loaded_entries'))
		{
			box = document.createElement('div');
			box.setAttribute('id', 'dyn_loaded_entries');
			
			document.getElementById('page').insertBefore(box, document.getElementById('page').getElementsByTagName('div')[document.getElementById('page').getElementsByTagName('div').length-1]);
		}
		
		http.dataManage = function()
		{
			var entries = http.response.getElementsByTagName('entry');
			
			if (entries.length == 0)
			{
				end = true;
				return false;
			}
			
			for(i = 0, set = entries.length; i < set; i++)
				
				document.getElementById('dyn_loaded_entries').innerHTML += 
'<div class="entry" id="e_'+entries[i].getAttribute('id')+'">\
	<div class="e_header">\
		<div class="e_avatar">'+entries[i].getElementsByTagName('avatar')[0].firstChild.nodeValue+'</div>\
		<div class="e_name">\
			<small>'+entries[i].getElementsByTagName('country')[0].firstChild.nodeValue+'</small><strong>'+entries[i].getElementsByTagName('name')[0].firstChild.nodeValue+'</strong>\
		</div>\
		<div class="e_date">'+entries[i].getElementsByTagName('date')[0].firstChild.nodeValue+'</div>\
		<div class="e_icons">'+entries[i].getElementsByTagName('icons')[0].firstChild.nodeValue+'</div>\
	</div>\
	<div class="e_body">'+entries[i].getElementsByTagName('message')[0].firstChild.nodeValue+'</div>\
</div>';
			
		};
		
		http.dataManageErr = function() { void(0) };
		
		http.dataRequest('?do=dyn_load_entries&from=' + from);
	}
};

function scroll_ops(elem, delta)
{
	dyn_load_entries(elem, delta);
};

if (document.getElementById('page')) addLoadEvent(function() { onmousewheel(document.getElementById('page'), scroll_ops) });