// (c) 2007 KystAtlas AS (Hans Martin Mohn)

function gtAssert(expr_str)
{try
{if(!eval(expr_str))
alert("assertion failed! "+expr_str);}
catch(e)
{alert("exception during assertion! "+expr_str);}}
gtArrayInsert=function(a,pos,element)
{if(pos===0)
a.unshift(element);else if(pos<a.length)
a.splice(pos,0,element);else
a.push(element);};function gtAddResizeendHandler(w)
{w.m_resize_timeout_id=-1;w.onresize=function()
{if(this.m_resize_timeout_id!=-1)
clearTimeout(this.m_resize_timeout_id);this.m_resize_timeout_id=setTimeout(function(){clearTimeout(this.m_resize_timeout_id);this.m_resize_timeout_id=-1;this.onresizeend();},300);};}
function gtCookie(document)
{this.m_document=document;this.m_map=new Object();this.m_crumbs=null;this.m_expires=null;this.m_path=null;this.m_domain=null;this.m_secure=null;this.m_crumbs=unescape(document.cookie).split("; ");for(var i=0;i<this.m_crumbs.length;i++)
{var arg=this.m_crumbs[i];var pos=arg.indexOf('=');if(pos>0)
this.m_map[arg.substring(0,pos)]=arg.substring(pos+1);}
this.setNumDaysValid=function(days)
{this.m_expires=new Date();this.m_expires.setDate(this.m_expires.getDate()+days);};this.getCrumb=function(name)
{return this.m_map[name];};this.getCrumbDef=function(name,def)
{if(this.m_map[name]!==null)
return this.m_map[name];else
return def;};this.setCrumb=function(name,value)
{this.m_map[name]=value;try
{this.m_document.cookie=name+"="+escape(value)+
(this.m_expires?";expires="+this.m_expires.toGMTString():"")+
(this.m_path?";path="+this.m_path:"")+
(this.m_domain?";domain="+this.m_domain:"")+
(this.m_secure?";secure":"");}
catch(e)
{gtTrace("gtCookie::setCrumb: Error "+e+"\n");}};}
function gtTimer()
{this.m_date=new Date();}
gtTimer.prototype.getElapsedMilliSeconds=function getElapsedMilliSeconds()
{var now=new Date();var diff=new Date(0,0,0,0,now.getMinutes()-this.m_date.getMinutes(),now.getSeconds()-this.m_date.getSeconds(),now.getMilliseconds()-this.m_date.getMilliseconds());return diff.getMinutes()*60000+diff.getSeconds()*1000+diff.getMilliseconds();};function gtChopDecimals(number,decimals)
{var exp=Math.pow(10,decimals);return Math.round(number*exp)/exp;}
function log10(a)
{return Math.log(a)/Math.log(10);}
function niceScale(s)
{var log=Math.floor(log10(s));var factor=Math.pow(10,log-1);var base=s/factor;return Math.floor((base+1)/5)*5*factor;}
function formatThousand(number)
{if(number>=1000)
{var newnumber=parseInt(number/1000);var rest=(number-newnumber*1000).toString();if(parseInt(rest)<10)
rest="00"+rest;else if(parseInt(rest)<100)
rest="0"+rest;return formatThousand(newnumber)+" "+rest;}
else return number;}
function gtWindowSize(x,y,w,h)
{this.m_x=x;this.m_y=y;this.m_w=w;this.m_h=h;}
function readCookieWindowSize(doc,name,x,y,w,h)
{var cookie=new gtCookie(doc);var ws=new gtWindowSize(x,y,w,h);var crumb=cookie.getCrumb(name);if(crumb)
{var v=crumb.split("|");ws.m_x=parseInt(v[0]);ws.m_y=parseInt(v[1]);ws.m_w=parseInt(v[2]);ws.m_h=parseInt(v[3]);}
return ws;}
function writeCookieWindowSize(doc,name,x,y,w,h)
{var cookie=new gtCookie(doc);cookie.setNumDaysValid(10);cookie.setCrumb(name,x+"|"+y+"|"+w+"|"+h);}
function openWindow(doc,name,url,control,x,y,w,h)
{var ws=readCookieWindowSize(doc,name,x,y,w,h);var win=window.open(url,name,control+",left="+ws.m_x+",top="+ws.m_y+",width="+ws.m_w+",height="+ws.m_h);win.m_offs_x=w.screenLeft-ws.m_x;win.m_offs_y=w.screenTop-ws.m_y;return win;}
function saveWindow(doc,win,name)
{var l=window.screenLeft-win.m_offs_x;var t=window.screenTop-win.m_offs_y;writeCookieWindowSize(doc,name,l,t,document.body.clientWidth,document.body.clientHeight);}
try
{if(typeof(top.g_trace_window)=="undefined")
top.g_trace_window=null;if(typeof(top.g_save_trace_text)=="undefined")
top.g_save_trace_text="";top.prev_now=null;}
catch(e)
{}
function showTraceWindow(yes)
{if(yes&&top.g_trace_window===null)
{try
{top.g_trace_window.focus();}
catch(e)
{top.g_trace_window=openWindow(top.document,"trace_window","/gtx/trace.htm","location=0,menubar=0,toolbar=0,resizable=1,status=0,titlebar=1",100,100,500,400);}
top.g_trace_window.onReady=function(on)
{if(on)
{if(top.g_save_trace_text.length>0)
{this.trace(top.g_save_trace_text);top.g_save_trace_text="";}}
else
{top.g_trace_window=null;}};}
else if(!yes&&top.g_trace_window!==null)
{top.g_trace_window.close();top.g_trace_window=null;}}
function gtSetTraceText(txt)
{top.g_trace_text=txt;}
function gtTrace(text)
{var now=new Date();if(top.prev_now)
{var diff=new Date(0,0,0,0,0,now.getSeconds()-top.prev_now.getSeconds(),now.getMilliseconds()-top.prev_now.getMilliseconds());var time=diff.getSeconds()+diff.getMilliseconds()/1000;text=time.toFixed(3)+" - "+text;}
top.prev_now=now;if(top.g_trace_text)
{top.g_trace_text.value=top.g_trace_text.value+text;return;}
if(top.g_trace_window&&typeof(top.g_trace_window.trace)!="undefined")
top.g_trace_window.trace(text);else
top.g_save_trace_text=top.g_save_trace_text+text;}
function gtTraceLine(text)
{gtTrace(text+"\n");}
function gtListAttributes(e)
{for(var i=0;i<e.attributes.length;i++)
{var a=e.attributes[i];if(a)
{if(a.nodeName)
Debug.write(a.nodeName+" \t= "+a.nodeValue+"\n");else
Debug.write("***noname*** \t= "+a.nodeValue+"\n");}}}
function gtListProperties(e)
{var s;for(var property_name in e)
{var value=e[property_name];s+=property_name+" \t= "+value?value:"<null>"+", ";}
return s;}
function addAttribute(node,name,value)
{var a=document.createAttribute(name);a.nodeValue=value;return node.attributes.setNamedItem(a);}
function gtObjectLoad()
{if(!objectSource)
{alert("Cannot load object - Javascript variable 'objectSource' not set");return;}
var embeddingWorked=true;try
{objectDestination.outerHTML="<embed id='embed' style='position:absolute;top:0;left:0;width:100%;height:"+gtGetWindowHeight()+"px;' fullscreen='yes' src='"+objectSource+"'><noembed>Din nettleser kan ikke vis dokumenter med innbakte PDF-filer</noembed></embed>";}
catch(e)
{embeddingWorked=false;}
var destination=gtGetElementById("objectDestination");if(destination)
embeddingWorked=false;if(!embeddingWorked)
{var dest=document.createElement("EMBED");addAttribute(dest,"src",objectSource);addAttribute(dest,"style","position:absolute;left:0;top:0;width:100%;height:"+gtGetWindowHeight()+"px;");document.body.replaceChild(dest,destination);}}
function addOption(dd,text,value)
{var o=document.createElement("OPTION");dd.options.add(o);o.text=text;o.value=value?value:text;};function selectValueOrFirstInList(dd,val)
{dd.value=val;if(dd.value!=val)
{dd.selectedIndex=0;}
return dd.value;}
function selectValueOrLastInList(dd,val)
{dd.value=val;if(dd.value!=val)
{dd.selectedIndex=dd.options.length-1;}
return dd.value;}