﻿
/* FUNCTIONALITY FOR TOOLTIPS
----------------------------------------------------*/
var arrObjHolder=new Array();


var loadDictionary=function(){
	var arrTipElems = getElementsByClassName(document, "*", "tooltip");
	var intElems = arrTipElems.length;
	for(var i=0;i<intElems;i++){
		var TipElm=arrTipElems[i];
		if(TipElm.getAttribute('title')){			
			addEvent(TipElm,'mouseover', DisplayTooltip);
			addEvent(TipElm,'mouseout', HideTooltip);
		}
	}
};


/* DISPLAY TOOLTIP
----------------------------------------------------*/
var DisplayTooltip=function(event){

	var elmTitle=this.title;
	var maxY = 500;
	if(!elmTitle) elmTitle=this.getAttribute('title');
	
	if(!elmTitle) return;
	this.setAttribute('rel',elmTitle);
	this.setAttribute('title','');
	this.div=document.createElement('div');
	arrObjHolder['infoLyr']=this.div;

	
	
	
	var x=(document.all)?window.event.x+document.body.scrollLeft:event.pageX;
	var y=(document.all)?window.event.clientY+document.body.scrollTop:event.pageY;
	
	
	if(y >= maxY-8) y = maxY-8;
	
	
	this.div.style.left=(x + 130) +'px'; 
	this.div.style.top=(y + 2) +'px'; 

	this.div.id='tooltip-container';	
	this.div.zIndex=1000;
	this.div.innerHTML='<em>'+ elmTitle +'</em>';	
	
	document.getElementsByTagName('body')[0].appendChild(this.div);					

	if(event.stopPropagation){
		event.stopPropagation();
		event.preventDefault();
	}else{
		event.cancelBubble = true;
		event.returnValue = false;
	}

};


var HideTooltip=function(){		
	
	arrObjHolder['infoLyr'].innerHTML='';
	arrObjHolder['infoLyr'].style.display='none';
	this.setAttribute('title',this.getAttribute('rel'));
}


/* GET OBJECT COORDINATES
----------------------------------------------------*/
var getObjectCoordinate={
	X : function(obj){
		var curleft=0;
		if(obj.offsetParent){while(1){curleft += obj.offsetLeft;if(!obj.offsetParent) break;obj=obj.offsetParent;};
		}else if(obj.x){curleft += obj.x;}
		return curleft;
	},
	Y : function(obj){
		var curtop=0;
		if(obj.offsetParent){while(1){curtop += obj.offsetTop;if(!obj.offsetParent) break;obj=obj.offsetParent;};
		}else if(obj.y){curtop += obj.y;}
		return curtop;
	}
};


