// JavaScript Document
function AJAX() 
{
	this.url = 'http://' + document.domain + '/';
}

AJAX.prototype.myrequest=null;
AJAX.prototype.Construct = function() 
{
	var req; 	
	if (window.XMLHttpRequest && typeof document.namespaces == 'undefined')//mozilla check
	{
		try
		{
			req =  new XMLHttpRequest(); 
			req.overrideMimeType('text/xml');
		}
		catch(e)
		{
			req = false;
		}
	}
	else 
	{
		 try { req = new ActiveXObject("Msxml2.XMLHTTP"); } 
		 catch(e) 
		 {
			try { req = new ActiveXObject("Microsoft.XMLHTTP"); } 
			catch(e) { req = false; } 
		 }
	}
	this.myrequest =  req;	
}
/* XML Request Processor */
AJAX.prototype.proccessReqChange = function( handler )
{
	try 
	{ 
		if (this.myrequest.readyState == 4 && this.myrequest.status == 200 && this.myrequest.responseXML ) 
		{
			return handler( this.myrequest ); 
		}
	}
	catch(e){}//deprecated state change error
}

AJAX.prototype.loadXMLDocument = function( name, email ,_on_news,_on_jobs, handler ) 
{
		var ajObject = this;
		var target = ajObject.url + 'ajax/' + name + '/' + email + '/' + _on_jobs + '/' + _on_news;
		
		//target = encodeURIComponent(target);
		
		this.Construct();
		this.myrequest.onreadystatechange = function()
		{
			return ajObject.proccessReqChange( handler );
		}
		this.myrequest.open("GET", target, true );
		this.myrequest.send(null);	
}
AJAX.prototype.loadXML2Document = function( nodeId, visible , handler ) 
{
		var ajObject = this;
		var target = ajObject.url + 'cpanelmenu/visibility/'+nodeId + '/' + visible;

		this.Construct();
		this.myrequest.onreadystatechange = function()
		{
			return ajObject.proccessReqChange( handler );
		}
		this.myrequest.open("GET", target, true );
		this.myrequest.send(null);	
}

AJAX.prototype.trace = function( name, email, _on_news, _on_jobs )
{	
	this.loadXMLDocument(name,email,_on_news,_on_jobs, this.tracestatushandler )
}
AJAX.prototype.visibility=function(nodeId, visible)
{
	this.loadXML2Document(nodeId,visible,this.visiblehandler);
}

AJAX.prototype.visiblehandler=function( dom ){ return true; }

AJAX.prototype.tracestatushandler = function( dom )
{

	var regex = new RegExp("<status>([0-9])</status>");

	var state = regex.exec(dom.responseText);


	if (state[1]) //successfull subscribe
	{
		getObject('newsletter').innerHTML = 'Tak for din tilmelding.';
	}
	else 
	{
		getObject('newsletter').innerHTML = 'You have already subscribed.';
	}
}





