// Versionskontroll: Tagg-relaterat
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));

// Globala variabler
var constantTimerValue	= 60
var mTimer						= 40
var idir								= "/i.ag"

var page_on_display		= 0
var menuOK					= 0
var mouseIs					= "out"
var lastOpenedMenu		= 0
var openMs = new Array()
var openM						= 0
var level							= 0



// === Kontrollera att ev. obligatoriska fält fyllts i =========================================================

function check_form(form) {
	for (x = 0; x < form.elements.length; x++) {
		n = form.elements[x].name
		v = form.elements[x].value
		if (n.substr(n.length-2,n.length) == "_o" && v == "") {			// Finalt "_o" = obligatoriskt
			alert("Du måste fylla i samtliga obligatoriska fält!")
			form.elements[x].focus()
			return false
		}
	}
	return true
}

// === Hantering av taggar, inkl. bilder =========================================================

function tagga(tagg,antal) {
	var txtarea = document.page.text

	var theSelection = false
	var tagg1 = "<"+tagg+">"
	var tagg2 = "</"+tagg+">"

	if (antal == 1) {
		insert(tagg1,'text')
		return
	}

	if (clientVer >= 4 && is_ie && is_win) {
		theSelection = document.selection.createRange().text; // Get text selection
		if (theSelection) {
			// Add tags around selection
			document.selection.createRange().text = tagg1 + theSelection + tagg2
			txtarea.focus()
			theSelection = ''
			return;
		}
	}
	else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)) {
		mozWrap(txtarea,tagg1,tagg2)
		return
	}

	storeCaret(txtarea)
}

function h2bild(id,namn,target) {
	insert('<bild id=' + id + ' namn="' + namn + '">',target)
}

function h2doc(id,namn,target) {
	insert('<dokument fil=' + id + ' namn="' + namn + '">',target)
}

function h2link(id,namn,target) {
	insert('<länk sida=' + id + ' namn="' + namn + '">',target)
}

function insert(text,target) {
	var txtarea = document.page.text
	if (target == "right") { txtarea = document.page.right }
	if (target == "left")  { txtarea = document.page.left  }

	if (txtarea.createTextRange && txtarea.caretPos) {
		var caretPos = txtarea.caretPos
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text
		txtarea.focus()
	} else {
		txtarea.value  += text
		txtarea.focus()
	}
}

// From http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close) {
	var selLength = txtarea.textLength
	var selStart = txtarea.selectionStart
	var selEnd = txtarea.selectionEnd
	if (selEnd == 1 || selEnd == 2) selEnd = selLength

	var s1 = (txtarea.value).substring(0,selStart)
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength)
	txtarea.value = s1 + open + s2 + close + s3
	return
}

// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate()
}



// === Aktivering av redigeringsrutan (ed_menu) ==========================================

////////////////////////////////////////////////////////////////////////////////////////////////////
//
// edmenu - Menyversionen.
//

