History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: LPP-3974
Type: Sub-task Sub-task
Status: Resolved Resolved
Resolution: Fixed
Priority: P0 P0
Assignee: Max Carlson
Reporter: Geert Bevin
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OpenLaszlo
LPP-3964

Canvas never redimensions to a smaller size on IE7

Created: 12/May/07 05:36 PM   Updated: 13/Nov/07 05:28 PM
Component/s: Compiler - JavaScript
Affects Version/s: 4.0.2
Fix Version/s: RingDing (4.1)

Time Tracking:
Not Specified

File Attachments: 1. File resize-lpp-3974.lzx (0.2 kb)

Environment: IE7 on WindowsXP

Severity: Minor
Fixed in Change#: 7,242
Runtime: N/A
Fix in hand: False


 Description  « Hide
This might be related to LPP-3973.

When you resize browser window to make it bigger, the canvas grows bigger too. However, when you reduce it the canvas retains its previous size.

 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Amy Muntz - 16/Oct/07 12:18 PM
Max - I'm sure this is a dup, but I can't find the other bug number right now.

Max Carlson - 12/Nov/07 04:55 PM
Testcase

Philip Romanik - 13/Nov/07 05:11 PM
During testing of the fix I found that IE7 has a minimum width for the canvas. It's 230 pixels (run the file attached to this report). I used lzt=html to remove the dev console.

http://localhost:8080/trunk/resize-lpp-3974.lzx?lzt=html&lzr=dhtml

The funny thing is I see this limit in dhtml and swf. I don't see it in IE6 or FF.

Max Carlson - 13/Nov/07 05:28 PM
Author: max
Date: 2007-11-13 17:07:43 -0800 (Tue, 13 Nov 2007)
New Revision: 7242

Modified:
   openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzScreenKernel.js
   openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
   openlaszlo/trunk/lps/admin/dev-console.lzx.js
Log:
Change 20071112-maxcarlson-D by maxcarlson@Roboto on 2007-11-12 16:51:03 PST
    in /Users/maxcarlson/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Fix canvas resizing in IE

New Features:

Bugs Fixed: LPP-3914 - Canvas never redimensions to a smaller size on IE7

Technical Reviewer: promanik
QA Reviewer: jcrowley
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details: LzSprite.js - Use Lz.attachEventHandler() and Lz.removeEventHandler() to listen for and clean up events. Remove unused window.onunload = null;

LzScreenKernel.js - Use clientWidth instead of scrollWidth. Use Lz.attachEventHandler() to listen for resize events.

dev-console.lzx.js - Recompile with latest LFC.
    

Tests: See LPP-3974.



Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzScreenKernel.js
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzScreenKernel.js 2007-11-14 00:02:26 UTC (rev 7241)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzScreenKernel.js 2007-11-14 01:07:43 UTC (rev 7242)
@@ -24,12 +24,12 @@
         } else if (window.top.document.documentElement && window.top.document.documentElement.clientHeight) {
             // Explorer 6 Strict Mode
             var sc = window.top.document.documentElement;
- LzScreenKernel.width = sc.scrollWidth;
- LzScreenKernel.height = sc.scrollHeight;
+ LzScreenKernel.width = sc.clientWidth;
+ LzScreenKernel.height = sc.clientHeight;
         } else if (window.top.document.body) {
             // other Explorers
             var sc = window.top.document.body;
- LzScreenKernel.width = window.top.document.body.scrollWidth;
+ LzScreenKernel.width = window.top.document.body.clientWidth;
             LzScreenKernel.height = window.top.document.body.clientHeight;
         }
 
@@ -51,7 +51,7 @@
         //Debug.write('LzScreenKernel event', {width: LzScreenKernel.width, height: LzScreenKernel.height});
     }
     ,__init: function() {
- window.onresize = LzScreenKernel.__resizeEvent;
+ Lz.attachEventHandler(window, 'resize', LzScreenKernel, '__resizeEvent');
     }
     ,__callback: null
     ,__scope: null

Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js 2007-11-14 00:02:26 UTC (rev 7241)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js 2007-11-14 01:07:43 UTC (rev 7242)
@@ -1592,8 +1592,7 @@
         document.onkeyup = null;
         document.onkeypress = null;
         document.onmousewheel = null;
- window.onresize = null;
- window.onunload = null;
+ Lz.removeEventHandler(window, 'resize', LzScreenKernel, '__resizeEvent');
     }
- window.onbeforeunload = __cleanUpForIE;
+ Lz.attachEventHandler(window, 'beforeunload', window, '__cleanUpForIE');
 }

Modified: openlaszlo/trunk/lps/admin/dev-console.lzx.js
===================================================================
--- openlaszlo/trunk/lps/admin/dev-console.lzx.js 2007-11-14 00:02:26 UTC (rev 7241)
+++ openlaszlo/trunk/lps/admin/dev-console.lzx.js 2007-11-14 01:07:43 UTC (rev 7242)
@@ -11,58 +11,6 @@
 var $debug=false
 var $j2me=false
 var _Copyright="Portions of this file are copyright (c) 2001-2007 by Laszlo Systems, Inc. All rights reserved."
-Function.prototype.make=function(){
-var $1
-$1=function(){
-
-}
-if(arguments.length>0){
-$1.prototype=this.prototype
-var $2=new $1()
-this.apply($2,arguments)
-return $2
-}else{
-return new this()
-}
-}
-Object.make=Object
-Array.make=Array
-Function.make=Function
-String.make=function($1){
-switch(arguments.length){
-case 0:
-$1=""
-
-}
-return new String($1)
-}
-Boolean.make=function($1){
-return new Boolean($1)
-}
-Number.make=function($1){
-switch(arguments.length){
-case 0:
-$1=+0
-
-}
-return new Number($1)
-}
-Date.make=function($1,$2,$3,$4,$5,$6,$7){
-switch(arguments.length){
-case 2:
-$3=1
-case 3:
-$4=0
-case 4:
-$5=0
-case 5:
-$6=0
-case 6:
-$7=0
-
-}
-return new Date($1,$2,$3,$4,$5,$6,$7)
-}
 window._root=window
 var $modules={}
 $modules.runtime=this
@@ -127,20 +75,6 @@
 Instance.initialize=function($1){
 $1.__initialized=false
 }
