/*
	Gemensamma hjälpfunktioner hela sajten.
	
	$Id: commonFunctions.js,v 1.35.6.3 2010/03/11 12:37:36 matwra Exp $
*/

/*
*   Returnerar true om man använt en siffertangent. Om funktionen
*   inte är lyckas identifiera tangenten som använts returnerar 
*   den ändå true och låter serverkontrollen göra jobbet. 
*/
function isNumericKey(e) {
	var k = document.all ? e.keyCode : e.which;
	if (k == null)
	   return true;
	return ((k > 47 && k < 58) || k == 8 || k == 0 || k == 13);
}


/*
*   Returnerar true om man använt tecken som tillåts för personnummer
*   (siffror eller bindestreck). Om funktionen inte lyckas identifiera
*   tangenten som använts returnerar den ändå true och låter 
*   serverkontrollen göra jobbet.
*/
function isPnrKey(e) {
	var k = document.all ? e.keyCode : e.which;
	if (k == null)
	   return true;
	return ((k > 47 && k < 58) || k == 45 || k == 8 || k == 0 || k == 13);
}


/*
*   Rensar ut det som inte är siffror genom att enbart 
*   returnera de numeriska tal som ingår i en text.
*/
function extractNumeric(str) {
	return str.replace(/\D/g,"");
}


/*
*   Rensar ut det som inte är giltiga personnummertecken (siffror
*   eller bindestreck) genom att enbart returnera de tillåtna tecken
*   som ingår i en text.
*/
function extractPnrChars(str) {
	return str.replace(/[^0-9-]/g,"");
}


/*
*   Returnerar det första element med ett givet klassnamn.
*   För ökad prestanda kan argumenten "node" och "tag" användas
*   för att bara söka element av en viss tagtyp och inom en viss
*   nod.
*/
function getFirstElementByClass(searchClass,node,tag) {
	var classElement;
	if (node == null)
		node = document;
	if (tag == null)
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (var i = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElement = els[i];
			break;
		}
	}
	return classElement;
}



/**
*   Visar (eller döljer) felmeddelanderuta och de fel den innehåller.
*   Parametrar:
*      errorContainer är den ruta där felen finns.
*      showErrors anger om rutan (och eventuella) fel ska visas eller gömmas.
*                 true slår på rutan och går igenom arrayen med fel, medan false
*                 gömmer rutan och samtliga list items i den.
*      errorMessages är den array som innehåller felmeddelanden. Nödvändig om showErrors är true.
*/
function showErrorBox(errorContainer, showErrors, errorMessages) {
	var errorContainer = document.getElementById(errorContainer);
	errorContainer.style.display = showErrors ? 'block' : 'none';
	var lists = errorContainer.getElementsByTagName("ul");
	for (var i=0; i<lists.length; i++) {
		lists[i].style.display = 'block';
		var items = lists[i].getElementsByTagName("li");
		for (var j=0; j<items.length; j++) {
			var thisItem = items[j];
			if (showErrors) {
				if (errorMessages.contains(thisItem.id)) {
					// Visa felmeddelande.
					thisItem.style.display = 'list-item';
					
					// En del felmeddelanden har nästlade listor. I så fall ska den visas nu. 
					// (Den behöver inte döljas eftersom den försvinner när föräldern göms.)
					if (thisItem.getElementsByTagName("ul")!=null) {
						var subLists = thisItem.getElementsByTagName("ul");
						for (var k=0; k<subLists.length; k++) {
							var subListItems = subLists[k].getElementsByTagName("li");
							for (var l=0; l<subListItems.length; l++) {
								subListItems[l].style.display = 'list-item';
							}
						
						}
						
					}

				}
			} else {
				// D?lj felmeddelande.
				thisItem.style.display = 'none';
			}
		}
	}
}

/*
 * Öppnar en url (fondfaktasida) i ett nytt fönster.
 */
function openWin(url, name){
	window.open(url, name, 'width=800, height=600, location=0, menubar=0, directories=0, toolbar=0, status=0, resizable=0, scrollbars=1');
}