function edmenu(p,name,level,parent,parent_name,grandparent,statustext,current_page,current_page_name,can_move_up,can_move_down,can_be_lowered,visible,usr,callme,flikcall,lang,style,x) {
//
// p					sida som anropats
// name					sidan p:s namn
// current_page			sidan som SYNS
// current_page_name	namn på sidan som SYNS
// level				nivå (1 = huvudmenyn)
// parent				sidans förälder
// parent_name			sidans förälders namn
// grandparent			sidans farförälder
// statustext			"Huvudflik" alt. "[huvudflik] - underflik" alt. "[huvudflik] - underunderflik"
// callme				$callme från huvudscriptet
// flikcall				callme + parametrar för snabbanrop till edpage
//
// h2|edpage kan anropas antingen som länk eller via SUBMIT; parametern how visar hur anropet gjorts.
//
//alert("ed_menu("+p+","+name+","+can_move_up+","+can_move_down+")")
	if (menuOK == 0) { return }
	var html = ""
	var flikcallwhich = ""
	if (p == page_on_display) { page_on_display = 0; ed_menuLayer.hide(); return; }
	flikcallwhich = flikcall + "&which=" + p

	html += "<FORM NAME=ed ACTION="+callme+" METHOD=GET>"
	html += "<INPUT TYPE=HIDDEN NAME='do' VALUE='edshow'>"
	html += "<INPUT TYPE=HIDDEN NAME='how' VALUE='form'>"
	html += "<INPUT TYPE=HIDDEN NAME='which' VALUE='"+p+"'>"
	html += "<INPUT TYPE=HIDDEN NAME='thenshow' VALUE='"+current_page+"'>"
	html += "<INPUT TYPE=HIDDEN NAME='who' VALUE='"+usr+"'>"
	html += "<INPUT TYPE=HIDDEN NAME='lang' VALUE='"+lang+"'>"
	html += "<INPUT TYPE=HIDDEN NAME='style' VALUE='"+style+"'>"
	html += "<TABLE BGCOLOR="+text_ed+" BORDER=0 CELLSPACING=0 CELLPADDING=1><TR><TD>"
	html += "<TABLE WIDTH="+(bigtablewidth-2)+" BORDER=0 CELLSPACING=1 CELLPADDING=1>"
	html += "<TR BGCOLOR="+bg_ed+"><TD>";
	html += "<TABLE border=0 WIDTH=100%><TR><TD ALIGN=LEFT>"
	html += "<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR VALIGN=MIDDLE>";
	html += "<TD>"+statustext+":&nbsp;</TD>";
	html += "<TD><INPUT TYPE=TEXT NAME=newname VALUE='"+name+"'</TD><TD>&nbsp;</TD>";
	html += "<TD>Bredd:&nbsp;</TD><TD><INPUT TYPE=TEXT NAME=x VALUE="+x+" SIZE=3></TD><TD>&nbsp;</TD>";
	html += "<TD><INPUT TYPE=SUBMIT VALUE='Ändra namn/bredd'></TD>";
/// diag
//	html += "<TD ALIGN=RIGHT>&nbsp;&nbsp;  <I>id "+p+"; lvl "+level+"; aktiv "+current_page+"; parent "+parent+"; g-parent "+grandparent+"; CBL "+can_be_lowered+"; fc "+flikcall+"</I></TD>";
	html += "</TR></TABLE>"
	html += "</TD><TD ALIGN=RIGHT VALIGN=TOP><A HREF='' onClick='ed_menuLayer.hide(); page_on_display = 0; return false;'>x</A></TD>"
	html += "</TR></TABLE>"
	html += "</TD></TR>";
	html += "<TR BGCOLOR="+bg_ed+"><TD><FONT COLOR="+text_ed+">"
	if (level == 1) {
		if (can_move_up)   { html += "[ <A HREF=" + flikcallwhich + "&what=mvlft><IMG SRC="+idir+"/pil_mvlft.gif BORDER=0 WIDTH=7 HEIGHT=7></A> ]" } else { html += "[ &nbsp; ]" }
		if (can_move_down) { html += "[ <A HREF=" + flikcallwhich + "&what=mvrgt><IMG SRC="+idir+"/pil_mvrgt.gif BORDER=0 WIDTH=7 HEIGHT=7></A> ]" } else { html += "[ &nbsp; ]" }
		if (can_move_up)   { html += "[ <A HREF=" + flikcallwhich + "&what=mvfrlft><IMG SRC="+idir+"/pil_mvfrlft.gif BORDER=0 WIDTH=11 HEIGHT=7></A> ]" } else { html += "[ &nbsp; ]" }
		if (can_move_down) { html += "[ <A HREF=" + flikcallwhich + "&what=mvfrrgt><IMG SRC="+idir+"/pil_mvfrrgt.gif BORDER=0 WIDTH=11 HEIGHT=7></A> ]" } else { html += "[ &nbsp; ]" }
	} else {
		if (can_move_up)   { html += "[ <A HREF=" + flikcallwhich + "&what=mvlft><IMG SRC="+idir+"/pil_upp.gif BORDER=0 WIDTH=7 HEIGHT=11></A> ]" } else { html += "[ &nbsp; ]" }
		if (can_move_down) { html += "[ <A HREF=" + flikcallwhich + "&what=mvrgt><IMG SRC="+idir+"/pil_ner.gif BORDER=0 WIDTH=7 HEIGHT=11></A> ]" } else { html += "[ &nbsp; ]" }
		if (can_move_up)   { html += "[ <A HREF=" + flikcallwhich + "&what=mvfrlft><IMG SRC="+idir+"/pil_dubbelupp.gif BORDER=0 WIDTH=7 HEIGHT=11></A> ]" } else { html += "[ &nbsp; ]" }
		if (can_move_down) { html += "[ <A HREF=" + flikcallwhich + "&what=mvfrrgt><IMG SRC="+idir+"/pil_dubbelner.gif BORDER=0 WIDTH=7 HEIGHT=11></A> ]" } else { html += "[ &nbsp; ]" }
	}
	if (level > 1) { html += "[ <A HREF=" + flikcallwhich + "&what=link&where=" + grandparent + ">Höj</A> ]" }
	if (can_be_lowered) { html += "[ <A HREF=" + flikcallwhich + "&what=link&where=" + current_page + ">Lägg under " + current_page_name + "</A> ]" }

	html += "[ <A HREF=" + flikcallwhich + "&what=rmv&confirm=1>Ta bort</A> ]"
	if (visible == "Nej") { html += "[ <A HREF=" + flikcallwhich + "&what=show>Visa</A> ]" }
					 else { html += "[ <A HREF=" + flikcallwhich + "&what=hide&where=" + current_page + ">Dölj</A> ]" }

	html += "&nbsp;&nbsp;&nbsp;"

	if (level == 1) { html += "[ <A HREF=" + flikcall + "&which=" + parent + "&what=add>Skapa huvudmeny</A> ]" }
	if (level == 2 || level == 3) { html += "[ <A HREF=" + flikcall + "&which=" + parent + "&what=add>Skapa sida under " + parent_name + "</A> ]" }
	var where = 0; var flik = "";
	if (level == 1 || level == 2) { html += "[ <A HREF=" + flikcall + "&which=" + p + "&what=add>Skapa sida under " + name + "</A> ]" }
	html += "</FONT></TD></TR>"
	html += "</TABLE>"
	html += "</TD></TR></TABLE>"
	html += "</FORM>"

	ed_menuLayer.writeLayer(html)
	page_on_display = p

	ed_menuLayer.show()
}



