if (diagraminclude!=true)
{
				var diagraminclude=true
				var show=false
				var inMove=false
				var SVGused=true
				var descMargin=toPixel("6px")
				var descFontHeight=10 //Dette er et overslag på fontstørrelsen - det burde beregnes fra stylesheetet
				var descLineHeight=12 //do
				var SVGDoc
				var SVGArea
				var maxDescX
				var maxDescY

				if (adminDiagram!=true)
				{
					var adminDiagram=false
					upHandler=nothing
					moveHandler=nothing
					moveElemPrep=nothing
					action=nothing
					actionRelation=nothing
					Nodes=new Array()
					Relations=new Array()
				}
				function toPixel(compmeasure)
				{
				   var re = /[a-z]/g;
				   if (compmeasure.replace)
				   {
					   var measure = Number(compmeasure.replace(re, ""))
						if (screen.deviceXDPI) var dpi=Number(screen.deviceXDPI)
						else var dpi=96
						var pointprinch=72
						var cmprinch=2.54
						var picaprpoint=1/12
						var mmprcm=1/10
						if (compmeasure.indexOf("pt")>0)
							measure=measure/pointprinch
						else if (compmeasure.indexOf("pc")>0)
							measure=measure/(picaprpoint*pointprinch)
						else if (compmeasure.indexOf("cm")>0)
							measure=measure/cmprinch;
						else if (compmeasure.indexOf("mm")>0)
							measure=measure/(mmprcm*cmprinch)
						else measure=measure/dpi
						measure=measure*dpi
						return measure
					}
					else return compmeasure
				}
				
				function link(addr,wopen)
				{
					if (typeof(admindiagram)=="undefined")
					{
						if (typeof(wopen)=="undefined") var wopen=false
						if (wopen)
							window.open(addr,'link')
						else
							location.href=addr;
					}
				}
				function Initialize(LoadEvent)
				{
			    	SVGDocument = LoadEvent.getTarget().getOwnerDocument()
					diagramArea = SVGDocument.getElementById("diagramArea")
					SVGArea = SVGDocument.getElementsByTagName("svg").item(0)
					maxDescX=toPixel(SVGArea.getAttribute("width"))
					maxDescY=toPixel(SVGArea.getAttribute("height"))
				}
				function showDesc(desc,textId,evt)
				{
					if (inMove!=true && desc!="")
					{	
						SVGDoc = evt.getTarget().getOwnerDocument();
						descArea=SVGDoc.getElementById("descArea")
						thistext=SVGDoc.getElementById(textId)
						var xp=toPixel(thistext.getAttribute("x"))
						var yp=toPixel(thistext.getAttribute("y"))
						descbox=SVGDoc.getElementById("descbox")
						desctext=SVGDoc.getElementById("desctext")
						oDesc=desctext.childNodes;
						s=0
						while (oDesc.item(s) && oDesc.item(s).firstChild.data!=' ') 
						{
							oDesc.item(s).firstChild.data=' '; 
							s++
						}
						desctext.firstChild.firstChild.data=desc
						var textWidth=Number(desctext.firstChild.getComputedTextLength())
						remainText=desc
						oDesc=desctext.childNodes
						numLines=Math.ceil(Math.sqrt(textWidth/30))
						lineWidth=textWidth/numLines
						maxWidth=0
						s=0
						while (remainText.length>0)
						{
							thisLine=""
							do {
								indexpi=remainText.indexOf("¶")
								index=remainText.indexOf(" ")
								if (index>-1 || indexpi>-1)
								{
									if (indexpi>-1)
									{
										if (index>-1)
											index=Math.min(index,indexpi)
										else
											index=indexpi
										if (indexpi==index) 
										{
											remainText=remainText.substr(0,index)+" "+remainText.substr(index+1,remainText.length-(index+1))
											pi=true
										}
										else pi=false
									}
									else pi=false
									word=remainText.substr(0,index+1)
								}
								else word=remainText
								thisLine+=word
								remainText=remainText.substr(word.length,remainText.length-1)
								oDesc.item(s).firstChild.data=thisLine
							} while (oDesc.item(s).getComputedTextLength()<lineWidth && remainText.length>0 && pi!=true)
							maxWidth=Math.max(maxWidth,oDesc.item(s).getComputedTextLength())
							oDesc.item(s).setAttribute("x", xp+descMargin)
							if (s>0)
							oDesc.item(s).setAttribute("dy", descLineHeight)
							s++
						}
						descHeight=(s+1)*Number(descLineHeight)
						descbox.setAttribute("width", maxWidth+2*descMargin)
						descbox.setAttribute("height", descHeight)
						if(xp+maxWidth+2*descMargin>maxDescX)
						{	
							xp=maxDescX-(maxWidth+2*descMargin)
							for (t=0; t<s; t++)
							{
								oDesc.item(t).setAttribute("x", xp+descMargin)
							}
						}
						if(yp+descHeight>maxDescY)
						{
							yp=maxDescY-descHeight
						}
						descbox.setAttribute("x", xp)
						descbox.setAttribute("y", yp)
						
						xp=xp+descMargin
						yp=yp+descFontHeight+descMargin

						desctext.setAttribute("x", xp)
						desctext.setAttribute("y", yp)
					//	descbox.setAttribute("visibility", "visible")
					//	desctext.setAttribute("visibility", "visible")
						descArea.removeChild(descbox)
						descArea.appendChild(descbox)
						descArea.removeChild(desctext)
						descArea.appendChild(desctext)
					}
				}
				
				function hideDesc(evt)
				{
						SVGDoc = evt.getTarget().getOwnerDocument();
						window.setTimeout("if (!show) {	descbox=SVGDoc.getElementById('descbox'); desctext=SVGDoc.getElementById('desctext');	descbox.setAttribute('x', '0'); descbox.setAttribute('y', '0');	descbox.setAttribute('width', '0');	descbox.setAttribute('height', '0');	desctext.setAttribute('x', '0');	desctext.setAttribute('y', '0'); oDesc=desctext.childNodes; s=0; while (oDesc.item(s) && oDesc.item(s).firstChild.data!=' ') {oDesc.item(s).firstChild.data=' '; s++}}",500)
				}
				function isAdobe30()
				{
					//if (window.getSVGViewerVersion)
					//alert(window.getSVGViewerVersion())
					//	return (window.getSVGViewerVersion()!=null)
						return true
				}
}