/*
*   Valideringsfunktion för loginformuläret. Innehåller logik för validering
*   och om något av kraven inte uppfylls läggs en SiteVision-url till i errors-arrayen
*   för att sedan visas som text i röda rutan.
*   
*   (Funktionen är kanske egentligen inte hemmahörande i commonFunctions, men den är 
*   så tätt sammankopplad till metoder och funktioner här att den passar bäst här.)
*/
function validateLoginForm(form, errorContainer) {
	if(document.LogonForm.result.value != null && document.LogonForm.result.value == 'submit') {
		showErrorBox(errorContainer, false);

		// Om det finns felmeddelanden från det att sidan postats till servern måste
		// dessa först döljas innan vi gör javascriptvalideringen. (Dessutom ser det
		// snyggare ut om sidan rensas på fel innan vi försöker posta igen.)
		var loginPortlet = document.getElementById('loginPortlet');
		if (loginPortlet != null) {
			var loginDivs = loginPortlet.getElementsByTagName("div");
			if (loginDivs != null) {
				for (var j=0; j<loginDivs.length; j++) {
					 if (loginDivs[j].className == 'portlet-msg-error') {
						loginDivs[j].style.display = 'none';
						loginDivs[j].style.visibility = 'hidden';
					}
				}
			}
		}

		var errors = new Array();
		var personNumber = form.username.value;
		var pin = form.password.value;
		if (personNumber.isEmpty() && pin.isEmpty()) {
			errors[errors.length] = 'cms.BlanktPersonnummerOchPin';
		} else {
			if (personNumber.isEmpty()) {
				errors[errors.length] = 'cms.BlanktPersonnummer';
			} else if (!personNumber.matchesPnrFormat()) {
				errors[errors.length] = 'cms.OgiltigtFormat';
			} else if (!personNumber.pnrChecksumIsValid()) {
				errors[errors.length] = 'cms.OgiltigtPersonnummer';
			}
	
			if (pin.isEmpty()) {
				errors[errors.length] = 'cms.BlankPin';
			} else if (pin.length != 5 || !pin.hasOnlyNumerics()) {
				errors[errors.length] = 'cms.EndastSiffror';
			}
		}
	
		if (errors.length > 0) {
			showErrorBox(errorContainer, true, errors);
			form.reset();
			form.elements[0].focus();
			return false;
		}
		
		/** Tillfällig funktionalitet. Tas bort så snart som möjligt. */
		form.username.value = convertToElwisFormat(form.username.value);
		/**************************************************************/
		
		purgePercentCookies();
	}
	
	return true;
}

/**
*   TILLFÄLLIG FUNKTIONALITET. TAS BORT SÅ SNART SOM MÖJLIGT.
*
*   Av säkerhetsskäl kommenteras och dokumenteras inte den här
*   metoden här. Se istället ERR27570. 
*/
function convertToElwisFormat(username) {
	if (pnrRegExp.test(username)) {

		if (!RegExp.$1.isEmpty()) {
			pnrRegExp.test(username);
			return RegExp.$1 + RegExp.$2 + RegExp.$3 + RegExp.$4 + RegExp.$5;
		}
		
		pnrRegExp.test(username);
		convertedString = RegExp.$2 + RegExp.$3 + RegExp.$4 + RegExp.$5;
		var yearPrefix = new String('19');
		if (new Number(RegExp.$2) < new Number(30)) {
			yearPrefix = new String('20');
		}
		return yearPrefix + convertedString;
	}
	return username;
}


/* Regexp för epostkontroll */
var emailRegExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;



/*
*   Strängmetod
*   Returnerar true om strängen matchar formatet för giltig epostadress.
*/
String.prototype.matchesEmailFormat = function() {
	return emailRegExp.test(this);
}


/* Regexp för personnummerkontroll. Uppdelad för snabb åtkomst till fälten för år, månad, dag och nummer. */
var pnrRegExp = /^(\d{2})?(\d{2})(\d{2})(\d{2})\-?(\d{4})$/;



/*
*   Strängmetod
*   Returnerar true om strängen matchar något av de fyra formaten för personnummer.
*/
String.prototype.matchesPnrFormat = function() {
	return pnrRegExp.test(this);
}