/*  Admin  */

 // Ange värde på fält
function a_set(id,f,currval,falt,namn,x) {
//	alert("a_set(" + id + "," + f + "," + currval + "," + falt + "," + namn + "," + x + ")");

	if (x) { val = x }
	  else { val = prompt("Ange " + falt + " för " + namn,currval) }

	if (typeof(val) == "string") {
		document.admin.a_d.value = "set"
		document.admin.a_u.value = id
		document.admin.a_f.value = f
		document.admin.a_v.value = val
		document.admin.submit()
	}
}



/*	Bildhantering	*/

 // Byt namn på bild
function rename_img(id,namn) {
	if (nyttnamn = prompt("Byt namn på bilden:",namn)) {
		document.rename_b.b_which.value = id
		document.rename_b.b_what.value  = nyttnamn
		document.rename_b.submit()
	}
}

 // Borttagning av bilder metod 2: En masse.
function remove2_img() {
//alert("Remove - Hi.1");
//alert("bilder.elements.length = "+bilder.elements.length);
	var antal = 0
	var remove = 'remove2'
	for (x = 0; x < bilder.elements.length; x++) {
		n = bilder.elements[x].name
		c = bilder.elements[x].checked
		if (n.substr(0,6) == 'check_' && c) {
			bilder.elements[x].focus()
//			if (confirm('Ta bort den här?')) { antal++ } else { alert('Bildborttagningen avbröts'); return }
			antal++
		}
	}
	if (antal == 1) { bildord = 'bild' } else { bildord = 'bilder' }
	if (! antal) { alert('Inga bilder har markerats för borttagning'); return }
	if (confirm("Du kommer nu att ta bort "+antal+" "+bildord+" - fortsätt?")) {
		document.bilder.b_do.value = 'remove2'
		document.bilder.submit()
	}
}

 // Flytta bilder
