Your IP : 216.73.217.11


Current Path : /home/azimutno/www/demo/media/lib_eshiol_core/js/
Upload File :
Current File : /home/azimutno/www/demo/media/lib_eshiol_core/js/core.11.js

/**
 * @version		13.8.8 media/lib_eshiol_core/js/core.11.js
 * 
 * @package		eshiol Library
 * @subpackage	lib_eshiol
 * @since		12.0.1
 *
 * @author		Helios Ciancio <info@eshiol.it>
 * @link		http://www.eshiol.it
 * @copyright	Copyright (C) 2012-2013 Helios Ciancio. All Rights Reserved
 * @license		http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL v3
 * eshiol Library is free software. This version may have been modified 
 * pursuant to the GNU General Public License, and as distributed it includes 
 * or is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 */

// Only define the eshiol namespace if not defined.			
if (typeof(eshiol) === 'undefined') {
	var eshiol = {};
}

/**
 * Render messages send via JSON
 *
 * @param	object	messages	JavaScript object containing the messages to render
 * @return	void
 */
eshiol.renderMessages = function(messages) {
	var container = document.id('system-message-container');
	var dl = $('system-message');
	if (!dl)
		dl = new Element('dl', {
			id: 'system-message',
			role: 'alert'
		});
	Object.each(messages, function (item, type) {
		var dt = $$('#system-message dt.'+type);
		if (!dt[0])
		{
			dt = new Element('dt', {
				'class': type,
				html: type
			});
			dt.inject(dl);
		}
		var dd = $$('#system-message dd.'+type);
		if (dd[0])
		{
			dd = dd[0];
			var list = $$('#system-message dd.'+type+' ul')[0];
			Array.each(item, function (item, index, object) {
				var li = new Element('li', {
					html: item
				});
				li.inject(list);
			}, this);
		}
		else
		{
			var dd = new Element('dd', {
				'class': type
			});
			dd.addClass('message');
			var list = new Element('ul');
			Array.each(item, function (item, index, object) {
				var li = new Element('li', {
					html: item
				});
				li.inject(list);
			}, this);
		}
		list.inject(dd);
		dd.inject(dl);
	}, this);
	dl.inject(container);
};		

eshiol.dump = function (arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

eshiol.sendAjax = function(name, id, title, url) 
{
	SqueezeBox.close();
	button = $('toolbar-'+name).getElement('a').innerHTML;
	$('toolbar-'+name).getElement('span').addClass('icon-32-waiting');
	img = $('toolbar-'+name).getElement('span').className;
	Joomla.removeMessages();
	url = Base64.decode(url);
	while (url.charCodeAt(url.length-1) == 0)
		url = url.substr(0,url.length-1);
	
	var n = 0;
	var tot = 0;
	var ok = 0;
	var AJAX_QUEUE = [];

	for (var i = 0; $('cb'+i) != null; i++)
	{
		if ($('cb'+i).checked)
		{
			var x = new Request.JSON({
				'cb': $('cb'+i),
				url: url+'&cid='+$('cb'+i).value+'&'+name+'_id='+id,
				method: 'post',
				onRequest: function() 
				{
				},
				onComplete: function(xhr, status, args)
				{
					if (n == AJAX_QUEUE.length)
						$('toolbar-'+name).getElement('a').innerHTML = button;
//						$('toolbar-'+name).getElement('span').removeClass('icon-32-waiting');
					else
						$('toolbar-'+name).getElement('a').innerHTML = '<span class=\''+img+'\'> </span>'+Math.floor(100*n/tot)+'%';
				},
				onError: function(text, r)
				{
					if (r.error && r.message)
					{
						alert(r.message);
					}
					if (r.messages)
					{
						eshiol.renderMessages(r.messages);
					}
					n++;
					if (n == AJAX_QUEUE.length)
						$('toolbar-'+name).getElement('a').innerHTML = button;
//						$('toolbar-'+name).getElement('span').removeClass('icon-32-waiting');					
					else
					{
						$('toolbar-'+name).getElement('a').innerHTML = '<span class=\''+img+'\'> </span>'+Math.floor(100*n/tot)+'%';
						AJAX_QUEUE[n].send();
					}
				},
				onFailure: function(r)
				{
					eshiol.renderMessages({'error':['Unable to connect the server: '+title]});
					n++;
					if (n == AJAX_QUEUE.length)
						$('toolbar-'+name).getElement('a').innerHTML = button;
//						$('toolbar-'+name).getElement('span').removeClass('icon-32-waiting');					
					else
					{
						$('toolbar-'+name).getElement('a').innerHTML = '<span class=\''+img+'\'> </span>'+Math.floor(100*n/tot)+'%';
						AJAX_QUEUE[n].send();
					}
				},
				onSuccess: function(r) 
				{
					this.options.cb.checked = false;
					if (r.error && r.message)
					{
						alert(r.message);
					}
					if (r.messages)
					{
						eshiol.renderMessages(r.messages);
					}
					n++;
					if (n == AJAX_QUEUE.length)
						$('toolbar-'+name).getElement('a').innerHTML = button;
//						$('toolbar-'+name).getElement('span').removeClass('icon-32-waiting');					
					else
					{
						$('toolbar-'+name).getElement('a').innerHTML = '<span class=\''+img+'\'> </span>'+Math.floor(100*n/tot)+'%';
						AJAX_QUEUE[n].send();
					}
				}
			});
			AJAX_QUEUE.push(x);
			tot++;
		}
	}
	if (AJAX_QUEUE.length)
	{
		n = 0;
		$('toolbar-'+name).getElement('a').innerHTML = '<span class=\''+img+'\'> </span>0%';
		AJAX_QUEUE[0].send();
	}	
}