/**
*	swfprint v0.2 (16/07/2009) <http://antpaw.de>
*	Copyright (c) 2009 Anton Pawlik <http://antpaw.de>
*	
*	@requires SWFAddress 2.3 or higher <http://www.asual.com/swfaddress>
*/

var swfprint = function(){
	
	function ajaxFrom(ajaxPath)
	{
		SWFAddress.onInit = function()
		{
			var printDiv = document.createElement("div");
			var printId = document.createAttribute("id");
			printId.nodeValue = "print";
			document.getElementsByTagName("body")[0].appendChild(printDiv).setAttributeNode(printId);
		}
		
		SWFAddress.onChange = function()
		{
			loadHTML(ajaxPath+SWFAddress.getValue(), toPrint);
		};
	}
	
	function loadHTML(url, callback)
	{
		var xhr;
		
		if(typeof XMLHttpRequest !== 'undefined')
		{
			xhr = new XMLHttpRequest();
		}
		else
		{
			var versions = ["MSXML2.XmlHttp.5.0", 
			 				"MSXML2.XmlHttp.4.0",
			 			    "MSXML2.XmlHttp.3.0", 
			 			    "MSXML2.XmlHttp.2.0",
			 				"Microsoft.XmlHttp"];
			
			for(var i = 0, len = versions.length; i < len; i++)
			{
			 	try
				{
			 		xhr = new ActiveXObject(versions[i]);
			 		break;
			 	}
			 	catch(e){}
			}
		}
		
		xhr.onreadystatechange = checkData;
		
		function checkData()
		{
			if(xhr.readyState < 4) 
			{
				return;
			}
			
			if(xhr.status !== 200)
			{
				return;
			}
			
			if(xhr.readyState === 4)
			{
				callback(xhr);
			}			
		}
		
		xhr.open('GET', url, true);
		xhr.send('');
	}
	
	function toPrint(xhr)
	{
		document.getElementById('print').innerHTML = xhr.responseText;
	}
	
	/**
	* PUBLIC API
	*/
	return {
		ajaxFrom: ajaxFrom
	};
}();