function move_img() {
	var antal = 0
	var error = 0
	for (x = 0; x < document.bilder.elements.length; x++) {
		n = document.bilder.elements[x].name
		c = document.bilder.elements[x].checked
		if (n.substr(0,6) == 'check_' && c) { antal++ }
	}
	if (antal == 1) { bildord = 'bild' } else { bildord = 'bilder' }
	if (! antal) { alert('Inga bilder har markerats'); return }
	document.bilder.b_where.value = document.bilder.moveto.options[document.bilder.moveto.selectedIndex].value
	if (document.bilder.b_where.value == 0) { alert("Du måste välja vart du vill flytta bilderna!"); error = 1; }
	if (error == 0 && confirm("Du kommer nu att flytta "+antal+" "+bildord+" - fortsätt?")) {
		document.bilder.b_do.value = 'move'
		document.bilder.submit()
	}
}



/*	Dokumenthantering	*/

 // Byt namn på dokument
function rename_doc(id,namn) {
	if (nyttnamn = prompt("Byt namn på dokumentet:",namn)) {
		document.rename_d.d_which.value = id
		document.rename_d.d_what.value  = nyttnamn
		document.rename_d.submit()
	}
}

 // Borttagning av dokument metod 2: En masse.
function remove2_doc() {
	var antal = 0
	var remove = 'remove2'
	for (x = 0; x < dokument.elements.length; x++) {
		n = dokument.elements[x].name
		c = dokument.elements[x].checked
		if (n.substr(0,6) == 'check_' && c) {
			dokument.elements[x].focus()
			antal++
		}
	}
	if (! antal) { alert('Inga dokument har markerats för borttagning'); return }
	if (confirm("Du kommer nu att ta bort "+antal+" dokument - fortsätt?")) {
		document.dokument.d_do.value = 'remove2'
		document.dokument.submit()
	}
}

// Flytta dokument
function move_doc() {
	var antal = 0
	var error = 0
	for (x = 0; x < document.dokument.elements.length; x++) {
		n = document.dokument.elements[x].name
		c = document.dokument.elements[x].checked
		if (n.substr(0,6) == 'check_' && c) { antal++ }
	}
	if (! antal) { alert('Inga dokument har markerats'); return }
	document.dokument.d_where.value = document.dokument.moveto.options[document.dokument.moveto.selectedIndex].value
	if (document.dokument.d_where.value == 0) { alert("Du måste välja vart du vill flytta dokumenten!"); error = 1; }
	if (error == 0 && confirm("Du kommer nu att flytta "+antal+" dokument - fortsätt?")) {
		document.dokument.d_do.value = 'move'
		document.dokument.submit()
	}
}


// Hantering av lager

function createlayerObj(id, i) {
	var theLayer = document.all[id].style
	theLayer.access = document.all[id]
	this.css = document.all[id].style

	this.id = i
	this.x = this.css.pixelLeft
	this.y = this.css.pixelTop
	this.w = this.css.pixelWidth
	this.h = this.css.pixelHeight
}
{
	p = createlayerObj.prototype
	p.writeLayer = writeLayer
	p.loadInLayer = loadInLayer
	p.show = showLayer
	p.hide = hideLayer
}

///
function loadInLayer(url) {
	transferObj=this
	this.srcURL = url
	document.all['bufferFrame'].src = url
}

///
function writeLayer(htmlContent) {
	this.css.access.innerHTML = htmlContent
}

///
function showLayer() {
	this.css.visibility = "visible"
}

///
function hideLayer() {
	this.css.visibility = "hidden"
}




// Onload-fokusering på namn-fältet.
function autorun_namn() { document.doc.namn.focus() }

// Onload-fokusering på text-fältet.
function autorun_text() { document.doc.text.focus() }


// Submitter-funktion för ed/mkdoc.
function submitter(form) {
   error = "";
   if (form.namn.value == "") {error = "Du måste ange ett namn!"}
   if (error) { alert(error); exit }
   form.submit();
}


// === Fönster ==========================================

