var ajaxct = 0;
var ajaxxml = [];
var ajaxtxt = [];
var ie=document.all;

function ajaxdump( v )
{
	var w = window.open( '', 'debug' );
	w.document.write( '<textarea style="width:100%;height:100%">' + v + '</pre>' );
}

var ajaxrequests = [];
function ajaxrequest(url, callback_function, callback_param, return_xml) 
{ 
	var http_request = false; 
	var method = 'GET', sendtxt = null;
	if(typeof(ajaxdebug) == "undefined") ajaxdebug =0;
	if( arguments.length == 6 )
	{
		method = arguments[4];
		sendtxt = arguments[5];
	}

	var ajaxid = ajaxct++;
	if (window.XMLHttpRequest) { // Mozilla, Safari,... 
		 http_request = new XMLHttpRequest(); 
		 if (http_request.overrideMimeType) { 
			  http_request.overrideMimeType('text/xml'); 
		 } 
	} else if (window.ActiveXObject) { // IE 
		 try { 
			  http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
		 } catch (e) { 
			  try { 
					http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
			  } catch (e) {} 
		 } 
	} 

	if (!http_request) { 
		 alert('Unfortunatelly you browser doesn\'t support this feature.'); 
		 return false; 
	} 
	http_request.onreadystatechange = function() { 
		if( !ie && http_request.aborted ) return;
		 if (http_request.readyState == 4) { 
			  if (http_request.status == 200  ) { 
					if( http_request.responseText == '' ) return;
				 	if( 1 && ajaxdebug )
					{
						ajaxtxt[ajaxid] = http_request.responseText;
						debug( 'ajax', ajaxid, '<a href="' + url + '" target="_blank">' + url + '</a>', method, sendtxt, '<a href="javascript:;" onclick="ajaxdump(ajaxtxt[' + ajaxid + '])">show</a>' );
					}
					if (return_xml) { 
						 eval(callback_function + '(http_request.responseXML,callback_param,http_request.responseText)' ); 
					} else { 
						 eval(callback_function + '(http_request.responseText,callback_param)' ); 
					} 
			  } else if( http_request.status != 0 ) { 
					alert('There was a problem with the request.(Code: ' + http_request.status + ')'); 
			  } 
		 } 
	} 
	http_request.open(method, url, true); 
	if( method == 'POST' ) http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	if( !ie ) http_request.aborted = false;
	http_request.send(sendtxt);
	ajaxrequests.push( http_request );
	return http_request;
}

function abort_all_ajax_requests()
{
	for( var i = 0 ; i < ajaxrequests.length ; i++ )
	{
		if( ajaxrequests[i].readyState != 4 )
		{
			if( !ie ) ajaxrequests[i].aborted = true;
			ajaxrequests[i].abort();		
		}
	}
}

function getXMLNodeSerialisation(xmlNode) {
  var text = false;
  try {
    // Gecko-based browsers, Safari, Opera.
    var serializer = new XMLSerializer();
    text = serializer.serializeToString(xmlNode);
  }
  catch (e) {
    try {
      // Internet Explorer.
      text = xmlNode.text;
    }
    catch (e) {}
  }
  return text;
}


function ntag( xml, tag )
{
	return xml.getElementsByTagName(tag);
}

function vtag( xml, tag )
{
	var node = xml.getElementsByTagName(tag);

	if( node.length > 0 && node[0].firstChild != null )
	{
		return node[0].firstChild.nodeValue;
	}
	else
		return '';
}

function nodeval( node )
{	
	if( node.firstChild != null )
		return node.firstChild.nodeValue;
	else
		return '';
}

function resulttxt( txt, obj )
{
	obj.innerHTML = txt;
}


function resulttxt2( txt, obj )
{
	obj.innerHTML += txt;
}

function parsexml( txtxml )
{
	if( !ie )
		return new DOMParser().parseFromString(txtxml, 'text/xml');
	else
	{
		var xmldom = new ActiveXObject('Microsoft.XMLDOM'); xmldom.loadXML(txtxml); return xmldom;
	}
}

function getCookie (name) {
var dcookie = document.cookie; 
var cname = name + "=";
var clen = dcookie.length;
var cbegin = 0;
        while (cbegin < clen) {
        var vbegin = cbegin + cname.length;
                if (dcookie.substring(cbegin, vbegin) == cname) { 
                var vend = dcookie.indexOf (";", vbegin);
                        if (vend == -1) vend = clen;
                return unescape(dcookie.substring(vbegin, vend));
                }
        cbegin = dcookie.indexOf(" ", cbegin) + 1;
                if (cbegin == 0) break;
        }
return '';
}


function setCookie (name, value)
{
delCookie(name);
value = value + '';
value = value.replace( /\n/, '' );
document.cookie = name + "=" + escape (value) + 
"; expires=" + expdate.toGMTString() +  "; path=/";
}

function setSessionCookie (name, value)
{
delCookie(name);
value = value + '';
value = value.replace( /\n/, '' );
document.cookie = name + "=" + escape (value);
}




function delCookie (name) {
var expireNow = new Date();
document.cookie = name + "=" +
"; expires=Thu, 01-Jan-70 00:00:01 GMT" +  "; path=/";
}


function delAllCookies() 
{ 
	if(document.cookie) 
	{
		var names=document.cookie.split("; ");
		for(var i=0; i<names.length; i++) 
		{
			name=names[i].substring(0,(names[i].indexOf("=", 0)));
			document.cookie=name+"=; expires=Thu, 01-Jan-70 00:00:01 GMT";
		}
	}
}


var expdate = new Date(); expdate.setTime(expdate.getTime() +  (60 * 60 * 1000 * 24 * 365 )); // 1 dia