/*
*   Strängmetod
*   Returnerar true om strängen är ett personnummer med giltig kontrollsiffra.
*/
String.prototype.pnrChecksumIsValid = function() {
	if (pnrRegExp.test(this)) {
		var convertedString = RegExp.$2 + RegExp.$3 + RegExp.$4 + RegExp.$5;
		// convertedString innehåller år (utan sekelskiftessiffra), månad, dag, och nummer (fyra siffror)
		var nn="";
		for (var n=0 ;n<convertedString.length; n++) {
			nn += ((((n+1)%2)+1)*convertedString.substring(n,n+1));
		}
		var checksum=0;
		for (var n=0; n<nn.length; n++){
			checksum+=nn.substring(n,n+1)*1;
		}
		return (checksum%10==0);
	} else {
		// Här borde vi aldrig hamna eftersom matchesPnrFormat körs först.
		// Å andra sidan måste vi ändå köra test för att snabbt få tillgång
		// till siffrorna och kan därför lika gärna ha else-satsen här.
		return false;
	}
}



/*
*   
*   Hämtar värdet från cookien med namnet 'name'
*/
function getPercentCookie(name) {
    var value = 0;
    var aCookie = document.cookie.split("; ");
    for (var i=0; i < aCookie.length; i++) {
        var aCrumb = aCookie[i].split("=");
        if (name == aCrumb[0])
            value = unescape(aCrumb[1]);
    }
    return value;
}



/*
*   Hittar alla cookies som använts för att spara fondfördelning för fondbyte.
*/
function purgePercentCookies() {
    var cookieString = document.cookie;
    if (cookieString != null) {
    	cookies=cookieString.split("; ");
    	for (var i=0; i<cookies.length; i++) {
	    cookieParts = cookies[i].split("=");
	    if (cookieParts[0].indexOf('fundDistribution')!=-1) {
	    	deletePercentCookie(cookieParts[0]);
	    }
	}
    }
}



/*
*   Sparar cookie
*/
function setPercentCookie(name, value) {
	document.cookie = name + "=" + value + "; path = /";
}



/*
*   Tar bort cookie
*/
function deletePercentCookie(name) {
	document.cookie = name + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/";
}



/*
*   Sparar cookie med värden från formulärfält.
*/
function savePercent(thisitem) {
    setPercentCookie(thisitem.name, thisitem.value);
}



/*
*   Strängmetod
*   Returnerar true om strängen är tom och false i övriga fall.
*/
String.prototype.isEmpty = function() {
	return (this == null || this.trim().length == 0);
}



/*
*   Strängmetod
*   Returnerar true om strängen enbart består av siffror.
*/
String.prototype.hasOnlyNumerics = function() {
	var regexp = /^\d+$/;
	return regexp.test(this);
}



/*
*   Strängmetod
*   Tar bort whitespace från början och slutet av strängen.
*/
String.prototype.trim = function() {
	var newString = this;
	
	var endTrim = /((\s*\S+)*)\s*/;
	newString = newString.replace(endTrim, "$1");
		
	var leadTrim = /\s*((\S+\s*)*)/;
	newString = newString.replace(leadTrim, "$1");

	return newString;
}



/*
*   Arraymetod
*   Returnerar true om arrayen innehåller testvärdet
*/
Array.prototype.contains = function(testVal) {
	for (var i=0; i<this.length; i++) {
		if (this[i] == testVal) {
			return true;
		}
	}
	return false;
}



/*
*   Gör en formulärknapp inaktiv. Om felaktigt id angivits
*   för knappen händer ingenting.
*/
function disableButton(buttonId) {
	var button = document.getElementById(buttonId);
	if (button) {
		button.disabled = true;
	}
}


/*
*   Öppnar fönstret med talsyntes
*/
function openTalsyntes(){
	url= escape(location.href);
	newWin = window.open('http://isi.phoneticom.com/cgi-bin/ppmrsone?customerid=59&url='+url,'talsyntes','width=790, height=590');
	newWin.focus();
}


/*
 * Redirectar användaren till sidan som gäller för det inloggninssätt som valts dropdownmeny. * 
 */
function redirectLogin(url) {
	if(url == null || url.isEmpty()) {
		return false;
	}
    window.location.href = url;
}



