/*
*************************************************************************************************************

	Filename:		studiosdigital.js
	Description:	Javascript for website www.apo-wiesen.at
	
	Copyright:		StudiosDigital - © Austria, Vienna 2006 - All Rights Reserved
					
*************************************************************************************************************
*/

// class XMLTicker constructor
function XMLTicker(_htmlElement,_width,_height,_xmlpath,_pause){
	if(this.init(_htmlElement,_width,_height,_xmlpath,_pause)){
		this.getXML();
	}
}

// class XMLTicker
XMLTicker.prototype = {
	
	init : function(_htmlElement,_width,_height,_xmlpath,_pause){
		this._dhtml = (document.getElementById || document.all || document.layers);
		this._xHttp = this.initAjax();
		this._data = new Array();
		this._tmpData = new Array();
		if(!this._xHttp){
			return false;
		}
		
		// class XMLTicker constructor parameters
		
		this._headline = '';
		this._htmlElement = _htmlElement;
		this._width = _width;
		this._height = _height;
		this._xmlpath = _xmlpath;
		this._container = this.getElement();
		this._pause = _pause;
		this._innerHTML = '';
		this._item = 0;
		
		return true;
	}
	,
	getElement : function(){
		return document.getElementById(this._htmlElement);
	}
	,
	setContent : function(){
		if(this._width == undefined){
			this._referrer = arguments.callee._referrer;
		}
		else{
			this._referrer = this;
		}
		
		if(this._referrer._item >= this._referrer._data.length){
			this._referrer._item = 0;
		}
	
		if(!this._referrer._dhtml){
			this._referrer.setHTML(this._referrer._item);
			return;
		}
		
		this._referrer.setHTML(this._referrer._item);
		
		this._referrer._newsCanvas = document.getElementById('news_canvas');
		this._referrer.animateContent._oScope = this._referrer;
		this._referrer.animateContent._mode = 1;
		for(var i=0;i<10;i++){
			this._referrer.myTimeout = setTimeout(this._referrer.animateContent,i*50+100);
		}
		this._referrer._item += 1;
		this._referrer.waitContent._referrer = this._referrer;
		this._referrer.waitContent._mode = -1;
		this._referrer.myWait = setTimeout(this._referrer.waitContent,this._referrer._pause);
		
	}
	,
	waitContent : function(){
		this._referrer = arguments.callee._referrer;
		this._referrer.animateContent._mode = -1;
		for(var i=0;i<10;i++){
			this.myTimeout = setTimeout(this._referrer.animateContent,i*50+100);
		}
		this._referrer.setContent._referrer = this._referrer;
		setTimeout(this._referrer.setContent,700);
	}
	,
	setHTML : function(item){
		this._innerHTML = '<div id="news_canvas">'+'<strong>&nbsp;'+this._data[item]['headline']+'</strong> '+this._data[item]['text']+' '+'<a href="'+this._data[item]['link']+'">'+this._data[item]['linktext']+'</a>'+'</div>';
		this._container.innerHTML = this._innerHTML;
		var tmp = document.getElementById('news_canvas');
	}
	,
	animateContent : function(){
		var _mode = arguments.callee._mode;
		var _referrer = arguments.callee._oScope;
		var _opacity = _referrer._newsCanvas.style.opacity;
		if(_referrer._newsCanvas.style.opacity == undefined){
			_opacity = _referrer._newsCanvas.style.filter;
		}
		else if(isNaN(_referrer._newsCanvas.style.opacity)){
			_opacity = _referrer._newsCanvas.style.filter;
		}
		_referrer._newsCanvas.style.opacity = ((_opacity*10)+_mode)/10;
		var increase = ((_opacity*10)+_mode)*10;
		_referrer._newsCanvas.style.filter = 'alpha(opacity='+increase+')';	//ie
	}
	,
	initAjax : function (){
		var xHttp;
		try{
			xHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try{
				xHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				xHttp = false;
			}
		}
		if(!xHttp && typeof XMLHttpRequest != 'undefined'){
			xHttp= new XMLHttpRequest();
		}
		return xHttp;
	}
	,
	handleResponse : function(){
		if(this._referrer==undefined){
			arguments.callee._referrer._responseXML = arguments.callee._referrer._xHttp.responseXML;
			arguments.callee._referrer.parseXML();
		}
		else{
			this._referrer._responseXML = this.responseXML;
			this._referrer.parseXML();
		}
	}
	,
	getXML : function(){
		if(this._xHttp){
			try{
				this._xHttp._referrer = this;
				this._xHttp.onload = this.handleResponse;
			}
			catch(e){
				this.checkIE._referrer = this;
				this._xHttp.onreadystatechange = this.checkIE;
			}
			this._xHttp.open('GET',this._xmlpath, true);
			this._xHttp.send('');
		}
	}
	,
	checkIE : function(){
		if(arguments.callee._referrer._xHttp.readyState==4){
			arguments.callee._referrer.handleResponse._referrer = arguments.callee._referrer;
			arguments.callee._referrer.handleResponse();
		}
	}
	,
	parseXML : function(){
		var _data = new Array();
		var items = this._responseXML.getElementsByTagName('item');
		var tmp;
		for(var i=0;i < items.length;i++){
			_data[i] = new Array();
			_data[i]['headline'] = items[i].getElementsByTagName('headline').item(0).firstChild.data;
			_data[i]['text'] = items[i].getElementsByTagName('text').item(0).firstChild.data;
			_data[i]['link'] = items[i].getElementsByTagName('link').item(0).firstChild.data;
			_data[i]['linktext'] = items[i].getElementsByTagName('linktext').item(0).firstChild.data;
		}
		this._data = _data;
		this.setContent();
	}
}


