ModalWindow.close = function() {
	ModalWindow.progress = "close";
	if(this.currentAnimation) this.currentAnimation.cancel();
	/*this.currentAnimation = new Effect.Opacity(this.overlay,{
		from:0.7,
		to:0,
		duration:this.time.durationLoader,
		fps:this.time.fpsLoader
	});*/
	this.wrapper.setOpacity(0);
	this.wrapper.setStyle({ display:'',width:'',height:'' });
	this.loader.setStyle({ display:'', width:'', height:'', marginTop:'', marginLeft:'' });
	this.errors.setStyle({ display:'' });
	this.inner.setStyle({ width:'',height:'' });
	this.inner.innerHTML = "";
	this.elabel.nodeValue = "";
	if(typeof this.onunload == "function") this.onunload();
	document.fire('mkt:modal:close');
	if(this.options.reloadOnClose == true) location.assign( location.href );
	this.iefix.ie6_selects("close");
	this.flashfix("close");
	var c = this;
	setTimeout(function(){c.overlay.setStyle({ display:'' });},(c.time.durationOverlay*1000)+5);
	return false;
};


ModalWindow.initLoader = function(afterFinishFunc) {
	var os = document.viewport.getScrollOffsets();
	var c = this;
	// this.overlay.getStyle('display') == 'none' ||
	// this.overlay.getStyle('display') == null
	if(!this.overlay.style.display || this.overlay.style.display != "block") {
		var hA = document.viewport.getHeight();
		var hB = $$('body')[0].getHeight();
		this.overlay.setStyle({ display:"block",opacity:0,height:((hB > hA) ? hB : hA)+"px" });
		/*
		this.currentAnimation = new Effect.Opacity(this.overlay,{
			from:0,
			to:0.7,
			duration:this.time.durationOverlay,
			fps:this.time.fpsOverlay
		});*/
		this.overlay.setOpacity(0.7);
	}
	this.loader.setStyle({ 
			display:"block",
			marginTop:((c.loader.getHeight()/2) - os.top)*(-1)+"px",
			marginLeft:((c.loader.getWidth()/2) - os.left)*(-1)+"px"
		});
	if (typeof afterFinishFunc == "function") {
		c.wrapper.setOpacity(0);
		afterFinishFunc();
		/*new Effect.Opacity(c.wrapper,{
			from:1.0,
			to:0,
			duration:c.time.durationOverlay,
			fps:c.time.fpsOverlay,
			afterFinish : afterFinishFunc
		});*/
	}
	this.wrapper.className = "";
};



function getModalOptions(url, element) {
	// Default options
	var options = {
		beforeLaunch : null,
		params : {
			href: url,
			type: null,
			reloadLinks : true,
			reloadOnClose : false,
			closeButton : true,
			scrollable : false,
			wrapperClass : null
		},
		onload : null,
		onsubmit : null,
		onunload : null,
		evalResponse : null
	};
	
	if(element.className.length > 0) {
		var wcl = "";
		var cns = element.className.split(" ");
		for(var i=0,max=cns.length;i<max;i++){
			wcl += "mw_"+cns[i]+" ";
		}
		options.params.wrapperClass = wcl;
	}
	
	if(element.id.length > 0) {
		options.params.wrapperClass += "mw_"+element.id+" ";
	}
	
	// Customize options by element classnames
	
	if(element.hasClassName('tipAFriend')) {
		options.params.width = 300;
	}
	
	else if(element.hasClassName('reportForm')) {
	}
	
	else if(element.hasClassName('viewMyPhoto')) {
		options.params.width = 468;
		options.onload = function() {
			MyPhotos.initViewer();
		};
	}
	
	else if(element.id == "registerAndEditForm") {
		options.onload = function() {
			if ($$("#modalWindowWrapper p.back a").length > 0) {
				$$("#modalWindowWrapper p.back a")[0].onclick = function(){
					ModalWindow.reload(addQueryStringParam(this.href, "m", "modal"), this);
					return false;
				};
			}
		};
		options.evalResponse = function(response) {
			if($$("#modalWindowWrapper div.confirmation").length > 0) {
				ModalWindow.options.reloadOnClose = true;
			}
			else if($$("#modalWindowWrapper div.loggOffContainer").length > 0){
				ModalWindow.options.reloadOnClose = true;
			}
		};
		options.onsubmit = function() {
			setFormCookie('acceptsCookies');
			return true;
		};
	}
	
	else if(element.id == 'formLoginStart') {
		options.onsubmit = function() {
			setFormCookie('acceptsCookies');
			return true;
		};
		options.evalResponse = function(response){
			if($$("#modalWindowWrapper #registerAndEditForm").length > 0) {
				ModalWindow.time.delay = (10000*90);
				location.assign(location.href);
				/*
				 * for (var i=0; i < element.elements.length; i++) { var inpt =
				 * element.elements[i]; if(inpt.name == "redirectUrl") {
				 * location.assign(inpt.value.replace(/m=modal/,"")); break; } }
				 */
				 
				ModalWindow.close();
				setTimeout('updateComments()', 2000);
			}
		};
	}
	
	else if(element.id == 'confirmRemoval') {
		options.params.reloadOnClose = true;
	}
	
	else if(element.id == 'registerConfirmForm') {
		options.onload = function() {
			for (var i=0; i < element.elements.length; i++) {
				var inpt = element.elements[i];
				if(inpt.name == "redirectUrl") {
					inpt.value = addQueryStringParam(inpt.value,"m","modal");
					break;
				}
			}
		};
		options.params.reloadOnClose = true;
		options.onsubmit = function() {
			setFormCookie('acceptsCookies');
			return true;
		};
	}
	
	else if(element.id == 'recoverPasswordForm') {
		options.onload = function() {
			for (var i=0; i < element.elements.length; i++) {
				var inpt = element.elements[i];
				if(inpt.name == "redirectUrl") {
					inpt.value = addQueryStringParam(inpt.value,"m","modal");
					break;
				}
			}
		};
	}
	
	else if(element.id == 'reportContent') {

	}
	
	else if(url == 'blogFormExtras_link') {
		options.onload = function() {
			Blog.ManageEntry.prepareLinkDialog();
		};
		options.params.reloadLinks = false;
	}
	
	else if(url == 'blogFormExtras_image') {
		options.onload = function() {
			Blog.ManageEntry.prepareImageDialog();
		};
		options.params.reloadLinks = false;
	}
	
	else if(url.match(/blogFormExtras_m(?:ovie|kt{1,2}v)/)) {
		options.onload = function() {
			Blog.ManageEntry.prepareMovieDialog();
		};
		options.params.reloadLinks = false;
	}
	
	return options;
}