/* CHECK IF OBJECT HAS A FUNCTION-EVENT ATTACHED
----------------------------------------------------*/
var hasFunctionEvent=function(obj,eventhandler){
	if(!obj.attributes) return false;
	var n=obj.attributes.length;
	for(var xxx=0; xxx<n; xxx++){
		var strEvent='e'+ eventhandler +'function';
		if(obj.attributes[xxx].nodeName.indexOf(strEvent)!==-1){
			return (obj.attributes[xxx].value?true:false);
		}
	}
};
/* GET FILE EXTENSION
----------------------------------------------------*/
String.prototype.getFileExtension=function(){
	return(this.substring(this.length-4,this.length));
};
/* GET ELEMENTS BY CLASSNAME
----------------------------------------------------*/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
};
/* EVENTHANDLER FOR ADDING EVENTS TO OBJECTS
----------------------------------------------------*/
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
var EventCache = function(){
	var listEvents=[];
	return {
		listEvents: listEvents,
		add: function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush: function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item=listEvents[i];
				if(item[0].removeEventListener){item[0].removeEventListener(item[1], item[2], item[3]);};
				if(item[1].substring(0, 2) != "on"){item[1] = "on" + item[1];};
				if(item[0].detachEvent){item[0].detachEvent(item[1], item[2]);};
				item[0][item[1]] = null;
			};
		}
	};
}();
/* GET ELEMENTS BY CLASSNAME
----------------------------------------------------*/
var getElementsByClassName=function(oElm, strTagName, strClassName){
	var arrElements=(strTagName=='*' && oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);
	var arrReturnElements=new Array();
	strClassName=strClassName.replace(/\-/g, "\\-");
	var oRegExp=new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0;i<arrElements.length;i++){
		oElement=arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements);
};
/* SHORTCUT FOR GET ELEMENY BY ID
----------------------------------------------------*/
var $=function(elm){
	return document.getElementById(elm);
};
/* CANCEL THE EVENT
----------------------------------------------------*/
var CancelEvent=function(e){
	if(e.preventDefault){e.preventDefault()}
	else{e.returnResult=false}
	if(e.stopPropagation){e.stopPropagation()}
	else{e.cancelBubble=true;event.returnValue = false;}
};
/* GET OBJECT COORDINATES
----------------------------------------------------*/
var elmPos={
	X : function(obj){
		var curleft=0;
		if(obj.offsetParent){while(1){curleft += obj.offsetLeft;if(!obj.offsetParent) break;obj=obj.offsetParent;};
		}else if(obj.x){curleft += obj.x;}
		return curleft;
	},
	Y : function(obj){
		var curtop=0;
		if(obj.offsetParent){while(1){curtop += obj.offsetTop;if(!obj.offsetParent) break;obj=obj.offsetParent;};
		}else if(obj.y){curtop += obj.y;}
		return curtop;
	}
};
/* SHOW NOTE
----------------------------------------------------*/
function shownote(note) {
	if (note.id == 'note_1-15-link') {
		if (note.className != 'active') {
			show('note_1-15');
			hide('note_16-30'); 				
			note.className='active'; 
			$('note_16-30-link').className = 'inactive';
		}
		else {
			hide ('note_1-15');
			note.className ='inactive';
		}
	}
	else {
		if (note.className != 'active') {
			show('note_16-30');
			hide('note_1-15'); 				
			note.className='active'; 
			$('note_1-15-link').className = 'inactive';
		}
		else {
			hide ('note_16-30');
			note.className ='inactive';
		}
		
	}
	
}	
function swapImg(eImg, imgName) {var path = "../../images/";eImg.src = path + imgName;}		
function switchLogo(eImg, imgName) {var path = "../../images/Logotypes/";eImg.src = path + imgName;}		
function show(id) {var e = $(id);e.style.visibility = 'visible';}
function hide(id) {var e = $(id);e.style.visibility = 'hidden';}

function showOverview(showText, hideText) {	
	if (document.addEventListener) {	blockstyle = 'table-cell';	} //FF 
	else {blockstyle = 'block';} //IE
	
	
	var e = document.getElementById('tablecontent');
	var thHistory = e.getElementsByTagName('th');	
	var tdHistory = e.getElementsByTagName('td');		
	var a = document.getElementById('overview');
	var img = '<img src="../../images/arrow-';
	
	if (e.className != 'expanded') { //show columns
		if (!hasRadio) {
			initradios(e);
		}
		e.className = 'expanded';								
		a.innerHTML = hideText;
		img += 'left.gif';
		styleCell (thHistory, blockstyle, 'history');
		styleCell (tdHistory, blockstyle, 'history');		
		document.getElementById('tabletext').style.display = 'none';
	}
	else {									//hide columns				
		hidediagram();
		e.className ='compressed';
		a.innerHTML = showText;
		img += 'right.gif';
		styleCell (thHistory, 'none', 'history');
		styleCell (tdHistory, 'none', 'history');		
		document.getElementById('tabletext').style.display = 'block';
	}	
	a.innerHTML += ' ' + img + '" />';
}
function styleCell (e, blockstyle, className) {
	
	for (var i = 0; i<e.length;i++) {						
		if (e[i].className == className) {								
			e[i].style.display = blockstyle;
			break;
		}
	}
}

