// Funktion för att öppna ett popupfönster utan toolbars med en bestämd höjd och brädd
// @Param url = Den URL som ska öppnas i ett nytt fönster
// @Param width = Bredden på det nya fönstret
// @Param height = Höjden op det nya fönstret
// @Call = PopUp('URL',Bredd,Höjd);
function PopUp(url,width,height){
	unik=new Date();
	unik=unik.getSeconds()+"_"+unik.getMinutes()+"_"+unik.getHours();
	stuff = "toolbar=no,menubar=no,scrollbars=yes,resizable=no,width= " +width + ", height = " +height
	window.open(url,unik,stuff );
}

// Funktion för att visa eller dölja i vänstermenyn
// @Param strDiv = id på den div som ska visas eller döljas
// @Call = SidebarShowHide('Kategori + nummer');
function SidebarShowHide(strDiv){
	if(document.getElementById(strDiv).style.visibility == 'hidden'){
		document.getElementById(strDiv).style.visibility = 'visible';
		document.getElementById(strDiv).style.display = 'block';
		document.cookie = strDiv+'='+ '1';
		document.getElementById('image_'+strDiv).src = '/grfx/icons/arrow_down.png';
	} 
	else {
		document.getElementById(strDiv).style.visibility = 'hidden';
		document.getElementById(strDiv).style.display = 'none';
		document.cookie = strDiv+'='+ '0';
		document.getElementById('image_'+strDiv).src = '/grfx/icons/arrow_right.png';
	}
}

// Funktion för att visa eller dölja forum i alla forum
// @Param strDiv = id på den div som ska visas eller döljas
// @Call = BoardShowHide('ForumKategori + ForumID');
function BoardShowHide(strDiv){
	if(document.getElementById(strDiv).style.visibility == 'hidden'){
		document.getElementById(strDiv).style.visibility = 'visible';
		document.getElementById(strDiv).style.display = 'block';
		document.getElementById('image_'+strDiv).src = '/grfx/icons/arrow_down.png';
		document.cookie = strDiv+'='+ '1';
	} 
	else {
		document.getElementById(strDiv).style.visibility = 'hidden';
		document.getElementById(strDiv).style.display = 'none';
		document.getElementById('image_'+strDiv).src = '/grfx/icons/arrow_right.png';
		document.cookie = strDiv+'='+ '0';
	}
}

// Funktion för att validera formulär där all fält är obligatoriska
// Visar eller döljer en <span> med samma id som det fält som valideras + CheckFailed
// @Param form = ID på det formulär som ska valideras
// @Call = return validForm(this.id);"
function validForm(form) {
	var formId = form;
	document.getElementsByTagName('span').className = 'hidden';
	for (var i=0; i<document.getElementById(formId).elements.length; i++){
		if(document.getElementById(formId).elements[i].value == '' || document.getElementById(formId).elements[i].value == null || document.getElementById(formId).elements[i].value.length == 0){
			var strMessage = document.getElementById(formId).elements[i].id + 'CheckFailed';
			document.getElementById(strMessage).className = 'error';
			return false;
		}
	}
	return true;
}

// Funktion för att validera formulär där all fält är obligatoriska
// Visare en alert om fältet inte validerar
// @Param form = ID på det formulär som ska valideras
// @Call = return validFormAlert(this.id);"
function validFormAlert(form) {
	var formId = form;
	for (var i=0; i<document.getElementById(formId).elements.length; i++){
		if(document.getElementById(formId).elements[i].value == '' || document.getElementById(formId).elements[i].value == null || document.getElementById(formId).elements[i].value.length == 0){
			var strMessage = document.getElementById(formId).elements[i].id;
			alert('Du måste fylla i alla fält i formuläret');
			return false;
		}
	}
	return true;
}

// Funktion för att validera formulär där all fält inte är obligatoriska
// Itererar genom argumenten som har angetts i anropet, finns det fält med samma ID som ett argument så kontrolleras det.
// Visar eller döljer en <span> med samma id som det fält som valideras + CheckFailed
// @Call = return validFormOptional(De element som ska valideras);"
function validFormOptional(){
	var itemList = validFormOptional.arguments;
	for (var i=0; i<itemList.length; i++) {
		if(document.getElementById(itemList[i]).value == '' || document.getElementById(itemList[i]).value == null || document.getElementById(itemList[i]).value.length == 0){
			var strMessage = itemList[i] + 'CheckFailed';
			document.getElementById(strMessage).className = 'error';
			return false;
		}
	}
	return true;
}

// Funktion för att validera formulär där all fält inte är obligatoriska
// Itererar genom argumenten som har angetts i anropet, finns det fält med samma ID som ett argument så kontrolleras det.
// Visare en alert om fältet inte validerar
// @Call = return validFormOptional(De element som ska valideras);"
function validFormOptionalAlert(){
	var itemList = validFormOptionalAlert.arguments;
	for (var i=0; i<itemList.length; i++) {
		if(document.getElementById(itemList[i]).value == '' || document.getElementById(itemList[i]).value == null || document.getElementById(itemList[i]).value.length == 0){
			alert('Du måste fylla i alla obligatoriska fält i formuläret');
			return false;
		}
	}
	return true;
}

function validEmail(caller){
	var message = document.getElementById(caller + 'CheckFailed');
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(value))	{
		message.className = 'hidden';
	}
	else{
		message.className = 'error';
	}
}