Event.observe(window, 'load', function() {
	updateComments();
});



function updateComments() {

var commentContainer = $('blogComments');
	var userLogout = $('userLogout');
	var userLogin = $$('.userLogin')[0];
	var userFunctionLinks = $$("#blogComments .userFunctionLinks")[0];
	var authorEMail = $$("#blogComments #authorEMail")[0];

	if (!commentContainer) {
		return;
	}
	
//alert(userLogin && authorEMail);

var txtLoggedIn = '<div id="blogComments"> <div class="extraCommentsCommentsWrapper commentsWrapper"> <div class="header"><h2><span class="commentprefix"></span> <!-- Kommentarer (0) --></h2> </div><form action="#extraComments" id="SortWidget" method="get"><fieldset> <div> <input type="radio" checked="checked/" value="ascending" id="sortOrderAsc" class="submitWhenChecked" name="sortOrder"><label for="sortOrderAsc">&auml;ldsta kommentar &ouml;verst</label> </div> <div> <input type="radio" value="descending" id="sortOrderDesc" class="submitWhenChecked" name="sortOrder"> <label for="sortOrderDesc">Senaste kommentar &ouml;verst</label> </div> <input type="hidden" name="postingId" value=""> <input type="hidden" name="blogPostAction" value="view_post"> </fieldset>  </form> <div class="threadsWrapper"> </div> <div class="newComment"> <div class="header"><h2><span>Kommentera:</span></h2></div> <div id="discussionFirstPoster"><p>Var den f&ouml;rsta att kommentera!</p></div> <form method="post" id="commentForm" action=""><fieldset style="display: none;"><input type="hidden" value="/WEB-INF/jsp/templates/ot.dep.core.Standard/default.jsp?blogPostAction=view_post&amp;postingId=" name="formURL"><input type="hidden" value="" name="randomFormId"></fieldset> <fieldset style="display: none;"><input type="hidden" value="true" name="newPost"><input type="text" value="Re:" name="title"><input type="hidden" disabled="disabled" value="" id="inReplyTo" name="inReplyTo"><input type="hidden" value="" id="acceptTermsChecked" name="acceptTermsChecked"><input type="hidden" value="" name="article"></fieldset><fieldset><div id="errorcommentForm" class="errorHidden"></div> <div class="field comment" id=""><label id="bodyQuoteLabel" for="bodyQuote" class="none" style="display: none;">Kommentar som citeras</label><textarea class="inputfield" cols="30" rows="6" id="bodyQuote" name="bodyQuote" readonly="readonly" style="display: none;"></textarea><div id="errorbody" class="errorHidden"></div> <label id="bodyLabel" for="body" class="label requiredfield maxcharsfield">Din kommentar</label><textarea title="Skriv din kommentar h&auml;r" class="inputfield enhancedHelp" cols="30" rows="6" id="body" name="body"></textarea><div class="JSDependent charcount"> <input type="text" value="1000" name="maxchar" id="maxchar" readonly="readonly" size="3" maxlength="4"><label class="none" for="maxchar">tecken kvar</label> </div> </div> <div class="clearer"></div> <div class="clearer"></div><div class="field alias"> <div id="errorauthorAlias" class="errorHidden"></div><label id="authorAliasLabel" for="authorAlias" class="label requiredfield">Din signatur:</label> <input type="text" id="authorAlias" name="authorAlias"></div> <div class="field name"><div id="errorauthorRealName" class="errorHidden"></div><label id="authorRealNameLabel" for="authorRealName" class="label requiredfield">Ditt namn <span>(publiceras inte)</span>:</label><input type="text" id="authorRealName" name="authorRealName"> </div><div class="field email"> <div id="errorauthorEMail" class="errorHidden"></div><label id="authorEmailLabel" for="authorEMail" class="label requiredfield emailfield">Din e-postadress <span>(publiceras inte)</span>:</label><input type="text" value="" id="authorEMail" name="authorEMail"> </div><div class="field terms"> <p class="acceptTerm"></p><p>Om du vill kommentera artiklar p&aring; www.sn.se f&ouml;rbinder du dig att f&ouml;lja SN:s etiska regler f&ouml;r l&auml;sarkommentarer. Du &auml;r sj&auml;lv straffr&auml;ttsligt ansvarig f&ouml;r dina kommentarer.</p> <p><strong>SN:s etiska regler f&ouml;r l&auml;sarkommentar i korthet:</strong><br> - Kommentera p&aring; svenska i en v&auml;nlig, civiliserad ton. Svordomar och kr&auml;nkande tillm&auml;len till&aring;ts inte.<br> - Var respektfull mot de personer som omn&auml;mns i artikeln du kommenterar och mot de m&auml;nniskor du debatterar med.<br> - H&aring;ll dig till &auml;mnet. D&aring; f&aring;r l&auml;nka till externa webbplatser, men bara till s&aring;dant som har med &auml;mnet att g&ouml;ra. Du m&aring;ste ocks&aring; sj&auml;lv f&ouml;rklara varf&ouml;r l&auml;nken &auml;r relevant.<br> - Rasistiska eller sexistiska kommentarer till&aring;ts inte. Inte heller neds&auml;ttande eller generaliserande p&aring;st&aring;ende om till exempel invandrare, religi&ouml;sa grupper eller homosexuella.</p> <div id="erroracceptTerms" class="errorHidden"></div> <a onclick="javascript:$(\'longTerm\').toggle(); return false;" href="#">L&auml;s villkoren</a> <div style="display: none;" id="longTerm"> <p class="acceptTerm_long"></p><p><strong>SN:s etiska regler f&ouml;r l&auml;sarkommentarer</strong></p> <p>- Kommentera p&aring; svenska i en v&auml;nlig, civiliserad ton. Svordomar och kr&auml;nkande tillm&auml;len till&aring;ts inte.<br> - Var respektfull mot de personer som omn&auml;mns i artikeln du kommenterar och mot de m&auml;nniskor du debatterar med.<br> - H&aring;ll dig till &auml;mnet. D&aring; f&aring;r l&auml;nka till externa webbplatser, men bara till s&aring;dant som har med &auml;mnet att g&ouml;ra. Du m&aring;ste ocks&aring; sj&auml;lv f&ouml;rklara varf&ouml;r l&auml;nken &auml;r relevant.<br> - Rasistiska eller sexistiska kommentarer till&aring;ts inte. Inte heller neds&auml;ttande eller generaliserande p&aring;st&aring;ende om till exempel invandrare, religi&ouml;sa grupper eller homosexuella.<br> - Lagen om elektroniska anslagstavlor g&auml;ller f&ouml;r l&auml;sarkommentarer p&aring; www.sn.se. Utgivaransvaret omfattar allts&aring; inte dina kommentarer. Du har heller inte st&auml;llning som meddelare utan &auml;r sj&auml;lv straffr&auml;ttsligt ansvarig f&ouml;r dina inl&auml;gg. Om du vill tipsa redaktionen med fullt grundlagstadgat meddelarskydd, ska du kontakta redaktionen direkt i st&auml;llet. Anv&auml;nd g&auml;rna tipsrutan h&auml;r p&aring; www.sn.se, eller genom att mejla till redaktionen@sn.se. Du kan ocks&aring; ringa redaktionen p&aring; 0155-767 70.</p> <p><em>Det h&auml;r vill vi slippa:</em><br> - L&auml;nkar till rasistiskt, pornografiskt eller sexistiskt inneh&aring;ll.<br> - Kommentarer om etnicitet, sexualitet, politisk tillh&ouml;righet, yrke eller religion om det saknar relevans f&ouml;r h&auml;ndelsen eller &auml;mnet<br> - Svordomar och kr&auml;nkande tillm&auml;len<br> - Kommersiella budskap<br> - Hot, trakasserier, skvaller eller l&ouml;gner<br> - Uppmaningar till handlingar som strider mot svensk lag<br> - Otill&aring;ten publicering av upphovsr&auml;ttsskyddat material</p> <p>Den h&auml;r funktionen tillhandah&aring;lls och &ouml;vervakas i enlighet med Lagen om ansvar f&ouml;r elektroniska anslagstavlor (SFS 1998:112). Det inneb&auml;r att <em>redaktionen regelbundet l&auml;ser och vid behov tar bort inl&auml;gg</em> som strider mot lag, eller mot tidningens etiska regler enligt ovan.</p> <p>SN f&ouml;rbeh&aring;ller sig r&auml;tten att ta bort inl&auml;gg som redaktionen anser bryter mot ovanst&aring;ende.</p> <p>Anv&auml;ndare som grovt eller &aring;terkommande bryter mot reglerna st&auml;ngs av.</p> <p>Vi vill g&auml;rna ha din hj&auml;lp att hitta inl&auml;gg som du uppfattar bryter mot reglerna. Klicka p&aring; "Anm&auml;l inl&auml;gg" f&ouml;r att uppm&auml;rksamma oss p&aring; kommentarer som du uppfattar &auml;r tveksamma fr&aring;n etisk eller laglig utg&aring;ngspunkt.</p> </div> </div> <div class="field button"> <input type="submit" class="standardButton btnDefault hiddenByJS" value="Skicka" name="Submit" style="position: absolute; visibility: hidden;"> <input type="submit" class="standardButton btnDefault" value="Skicka!" id="fb-submitComment" name="fb-submitComment"> </div> </fieldset> </form></div> <div class="clearer"></div> </div> </div>';

	//if (userLogin && userFunctionLinks) {
	if (userLogout && userFunctionLinks) {
	
		commentContainer.update(txtLoggedIn);
	
		var postingId = getUrlVars()["postingId"];
		var hiddenArticleField = $$("input[name=article]")[0];
		var postingIdField = $$("input[name=postingId]")[0];
		var formUrlField = $$("input[name=formURL]")[0];
		var randomFormId = $$("input[name=randomFormId]")[0];
		
		hiddenArticleField.value = postingId;
		postingIdField.value = postingId;
		formUrlField.value = formUrlField.value + postingId;
		
		randomFormId.value = new Date().getTime();

	} else if (userLogin && authorEMail) {
	
		var txtLoggedOut = '<div id="blogComments"> <div class="extraCommentsCommentsWrapper commentsWrapper"><div class="header"><h2> <span class="commentprefix"></span> <!-- Kommentarer (0) --></h2></div> <div class="alert alertInfo clearfix"> <span></span><p>Denna artikel kan endast kommenteras av inloggade medlemmar</p><ul class="userFunctionLinks"> <li class="login"> <span> <a rel="modal" href="/nyheter/1.131?articleRenderMode=login">Logga in</a> </span> </li><li class="register"> <span> <a class="register" rel="modal" href="/nyheter/1.131?articleRenderMode=registerAndEdit">Bli medlem</a> </span> </li><li class="recoverpassword"> <span> <a rel="modal" href="/nyheter/1.131?articleRenderMode=recoverpassword">Gl&ouml;mt ditt l&ouml;senord?</a> </span> </li> </ul> </div><form action="#extraComments" id="SortWidget" method="get"><fieldset> <div> <input type="radio" checked="checked/" value="ascending" id="sortOrderAsc" class="submitWhenChecked" name="sortOrder"><label for="sortOrderAsc">&Auml;ldsta kommentar &ouml;verst</label> </div><div> <input type="radio" value="descending" id="sortOrderDesc" class="submitWhenChecked" name="sortOrder"> <label for="sortOrderDesc">Senaste kommentar &ouml;verst</label> </div> <input type="hidden" name="postingId" value="19.262742"> <input type="hidden" name="blogPostAction" value="view_post"> </fieldset>  </form> <div class="threadsWrapper"> </div> </div> </div>';
		commentContainer.update(txtLoggedOut);
	}
}


// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
		var param = hash[1];
		var hashIndexOf = param.indexOf("#");
		if (hashIndexOf) {
			param = param.substring(0, hashIndexOf);
		}
		
        vars[hash[0]] = param;
    }
    return vars;
}
