// Ajax Library

function createREQ()
{
	try
	{
		req = new XMLHttpRequest(); /* e.g. Firefox */
	}
	catch(err1)
	{
		try
		{
			req = new ActiveXObject('Msxml2.XMLHTTP'); /* some versions IE */
		}
		catch(err2)
		{
			try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP"); /* some versions IE */
			}
			catch(err3)
			{
				req = false;
			}
		 }
	 }
	 
     return req;
}

function requestGET(url, query, req)
{	
	myRand=parseInt(Math.random()*99999999);
	req.open("GET",url+'?'+query+'&rand='+myRand,true);
	req.send(null);
}

function requestPOST(url, query, req)
{
	
	req.open("POST", url,true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(query);
}

function doCallback(callback,item)
{	//alert(callback);
	if(callback.indexOf('(') == (callback.indexOf(')') - 1) || callback.indexOf('(')  < 0)
	{
		callback = callback  + '(item)';
	}
	else
	{
		arrCallback = callback.split(')');
		arrCallback['0'] = arrCallback['0'] + ', item)';
		callback = arrCallback['0'];
	}
	eval(callback);
}

function doAjax(url,query,callback,reqtype,option,getxml)
{	
	// create the XMLHTTPRequest object instance
		
	var myreq = createREQ();

	myreq.onreadystatechange = function()
	{
		if(myreq.readyState == 4)
		{
			if(myreq.status == 200)
			{
				var item = myreq.responseText;
				if(getxml==1)
				{
					item = myreq.responseXML;
				}
				if(callback)
				{
					doCallback(callback, item);
				}
			}
		}
		else
		{
			var item;
			var Link;
			
			if(callback == 'ShowBlog(\'macrumors\')')
			{
				Link = '<a href="http://www.macrumors.com" target="_blank">MacRumors.com</a>';
				
			}
			if(callback == 'ShowBlog(\'ai\')')
			{
				Link = '<a href="http://www.appleinsider.com" target="_blank">AppleInsider.com</a>';
				
			}
			if(callback == 'ShowBlog(\'tuaw\')')
			{
				Link = '<a href="http://www.tuaw.com" target="_blank">tuaw.com</a>';
				
			}
			if(callback == 'ShowBlog(\'mdn\')')
			{
				Link = '<a href="http://www.macdailynews.com" target="_blank">MacDailyNews.com</a>';
				
			}
			if(callback == 'ShowBlog(\'com\')')
			{
				Link = '<a href="http://www.cultofmac.com" target="_blank">CultOfMac.com</a>';
				
			}
			if(callback == 'ShowBlog(\'tdm\')')
			{
				Link = '<a href="http://www.macnn.com" target="_blank">macnn.com</a>';
				
			}
			if(callback == 'ShowBlog(\'tab\')')
			{
				Link = '<a href="http://www.theappleblog.com" target="_blank">TheAppleBlog.com</a>';
			}
			if(callback == 'ShowBlog(\'ntf\')')
			{
				Link = '<a href="http://www.9to5mac.com" target="_blank">9to5mac.com</a>';	
			}
			if(callback == 'ShowBlog(\'mcw\')')
			{
				Link = '<a href="http://www.macworld.com" target="_blank">Macworld.com</a>';	
			}
			if(callback == 'ShowBlog(\'ars\')')
			{
				Link = '<a href="http://www.arstechnia.com" target="_blank">ArsTechnica.com</a>';	
			}
			if(callback == 'ShowBlog(\'daf\')')
			{
				Link = '<a href="http://www.daringfireball.com" target="_blank">DaringFireball.com</a>';	
			}
			if(callback == 'ShowBlog(\'dgg\')')
			{
				Link = '<a href="http://www.digg.com/apple" target="_blank">Digg.com - Apple Popular</a>';	
			}			
				item = '<div class="fbtitle"><div class="top_links">&nbsp;<a href="#" onclick="return false;">Reset</a><a href="#" class="button size-sm" onclick="return false;">&laquo; Next</a><a href="#" class="button size-sm" onclick="return false;">Prev &raquo;</a><span class="drag_handle"><a></a></span></div>'+Link+'</div><div style="display:block; text-align:center; padding-top:50px;"><img src="ajax_loader.gif" title="Loading..." alt="Loading..." /></div>';	

doCallback(callback, item);
		}
	}
	if(reqtype=='post')
	{

		requestPOST(url,query,myreq);
	}
	else
	{
		requestGET(url,query,myreq);
	}
}
