/*** ecomas News ***/

var ecomasNews = {
	responseXML: null,
	responseArray: new Array(),
	
	responseURL : "/presse.rss.php",
	
	currentMsg : 0,
	maxMsgs : 5,
	tm : false,
	
	init:function()
	{
		ecomasNews.addCSS();
		document.writeln('<div id="ecomasNews">');
		document.writeln('<div id="ecomasNewsTopImage">&nbsp;</div>');
		document.writeln('<div id="ecomasNewsList">&nbsp;</div>');
		document.writeln('</div>');
		document.writeln('<div id="ecomasNewsAnime" style="display:none;"></div>');
		
		
		ecomasNews.loadFile({url:ecomasNews.responseURL,rf:"ecomasNews.load()"});
	},
	
	load:function()
	{
		var obj = ecomasNews.XML_Parse();
		try {
			var lng = obj.rss.channel.item.length;
			ecomasNews.responseArray = obj.rss.channel.item;
			ecomasNews.showNext();
			window.setInterval("ecomasNews.showNext()",5000);
			
		} catch(ext) { return ; }
	},
	
	hideItemElement:function()
	{
		var x = parseInt(document.getElementById("ecomasNewsAnime").style.left);
		var y = parseInt(document.getElementById("ecomasNewsAnime").style.top);
		var opacity = parseFloat(document.getElementById("ecomasNewsAnime").style.opacity);
		x++;
		y--;
		opacity = opacity - 0.01;
		document.getElementById("ecomasNewsAnime").style.cssText = "top:"+(y).toString()+"px;left:"+(x).toString()+"px;opacity:"+opacity.toString()+";filter: alpha( opacity=" + (opacity*100).toString() + ")";
		if (opacity >= 0) ecomasNews.tm = window.setTimeout("ecomasNews.hideItemElement()",1);
		else
		{
			document.getElementById("ecomasNewsAnime").style.cssText = "display:none";
			ecomasNews.tm = false
		}
	},
	
	showNext:function()
	{
		if (document.getElementById("newsItems0"))
		{
			if (ecomasNews.tm) window.clearTimeout(ecomasNews.tm);
			var pos = ecomasNews.getElementPosition(document.getElementById("newsItems0"))
			document.getElementById("ecomasNewsAnime").style.cssText = "top:"+(pos.y).toString()+"px;left:"+(pos.x).toString()+"px;opacity:1;";
			document.getElementById("ecomasNewsAnime").innerHTML = document.getElementById("newsItems0").innerHTML;
			ecomasNews.hideItemElement();
		}
		
		var html = "", curInd;
		for (var i = 0; i < ecomasNews.maxMsgs; i++)
		{
			curInd = ecomasNews.currentMsg + i;
			if (curInd >= ecomasNews.responseArray.length) curInd = 0;
			html += '<div id="newsItems'+i.toString()+'"><h1>'+ecomasNews.responseArray[curInd].title.value+'</h1><span>' + ecomasNews.cleanString(ecomasNews.responseArray[curInd].description.value) + '</span></div>';
		}
		
		document.getElementById("ecomasNewsList").innerHTML = html;
		
		ecomasNews.currentMsg++;
		if (ecomasNews.currentMsg >= ecomasNews.responseArray.length) ecomasNews.currentMsg = 0;
	},
	
	addCSS:function()
	{
		var g = ecomasNews.createObject("style","head",{"type":"text/css"});
		var css = '#ecomasNews { width:275px; border:1px solid #e8e8e8; text-align:center; background-color:#e8f0f7; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }'+"\n"
		+ '#ecomasNewsTopImage { width:272px; height:77px; background-image:url(/navigation/aktuelle-projekte.jpg); }' + "\n"
		+ '#ecomasNewsList { margin:3px;height:250px;overflow:hidden; }' + "\n"
		+ '#ecomasNewsAnime { position:absolute; z-index: 39; width:257px; } ' + "\n"
		+ '#ecomasNewsList div, #ecomasNewsAnime{ margin-bottom:3px;height:70px; padding:5px;  background-color:#fff; overflow:hidden; text-align:left; line-height:120%; border:1px solid #e8e8e8;}' + "\n"
		+ '#ecomasNewsList h1, #ecomasNewsAnime h1{ font-size:12px ; color:#333; font-weight:bold; padding:0;margin:0;line-height:120%;}' + "\n"
		+ '#ecomasNewsList span, #ecomasNewsList p, #ecomasNewsAnime span, #ecomasNewsAnime p { font-size:12px; color:#333; padding:0;margin:0;line-height:120%; }' + "\n"
		;
		if (typeof(g.styleSheet) != "undefined") g.styleSheet.cssText = css;
		else
		{
			try
			{
				g.innerHTML = css;
			}
			catch(ext)
			{
				try{
					var text = document.createTextNode(css);
					g.appendChild(text);
				}
				catch(ext2){}
			}
		}
	},
	
	addEvent:function(o,n,h)
	{
		if(o.attachEvent) o.attachEvent("on"+n,h);
		else if (o.addEventListener) o.addEventListener(n,h,false);
	},
	
	cleanString:function(str)
	{
		str = str.replace(/\\/gi,'');// ecomasNews.str_replace(str, "[\\]", "", "gi");
		str = str.replace(/_self/gi,'_blank');
		return str;
	},
	
	loadFile:function(settings)
	{
		if (typeof(settings) == "undefined") return false;
		if (typeof(settings.url) == "undefined") return false;
		else var url = settings.url;
		var modus = (typeof(settings.modus) == "undefined") ? 'GET' : settings.modus;
		var request = false;
		var today = new Date();
		url += (url.indexOf("?") == -1 ? "?" : "&") + "tmLsmas="+today.getTime().toString();
		var contentType = (typeof(settings.contentType) == "undefined") ? 'text/xml' : settings.contentType;
		parameter = null;

		if (typeof(settings.parameter) != "undefined")  url += (url.indexOf("?") == -1 ? "?" : "&")+settings.parameter;
		ecomasNews.responseXML = null;

		if (window.XMLHttpRequest)
		{
		   request = new XMLHttpRequest();
		   if (request.overrideMimeType) request.overrideMimeType('text/xml');
		}
		else if (window.ActiveXObject)
		{
		   try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } 
		   catch (e) {request = false;} }
		}
		if (!request) { alert('Fehler: keine Instanz'); return false;}

		request.onreadystatechange = function()
		{
			if (request.readyState == 4 && request.status == 200)
			{
				if (request.responseXML != null)
				{
					ecomasNews.responseXML = request.responseXML;
					if (typeof(settings.rf) != "undefined")
					{
						eval(settings.rf);
					}
				}
				else alert('Fehler: Document-Syntax');
			}
		};

		request.open(modus, url, true);
		request.setRequestHeader("content-type", contentType);
		if(parameter != null)request.setRequestHeader("Content-length", parameter.length);
		request.setRequestHeader("Connection", "close");
		request.send(parameter);

		return true;
	},

	XML_Parse:function(obj)
	{
		if (typeof(obj) == "undefined") obj = ecomasNews.responseXML;
		if (obj == null) obj = ecomasNews.responseXML;
			
		var sObj = new Array(), names = new Array(), tmp_arr = new Array(), counter;
		if (obj == null) return sObj;
		for (var n = 0; n < obj.childNodes.length; n++)
		{
			if(obj.childNodes[n].nodeType != 3 && typeof(obj.childNodes[n].tagName) != "undefined")
			{
				if (!ecomasNews.in_array(obj.childNodes[n].tagName,names)) names.push(obj.childNodes[n].tagName);
				var val = "";
				if (obj.childNodes[n].firstChild)
				{
					val = obj.childNodes[n].firstChild.nodeValue;
					val = ecomasNews.str_replace(val, String.fromCharCode(153), "&#153;","gi");
					val = ecomasNews.str_replace(val, String.fromCharCode(8482), "&#153;","gi");
					val = ecomasNews.str_replace(val, String.fromCharCode(128), "&#128;","gi");
					val = ecomasNews.str_replace(val, String.fromCharCode(8364), "&#128;","gi");
				}
				
				var Elm = new Object({"name" : obj.childNodes[n].tagName, "value":val,"attributes" : [] });
				if (obj.childNodes[n].attributes.length > 0)
				{
					for (var a = 0; a < obj.childNodes[n].attributes.length; a++)
					{
						var arrt = new Object({"name":obj.childNodes[n].attributes[a].nodeName,"value":obj.childNodes[n].attributes[a].nodeValue});
						Elm.attributes[obj.childNodes[n].attributes[a].nodeName] = obj.childNodes[n].attributes[a].nodeValue;
					}
				}
				counter = 0;
				if (obj.childNodes[n].childNodes.length > 0)
				{
					var childObj = ecomasNews.XML_Parse(obj.childNodes[n]);
					for (var kw in childObj)
					{
						counter++; break;
					}
					if (counter > 0)
					{
						for (var kw in childObj) Elm[kw] = childObj[kw];
					}
				}
				if (typeof(tmp_arr[obj.childNodes[n].tagName]) == "undefined") tmp_arr[obj.childNodes[n].tagName] = new Array();
				tmp_arr[obj.childNodes[n].tagName].push(Elm);
			}
		}
		for (var keys in names)
		{
			if  (tmp_arr[names[keys]].length == 1) sObj[names[keys]] = tmp_arr[names[keys]][0];
			else sObj[names[keys]] = tmp_arr[names[keys]];
		}

		return sObj;
	},
	
	str_replace:function(in_str,reg_exp,replace_str,opts)
	{
		if(in_str==null) return in_str;
		if(typeof(opts)=="undefined") opts='g';
		var re=new RegExp(reg_exp,opts);
		return in_str.replace(re,replace_str);
	},
	
	in_array:function(needle, arr)
	{
		var CurStr = new String("," + arr + ",");
		if (CurStr.indexOf("," + needle + ",") == -1) return false;
		else return true;
	},
	createObject:function(tag,where,attrib)
	{
		if (typeof(where) == "undefined") where = "body";
		if (typeof(where) == "string")
		{
			if (document.getElementsByTagName) where = document.getElementsByTagName(where)[0];
			else if (document.all) where = document.all(where).parentNode;
		}
		var g = document.createElement(tag);
		
		if (typeof(attrib) != "undefined")
		{
			for(var a in attrib)
			{
				ecomasNews.setAttrib(g,a,attrib[a]);
			}
		}
		
		where.appendChild(g);
		return g;
	},
	setAttrib:function(selEl, nm, val)
	{
		if (val == "0%" || val == "%") val = "";
		if(nm == "style") selEl.style.cssText = val;
		else if(nm == "class") selEl.className = val;
		else if (nm == "noWrap") selEl.noWrap = (val == "false" || !val) ? false : true;
		else if (val != null && val != "" && val != -1) selEl.setAttribute(nm,val);
		else selEl.removeAttribute(nm);
	},
	getX:function (obj,relative)
	{
		var x=0;
		if (typeof(relative) == "undefined") relative = false;
		if(typeof(obj)=="object" && document.getElementById)
		{
			x=obj.offsetLeft;
			if(obj.offsetParent && !relative)
			{
				x += ecomasNews.getX(obj.offsetParent);
			}
			return x;
		}
		else return false;
	},
	getY:function(obj,relative)
	{
		var y=0;
		if (typeof(relative) == "undefined") relative = false;
		if(typeof(obj)=="object" && document.getElementById)
		{
			y=obj.offsetTop;
			if(obj.offsetParent && !relative)
			{
				y += ecomasNews.getY(obj.offsetParent);
			}
			return y;
		} else return false;
	},
	getWidth:function (obj)
	{
		var Width=obj.clientWidth;
		if(obj.offsetWidth && obj.offsetWidth > Width && (Width == 0 || /msie/i.test(navigator.userAgent))) Width=obj.offsetWidth;//für IE
		return Width;
	},
	getHeight:function (obj)
	{
		var Height=obj.clientHeight;
		if(obj.offsetHeight && obj.offsetHeight > Height&& (Height == 0 || /msie/i.test(navigator.userAgent))) Height=obj.offsetHeight;//für IE
		return Height;
	},
	getElementPosition:function(obj)
	{
		var x = ecomasNews.getX(obj);
		var y = ecomasNews.getY(obj);
		var width = ecomasNews.getWidth(obj);
		var height = ecomasNews.getHeight(obj);
		return {x:x, y:y, width:width,height:height};
	}
};
ecomasNews.init();
