﻿var xmlHttp = null;
var TMRotator_XmlResponse = null;

function TMRotator_Init()
{	
	if (typeof(XMLDocument) != "undefined")
	{
		if (XMLDocument.prototype.selectNodes == null)
		{
			InitXml();
		}
	}
	
	OpacityEvents.OnHideEnd = TMRotator_OnHideEnd;
	
	setTimeout("TMRotator_UpdateContent()", TMRotate_Time);
}

function TMRotator_GetXmlHttpObject()
{ 
	var objXMLHttp = null;
	
	if (window.XMLHttpRequest)
	{
		objXMLHttp = new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	return objXMLHttp;
}

function TMRotator_ResponseHandler()
{
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
	{
		TMRotator_XmlResponse = xmlHttp.responseXML;
		opacity("TestimonialBlock", 99, 0, 1000);
	}
}

function TMRotator_OnHideEnd()
{
	var AjaxContent_Body = document.getElementById(TMRotate_BodyName);
	var AjaxContent_Author = document.getElementById(TMRotate_AuthorName);
	
	var XmlTestimonial = TMRotator_XmlResponse.selectSingleNode("Testimonials/Testimonial");
	
	var BodyNode = XmlTestimonial.selectSingleNode("Body");
	var AuthorNode = XmlTestimonial.selectSingleNode("Author");
	var Body = "";
	var Author = "";

	if (typeof(BodyNode.text) == "undefined")
	{
		Body = BodyNode.textContent;
		Author = AuthorNode.textContent;
	}
	else
	{
		Body = BodyNode.text;
		Author = AuthorNode.text;
	}

	AjaxContent_Body.innerHTML = Body;
	AjaxContent_Author.innerHTML = Author;
	
	opacity("TestimonialBlock", 1, 100, 1000);
}

function TMRotator_UpdateContent()
{
	xmlHttp = TMRotator_GetXmlHttpObject();
	
	if (xmlHttp == null)
	{
		alert("Browser does not support HTTP Request");
		return;
	}
	
	xmlHttp.onreadystatechange = TMRotator_ResponseHandler;
	xmlHttp.open("GET", "TestimonialsAjax.aspx?sid=" + Math.random(), true);
	xmlHttp.send(null);
	
	setTimeout("TMRotator_UpdateContent()", TMRotate_Time);
}

function InitXml()
{
	if( document.implementation.hasFeature("XPath", "3.0") )
	{
		// prototying the XMLDocument
		XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
		{
			if( !xNode ) { xNode = this; } 
			var oNSResolver = this.createNSResolver(this.documentElement)
			var aItems = this.evaluate(cXPathString, xNode, oNSResolver, 
					  XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
			var aResult = [];
			for( var i = 0; i < aItems.snapshotLength; i++)
			{
				aResult[i] =  aItems.snapshotItem(i);
			}
			return aResult;
		}
	
		// prototying the Element
		Element.prototype.selectNodes = function(cXPathString)
		{
			if(this.ownerDocument.selectNodes)
			{
				return this.ownerDocument.selectNodes(cXPathString, this);
			}
			else
			{
				throw "For XML Elements Only";
			}
		}
		
		XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
		{
			if( !xNode ) { xNode = this; } 
			var xItems = this.selectNodes(cXPathString, xNode);
			if( xItems.length > 0 )
			{
				return xItems[0];
			}
			else
			{
				return null;
			}
		}
	  
		// prototying the Element
		Element.prototype.selectSingleNode = function(cXPathString)
		{    
			if(this.ownerDocument.selectSingleNode)
			{
				return this.ownerDocument.selectSingleNode(cXPathString, this);
			}
			else
			{
				throw "For XML Elements Only";
			}
		}
	}
}