// Fönster: "Resizable" med rullningslister och statusfält på X x Y pix
function openWinRSSt(url,x,y) {
   window.open(url,'','location=0,resizable=yes,status=1,titlebar=1,directories=0,toolbar=0,menubar=0,scrollbars=1,left=0,top=0,width='+x+',height='+y);
}

// Fönster: "Resizable" med rullningslister på X x Y pix
function openWinRS(url,x,y) {
   window.open(url,'','location=0,resizable=yes,status=0,titlebar=1,directories=0,toolbar=0,menubar=0,scrollbars=1,left=0,top=0,width='+x+',height='+y);
}

// Fönster: "Resizable" på 500x300 pix
function openWinR(url) {
   window.open(url,'','location=0,resizable=yes,status=0,titlebar=1,directories=0,toolbar=0,menubar=0,scrollbars=0,left=0,top=0,width=500,height=300');
}

// Fönster: "resizable" på X x Y pix
function openWin(url,x,y) {
   window.open(url,'','location=0,resizable=yes,status=0,titlebar=1,directories=0,toolbar=0,menubar=0,scrollbars=0,left=0,top=0,width='+x+',height='+y);
}


// === Inloggnings-sidan ==========================================

function autorun_login() {
	document.myForm.password.focus()
	if (document.myForm.formusr.value != "") {				// Har användarnamnet skickats som parameter?
		document.myForm.usr.value = document.myForm.formusr.value
	} else {
		cookiename = getCookie("usr")
		if (cookiename != null) {										// Finns användarnamnet i en kaka?
			document.myForm.usr.value = cookiename
		} else {
			document.myForm.usr.focus()						// Varken eller = tomt namnfält.
		}
	}
}

function login_submitter() {
//	var nu = new Date(); fixDate(nu); nu.setTime(nu.getTime()+365*24*60*60*1000);
	setCookie("usr",document.myForm.usr.value,"nu")
	document.myForm.submit()
}


// === Kakor ==========================================

function setCookie(name, value, expires, path, domain, secure) {
	if (expires == "nu") {
		var nu = new Date(); fixDate(nu);
		nu.setTime(nu.getTime()+365*24*60*60*1000);
		expires = nu;
	}
	var curCookie = name + "=" + escape(value) +
		((expires)		? "; expires = " + expires.toGMTString() : "") +
		((path)			? "; path = " + path : "") +
		((domain)		? "; domain = " + domain : "") +
		((secure)		? "; secure" : "");
	document.cookie = curCookie;
}

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf(prefix);
	if (begin == -1) return null;
	var end = document.cookie.indexOf(";", begin);
	if (end == -1) end = dc.length;
	return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
	if (getCookie(name)) {
	document.cookie = name + "=" + 
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
	"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

function fixDate(date) {
	var base = new Date(0); var skew = base.getTime();
	if (skew > 0) date.setTime(date.getTime() - skew);
}




// === Meny ==========================================


function mouseDown(e) {
	hideopen(0);
	return true;
}

function mio() {
	mouseIs = "out";
	menuTimer();
}

function menuTimer() {
	if (mTimer <= 0) {
		hideopen(0);
	} else {
		mTimer -= 1;
		if (mouseIs != "in") {
			timer = setTimeout("menuTimer()",35);
		}
	}
}

function m(level) {
	if (openM == level) { hideopen(level) }
	mouseIs = "in";
	mTimer = constantTimerValue;
}

// Open menu [obj] on level [level], close all menus of equal level and higher
function meny(obj,level) {
	if (obj == lastOpenedMenu) { return }
	mouseIs = "in";
	mTimer = constantTimerValue;

	if (obj != '-') {
		hideopen(level);
		obj.show();
		openMs[level] = obj;
		openM = level;
		lastOpenedMenu = obj;
	} else {
		hideopen(level-1);
	}
}

// Hide menus of level [level] and higher
function hideopen(level) {
	if (level == 0) { level = 1 }
	var i = openM;
	if (i < level) { return }
	while(i >= level) {
		if (lastOpenedMenu == openMs[i]) { lastOpenedMenu = "" }
		openMs[i].hide();
		i--;
	}
	if (openM > i) { openM = i }
}


