/**
 *	Weboo ajax interface
 *	Authors : Oren Ohana, Vincent Cogne
 *	Copyright (c) 2007, webooframework. All rights reserved.
 */
 
 
/**
 *	ajaxify
 *	Create XMLHttpRequest object and send datas to [file]
 *	[file] returns an xml file
 *	[callbackName] is the callback's name
 *	[fileDatas] are params send to [file]
 *	[mode] is the send's method (post, get)
 */
function ajaxify (file, callbackName, fileDatas, mode)
{
	var xhr_object = null;
	
	if (window.XMLHttpRequest)
	{
		xhr_object = new XMLHttpRequest ();
	}
	else if (window.ActiveXObject )
	{
		try
		{
			xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	else
	{
		alert ("Sorry, your browser can't hold this feature.");
		return false;
	}
	
	var callback = new Function ("xhr", callbackName+"(xhr);");
	
	if (!mode)
		mode = 'POST';
	
	xhr_object.open (mode, file, true);
	xhr_object.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	xhr_object.onreadystatechange = function(){ callback (xhr_object); }
	xhr_object.send (fileDatas);
}


function XMLresult (xml, n, field){
	var node;
	
	if (node = xml.getElementsByTagName(field)[n].firstChild){
		return node.nodeValue;
	}
}

function XMLcount (xml){
	return xml.documentElement.getElementsByTagName('item').length;
}

function itemExists (xml, n){
	if (n < 0 || n > xml.documentElement.getElementsByTagName('item').length - 1){
		return 0;
	}else{
		return 1;
	}
	
	if (!xml.documentElement.getElementsByTagName('item')[n]){
		return 0;
	}else{
		return 1;
	}
}


/**
 *	getFormVars
 *	Return post vars from a form
 *	[formName] is the form name
 */
function getFormVars(formName)
{
	if (formName != '')
	{
		postArgs = '';
		for (i=0; i<formName.elements.length; i++)
		{
			if (formName.elements[i].type == 'checkbox')
				postArgs = postArgs + formName.elements[i].name + '=' + formName.elements[i].checked + '&';
			else if (formName.elements[i].type == 'radio')
			{
				if (formName.elements[i].checked)
					postArgs = postArgs + formName.elements[i].name + '=' + formName.elements[i].value + '&';
			}
			else
				postArgs = postArgs + formName.elements[i].name + '=' + escape(formName.elements[i].value) + '&';
		}
		return postArgs;
	}
}


//----------------------------------------------------------------