function AjaxRequest(url,func){
	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e) {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	request.open("GET", url,true);
	request.setRequestHeader('X-Requested-With','XMLHttpRequest');
	if (request.overrideMimeType) {
		request.overrideMimeType("text/xml");
	}
	if (func) {
		request.onreadystatechange = function (){
			func(request);
		};
	}
	request.send(null);
}
var ticker = {
	sElement: "div-ticker",
	iCycleCount: 3000,
	iFadeInCount: 110,
	iFadeOutCount: 110,
	iCurrentItem: 0,
	sXmlUrl: "",
	aItems: new Array(),
	bPause: false,
	Init : function(el, url){
		var t = ticker;
		t.SetElement(el);
		t.SetXmlUrl(url)
	},
	SetElement : function(el){
		var t = ticker;
		t.sElement = el;
	},
	SetXmlUrl : function(url){
		var t = ticker;
		t.sXmlUrl = url;
		AjaxRequest(url,t.HandleXmlResponse);
	},
	HandleXmlResponse: function(request){
		var t = ticker;
		if (request.readyState == 4){
			if(request.status == 200){
				t.ParseXmlResponse(request);
			}else{
				alert(request.statusText);
			}
		}
	},
	ParseXmlResponse: function(req){
		var t = ticker;
		if (req.responseXML.documentElement){
			aItems = req.responseXML.documentElement.getElementsByTagName('item');
		}
		else{
			dom = new ActiveXObject("MSXML.DOMDocument");
			dom.loadXML(req.responseText);
			aItems = dom.documentElement.getElementsByTagName('item');
		}
		for(i = 0; i < aItems.length; i ++){
			t.aItems[i] = new Array();
			t.aItems[i].title = aItems[i].getElementsByTagName('title')[0].firstChild.nodeValue;
			t.aItems[i].url = aItems[i].getElementsByTagName('link')[0].firstChild.nodeValue;
		}

		t.Create();
		t.FadeIn();
		t.Cycle();
	},
	GetTickerElement : function(){
		var t = ticker;
		return t.sElement;
	},
	Create : function(){
		var t = ticker;

		tickerElement = document.getElementById(t.GetTickerElement());
		tickerElement.style.KHTMLOpacity = 0;
		tickerElement.style.MozOpacity = 0;
		tickerElement.style.opacity = 0;
		tickerElement.style.filter = "alpha(opacity=0)";
		tickerElement.innerHTML = "<a title=\"" + t.aItems[t.iCurrentItem].title + "\" onmouseover='javascript:ticker.Pause();' onmouseout='javascript:ticker.Restart();' href=\"" + t.aItems[t.iCurrentItem].url +"\">" + t.aItems[t.iCurrentItem].title + "</a>";


	},
	Pause : function(){
		var t = ticker;
		t.bPause = true;

	},
	Restart : function(){
		var t = ticker;
		t.bPause = false;
		t.Cycle();
	},
	Switch : function(){
		var t = ticker;
		if(t.iCurrentItem < t.aItems.length-1){
			t.iCurrentItem++;
		}else{
			t.iCurrentItem = 0;
		}
		t.FadeOut();

	},
	Cycle : function(){
		var t = ticker;
		if(t.iCycleCount < 0){
			t.Switch();
			t.iCycleCount = 3000;
		}else{
			t.iCycleCount -= 100;
		}

		if(!t.bPause){
			window.setTimeout("ticker.Cycle()",100);
		}

	},
	FadeOut : function(){
		var t = ticker;
		f = t.iFadeOutCount/100 > 0.999 ? 0.999 : t.iFadeOutCount/100;
		if(t.iFadeOutCount < 0){
			t.iFadeOutCount = 100;
			if(!t.bPause){
				t.Create();
				t.FadeIn();
			}
		}else{
			tickerElement = document.getElementById(t.GetTickerElement());
			tickerElement.style.KHTMLOpacity = f;
			tickerElement.style.MozOpacity = f;
			tickerElement.style.opacity = f;
			tickerElement.style.filter = "alpha(opacity="+(f*10)+")";
			if(!t.bPause)window.setTimeout("ticker.FadeOut()",50);
			t.iFadeOutCount -= 5;
		}
	},
	FadeIn : function(){
		var t = ticker;
		f = t.iFadeInCount/100 > 0.999 ? 0.999 : t.iFadeInCount/100;
		f = (f-1) * (-1);
		if(t.iFadeInCount < 0){
			t.iFadeInCount = 100;
		}else{
			tickerElement = document.getElementById(t.GetTickerElement());
			tickerElement.style.KHTMLOpacity = f;
			tickerElement.style.MozOpacity = f;
			tickerElement.style.opacity = f;
			tickerElement.style.filter = "alpha(opacity="+(f*10)+")";
			if(!t.bPause)window.setTimeout("ticker.FadeIn()",50);
			t.iFadeInCount -= 5;
		}
	}
}