var toggleButtonListenerFunction;
var rss_data	= new Array();
var browser		= document.all?'ie':(document.getElementById?'m':'ns');
var ie			= browser=='ie';
var isIE		= (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin		= (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera		= (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
var overrideRestrictions;
//Set a warning message if the flash plugin is not presend or is older version than required.
var warning_msg	= '<iframe width="950" height="735" frameborder="0" align="center" src="no_plugin.html?minimumFlashPlayerVersion='+minimumFlashPlayerVersion+'" scrolling="no"><br />The reality interactive webpage is enhanced with Flash Player 9 content.<br />As a member of the 5% of the world that does not have the latest flash content, we cordially invite you to update your browser with the latest flash player: <br /><a href="http://www.adobe.com/go/getflashplayer" title="update adobe flash player">update adobe flash player</a><br />Click back to this page after installation.<br />Soon to be deployed, our cutting-edge home-grown content management system (CMS) will allow you to easily switch between conventional web mode and flash-enhanced mode at the push of a button.</iframe>';
		//
warning_msg		= '<p style="margin-top:50px; padding:20px;">The reality interactive webpage is enhanced with Flash Player 9 content.<br />As a member of the 5% of the world that does not have the latest flash content, we cordially invite you to update your browser with the latest flash player: <br /><a href="http://www.adobe.com/go/getflashplayer" target="_blank" title="update adobe flash player">update adobe flash player</a><br />Click back to this page after installation.<br />Soon to be deployed, our cutting-edge home-grown content management system (CMS) will allow you to easily switch between conventional web mode and flash-enhanced mode at the push of a button.</p>';
warning_msg		= '<p style="margin-top:50px; padding:20px;">The content you are trying to access requires Flash Player 9.<br />As a member of the 5% of the world that does not have the latest flash content, we cordially invite you to update your browser with the latest flash player: <br /><a href="http://www.adobe.com/go/getflashplayer" target="_blank" title="update adobe flash player">update adobe flash player</a></p>';

//Google maps / contact us fariables:
	var printLinkText	= '<table width="490"><tr><td align="left"><a href="javascript:printDirections();" title="print instructions ..."><img src="../_images/ico-print-small.gif" align="absmiddle" alt="print instructions ..."/> print instructions</a></td><td width="50%" align="right"><a href="javascript:resetMap()" title="reset map ...">reset map <img src="../_images/ico-close-small.gif" align="absmiddle" alt="reset map ..."/></a></td></tr></table>';
	var currentDirrectionsStautsCode= 0;
	//
	var frm	= '<form action="javascript:getDirections(true);" class="map_form"><input type="text" onchange="javascript:map_to_address_change();" name="map_to_address" id="map_to_address" value="enter your address here ..." onfocus="this.select()" /><br/><input type="image" value="get directions" src="../_images/get_directions_btn.png" id="get_directions_btn"/><div id="map_form_error" style="font-size:11px; color:red;"></div></form>';
	//
//
if(!isNaN(minimumFlashPlayerVersion))
	var flashVersionCheck	= DetectFlashVer(minimumFlashPlayerVersion,0,0);	// make sure the plugin is present or do not render any SWFs
//
if(!flashVersionCheck){
	var checkPluginID	= setInterval('listenForNewPlugin()',800);
}
//Toggle button & flash overlay
function toggleButtonListener(s){ (toggleButtonListenerFunction)?toggleButtonListenerFunction(s):show_hide_overlay(); }
//init the flash content on background
function initFlash(){
	var flashPath	= ("../flash/iframe.aspx?page="+sectionID+"&skip=true").toString();
	frames['flash_frame'].location	= flashPath;
}

//Custom Scale
	var scaleID	= 0;
	//
	function scaleObject(id,to,steps){
		var _div= document.getElementById(id);
		var cW	= Number(_div.style.width.split("px")[0]);
		startScale(id,cW,to,steps);
	}
	//
	function startScale(id, from,to, steps,callBack){
		document.getElementById(id).style.width	= from+"px";
		//
		if(scaleID>0)clearInterval(scaleID);
		scaleID		= setInterval("scaleMe("+to+","+Math.round((to-from)/steps)+",'"+id+"','"+callBack+"')",30);
		//	
	}
	//
	function scaleMe(to,_step,id,callBack){
		var _div= document.getElementById(id);
		var cW	= Number(_div.style.width.split("px")[0]);
		//
		if(Math.abs(cW-to)>_step)
			_div.style.width	= (cW+_step)+"px";
		else{
			_div.style.width	= to+"px";;
			clearInterval(scaleID);
			eval(callBack);
		}
		//
	}
	//

//template_contactus_map.google.html
	function showAddress(address) {
	  geocoder.getLatLng(
		address,
		function(point) {
		  if (!point) {
			alert(notFound);
		  } else {
			//
			officeCoordinates	= point;
			//
			map.setCenter(officeCoordinates, 13);
			//
			if(ie)initGMapWidgets();
			//
			_GMarker			= new GMarker(point);
			map.addOverlay(_GMarker);
			_GMarker.openInfoWindowHtml(frm);
			GEvent.addListener(_GMarker, "click", function(){ _GMarker.openInfoWindowHtml(frm); });
			//
		  }
		}
	  );
	}
	//
	function initGMapWidgets(){
		map.enableScrollWheelZoom();
		map.addControl(new GMapTypeControl());
		map.addControl(new GLargeMapControl());
		map.addControl(new GOverviewMapControl());
	}
	//
    function initialize() {
		map = new GMap2(document.getElementById("map_canvas"));
		directionsPanel	= document.getElementById("directions");
		directions		= new GDirections(map, directionsPanel);
		geocoder		= new GClientGeocoder();
		//
		if(!ie)initGMapWidgets();
		//
		showAddress(officeAddress);
		//
    }	
	//
	function getDirections(boo){
		map_err_msg	= document.getElementById('map_form_error');
		status_msg	= document.getElementById('directions_status');
		map_err_msg.innerHTML	= '';
		//
		toAddress	= boo==true?document.getElementById("map_to_address").value:document.getElementById("to_address").value;
		//
		if(defaultStr==toAddress)
			alert(notFound);
		else{
			directions.load(toAddress+" to "+officeAddress);
			GEvent.addListener(directions, "load", onGDirectionsLoad);
			GEvent.addListener(directions, "error", onGDirectionsErrors);
		}
	}
	//
	function onGDirectionsLoad(){
		status_msg.innerHTML	= printLinkText;
		map_err_msg.innerHTML	= '';
		
	}
	//
	function onGDirectionsErrors(){
		var msg	= '';
		map_err_msg.innerHTML	= notFound;
		//
		switch(directions.getStatus().code){
			case G_GEO_UNKNOWN_ADDRESS:
				msg	= notFound;
				break;
			case G_GEO_MISSING_QUERY:
				msg	= notFound;
				break;
			case G_GEO_BAD_KEY:
				msg	= notFound;
				break;
			case G_GEO_BAD_REQUEST:
				msg	= notFound;
				break;
			default:
				msg	= notFound;
				break;
			
		}
		//
		//map_err_msg.innerHTML	= msg;
		//
	}	
	//Print in new window
	function printDirections(){
		printIneNewWindow(directionsPanel.innerHTML);
	}
	//
	function printIneNewWindow(s){
		var r	= Math.round(Math.random()*999999).toString();
		var path	= 'http://maps.google.com/maps?f=q&hl=en&geocode=&q='+escape(toAddress)+'+to+'+escape(officeAddress)+'&ie=UTF8&z=9&pw=2';
		var popWin	= window.open(path, 'new_window'+r, 'height=640, width=780, left=50, top=50, scrollbars=1, resizable=1');
	}
	//
	function resetMap(){
		toAddress	= '';
		directionsPanel.innerHTML	= map_err_msg.innerHTML	= status_msg.innerHTML	= '';
		directions.clear();
		//
		map.setCenter(officeCoordinates, 13);
		_GMarker.openInfoWindowHtml(frm);
	}
	//
	function map_to_address_change(){
		map_err_msg.innerHTML	= '';
	}
//template_contactus_team.html
	function renderProfile(id){
		var o	= profile_buttons[id];
		var xml	= xmlLoaderObj(o['path']);
		//
		o.name		= xml.getElementsByTagName('name')[0].firstChild.nodeValue;
		o.img		= xml.getElementsByTagName('img')[0].attributes[0].value;
		o.contacts	= xml.getElementsByTagName('contacts')[0].firstChild.nodeValue;
		//
		var p	= '';
		for(i in o)
			p	+= i+": "+o[i]+"\n";
		//
		changeOpac(0, "our_team_content");
		shiftOpacity("our_team_content", 250);
		//
		document.getElementById("our_team_content_image").style.backgroundImage = 'url('+o.img+')';
		document.getElementById("our_team_content_title").innerHTML				= o.name;
		document.getElementById("our_team_content_contact").innerHTML			= o.contacts;
		//
		setActiveProfileItem(id);
		//
	}
	//
	function setActiveProfileItem(id){
		for(i=0;i<profile_buttons.length;i++)
			document.getElementById("profile_item_"+i).className	= i==id?'active':'';
	}
	//
	function loadProfiles(){
		//get initial xml data:
		var xml			= xmlObjectFromString(PROFILES);
		var items		= xml.getElementsByTagName('button');
		profile_buttons	= new Array();
		var attrNames	= '';
		var html		= '';
		//
		for(i=0;i<items.length;i++){
			var o		= new Object();
			attrNames	= '';
			o.btn_name	= items[i].firstChild.nodeValue;
			for(k=0;k<items[i].attributes.length;k++){
				o[items[i].attributes[k].name.toString()]	= items[i].attributes[k].value;
				attrNames	+= items[i].attributes[k].name+"="+items[i].attributes[k].value+"\n";
			}
			//
			profile_buttons.push(o);
		}
		//
		for(i=0;i<profile_buttons.length;i++){
			var add		= '';
			itemID	= "profile_item_"+i;
			text 	= profile_buttons[i].btn_name;
			active	= (i==0?'class="active"':'');
			html	= html+'\n<li><a href="javascript:renderProfile('+i+');" id="'+itemID+'" '+active+'><br/>'+text+'</a></li>';
		}
		//
		document.getElementById("gallery_items").innerHTML	= html;
		//load first profile:
		renderProfile(0);
	}

//
function listenForNewPlugin(){
	flashVersionCheck	= DetectFlashVer(minimumFlashPlayerVersion,0,0);	// check current plugin
	if(flashVersionCheck){
		clearInterval(checkPluginID);	// stop listener
		window.location.href = unescape(window.location.pathname);	// refresh the window and load the flash content
	}
}
//
function getHTMLElementByID(id){	return (navigator.appName.indexOf("Microsoft") != -1) ? window[id] : document[id]; }
/*
-	Adobe Detection script:
*/
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}
//
function ControlVersion(){
	var version;
	var axo;
	var e;
	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {}
	//
	if (!version){
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			// default to the first public version
			version = "WIN 6,0,21,0";
			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";
			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");
		} catch (e) {}
	}
	//
	if (!version){
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {}
	}
	//
	if (!version){
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e){}
	}
	//
	if (!version){
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) { version = -1; }
	}
	//
	return version;
}
//
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision){
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray		 = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString		= tempArray[1];			// "2,0,0,11"
			versionArray	  = tempString.split(",");	// ['2', '0', '0', '11']
		} else versionArray	  = versionStr.split(".");
		//
		var versionMajor	  = versionArray[0];
		var versionMinor	  = versionArray[1];
		var versionRevision   = versionArray[2];
		// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))	return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))	return true;
			}
		}
		return false;
	}
}
//
function AC_AddExtension(src, ext){	return (src.indexOf('?') != -1)?src.replace(/\?/, ext+'?'):src + ext; }
//
function AC_Generateobj(objAttrs, params, embedAttrs){ 
	var str = '';
	if (isIE && isWin && !isOpera){
		str += '<object ';
		for (var i in objAttrs)	str += i + '="' + objAttrs[i] + '" ';
		//
		str += '>';
		//
		for (var i in params)	str += '<param name="' + i + '" value="' + params[i] + '" /> ';
		//
		str += '</object>';
	}else{
		str += '<embed ';
		//
		for (var i in embedAttrs)	str += i + '="' + embedAttrs[i] + '" ';
		//
		str += '> </embed>';
	}
	//
	document.write(str);
}
//
function AC_GenerateobjHTML(objAttrs, params, embedAttrs){ 
  var str = '';
  if (isIE && isWin && !isOpera){
	str += '<object ';
	for (var i in objAttrs)	str += i + '="' + objAttrs[i] + '" ';
	//
	str += '>';
	//
	for (var i in params)	str += '<param name="' + i + '" value="' + params[i] + '" /> ';
	//
	str += '</object>';
  }else{
	str += '<embed ';
	//
	for (var i in embedAttrs)	str += i + '="' + embedAttrs[i] + '" ';
	//
	str += '> </embed>';
  }
	//
  return(str);
}
//
function AC_FL_getHTMLString(){
	var ret = AC_GetArgs(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
	return AC_GenerateobjHTML(ret.objAttrs, ret.params, ret.embedAttrs);
}
//
function AC_FL_RunContent(){
	flashVersionCheck	= DetectFlashVer(minimumFlashPlayerVersion,0,0);	// check current plugin
	//
	var ret = AC_GetArgs(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
	//
	if(overrideRestrictions==true)
		AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	else
	if(!(isIE && isWin) && !flashVersionCheck && noBackgroundPluginLoad==true){
		document.getElementById("flashObjectDiv").innerHTML	= warning_msg;
	}else AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
	//
}
//
function AC_SW_RunContent(){
	var ret = AC_GetArgs(arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000", null);
	AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
//
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
	var currArg = args[i].toLowerCase();	

	switch (currArg){	
	  case "classid":
		break;
	  case "pluginspage":
		ret.embedAttrs[args[i]] = args[i+1];
		break;
	  case "src": case"movie":	
		args[i+1] = AC_AddExtension(args[i+1], ext);
		ret.embedAttrs["src"] = args[i+1];
		ret.params[srcParamName] = args[i+1];
		break;
	  case "onafterupdate": case"onbeforeupdate": case"onblur": case"oncellchange": case"onclick": case"ondblclick": case"ondrag": case"ondragend": case"ondragenter": case"ondragleave": case"ondragover": case"ondrop": case"onfinish": case"onfocus": case"onhelp": case"onmousedown": case"onmouseup": case"onmouseover": case"onmousemove": case"onmouseout": case"onkeypress": case"onkeydown": case"onkeyup": case"onload": case"onlosecapture": case"onpropertychange": case"onreadystatechange": case"onrowsdelete": case"onrowenter": case"onrowexit": case"onrowsinserted": case"onstart": case"onscroll": case"onbeforeeditfocus": case"onactivate": case"onbeforedeactivate": case"ondeactivate": case"type": case"codebase": case"id":
		ret.objAttrs[args[i]] = args[i+1];
		break;
	  case "width": case"height": case"align": case"vspace": 
	  case "hspace": case"class": case"title": case"accesskey": case"name": case"tabindex":
		ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
		break;
	  default:
		ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
	}
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
/*
*	RSS / AJAX
*/
function xmlObjectFromString(s){
	if(!isIE){
		if (document.implementation.createDocument) {
		//MOZ / Opera / Others
			var parser = new DOMParser();
			doc = parser.parseFromString(String(s),'application\/xhtml+xml');
		}
	}else if (window.ActiveXObject) {
	// MSIE
		doc	= new ActiveXObject("Microsoft.XMLDOM");
		doc.async="true";
		doc.loadXML(String(s));
	}
	//return the xml object
	return doc;
}
//
function xmlLoaderObj(url){
	if(window.XMLHttpRequest){
		var Loader = new XMLHttpRequest();
		Loader.open("GET", url ,false); 
		Loader.send(null);
		return Loader.responseXML;
	}else if(window.ActiveXObject){
		var Loader = new ActiveXObject("Msxml2.DOMDocument.3.0");
		Loader.async = false;
		Loader.load(url);
		return Loader;
	}
}
//
function loadRSS(){
	browser		= document.all?'ie':(document.getElementById?'m':'ns');
	ie			= browser=='ie';
	isIE		= ie;
	//pos_display	= document.getElementById('pos_display');
	news_ticker	= document.getElementById('news_ticker');
	//
	div_rss_description	= document.getElementById('div_rss_description');
	//
	//cleanUpXSLMess(new Array(document.getElementById('p_c_right_box'),document.getElementById('p_c_right_box_dark')));
	//
	changeOpac(0, 'news_ticker');
	shiftOpacity('news_ticker', 500);
	//
	html	= renderRSSTicker(xmlLoaderObj(rss_path+"?"+Math.random()),'news_item','news_ticker_item');
	news_ticker.innerHTML		= html;
	//
	news_ticker.onmousemove	= checkPosition;
	//news_ticker.onmouseout	= clearRssInfo;
}
//
function renderRSSTicker(xmlData,divId,divClass){
	var i;
	var k;
	var arr	= xmlData.getElementsByTagName("item");
	var html= '<ul class="news-list">';
	//	rss_data= new Array(arr.length);
	var alert_s	= '';
	//
	try{
		
	for(i=0;i<arr.length;i++){
		//alert(i);
		alert_s	= 'arr.length='+arr.length+"\n";
		if(arr[i].nodeType!=null)
		if(arr[i].nodeType==1){
			//
			var o		= new Object();
			var title	= '';
			var desc	= '';
			//
			for(k=0;k<arr[i].childNodes.length;k++){
				//alert_s	+= i+"-> "+k+": type: "+arr[i].childNodes[k].nodeType+"\n";
				if(arr[i].childNodes[k].nodeType==1){
					var name	= arr[i].childNodes[k].nodeName.toString();
					var value	= arr[i].childNodes[k].nodeValue;
					if(arr[i].childNodes[k].childNodes.length>0)
						value	= arr[i].childNodes[k].firstChild.nodeValue.toString();
					//
					alert_s	+= i+"-> "+k+": name: "+arr[i].childNodes[k].nodeName+"\n";
					alert_s	+= i+"-> "+k+": value: "+arr[i].childNodes[k].nodeValue+"\n";
					alert_s	+= i+"-> "+k+": count: "+arr[i].childNodes[k].childNodes.length+"\n";
					if(arr[i].childNodes[k].childNodes.length>0)
						alert_s	+= i+"-> "+k+": child: "+arr[i].childNodes[k].firstChild.nodeValue+"\n";
					//
					if(name=='title')
						title	= value==null?'':value;
					else if(name=='description'){
						desc	=  value==null?'':value;
						rss_data.push(value);	// add the complete data to the rss_data array to reff. later
						break;
					}
					//o[arr[i].childNodes[k].nodeName.toString()]	= arr[i].childNodes[k].firstChild.nodeValue;
					//alert('arr[i].childNodes[k].nodeType==1');
				}
			}
			//
			var style	= desc.toString().length>1?' style="cursor:pointer;"':'';
			html		+='<li onmousedown="javascript:rssItemClick('+i+');"'+style+'>'+title+"</li>";

		}
		//		alert("renderRSSTicker:\n"+alert_s);
	}
	}catch(e){
		//alert("error: "+e);
	}
	//
	html	= html+"</ul>";
	//
	return html;
}
//
function rssItemClick(id){
	var html	= rss_data[id];
	if(html.length<1)return;
	changeOpac(0, 'div_rss_description');
	shiftOpacity('div_rss_description', 150);
	div_rss_description.innerHTML	= "<div style='width:100%; text-align:right; padding-bottom:5px;'><a href=\"javascript:clearRssInfo();\">close (x)</a></div>"+rss_data[id];//.description;
	div_rss_description.style.display	= 'block';
}
//
function clearRssInfo(){
	div_rss_description.innerHTML		= '';
	div_rss_description.style.display	= 'none';	
}
//
function cleanUpXSLMess(a){
	var i;
	if(typeof(a)!='object')return;
	for(i in a)
		if(typeof(a[i])=='object')
		if(a[i].innerHTML)
		if(a[i].innerHTML && a[i].innerHTML.indexOf("&lt;")>-1)	// if that is true then browser shows tags as html safe text and we need to clean that up (NOTE: Firefox does that thingy ...)
			a[i].innerHTML	= a[i].textContent;
}
//
function checkPosition(e){
	if(ie){
		x	= event.clientX + document.body.scrollLeft;
		y	= event.clientY + document.body.scrollTop;
	}else{
		x	= e.pageX;
		y	= e.pageY;
	}
	//
	var ky	= Math.round((y-(news_ticker.offsetTop+news_scroll_offset))*100/(news_div_height-news_scroll_offset*2))/100;
	move_to(ky);
}
//
function move_to(k) {
	news_ticker.scrollTop = (news_ticker.scrollHeight-(news_div_height-news_scroll_offset))*k;
}
//
/*
*	Opacity efects
*/
function opacity(id, opacStart, opacEnd, millisec) { 
	//speed for each frame 
	var speed = Math.round(millisec / 100); 
	var timer = 0; 

	//determine the direction for the blending, if start and end are the same nothing happens 
	if(opacStart > opacEnd) { 
		for(i = opacStart; i >= opacEnd; i--) { 
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
			timer++; 
		} 
	} else if(opacStart < opacEnd) { 
		for(i = opacStart; i <= opacEnd; i++) 
			{ 
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
			timer++; 
		} 
	} 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100); 
	object.MozOpacity = (opacity / 100); 
	object.KhtmlOpacity = (opacity / 100); 
	object.filter = "alpha(opacity=" + opacity + ")"; 
}
//
function shiftOpacity(id, millisec,maxAlpha) { 
	maxAlpha	= maxAlpha==null?100:maxAlpha;
	//usage: <a href="javascript:shiftOpacity('digicam2', 1000)">show/hide</a>
    //if an element is invisible, make it visible, else make it ivisible 
    if(document.getElementById(id).style.opacity == 0) { 
        opacity(id, 0, maxAlpha, millisec); 
    } else { 
        opacity(id, maxAlpha, 0, millisec); 
    } 
}
/*
*	Toggle between HTM and Flash version with iframe overlay
*/
//option 1: overlay w/o transition
function show_hide_overlay(){
	flashVersionCheck	= DetectFlashVer(minimumFlashPlayerVersion,0,0);	// check current plugin
	if(!flashVersionCheck){
		//alert('no flash');
		//return;
	}
	/*
	var current	= document.getElementById('fade').style.display.toLowerCase();
	var toHide	= (current!='none'&&current!='');
	var state	= toHide?'none':'block';
	*/
	var current	= document.getElementById('light').style.width;
	var toHide	= (current!='1px'&&current!='');
	var state	= toHide?'1px':'800px';
	//
	//document.getElementById('light').style.display	= state;
	//document.getElementById('fade').style.display	= 'block';
	document.getElementById('fade').style.width	= toHide?"1px":"100%";
	//
	if(!toHide){
		/*/
		document.getElementById('light').style.display			=
		document.getElementById('flash_frame').style.display	= 'block';
		/*/
		document.getElementById('light').style.width			= 
		document.getElementById('flash_frame').style.width		= "1px";
		//
		document.getElementById('main').style.display			= 'none';
		//
		startScale('light', 100,800, 5, "scaleUpDone()");
		//scaleUpDone();
	}
	//
	var flashPath	= ("../flash/iframe.aspx?page="+sectionID+"&skip=true").toString();
	var currentPath	= frames['flash_frame'].location.toString();
	var compareGETstrings	= currentPath.split("?").pop() == flashPath.split("?").pop();
	//
	if(!toHide && !compareGETstrings){	// load if its for the first time only ...
		frames['flash_frame'].location	= flashPath;
		//alert("compareGETstrings: "+compareGETstrings);
	}
	//
	//document.getElementById('toggle_btn').src	= toHide?"../_images/mode-web-btn.gif":"../_images/mode-kiosk-btn.gif";
	//
	if(toHide){	// this will check if the current html page matches the flash page - if not the corresponding html page will be laoded
		document.getElementById('fade').style.width				= 
		document.getElementById('light').style.width			= 
		document.getElementById('flash_frame').style.width		= "1px";
		//
		document.getElementById('main').style.display			= 'block';
		//
		var compareURLs	= String(window.location.href).split("\\").join("/").split("/").pop().split("#");
		if(compareURLs.length==2 && compareURLs[0]!=compareURLs[1]){
			window.location.href	= "../html/"+compareURLs[1];
		}
	}
}
//
function initFlash(){
	var flashPath	= ("../flash/iframe.aspx?page="+sectionID+"&skip=true").toString();
	frames['flash_frame'].location	= flashPath;
}
//
function scaleUpDone(){
//	document.getElementById('flash_frame').style.display	= 'block';
	document.getElementById('flash_frame').style.width		= "800px";
	document.getElementById('flash_frame').style.height		= "600px";
}
//option 2: overlay w/ transition
function showFlashVersion(){
	var boo	= ShowHideElementByID('flash_container');
	//
	changeOpac(0, 'flash_container');
	shiftOpacity('flash_container', 350);
	frames['flash_frame'].location	= "../flash/?page="+sectionID;
}
//
function ShowHideElementByID(id) {
	var boo;
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = (document.getElementById(id).style.display == "none")?'block':'none';
		boo		= (document.getElementById(id).style.display == "none");
	}else{
		if(document.layers){
			document.id.display = (document.id.display == "none")?'block':'none';
			boo	= (document.id.display == "none");
		}else{
			document.all.id.style.display = (document.all.id.style.visibility == "none")?'block':document.all.id.style.display = 'none';
			boo	= (document.all.id.style.visibility == "none");
		}
	}
	//
	return boo;
}
//
/*
*	Portfolio Gallery functions
*/
	function loadGallery(){
		var xml		= xmlObjectFromString(GALLERY);
		var items	= xml.getElementsByTagName('item');
		var html	= '';
		//
		for(i=0;i<items.length;i++){
			var add		= '';
			var nodes	= items[i].childNodes;
			var text	= '';
			//
			for(k=0;k<nodes.length;k++)if(nodes[k].childNodes.length)text = nodes[k].childNodes[0].nodeValue.toString();//.replace("\"","'").replace("'","\\'");
			//
			path	= items[i].attributes[0].value;
			active	= (i<1?'class="active"':'');
			html	= html+'\n<li><a href="javascript:changeGalleryItem('+i+');" '+active+'>&nbsp;</a></li>';
			var o	= new Object();
			o.html	= text;
			o.path	= path;
			//
			gallery_items.push(o);
		}
		//
		gallery_items.reverse();
		renderGalleryItems(gallery_items.length-1);
		changeGalleryItem(gallery_items.length-1);
	}
	//
	function changeGalleryItem(id){
		changeOpac(0, "gallery_image_holder");
		shiftOpacity("gallery_image_holder", 250);
		//
		var text	= unescape(gallery_items[id].html);
		var path	= gallery_items[id].path;
		//
		document.getElementById("gallery_image_holder").innerHTML	= "<img src=\""+path+"\" />";
		document.getElementById("gallery_description_sub").innerHTML= text.replace("</p><br />","</p>");
		//
		setActiveGalleryItem(id);
		//
	}
	//
	function setActiveGalleryItem(id){
		for(i=0;i<gallery_items.length;i++)
			document.getElementById("gallery_item_"+i).className	= i==id?'active':'';
	}
	//
	function renderGalleryItems(selectedID){
		changeOpac(0, "gallery_items");
		//
		var html	= '';
		//
		for(i=0;i<gallery_items.length;i++){
			var add		= '';
			itemID	= "gallery_item_"+i;
			text 	= gallery_items[i].html;
			path	= gallery_items[i].path;
			active	= (i==selectedID?'class="active"':'');
			html	= html+'\n<li><a href="javascript:changeGalleryItem('+i+');" id="'+itemID+'" '+active+'>&nbsp;</a></li>';
		}
		//
		document.getElementById("gallery_items").innerHTML	= html;
		//
		shiftOpacity("gallery_items", 250);
	}
//