-Instance.make=function(){
-var $1
-$1=function(){
-this.constructor=constructor
-}
-if(arguments.length>0){
-var constructor=this
-$1.prototype=constructor.prototype
-var $2=new $1()
-constructor.apply($2,arguments)
-return $2
-}
-return new this()
-}
 var Class={prototype:new Instance(),addProperty:function($1,$2){
 var $3=this.prototype
 $3.addProperty.apply($3,arguments)
@@ -177,24 +111,31 @@
 if(!superclass){
 superclass=Instance
 }
-nc.addStaticProperty("make",superclass.make)
 var $7=function(){
 this.constructor=superclass
 }
 $7.prototype=superclass.prototype
 var $8=new $7()
 if($2 instanceof Array){
-while($2.length){
-var $9=$2.pop()
-$8=$9.makeInterstitial($8,$2.length>0)
+for(var $9=$2.length-1;$9>=0;$9--){
+var $10=$2[$9]
+$8=$10.makeInterstitial($8,$9>0)
 }
 }
-for(var $10 in $4){
-nc.addStaticProperty($10,$4[$10])
+if($4){
+for(var $9=$4.length-1;$9>=1;$9-=2){
+var $11=$4[$9]
+var $12=$4[$9-1]
+nc.addStaticProperty($12,$11)
 }
+}
 nc.prototype=$8
-for(var $11 in $3){
-nc.addProperty($11,$3[$11])
+if($3){
+for(var $9=$3.length-1;$9>=1;$9-=2){
+var $11=$3[$9]
+var $12=$3[$9-1]
+nc.addProperty($12,$11)
+}
 };(function($1,$2){
 if($2!==Instance){
 arguments.callee($1,$2.prototype.constructor)
@@ -208,6 +149,7 @@
 }}
 var Trait={prototype:new Instance(),allTraits:{},_dbg_typename:Class._dbg_name,_dbg_name:"Trait",addProperty:function($1,$2){
 this.prototype[$1]=$2
+this.instanceProperties.push($1,$2)
 var $3=this.implementations
 for(var $4 in $3){
 var $5=$3[$4]
@@ -223,53 +165,66 @@
 return $3[$4]
 }
 }
-var $5=this.prototype
-for(var $6 in $5){
-$1.addProperty.call($1,$6,$5[$6])
+var $5=this.instanceProperties
+for(var $6=$5.length-1;$6>=1;$6-=2){
+var $7=$5[$6]
+var $8=$5[$6-1]
+$1.addProperty.call($1,$8,$7)
 }
-var $7=function(){
+var $9=function(){
 this.constructor=arguments.callee
 }
-$7.prototype=$1
+$9.prototype=$1
 if(this.hasOwnProperty("initialize")){
-$7.initialize=this.initialize
+$9.initialize=this.initialize
 }
-$7.classname=$4
-var $8=new $7()
-$3[$4]=$8
-return $8
+$9.classname=$4
+var $10=new $9()
+$3[$4]=$10
+return $10
 },make:function($1,$2,$3,$4){
-var $5={constructor:this,classname:$1,_dbg_typename:this._dbg_name,_dbg_name:$1,prototype:$2?$2.make():new Object(),implementations:{}}
+var $5={constructor:this,classname:$1,_dbg_typename:this._dbg_name,_dbg_name:$1,prototype:$2?$2.make():new Object(),instanceProperties:$2?$2.instanceProperties.slice(0):new Array(),implementations:{}}
 this.addStaticProperty.call($5,"addStaticProperty",this.addStaticProperty)
 $5.addStaticProperty("addProperty",this.addProperty)
 $5.addStaticProperty("makeInterstitial",this.makeInterstitial)
-for(var $6 in $4){
-$5.addStaticProperty($6,$4[$6])
+if($4){
+for(var $6=$4.length-1;$6>=1;$6-=2){
+var $7=$4[$6]
+var $8=$4[$6-1]
+$5.addStaticProperty($8,$7)
 }
-for(var $6 in $3){
-$5.addProperty($6,$3[$6])
 }
+if($3){
+for(var $6=$3.length-1;$6>=1;$6-=2){
+var $7=$3[$6]
+var $8=$3[$6-1]
+$5.addProperty($8,$7)
+}
+}
 if($5.hasOwnProperty("initialize")){
 $5.initialize($5.prototype)
 }
 this.allTraits[$1]=$5
 return $5
 }}
-var LzMessage=Class.make("LzMessage",null,{message:"",appendInternal:function($1,$2){
+var LzMessage=Class.make("LzMessage",null,["message","","length",0,"initialize",function($1){
+if(arguments.length>0){
+this.appendInternal(""+$1,$1)
+}
+},"appendInternal",function($1,$2){
 this.message+=$1
-},append:function($1){
+this.length=this.message.length
+},"append",function($1){
 var $2=arguments.length
 for(var $3=0;$3<$2;$3++){
 this.appendInternal(String(arguments[$3]))
 }
-},toString:function(){
+},"toString",function(){
 return this.message
-},toHTML:function(){
+},"toHTML",function(){
 return this.toString()
-}},{initialize:function($1){
-this.message=$1
-}})
-var LzFormatter=Trait.make("LzFormatter",null,{pad:function($1,$2,$3,$4,$5,$6,$7){
+}],null)
+var LzFormatter=Trait.make("LzFormatter",null,["pad",function($1,$2,$3,$4,$5,$6,$7){
 switch(arguments.length){
 case 0:
 $1=""
@@ -357,7 +312,7 @@
 }
 }
 return $1
-},formatToString:function(control,$1){
+},"formatToString",function(control,$1){
 var $8
 $8=function($1){
 if($1>=al){
@@ -590,7 +545,7 @@
 }
 }
 return $2
-}},null)
+}],null)
 Debug={}
 Debug.write=function($1){
 
@@ -646,14 +601,6 @@
 return "LzDeclaredEvent"
 }
 LzDeclaredEvent.ready=false
-function DeclareEvent($1,$2){
-$1[$2]=LzDeclaredEvent
-}
-function DeclareEvents($1,$2){
-for(var $3 in $2){
-$1[$2[$3]]=LzDeclaredEvent
-}
-}
 function LzInheritedHash($1){
 var $2
 $2=function(){
@@ -666,7 +613,7 @@
 }
 var ConstructorMap={}
 var lz=ConstructorMap
-var LzNode=Class.make("LzNode",null,{initialize:function($1,$2,$3,$4){
+var LzNode=Class.make("LzNode",null,["initialize",function($1,$2,$3,$4){
 this.__LZUID="__U"+ ++LzNode.__UIDs
 this.__LZdeferDelegates=true
 var $5=LzDelegate.__LZdelegatesQueue.length;(arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
@@ -762,9 +709,9 @@
 }else{
 this.__LZinstantiationDone()
 }
-},__LZlateinit:null,__LZpreventSubInit:null,__LZresolveDict:null,__LZsourceLocation:null,__LZUID:null,__LZdelegates:null,defaultattrs:{$hasdefaultattrs:true},isinited:false,subnodes:null,datapath:null,initstage:null,$isstate:false,doneClassRoot:false,parent:null,children:null,cloneManager:null,name:null,id:null,defaultplacement:null,placement:null,$cfn:0,__LZdeleted:false,immediateparent:null,dependencies:null,classroot:null,nodeLevel:null,$styles:function(){
+},"oninit",LzDeclaredEvent,"onconstruct",LzDeclaredEvent,"ondata",LzDeclaredEvent,"clonenumber",null,"onclonenumber",LzDeclaredEvent,"ondestroy",LzDeclaredEvent,"__LZlateinit",null,"__LZpreventSubInit",null,"__LZresolveDict",null,"__LZsourceLocation",null,"__LZUID",null,"__LZdelegates",null,"defaultattrs",{$hasdefaultattrs:true},"isinited",false,"subnodes",null,"datapath",null,"initstage",null,"$isstate",false,"doneClassRoot",false,"parent",null,"children",null,"cloneManager",null,"name",null,"id",null,"defaultplacement",null,"placement",null,"$cfn",0,"__LZdeleted",false,"immediateparent",null,"dependencies",null,"classroot",null,"nodeLevel",null,"$styles",function(){
 return null
-},__LZapplyStyleMap:function($1,$2){
+},"__LZapplyStyleMap",function($1,$2){
 var $3={}
 for(var $4 in $1){
 if($2[$4]!=null){
@@ -782,15 +729,15 @@
 }else{
 if($5!=null){
 if(!this.__LZdeleted){
-var $lzsc$1190165364=this.setters
-if($lzsc$1190165364&&$4 in $lzsc$1190165364){
-this[$lzsc$1190165364[$4]]($5)
+var $lzsc$719503618=this.setters
+if($lzsc$719503618&&$4 in $lzsc$719503618){
+this[$lzsc$719503618[$4]]($5)
 }else{
 this[$4]=$5
-var $lzsc$263972551="on"+$4
-if($lzsc$263972551 in this){
-if(this[$lzsc$263972551].ready){
-this[$lzsc$263972551].sendEvent($5)
+var $lzsc$62495987="on"+$4
+if($lzsc$62495987 in this){
+if(this[$lzsc$62495987].ready){
+this[$lzsc$62495987].sendEvent($5)
 }
 }
 }
@@ -800,27 +747,27 @@
 }
 }
 return $3
-},__LZapplyStyleConstraints:function(){
+},"__LZapplyStyleConstraints",function(){
 var $1=this.__LZstyleConstraints
 for(var $2 in $1){
 var $3=$1[$2]
 var $4=$3.call(this)
 if(!this.__LZdeleted){
-var $lzsc$469215421=this.setters
-if($lzsc$469215421&&$2 in $lzsc$469215421){
-this[$lzsc$469215421[$2]]($4)
+var $lzsc$1193580595=this.setters
+if($lzsc$1193580595&&$2 in $lzsc$1193580595){
+this[$lzsc$1193580595[$2]]($4)
 }else{
 this[$2]=$4
-var $lzsc$1902115310="on"+$2
-if($lzsc$1902115310 in this){
-if(this[$lzsc$1902115310].ready){
-this[$lzsc$1902115310].sendEvent($4)
+var $lzsc$1181828485="on"+$2
+if($lzsc$1181828485 in this){
+if(this[$lzsc$1181828485].ready){
+this[$lzsc$1181828485].sendEvent($4)
 }
 }
 }
 }
 }
-},construct:function($1,$2){
+},"construct",function($1,$2){
 var $3=$1
 this.parent=$3
 if($3){
@@ -858,22 +805,22 @@
 }else{
 this.nodeLevel=1
 }
-},init:function(){
+},"init",function(){
 return
-},__LZinstantiationDone:function(){
+},"__LZinstantiationDone",function(){
 if(!this.immediateparent||this.immediateparent.isinited||this.initstage=="early"||this.__LZisnew&&LzInstantiator.syncNew){
 this.__LZcallInit()
 }
-},__LZsetPreventInit:function(){
+},"__LZsetPreventInit",function(){
 this.__LZpreventSubInit=[]
-},__LZclearPreventInit:function(){
+},"__LZclearPreventInit",function(){
 var $1=this.__LZpreventSubInit
 delete this.__LZpreventSubInit
 var $2=$1.length
 for(var $3=0;$3<$2;$3++){
 $1[$3].__LZcallInit()
 }
-},__LZcallInit:function(){
+},"__LZcallInit",function(){
 if(this.parent&&this.parent.__LZpreventSubInit){
 this.parent.__LZpreventSubInit.push(this)
 return
@@ -910,7 +857,7 @@
 if(this.datapath&&this.datapath.__LZApplyDataOnInit){
 this.datapath.__LZApplyDataOnInit()
 }
-},completeInstantiation:function(){
+},"completeInstantiation",function(){
 if(!this.isinited){
 var $1=this.initstage
 this.initstage="early"
@@ -920,7 +867,7 @@
 LzInstantiator.completeTrickle(this)
 }
 }
-},__LZapplyArgs:function($1,$2){
+},"__LZapplyArgs",function($1,$2){
 var $3={}
 var $4=[]
 var $5=null
@@ -968,7 +915,7 @@
 var $7=$4.pop()
 this[$6[$7]]($1[$7],$7)
 }
-},createChildren:function($1){
+},"createChildren",function($1){
 if(this.__LZdeleted){
 return
 }
@@ -987,13 +934,13 @@
 }
 }
 }
-},getAttribute:function($1){
+},"getAttribute",function($1){
 if(null==this.getters[$1]){
 return this[$1]
 }else{
 return this[this.getters[$1]]()
 }
-},setAttribute:function($1,$2,$3){
+},"setAttribute",function($1,$2,$3){
 if(this.__LZdeleted||$3&&this[$1]==$2){
 return
 }
@@ -1012,22 +959,22 @@
 }
 }
 }
-},setProp:function($1,$2){
+},"setProp",function($1,$2){
 if(!this.__LZdeleted){
-var $lzsc$1572297463=this.setters
-if($lzsc$1572297463&&$1 in $lzsc$1572297463){
-this[$lzsc$1572297463[$1]]($2)
+var $lzsc$62508589=this.setters
+if($lzsc$62508589&&$1 in $lzsc$62508589){
+this[$lzsc$62508589[$1]]($2)
 }else{
 this[$1]=$2
-var $lzsc$289782460="on"+$1
-if($lzsc$289782460 in this){
-if(this[$lzsc$289782460].ready){
-this[$lzsc$289782460].sendEvent($2)
+var $lzsc$1390896622="on"+$1
+if($lzsc$1390896622 in this){
+if(this[$lzsc$1390896622].ready){
+this[$lzsc$1390896622].sendEvent($2)
 }
 }
 }
 }
-},getExpectedAttribute:function($1){
+},"getExpectedAttribute",function($1){
 var $2="e_"+$1
 if(!this[$2]){
 this[$2]={}
@@ -1036,13 +983,13 @@
 return this[$1]
 }
 return this[$2].v
-},setExpectedAttribute:function($1,$2){
+},"setExpectedAttribute",function($1,$2){
 var $3="e_"+$1
 if(!this[$3]){
 this[$3]={}
 }
 this[$3].v=$2
-},addToExpectedAttribute:function($1,$2){
+},"addToExpectedAttribute",function($1,$2){
 var $3="e_"+$1
 if(!this[$3]){
 this[$3]={}
@@ -1051,7 +998,7 @@
 this[$3].v=this[$1]
 }
 this[$3].v+=$2
-},__LZincrementCounter:function($1){
+},"__LZincrementCounter",function($1){
 var $2="e_"+$1
 var $3=this[$2]
 if(!$3){
@@ -1061,7 +1008,7 @@
 $3.c=0
 }
 $3.c+=1
-},makeChild:function($1,$2){
+},"makeChild",function($1,$2){
 if(this.__LZdeleted){
 return
 }
@@ -1071,7 +1018,7 @@
 $5=new $4(this,$1.attrs,"children" in $1?$1.children:null,$2)
 }
 return $5
-},setters:{name:"setName",id:"setID",$events:"__LZsetEvents",$refs:"__LZstoreRefs",$delegates:"__LZstoreDelegates",options:"__LZsetOptions",placement:-1,datapath:"setDatapath",$setters:-1,$classrootdepth:"__LZsetClassRoot",$datapath:"__LZmakeDatapath"},__LZsetClassRoot:function($1){
+},"setters",{name:"setName",id:"setID",$events:"__LZsetEvents",$refs:"__LZstoreRefs",$delegates:"__LZstoreDelegates",options:"__LZsetOptions",placement:-1,datapath:"setDatapath",$setters:-1,$classrootdepth:"__LZsetClassRoot",$datapath:"__LZmakeDatapath"},"__LZsetClassRoot",function($1){
 if(!$1){
 return
 }
@@ -1080,13 +1027,13 @@
 $2=$2.parent
 }
 this.classroot=$2
-},__LZsetSetters:function($1){
+},"__LZsetSetters",function($1){
 for(var $2 in $1){
 var $3="_anonSet"+$2
 this.__LZaddSetter($2,$3)
 this[$3]=$1[$2]
 }
-},__LZaddSetter:function($1,$2){
+},"__LZaddSetter",function($1,$2){
 if(!this.hasOwnProperty("setters")){
 this.setters=new LzInheritedHash(this.setters)
 }
@@ -1095,7 +1042,7 @@
 }else{
 this.setters[$1]=$2
 }
-},dataBindAttribute:function($1,$2){
+},"dataBindAttribute",function($1,$2){
 if(!this.datapath){
 this.setDatapath(".")
 }
@@ -1103,7 +1050,7 @@
 this.__LZdelegates=[]
 }
 this.__LZdelegates.push(new LzDataAttrBind(this.datapath,$1,$2))
-},__LZdelayedSetters:{$refs:"__LZresolveRefs"},earlySetters:{name:1,id:2,$events:3,$delegates:4,$classrootdepth:5,$datapath:6},getters:{},__LZstoreDelegates:function($1){
+},"__LZdelayedSetters",{$refs:"__LZresolveRefs"},"earlySetters",{name:1,id:2,$events:3,$delegates:4,$classrootdepth:5,$datapath:6},"getters",{},"__LZstoreDelegates",function($1){
 var $2=[]
 var $3=$1.length
 for(var $4=0;$4<$3;$4+=3){
@@ -1120,19 +1067,19 @@
 if($2.length){
 this.__LZstoreAttr($2,"$delegates")
 }
-},__LZstoreRefs:function($1,$2){
+},"__LZstoreRefs",function($1,$2){
 for(var $3 in $1){
 if(!($3 in this)){
 this[$3]=null
 }
 }
 this.__LZstoreAttr($1,$2)
-},__LZstoreAttr:function($1,$2){
+},"__LZstoreAttr",function($1,$2){
 if(this.__LZresolveDict==null){
 this.__LZresolveDict={}
 }
 this.__LZresolveDict[$2]=$1
-},__LZresolveReferences:function(){
+},"__LZresolveReferences",function(){
 var $1=this.__LZresolveDict
 this.__LZresolveDict=null
 for(var $2 in $1){
@@ -1144,13 +1091,13 @@
 if($1&&$1.$delegates){
 this.__LZsetDelegates($1.$delegates)
 }
-},__LZevalPathExpr:function($1){
+},"__LZevalPathExpr",function($1){
 with(global){
 with(this){
 return eval($1)
 }
 }
-},__LZresolveRefs:function($1){
+},"__LZresolveRefs",function($1){
 for(var $2 in $1){
 var $3=$1[$2]
 var $4
@@ -1177,7 +1124,7 @@
 this.applyConstraint($2,$3,$3.dependencies.call(this))
 }
 }
-},__LZsetDelegates:function($1){
+},"__LZsetDelegates",function($1){
 if($1.length&&!this.__LZdelegates){
 this.__LZdelegates=[]
 }
@@ -1191,7 +1138,7 @@
 var $6=$1[$3+1]
 this.__LZdelegates.push(new LzDelegate(this,$6,$5,$1[$3]))
 }
-},applyConstraint:function($1,$2,$3){
+},"applyConstraint",function($1,$2,$3){
 var $4=$3.length
 if($4){
 if(!this.__LZdelegates){
@@ -1210,12 +1157,12 @@
 }
 }
 $2.call(this)
-},releaseConstraint:function($1){
+},"releaseConstraint",function($1){
 var $2="_SetCons"+$1
 if($2 in this){
 this[$2].delegate.unregisterAll()
 }
-},setName:function($1){
+},"setName",function($1){
 if(typeof $1=="string"&&$1.length){
 if(this.parent){
 this.parent[$1]=this
@@ -1233,37 +1180,37 @@
 }else{
 
 }
-},defaultSet:function($1,$2){
+},"defaultSet",function($1,$2){
 if($1!=null){
 this[$2]=$1
 }
-},setID:function($1){
+},"setID",function($1){
 if(typeof $1=="string"&&$1.length){
 this.id=$1
 global[$1]=this
 }else{
 
 }
-},setDatapath:function($1){
+},"setDatapath",function($1){
 if(null!=this.datapath&&$1!=LzNode._ignoreAttribute){
 this.datapath.setXPath($1)
 }else{
 new LzDatapath(this,{xpath:$1})
 }
-},setData:function($1){
+},"setData",function($1){
 this.data=$1
 var $2=this.datapath!=null?this.datapath:new LzDatapath(this)
 $2.setPointer($1)
 if(this.ondata.ready){
 this.ondata.sendEvent($1)
 }
-},__LZsetEvents:function($1){
+},"__LZsetEvents",function($1){
 var $2=$1.length
 for(var $3=0;$3<$2;$3++){
 var $4=$1[$3]
 this[$4]=LzDeclaredEvent
 }
-},__LZsetDefaultHandler:function($1,$2){
+},"__LZsetDefaultHandler",function($1,$2){
 var $3="_handle"+$1
 this[$3]=$2
 var $4=new LzDelegate(this,$3,this,$1)
@@ -1272,28 +1219,28 @@
 }else{
 this.__LZhandlers.push($4)
 }
-},options:{},__LZsetOptions:function($1){
+},"options",{},"__LZsetOptions",function($1){
 if(!this.hasOwnProperty("options")){
 this.options=new LzInheritedHash(this.options)
 }
 for(var $2 in $1){
 this.options[$2]=$1[$2]
 }
-},getOption:function($1){
+},"getOption",function($1){
 return this.options[$1]
-},setOption:function($1,$2){
+},"setOption",function($1,$2){
 if(!this.hasOwnProperty("options")){
 this.options=new LzInheritedHash(this.options)
 }
 this.options[$1]=$2
-},determinePlacement:function($1,$2,$3){
+},"determinePlacement",function($1,$2,$3){
 if($2==null){
 var $4=null
 }else{
 var $4=this.searchSubnodes("name",$2)
 }
 return $4==null?this:$4
-},searchImmediateSubnodes:function($1,$2){
+},"searchImmediateSubnodes",function($1,$2){
 var $3=this.subnodes
 if($3==null){
 return null
@@ -1305,7 +1252,7 @@
 }
 }
 return null
-},searchSubnodes:function($1,$2){
+},"searchSubnodes",function($1,$2){
 var $3=this.subnodes?this.subnodes.concat():[]
 while($3.length>0){
 var $4=$3
@@ -1324,7 +1271,7 @@
 }
 }
 return null
-},searchParents:function($1){
+},"searchParents",function($1){
 var $2=this
 do{
 $2=$2.immediateparent
@@ -1332,9 +1279,9 @@
 return $2
 }
 }while($2!=canvas)
-},getUID:function(){
+},"getUID",function(){
 return this.__LZUID
-},childOf:function($1){
+},"childOf",function($1){
 if($1==null){
 return false
 }
@@ -1346,7 +1293,7 @@
 $2=$2.immediateparent
 }
 return false
-},destroy:function($1){
+},"destroy",function($1){
 if(this.__LZdeleted==true){
 return
 }
@@ -1408,21 +1355,21 @@
 }
 }
 delete this.data
-},deleteNode:function($1){
+},"deleteNode",function($1){
 this.destroy($1)
-},animate:function($1,$2,$3,$4,$5){
+},"animate",function($1,$2,$3,$4,$5){
 if($3==0){
 var $6=$4?this[$1]+$2:$2
 if(!this.__LZdeleted){
-var $lzsc$1732853902=this.setters
-if($lzsc$1732853902&&$1 in $lzsc$1732853902){
-this[$lzsc$1732853902[$1]]($6)
+var $lzsc$1359813111=this.setters
+if($lzsc$1359813111&&$1 in $lzsc$1359813111){
+this[$lzsc$1359813111[$1]]($6)
 }else{
 this[$1]=$6
-var $lzsc$1400830395="on"+$1
-if($lzsc$1400830395 in this){
-if(this[$lzsc$1400830395].ready){
-this[$lzsc$1400830395].sendEvent($6)
+var $lzsc$608071959="on"+$1
+if($lzsc$608071959 in this){
+if(this[$lzsc$608071959].ready){
+this[$lzsc$608071959].sendEvent($6)
 }
 }
 }
@@ -1435,9 +1382,9 @@
 }
 var $9=new LzAnimator(null,$7)
 return $9
-},toString:function(){
+},"toString",function(){
 return this.constructor.classname+" "+this.getDebugIdentification()
-},_dbg_name:function(){
+},"_dbg_name",function(){
 if(typeof this.id=="string"&&global[this.id]===this){
 return "#"+this.id
 }else{
@@ -1451,7 +1398,7 @@
 }
 }
 }
-},getDebugIdentification:function(){
+},"getDebugIdentification",function(){
 var $1=""
 if(this.name!=null){
 $1+=" name: "+this.name+" "
@@ -1460,7 +1407,7 @@
 $1+=" id: "+this.id+" "
 }
 return $1
-},__LZassignClassRoot:function($1,$2){
+},"__LZassignClassRoot",function($1,$2){
 if($1!=null){
 var $3=$1.length
 for(var $4=0;$4<$3;$4++){
@@ -1472,12 +1419,12 @@
 }
 }
 }
-},__LZmakeDatapath:function($1){
+},"__LZmakeDatapath",function($1){
 if(!($1 instanceof Object)){
 
 }
 this.makeChild($1,true)
-}},{tagname:"node",initialize:function($1){
+}],["tagname","node","initialize",function($1){
 if(this.hasOwnProperty("tagname")){
 var $2=this.tagname
 if($2){
@@ -1491,22 +1438,17 @@
 $1[$3]=new LzInheritedHash($1[$3])
 }
 }
-},_ignoreAttribute:{toString:function(){
+},"_ignoreAttribute",{toString:function(){
 return "_ignoreAttribute"
-}},__UIDs:0});(function(){
+}},"__UIDs",0]);(function(){
 with(LzNode){
 with(LzNode.prototype){
-DeclareEvent(prototype,"oninit")
-DeclareEvent(prototype,"onconstruct")
-DeclareEvent(prototype,"ondata")
-DeclareEvent(prototype,"onclonenumber")
-DeclareEvent(prototype,"ondestroy")
 prototype.getProp=getAttribute
 prototype._setProp=setProp
 }
 }
 })()
-var LzUserClass=Class.make("LzUserClass",LzNode,{initialize:function($1,$2){
+var LzUserClass=Class.make("LzUserClass",LzNode,["initialize",function($1,$2){
 var $3=$2.initobj
 var $4=$3.name
 var $5=$3.attrs
@@ -1529,7 +1471,7 @@
 }
 $8.push($7)
 }
-var $11=this.userclass=Class.make($4,$8?$8:$7,null,{tagname:$4})
+var $11=this.userclass=Class.make($4,$8?$8:$7,null,["tagname",$4])
 if(!($4 in global)){
 global[$4]=$11
 }else{
@@ -1624,11 +1566,11 @@
 }
 }
 }
-}},{tagname:"class"})
+}],["tagname","class"])
 ConstructorMap.__LZUserClassPlacementObject=function($1,$2){
 $1.defaultplacement=$2
 }
-var LzDelegate=Class.make("LzDelegate",null,{initialize:function($1,$2,$3,$4){
+var LzDelegate=Class.make("LzDelegate",null,["initialize",function($1,$2,$3,$4){
 (arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
 this.c=$1
 this.f=$2
@@ -1636,7 +1578,7 @@
 this.register($3,$4)
 }
 this.__delegateID=LzDelegate.__nextID++
-},c:null,f:null,lastevent:0,enabled:true,event_called:false,execute:function($1){
+},"c",null,"f",null,"lastevent",0,"enabled",true,"event_called",false,"execute",function($1){
 var $2=this.c
 if($2){
 if($2["__LZdeleted"]){
@@ -1644,7 +1586,7 @@
 }
 return $2[this.f]($1)
 }
-},register:function($1,$2){
+},"register",function($1,$2){
 if(!$1){
 return
 }
@@ -1655,13 +1597,13 @@
 $3.addDelegate(this)
 }
 this[this.lastevent++]=$3
-},unregisterAll:function(){
+},"unregisterAll",function(){
 for(var $1=0;$1<this.lastevent;$1++){
 this[$1].removeDelegate(this)
 this[$1]=null
 }
 this.lastevent=0
-},unregisterFrom:function($1){
+},"unregisterFrom",function($1){
 var $2=[]
 for(var $3=0;$3<this.lastevent;$3++){
 var $4=this[$3]
@@ -1677,13 +1619,13 @@
 for(var $3=0;$3<$5;$3++){
 this[this.lastevent++]=$2[$3]
 }
-},disable:function(){
+},"disable",function(){
 this.enabled=false
-},enable:function(){
+},"enable",function(){
 this.enabled=true
-},toString:function(){
+},"toString",function(){
 return "Delegate for "+this.c+" calls "+this.f+" "+this.__delegateID
-}},{__nextID:1,__LZdelegatesQueue:[],__LZdrainDelegatesQueue:function($1){
+}],["__nextID",1,"__LZdelegatesQueue",[],"__LZdrainDelegatesQueue",function($1){
 var $2=this.__LZdelegatesQueue
 var $3=$2.length
 var $4=$1
@@ -1696,8 +1638,8 @@
 $4+=2
 }
 $2.length=$1
-}})
-var LzEvent=Class.make("LzEvent",null,{initialize:function($1,$2,$3){
+}])
+var LzEvent=Class.make("LzEvent",null,["initialize",function($1,$2,$3){
 (arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
 var $4=$1._events
 if($4==null){
@@ -1712,10 +1654,10 @@
 }else{
 this.delegateList=[]
 }
-},locked:false,ready:false,addDelegate:function($1){
+},"locked",false,"ready",false,"addDelegate",function($1){
 this.ready=true
 this.delegateList.push($1)
-},sendEvent:function($1){
+},"sendEvent",function($1){
 if(this.locked){
 return
 }
@@ -1747,7 +1689,7 @@
 $5.event_called=false
 }
 this.locked=false
-},removeDelegate:function($1){
+},"removeDelegate",function($1){
 var $2=this.delegateList.length
 for(var $3=0;$3<$2;$3++){
 if(this.delegateList[$3]==$1){
@@ -1758,16 +1700,16 @@
 if(this.delegateList.length==0){
 this.ready=false
 }
-},clearDelegates:function(){
+},"clearDelegates",function(){
 while(this.delegateList.length){
 this.delegateList[0].unregisterFrom(this)
 }
 this.ready=false
-},getDelegateCount:function(){
+},"getDelegateCount",function(){
 return this.delegateList.length
-},toString:function(){
+},"toString",function(){
 return "LzEvent"
-}},null)
+}],null)
 var LzIdleKernel={__callbacks:[],addCallback:function($1,$2){
 LzIdleKernel.__callbacks.push([$1,$2])
 },removeCallback:function($1,$2){
@@ -1851,7 +1793,7 @@
 $1=$1*1
 }
 if(typeof $1=="number"){
-var $2=LzUtils.dectohex($1,6)
+var $2=LzUtils.dectohex($1&16777215,6)
 $1="#"+$2
 }
 return $1
@@ -1867,14 +1809,14 @@
 }
 return "rgb("+parseInt($1.substring(1,3),16)+","+parseInt($1.substring(3,5),16)+","+parseInt($1.substring(5,7),16)+($1.length>7?","+parseInt($1.substring(7,9),16):"")+")"
 }}}