/* Translation function */
function translate(string) {	
	
	if (lang == 'en') // default language: return the original string
		return string;
	else if (lang == 'sv') {
		switch (string) {
			/*  Search ---------------------------------------------------------- */
			case 'Search the entire report': 
				return 'S&ouml;k i hela &aring;rsredovisningen';
			case 'Search this section': 
				return 'S&ouml;k i detta avsnitt';
			case 'Search this page': 
				return 'S&ouml;k p&aring; denna sida';
			case 'Search results': 
				return 'S&ouml;kresultat';
			case 'Your search did not match any documents. Make sure all keywords are spelt correctly. Try different or more general keywords.':
				return 'Din sökning gav inga träffar. Säkerställ att dina sökord är rättstavade. Prova andra eller mer generella sökord.';

			
			/*  Comment function ---------------------------------------------------------- */
			case 'Comment tool': 
				return 'Anteckningsverktyg';
			case 'Create new comment': 
				return 'Skapa ny anteckning';
			case 'Show all my comments': 
				return 'Visa alla mina anteckningar';
			case 'All comments':
				return 'Alla kommentarer';
			case 'Send my comments to a friend': 
				return 'Skicka mina anteckningar till en v&auml;n';
			case 'Logout': 
				return 'Logga ut';
			case 'Login': 
				return 'Logga in';
			case 'You must be logged in to use the comment tools': 
				return 'Du m&aring;ste vara inloggad f&ouml;r att kunna g&ouml;ra anteckningar';
			case 'Your e-mail address': 
				return 'Din e-postadress';
			case 'Password': 
				return 'L&ouml;senord';
			case 'New user?': 
				return 'Ny anv&auml;ndare?';
			case 'Login failed': 
				return 'Inloggningen misslyckades';
			case 'Your comment': 
				return 'Egen anteckning';
			case 'Delete comment': 
				return 'Radera anteckning';
			case 'Are you sure you want to delete this comment?': 
				return 'Är du säker på att du vill radera denna anteckning?';
			case 'Type your friends e-mail address and we will him or her the annual report as a link, including your personal comments.':
				return 'Skriv din väns e-postadress så skickas en länk till årsredovisningen automatiskt, inklusive dina personliga anteckningar.';
			case 'Your friends e-mail address':
				return 'Din väns e-postadress';
			case 'A link to the annual report including your comments has been sent to your friend!':
				return 'En länk till årsredovisningen, inklusive dina anteckningar har skickats till din vän!';
			case 'Please check your friends e-mail address. The link could not be sent.':
				return 'Var god kontrollera din väns e-postadress. Länken kunde inte skickas.';
				
			/*  Comment function: Lost password ---------------------------------------------------------- */
			case 'Forgot password?': 
				return 'Gl&ouml;mt l&ouml;senord?';
			case 'Lost your password?': 
				return 'Gl&ouml;mt l&ouml;senordet?';
			case 'Type your e-mail address and we will send the password to you.': 
				return 'Skriv in din e-postadress s&aring; skickar vi ditt l&ouml;senord till dig.';
			case 'Send': 
				return 'Skicka';
			case 'Your password has been sent to your e-mail address.':
				return 'Ditt l&ouml;senord har skickats till din e-postadress.';
			case 'Please check your e-mail address. The password could not be sent.':
				return 'Var god kontrollera din e-postadress. L&ouml;senordet kunde inte skickas.';
			
			/*  Comment function: New user ---------------------------------------------------------- */
			case 'New user': 
				return 'Ny anv&auml;ndare';
			case 'Enter a valid e-mail address and choose a password': 
				return 'Skriv in en e-postadress och v&auml;lj ett l&ouml;senord';
			case 'I have accepted the <a href="#" onclick="termsOfUse(this); return false;">terms of use</a>.':
				return 'Jag accepterar <a href="#" onclick="termsOfUse(this); return false;">anv&auml;ndarvillkoren</a>.';
			case 'Register': 
				return 'Skapa';
			case 'Thank you for registering!\n\nYou now have access to the comment tools.': 
				return 'Tack för din registrering!\n\nNu kan du göra anteckningar.';
			case 'The registration failed. Please try another e-mail address and/or password': 
				return 'Registreringen misslyckades. Försök med en annan e-postadress eller ett annat lösenord.';
			case 'Before you register, you must check the box to accept the terms of use.':
				return 'Du måste acceptera användarvillkoren innan du registrerar.';
			case 'Terms of use': 
				return 'Anv&auml;ndarvillkor';
			case 'Cybercom does not forward personal information collected through the annual report. </p><p>Information collected from visitors is not used to track individuals who visited/displayed the annual report.':
				return 'Cybercom vidarebefordrar ingen personlig information som samlats in via &aring;rsredovisningen. </p><p>Insamlad information om en bes&ouml;kare anv&auml;nds heller inte f&ouml;r att sp&aring;ra enskilda personer som har bes&ouml;kt &aring;rsredovisningen.';			
			
			
			/*  Management, Print, Introduction ---------------------------------------------------------- */
			case '(Click on individual to read biography)': 
				return '(Klicka p&aring; individen f&ouml;r att l&auml;sa biografi)';
			case 'Use the pdf version for optimal print quality': 
				return 'Utskriften blir b&auml;st om du anv&auml;nder pdf-versionen';
			case 'Complete report (131 pages, 456 mb)':
				return 'Hela &aring;rsredovisningen (131 sid, 456 mb)';
			case 'Without notes (54 pages, 256 mb)':
				return 'Utan noter (54 sid, 256 mb)';
			case 'page(s) found':
				return 'sidor hittade';
			case 'A+word+from+our+CEO':
				return 'Introduktionsfilm';
			case 'Milestone 2007':
				return 'Milstople 2007'
			
		}
	}
	else { // lang = fi
		switch (string) {
			/*  Search ---------------------------------------------------------- */
			case 'Search the entire report': 
				return 'Etsi koko vuosikertomuksesta';
			case 'Search this section': 
				return 'Etsi tästä kappaleesta';
			case 'Search this page': 
				return 'Etsi tältä sivulta';
			case 'Search results': 
				return 'Hakutulos';
			case 'Your search did not match any documents. Make sure all keywords are spelt correctly. Try different or more general keywords.':
				return 'Hakusi ei tuottanut tuloksia. Varmista, että kaikki hakusanat on kirjoitettu oikein. Kokeile eri hakusanoja tai yleisempiä hakusanoja.';
			
			/*  Comment function ---------------------------------------------------------- */
			case 'Comment tool': 
				return 'Muistiinpanoväline';
			case 'Create new comment': 
				return 'Tee uusia muistiinpanoja';
			case 'Show all my comments': 
				return 'Näytä kaikki muistiinpanot';
			case 'All comments':
				return 'Alla kommentarer';
			case 'Send my comments to a friend': 
				return 'Lähetä muistiinpanot ystävällesi';
			case 'Logout': 
				return 'Kirjaudu ulos';
			case 'Login': 
				return 'Kirjaudu sisään';
			case 'You must be logged in to use the comment tools': 
				return 'Sinun pitää olla sisäänkirjautunut voidaksesi tehdä muistiinpanoja';
			case 'Your e-mail address': 
				return 'Sähköpostiosoitteesi';
			case 'Password': 
				return 'Salasana';
			case 'New user?': 
				return 'Uusi käyttäjä?';
			case 'Login failed': 
				return 'Kirjautuminen epäonnistui';
			case 'Your comment': 
				return 'Oma muistiinpano';
			case 'Delete comment': 
				return 'Poista muistiinpano';
			case 'Are you sure you want to delete this comment?': 
				return 'Oletko varma, että haluat poistaa tämän muistiinpanon?';
			case 'Type your friends e-mail address and we will him or her the annual report as a link, including your personal comments.':
				return 'Skriv din väns e-postadress så skickas en länk till årsredovisningen automatiskt, inklusive dina personliga kommentarer.';
			case 'Your friends e-mail address':
				return 'Din väns e-postadress';
			case 'A link to the annual report including your comments has been sent to your friend!':
				return 'En länk till årsredovisningen, inklusive dina anteckningar har skickats till din vän!';
			case 'Please check your friends e-mail address. The link could not be sent.':
				return 'Var god kontrollera din väns e-postadress. Länken kunde inte skickas.';

				

					
		}
	}
	return string;
}