/*
*	Fokuserar på första fältet i första formuläret med inmatningsfält 
*   (om det finns något sånt på sidan). 
*	Egentligen är det här en halvsanning eftersom de första två formulären
*   undantas då de förutsätts vara sidans sitemap och sökformulär. Vi 
*   letar alltså igenom samtliga formulär från och med det tredje tills
*   vi stöter på första text- eller lösenordsfält. 
*
*   Specialfallet är loginformuläret, vars sida använder en annan layout.
*   Där finns inga andra formulär och vi kan direkt identifiera personnummerfältet.
*/
function focusOnFirst() {
	var tmpForm, tmpElement;
	if (document.LogonForm && document.LogonForm.username) {
		with (document.LogonForm.username) {
			focus();
			select();
		}
	} else {
		for (var i=2;i<document.forms.length;i++) {
			tmpForm = document.forms[i];
			for (var j=0;j<tmpForm.elements.length;j++) {
				tmpElement = tmpForm.elements[j];
				if (tmpElement.type == 'text' || tmpElement.type == 'textarea' || tmpElement.type == 'password') {
					if (tmpElement.className && tmpElement.className.indexOf('nofocus')!=-1) {
						return;
					}
					tmpElement.focus();
					tmpElement.select();
					return;
				}
			}
		}
	}
	return;
}

/*
 * Trunkerar långa namn i inloggningsportleten.
 * Den här funktionen använder en jquery-plugin
 * för att ge trunkeringsstöd i Firefox (IE får
 * stödet via portletLayouts.css).
 */
$svjq(document).ready(function() {
    $svjq("#name").ellipsis();
});


/*
*  Generell funktionalitet för det som händer när sidan laddas. (Eftersom vi saknar
*  tillgång till bodytaggen och inte kan styra över vilka funktioner som ska laddas när,
*  samlas dessa därför här och anropas vid rätt tillfälle.)
*/
$svjq(document).ready(function() {
	// Om dokumentet innehåller fondbytesformuläret ska siffror förladdas om 
	// kakor är satta. Anropar fundChange.js
	if (document.fundChangeForm) {
		populateFields();
	} else if (document.getElementById('cancelFundChangeAndPurgeCookies') != null){
		// Om dokumentet innehåller det här elementet innebär det att vi ska rensa kakorna
		// med inmatad fördelning. Den här funktionen körs från sidorna för att ta bort och avbryta
		// fondbyte eftersom fördelning inte ska förifyllas om man påbörjar ett nytt fondbyte efter
		// att ha avbrutit ett byte i steg 2. 
		purgePercentCookies();
	}
		
	// Fokusera på första inmatningsfältet i första formuläret.

	focusOnFirst();
});



/*
*  Vanliga fr?gors funktionalitet f?r att visa och d?lja svaret via klickbarhet.
*  De listas genom en nyhetsmodul, d?r varje fr?ga/svar best?r av 2 DIVar, en med fr?gan och en med svaret
*  F?r att r?tt div ska ?ppnas/st?ngas tilldelas divarna IDn baserat p? nyhetsartikelns Sitevision-identifier.
*/
function toggleFAQ(answerID) {

	var questionID = "1"+answerID;
	var answerclass = document.getElementById(answerID);
	var questionclass = document.getElementById(questionID);
	
	if(answerclass.className == "faqxvisasvar") {
    		answerclass.className = "faqxdoljsvar";
			questionclass.className = "faq_collapse";
  	}
	else {
		answerclass.className = "faqxvisasvar";
		questionclass.className = "faq_expand";
	}
} 



/*
*  G?r SELECT-menyn l?nkbar
*  Tar det valda objektet i en SELECT-meny och skickar till URL:en i <option value="... 
*/
function dropdown(mySel)
{
var myWin, myVal;
myVal = mySel.options[mySel.selectedIndex].value;
if(myVal)
   {
   if(mySel.form.target)myWin = parent[mySel.form.target];
   else myWin = window;
   if (! myWin) return true;
   myWin.location = myVal;
   }
return false;
}



/*
*  Skript f?r att hantera filmspelaren och dess funktioner 
*/