-var LzLibraryCleanup=Class.make("LzLibraryCleanup",LzNode,{initialize:function($1,$2){
+var LzLibraryCleanup=Class.make("LzLibraryCleanup",LzNode,["initialize",function($1,$2){
 (arguments.callee.superclass?arguments.callee.superclass.prototype["initialize"]:this.nextMethod(arguments.callee,"initialize")).apply(this,arguments)
 var $3=LzLibrary.findLibrary($2.libname)
 $3.loading=false
 if($3.onload.ready){
 $3.onload.sendEvent(true)
 }
-}},{tagname:"__libraryloadercomplete"})
+}],["tagname","__libraryloadercomplete"])
 var LzResourceLibrary={}
 var getTimer=function(){
 return new Date().valueOf()-getTimer.startTime
@@ -1987,53 +1929,33 @@
 }
 }
 }
-},__mousewheelEvent:function($1){
-if(!$1){
-$1=window.event
-}
-var $2=0
-if($1.wheelDelta){
-$2=$1.wheelDelta/120
-if(LzSprite.prototype.quirks["reverse_mouse_wheel"]){
-$2=-$2
-}
-}else{
-if($1.detail){
-$2=-$1.detail/3
-}
-}
-if($1.preventDefault){
-$1.preventDefault()
-}
-$1.returnValue=false
-if($2&&LzKeyboardKernel.__mousewheelcallback){
-LzKeyboardKernel.__scope[LzKeyboardKernel.__mousewheelcallback]($2)
-}
-},__callback:null,__mousewheelcallback:null,__scope:null,__cancelKeys:true,setCallback:function($1,$2,$3){
+},__callback:null,__scope:null,__cancelKeys:true,setCallback:function($1,$2){
 this.__scope=$1
 this.__callback=$2
-this.__mousewheelcallback=$3
 if(lzOptions.dhtmlKeyboardControl!=false){
 document.onkeydown=LzKeyboardKernel.__keyboardEvent
 document.onkeyup=LzKeyboardKernel.__keyboardEvent
 document.onkeypress=LzKeyboardKernel.__keyboardEvent
-if(window.addEventListener){
-window.addEventListener("DOMMouseScroll",LzKeyboardKernel.__mousewheelEvent,false)
 }
-document.onmousewheel=LzKeyboardKernel.__mousewheelEvent
-}
 }}
 var LzMouseKernel={__lastMouseDown:null,__x:0,__y:0,owner:null,__showncontextmenu:null,__defaultcontextmenu:null,__mouseEvent:function($1){
 if(!$1){
 $1=window.event
 }
 var $2="on"+$1.type
-if(window["LzKeyboardKernel"]){
+var $3=$1.srcElement?$1.srcElement:$1.target
+if(window["LzKeyboardKernel"]&&LzKeyboardKernel["__keyboardEvent"]){
 LzKeyboardKernel.__keyboardEvent($1)
 }
-if(window["LzInputTextSprite"]&&$2!="onmousemove"&&LzInputTextSprite.prototype.__lastshown!=null){
+if(window["LzInputTextSprite"]){
+if(LzSprite.prototype.quirks.fix_ie_clickable){
+LzInputTextSprite.prototype.__hideIfNotFocused($2,$3)
+}else{
+if($2!="onmousemove"&&LzInputTextSprite.prototype.__lastshown!=null){
 LzInputTextSprite.prototype.__hideIfNotFocused()
 }
+}
+}
 if($2=="onmouseup"&&LzMouseKernel.__lastMouseDown!=null){
 LzMouseKernel.__lastMouseDown.__globalmouseup($1)
 }else{
@@ -2054,7 +1976,6 @@
 return
 }
 if($2=="oncontextmenu"){
-var $3=$1.srcElement?$1.srcElement:$1.target
 if($3&&$3.owner&&$3.owner.__contextmenu){
 $3.owner.__contextmenu.__show()
 return $3.owner.__contextmenu.showbuiltins
@@ -2085,6 +2006,9 @@
 }
 var $1=LzSprite.prototype.__defaultStyles.hyphenate($1)
 LzSprite.prototype.__setCSSClassProperty(".lzclickdiv","cursor",$1)
+LzSprite.prototype.__setCSSClassProperty(".lzdiv","cursor",$1)
+LzSprite.prototype.__setCSSClassProperty(".lzcanvasdiv","cursor",$1)
+LzSprite.prototype.__setCSSClassProperty(".lzcanvasclickdiv","cursor",$1)
 },restoreCursor:function(){
 if(LzSprite.prototype.quirks.no_cursor_colresize){
 return
@@ -2093,6 +2017,9 @@
 return
 }
 LzSprite.prototype.__setCSSClassProperty(".lzclickdiv","cursor",LzMouseKernel.__showhand)
+LzSprite.prototype.__setCSSClassProperty(".lzdiv","cursor","default")
+LzSprite.prototype.__setCSSClassProperty(".lzcanvasdiv","cursor","default")
+LzSprite.prototype.__setCSSClassProperty(".lzcanvasclickdiv","cursor","default")
 },lock:function(){
 LzMouseKernel.__amLocked=true
 },unlock:function(){
@@ -2112,24 +2039,36 @@
 var $5=$4.appenddiv
 if($4.bgcolor){
 $3.style.backgroundColor=$4.bgcolor
+this.bgcolor=$4.bgcolor
 }
 if($4.width){
+$5.style.width=$4.width
 $3.style.width=$4.width
+var $6=$4.width.indexOf("%")!=-1?$4.width:parseInt($4.width)
+this._w=$6
+this.width=$6
 }
 if($4.height){
+$5.style.height=$4.height
 $3.style.height=$4.height
+var $7=$4.height.indexOf("%")!=-1?$4.height:parseInt($4.height)
+this._h=$7
+this.height=$7
 }
+if($4.id){
+this._id=$4.id
+}
 if(this.quirks.canvas_div_cannot_be_clipped==false&&$4.width&&$4.width.indexOf("%")==-1&&$4.height&&$4.height.indexOf("%")==-1){
-$3.style.clip="rect(0px "+$4.width+" "+$4.height+" 0px)"
+$3.style.clip="rect(0px "+this._w+" "+this._h+" 0px)"
 $3.style.overflow="hidden"
 }
 $5.appendChild($3)
 this.__LZdiv=$3
 if(this.quirks.fix_clickable){
-var $6=document.createElement("div")
-$6.className="lzcanvasclickdiv"
-$5.appendChild($6)
-this.__LZclickdiv=$6
+var $8=document.createElement("div")
+$8.className="lzcanvasclickdiv"
+$5.appendChild($8)
+this.__LZclickdiv=$8
 }
 }else{
 this.__LZdiv=document.createElement("div")
@@ -2176,8 +2115,8 @@
 LzSprite.prototype.__defaultStyles["#lzcontextmenu a:hover"]={color:"#FFF",backgroundColor:"#333"}
 LzSprite.prototype.__defaultStyles["#lzcontextmenu"]={position:"absolute",zIndex:10000000,backgroundColor:"#CCC",border:"1px outset #999",padding:"4px",fontFamily:"Verdana,Vera,sans-serif",fontSize:"13px",margin:"2px",color:"#999"}
 LzSprite.prototype.uid=0
-LzSprite.prototype.quirks={fix_clickable:true,fix_ie_background_height:false,fix_ie_clickable:false,ie_alpha_image_loader:false,ie_leak_prevention:false,invisible_parent_image_sizing_fix:false,emulate_flash_font_metrics:true,inner_html_strips_newlines:true,inner_html_no_entity_apos:false,css_hide_canvas_during_init:true,firefox_autocomplete_bug:false,hand_pointer_for_clickable:true,alt_key_sends_control:false,safari_textarea_subtract_scrollbar_height:false,safari_avoid_clip_position_input_text:false,reverse_mouse_wheel:false,no_cursor_colresize:false,safari_visibility_instead_of_display:false,preload_images_only_once:false,absolute_position_accounts_for_offset:false,canvas_div_cannot_be_clipped:false,inputtext_parents_cannot_contain_clip:false,minimize_opacity_changes:false,set_height_for_multiline_inputtext:false,ie_offset_position_by_2:false}
-LzSprite.prototype.capabilities={rotation:false,scalecanvastopercentage:true,opacity:true,colortransform:false,audio:false,accessibility:false,htmlinputtext:false,advancedfonts:false}
+LzSprite.prototype.quirks={fix_clickable:true,fix_ie_background_height:false,fix_ie_clickable:false,ie_alpha_image_loader:false,ie_leak_prevention:false,invisible_parent_image_sizing_fix:false,emulate_flash_font_metrics:true,inner_html_strips_newlines:true,inner_html_no_entity_apos:false,css_hide_canvas_during_init:true,firefox_autocomplete_bug:false,hand_pointer_for_clickable:true,alt_key_sends_control:false,safari_textarea_subtract_scrollbar_height:false,safari_avoid_clip_position_input_text:false,reverse_mouse_wheel:false,no_cursor_colresize:false,safari_visibility_instead_of_display:false,preload_images_only_once:false,absolute_position_accounts_for_offset:false,canvas_div_cannot_be_clipped:false,inputtext_parents_cannot_contain_clip:false,minimize_opacity_changes:false,set_height_for_multiline_inputtext:false,ie_opacity:false,text_measurement_use_insertadjacenthtml:false}
+LzSprite.prototype.capabilities={rotation:false,scalecanvastopercentage:true,readcanvassizefromsprite:true,opacity:true,colortransform:false,audio:false,accessibility:false,htmlinputtext:false,advancedfonts:false}
 LzSprite.prototype.__updateQuirks=function(){
 if(window["Lz"]&&Lz.__BrowserDetect){
 Lz.__BrowserDetect.init()
@@ -2185,7 +2124,12 @@
 LzSprite.prototype.inner_html_strips_newlines_re=RegExp("$","mg")
 }
 if(Lz.__BrowserDetect.isIE){
+if(Lz.__BrowserDetect.version<7){
 this.quirks["ie_alpha_image_loader"]=true
+}else{
+this.quirks["invisible_parent_image_sizing_fix"]=true
+}
+this.quirks["ie_opacity"]=true
 this.quirks["ie_leak_prevention"]=true
 this.quirks["fix_ie_clickable"]=true
 this.quirks["fix_ie_background_height"]=true
@@ -2193,9 +2137,7 @@
 this.quirks["inputtext_parents_cannot_contain_clip"]=true
 this.quirks["minimize_opacity_changes"]=true
 this.quirks["set_height_for_multiline_inputtext"]=true
-if(Lz.__BrowserDetect.version>6){
-this.quirks["ie_offset_position_by_2"]=true
-}
+this.quirks["text_measurement_use_insertadjacenthtml"]=true
 }else{
 if(Lz.__BrowserDetect.isSafari){
 this.quirks["invisible_parent_image_sizing_fix"]=true
@@ -2205,6 +2147,9 @@
 this.quirks["safari_visibility_instead_of_display"]=true
 this.quirks["absolute_position_accounts_for_offset"]=true
 this.quirks["canvas_div_cannot_be_clipped"]=true
+if(Lz.__BrowserDetect.version>523.1){
+this.capabilities["rotation"]=true
+}
 }else{
 if(Lz.__BrowserDetect.isOpera){
 this.quirks["invisible_parent_image_sizing_fix"]=true
@@ -2268,9 +2213,8 @@
 if(this.quirks["safari_visibility_instead_of_display"]){
 this.__LZdiv.style.visibility="visible"
 }
-var $2=document.getElementById("lzsplash")
-if($2){
-LzSprite.prototype.__discardElement($2)
+if(this._id){
+Lz[this._id]._ready(this.owner)
 }
 }
 }
@@ -2499,7 +2443,7 @@
 if(!$1){
 $1=window.event
 }
-if(window["LzKeyboardKernel"]&&window["LzKeyboardKernel"].__keyboardEvent){
+if(LzKeyboardKernel&&LzKeyboardKernel["__keyboardEvent"]){
 LzKeyboardKernel.__keyboardEvent($1)
 }
 var $2=false
@@ -2524,13 +2468,23 @@
 }
 }
 }
-if($2==false&&this.owner.mouseevent){
+if($2==false&&this.owner.mouseevent&&LzModeManager&&LzModeManager["handleMouseButton"]){
 LzModeManager.handleMouseButton(this.owner,$3)
+if(this.__mousedown){
+if($3=="onmouseover"){
+LzModeManager.handleMouseButton(this.owner,"onmousedragin")
+}else{
+if($3=="onmouseout"){
+LzModeManager.handleMouseButton(this.owner,"onmousedragout")
 }
 }
+}
+}
+}
 LzSprite.prototype.__globalmouseup=function($1){
 if(this.__mousedown){
 this.__mouseEvent($1)
+this.__mouseEvent({type:"mouseupoutside"})
 }
 }
 LzSprite.prototype.setX=function($1){
@@ -2566,6 +2520,7 @@
 if(this.__LZclick){
 this.__LZclick.style.width=$1
 }
+return $1
 }
 }
 LzSprite.prototype.setY=function($1){
@@ -2601,6 +2556,7 @@
 if(this.__LZclick){
 this.__LZclick.style.height=$1
 }
+return $1
 }
 }
 LzSprite.prototype.setMaxLength=function($1){
@@ -2654,15 +2610,33 @@
 return
 }
 this.opacity=$1
-if($1<0.0010){
-$1=0
+$1=parseInt($1*100)/100
+if($1!=this._opacity){
+this._opacity=$1
+if($1==0){
+this.__LZdiv.style.display="none"
+this._opacitywas0=true
+}else{
+if(this._opacitywas0){
+this._opacitywas0=false
+this.__LZdiv.style.display="block"
 }
-if(this.quirks.ie_alpha_image_loader){
-this.__LZdiv.style.filter="alpha(opacity="+$1*100+")"
+}
+if(this.quirks.ie_opacity){
+if($1==1){
+this.__LZdiv.style.filter=""
 }else{
+this.__LZdiv.style.filter="alpha(opacity="+parseInt($1*100)+")"
+}
+}else{
+if($1==1){
+this.__LZdiv.style.opacity=""
+}else{
 this.__LZdiv.style.opacity=$1
 }
 }
+}
+}
 LzSprite.prototype.play=function($1){
 if(isNaN($1*1)==false){
 this.__setFrame($1)
@@ -2672,12 +2646,14 @@
 }
 if(this.frames&&this.frames.length>1){
 this.playing=true
+this.owner.resourceevent("play",null,true)
 LzIdleKernel.addCallback(this,"__incrementFrame")
 }
 }
 LzSprite.prototype.stop=function($1){
 if(this.playing==true){
 this.playing=false
+this.owner.resourceevent("stop",null,true)
 LzIdleKernel.removeCallback(this,"__incrementFrame")
 }
 if(isNaN($1*1)==false){
@@ -2696,8 +2672,9 @@
 var $2=this.frames[this.frame-1]
 this.setSource($2,true)
 }
-if(this.owner.frame!=this.frame-1){
-this.owner.spriteAttribute("frame",this.frame)
+this.owner.resourceevent("frame",this.frame)
+if(this.frames.length==this.frame){
+this.owner.resourceevent("lastframe",null,true)
 }
 }
 if(LzSprite.prototype.quirks.preload_images_only_once){
@@ -2730,6 +2707,9 @@
 }
 do{
 $3=$3.__parent
+if(!$3){
+return $2
+}
 if($3[$1]!=null){
 $2.push($3)
 }
@@ -2808,6 +2788,10 @@
 }
 LzSprite.prototype.__destroyImage=function($1,$2){
 if($2&&$2.owner){
+if($2.owner.__imgtimoutid!=null){
+clearTimeout($2.owner.__imgtimoutid)
+$2.owner.__imgtimoutid=null
+}
 LzUtils.callback.remove($2.owner)
 }
 if(LzSprite.prototype.quirks.ie_alpha_image_loader&&$2.sizer){
@@ -2815,13 +2799,17 @@
 clearTimeout($2.sizer.tId)
 }
 LzSprite.prototype.__discardElement($2.sizer)
+$2.sizer.onerror=null
 $2.sizer.onload=null
 $2.sizer.onloadforeal=null
 $2.sizer=null
-}
+}else{
 if($2){
+$2.onerror=null
+$2.onload=null
 LzSprite.prototype.__discardElement($2)
 }
+}
 $2=null
 if(LzSprite.prototype.quirks.preload_images_only_once){
 LzSprite.prototype.__preloadurls[$1]=null
@@ -2885,6 +2873,9 @@
 this.__updateClip()
 }
 LzSprite.prototype.__updateClip=function(){
+if(this.isroot&&this.capabilities.canvas_div_cannot_be_clipped==true){
+return
+}
 if(this.clip&&this.width!=null&&this.width>=0&&this.height!=null&&this.height>=0){
 var $1="rect(0px "+this._w+" "+this._h+" 0px)"
 this.__LZdiv.style.clip=$1
@@ -3012,10 +3003,6 @@
 $6=$3.getBoundingClientRect()
 var $7=document.documentElement.scrollTop||document.body.scrollTop
 var $8=document.documentElement.scrollLeft||document.body.scrollLeft
-if(this.quirks["ie_offset_position_by_2"]){
-$8-=2
-$7-=2
-}
 return {x:$6.left+$8,y:$6.top+$7}
 }else{
 if(document.getBoxObjectFor){
@@ -3249,6 +3236,9 @@
 LzSprite.prototype.getContextMenu=function(){
 return this.__contextmenu
 }
+LzSprite.prototype.setRotation=function($1){
+this.__LZdiv.style["-webkit-transform"]="rotate("+$1+"deg)"
+}
 if(LzSprite.prototype.quirks.ie_leak_prevention){
 LzSprite.prototype.__sprites={}
 function __cleanUpForIE(){
@@ -3257,13 +3247,13 @@
 for(var $3 in $1){
 $2($1[$3])
 }
-LzTextSprite.prototype._sizedomcache=null
+LzTextSprite.prototype._sizedomcache={}
 var $1=LzSprite.prototype.__sprites
 for(var $3 in $1){
 $1[$3].destroy()
 $1[$3]=null
 }
-LzSprite.prototype.__sprites=null
+LzSprite.prototype.__sprites={}
 document.onmousemove=null
 document.onmousedown=null
 document.onmouseup=null
@@ -3272,27 +3262,26 @@
 document.onkeyup=null
 document.onkeypress=null
 document.onmousewheel=null
-window.onresize=null
-window.onunload=null
+Lz.removeEventHandler(window,"resize",LzScreenKernel,"__resizeEvent")
 }
-window.onbeforeunload=__cleanUpForIE
+Lz.attachEventHandler(window,"beforeunload",window,"__cleanUpForIE")
 }
-var LzLibrary=Class.make("LzLibrary",LzNode,{construct:function($1,$2){
+var LzLibrary=Class.make("LzLibrary",LzNode,["construct",function($1,$2){
 this.stage=$2.stage;(arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).apply(this,arguments)
 this.sprite=new LzSprite(this,false,$2)
 LzLibrary.libraries[$2.name]=this
-},init:function(){
+},"init",function(){
 (arguments.callee.superclass?arguments.callee.superclass.prototype["init"]:this.nextMethod(arguments.callee,"init")).apply(this,arguments)
 if(this.stage=="late"){
 this.load()
 }
-},loaded:false,loading:false,toString:function(){
+},"loaded",false,"loading",false,"onload",LzDeclaredEvent,"toString",function(){
 return "Library "+this.href+" named "+this.name
-},load:function(){
+},"load",function(){
 Lz.__dhtmlLoadLibrary(this.href)
-}},{tagname:"import",libraries:[],findLibrary:function($1){
+}],["tagname","import","libraries",[],"findLibrary",function($1){
 return LzLibrary.libraries[$1]
-},__LZsnippetLoaded:function($1){
+},"__LZsnippetLoaded",function($1){
 var $2=null
 var $3=LzLibrary.libraries
 for(var $4 in $3){
@@ -3306,13 +3295,7 @@
 }
 LzInstantiateView({attrs:{libname:$2},name:"__libraryloadercomplete"},1)
 canvas.initDone()
-}});(function(){
-with(LzLibrary){
-with(LzLibrary.prototype){
-DeclareEvent(prototype,"onload")
-}
-}
-})()
+}])
 var LzTextSprite=function($1){
 if($1==null){
 return
@@ -3354,6 +3337,7 @@
 LzTextSprite.prototype.__wpadding=4
 LzTextSprite.prototype.__hpadding=4
 LzTextSprite.prototype.__sizecacheupperbound=1000
+LzTextSprite.prototype.selectable=true
 LzTextSprite.prototype.setFontSize=function($1){
 if($1==null||$1<0){
 return
@@ -3520,7 +3504,6 @@
 }else{
 var $3="position: absolute"
 $3+=";visibility: hidden"
-$3+=";top: 4000px"
 $3+=";font-size: "+this._fontSize
 $3+=";font-style: "+this._fontStyle
 $3+=";font-weight: "+this._fontWeight
@@ -3530,21 +3513,19 @@
 $3+=";width: "+this.width+"px"
 }
 }
-if(document.all&&document.body.insertAdjacentHTML){
+if(this.quirks["text_measurement_use_insertadjacenthtml"]){
 if(this.__LzInputDiv!=null){
 $3+=";white-space: pre"
 }else{
 $3+=";white-space: "+this._whiteSpace
 }
 }else{
-if(document.getElementById&&document.createElement){
 if(this.__LzInputDiv!=null){
 $3+=";white-space: pre"
 }else{
 $3+=";white-space: "+this._whiteSpace
 }
 }
-}
 this._stylecache=$3
 this._styledirty=false
 }
@@ -3554,64 +3535,70 @@
 if(this._sizecache[$3]==null){
 this._sizecache[$3]={}
 }
-var $4=this._sizecache[$3]
-if(!$4[$1]){
-var $5={}
-if(document.all&&document.body.insertAdjacentHTML){
+var $4=document.getElementById("lzTextSizeCache")
+if(!$4){
+$4=document.createElement("div")
+Lz.__setAttr($4,"id","lzTextSizeCache")
+Lz.__setAttr($4,"style","top: 4000px;")
+document.body.appendChild($4)
+}
+var $5=this._sizecache[$3]
+if(!$5[$1]){
+var $6={}
+if(this.quirks["text_measurement_use_insertadjacenthtml"]){
 if(this.multiline&&$1&&this.quirks["inner_html_strips_newlines"]){
 $1=$1.replace(this.inner_html_strips_newlines_re,"<br />")
 }
-var $6="span"
-var $7=$4[$6]
-if($7==null){
-var $8="<"+$6+' id="testSpan'+this._sizecache.counter+'"'
-$8+=' style="'+$3+'">'
-$8+=$1
-$8+="</"+$6+">"
-document.body.insertAdjacentHTML("beforeEnd",$8)
-$7=document.all["testSpan"+this._sizecache.counter]
-$4[$6]=$7
+var $7="span"
+var $8=$5[$7]
+if($8==null){
+var $9="<"+$7+' id="testSpan'+this._sizecache.counter+'"'
+$9+=' style="'+$3+'">'
+$9+=$1
+$9+="</"+$7+">"
+$4.insertAdjacentHTML("beforeEnd",$9)
+$8=document.all["testSpan"+this._sizecache.counter]
+$5[$7]=$8
 }
 }else{
-if(document.getElementById&&document.createElement){
 if(this.__LzInputDiv==null){
 if(this.multiline&&$1&&this.quirks["inner_html_strips_newlines"]){
 $1=$1.replace(this.inner_html_strips_newlines_re,"<br />")
 }
 }
-var $6=this.multiline?"div":"span"
-var $7=$4[$6]
-if($7==null){
-$7=document.createElement($6)
-Lz.__setAttr($7,"style",$3)
-document.body.appendChild($7)
-$4[$6]=$7
+var $7=this.multiline?"div":"span"
+var $8=$5[$7]
+if($8==null){
+$8=document.createElement($7)
+Lz.__setAttr($8,"style",$3)
+$4.appendChild($8)
+$5[$7]=$8
 }
 }
-}
 if(this.quirks.ie_leak_prevention){
-LzTextSprite.prototype._sizedomcache[$6+$3]=$7
+LzTextSprite.prototype._sizedomcache[$7+$3]=$8
 }
-$7.innerHTML=$1
-$7.style.display="block"
-$5.width=$7.offsetWidth
-$5.height=$7.offsetHeight
-$7.style.display="none"
+$8.innerHTML=$1
+$8.style.display="block"
+$6.width=$8.offsetWidth
+$6.height=$8.offsetHeight
+$8.style.display="none"
 if(this.quirks.emulate_flash_font_metrics){
-$5.height=Math.floor($5.height*1.0000002)+(this.multiline?0:this.__hpadding)
-$5.width=$5.width+(this.multiline?0:this.__wpadding)
+$6.height=Math.floor($6.height*1.0000002)+(this.multiline?0:this.__hpadding)
+$6.width=$6.width+(this.multiline?0:this.__wpadding)
 if(this._whiteSpace=="normal"){
 if(this.multiline){
-$5.width+=this.__wpadding
+$6.width+=this.__wpadding
 }
 }
 }
-$4[$1]=$5
+$5[$1]=$6
 this._sizecache.counter++
 }
-return $4[$1]
+return $5[$1]
 }
 LzTextSprite.prototype.setSelectable=function($1){
+this.selectable=$1
 if($1){
 this.__LZdiv.onselectstart=null
 this.__LZdiv.style["MozUserSelect"]="normal"
@@ -3746,6 +3733,10 @@
 this.__LZinputclickdiv.className="lzclickdiv"
 this.__LZinputclickdiv.owner=this
 this.__LZinputclickdiv.onmouseover=function(){
+if(this.owner.selectable!=true){
+return
+}
+LzInputTextSprite.prototype.__setglobalclickable(false)
 this.owner.__show()
 }
 this.__LZclickdiv.appendChild(this.__LZinputclickdiv)
@@ -3778,19 +3769,42 @@
 }
 if(this.quirks.fix_ie_clickable){
 this.__LZclickdiv.appendChild(this.__LzInputDiv)
-this.__setCSSClassProperty(".lzclickdiv","display","none")
+this.__setglobalclickable(false)
 }else{
 this.__LZinputclickdiv.appendChild(this.__LzInputDiv)
 }
+document.onselectstart=null
 }
-LzInputTextSprite.prototype.__hideIfNotFocused=function(){
+LzInputTextSprite.prototype.__hideIfNotFocused=function($1,$2){
 if(LzInputTextSprite.prototype.__lastshown==null){
 return
 }
+if(LzSprite.prototype.quirks.fix_ie_clickable&&$1=="onmousemove"){
+if(LzInputTextSprite.prototype.__globalclickable==false&&LzInputTextSprite.prototype.__focusedSprite&&$2){
+if($2.owner!=LzInputTextSprite.prototype.__focusedSprite){
+LzInputTextSprite.prototype.__setglobalclickable(true)
+}else{
+LzInputTextSprite.prototype.__setglobalclickable(false)
+}
+}
+}else{
+if($1!=null&&LzInputTextSprite.prototype.__globalclickable==true){
+LzInputTextSprite.prototype.__setglobalclickable(false)
+}
 if(LzInputTextSprite.prototype.__focusedSprite!=LzInputTextSprite.prototype.__lastshown){
 LzInputTextSprite.prototype.__lastshown.__hide()
 }
 }
+}
+LzInputTextSprite.prototype.__setglobalclickable=function($1){
+if(!LzSprite.prototype.quirks.fix_ie_clickable){
+return
+}
+if($1!=LzInputTextSprite.prototype.__globalclickable){
+LzInputTextSprite.prototype.__globalclickable=$1
+LzInputTextSprite.prototype.__setCSSClassProperty(".lzclickdiv","display",$1?"":"none")
+}
+}
 LzInputTextSprite.prototype.__hide=function(){
 if(this.__shown!=true||this.disabled==true){
 return
@@ -3808,12 +3822,13 @@
 }
 }
 if(this.quirks.fix_ie_clickable){
-this.__setCSSClassProperty(".lzclickdiv","display","")
+this.__setglobalclickable(true)
 this.__LzInputDiv=this.__LZclickdiv.removeChild(this.__LzInputDiv)
 }else{
 this.__LzInputDiv=this.__LZinputclickdiv.removeChild(this.__LzInputDiv)
 }
 this.__LZdiv.appendChild(this.__LzInputDiv)
+document.onselectstart=LzTextSprite.prototype.__cancelhandler
 }
 LzInputTextSprite.prototype.gotBlur=function(){
 if(LzInputTextSprite.prototype.__focusedSprite!=this){
@@ -3843,6 +3858,9 @@
 this.__LzInputDiv.onmousedown=function($1){
 this.owner.__textEvent($1,"onmousedown")
 }
+this.__LzInputDiv.onmouseout=function($1){
+this.owner.__textEvent($1,"onmouseout")
+}
 this.__LzInputDiv.onfocus=function($1){
 this.owner.__textEvent($1,"onfocus")
 }
@@ -3878,6 +3896,9 @@
 }
 var $3=$1?$1.keyCode:event.keyCode
 if($2=="onfocus"||$2=="onmousedown"){
+if($2=="onfocus"){
+LzInputTextSprite.prototype.__setglobalclickable(false)
+}
 LzInputTextSprite.prototype.__focusedSprite=this
 this.__show()
 if($2=="onfocus"&&this._cancelfocus){
@@ -3900,16 +3921,21 @@
 this._cancelblur=false
 return
 }
+}else{
+if($2=="onmouseout"){
+this.__setglobalclickable(true)
 }
 }
+}
 if(this.owner){
-this.owner.inputtextevent($2,$3)
 if($2=="onkeydown"||$2=="onkeyup"){
 var $4=this.__LzInputDiv.value
 if($4!=this.text){
 this.text=$4
 this.owner.inputtextevent("onchange",$4)
 }
+}else{
+this.owner.inputtextevent($2,$3)
 }
 }
 }
@@ -3980,27 +4006,29 @@
 if($1==null||$1<0||isNaN($1)||this.width==$1){
 return
 }
-this.__setWidth($1-this.____wpadding)
-if(this.quirks.fix_clickable){
-var $1=this.CSSDimension(this.width)
-this.__LZclickdiv.style.width=$1
-this.__LZinputclickdiv.style.width=$1
+var $2=this.__setWidth($1-this.____wpadding)
+if(this.quirks.fix_clickable&&$2!=null){
+this.__LZclickdiv.style.width=$2
+this.__LZinputclickdiv.style.width=$2
 }
 }
 LzInputTextSprite.prototype.setHeight=function($1){
 if($1==null||$1<0||isNaN($1)||this.height==$1){
 return
 }
-this.__setHeight($1)
-if(this.quirks.fix_clickable){
-var $1=this.CSSDimension(this.height)
-this.__LZclickdiv.style.height=$1
-this.__LZinputclickdiv.style.height=$1
+var $2=this.__setHeight($1)
+if(this.quirks.fix_clickable&&$2!=null){
+this.__LZclickdiv.style.height=$2
+this.__LZinputclickdiv.style.height=$2
 if(this.multiline&&this.quirks.set_height_for_multiline_inputtext){
-this.__LzInputDiv.style.height=this.CSSDimension(this.height-this.____hpadding*2)
+$1=this.CSSDimension($1-this.____hpadding*2)
+if($1!=this._multilineheight){
+this._multilineheight=$1
+this.__LzInputDiv.style.height=$1
 }
 }
 }
+}
 LzInputTextSprite.prototype.setColor=function($1){
 if(this.color==$1){
 return
@@ -4051,6 +4079,13 @@
 }
 return $3
 }
+LzInputTextSprite.prototype.getTextHeight=function(){
+var $1=this.getTextfieldHeight()
+if(this.quirks.emulate_flash_font_metrics){
+$1-=4
+}
+return $1
+}
 var LzXMLParser=new Object()
 LzXMLParser.parseXML=function($1,$2,$3){
 var $4=new DOMParser()
@@ -4153,6 +4188,7 @@
 this.options={parsexml:true}
 this.requestheaders={}
 this.requestmethod=LzHTTPLoader.GET_METHOD
+this.__loaderid=LzHTTPLoader.loaderIDCounter++
 }
 LzHTTPLoader.prototype.loadSuccess=function($1,$2){
 
@@ -4180,7 +4216,10 @@
 }
 LzHTTPLoader.prototype.abort=function(){
 if(this.req){
-this.req.cancel()
+this.__abort=true
+this.req.abort()
+this.req=null
+this.removeTimeout(this)
 }
 }
 LzHTTPLoader.prototype.setOption=function($1,$2){
@@ -4206,7 +4245,12 @@
 LzHTTPLoader.PUT_METHOD="PUT"
 LzHTTPLoader.DELETE_METHOD="DELETE"
 LzHTTPLoader.prototype.open=function($1,$2,$3,$4){
+if(this.req){
+Debug.warn("pending request for id=%s",this.__loaderid)
+}
 this.req=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
+this.__abort=false
+this.__timeout=false
 this.requesturl=$2
 this.requestmethod=$1
 }
@@ -4242,42 +4286,46 @@
 LzHTTPLoader.prototype.send=function($1){
 this.loadXMLDoc(this.requestmethod,this.requesturl,this.requestheaders,$1,true,true)
 }
-LzHTTPLoader.activeRequests=[]
+LzHTTPLoader.activeRequests={}
+LzHTTPLoader.loaderIDCounter=0
 LzHTTPLoader.prototype.timeout=Infinity
 LzHTTPLoader.prototype.setTimeout=function($1){
 this.timeout=$1
 }
 LzHTTPLoader.prototype.setupTimeout=function($1,$2){
 var $3=new Date().getTime()+$2
-LzHTTPLoader.activeRequests.push($1,$3)
-setTimeout("LzHTTPLoader.__LZcheckXMLHTTPTimeouts()",$2)
+var $4=$1.__loaderid
+LzHTTPLoader.activeRequests[$4]=[$1,$3]
+var $5=setTimeout("LzHTTPLoader.__LZcheckXMLHTTPTimeouts("+$4+")",$2)
+LzHTTPLoader.activeRequests[$4][2]=$5
 }
 LzHTTPLoader.prototype.removeTimeout=function($1){
-var $2=LzHTTPLoader.activeRequests
-LzHTTPLoader.activeRequests=[]
-for(var $3=0;$3<$2.length;$3+=2){
-var $4=$2[$3]
-var $5=$2[$3+1]
-if($4!=$1){
-LzHTTPLoader.activeRequests.push($4,$5)
+var $2=$1.__loaderid
+if($2!=null){
+var $3=LzHTTPLoader.activeRequests[$2]
+if($3&&$3[0]===$1){
+clearTimeout($3[2])
+delete LzHTTPLoader.activeRequests[$2]
 }
 }
 }
-LzHTTPLoader.__LZcheckXMLHTTPTimeouts=function(){
-var $1=LzHTTPLoader.activeRequests
-LzHTTPLoader.activeRequests=[]
-for(var $2=0;$2<$1.length;$2+=2){
-var $3=$1[$2]
-var $4=$1[$2+1]
-var $5=new Date().getTime()
-if($5>$4){
-if($3.req){
-$3.req.abort()
+LzHTTPLoader.__LZcheckXMLHTTPTimeouts=function($1){
+var $2=LzHTTPLoader.activeRequests[$1]
+if($2){
+var $3=new Date().getTime()
+var $4=$2[0]
+var $5=$2[1]
+if($3>=$5){
+delete LzHTTPLoader.activeRequests[$1]
+$4.__timeout=true
+if($4.req){
+$4.req.abort()
 }
-this.req=null
-$3.loadTimeout($3,null)
+$4.req=null
+$4.loadTimeout($4,null)
 }else{
-LzHTTPLoader.activeRequests.push($3,$4)
+var $6=setTimeout("LzHTTPLoader.__LZcheckXMLHTTPTimeouts("+$1+")",$3-$5)
+$2[2]=$6
 }
 }
 }
@@ -4300,32 +4348,48 @@
 return
 }
 if(__pthis__.req.readyState==4){
-if(__pthis__.req.status==200||__pthis__.req.status==304){
-var $1=null
-var $2=__pthis__.req.responseXML
-__pthis__.responseXML=$2
-var $3=null
-if($2!=null&&parsexml){
-var $4=__pthis__.req.responseXML.childNodes
-for(var $5=0;$5<$4.length;$5++){
-var $6=$4.item($5)
-if($6.nodeType==1){
-$1=$6
+if(__pthis__.__timeout){
+
+}else{
+if(__pthis__.__abort){
+
+}else{
+var $1=-1
+try{
+$1=__pthis__.req.status
+}
+catch(e){
+
+}
+if($1==200||$1==304){
+var $2=null
+var $3=__pthis__.req.responseXML
+__pthis__.responseXML=$3
+var $4=null
+if($3!=null&&parsexml){
+var $5=__pthis__.req.responseXML.childNodes
+for(var $6=0;$6<$5.length;$6++){
+var $7=$5.item($6)
+if($7.nodeType==1){
+$2=$7
 break
 }
 }
-$3=LzXMLTranslator.copyXML($1,__pthis__.options.trimwhitespace,__pthis__.options.nsprefix)
+$4=LzXMLTranslator.copyXML($2,__pthis__.options.trimwhitespace,__pthis__.options.nsprefix)
 }
 __pthis__.responseText=__pthis__.req.responseText
 __pthis__.removeTimeout(__pthis__)
 __pthis__.req=null
-__pthis__.loadSuccess(__pthis__,$3)
+__pthis__.loadSuccess(__pthis__,$4)
 }else{
+__pthis__.removeTimeout(__pthis__)
 __pthis__.req=null
 __pthis__.loadError(__pthis__,null)
 }
 }
 }
+}
+}
 this.req.open($1,$2,true)
 if($1=="POST"&&$3["content-type"]==null){
 $3["content-type"]="application/x-www-form-urlencoded"
@@ -4333,8 +4397,10 @@
 this.__setRequestHeaders(this.req,$3)
 this.req.send($4)
 }
+if(isFinite(this.timeout)){
 this.setupTimeout(this,this.timeout)
 }
+}
 var LzScreenKernel={width:null,height:null,__resizeEvent:function(){
 if(window.top.innerHeight){
 var $1=window.top.document.body
@@ -4343,12 +4409,12 @@
 }else{
 if(window.top.document.documentElement&&window.top.document.documentElement.clientHeight){
 var $1=window.top.document.documentElement
-LzScreenKernel.width=$1.scrollWidth
-LzScreenKernel.height=$1.scrollHeight
+LzScreenKernel.width=$1.clientWidth
+LzScreenKernel.height=$1.clientHeight
 }else{
 if(window.top.document.body){
 var $1=window.top.document.body
-LzScreenKernel.width=window.top.document.body.scrollWidth
+LzScreenKernel.width=window.top.document.body.clientWidth
 LzScreenKernel.height=window.top.document.body.clientHeight
 }
 }
@@ -4357,22 +4423,22 @@
 LzScreenKernel.__scope[LzScreenKernel.__callback]({width:LzScreenKernel.width,height:LzScreenKernel.height})
 }
 },__init:function(){
-window.onresize=LzScreenKernel.__resizeEvent
+Lz.attachEventHandler(window,"resize",LzScreenKernel,"__resizeEvent")
 },__callback:null,__scope:null,setCallback:function($1,$2){
 this.__scope=$1
 this.__callback=$2
 this.__init()
 this.__resizeEvent()
 }}
-var LzContextMenu=Class.make("LzContextMenu",LzNode,{initialize:function($1){
+var LzContextMenu=Class.make("LzContextMenu",LzNode,["initialize",function($1){
 this.__LZmousedowndel=new LzDelegate(this,"__hide")
 this.items=[]
 this.setDelegate($1)
-},showbuiltins:false,setDelegate:function($1){
+},"onmenuopen",LzDeclaredEvent,"showbuiltins",false,"setDelegate",function($1){
 this._delegate=$1
-},addItem:function($1){
+},"addItem",function($1){
 this.items.push($1)
-},__show:function(){
+},"__show",function(){
 var $1=document.getElementById("lzcontextmenu")
 if(!$1){
 $1=document.createElement("div")
@@ -4385,18 +4451,29 @@
 }
 var $2=""
 for(var $3=0;$3<this.items.length;$3++){
-var $4=this.items[$3].cmenuitem
-if($4.visible!=true){
+var $4=this.items[$3]
+var $5=$4.cmenuitem
+if($5.visible!=true){
 continue
 }
-if($4.separatorBefore){
+if($5.separatorBefore){
 $2+="<br/>"
 }
-if($4.enabled){
+var $6=false
+for(var $7=0;$7<$3;$7++){
+if($4._equals(this.items[$7])){
+$6=true
+break
+}
+}
+if($6){
+continue
+}
+if($5.enabled){
 $2+='<a onmousedown="javascript:LzMouseKernel.__showncontextmenu.__select('+$3+');return false;"'
-$2+=">"+$4.caption+"</a>"
+$2+=">"+$5.caption+"</a>"
 }else{
-$2+=$4.caption
+$2+=$5.caption
 }
 }
 LzMouseKernel.__showncontextmenu=this
@@ -4408,40 +4485,34 @@
 if(this._delegate!=null){
 this._delegate.execute(this)
 }
-},__hide:function(){
+},"__hide",function(){
 var $1=document.getElementById("lzcontextmenu")
 if(!$1){
 return
 }
 $1.style.display="none"
 this.__LZmousedowndel.unregisterAll()
-},__select:function($1){
+},"__select",function($1){
 this.__hide()
 if(this.items[$1]){
 this.items[$1].__select()
 }
-},hideBuiltInItems:function(){
+},"hideBuiltInItems",function(){
 this.showbuiltins=false
-},clearItems:function(){
+},"clearItems",function(){
 this.items=[]
-},getItems:function(){
+},"getItems",function(){
 return this.items
-},makeMenuItem:function($1,$2){
+},"makeMenuItem",function($1,$2){
 var $3=new LzContextMenuItem($1,$2)
 return $3
-}},null);(function(){
-with(LzContextMenu){
-with(LzContextMenu.prototype){
-DeclareEvent(prototype,"onmenuopen")
-}
-}
-})()
-var LzContextMenuItem=Class.make("LzContextMenuItem",LzNode,{initialize:function($1,$2){
+}],null)
+var LzContextMenuItem=Class.make("LzContextMenuItem",LzNode,["initialize",function($1,$2){
 this.cmenuitem={visible:true,enabled:true,separatorBefore:false,caption:$1}
 this.setDelegate($2)
-},setDelegate:function($1){
+},"onselect",LzDeclaredEvent,"setDelegate",function($1){
 this._delegate=$1
-},__select:function(){
+},"__select",function(){
 if(this.onselect.ready){
 this.onselect.sendEvent(this)
 }
@@ -4456,22 +4527,24 @@
 }
 }
 }
-},setCaption:function($1){
+},"_equals",function($1){
+return $1!=null&&this.cmenuitem.caption==$1.cmenuitem.caption
+},"setCaption",function($1){
 this.cmenuitem.caption=$1
-},setEnabled:function($1){
+},"setEnabled",function($1){
 this.cmenuitem.enabled=$1
-},setSeparatorBefore:function($1){
+},"setSeparatorBefore",function($1){
 this.cmenuitem.separatorBefore=$1
-},setVisible:function($1){
+},"setVisible",function($1){
 this.cmenuitem.visible=$1
-}},null);(function(){
+}],null);(function(){
 with(LzContextMenuItem){
 with(LzContextMenuItem.prototype){
-DeclareEvent(prototype,"onselect")
+
 }
 }
 })()
-var LzView=Class.make("LzView",LzNode,{DOUBLE_CLICK_TIME:500,capabilities:LzSprite.prototype.capabilities,construct:function($1,$2){
+var LzView=Class.make("LzView",LzNode,["onaddsubview",LzDeclaredEvent,"onbgcolor",LzDeclaredEvent,"onblur",LzDeclaredEvent,"onclick",LzDeclaredEvent,"onclickable",LzDeclaredEvent,"onfocus",LzDeclaredEvent,"onframe",LzDeclaredEvent,"onheight",LzDeclaredEvent,"onimload",LzDeclaredEvent,"onkeyup",LzDeclaredEvent,"onkeydown",LzDeclaredEvent,"onlastframe",LzDeclaredEvent,"onload",LzDeclaredEvent,"onloadperc",LzDeclaredEvent,"onerror",LzDeclaredEvent,"ontimeout",LzDeclaredEvent,"onmousedown",LzDeclaredEvent,"onmouseout",LzDeclaredEvent,"onmouseover",LzDeclaredEvent,"onmousetrackover",LzDeclaredEvent,"onmousetrackup",LzDeclaredEvent,"onmouseup",LzDeclaredEvent,"onopacity",LzDeclaredEvent,"onplay",LzDeclaredEvent,"onremovesubview",LzDeclaredEvent,"onresource",LzDeclaredEvent,"onresourceheight",LzDeclaredEvent,"onresourcewidth",LzDeclaredEvent,"onrotation",LzDeclaredEvent,"onstop",LzDeclaredEvent,"ontotalframes",LzDeclaredEvent,"onunstretchedheight",LzDeclaredEvent,"onunstretchedwid!
 th",LzDeclaredEvent,"onvisible",LzDeclaredEvent,"onvisibility",LzDeclaredEvent,"onwidth",LzDeclaredEvent,"onx",LzDeclaredEvent,"onxoffset",LzDeclaredEvent,"ony",LzDeclaredEvent,"onyoffset",LzDeclaredEvent,"ondblclick",LzDeclaredEvent,"DOUBLE_CLICK_TIME",500,"capabilities",LzSprite.prototype.capabilities,"construct",function($1,$2){
 (arguments.callee.superclass?arguments.callee.superclass.prototype["construct"]:this.nextMethod(arguments.callee,"construct")).call(this,$1?$1:canvas,$2)
 var $3=this.immediateparent
 this.mask=$3.mask
@@ -4504,28 +4577,28 @@
 this.setResource($4)
 }
 }
-},spriteAttribute:function($1,$2){
+},"spriteAttribute",function($1,$2){
 if(this[$1]){
 if(!this.__LZdeleted){
-var $lzsc$716596955=this.setters
-if($lzsc$716596955&&$1 in $lzsc$716596955){
-this[$lzsc$716596955[$1]]($2)
+var $lzsc$711496115=this.setters
+if($lzsc$711496115&&$1 in $lzsc$711496115){
+this[$lzsc$711496115[$1]]($2)
 }else{
 this[$1]=$2
-var $lzsc$1080520445="on"+$1
-if($lzsc$1080520445 in this){
-if(this[$lzsc$1080520445].ready){
-this[$lzsc$1080520445].sendEvent($2)
+var $lzsc$1150357365="on"+$1
+if($lzsc$1150357365 in this){
+if(this[$lzsc$1150357365].ready){
+this[$lzsc$1150357365].sendEvent($2)
 }
 }
 }
 }
 }
-},__makeSprite:function($1){
+},"__makeSprite",function($1){
 this.sprite=new LzSprite(this,false,$1)
-},init:function(){
+},"init",function(){
 this.sprite.init(this.visible)
-},addSubview:function($1){
+},"addSubview",function($1){
 this.sprite.addChildSprite($1.sprite)
 if($1.addedToParent){
 return
@@ -4544,9 +4617,9 @@
 if(this.onaddsubview.ready){
 this.onaddsubview.sendEvent($1)
 }
-},__LZinstantiationDone:function(){
+},"__LZinstantiationDone",function(){
 this.immediateparent.addSubview(this);(arguments.callee.superclass?arguments.callee.superclass.prototype["__LZinstantiationDone"]:this.nextMethod(arguments.callee,"__LZinstantiationDone")).apply(this,arguments)
-},mask:null,focusable:false,focustrap:null,fontstyle:null,fontsize:null,sprite:null,visible:true,visibility:"collapse",__LZvizO:true,__LZvizDat:true,__LZvizLoad:true,opacity:1,bgcolor:null,x:0,y:0,rotation:0,width:0,height:0,unstretchedwidth:0,unstretchedheight:0,subviews:[],__LZclickregion:"LzMouseEvents",xoffset:0,yoffset:0,__LZrsin:0,__LZrcos:1,__LZcaloffset:false,_xscale:1,_yscale:1,totalframes:0,frame:0,loadperc:0,framesloadratio:0,loadratio:0,hassetheight:false,hassetwidth:false,__LZisView:true,addedToParent:null,checkPlayStatusDel:null,masked:false,pixellock:null,setButtonSize:null,clickable:false,showhandcursor:null,updatePlayDel:null,resource:null,resourcewidth:null,resourceheight:null,__LZbgColorO:null,__LZbgRef:null,__LZbuttonRef:null,__LZcheckwidth:true,__LZcheckheight:true,__LZhasoffset:null,__LZisBackgrounded:null,__LZmaskClip:null,__LZmovieClipRef:null,__LZoutlieheight:null,__LZoutliewidth:null,__LZsubUniqueNum:null,setLayout:function($1){
+},"mask",null,"focusable",false,"focustrap",null,"fontstyle",null,"fontsize",null,"sprite",null,"visible",true,"visibility","collapse","__LZvizO",true,"__LZvizDat",true,"__LZvizLoad",true,"opacity",1,"bgcolor",null,"x",0,"y",0,"rotation",0,"width",0,"height",0,"unstretchedwidth",0,"unstretchedheight",0,"subviews",[],"__LZclickregion","LzMouseEvents","xoffset",0,"yoffset",0,"__LZrsin",0,"__LZrcos",1,"__LZcaloffset",false,"_xscale",1,"_yscale",1,"totalframes",0,"frame",0,"loadperc",0,"framesloadratio",0,"loadratio",0,"hassetheight",false,"hassetwidth",false,"__LZisView",true,"addedToParent",null,"checkPlayStatusDel",null,"masked",false,"pixellock",null,"setButtonSize",null,"clickable",false,"showhandcursor",null,"updatePlayDel",null,"resource",null,"resourcewidth",null,"resourceheight",null,"__LZbgColorO",null,"__LZbgRef",null,"__LZbuttonRef",null,"__LZcheckwidth",true,"__LZcheckheight",true,"__LZhasoffset",null,"__LZisBackgrounded",null,"__LZmaskClip",null,"__LZmovieClipRef"!
 ,null,"__LZoutlieheight",null,"__LZoutliewidth",null,"__LZsubUniqueNum",null,"setLayout",function($1){
 if(!this.isinited){
 this.__LZstoreAttr($1,"layout")
 return
@@ -4571,13 +4644,13 @@
 }
 this.__LZlayout=new (ConstructorMap[$2])(this,$3)
 }
-},setFontName:function($1,$2){
+},"setFontName",function($1,$2){
 this.fontname=$1
 if(!this.sprite){
 return
 }
 this.sprite.setFontName($1,$2)
-},_setrescwidth:false,_setrescheight:false,searchSubviews:function($1,$2){
+},"_setrescwidth",false,"_setrescheight",false,"searchSubviews",function($1,$2){
 var $3=this.subviews.concat()
 while($3.length>0){
 var $4=$3
@@ -4594,15 +4667,15 @@
 }
 }
 return null
-},searchimmediateparents:function($1){
+},"searchimmediateparents",function($1){
 return this.searchParents($1)
-},layouts:null,releaseLayouts:function(){
+},"layouts",null,"releaseLayouts",function(){
 if(this.layouts){
 for(var $1=this.layouts.length-1;$1>=0;$1--){
 this.layouts[$1].releaseLayout()
 }
 }
-},setResource:function($1){
+},"setResource",function($1){
 if($1==null||$1==this._resource){
 return
 }
@@ -4616,7 +4689,7 @@
 }
 this._resource=this.resource
 return this.sprite.__LZmovieClipRef
-},resourceload:function($1){
+},"resourceload",function($1){
 if("resource" in $1){
 this.resource=$1.resource
 if(this.onresource.ready){
@@ -4650,7 +4723,7 @@
 this.onload.sendEvent(this)
 }
 }
-},resourceloaderror:function(){
+},"resourceloaderror",function(){
 this.resourcewidth=0
 this.resourceheight=0
 if(this.onresourcewidth.ready){
@@ -4663,7 +4736,7 @@
 if(this.onerror.ready){
 this.onerror.sendEvent()
 }
-},resourceloadtimeout:function(){
+},"resourceloadtimeout",function(){
 this.resourcewidth=0
 this.resourceheight=0
 if(this.onresourcewidth.ready){
@@ -4676,14 +4749,22 @@
 if(this.ontimeout.ready){
 this.ontimeout.sendEvent()
 }
-},setTotalFrames:function($1){
+},"resourceevent",function($1,$2,$3){
+if($3!=true){
+this[$1]=$2
+}
+var $4=this["on"+$1]
+if($4.ready){
+$4.sendEvent($2)
+}
+},"setTotalFrames",function($1){
 if($1!=null&&this.totalframes!=$1){
 this.totalframes=$1
 if(this.ontotalframes.ready){
 this.ontotalframes.sendEvent(this.totalframes)
 }
 }
-},destroy:function($1){
+},"destroy",function($1){
 if(this.__LZdeleted){
 return
 }
@@ -4721,9 +4802,9 @@
 }
 }
 }
-},deleteView:function($1){
+},"deleteView",function($1){
 this.destroy()
-},setVisible:function($1){
+},"setVisible",function($1){
 if(this._visible==$1){
 return
 }
@@ -4742,7 +4823,7 @@
 this.onvisibility.sendEvent(this.visibility)
 }
 this.__LZupdateShown()
-},setVisibility:function($1){
+},"setVisibility",function($1){
 if(this.visibility==$1){
 return
 }
@@ -4751,7 +4832,7 @@
 this.onvisibility.sendEvent($1)
 }
 this.__LZupdateShown()
-},__LZupdateShown:function(){
+},"__LZupdateShown",function(){
 if(this.visibility=="collapse"){
 var $1=this.__LZvizO&&this.__LZvizDat&&this.__LZvizLoad
 }else{
@@ -4773,7 +4854,7 @@
 this.onvisible.sendEvent($1)
 }
 }
-},setWidth:function($1){
+},"setWidth",function($1){
 if(this._width!=$1){
 this._width=$1
 this.sprite.setWidth($1)
@@ -4805,7 +4886,7 @@
 this.onwidth.sendEvent($1)
 }
 }
-},setHeight:function($1){
+},"setHeight",function($1){
 if(this._height!=$1){
 this._height=$1
 this.sprite.setHeight($1)
@@ -4837,7 +4918,7 @@
 this.onheight.sendEvent($1)
 }
 }
-},setOpacity:function($1){
+},"setOpacity",function($1){
 if(this.capabilities.opacity){
 this.sprite.setOpacity($1)
 }else{
@@ -4853,8 +4934,8 @@
 this.__LZvizO=$3
 this.__LZupdateShown()
 }
-},setX:function($1){
-if(this._x!=$1){
+},"setX",function($1,$2){
+if($2||this._x!=$1){
 this._x=$1
 this.x=$1
 if(this.__LZhasoffset){
@@ -4875,8 +4956,8 @@
 this.onx.sendEvent(this.x)
 }
 }
-},setY:function($1){
-if(this._y!=$1){
+},"setY",function($1,$2){
+if($2||this._y!=$1){
 this._y=$1
 this.y=$1
 if(this.__LZhasoffset){
@@ -4897,7 +4978,7 @@
 this.ony.sendEvent(this.y)
 }
 }
-},setRotation:function($1){
+},"setRotation",function($1){
 if(this.capabilities.rotation){
 this.sprite.setRotation($1)
 }else{
@@ -4911,8 +4992,8 @@
 this.onrotation.sendEvent($1)
 }
 if(this.__LZhasoffset){
-this.setX(this.x)
-this.setY(this.y)
+this.setX(this.x,true)
+this.setY(this.y,true)
 }
 if(this.immediateparent.__LZcheckwidth){
 this.immediateparent.__LZcheckwidthFunction(this)
@@ -4920,13 +5001,13 @@
 if(this.immediateparent.__LZcheckheight){
 this.immediateparent.__LZcheckheightFunction(this)
 }
-},setAlign:function($1){
+},"setAlign",function($1){
 if($1=="left"){
 this.releaseConstraint("x")
 if(!this.__LZdeleted){
-var $lzsc$1703518339=this.setters
-if($lzsc$1703518339&&"x" in $lzsc$1703518339){
-this[$lzsc$1703518339["x"]](0)
+var $lzsc$1368254343=this.setters
+if($lzsc$1368254343&&"x" in $lzsc$1368254343){
+this[$lzsc$1368254343["x"]](0)
 }else{
 this["x"]=0
 if("onx" in this){
@@ -4939,16 +5020,16 @@
 }else{
 if($1=="center"){
 var $2=function(){
-var $lzsc$1689684331=this.immediateparent.width/2-this.width/2
+var $lzsc$1843790473=this.immediateparent.width/2-this.width/2
 if(!this.__LZdeleted){
-var $lzsc$105138784=this.setters
-if($lzsc$105138784&&"x" in $lzsc$105138784){
-this[$lzsc$105138784["x"]]($lzsc$1689684331)
+var $lzsc$1016303818=this.setters
+if($lzsc$1016303818&&"x" in $lzsc$1016303818){
+this[$lzsc$1016303818["x"]]($lzsc$1843790473)
 }else{
-this["x"]=$lzsc$1689684331
+this["x"]=$lzsc$1843790473
 if("onx" in this){
 if(this["onx"].ready){
-this["onx"].sendEvent($lzsc$1689684331)
+this["onx"].sendEvent($lzsc$1843790473)
 }
 }
 }
@@ -4958,16 +5039,16 @@
 }else{
 if($1=="right"){
 var $2=function(){
-var $lzsc$185694933=this.immediateparent.width-this.width
+var $lzsc$1616963866=this.immediateparent.width-this.width
 if(!this.__LZdeleted){
-var $lzsc$888270527=this.setters
-if($lzsc$888270527&&"x" in $lzsc$888270527){
-this[$lzsc$888270527["x"]]($lzsc$185694933)
+var $lzsc$1654978897=this.setters
+if($lzsc$1654978897&&"x" in $lzsc$1654978897){
+this[$lzsc$1654978897["x"]]($lzsc$1616963866)
 }else{
-this["x"]=$lzsc$185694933
+this["x"]=$lzsc$1616963866
 if("onx" in this){
 if(this["onx"].ready){
-this["onx"].sendEvent($lzsc$185694933)
+this["onx"].sendEvent($lzsc$1616963866)
 }
 }
 }
@@ -4977,23 +5058,23 @@
 }
 }
 }
-},setXOffset:function($1){
+},"setXOffset",function($1){
 this.__LZhasoffset=$1!=0
 this.xoffset=$1
-this.setX(this.x)
-this.setY(this.y)
+this.setX(this.x,true)
+this.setY(this.y,true)
 if(this.onxoffset.ready){
 this.onxoffset.sendEvent($1)
 }
-},setYOffset:function($1){
+},"setYOffset",function($1){
 this.__LZhasoffset=$1!=0
 this.yoffset=$1
-this.setX(this.x)
-this.setY(this.y)
+this.setX(this.x,true)
+this.setY(this.y,true)
 if(this.onyoffset.ready){
 this.onyoffset.sendEvent($1)
 }
-},getBounds:function(){
+},"getBounds",function(){
 var $1=[-this.xoffset,-this.yoffset,this.width-this.xoffset,-this.yoffset,-this.xoffset,this.height-this.yoffset,this.width-this.xoffset,this.height-this.yoffset,this.rotation,this.x,this.y]
 var $2=$1.length-1
 while($1[$2]==this.__LZlastmtrix[$2]){
@@ -5027,13 +5108,13 @@
 this.__LZstoredbounds=$3
 this.__LZlastmtrix=$1