function startlisten(a) {

	if ( typeof(hhLogEvent) == "function" )
	    hhLogEvent("Listen");
			
	url = location.href;
	pos = url.indexOf('localhost/');
	if (pos > 0) {
		url = url.substring(url.indexOf('localhost/') + 10);
		url = 'http://www.cybercomgroup.com/' + url;
	}	
	
	url = encodeURIComponent(url);
	llang = lang;

	a.className = 'active';
	tooltip = document.getElementById(a.id + '-tooltip');

	
	
//	tooltip.getElementsByTagName('span')[0].style.display = 'none';
	strhtml = '<span><object '
			+ '\nclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '
			+ '\ncodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" '
			+ '\nwidth="190" '
			+ '\nheight="19"> '
		+ '\n<param name="movie" value="../../flash/listen.swf?lang=' + llang + '&url=' + url + '" />'
		+ '\n<param name="scale" value="noborder" />'
		+ '\n<param name="quality" value="high" />'
		+ '\n<param name="bgcolor" value="#FFFFFF" />'
		+ '\n<param name="wmode" value="trssansparent" />'
		+ '\n<embed src="../../flash/listen.swf?lang=' + llang + '&url=' + url + '"'
			+ '\nquality="high"'
			+ '\nbgcolor="#FFFFFF"'
			+ '\nscale="noborder"'
			+ '\nwidth="190"'
			+ '\nheight="19"'
			+ '\ntype="application/x-shockwave-flash" '
			+ '\npluginspace="http://www.macromedia.com/go/getflashplayer">'
		+ '\n</embed>'
		+ '\n</object>';
	
	strhtml += '<a href="#" class="ISI_IGNORE" onclick="$(\'btn-read-tooltip\').style.visibility = \'hidden\'; return false;"><img src="../../images/popup/close.gif" /></a></span>';
 	tooltip.innerHTML = strhtml;	
	tooltip.style.visibility = 'visible';
}