//Dimma sidan och visa flashspelaren med de parametrar som skickas in
function displayFlash(baseURL,movieName){
	
	//G? till sidans f?rsta DIV f?r att kunna d?lja den
	var elementToHide = $('loadingbar_area'); 
	var parentElement = elementToHide.up();
	var parentElement = parentElement.up();
	var parentElement = parentElement.up();
	var elementToHide = parentElement;
	
	var backgroundElement = new Element('div', {'id':'BGElement'});
	parentElement.insert(backgroundElement);
	backgroundElement.clonePosition(elementToHide, {setLeft:false});
	
	var pageSize = getPageSize();
	backgroundElement.style.width=pageSize[0]+'px';
	backgroundElement.style.height=pageSize[1]+'px';

	var loadingElement = new Element('div', {'id':'FlashElement'});
	var flashContainer = new Element('div', {'id':'FlashContainer'});
	
	// Information f?r anv?ndare utan Flash Player, l?gger sig bakom filmspelaren
	var protocol = window.location.protocol;
	var noFlash = new Element('div', {'id':'noFlash'});
	var noFlashLink = new Element('a', {'href':'http://get.adobe.com/flashplayer/', 'style':'position:relative; text-align:center;','alt':'H&auml;mta Adobe Flash Player','target':'_blank'});
	var noFlashBanner = new Element('img', {'id':'noFlashBanner', 'border':'0','src':''+protocol+'//www.adobe.com/images/shared/download_buttons/get_adobe_flash_player.png'});
	noFlash.insert(noFlashLink.insert(noFlashBanner));
	var noFlashText = new Element('span', {'class':'brodtextxhogerpuff', 'style':'margin-top:15px;display:block;position:relative; text-align:center;'});
	noFlashText.innerHTML = 'Adobe Flash Player kr&auml;vs f&ouml;r att spela upp filmer p&aring; Pensionsmyndigheten.<br />Klicka p&aring; knappen ovan f&ouml;r att ladda ner senaste versionen.<p /><a href="javascript:void(0)" onclick="hideFlashElement()">St&auml;ng f&ouml;nster</a>';
	noFlash.insert(noFlashText);
	flashContainer.insert(noFlash);
				
	//Ladda filmspelaren
	var so = new SWFObject( baseURL+"pmu-player.swf", "Pensionsmyndighetens filmspelare", "100%", "480", "7", "#66666");
	so.addParam( "wmode", "transparent" );
	so.addParam( "allowFullScreen", true );
	so.addVariable( "fileLoadPrefix", "/" );
	so.addVariable( "baseURL", baseURL+movieName+".xml" );

	parentElement.insert(loadingElement.insert(flashContainer));
	loadingElement.clonePosition(elementToHide, {setLeft:false});
	so.write("FlashContainer");
}

// H?mtar sidans storlek f?r att s?tta BGElements storlek
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


// F?r st?ng-knappen i filmspelaren (anropas fr?n XML-filen)
function hideFlashElement(){
	if($('BGElement') != null && $('FlashElement') != null){
		$('BGElement').remove();
		$('FlashElement').remove();
	}
}

//Bokm?rkesfunktionen (anropas fr?n xml-filen)
function bookmark(url, title){

if (window.sidebar) // firefox
    window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
    var elem = document.createElement('a');
    elem.setAttribute('href',url);
    elem.setAttribute('title',title);
    elem.setAttribute('rel','sidebar');
    elem.click();
}
else if(document.all)// ie
    window.external.AddFavorite(url, title);
}

/*
*  Skript f?r att hantera ReadSpeakers lyssna-funktion p? redaktionella sidor
*/


/* The selected text function */

var selectedString="";

function getSelectedHTML() {
  selectedString="";
  var rng=undefined;
  if (window.getSelection) {
    selobj = window.getSelection();
    if (!selobj.isCollapsed) {
      if (selobj.getRangeAt) {
        rng=selobj.getRangeAt(0);
      }
      else {
        rng = document.createRange();
        rng.setStart(selobj.anchorNode,selobj.anchorOffset);
        rng.setEnd(selobj.focusNode,selobj.focusOffset);
      }
      if (rng) {
        DOM = rng.cloneContents();
        object = document.createElement('div');
        object.appendChild(DOM.cloneNode(true));
        selectedString=object.innerHTML;
      }
      else {
        selectedString=selobj;
      }
    }
  }
  else if (document.selection) {
    selobj = document.selection;
    rng = selobj.createRange();
    if (rng && rng.htmlText) {
      selectedString = rng.htmlText;
    }
    else if (rng && rng.text) {
      selectedString = rng.text;
    }
  }
  else if (document.getSelection) {
    selectedString=document.getSelection();
  }
  	selectedString = cleanSelectedString(selectedString);
}

function copyselected()
{
  setTimeout("getSelectedHTML()",50);
  return true;
}

document.onmouseup = copyselected;
document.onkeyup = copyselected;

/* The expanding function */