// Funktion för att spara markörens position i ett fält
// @obj = Det fält som det avser
// @Call = StorePos(this);
var carret=null,fieldobj=null,ie=(document.selection&&document.selection.createRange);
function StorePos(obj){ 
	fieldobj=obj; carret=(ie)?document.selection.createRange():null; 
}

// Funktion för att infoga BBCode
// @Param str = Den sträng som ska infogas mellan []
// @Depend = StorePos
// @Call = insertAtCarret('det som ska infogas');
function insertAtCarret(str){
	if(!fieldobj) return null;
  if (carret){
		carret.text = "[" + str + "]" + carret.text + "[/" + str + "]"; carret.select();
   } 
	 else if(document.getElementById&&!ie) {
	 	if(fieldobj.selectionStart == fieldobj.selectionEnd){
	  	fieldobj.value=fieldobj.value.substring(0,fieldobj.selectionStart) + "[" + str + "] [/" + str +"]" + fieldobj.value.substring(fieldobj.selectionEnd);
	  }
	  else{
	  	fieldobj.value=fieldobj.value.substring(0,fieldobj.selectionStart) + "[" + str + "]" + fieldobj.value.substring(fieldobj.selectionStart,fieldobj.selectionEnd) + "[/" + str + "]" + fieldobj.value.substring(fieldobj.selectionEnd);
	  }
	  fieldobj.focus();
   } 
	 else {
	  fieldobj.value+=str;
	  fieldobj.focus();
   }
}

function insertSmiley(str){
	if(!fieldobj) return null;
	if (carret){
		carret.text = carret.text + " " + str + " "; carret.select();
	} 
	else if(document.getElementById&&!ie) {
	  if(fieldobj.selectionStart == fieldobj.selectionEnd){
		  fieldobj.value=fieldobj.value.substring(0,fieldobj.selectionStart) + " " + str +" " + fieldobj.value.substring(fieldobj.selectionEnd);
		}
		else{
			fieldobj.value=fieldobj.value.substring(0,fieldobj.selectionEnd) + " " + str + " " + fieldobj.value.substring(fieldobj.selectionEnd);
		}
		fieldobj.focus();
	} 
	else {
		fieldobj.value+=str;
		fieldobj.focus();
	}
}

// Funktionerna nedanför är till för att citera inlägg.
// @Param text = Den text som ska citeras
// @Param user = Den användare som blir citerad
// @Param textareaId = ID på den textarea som det ska infogas i
// @Call = Quote('Text','Username', 'textareaId');
function Quote(text, user, textareaId){
	document.getElementById(textareaId).value += '[quote name='+ user +']\n'+ text +'\n[/quote]\n\n';
	document.getElementById(textareaId).focus();
}

// Funktionerna nedanför är till för visa/dölja citat.
// @Param meId = Id på det citat som ska visas döljas
// @Call = HideQuote('id på citat');
function HideQuote(meId){
	if(document.getElementById(meId +'_text').style.display == 'none'){
		document.getElementById(meId +'_text').style.display = '';
		document.getElementById(meId +'_headline').innerHTML = 'Stäng citat';
	}
	else{
		document.getElementById(meId +'_text').style.display = 'none';
		document.getElementById(meId +'_headline').innerHTML = 'Visa citat';
	}
}

//Funktion för att visa/dölja DIV vid onmouseover/onmouseout  samt click med hjälp av en eventHandler
// @Param e = Det event som har triggat funktionen
// @Param elementId = Id på det citat som ska visas döljas
// @Call = showElement(event, 'id på det element som ska visas/döljas');
function showElement(e, elementId){
	if (!e) var e = window.event;
	if (e.type == 'mouseover'){
		if (elementId != '' && elementId != null){
 		document.getElementById(elementId).style.display = 'block';
		}
	}
	else if (e.type == 'mouseout'){
		if (elementId != '' && elementId != null){
 			document.getElementById(elementId).style.display = 'none';
		}
	}
	else if (e.type == 'click'){
		if (elementId != '' && elementId != null){
			document.getElementById(elementId).style.display == "block" ? document.getElementById(elementId).style.display = "none" : document.getElementById(elementId).style.display = "block";
    	obj2=document.getElementById(elementId);
    	if(obj2){
    		obj2.value=document.getElementById(elementId).style.display;
    	}
		}
	}
}


// Script Source: CodeLifter.com
// Copyright 2003
// Do not remove this notice.

// SETUPS:
// ===============================

// Set the horizontal and vertical position for the popup

PositionX = 100;
PositionY = 100;

// Set these value approximately 20 pixels greater than the
// size of the largest image to be used (needed for Netscape)

defaultWidth  = 520;
defaultHeight = 520;

// Set autoclose true to have the window close automatically
// Set autoclose false to allow multiple popup windows

var AutoClose = true;

// Do not edit below this line...
// ================================
if (parseInt(navigator.appVersion.charAt(0))>=4){
	var isNN=(navigator.appName=="Netscape")?1:0;
	var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;
}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;

function popImage(imageURL,imageTitle){
	if (isNN){imgWin=window.open('about:blank','',optNN);}
	if (isIE){imgWin=window.open('about:blank','',optIE);}
	with (imgWin.document){
		writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
		writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
		writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
		writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
		writeln('width=100-(document.body.clientWidth-document.images[0].width);');
		writeln('height=100-(document.body.clientHeight-document.images[0].height);');
		writeln('window.resizeTo(width,height);}');writeln('if (isNN){');       
		writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}');
		writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
		if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
		else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
		writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
		close();		
	}
}



