// (c) 2007 KystAtlas AS (Hans Martin Mohn)

var gtGetElementById=function(id){return null;};var gtGetElementByName=function(name){return null;};var gtCancelBubble=function(evt){};var gtAddEventListener=function(e,handler){};var gtStopContextMenu=function(doc,stop){doc.oncontextmenu=function(){return!stop;};};var gtClick=function(evt){return true;};var gtMouseDown=function(evt){return true;};var gtMouseUp=function(evt){return true;};var gtMouseMove=function(evt){return true;};var gtMouseOver=function(evt){return true;};var gtMouseOut=function(evt){return true;};var g_supports_event_params=true;var g_supports_document_all=false;var g_needs_direct_access=false;var g_supports_event_2_0=false;function addGTGlobalHandler()
{if(document.all)
g_supports_document_all=true;if(document.layers)
g_needs_direct_access=true;if(window.navigator.userAgent.indexOf("MSIE")>=0||window.navigator.userAgent.indexOf("Opera")>=0)
g_supports_event_params=false;if(document.getElementById)
{gtGetElementById=intGetElementById;gtGetElementByName=intGetElementById;}
else if(g_supports_document_all)
{gtGetElementById=intGetElementAll;gtGetElementByName=intGetElementAll;}
else if(g_needs_direct_access)
{gtGetElementById=intGetElementDirect;gtGetElementByName=intGetElementDirect;}
if(g_supports_event_params)
{gtCancelBubble=intCancelBubbleOther;gtPreventDefault=intPreventDefaultOther;}
else
{gtCancelBubble=intCancelBubbleIE;gtPreventDefault=intPreventDefaultIE;}
if(document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("Events","2.0"))
{g_supports_event_2_0=true;}
if(window.addEventListener)
gtAddEventListener=intAddEventListenerW3C;else
gtAddEventListener=intAddEventListenerIE;addDocumentHandler(document);}
function mutateW3CEventToGT(evt)
{evt.gtX=evt.clientX;evt.gtY=evt.clientY;evt.gtElement=evt.currentTarget;evt.gtKeyCode=evt.keyCode;evt.gtShiftKey=evt.shiftKey;evt.gtButton=(evt.button==2)?2:0;}
function intClickParam(evt)
{mutateW3CEventToGT(evt);return evt.currentTarget.gtClick(evt);}
function intMouseDownParam(evt)
{mutateW3CEventToGT(evt);return evt.currentTarget.gtMouseDown(evt);}
function intMouseUpParam(evt)
{mutateW3CEventToGT(evt);return evt.currentTarget.gtMouseUp(evt);}
function intMouseMoveParam(evt)
{mutateW3CEventToGT(evt);return evt.currentTarget.gtMouseMove(evt);}
function intMouseOverParam(evt)
{mutateW3CEventToGT(evt);return evt.currentTarget.gtMouseOver(evt);}
function intMouseOutParam(evt)
{mutateW3CEventToGT(evt);return evt.currentTarget.gtMouseOut(evt);}
function mutateIEEventToGT(evt)
{evt.gtX=evt.clientX;evt.gtY=evt.clientY;evt.gtElement=evt.srcElement;evt.gtKeyCode=evt.keyCode;evt.gtShiftKey=evt.shiftKey;evt.gtButton=(evt.button==2)?2:0;return evt;}
function intClickNoParam()
{var evt=mutateIEEventToGT(this.document.parentWindow.event);return this.gtClick(evt);}
function intMouseDownNoParam()
{var evt=mutateIEEventToGT(this.document.parentWindow.event);return this.gtMouseDown(evt);}
function intMouseUpNoParam()
{var evt=mutateIEEventToGT(this.document.parentWindow.event);return this.gtMouseUp(evt);}
function intMouseMoveNoParam()
{var evt=mutateIEEventToGT(this.document.parentWindow.event);return this.gtMouseMove(evt);}
function intMouseOverNoParam()
{var evt=mutateIEEventToGT(this.document.parentWindow.event);return this.gtMouseOver(evt);}
function intMouseOutNoParam()
{var evt=mutateIEEventToGT(this.document.parentWindow.event);return this.gtMouseOut(evt);}
function addDocumentHandler(doc)
{if(g_supports_event_params)
{doc.onmousemove=intDocGTMouseMoveParam;doc.onmouseup=intDocGTMouseUpParam;}
else
{doc.onmousemove=intDocGTMouseMoveNoParam;doc.onmouseup=intDocGTMouseUpNoParam;}
doc.gtMouseMove=gtMouseMove;doc.gtMouseUp=gtMouseUp;}
function intDocGTMouseMoveParam(evt)
{mutateW3CEventToGT(evt);return this.gtMouseMove(evt);}
function intDocGTMouseMoveNoParam()
{var evt=mutateIEEventToGT(this.parentWindow.event);return this.gtMouseMove(evt);}
function intDocGTMouseUpParam(evt)
{mutateW3CEventToGT(evt);return this.gtMouseUp(evt);}
function intDocGTMouseUpNoParam()
{var evt=mutateIEEventToGT(this.parentWindow.event);return this.gtMouseUp(evt);}
function intAddEventListenerIE(e,name,handler)
{e.attachEvent("on"+name,handler);}
function intAddEventListenerW3C(e,name,handler)
{e.addEventListener(name,handler,false);}
function addGTHandlers(element)
{element.gtClick=gtClick;element.gtMouseDown=gtMouseDown;element.gtMouseUp=gtMouseUp;element.gtMouseMove=gtMouseMove;element.gtMouseOver=gtMouseOver;element.gtMouseOut=gtMouseOut;if(g_supports_event_params)
{element.onclick=intClickParam;element.onmousedown=intMouseDownParam;element.onmouseup=intMouseUpParam;element.onmousemove=intMouseMoveParam;element.onmouseover=intMouseOverParam;element.onmouseout=intMouseOutParam;}
else
{element.onclick=intClickNoParam;element.onmousedown=intMouseDownNoParam;element.onmouseup=intMouseUpNoParam;element.onmousemove=intMouseMoveNoParam;element.onmouseover=intMouseOverNoParam;element.onmouseout=intMouseOutNoParam;}}
function delGTHandlers(element)
{element.onclick=null;element.onmousedown=null;element.onmouseup=null;element.onmousemove=null;element.onmouseover=null;element.onmouseout=null;element.gtClick=undefined;element.gtMouseDown=undefined;element.gtMouseUp=undefined;element.gtMouseMove=undefined;element.gtMouseOver=undefined;element.gtMouseOut=undefined;}
function intGetElementAll(name,owner_doc)
{if(!owner_doc)
owner_doc=document;return owner_doc.all(name);}
function intGetElementById(name,owner_doc)
{if(!owner_doc)
owner_doc=document;return owner_doc.getElementById(name);}
function intGetElementDirect(name,owner_doc)
{if(!owner_doc)
return eval("document."+name);else
return eval(owner_doc.id+"."+name);}
function intCancelBubbleOther(evt)
{evt.stopPropagation();}
function intCancelBubbleIE(evt)
{evt.cancelBubble=true;}
function intPreventDefaultOther(evt)
{evt.preventDefault();return false;}
function intPreventDefaultIE(evt)
{evt.returnValue=false;return false;}
function gtSetMouseCapture(element,turn_it_on)
{if(g_supports_event_2_0)
{if(turn_it_on)
{element.addEventListener("mousedown",element.onmousedown,true);element.addEventListener("mouseup",element.onmouseup,true);element.addEventListener("mousemove",element.onmousemove,true);element.addEventListener("mouseover",element.onmouseover,true);element.addEventListener("mouseout",element.onmouseout,true);}
else
{element.removeEventListener("mousedown",element.onmousedown,true);element.removeEventListener("mouseup",element.onmouseup,true);element.removeEventListener("mousemove",element.onmousemove,true);element.removeEventListener("mouseover",element.onmouseover,true);element.removeEventListener("mouseout",element.onmouseout,true);}}
else
{if(turn_it_on)
element.setCapture();else
top.document.releaseCapture();}}
function gtGetFrameDocument(frame)
{if(frame.contentDocument)
return frame.contentDocument;else if(frame.contentWindow)
return frame.contentWindow.document;else
return frame.document;}
function gtGetFrameWindow(frame)
{if(frame.contentDocument)
return frame.contentDocument.parentWindow;else
return frame.contentWindow;}
function gtGetFrameWindowByName(name)
{return gtGetFrameWindow(gtGetElementByName(name));}
function gtGetWindowHeight()
{if(self.innerHeight)
return self.innerHeight;else if(document.documentElement&&document.documentElement.clientHeight)
return document.documentElement.clientHeight;else if(document.body)
return document.body.clientHeight;}
function gtGetWindowWidth()
{if(self.innerWidth)
return self.innerWidth;else if(document.documentElement&&document.documentElement.clientWidth)
return document.documentElement.clientWidth;else if(document.body)
return document.body.clientWidth;}
function gtGetComputedStyle(e)
{if(e.currentStyle)
return e.currentStyle;else if(document.defaultView.getComputedStyle)
return document.defaultView.getComputedStyle(e,null);else
return null;}
function gtGetLeft(e)
{var offset=0;while(e)
{if(e.offsetLeft)
offset+=e.offsetLeft;e=e.offsetParent;}
return offset;}
function gtGetTop(e)
{var offset=0;while(e)
{if(e.offsetTop)
offset+=e.offsetTop;e=e.offsetParent;}
return offset;}
function gtGetWidth(e){return e.offsetWidth;}
function gtGetHeight(e){return e.offsetHeight;}
function gtGetVisibility(e){return e.style.visibility.toLowerCase();}
function gtSetLeft(e,x){e.style.left=x+"px";}
function gtSetTop(e,y){e.style.top=y+"px";}
function gtSetWidth(e,w){e.style.width=w+"px";}
function gtSetHeight(e,h){e.style.height=h+"px";}
function gtSetVisibility(e,v){e.style.visibility=v;}
function findFilter(e,name)
{for(var f in e.filters)
{if(f==name)
return e.filters[f];}
return null;}
function gtSetTransparent(e,t)
{var style=e.style;if(e.filters)
{var val=100.0-t*100.0;var a=findFilter(e,"DXImageTransform.Microsoft.Alpha");if(t==0)
{style.filter="";}
else
{if(!a)
style.filter+="progid:DXImageTransform.Microsoft.Alpha(opacity="+val+")";else
a.Opacity=val;}}
else if(style.MozOpacity)
style.MozOpacity=1.0-t;else
style.opacity=1.0-t;}
function findIndex(array,text)
{for(var i=0;i<array.length;i++)
{if(array[i]==text)
return i;}
return-1;}
function gtAddClassName(e,class_name)
{var class_names=e.className.split(" ");var pos=findIndex(class_names,class_name);if(pos<0)
e.className=class_names.join(" ")+" "+class_name;}
function gtDelClassName(e,class_name)
{var class_names=e.className.split(" ");var pos=findIndex(class_names,class_name);if(pos>=0)
{class_names.splice(pos,1);e.className=class_names.join(" ");return true;}
return false;}
addGTGlobalHandler();