// Dynamic Layer Object// sophisticated layer/element targeting and animation object which provides the core functionality needed in most DHTML applications// 19990604// BECAREFUL : Modification by Vinternet 26/04/2001// Copyright (C) 1999 Dan Steinman// Distributed under the terms of the GNU Library General Public License// Available at http://www.dansteinman.com/dynapi/function DynLayer(id,nestref,frame) {if (!is.ns5 && !DynLayer.set && !frame) DynLayerInit()this.frame = frame || selfif (is.ns) {if (is.ns4) {var nestref = DynLayer.nestRefArray[id]if (!DynLayerTest(id,nestref)) returnthis.css = (nestref)? eval("document."+nestref+".document."+id) : document.layers[id]this.elm = this.event = this.cssthis.doc = this.css.document}else if (is.ns5) {this.elm = document.getElementById(id)this.css = this.elm.stylethis.doc = document}this.x = this.css.leftthis.y = this.css.topthis.w = this.css.clip.widththis.h = this.css.clip.height}else if (is.ie) {this.elm = this.event = this.frame.document.all[id]this.css = this.frame.document.all[id].stylethis.doc = documentthis.x = this.elm.offsetLeftthis.y = this.elm.offsetTopthis.w = (is.ie4)? this.css.pixelWidth : this.elm.offsetWidththis.h = (is.ie4)? this.css.pixelHeight : this.elm.offsetHeight}this.id = idthis.nestref = nestrefthis.obj = id + "DynLayer"eval(this.obj + "=this")}function DynLayerMoveTo(x,y) {if (x!=null) {this.x = xif (is.ns) this.css.left = this.xelse this.css.pixelLeft = this.x}if (y!=null) {this.y = yif (is.ns) this.css.top = this.yelse this.css.pixelTop = this.y}}function DynLayerMoveBy(x,y) {this.moveTo(this.x+x,this.y+y)}function DynLayerShow() {this.css.visibility = (is.ns4)? "show" : "visible"}function DynLayerHide() {this.css.visibility = (is.ns4)? "hide" : "hidden"}DynLayer.prototype.moveTo = DynLayerMoveToDynLayer.prototype.moveBy = DynLayerMoveByDynLayer.prototype.show = DynLayerShowDynLayer.prototype.hide = DynLayerHideDynLayerTest = new Function('return true')// DynLayerInit Functionfunction DynLayerInit(nestref) {if (!DynLayer.set) DynLayer.set = trueif (is.ns) {if (nestref) ref = eval('document.'+nestref+'.document')else {nestref = ''; ref = document;}for (var i=0; i<ref.layers.length; i++) {var divname = ref.layers[i].nameDynLayer.nestRefArray[divname] = nestrefvar index = divname.indexOf("Div")if (index > 0) {eval(divname.substr(0,index)+' = new DynLayer("'+divname+'","'+nestref+'")')}if (ref.layers[i].document.layers.length > 0) {DynLayer.refArray[DynLayer.refArray.length] = (nestref=='')? ref.layers[i].name : nestref+'.document.'+ref.layers[i].name}}if (DynLayer.refArray.i < DynLayer.refArray.length) {DynLayerInit(DynLayer.refArray[DynLayer.refArray.i++])}}else if (is.ie) {for (var i=0; i<document.all.tags("DIV").length; i++) {var divname = document.all.tags("DIV")[i].idvar index = divname.indexOf("Div")if (index > 0) {eval(divname.substr(0,index)+' = new DynLayer("'+divname+'")')}}}return true}DynLayer.nestRefArray = new Array()DynLayer.refArray = new Array()DynLayer.refArray.i = 0DynLayer.set = false// BrowserCheck Objectfunction BrowserCheck() {var b = navigator.appNameif (b=="Netscape") this.b = "ns"else if (b=="Microsoft Internet Explorer") this.b = "ie"else this.b = bthis.version = navigator.appVersionthis.v = parseInt(this.version)this.ns = (this.b=="ns" && this.v>=4)this.ns4 = (this.b=="ns" && this.v==4)this.ns5 = (this.b=="ns" && this.v==5)this.ie = (this.b=="ie" && this.v>=4)this.ie4 = (this.version.indexOf('MSIE 4')>0)this.ie5 = (this.version.indexOf('MSIE 5')>0)this.min = (this.ns||this.ie)}is = new BrowserCheck()// CSS Functionfunction css(id,left,top,width,height,color,vis,z,other) {if (id=="START") return '<STYLE TYPE="text/css">\n'else if (id=="END") return '</STYLE>'var str = (left!=null && top!=null)? '#'+id+' {position:absolute; left:'+left+'px; top:'+top+'px;' : '#'+id+' {position:relative;'if (arguments.length>=4 && width!=null) str += ' width:'+width+'px;'if (arguments.length>=5 && height!=null) {str += ' height:'+height+'px;'if (arguments.length<9 || other.indexOf('clip')==-1) str += ' clip:rect(0px '+width+'px '+height+'px 0px);'}if (arguments.length>=6 && color!=null) str += (is.ns)? ' layer-background-color:'+color+';' : ' background-color:'+color+';'if (arguments.length>=7 && vis!=null) str += ' visibility:'+vis+';'// modification le 29/10/2003//if (arguments.length>=8 && z!=null) str += ' z-index:'+z+';'str += ' z-index:1;'if (arguments.length==9 && other!=null) str += ' '+otherstr += '}\n'return str}function writeCSS(str,showAlert) {str = css('START')+str+css('END')document.write(str)if (showAlert) alert(str)}function NewsTicker(x,y,width,height) {   //x,y,this.name = 'NewsTicker'+(NewsTicker.count++)this.x = xthis.y = ythis.w = widththis.h = heightthis.obj = this.name + "Object"eval(this.obj + "=this")this.items = new Array()this.scrollCount = 0this.pauseLength = 5000this.inc = 2this.speed = 60this.fromX = 0this.fromY = this.hthis.bgColor = nullthis.addItem = NewsTickerAddItemthis.activate = NewsTickerActivatethis.build = NewsTickerBuildthis.start = NewsTickerStartthis.slide = NewsTickerSlide}function NewsTickerAddItem(text) {var i = this.items.lengththis.items[i] = new Object()this.items[i].text = text}function NewsTickerBuild() {this.css = css(this.name,this.x,this.y,this.w,this.h) // this.x,this.y,this.div = '<div id="'+this.name+'">'for (var i=0;i<this.items.length;i++) {this.css += css(this.name+'Item'+i,0,0,this.w,this.h,this.bgColor,'hidden')this.div += '<div id="'+this.name+'Item'+i+'">'+this.items[i].text+'</div>'}this.div += '</div>'}function NewsTickerActivate(autostart) {for (var i=0;i<this.items.length;i++) {this.items[i].lyr = new DynLayer(this.name+'Item'+i)this.items[i].lyr.moveTo(this.fromX,this.fromY)this.items[i].lyr.show()}this.items[0].lyr.moveTo(0,0)this.lyr = new DynLayer(this.name)var num = Math.sqrt(Math.pow(this.fromX,2) + Math.pow(this.fromY,2))/this.incthis.dx = this.fromX/num || 0this.dy = this.fromY/num || 0if (autostart!=false) setTimeout(this.obj+'.start()',this.pauseLength)}function NewsTickerStart() {if (!this.started) {this.started = truevar t = this.scrollCountvar b = (this.scrollCount==this.items.length-1)? 0 : this.scrollCount+1var obj1 = this.items[t].lyr.objvar obj2 = this.items[b].lyr.objthis.timer = setInterval(this.obj+'.slide('+obj1+','+obj2+')',this.speed)}}function NewsTickerSlide(obj1,obj2) {obj1.moveBy(-this.dx,-this.dy)obj2.moveBy(-this.dx,-this.dy)if ((this.dx!=0 && Math.floor(obj2.x)==0) || (this.dy!=0 && Math.floor(obj2.y)==0)) {clearInterval(this.timer)obj1.moveTo(this.fromX,this.fromY)obj2.moveTo(0,0)this.scrollCount = (this.scrollCount==this.items.length-1)? 0 : this.scrollCount+1this.timer = setTimeout(this.obj+'.started=false;'+this.obj+'.start()',this.pauseLength)}}NewsTicker.count = 0