function readspeaker(rs_call)
{
  if (selectedString.length>0) {
    rs_call=rs_call.replace("/cgi-bin/rsent?","/enterprise/rsent_wrapper.php?");
  }
  savelink=rs_call+"&save=1";
  start_rs_table="<div>";
  protocol = window.location.protocol;
  rs_embed="<div style='float:left;margin-left:-0.3em'><object border='0' type='application/x-shockwave-flash' data='"+protocol+"//media.readspeaker.com/flash/readspeaker20.swf?mp3="+escape(rs_call)+"&autoplay=1&rskin=rounded&ricon=0&rcontrol=mini&rprogress=0&c1=0xe34912&c2=0xffffff&c3=0xe34912&c4=0xef8200&c5=0xffffff&c7=0xef8200&c8=0xef8200&c9=0xe34912&c10=0xb9b1a9&c11=0xffffff&c12=0xffffff&c13=0xef8200&c15=0xffffff&c16=0xe34912&text_play=Spela&text_pause=Pausa&text_stop=Stoppa&text_vol=Volym' height='20' width='250'><param name='movie' value='"+protocol+"//media.readspeaker.com/flash/readspeaker20.swf?mp3="+escape(rs_call)+"&autoplay=1&rskin=rounded&ricon=0&rcontrol=mini&rprogress=0&c1=0xe34912&c2=0xffffff&c3=0xe34912&c4=0xef8200&c5=0xffffff&c7=0xef8200&c8=0xef8200&c9=0xe34912&c10=0xb9b1a9&c11=0xffffff&c12=0xffffff&c13=0xef8200&c15=0xffffff&c16=0xe34912&text_play=Spela&text_pause=Pausa&text_stop=Stoppa&text_vol=Volym' /><param name='quality' value='high' /><param name='SCALE' value='exactfit' /><param name='wmode' value='transparent' /><embed wmode='transparent' src='"+protocol+"//media.readspeaker.com/flash/readspeaker20.swf?mp3="+escape(rs_call)+"&autoplay=1&rskin=rounded&rcontrol=mini&rprogress=0&c1=0xe34912&c2=0xffffff&c3=0xe34912&c4=0xef8200&c5=0xffffff&c7=0xef8200&c8=0xef8200&c9=0xe34912&c10=0xb9b1a9&c11=0xffffff&c12=0xffffff&c13=0xef8200&c15=0xffffff&c16=0xe34912&text_play=Spela&text_pause=Pausa&text_stop=Stoppa&text_vol=Volym' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwaveflash' scale='exactfit' border='0' height='20' width='250' /></embed></object></div>";
  rs_downloadlink="<div class='laddaner' style='float:left;'><a title='Ladda ner sidan som MP3' href='"+savelink+"'></a></div></div>";
  end_rs_table="";

  var x=document.getElementById('rs_div');

  x.innerHTML=start_rs_table+rs_embed+rs_downloadlink+end_rs_table;
}

function close_rs_div()
{
  var x=document.getElementById('rs_div');
  x.innerHTML="";
}

/* Selected text cleaning function */
   

function cleanSelectedString(theString)
{
	var comments = theString.match(/<!--/gi);
	var temp = "";
	if(comments != undefined)
	{
		for(i=0;i<comments.length;i++)
		{
			var temp = theString.substring(theString.search(/<!--/gi),theString.search(/-->/gi)+3);
			theString = theString.replace(temp,"");
		}
	}
	var regexp = /(<\/?[A-Z]+[0-9]?)\s?[^>]*>/gi
	theString = theString.replace(regexp, "$1>");
	var regexp2 = /<\/?[A-Z]+[0-9]?\s?>/gi
	theString = theString.replace(regexp2, function(m) { return returnTags(m);});
	var regexp_spaces = /\s+?\s*/gi
	theString = theString.replace(regexp_spaces, " ");	
	var regexp_br = /(<br>)+?\s?(<br>\s*)*/gi
	theString = theString.replace(regexp_br, "<br>");	
	return theString;
}

function returnTags(thematch)
{ 
	var regtag = /<\/?(h[1-6]|a|area|ul|ol|dl|dd|dt|li|table|td|tr|th|p|hr|br)>/i
	if(regtag.test(thematch))
	{ 
		return thematch;
	} 
	else 
	{
		return "";
	}
}


window.onunload = function exit() {
	return true;
};