# HG changeset patch # User Adrien Di Mascio # Date 1226588064 -3600 # Node ID 60a291fe796577504bb2ecdf60a22f9eb1e82889 # Parent b4128cfda7017375c3b8ba9738fc75a38ab78ec6 regenerated cubicweb.timeline*.js diff -r b4128cfda701 -r 60a291fe7965 web/data/cubicweb.timeline-bundle.js --- a/web/data/cubicweb.timeline-bundle.js Thu Nov 13 14:34:16 2008 +0100 +++ b/web/data/cubicweb.timeline-bundle.js Thu Nov 13 15:54:24 2008 +0100 @@ -60,1076 +60,15 @@ SimileAjax.Platform = new Object(); - SimileAjax.urlPrefix = baseuri(); -/* jquery-1.2.6.js */ -(function(){var _jQuery=window.jQuery,_$=window.$; -var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context); -}; -var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined; -jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document; -if(selector.nodeType){this[0]=selector; -this.length=1; -return this; -}if(typeof selector=="string"){var match=quickExpr.exec(selector); -if(match&&(match[1]||!context)){if(match[1]){selector=jQuery.clean([match[1]],context); -}else{var elem=document.getElementById(match[3]); -if(elem){if(elem.id!=match[3]){return jQuery().find(selector); -}return jQuery(elem); -}selector=[]; -}}else{return jQuery(context).find(selector); -}}else{if(jQuery.isFunction(selector)){return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector); -}}return this.setArray(jQuery.makeArray(selector)); -},jquery:"1.2.6",size:function(){return this.length; -},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num]; -},pushStack:function(elems){var ret=jQuery(elems); -ret.prevObject=this; -return ret; -},setArray:function(elems){this.length=0; -Array.prototype.push.apply(this,elems); -return this; -},each:function(callback,args){return jQuery.each(this,callback,args); -},index:function(elem){var ret=-1; -return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this); -},attr:function(name,value,type){var options=name; -if(name.constructor==String){if(value===undefined){return this[0]&&jQuery[type||"attr"](this[0],name); -}else{options={}; -options[name]=value; -}}return this.each(function(i){for(name in options){jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name)); -}}); -},css:function(key,value){if((key=="width"||key=="height")&&parseFloat(value)<0){value=undefined; -}return this.attr(key,value,"curCSS"); -},text:function(text){if(typeof text!="object"&&text!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text)); -}var ret=""; -jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8){ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]); -}}); -}); -return ret; -},wrapAll:function(html){if(this[0]){jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this; -while(elem.firstChild){elem=elem.firstChild; -}return elem; -}).append(this); -}return this; -},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html); -}); -},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html); -}); -},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1){this.appendChild(elem); -}}); -},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1){this.insertBefore(elem,this.firstChild); -}}); -},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this); -}); -},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling); -}); -},end:function(){return this.prevObject||jQuery([]); -},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem); -}); -return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems); -},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div"); -container.appendChild(clone); -return jQuery.clean([container.innerHTML])[0]; -}else{return this.cloneNode(true); -}}); -var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined){this[expando]=null; -}}); -if(events===true){this.find("*").andSelf().each(function(i){if(this.nodeType==3){return ; -}var events=jQuery.data(this,"events"); -for(var type in events){for(var handler in events[type]){jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data); -}}}); -}return ret; -},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i); -})||jQuery.multiFilter(selector,this)); -},not:function(selector){if(selector.constructor==String){if(isSimple.test(selector)){return this.pushStack(jQuery.multiFilter(selector,this,true)); -}else{selector=jQuery.multiFilter(selector,this); -}}var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType; -return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector; -}); -},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=="string"?jQuery(selector):jQuery.makeArray(selector)))); -},is:function(selector){return !!selector&&jQuery.multiFilter(selector,this).length>0; -},hasClass:function(selector){return this.is("."+selector); -},val:function(value){if(value==undefined){if(this.length){var elem=this[0]; -if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one"; -if(index<0){return null; -}for(var i=one?index:0,max=one?index+1:options.length; -i=0||jQuery.inArray(this.name,value)>=0); -}else{if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value); -jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0); -}); -if(!values.length){this.selectedIndex=-1; -}}else{this.value=value; -}}}); -},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value); -},replaceWith:function(value){return this.after(value).remove(); -},eq:function(i){return this.slice(i,i+1); -},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments)); -},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem); -})); -},andSelf:function(){return this.add(this.prevObject); -},data:function(key,value){var parts=key.split("."); -parts[1]=parts[1]?"."+parts[1]:""; -if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]); -if(data===undefined&&this.length){data=jQuery.data(this[0],key); -}return data===undefined&&parts[1]?this.data(parts[0]):data; -}else{return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value); -}); -}},removeData:function(key){return this.each(function(){jQuery.removeData(this,key); -}); -},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems; -return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument); -if(reverse){elems.reverse(); -}}var obj=this; -if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr")){obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody")); -}var scripts=jQuery([]); -jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this; -if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem); -}else{if(elem.nodeType==1){scripts=scripts.add(jQuery("script",elem).remove()); -}callback.call(obj,elem); -}}); -scripts.each(evalScript); -}); -}}; -jQuery.fn.init.prototype=jQuery.fn; -function evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dataType:"script"}); -}else{jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||""); -}if(elem.parentNode){elem.parentNode.removeChild(elem); -}}function now(){return +new Date; -}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options; -if(target.constructor==Boolean){deep=target; -target=arguments[1]||{}; -i=2; -}if(typeof target!="object"&&typeof target!="function"){target={}; -}if(length==i){target=this; ---i; -}for(; -i-1; -}},swap:function(elem,options,callback){var old={}; -for(var name in options){old[name]=elem.style[name]; -elem.style[name]=options[name]; -}callback.call(elem); -for(var name in options){elem.style[name]=old[name]; -}},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"]; -function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight; -var padding=0,border=0; -jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0; -border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0; -}); -val-=Math.round(padding+border); -}if(jQuery(elem).is(":visible")){getWH(); -}else{jQuery.swap(elem,props,getWH); -}return Math.max(0,val); -}return jQuery.curCSS(elem,name,force); -},curCSS:function(elem,name,force){var ret,style=elem.style; -function color(elem){if(!jQuery.browser.safari){return false; -}var ret=defaultView.getComputedStyle(elem,null); -return !ret||ret.getPropertyValue("color")==""; -}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity"); -return ret==""?"1":ret; -}if(jQuery.browser.opera&&name=="display"){var save=style.outline; -style.outline="0 solid black"; -style.outline=save; -}if(name.match(/float/i)){name=styleFloat; -}if(!force&&style&&style[name]){ret=style[name]; -}else{if(defaultView.getComputedStyle){if(name.match(/float/i)){name="float"; -}name=name.replace(/([A-Z])/g,"-$1").toLowerCase(); -var computedStyle=defaultView.getComputedStyle(elem,null); -if(computedStyle&&!color(elem)){ret=computedStyle.getPropertyValue(name); -}else{var swap=[],stack=[],a=elem,i=0; -for(; -a&&color(a); -a=a.parentNode){stack.unshift(a); -}for(; -i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">"; -}); -var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div"); -var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""]; -div.innerHTML=wrap[1]+elem+wrap[2]; -while(wrap[0]--){div=div.lastChild; -}if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0; ---j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j]); -}}if(/^\s/.test(elem)){div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild); -}}elem=jQuery.makeArray(div.childNodes); -}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select"))){return ; -}if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options){ret.push(elem); -}else{ret=jQuery.merge(ret,elem); -}}); -return ret; -},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8){return undefined; -}var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie; -name=notxml&&jQuery.props[name]||name; -if(elem.tagName){var special=/href|src|style/.test(name); -if(name=="selected"&&jQuery.browser.safari){elem.parentNode.selectedIndex; -}if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode){throw"type property can't be changed"; -}elem[name]=value; -}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name)){return elem.getAttributeNode(name).nodeValue; -}return elem[name]; -}if(msie&¬xml&&name=="style"){return jQuery.attr(elem.style,"cssText",value); -}if(set){elem.setAttribute(name,""+value); -}var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name); -return attr===null?undefined:attr; -}if(msie&&name=="opacity"){if(set){elem.zoom=1; -elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+""=="NaN"?"":"alpha(opacity="+value*100+")"); -}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+"":""; -}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase(); -}); -if(set){elem[name]=value; -}return elem[name]; -},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,""); -},makeArray:function(array){var ret=[]; -if(array!=null){var i=array.length; -if(i==null||array.split||array.setInterval||array.call){ret[0]=array; -}else{while(i){ret[--i]=array[i]; -}}}return ret; -},inArray:function(elem,array){for(var i=0,length=array.length; -i*",this).remove(); -while(this.firstChild){this.removeChild(this.firstChild); -}}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments); -}; -}); -jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase(); -jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px"); -}; -}); -function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0; -}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)"); -jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]); -},"#":function(a,i,m){return a.getAttribute("id")==m[2]; -},":":{lt:function(a,i,m){return im[3]-0; -},nth:function(a,i,m){return m[3]-0==i; -},eq:function(a,i,m){return m[3]-0==i; -},first:function(a,i){return i==0; -},last:function(a,i,m,r){return i==r.length-1; -},even:function(a,i){return i%2==0; -},odd:function(a,i){return i%2; -},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a; -},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a; -},"only-child":function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling"); -},parent:function(a){return a.firstChild; -},empty:function(a){return !a.firstChild; -},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0; -},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden"; -},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden"; -},enabled:function(a){return !a.disabled; -},disabled:function(a){return a.disabled; -},checked:function(a){return a.checked; -},selected:function(a){return a.selected||jQuery.attr(a,"selected"); -},text:function(a){return"text"==a.type; -},radio:function(a){return"radio"==a.type; -},checkbox:function(a){return"checkbox"==a.type; -},file:function(a){return"file"==a.type; -},password:function(a){return"password"==a.type; -},submit:function(a){return"submit"==a.type; -},image:function(a){return"image"==a.type; -},reset:function(a){return"reset"==a.type; -},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button"); -},input:function(a){return/input|select|textarea|button/i.test(a.nodeName); -},has:function(a,i,m){return jQuery.find(m[3],a).length; -},header:function(a){return/h\d/i.test(a.nodeName); -},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem; -}).length; -}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[]; -while(expr&&expr!=old){old=expr; -var f=jQuery.filter(expr,elems,not); -expr=f.t.replace(/^\s*,\s*/,""); -cur=not?elems=f.r:jQuery.merge(cur,f.r); -}return cur; -},find:function(t,context){if(typeof t!="string"){return[t]; -}if(context&&context.nodeType!=1&&context.nodeType!=9){return[]; -}context=context||document; -var ret=[context],done=[],last,nodeName; -while(t&&last!=t){var r=[]; -last=t; -t=jQuery.trim(t); -var foundToken=false,re=quickChild,m=re.exec(t); -if(m){nodeName=m[1].toUpperCase(); -for(var i=0; -ret[i]; -i++){for(var c=ret[i].firstChild; -c; -c=c.nextSibling){if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName)){r.push(c); -}}}ret=r; -t=t.replace(re,""); -if(t.indexOf(" ")==0){continue; -}foundToken=true; -}else{re=/^([>+~])\s*(\w*)/i; -if((m=re.exec(t))!=null){r=[]; -var merge={}; -nodeName=m[2].toUpperCase(); -m=m[1]; -for(var j=0,rl=ret.length; -j=0; -if(!not&&pass||not&&!pass){tmp.push(r[i]); -}}return tmp; -},filter:function(t,r,not){var last; -while(t&&t!=last){last=t; -var p=jQuery.parse,m; -for(var i=0; -p[i]; -i++){m=p[i].exec(t); -if(m){t=t.substring(m[0].length); -m[2]=m[2].replace(/\\/g,""); -break; -}}if(!m){break; -}if(m[1]==":"&&m[2]=="not"){r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]); -}else{if(m[1]=="."){r=jQuery.classFilter(r,m[2],not); -}else{if(m[1]=="["){var tmp=[],type=m[3]; -for(var i=0,rl=r.length; -i=0)^not){tmp.push(a); -}}r=tmp; -}else{if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0; -for(var i=0,rl=r.length; -i=0){add=true; -}}if(add^not){tmp.push(node); -}}r=tmp; -}else{var fn=jQuery.expr[m[1]]; -if(typeof fn=="object"){fn=fn[m[2]]; -}if(typeof fn=="string"){fn=eval("false||function(a,i){return "+fn+";}"); -}r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r); -},not); -}}}}}return{r:r,t:t}; -},dir:function(elem,dir){var matched=[],cur=elem[dir]; -while(cur&&cur!=document){if(cur.nodeType==1){matched.push(cur); -}cur=cur[dir]; -}return matched; -},nth:function(cur,result,dir,elem){result=result||1; -var num=0; -for(; -cur; -cur=cur[dir]){if(cur.nodeType==1&&++num==result){break; -}}return cur; -},sibling:function(n,elem){var r=[]; -for(; -n; -n=n.nextSibling){if(n.nodeType==1&&n!=elem){r.push(n); -}}return r; -}}); -jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8){return ; -}if(jQuery.browser.msie&&elem.setInterval){elem=window; -}if(!handler.guid){handler.guid=this.guid++; -}if(data!=undefined){var fn=handler; -handler=this.proxy(fn,function(){return fn.apply(this,arguments); -}); -handler.data=data; -}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered){return jQuery.event.handle.apply(arguments.callee.elem,arguments); -}}); -handle.elem=elem; -jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split("."); -type=parts[0]; -handler.type=parts[1]; -var handlers=events[type]; -if(!handlers){handlers=events[type]={}; -if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener){elem.addEventListener(type,handle,false); -}else{if(elem.attachEvent){elem.attachEvent("on"+type,handle); -}}}}handlers[handler.guid]=handler; -jQuery.event.global[type]=true; -}); -elem=null; -},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8){return ; -}var events=jQuery.data(elem,"events"),ret,index; -if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)==".")){for(var type in events){this.remove(elem,type+(types||"")); -}}else{if(types.type){handler=types.handler; -types=types.type; -}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split("."); -type=parts[0]; -if(events[type]){if(handler){delete events[type][handler.guid]; -}else{for(handler in events[type]){if(!parts[1]||events[type][handler].type==parts[1]){delete events[type][handler]; -}}}for(ret in events[type]){break; -}if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener){elem.removeEventListener(type,jQuery.data(elem,"handle"),false); -}else{if(elem.detachEvent){elem.detachEvent("on"+type,jQuery.data(elem,"handle")); -}}}ret=null; -delete events[type]; -}}}); -}for(ret in events){break; -}if(!ret){var handle=jQuery.data(elem,"handle"); -if(handle){handle.elem=null; -}jQuery.removeData(elem,"events"); -jQuery.removeData(elem,"handle"); -}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data); -if(type.indexOf("!")>=0){type=type.slice(0,-1); -var exclusive=true; -}if(!elem){if(this.global[type]){jQuery("*").add([window,document]).trigger(type,data); -}}else{if(elem.nodeType==3||elem.nodeType==8){return undefined; -}var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault; -if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()}); -data[0][expando]=true; -}data[0].type=type; -if(exclusive){data[0].exclusive=true; -}var handle=jQuery.data(elem,"handle"); -if(handle){val=handle.apply(elem,data); -}if((!fn||(jQuery.nodeName(elem,"a")&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false){val=false; -}if(event){data.shift(); -}if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val)); -if(ret!==undefined){val=ret; -}}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,"a")&&type=="click")){this.triggered=true; -try{elem[type](); -}catch(e){}}this.triggered=false; -}return val; -},handle:function(event){var val,ret,namespace,all,handlers; -event=arguments[0]=jQuery.event.fix(event||window.event); -namespace=event.type.split("."); -event.type=namespace[0]; -namespace=namespace[1]; -all=!namespace&&!event.exclusive; -handlers=(jQuery.data(this,"events")||{})[event.type]; -for(var j in handlers){var handler=handlers[j]; -if(all||handler.type==namespace){event.handler=handler; -event.data=handler.data; -ret=handler.apply(this,arguments); -if(val!==false){val=ret; -}if(ret===false){event.preventDefault(); -event.stopPropagation(); -}}}return val; -},fix:function(event){if(event[expando]==true){return event; -}var originalEvent=event; -event={originalEvent:originalEvent}; -var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" "); -for(var i=props.length; -i; -i--){event[props[i]]=originalEvent[props[i]]; -}event[expando]=true; -event.preventDefault=function(){if(originalEvent.preventDefault){originalEvent.preventDefault(); -}originalEvent.returnValue=false; -}; -event.stopPropagation=function(){if(originalEvent.stopPropagation){originalEvent.stopPropagation(); -}originalEvent.cancelBubble=true; -}; -event.timeStamp=event.timeStamp||now(); -if(!event.target){event.target=event.srcElement||document; -}if(event.target.nodeType==3){event.target=event.target.parentNode; -}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement; -}if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body; -event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0); -event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0); -}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode)){event.which=event.charCode||event.keyCode; -}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey; -}if(!event.which&&event.button){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0))); -}return event; -},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++; -return proxy; -},special:{ready:{setup:function(){bindReady(); -return ; -},teardown:function(){return ; -}},mouseenter:{setup:function(){if(jQuery.browser.msie){return false; -}jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler); -return true; -},teardown:function(){if(jQuery.browser.msie){return false; -}jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler); -return true; -},handler:function(event){if(withinElement(event,this)){return true; -}event.type="mouseenter"; -return jQuery.event.handle.apply(this,arguments); -}},mouseleave:{setup:function(){if(jQuery.browser.msie){return false; -}jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler); -return true; -},teardown:function(){if(jQuery.browser.msie){return false; -}jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler); -return true; -},handler:function(event){if(withinElement(event,this)){return true; -}event.type="mouseleave"; -return jQuery.event.handle.apply(this,arguments); -}}}}; -jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data); -}); -},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one); -return(fn||data).apply(this,arguments); -}); -return this.each(function(){jQuery.event.add(this,type,one,fn&&data); -}); -},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn); -}); -},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn); -}); -},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn); -},toggle:function(fn){var args=arguments,i=1; -while(i=0){var selector=url.slice(off,url.length); -url=url.slice(0,off); -}callback=callback||function(){}; -var type="GET"; -if(params){if(jQuery.isFunction(params)){callback=params; -params=null; -}else{params=jQuery.param(params); -type="POST"; -}}var self=this; -jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified"){self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText); -}self.each(callback,[res.responseText,status,res]); -}}); -return this; -},serialize:function(){return jQuery.param(this.serializeArray()); -},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this; -}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type)); -}).map(function(i,elem){var val=jQuery(this).val(); -return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val}; -}):{name:elem.name,value:val}; -}).get(); -}}); -jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f); -}; -}); -var jsc=now(); -jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data; -data=null; -}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type}); -},getScript:function(url,callback){return jQuery.get(url,null,callback,"script"); -},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json"); -},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data; -data={}; -}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type}); -},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings); -},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s)); -var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase(); -if(s.data&&s.processData&&typeof s.data!="string"){s.data=jQuery.param(s.data); -}if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre)){s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?"; -}}else{if(!s.data||!s.data.match(jsre)){s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?"; -}}s.dataType="json"; -}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++; -if(s.data){s.data=(s.data+"").replace(jsre,"="+jsonp+"$1"); -}s.url=s.url.replace(jsre,"="+jsonp+"$1"); -s.dataType="script"; -window[jsonp]=function(tmp){data=tmp; -success(); -complete(); -window[jsonp]=undefined; -try{delete window[jsonp]; -}catch(e){}if(head){head.removeChild(script); -}}; -}if(s.dataType=="script"&&s.cache==null){s.cache=false; -}if(s.cache===false&&type=="GET"){var ts=now(); -var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2"); -s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:""); -}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data; -s.data=null; -}if(s.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart"); -}var remote=/^(?:\w+:)?\/\/([^\/?#]+)/; -if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0]; -var script=document.createElement("script"); -script.src=s.url; -if(s.scriptCharset){script.charset=s.scriptCharset; -}if(!jsonp){var done=false; -script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true; -success(); -complete(); -head.removeChild(script); -}}; -}head.appendChild(script); -return undefined; -}var requestDone=false; -var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest(); -if(s.username){xhr.open(type,s.url,s.async,s.username,s.password); -}else{xhr.open(type,s.url,s.async); -}try{if(s.data){xhr.setRequestHeader("Content-Type",s.contentType); -}if(s.ifModified){xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT"); -}xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"); -xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default); -}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--; -xhr.abort(); -return false; -}if(s.global){jQuery.event.trigger("ajaxSend",[xhr,s]); -}var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true; -if(ival){clearInterval(ival); -ival=null; -}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success"; -if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter); -}catch(e){status="parsererror"; -}}if(status=="success"){var modRes; -try{modRes=xhr.getResponseHeader("Last-Modified"); -}catch(e){}if(s.ifModified&&modRes){jQuery.lastModified[s.url]=modRes; -}if(!jsonp){success(); -}}else{jQuery.handleError(s,xhr,status); -}complete(); -if(s.async){xhr=null; -}}}; -if(s.async){var ival=setInterval(onreadystatechange,13); -if(s.timeout>0){setTimeout(function(){if(xhr){xhr.abort(); -if(!requestDone){onreadystatechange("timeout"); -}}},s.timeout); -}}try{xhr.send(s.data); -}catch(e){jQuery.handleError(s,xhr,null,e); -}if(!s.async){onreadystatechange(); -}function success(){if(s.success){s.success(data,status); -}if(s.global){jQuery.event.trigger("ajaxSuccess",[xhr,s]); -}}function complete(){if(s.complete){s.complete(xhr,status); -}if(s.global){jQuery.event.trigger("ajaxComplete",[xhr,s]); -}if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxStop"); -}}return xhr; -},handleError:function(s,xhr,status,e){if(s.error){s.error(xhr,status,e); -}if(s.global){jQuery.event.trigger("ajaxError",[xhr,s,e]); -}},active:0,httpSuccess:function(xhr){try{return !xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined; -}catch(e){}return false; -},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified"); -return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined; -}catch(e){}return false; -},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText; -if(xml&&data.documentElement.tagName=="parsererror"){throw"parsererror"; -}if(filter){data=filter(data,type); -}if(type=="script"){jQuery.globalEval(data); -}if(type=="json"){data=eval("("+data+")"); -}return data; -},param:function(a){var s=[]; -if(a.constructor==Array||a.jquery){jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value)); -}); -}else{for(var j in a){if(a[j]&&a[j].constructor==Array){jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this)); -}); -}else{s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j])); -}}}return s.join("&").replace(/%20/g,"+"); -}}); -jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||""; -if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body"); -this.style.display=elem.css("display"); -if(this.style.display=="none"){this.style.display="block"; -}elem.remove(); -}}).end(); -},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display"); -this.style.display="none"; -}).end(); -},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"](); -}); -},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback); -},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback); -},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback); -},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback); -},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback); -},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback); -},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback); -return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1){return false; -}var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this; -for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden){return opt.complete.call(this); -}if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display"); -opt.overflow=this.style.overflow; -}}if(opt.overflow!=null){this.style.overflow="hidden"; -}opt.curAnim=jQuery.extend({},prop); -jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name); -if(/toggle|show|hide/.test(val)){e[val=="toggle"?hidden?"show":"hide":val](prop); -}else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0; -if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px"; -if(unit!="px"){self.style[name]=(end||1)+unit; -start=((end||1)/e.cur(true))*start; -self.style[name]=start+unit; -}if(parts[1]){end=((parts[1]=="-="?-1:1)*end)+start; -}e.custom(start,end,unit); -}else{e.custom(start,val,""); -}}}); -return true; -}); -},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type; -type="fx"; -}if(!type||(typeof type=="string"&&!fn)){return queue(this[0],type); -}return this.each(function(){if(fn.constructor==Array){queue(this,type,fn); -}else{queue(this,type).push(fn); -if(queue(this,type).length==1){fn.call(this); -}}}); -},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers; -if(clearQueue){this.queue([]); -}this.each(function(){for(var i=timers.length-1; -i>=0; -i--){if(timers[i].elem==this){if(gotoEnd){timers[i](true); -}timers.splice(i,1); -}}}); -if(!gotoEnd){this.dequeue(); -}return this; -}}); -var queue=function(elem,type,array){if(elem){type=type||"fx"; -var q=jQuery.data(elem,type+"queue"); -if(!q||array){q=jQuery.data(elem,type+"queue",jQuery.makeArray(array)); -}}return q; -}; -jQuery.fn.dequeue=function(type){type=type||"fx"; -return this.each(function(){var q=queue(this,type); -q.shift(); -if(q.length){q[0].call(this); -}}); -}; -jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing}; -opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def; -opt.old=opt.complete; -opt.complete=function(){if(opt.queue!==false){jQuery(this).dequeue(); -}if(jQuery.isFunction(opt.old)){opt.old.call(this); -}}; -return opt; -},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p; -},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum; -}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options; -this.elem=elem; -this.prop=prop; -if(!options.orig){options.orig={}; -}}}); -jQuery.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this); -}(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this); -if(this.prop=="height"||this.prop=="width"){this.elem.style.display="block"; -}},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null){return this.elem[this.prop]; -}var r=parseFloat(jQuery.css(this.elem,this.prop,force)); -return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0; -},custom:function(from,to,unit){this.startTime=now(); -this.start=from; -this.end=to; -this.unit=unit||this.unit||"px"; -this.now=this.start; -this.pos=this.state=0; -this.update(); -var self=this; -function t(gotoEnd){return self.step(gotoEnd); -}t.elem=this.elem; -jQuery.timers.push(t); -if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers; -for(var i=0; -ithis.options.duration+this.startTime){this.now=this.end; -this.pos=this.state=1; -this.update(); -this.options.curAnim[this.prop]=true; -var done=true; -for(var i in this.options.curAnim){if(this.options.curAnim[i]!==true){done=false; -}}if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow; -this.elem.style.display=this.options.display; -if(jQuery.css(this.elem,"display")=="none"){this.elem.style.display="block"; -}}if(this.options.hide){this.elem.style.display="none"; -}if(this.options.hide||this.options.show){for(var p in this.options.curAnim){jQuery.attr(this.elem.style,p,this.options.orig[p]); -}}}if(done){this.options.complete.call(this.elem); -}return false; -}else{var n=t-this.startTime; -this.state=n/this.options.duration; -this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration); -this.now=this.start+((this.end-this.start)*this.pos); -this.update(); -}return true; -}}; -jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now; -},scrollTop:function(fx){fx.elem.scrollTop=fx.now; -},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now); -},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit; -}}}); -jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results; -if(elem){with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed"; -if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect(); -add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop)); -add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop); -}else{add(elem.offsetLeft,elem.offsetTop); -while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop); -if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2){border(offsetParent); -}if(!fixed&&css(offsetParent,"position")=="fixed"){fixed=true; -}offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent; -offsetParent=offsetParent.offsetParent; -}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display"))){add(-parent.scrollLeft,-parent.scrollTop); -}if(mozilla&&css(parent,"overflow")!="visible"){border(parent); -}parent=parent.parentNode; -}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute")){add(-doc.body.offsetLeft,-doc.body.offsetTop); -}if(fixed){add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop)); -}}results={top:top,left:left}; -}}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true)); -}function add(l,t){left+=parseInt(l,10)||0; -top+=parseInt(t,10)||0; -}return results; -}; -jQuery.fn.extend({position:function(){var left=0,top=0,results; -if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset(); -offset.top-=num(this,"marginTop"); -offset.left-=num(this,"marginLeft"); -parentOffset.top+=num(offsetParent,"borderTopWidth"); -parentOffset.left+=num(offsetParent,"borderLeftWidth"); -results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left}; -}return results; -},offsetParent:function(){var offsetParent=this[0].offsetParent; -while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,"position")=="static")){offsetParent=offsetParent.offsetParent; -}return jQuery(offsetParent); -}}); -jQuery.each(["Left","Top"],function(i,name){var method="scroll"+name; -jQuery.fn[method]=function(val){if(!this[0]){return ; -}return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val; -}):this[0]==window||this[0]==document?self[i?"pageYOffset":"pageXOffset"]||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method]; -}; -}); -jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom"; -jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br); -}; -jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0); -}; -}); -})(); - +window.Timeline = new Object(); +Timeline.urlPrefix = baseuri(); +window.Timeline.DateTime = window.SimileAjax.DateTime; // for backward compatibility /* platform.js */ -SimileAjax.jQuery=jQuery.noConflict(true); +SimileAjax.jQuery = jQuery; +// SimileAjax.jQuery=jQuery.noConflict(true); if(typeof window["$"]=="undefined"){window.$=SimileAjax.jQuery; }SimileAjax.Platform.os={isMac:false,isWin:false,isWin32:false,isUnix:false}; SimileAjax.Platform.browser={isIE:false,isNetscape:false,isMozilla:false,isFirefox:false,isOpera:false,isSafari:false,majorVersion:0,minorVersion:0}; @@ -1802,22 +741,31 @@ SimileAjax.Graphics._bubblePadding=15; SimileAjax.Graphics._bubblePointOffset=6; SimileAjax.Graphics._halfArrowWidth=18; -SimileAjax.Graphics.createBubbleForContentAndPoint=function(E,D,C,A,B){if(typeof A!="number"){A=300; -}E.style.position="absolute"; -E.style.left="-5000px"; -E.style.top="0px"; -E.style.width=A+"px"; -document.body.appendChild(E); -window.setTimeout(function(){var H=E.scrollWidth+10; -var F=E.scrollHeight+10; -var G=SimileAjax.Graphics.createBubbleForPoint(D,C,H,F,B); -document.body.removeChild(E); -E.style.position="static"; -E.style.left=""; -E.style.top=""; -E.style.width=H+"px"; -G.content.appendChild(E); -},200); +SimileAjax.Graphics.createBubbleForContentAndPoint=function(F,D,C,A,B,E){if(typeof A!="number"){A=300; +}if(typeof E!="number"){E=0; +}F.style.position="absolute"; +F.style.left="-5000px"; +F.style.top="0px"; +F.style.width=A+"px"; +document.body.appendChild(F); +window.setTimeout(function(){var J=F.scrollWidth+10; +var G=F.scrollHeight+10; +var I=0; +if(E>0&&G>E){G=E; +I=J-25; +}var H=SimileAjax.Graphics.createBubbleForPoint(D,C,J,G,B); +document.body.removeChild(F); +F.style.position="static"; +F.style.left=""; +F.style.top=""; +if(I>0){var K=document.createElement("div"); +F.style.width=""; +K.style.width=I+"px"; +K.appendChild(F); +H.content.appendChild(K); +}else{F.style.width=J+"px"; +H.content.appendChild(F); +}},200); }; SimileAjax.Graphics.createBubbleForPoint=function(C,B,N,R,F){function T(){if(typeof window.innerHeight=="number"){return{w:window.innerWidth,h:window.innerHeight}; }else{if(document.documentElement&&document.documentElement.clientHeight){return{w:document.documentElement.clientWidth,h:document.documentElement.clientHeight}; @@ -2012,6 +960,14 @@ }}; return G; }; +SimileAjax.Graphics.getWidthHeight=function(C){var A,B; +if(C.getBoundingClientRect==null){A=C.offsetWidth; +B=C.offsetHeight; +}else{var D=C.getBoundingClientRect(); +A=Math.ceil(D.right-D.left); +B=Math.ceil(D.bottom-D.top); +}return{width:A,height:B}; +}; SimileAjax.Graphics.getFontRenderingContext=function(A,B){return new SimileAjax.Graphics._FontRenderingContext(A,B); }; SimileAjax.Graphics._FontRenderingContext=function(A,B){this._elmt=A; @@ -2024,8 +980,12 @@ SimileAjax.Graphics._FontRenderingContext.prototype.update=function(){this._elmt.innerHTML="A"; this._lineHeight=this._elmt.offsetHeight; }; -SimileAjax.Graphics._FontRenderingContext.prototype.computeSize=function(A){this._elmt.innerHTML=A; -return{width:this._elmt.offsetWidth,height:this._elmt.offsetHeight}; +SimileAjax.Graphics._FontRenderingContext.prototype.computeSize=function(D,C){var B=this._elmt; +B.innerHTML=D; +B.className=C===undefined?"":C; +var A=SimileAjax.Graphics.getWidthHeight(B); +B.className=""; +return A; }; SimileAjax.Graphics._FontRenderingContext.prototype.getLineHeight=function(){return this._lineHeight; }; @@ -2690,10 +1650,354 @@ }catch(B){A.setrequestheader("Content-Type","text/xml"); }}; +/******** end of simile-ajax-bundle.js ********/ -window.Timeline = new Object(); -Timeline.urlPrefix = baseuri(); -window.Timeline.DateTime = window.SimileAjax.DateTime; // for backward compatibility +/******** start of simile-timeline-bundle.js ********/ + +/* band.js */ +Timeline._Band=function(B,C,A){if(B!==undefined){this.initialize(B,C,A); +}}; +Timeline._Band.prototype.initialize=function(F,G,B){if(F.autoWidth&&typeof G.width=="string"){G.width=G.width.indexOf("%")>-1?0:parseInt(G.width); +}this._timeline=F; +this._bandInfo=G; +this._index=B; +this._locale=("locale" in G)?G.locale:Timeline.getDefaultLocale(); +this._timeZone=("timeZone" in G)?G.timeZone:0; +this._labeller=("labeller" in G)?G.labeller:(("createLabeller" in F.getUnit())?F.getUnit().createLabeller(this._locale,this._timeZone):new Timeline.GregorianDateLabeller(this._locale,this._timeZone)); +this._theme=G.theme; +this._zoomIndex=("zoomIndex" in G)?G.zoomIndex:0; +this._zoomSteps=("zoomSteps" in G)?G.zoomSteps:null; +this._dragging=false; +this._changing=false; +this._originalScrollSpeed=5; +this._scrollSpeed=this._originalScrollSpeed; +this._onScrollListeners=[]; +var A=this; +this._syncWithBand=null; +this._syncWithBandHandler=function(H){A._onHighlightBandScroll(); +}; +this._selectorListener=function(H){A._onHighlightBandScroll(); +}; +var D=this._timeline.getDocument().createElement("div"); +D.className="timeline-band-input"; +this._timeline.addDiv(D); +this._keyboardInput=document.createElement("input"); +this._keyboardInput.type="text"; +D.appendChild(this._keyboardInput); +SimileAjax.DOM.registerEventWithObject(this._keyboardInput,"keydown",this,"_onKeyDown"); +SimileAjax.DOM.registerEventWithObject(this._keyboardInput,"keyup",this,"_onKeyUp"); +this._div=this._timeline.getDocument().createElement("div"); +this._div.id="timeline-band-"+B; +this._div.className="timeline-band timeline-band-"+B; +this._timeline.addDiv(this._div); +SimileAjax.DOM.registerEventWithObject(this._div,"mousedown",this,"_onMouseDown"); +SimileAjax.DOM.registerEventWithObject(this._div,"mousemove",this,"_onMouseMove"); +SimileAjax.DOM.registerEventWithObject(this._div,"mouseup",this,"_onMouseUp"); +SimileAjax.DOM.registerEventWithObject(this._div,"mouseout",this,"_onMouseOut"); +SimileAjax.DOM.registerEventWithObject(this._div,"dblclick",this,"_onDblClick"); +var E=this._theme!=null?this._theme.mouseWheel:"scroll"; +if(E==="zoom"||E==="scroll"||this._zoomSteps){if(SimileAjax.Platform.browser.isFirefox){SimileAjax.DOM.registerEventWithObject(this._div,"DOMMouseScroll",this,"_onMouseScroll"); +}else{SimileAjax.DOM.registerEventWithObject(this._div,"mousewheel",this,"_onMouseScroll"); +}}this._innerDiv=this._timeline.getDocument().createElement("div"); +this._innerDiv.className="timeline-band-inner"; +this._div.appendChild(this._innerDiv); +this._ether=G.ether; +G.ether.initialize(this,F); +this._etherPainter=G.etherPainter; +G.etherPainter.initialize(this,F); +this._eventSource=G.eventSource; +if(this._eventSource){this._eventListener={onAddMany:function(){A._onAddMany(); +},onClear:function(){A._onClear(); +}}; +this._eventSource.addListener(this._eventListener); +}this._eventPainter=G.eventPainter; +this._eventTracksNeeded=0; +this._eventTrackIncrement=0; +G.eventPainter.initialize(this,F); +this._decorators=("decorators" in G)?G.decorators:[]; +for(var C=0; +Cthis._eventTracksNeeded){this._eventTracksNeeded=B; +}}; +Timeline._Band.prototype.checkAutoWidth=function(){if(!this._timeline.autoWidth){return ; +}var A=this._eventPainter.getType()=="overview"; +var C=A?this._theme.event.overviewTrack.autoWidthMargin:this._theme.event.track.autoWidthMargin; +var B=Math.ceil((this._eventTracksNeeded+C)*this._eventTrackIncrement); +B+=A?this._theme.event.overviewTrack.offset:this._theme.event.track.offset; +var D=this._bandInfo; +if(B!=D.width){D.width=B; +}}; +Timeline._Band.prototype.layout=function(){this.paint(); +}; +Timeline._Band.prototype.paint=function(){this._etherPainter.paint(); +this._paintDecorators(); +this._paintEvents(); +}; +Timeline._Band.prototype.softLayout=function(){this.softPaint(); +}; +Timeline._Band.prototype.softPaint=function(){this._etherPainter.softPaint(); +this._softPaintDecorators(); +this._softPaintEvents(); +}; +Timeline._Band.prototype.setBandShiftAndWidth=function(A,D){var C=this._keyboardInput.parentNode; +var B=A+Math.floor(D/2); +if(this._timeline.isHorizontal()){this._div.style.top=A+"px"; +this._div.style.height=D+"px"; +C.style.top=B+"px"; +C.style.left="-1em"; +}else{this._div.style.left=A+"px"; +this._div.style.width=D+"px"; +C.style.left=B+"px"; +C.style.top="-1em"; +}}; +Timeline._Band.prototype.getViewWidth=function(){if(this._timeline.isHorizontal()){return this._div.offsetHeight; +}else{return this._div.offsetWidth; +}}; +Timeline._Band.prototype.setViewLength=function(A){this._viewLength=A; +this._recenterDiv(); +this._onChanging(); +}; +Timeline._Band.prototype.getViewLength=function(){return this._viewLength; +}; +Timeline._Band.prototype.getTotalViewLength=function(){return Timeline._Band.SCROLL_MULTIPLES*this._viewLength; +}; +Timeline._Band.prototype.getViewOffset=function(){return this._viewOffset; +}; +Timeline._Band.prototype.getMinDate=function(){return this._ether.pixelOffsetToDate(this._viewOffset); +}; +Timeline._Band.prototype.getMaxDate=function(){return this._ether.pixelOffsetToDate(this._viewOffset+Timeline._Band.SCROLL_MULTIPLES*this._viewLength); +}; +Timeline._Band.prototype.getMinVisibleDate=function(){return this._ether.pixelOffsetToDate(0); +}; +Timeline._Band.prototype.getMaxVisibleDate=function(){return this._ether.pixelOffsetToDate(this._viewLength); +}; +Timeline._Band.prototype.getCenterVisibleDate=function(){return this._ether.pixelOffsetToDate(this._viewLength/2); +}; +Timeline._Band.prototype.setMinVisibleDate=function(A){if(!this._changing){this._moveEther(Math.round(-this._ether.dateToPixelOffset(A))); +}}; +Timeline._Band.prototype.setMaxVisibleDate=function(A){if(!this._changing){this._moveEther(Math.round(this._viewLength-this._ether.dateToPixelOffset(A))); +}}; +Timeline._Band.prototype.setCenterVisibleDate=function(A){if(!this._changing){this._moveEther(Math.round(this._viewLength/2-this._ether.dateToPixelOffset(A))); +}}; +Timeline._Band.prototype.dateToPixelOffset=function(A){return this._ether.dateToPixelOffset(A)-this._viewOffset; +}; +Timeline._Band.prototype.pixelOffsetToDate=function(A){return this._ether.pixelOffsetToDate(A+this._viewOffset); +}; +Timeline._Band.prototype.createLayerDiv=function(D,B){var C=this._timeline.getDocument().createElement("div"); +C.className="timeline-band-layer"+(typeof B=="string"?(" "+B):""); +C.style.zIndex=D; +this._innerDiv.appendChild(C); +var A=this._timeline.getDocument().createElement("div"); +A.className="timeline-band-layer-inner"; +if(SimileAjax.Platform.browser.isIE){A.style.cursor="move"; +}else{A.style.cursor="-moz-grab"; +}C.appendChild(A); +return A; +}; +Timeline._Band.prototype.removeLayerDiv=function(A){this._innerDiv.removeChild(A.parentNode); +}; +Timeline._Band.prototype.scrollToCenter=function(B,C){var A=this._ether.dateToPixelOffset(B); +if(A<-this._viewLength/2){this.setCenterVisibleDate(this.pixelOffsetToDate(A+this._viewLength)); +}else{if(A>3*this._viewLength/2){this.setCenterVisibleDate(this.pixelOffsetToDate(A-this._viewLength)); +}}this._autoScroll(Math.round(this._viewLength/2-this._ether.dateToPixelOffset(B)),C); +}; +Timeline._Band.prototype.showBubbleForEvent=function(C){var A=this.getEventSource().getEvent(C); +if(A){var B=this; +this.scrollToCenter(A.getStart(),function(){B._eventPainter.showBubble(A); +}); +}}; +Timeline._Band.prototype.zoom=function(F,A,E,C){if(!this._zoomSteps){return ; +}A+=this._viewOffset; +var D=this._ether.pixelOffsetToDate(A); +var B=this._ether.zoom(F); +this._etherPainter.zoom(B); +this._moveEther(Math.round(-this._ether.dateToPixelOffset(D))); +this._moveEther(A); +}; +Timeline._Band.prototype._onMouseDown=function(B,A,C){this.closeBubble(); +this._dragging=true; +this._dragX=A.clientX; +this._dragY=A.clientY; +}; +Timeline._Band.prototype._onMouseMove=function(D,A,E){if(this._dragging){var C=A.clientX-this._dragX; +var B=A.clientY-this._dragY; +this._dragX=A.clientX; +this._dragY=A.clientY; +this._moveEther(this._timeline.isHorizontal()?C:B); +this._positionHighlight(); +}}; +Timeline._Band.prototype._onMouseUp=function(B,A,C){this._dragging=false; +this._keyboardInput.focus(); +}; +Timeline._Band.prototype._onMouseOut=function(B,A,D){var C=SimileAjax.DOM.getEventRelativeCoordinates(A,B); +C.x+=this._viewOffset; +if(C.x<0||C.x>B.offsetWidth||C.y<0||C.y>B.offsetHeight){this._dragging=false; +}}; +Timeline._Band.prototype._onMouseScroll=function(G,I,E){var A=new Date(); +A=A.getTime(); +if(!this._lastScrollTime||((A-this._lastScrollTime)>50)){this._lastScrollTime=A; +var H=0; +if(I.wheelDelta){H=I.wheelDelta/120; +}else{if(I.detail){H=-I.detail/3; +}}var F=this._theme.mouseWheel; +if(this._zoomSteps||F==="zoom"){var D=SimileAjax.DOM.getEventRelativeCoordinates(I,G); +if(H!=0){var C; +if(H>0){C=true; +}if(H<0){C=false; +}this._timeline.zoom(C,D.x,D.y,G); +}}else{if(F==="scroll"){var B=50*(H<0?-1:1); +this._moveEther(B); +}}}if(I.stopPropagation){I.stopPropagation(); +}I.cancelBubble=true; +if(I.preventDefault){I.preventDefault(); +}I.returnValue=false; +}; +Timeline._Band.prototype._onDblClick=function(B,A,D){var C=SimileAjax.DOM.getEventRelativeCoordinates(A,B); +var E=C.x-(this._viewLength/2-this._viewOffset); +this._autoScroll(-E); +}; +Timeline._Band.prototype._onKeyDown=function(B,A,C){if(!this._dragging){switch(A.keyCode){case 27:break; +case 37:case 38:this._scrollSpeed=Math.min(50,Math.abs(this._scrollSpeed*1.05)); +this._moveEther(this._scrollSpeed); +break; +case 39:case 40:this._scrollSpeed=-Math.min(50,Math.abs(this._scrollSpeed*1.05)); +this._moveEther(this._scrollSpeed); +break; +default:return true; +}this.closeBubble(); +SimileAjax.DOM.cancelEvent(A); +return false; +}return true; +}; +Timeline._Band.prototype._onKeyUp=function(B,A,C){if(!this._dragging){this._scrollSpeed=this._originalScrollSpeed; +switch(A.keyCode){case 35:this.setCenterVisibleDate(this._eventSource.getLatestDate()); +break; +case 36:this.setCenterVisibleDate(this._eventSource.getEarliestDate()); +break; +case 33:this._autoScroll(this._timeline.getPixelLength()); +break; +case 34:this._autoScroll(-this._timeline.getPixelLength()); +break; +default:return true; +}this.closeBubble(); +SimileAjax.DOM.cancelEvent(A); +return false; +}return true; +}; +Timeline._Band.prototype._autoScroll=function(D,C){var A=this; +var B=SimileAjax.Graphics.createAnimation(function(E,F){A._moveEther(F); +},0,D,1000,C); +B.run(); +}; +Timeline._Band.prototype._moveEther=function(A){this.closeBubble(); +this._viewOffset+=A; +this._ether.shiftPixels(-A); +if(this._timeline.isHorizontal()){this._div.style.left=this._viewOffset+"px"; +}else{this._div.style.top=this._viewOffset+"px"; +}if(this._viewOffset>-this._viewLength*0.5||this._viewOffset<-this._viewLength*(Timeline._Band.SCROLL_MULTIPLES-1.5)){this._recenterDiv(); +}else{this.softLayout(); +}this._onChanging(); +}; +Timeline._Band.prototype._onChanging=function(){this._changing=true; +this._fireOnScroll(); +this._setSyncWithBandDate(); +this._changing=false; +}; +Timeline._Band.prototype._fireOnScroll=function(){for(var A=0; +AA){break; }}return C; }; -Timeline.OriginalEventPainter.prototype._paintEventIcon=function(I,E,B,F,D){var H=I.getIcon(); -H=H!=null?H:F.icon; -var J=F.trackOffset+E*F.trackIncrement+F.trackHeight/2; -var G=Math.round(J-F.iconHeight/2); -var C=SimileAjax.Graphics.createTranslucentImage(H); +Timeline.OriginalEventPainter.prototype._paintEventIcon=function(J,F,B,G,E,C){var I=J.getIcon(); +I=I!=null?I:G.icon; +var H; +if(C>0){H=G.trackOffset+F*G.trackIncrement+C+G.impreciseIconMargin; +}else{var K=G.trackOffset+F*G.trackIncrement+G.trackHeight/2; +H=Math.round(K-G.iconHeight/2); +}var D=SimileAjax.Graphics.createTranslucentImage(I); var A=this._timeline.getDocument().createElement("div"); -A.className="timeline-event-icon"; +A.className=this._getElClassName("timeline-event-icon",J); +A.id=this._encodeEventElID("icon",J); A.style.left=B+"px"; -A.style.top=G+"px"; -A.appendChild(C); -if(I._title!=null){A.title=I._title; +A.style.top=H+"px"; +A.appendChild(D); +if(J._title!=null){A.title=J._title; }this._eventLayer.appendChild(A); -return{left:B,top:G,width:F.iconWidth,height:F.iconHeight,elmt:A}; -}; -Timeline.OriginalEventPainter.prototype._paintEventLabel=function(I,J,B,G,A,K,E){var H=this._timeline.getDocument(); -var F=H.createElement("div"); -F.className="timeline-event-label"; -F.style.left=B+"px"; -F.style.width=A+"px"; -F.style.top=G+"px"; -F.innerHTML=J; -if(I._title!=null){F.title=I._title; -}var D=I.getTextColor(); -if(D==null){D=I.getColor(); -}if(D!=null){F.style.color=D; -}var C=I.getClassName(); -if(C!=null){F.className+=" "+C; -}this._eventLayer.appendChild(F); -return{left:B,top:G,width:A,height:K,elmt:F}; -}; -Timeline.OriginalEventPainter.prototype._paintEventTape=function(O,J,G,A,D,I,K,H){var C=A-G; -var F=H.event.tape.height; -var L=K.trackOffset+J*K.trackIncrement; -var N=this._timeline.getDocument().createElement("div"); -N.className="timeline-event-tape"; -N.style.left=G+"px"; -N.style.width=C+"px"; -N.style.height=F+"px"; -N.style.top=L+"px"; -if(O._title!=null){N.title=O._title; -}if(D!=null){N.style.backgroundColor=D; -}var M=O.getTapeImage(); -var E=O.getTapeRepeat(); -E=E!=null?E:"repeat"; -if(M!=null){N.style.backgroundImage="url("+M+")"; -N.style.backgroundRepeat=E; -}SimileAjax.Graphics.setOpacity(N,I); -var B=O.getClassName(); -if(B!=null){N.className+=" "+B; -}this._eventLayer.appendChild(N); -return{left:G,top:L,width:C,height:F,elmt:N}; -}; -Timeline.OriginalEventPainter.prototype._createHighlightDiv=function(A,C,E){if(A>=0){var D=this._timeline.getDocument(); -var G=E.event; -var B=G.highlightColors[Math.min(A,G.highlightColors.length-1)]; -var F=D.createElement("div"); -F.style.position="absolute"; -F.style.overflow="hidden"; -F.style.left=(C.left-2)+"px"; -F.style.width=(C.width+4)+"px"; -F.style.top=(C.top-2)+"px"; -F.style.height=(C.height+4)+"px"; -this._highlightLayer.appendChild(F); -}}; +return{left:B,top:H,width:G.iconWidth,height:G.iconHeight,elmt:A}; +}; +Timeline.OriginalEventPainter.prototype._paintEventLabel=function(J,K,C,H,A,L,E,F,B){var I=this._timeline.getDocument(); +var G=I.createElement("div"); +G.className=F; +G.id=this._encodeEventElID("label",J); +G.style.left=C+"px"; +G.style.width=A+"px"; +G.style.top=H+"px"; +G.innerHTML=K; +if(J._title!=null){G.title=J._title; +}var D=J.getTextColor(); +if(D==null){D=J.getColor(); +}if(D!=null){G.style.color=D; +}if(E.event.highlightLabelBackground&&B>=0){G.style.background=this._getHighlightColor(B,E); +}this._eventLayer.appendChild(G); +return{left:C,top:H,width:A,height:L,elmt:G}; +}; +Timeline.OriginalEventPainter.prototype._paintEventTape=function(N,I,F,A,C,H,J,G,O){var B=A-F; +var E=G.event.tape.height; +var K=J.trackOffset+I*J.trackIncrement; +var M=this._timeline.getDocument().createElement("div"); +M.className=this._getElClassName("timeline-event-tape",N); +M.id=this._encodeEventElID("tape"+O,N); +M.style.left=F+"px"; +M.style.width=B+"px"; +M.style.height=E+"px"; +M.style.top=K+"px"; +if(N._title!=null){M.title=N._title; +}if(C!=null){M.style.backgroundColor=C; +}var L=N.getTapeImage(); +var D=N.getTapeRepeat(); +D=D!=null?D:"repeat"; +if(L!=null){M.style.backgroundImage="url("+L+")"; +M.style.backgroundRepeat=D; +}SimileAjax.Graphics.setOpacity(M,H); +this._eventLayer.appendChild(M); +return{left:F,top:K,width:B,height:E,elmt:M}; +}; +Timeline.OriginalEventPainter.prototype._getLabelDivClassName=function(A){return this._getElClassName("timeline-event-label",A); +}; +Timeline.OriginalEventPainter.prototype._getElClassName=function(B,A){var C=A.getClassName(); +return B+(C!=null?(" "+C):""); +}; +Timeline.OriginalEventPainter.prototype._getHighlightColor=function(A,C){var B=C.event.highlightColors; +return B[Math.min(A,B.length-1)]; +}; +Timeline.OriginalEventPainter.prototype._createHighlightDiv=function(A,D,F,B){var G=null; +if(A>=0){var E=this._timeline.getDocument(); +var C=this._getHighlightColor(A,F); +G=E.createElement("div"); +G.className=this._getElClassName("timeline-event-highlight",B); +G.id=this._encodeEventElID("highlight0",B); +G.style.position="absolute"; +G.style.overflow="hidden"; +G.style.left=(D.left-2)+"px"; +G.style.width=(D.width+4)+"px"; +G.style.top=(D.top-2)+"px"; +G.style.height=(D.height+4)+"px"; +G.style.background=C; +this._highlightLayer.appendChild(G); +}return G; +}; Timeline.OriginalEventPainter.prototype._onClickInstantEvent=function(B,C,A){var D=SimileAjax.DOM.getPageCoordinates(B); this._showBubble(D.left+Math.ceil(B.offsetWidth/2),D.top+Math.ceil(B.offsetHeight/2),A); this._fireOnSelect(A.getID()); @@ -3928,15 +3302,20 @@ if(B){var C=SimileAjax.DOM.getPageCoordinates(B); this._showBubble(C.left+B.offsetWidth/2,C.top+B.offsetHeight/2,A); }}; -Timeline.OriginalEventPainter.prototype._showBubble=function(A,D,B){var C=document.createElement("div"); -B.fillInfoBubble(C,this._params.theme,this._band.getLabeller()); +Timeline.OriginalEventPainter.prototype._showBubble=function(A,E,B){var D=document.createElement("div"); +var C=this._params.theme.event.bubble; +B.fillInfoBubble(D,this._params.theme,this._band.getLabeller()); SimileAjax.WindowManager.cancelPopups(); -SimileAjax.Graphics.createBubbleForContentAndPoint(C,A,D,this._params.theme.event.bubble.width); +SimileAjax.Graphics.createBubbleForContentAndPoint(D,A,E,C.width,null,C.maxHeight); }; Timeline.OriginalEventPainter.prototype._fireOnSelect=function(B){for(var A=0; A0?B:("e"+Math.floor(Math.random()*1000000)); +Timeline.DefaultEventSource.Event=function(A){function D(E){return(A[E]!=null&&A[E]!="")?A[E]:null; +}var C=A.id?A.id.trim():""; +this._id=C.length>0?C:Timeline.EventUtils.getNewEventID(); this._instant=A.instant||(A.end==null); this._start=A.start; this._end=(A.end!=null)?A.end:A.start; this._latestStart=(A.latestStart!=null)?A.latestStart:(A.instant?this._end:this._start); -this._earliestEnd=(A.earliestEnd!=null)?A.earliestEnd:(A.instant?this._start:this._end); -this._eventID=C("eventID"); +this._earliestEnd=(A.earliestEnd!=null)?A.earliestEnd:this._end; +var B=[]; +if(this._start>this._latestStart){this._latestStart=this._start; +B.push("start is > latestStart"); +}if(this._start>this._earliestEnd){this._earliestEnd=this._latestStart; +B.push("start is > earliestEnd"); +}if(this._start>this._end){this._end=this._earliestEnd; +B.push("start is > end"); +}if(this._latestStart>this._earliestEnd){this._earliestEnd=this._latestStart; +B.push("latestStart is > earliestEnd"); +}if(this._latestStart>this._end){this._end=this._earliestEnd; +B.push("latestStart is > end"); +}if(this._earliestEnd>this._end){this._end=this._earliestEnd; +B.push("earliestEnd is > end"); +}this._eventID=D("eventID"); this._text=(A.text!=null)?SimileAjax.HTML.deEntify(A.text):""; -this._description=SimileAjax.HTML.deEntify(A.description); -this._image=C("image"); -this._link=C("link"); -this._title=C("hoverText"); -this._title=C("caption"); -this._icon=C("icon"); -this._color=C("color"); -this._textColor=C("textColor"); -this._classname=C("classname"); -this._tapeImage=C("tapeImage"); -this._tapeRepeat=C("tapeRepeat"); -this._wikiURL=null; +if(B.length>0){this._text+=" PROBLEM: "+B.join(", "); +}this._description=SimileAjax.HTML.deEntify(A.description); +this._image=D("image"); +this._link=D("link"); +this._title=D("hoverText"); +this._title=D("caption"); +this._icon=D("icon"); +this._color=D("color"); +this._textColor=D("textColor"); +this._classname=D("classname"); +this._tapeImage=D("tapeImage"); +this._tapeRepeat=D("tapeRepeat"); +this._trackNum=D("trackNum"); +if(this._trackNum!=null){this._trackNum=parseInt(this._trackNum); +}this._wikiURL=null; this._wikiSection=null; }; Timeline.DefaultEventSource.Event.prototype={getID:function(){return this._id; @@ -4218,6 +3620,7 @@ },getClassName:function(){return this._classname; },getTapeImage:function(){return this._tapeImage; },getTapeRepeat:function(){return this._tapeRepeat; +},getTrackNum:function(){return this._trackNum; },getProperty:function(A){return null; },getWikiURL:function(){return this._wikiURL; },getWikiSection:function(){return this._wikiSection; @@ -4290,8 +3693,10 @@ }return new B(); }; Timeline.ClassicTheme._Impl=function(){this.firstDayOfWeek=0; +this.autoWidth=false; +this.autoWidthAnimationTime=1000; this.ether={backgroundColors:[],highlightOpacity:50,interval:{line:{show:true,opacity:25},weekend:{opacity:30},marker:{hAlign:"Bottom",vAlign:"Right"}}}; -this.event={track:{height:10,gap:2},overviewTrack:{offset:20,tickHeight:6,height:2,gap:1},tape:{height:4},instant:{icon:Timeline.urlPrefix+"data/timeline/dull-blue-circle.png",iconWidth:10,iconHeight:10,impreciseOpacity:20},duration:{impreciseOpacity:20},label:{backgroundOpacity:50,offsetFromLine:3},highlightColors:[],bubble:{width:250,height:125,titleStyler:function(A){A.className="timeline-event-bubble-title"; +this.event={track:{height:10,gap:2,offset:2,autoWidthMargin:1.5},overviewTrack:{offset:20,tickHeight:6,height:2,gap:1,autoWidthMargin:5},tape:{height:4},instant:{icon:Timeline.urlPrefix+"data/timeline/dull-blue-circle.png",iconWidth:10,iconHeight:10,impreciseOpacity:20,impreciseIconMargin:3},duration:{impreciseOpacity:20},label:{backgroundOpacity:50,offsetFromLine:3},highlightColors:["#FFFF00","#FFC000","#FF0000","#0000FF"],highlightLabelBackground:false,bubble:{width:250,maxHeight:0,titleStyler:function(A){A.className="timeline-event-bubble-title"; },bodyStyler:function(A){A.className="timeline-event-bubble-body"; },imageStyler:function(A){A.className="timeline-event-bubble-image"; },wikiStyler:function(A){A.className="timeline-event-bubble-wiki"; @@ -4303,35 +3708,35 @@ /* timeline.js */ Timeline.strings={}; -Timeline.getDefaultLocale=function(){return Timeline.clientLocale; -}; -Timeline.create=function(C,B,A,D){return new Timeline._Impl(C,B,A,D); -}; Timeline.HORIZONTAL=0; Timeline.VERTICAL=1; Timeline._defaultTheme=null; +Timeline.getDefaultLocale=function(){return Timeline.clientLocale; +}; +Timeline.create=function(D,C,B,F){if(Timeline.timelines==null){Timeline.timelines=[]; +}var A=Timeline.timelines.length; +Timeline.timelines[A]=null; +var E=new Timeline._Impl(D,C,B,F,A); +Timeline.timelines[A]=E; +return E; +}; Timeline.createBandInfo=function(D){var E=("theme" in D)?D.theme:Timeline.getDefaultTheme(); var B=("eventSource" in D)?D.eventSource:null; -var F={interval:SimileAjax.DateTime.gregorianUnitLengths[D.intervalUnit],pixelsPerInterval:D.intervalPixels}; -if("startsOn" in D||"endsOn" in D){if("startsOn" in D){F.startsOn=D.startsOn; -}if("endsOn" in D){F.endsOn=D.endsOn; -}}else{if("date" in D){F.centersOn=D.date; -}else{F.centersOn=new Date(); -}}var G=new Timeline.LinearEther(F); -var H=new Timeline.GregorianEtherPainter({unit:D.intervalUnit,multiple:("multiple" in D)?D.multiple:1,theme:E,align:("align" in D)?D.align:undefined}); -var J={showText:("showEventText" in D)?D.showEventText:true,theme:E}; -if("eventPainterParams" in D){for(var A in D.eventPainterParams){J[A]=D.eventPainterParams[A]; -}}if("trackHeight" in D){J.trackHeight=D.trackHeight; -}if("trackGap" in D){J.trackGap=D.trackGap; -}var I=("overview" in D&&D.overview)?"overview":("layout" in D?D.layout:"original"); +var F=new Timeline.LinearEther({centersOn:("date" in D)?D.date:new Date(),interval:SimileAjax.DateTime.gregorianUnitLengths[D.intervalUnit],pixelsPerInterval:D.intervalPixels,theme:E}); +var G=new Timeline.GregorianEtherPainter({unit:D.intervalUnit,multiple:("multiple" in D)?D.multiple:1,theme:E,align:("align" in D)?D.align:undefined}); +var I={showText:("showEventText" in D)?D.showEventText:true,theme:E}; +if("eventPainterParams" in D){for(var A in D.eventPainterParams){I[A]=D.eventPainterParams[A]; +}}if("trackHeight" in D){I.trackHeight=D.trackHeight; +}if("trackGap" in D){I.trackGap=D.trackGap; +}var H=("overview" in D&&D.overview)?"overview":("layout" in D?D.layout:"original"); var C; -if("eventPainter" in D){C=new D.eventPainter(J); -}else{switch(I){case"overview":C=new Timeline.OverviewEventPainter(J); +if("eventPainter" in D){C=new D.eventPainter(I); +}else{switch(H){case"overview":C=new Timeline.OverviewEventPainter(I); break; -case"detailed":C=new Timeline.DetailedEventPainter(J); +case"detailed":C=new Timeline.DetailedEventPainter(I); break; -default:C=new Timeline.OriginalEventPainter(J); -}}return{width:D.width,eventSource:B,timeZone:("timeZone" in D)?D.timeZone:0,ether:G,etherPainter:H,eventPainter:C,theme:E,zoomIndex:("zoomIndex" in D)?D.zoomIndex:0,zoomSteps:("zoomSteps" in D)?D.zoomSteps:null}; +default:C=new Timeline.OriginalEventPainter(I); +}}return{width:D.width,eventSource:B,timeZone:("timeZone" in D)?D.timeZone:0,ether:F,etherPainter:G,eventPainter:C,theme:E,zoomIndex:("zoomIndex" in D)?D.zoomIndex:0,zoomSteps:("zoomSteps" in D)?D.zoomSteps:null}; }; Timeline.createHotZoneBandInfo=function(D){var E=("theme" in D)?D.theme:Timeline.getDefaultTheme(); var B=("eventSource" in D)?D.eventSource:null; @@ -4370,11 +3775,18 @@ }; SimileAjax.XmlHttp.get(url,fError,fDone); }; -Timeline._Impl=function(C,B,A,D){SimileAjax.WindowManager.initialize(); -this._containerDiv=C; -this._bandInfos=B; -this._orientation=A==null?Timeline.HORIZONTAL:A; -this._unit=(D!=null)?D:SimileAjax.NativeDateUnit; +Timeline.getTimelineFromID=function(A){return Timeline.timelines[A]; +}; +Timeline._Impl=function(D,C,B,E,A){SimileAjax.WindowManager.initialize(); +this._containerDiv=D; +this._bandInfos=C; +this._orientation=B==null?Timeline.HORIZONTAL:B; +this._unit=(E!=null)?E:SimileAjax.NativeDateUnit; +this._starting=true; +this._autoResizing=false; +this.autoWidth=C&&C[0]&&C[0].theme&&C[0].theme.autoWidth; +this.autoWidthAnimationTime=C&&C[0]&&C[0].theme&&C[0].theme.autoWidthAnimationTime; +this.timelineID=A; this._initialize(); }; Timeline._Impl.prototype.dispose=function(){for(var A=0; @@ -4383,12 +3795,17 @@ }this._bands=null; this._bandInfos=null; this._containerDiv.innerHTML=""; +Timeline.timelines[this.timelineID]=null; }; Timeline._Impl.prototype.getBandCount=function(){return this._bands.length; }; Timeline._Impl.prototype.getBand=function(A){return this._bands[A]; }; -Timeline._Impl.prototype.layout=function(){this._distributeWidths(); +Timeline._Impl.prototype.finishedEventLoading=function(){this._autoWidthCheck(true); +this._starting=false; +}; +Timeline._Impl.prototype.layout=function(){this._autoWidthCheck(true); +this._distributeWidths(); }; Timeline._Impl.prototype.paint=function(){for(var A=0; AG||C){D=I; +A(); +E._distributeWidths(); +}}if(!E.autoWidth){return ; +}F(); +}; +Timeline._Impl.prototype._initialize=function(){var H=this._containerDiv; +var E=H.ownerDocument; +H.className=H.className.split(" ").concat("timeline-container").join(" "); +var B=(this.isHorizontal())?"horizontal":"vertical"; +H.className+=" timeline-"+B; +while(H.firstChild){H.removeChild(H.firstChild); +}var A=SimileAjax.Graphics.createTranslucentImage(Timeline.urlPrefix+(this.isHorizontal()?"data/timeline/copyright-vertical.png":"data/timeline/copyright.png")); +A.className="timeline-copyright"; +A.title="Timeline © SIMILE - http://simile.mit.edu/timeline/"; +SimileAjax.DOM.registerEvent(A,"click",function(){window.location="http://simile.mit.edu/timeline/"; +}); +H.appendChild(A); this._bands=[]; for(var C=0; C Loading..."; -this.showLoadingMessage=function(){I.containerDiv.style.display="block"; -}; -this.hideLoadingMessage=function(){I.containerDiv.style.display="none"; +}}if(this.autoWidth){for(var C=0; +C Loading..."; +this.showLoadingMessage=function(){D.containerDiv.style.display="block"; +}; +this.hideLoadingMessage=function(){D.containerDiv.style.display="none"; }; }; Timeline._Impl.prototype._distributeWidths=function(){var B=this.getPixelLength(); var A=this.getPixelWidth(); -var D=0; +var C=0; for(var E=0; E0){var G=parseInt(F.substr(0,H)); -var C=G*A/100; -}else{var C=parseInt(F); -}I.setBandShiftAndWidth(D,C); +D=Math.round(G*A/100); +}else{D=parseInt(F); +}}else{D=F; +}I.setBandShiftAndWidth(C,D); I.setViewLength(B); -D+=C; +C+=D; }}; Timeline._Impl.prototype.zoom=function(G,B,F,D){var C=new RegExp("^timeline-band-([0-9]+)$"); var E=null; @@ -4491,332 +3938,6 @@ }if(E!=null){this._bands[E].zoom(G,B,F,D); }this.paint(); }; -Timeline._Band=function(B,C,A){if(B!==undefined){this.initialize(B,C,A); -}}; -Timeline._Band.prototype.initialize=function(F,G,B){this._timeline=F; -this._bandInfo=G; -this._index=B; -this._locale=("locale" in G)?G.locale:Timeline.getDefaultLocale(); -this._timeZone=("timeZone" in G)?G.timeZone:0; -this._labeller=("labeller" in G)?G.labeller:(("createLabeller" in F.getUnit())?F.getUnit().createLabeller(this._locale,this._timeZone):new Timeline.GregorianDateLabeller(this._locale,this._timeZone)); -this._theme=G.theme; -this._zoomIndex=("zoomIndex" in G)?G.zoomIndex:0; -this._zoomSteps=("zoomSteps" in G)?G.zoomSteps:null; -this._dragging=false; -this._changing=false; -this._originalScrollSpeed=5; -this._scrollSpeed=this._originalScrollSpeed; -this._onScrollListeners=[]; -var A=this; -this._syncWithBand=null; -this._syncWithBandHandler=function(H){A._onHighlightBandScroll(); -}; -this._selectorListener=function(H){A._onHighlightBandScroll(); -}; -var D=this._timeline.getDocument().createElement("div"); -D.className="timeline-band-input"; -this._timeline.addDiv(D); -this._keyboardInput=document.createElement("input"); -this._keyboardInput.type="text"; -D.appendChild(this._keyboardInput); -SimileAjax.DOM.registerEventWithObject(this._keyboardInput,"keydown",this,"_onKeyDown"); -SimileAjax.DOM.registerEventWithObject(this._keyboardInput,"keyup",this,"_onKeyUp"); -this._div=this._timeline.getDocument().createElement("div"); -this._div.id="timeline-band-"+B; -this._div.className="timeline-band timeline-band-"+B; -this._timeline.addDiv(this._div); -SimileAjax.DOM.registerEventWithObject(this._div,"mousedown",this,"_onMouseDown"); -SimileAjax.DOM.registerEventWithObject(this._div,"mousemove",this,"_onMouseMove"); -SimileAjax.DOM.registerEventWithObject(this._div,"mouseup",this,"_onMouseUp"); -SimileAjax.DOM.registerEventWithObject(this._div,"mouseout",this,"_onMouseOut"); -SimileAjax.DOM.registerEventWithObject(this._div,"dblclick",this,"_onDblClick"); -var E=this._theme!=null?this._theme.mouseWheel:"scroll"; -if(E==="zoom"||E==="scroll"||this._zoomSteps){if(SimileAjax.Platform.browser.isFirefox){SimileAjax.DOM.registerEventWithObject(this._div,"DOMMouseScroll",this,"_onMouseScroll"); -}else{SimileAjax.DOM.registerEventWithObject(this._div,"mousewheel",this,"_onMouseScroll"); -}}this._innerDiv=this._timeline.getDocument().createElement("div"); -this._innerDiv.className="timeline-band-inner"; -this._div.appendChild(this._innerDiv); -this._ether=G.ether; -G.ether.initialize(this,F); -this._etherPainter=G.etherPainter; -G.etherPainter.initialize(this,F); -this._eventSource=G.eventSource; -if(this._eventSource){this._eventListener={onAddMany:function(){A._onAddMany(); -},onClear:function(){A._onClear(); -}}; -this._eventSource.addListener(this._eventListener); -}this._eventPainter=G.eventPainter; -G.eventPainter.initialize(this,F); -this._decorators=("decorators" in G)?G.decorators:[]; -for(var C=0; -C3*this._viewLength/2){this.setCenterVisibleDate(this.pixelOffsetToDate(A-this._viewLength)); -}}this._autoScroll(Math.round(this._viewLength/2-this._ether.dateToPixelOffset(B)),C); -}; -Timeline._Band.prototype.showBubbleForEvent=function(C){var A=this.getEventSource().getEvent(C); -if(A){var B=this; -this.scrollToCenter(A.getStart(),function(){B._eventPainter.showBubble(A); -}); -}}; -Timeline._Band.prototype.zoom=function(F,A,E,C){if(!this._zoomSteps){return ; -}A+=this._viewOffset; -var D=this._ether.pixelOffsetToDate(A); -var B=this._ether.zoom(F); -this._etherPainter.zoom(B); -this._moveEther(Math.round(-this._ether.dateToPixelOffset(D))); -this._moveEther(A); -}; -Timeline._Band.prototype._onMouseDown=function(B,A,C){this.closeBubble(); -this._dragging=true; -this._dragX=A.clientX; -this._dragY=A.clientY; -}; -Timeline._Band.prototype._onMouseMove=function(D,A,E){if(this._dragging){var C=A.clientX-this._dragX; -var B=A.clientY-this._dragY; -this._dragX=A.clientX; -this._dragY=A.clientY; -this._moveEther(this._timeline.isHorizontal()?C:B); -this._positionHighlight(); -}}; -Timeline._Band.prototype._onMouseUp=function(B,A,C){this._dragging=false; -this._keyboardInput.focus(); -}; -Timeline._Band.prototype._onMouseOut=function(B,A,D){var C=SimileAjax.DOM.getEventRelativeCoordinates(A,B); -C.x+=this._viewOffset; -if(C.x<0||C.x>B.offsetWidth||C.y<0||C.y>B.offsetHeight){this._dragging=false; -}}; -Timeline._Band.prototype._onMouseScroll=function(G,I,E){var A=new Date(); -A=A.getTime(); -if(!this._lastScrollTime||((A-this._lastScrollTime)>50)){this._lastScrollTime=A; -var H=0; -if(I.wheelDelta){H=I.wheelDelta/120; -}else{if(I.detail){H=-I.detail/3; -}}var F=this._theme.mouseWheel; -if(this._zoomSteps||F==="zoom"){var D=SimileAjax.DOM.getEventRelativeCoordinates(I,G); -if(H!=0){var C; -if(H>0){C=true; -}if(H<0){C=false; -}this._timeline.zoom(C,D.x,D.y,G); -}}else{if(F==="scroll"){var B=50*(H<0?-1:1); -this._moveEther(B); -}}}if(I.stopPropagation){I.stopPropagation(); -}I.cancelBubble=true; -if(I.preventDefault){I.preventDefault(); -}I.returnValue=false; -}; -Timeline._Band.prototype._onDblClick=function(B,A,D){var C=SimileAjax.DOM.getEventRelativeCoordinates(A,B); -var E=C.x-(this._viewLength/2-this._viewOffset); -this._autoScroll(-E); -}; -Timeline._Band.prototype._onKeyDown=function(B,A,C){if(!this._dragging){switch(A.keyCode){case 27:break; -case 37:case 38:this._scrollSpeed=Math.min(50,Math.abs(this._scrollSpeed*1.05)); -this._moveEther(this._scrollSpeed); -break; -case 39:case 40:this._scrollSpeed=-Math.min(50,Math.abs(this._scrollSpeed*1.05)); -this._moveEther(this._scrollSpeed); -break; -default:return true; -}this.closeBubble(); -SimileAjax.DOM.cancelEvent(A); -return false; -}return true; -}; -Timeline._Band.prototype._onKeyUp=function(B,A,C){if(!this._dragging){this._scrollSpeed=this._originalScrollSpeed; -switch(A.keyCode){case 35:this.setCenterVisibleDate(this._eventSource.getLatestDate()); -break; -case 36:this.setCenterVisibleDate(this._eventSource.getEarliestDate()); -break; -case 33:this._autoScroll(this._timeline.getPixelLength()); -break; -case 34:this._autoScroll(-this._timeline.getPixelLength()); -break; -default:return true; -}this.closeBubble(); -SimileAjax.DOM.cancelEvent(A); -return false; -}return true; -}; -Timeline._Band.prototype._autoScroll=function(D,C){var A=this; -var B=SimileAjax.Graphics.createAnimation(function(E,F){A._moveEther(F); -},0,D,1000,C); -B.run(); -}; -Timeline._Band.prototype._moveEther=function(A){this.closeBubble(); -this._viewOffset+=A; -this._ether.shiftPixels(-A); -if(this._timeline.isHorizontal()){this._div.style.left=this._viewOffset+"px"; -}else{this._div.style.top=this._viewOffset+"px"; -}if(this._viewOffset>-this._viewLength*0.5||this._viewOffset<-this._viewLength*(Timeline._Band.SCROLL_MULTIPLES-1.5)){this._recenterDiv(); -}else{this.softLayout(); -}this._onChanging(); -}; -Timeline._Band.prototype._onChanging=function(){this._changing=true; -this._fireOnScroll(); -this._setSyncWithBandDate(); -this._changing=false; -}; -Timeline._Band.prototype._fireOnScroll=function(){for(var A=0; -A Loading..."; - - this.showLoadingMessage = function() { message.containerDiv.style.display = "block"; }; - this.hideLoadingMessage = function() { message.containerDiv.style.display = "none"; }; -}; - -Timeline._Impl.prototype._distributeWidths = function() { - var length = this.getPixelLength(); - var width = this.getPixelWidth(); - var cumulativeWidth = 0; - - for (var i = 0; i < this._bands.length; i++) { - var band = this._bands[i]; - var bandInfos = this._bandInfos[i]; - var widthString = bandInfos.width; - - var x = widthString.indexOf("%"); - if (x > 0) { - var percent = parseInt(widthString.substr(0, x)); - var bandWidth = percent * width / 100; - } else { - var bandWidth = parseInt(widthString); - } - - band.setBandShiftAndWidth(cumulativeWidth, bandWidth); - band.setViewLength(length); - - cumulativeWidth += bandWidth; - } -}; - -Timeline._Impl.prototype.zoom = function (zoomIn, x, y, target) { - var matcher = new RegExp("^timeline-band-([0-9]+)$"); - var bandIndex = null; - - var result = matcher.exec(target.id); - if (result) { - bandIndex = parseInt(result[1]); - } - - if (bandIndex != null) { - this._bands[bandIndex].zoom(zoomIn, x, y, target); - } - - this.paint(); -}; - -/*================================================== - * Band - *================================================== - */ -Timeline._Band = function(timeline, bandInfo, index) { - // hack for easier subclassing - if (timeline !== undefined) { - this.initialize(timeline, bandInfo, index); - } -}; - -Timeline._Band.prototype.initialize = function(timeline, bandInfo, index) { - this._timeline = timeline; - this._bandInfo = bandInfo; - this._index = index; - - this._locale = ("locale" in bandInfo) ? bandInfo.locale : Timeline.getDefaultLocale(); - this._timeZone = ("timeZone" in bandInfo) ? bandInfo.timeZone : 0; - this._labeller = ("labeller" in bandInfo) ? bandInfo.labeller : - (("createLabeller" in timeline.getUnit()) ? - timeline.getUnit().createLabeller(this._locale, this._timeZone) : - new Timeline.GregorianDateLabeller(this._locale, this._timeZone)); - this._theme = bandInfo.theme; - this._zoomIndex = ("zoomIndex" in bandInfo) ? bandInfo.zoomIndex : 0; - this._zoomSteps = ("zoomSteps" in bandInfo) ? bandInfo.zoomSteps : null; - - this._dragging = false; - this._changing = false; - this._originalScrollSpeed = 5; // pixels - this._scrollSpeed = this._originalScrollSpeed; - this._onScrollListeners = []; - - var b = this; - this._syncWithBand = null; - this._syncWithBandHandler = function(band) { - b._onHighlightBandScroll(); - }; - this._selectorListener = function(band) { - b._onHighlightBandScroll(); - }; - - /* - * Install a textbox to capture keyboard events - */ - var inputDiv = this._timeline.getDocument().createElement("div"); - inputDiv.className = "timeline-band-input"; - this._timeline.addDiv(inputDiv); - - this._keyboardInput = document.createElement("input"); - this._keyboardInput.type = "text"; - inputDiv.appendChild(this._keyboardInput); - SimileAjax.DOM.registerEventWithObject(this._keyboardInput, "keydown", this, "_onKeyDown"); - SimileAjax.DOM.registerEventWithObject(this._keyboardInput, "keyup", this, "_onKeyUp"); - - /* - * The band's outer most div that slides with respect to the timeline's div - */ - this._div = this._timeline.getDocument().createElement("div"); - this._div.id = "timeline-band-" + index; - this._div.className = "timeline-band timeline-band-" + index; - this._timeline.addDiv(this._div); - - SimileAjax.DOM.registerEventWithObject(this._div, "mousedown", this, "_onMouseDown"); - SimileAjax.DOM.registerEventWithObject(this._div, "mousemove", this, "_onMouseMove"); - SimileAjax.DOM.registerEventWithObject(this._div, "mouseup", this, "_onMouseUp"); - SimileAjax.DOM.registerEventWithObject(this._div, "mouseout", this, "_onMouseOut"); - SimileAjax.DOM.registerEventWithObject(this._div, "dblclick", this, "_onDblClick"); - - var mouseWheel = this._theme!= null ? this._theme.mouseWheel : 'scroll'; // theme is not always defined - if (mouseWheel === 'zoom' || mouseWheel === 'scroll' || this._zoomSteps) { - // capture mouse scroll - if (SimileAjax.Platform.browser.isFirefox) { - SimileAjax.DOM.registerEventWithObject(this._div, "DOMMouseScroll", this, "_onMouseScroll"); - } else { - SimileAjax.DOM.registerEventWithObject(this._div, "mousewheel", this, "_onMouseScroll"); - } - } - - /* - * The inner div that contains layers - */ - this._innerDiv = this._timeline.getDocument().createElement("div"); - this._innerDiv.className = "timeline-band-inner"; - this._div.appendChild(this._innerDiv); - - /* - * Initialize parts of the band - */ - this._ether = bandInfo.ether; - bandInfo.ether.initialize(this, timeline); - - this._etherPainter = bandInfo.etherPainter; - bandInfo.etherPainter.initialize(this, timeline); - - this._eventSource = bandInfo.eventSource; - if (this._eventSource) { - this._eventListener = { - onAddMany: function() { b._onAddMany(); }, - onClear: function() { b._onClear(); } - } - this._eventSource.addListener(this._eventListener); - } - - this._eventPainter = bandInfo.eventPainter; - bandInfo.eventPainter.initialize(this, timeline); - - this._decorators = ("decorators" in bandInfo) ? bandInfo.decorators : []; - for (var i = 0; i < this._decorators.length; i++) { - this._decorators[i].initialize(this, timeline); - } -}; - -Timeline._Band.SCROLL_MULTIPLES = 5; - -Timeline._Band.prototype.dispose = function() { - this.closeBubble(); - - if (this._eventSource) { - this._eventSource.removeListener(this._eventListener); - this._eventListener = null; - this._eventSource = null; - } - - this._timeline = null; - this._bandInfo = null; - - this._labeller = null; - this._ether = null; - this._etherPainter = null; - this._eventPainter = null; - this._decorators = null; - - this._onScrollListeners = null; - this._syncWithBandHandler = null; - this._selectorListener = null; - - this._div = null; - this._innerDiv = null; - this._keyboardInput = null; -}; - -Timeline._Band.prototype.addOnScrollListener = function(listener) { - this._onScrollListeners.push(listener); -}; - -Timeline._Band.prototype.removeOnScrollListener = function(listener) { - for (var i = 0; i < this._onScrollListeners.length; i++) { - if (this._onScrollListeners[i] == listener) { - this._onScrollListeners.splice(i, 1); - break; - } - } -}; - -Timeline._Band.prototype.setSyncWithBand = function(band, highlight) { - if (this._syncWithBand) { - this._syncWithBand.removeOnScrollListener(this._syncWithBandHandler); - } - - this._syncWithBand = band; - this._syncWithBand.addOnScrollListener(this._syncWithBandHandler); - this._highlight = highlight; - this._positionHighlight(); -}; - -Timeline._Band.prototype.getLocale = function() { - return this._locale; -}; - -Timeline._Band.prototype.getTimeZone = function() { - return this._timeZone; -}; - -Timeline._Band.prototype.getLabeller = function() { - return this._labeller; -}; - -Timeline._Band.prototype.getIndex = function() { - return this._index; -}; - -Timeline._Band.prototype.getEther = function() { - return this._ether; -}; - -Timeline._Band.prototype.getEtherPainter = function() { - return this._etherPainter; -}; - -Timeline._Band.prototype.getEventSource = function() { - return this._eventSource; -}; - -Timeline._Band.prototype.getEventPainter = function() { - return this._eventPainter; -}; - -Timeline._Band.prototype.layout = function() { - this.paint(); -}; - -Timeline._Band.prototype.paint = function() { - this._etherPainter.paint(); - this._paintDecorators(); - this._paintEvents(); -}; - -Timeline._Band.prototype.softLayout = function() { - this.softPaint(); -}; - -Timeline._Band.prototype.softPaint = function() { - this._etherPainter.softPaint(); - this._softPaintDecorators(); - this._softPaintEvents(); -}; - -Timeline._Band.prototype.setBandShiftAndWidth = function(shift, width) { - var inputDiv = this._keyboardInput.parentNode; - var middle = shift + Math.floor(width / 2); - if (this._timeline.isHorizontal()) { - this._div.style.top = shift + "px"; - this._div.style.height = width + "px"; - - inputDiv.style.top = middle + "px"; - inputDiv.style.left = "-1em"; - } else { - this._div.style.left = shift + "px"; - this._div.style.width = width + "px"; - - inputDiv.style.left = middle + "px"; - inputDiv.style.top = "-1em"; - } -}; - -Timeline._Band.prototype.getViewWidth = function() { - if (this._timeline.isHorizontal()) { - return this._div.offsetHeight; - } else { - return this._div.offsetWidth; - } -}; - -Timeline._Band.prototype.setViewLength = function(length) { - this._viewLength = length; - this._recenterDiv(); - this._onChanging(); -}; - -Timeline._Band.prototype.getViewLength = function() { - return this._viewLength; -}; - -Timeline._Band.prototype.getTotalViewLength = function() { - return Timeline._Band.SCROLL_MULTIPLES * this._viewLength; -}; - -Timeline._Band.prototype.getViewOffset = function() { - return this._viewOffset; -}; - -Timeline._Band.prototype.getMinDate = function() { - return this._ether.pixelOffsetToDate(this._viewOffset); -}; - -Timeline._Band.prototype.getMaxDate = function() { - return this._ether.pixelOffsetToDate(this._viewOffset + Timeline._Band.SCROLL_MULTIPLES * this._viewLength); -}; - -Timeline._Band.prototype.getMinVisibleDate = function() { - return this._ether.pixelOffsetToDate(0); -}; - -Timeline._Band.prototype.getMaxVisibleDate = function() { - return this._ether.pixelOffsetToDate(this._viewLength); -}; - -Timeline._Band.prototype.getCenterVisibleDate = function() { - return this._ether.pixelOffsetToDate(this._viewLength / 2); -}; - -Timeline._Band.prototype.setMinVisibleDate = function(date) { - if (!this._changing) { - this._moveEther(Math.round(-this._ether.dateToPixelOffset(date))); - } -}; - -Timeline._Band.prototype.setMaxVisibleDate = function(date) { - if (!this._changing) { - this._moveEther(Math.round(this._viewLength - this._ether.dateToPixelOffset(date))); - } -}; - -Timeline._Band.prototype.setCenterVisibleDate = function(date) { - if (!this._changing) { - this._moveEther(Math.round(this._viewLength / 2 - this._ether.dateToPixelOffset(date))); - } -}; - -Timeline._Band.prototype.dateToPixelOffset = function(date) { - return this._ether.dateToPixelOffset(date) - this._viewOffset; -}; - -Timeline._Band.prototype.pixelOffsetToDate = function(pixels) { - return this._ether.pixelOffsetToDate(pixels + this._viewOffset); -}; - -Timeline._Band.prototype.createLayerDiv = function(zIndex, className) { - var div = this._timeline.getDocument().createElement("div"); - div.className = "timeline-band-layer" + (typeof className == "string" ? (" " + className) : ""); - div.style.zIndex = zIndex; - this._innerDiv.appendChild(div); - - var innerDiv = this._timeline.getDocument().createElement("div"); - innerDiv.className = "timeline-band-layer-inner"; - if (SimileAjax.Platform.browser.isIE) { - innerDiv.style.cursor = "move"; - } else { - innerDiv.style.cursor = "-moz-grab"; - } - div.appendChild(innerDiv); - - return innerDiv; -}; - -Timeline._Band.prototype.removeLayerDiv = function(div) { - this._innerDiv.removeChild(div.parentNode); -}; - -Timeline._Band.prototype.scrollToCenter = function(date, f) { - var pixelOffset = this._ether.dateToPixelOffset(date); - if (pixelOffset < -this._viewLength / 2) { - this.setCenterVisibleDate(this.pixelOffsetToDate(pixelOffset + this._viewLength)); - } else if (pixelOffset > 3 * this._viewLength / 2) { - this.setCenterVisibleDate(this.pixelOffsetToDate(pixelOffset - this._viewLength)); - } - this._autoScroll(Math.round(this._viewLength / 2 - this._ether.dateToPixelOffset(date)), f); -}; - -Timeline._Band.prototype.showBubbleForEvent = function(eventID) { - var evt = this.getEventSource().getEvent(eventID); - if (evt) { - var self = this; - this.scrollToCenter(evt.getStart(), function() { - self._eventPainter.showBubble(evt); - }); - } -}; - -Timeline._Band.prototype.zoom = function(zoomIn, x, y, target) { - if (!this._zoomSteps) { - // zoom disabled - return; - } - - // shift the x value by our offset - x += this._viewOffset; - - var zoomDate = this._ether.pixelOffsetToDate(x); - var netIntervalChange = this._ether.zoom(zoomIn); - this._etherPainter.zoom(netIntervalChange); - - // shift our zoom date to the far left - this._moveEther(Math.round(-this._ether.dateToPixelOffset(zoomDate))); - // then shift it back to where the mouse was - this._moveEther(x); -}; - -Timeline._Band.prototype._onMouseDown = function(innerFrame, evt, target) { - this.closeBubble(); - - this._dragging = true; - this._dragX = evt.clientX; - this._dragY = evt.clientY; -}; - -Timeline._Band.prototype._onMouseMove = function(innerFrame, evt, target) { - if (this._dragging) { - var diffX = evt.clientX - this._dragX; - var diffY = evt.clientY - this._dragY; - - this._dragX = evt.clientX; - this._dragY = evt.clientY; - - this._moveEther(this._timeline.isHorizontal() ? diffX : diffY); - this._positionHighlight(); - } -}; - -Timeline._Band.prototype._onMouseUp = function(innerFrame, evt, target) { - this._dragging = false; - this._keyboardInput.focus(); -}; - -Timeline._Band.prototype._onMouseOut = function(innerFrame, evt, target) { - var coords = SimileAjax.DOM.getEventRelativeCoordinates(evt, innerFrame); - coords.x += this._viewOffset; - if (coords.x < 0 || coords.x > innerFrame.offsetWidth || - coords.y < 0 || coords.y > innerFrame.offsetHeight) { - this._dragging = false; - } -}; - -Timeline._Band.prototype._onMouseScroll = function(innerFrame, evt, target) { - var now = new Date(); - now = now.getTime(); - - if (!this._lastScrollTime || ((now - this._lastScrollTime) > 50)) { - // limit 1 scroll per 200ms due to FF3 sending multiple events back to back - this._lastScrollTime = now; - - var delta = 0; - if (evt.wheelDelta) { - delta = evt.wheelDelta/120; - } else if (evt.detail) { - delta = -evt.detail/3; - } - - // either scroll or zoom - var mouseWheel = this._theme.mouseWheel; - - if (this._zoomSteps || mouseWheel === 'zoom') { - var loc = SimileAjax.DOM.getEventRelativeCoordinates(evt, innerFrame); - if (delta != 0) { - var zoomIn; - if (delta > 0) - zoomIn = true; - if (delta < 0) - zoomIn = false; - // call zoom on the timeline so we could zoom multiple bands if desired - this._timeline.zoom(zoomIn, loc.x, loc.y, innerFrame); - } - } - else if (mouseWheel === 'scroll') { - var move_amt = 50 * (delta < 0 ? -1 : 1); - this._moveEther(move_amt); - } - } - - // prevent bubble - if (evt.stopPropagation) { - evt.stopPropagation(); - } - evt.cancelBubble = true; - - // prevent the default action - if (evt.preventDefault) { - evt.preventDefault(); - } - evt.returnValue = false; -}; - -Timeline._Band.prototype._onDblClick = function(innerFrame, evt, target) { - var coords = SimileAjax.DOM.getEventRelativeCoordinates(evt, innerFrame); - var distance = coords.x - (this._viewLength / 2 - this._viewOffset); - - this._autoScroll(-distance); -}; - -Timeline._Band.prototype._onKeyDown = function(keyboardInput, evt, target) { - if (!this._dragging) { - switch (evt.keyCode) { - case 27: // ESC - break; - case 37: // left arrow - case 38: // up arrow - this._scrollSpeed = Math.min(50, Math.abs(this._scrollSpeed * 1.05)); - this._moveEther(this._scrollSpeed); - break; - case 39: // right arrow - case 40: // down arrow - this._scrollSpeed = -Math.min(50, Math.abs(this._scrollSpeed * 1.05)); - this._moveEther(this._scrollSpeed); - break; - default: - return true; - } - this.closeBubble(); - - SimileAjax.DOM.cancelEvent(evt); - return false; - } - return true; -}; - -Timeline._Band.prototype._onKeyUp = function(keyboardInput, evt, target) { - if (!this._dragging) { - this._scrollSpeed = this._originalScrollSpeed; - - switch (evt.keyCode) { - case 35: // end - this.setCenterVisibleDate(this._eventSource.getLatestDate()); - break; - case 36: // home - this.setCenterVisibleDate(this._eventSource.getEarliestDate()); - break; - case 33: // page up - this._autoScroll(this._timeline.getPixelLength()); - break; - case 34: // page down - this._autoScroll(-this._timeline.getPixelLength()); - break; - default: - return true; - } - - this.closeBubble(); - - SimileAjax.DOM.cancelEvent(evt); - return false; - } - return true; -}; - -Timeline._Band.prototype._autoScroll = function(distance, f) { - var b = this; - var a = SimileAjax.Graphics.createAnimation( - function(abs, diff) { - b._moveEther(diff); - }, - 0, - distance, - 1000, - f - ); - a.run(); -}; - -Timeline._Band.prototype._moveEther = function(shift) { - this.closeBubble(); - - this._viewOffset += shift; - this._ether.shiftPixels(-shift); - if (this._timeline.isHorizontal()) { - this._div.style.left = this._viewOffset + "px"; - } else { - this._div.style.top = this._viewOffset + "px"; - } - - if (this._viewOffset > -this._viewLength * 0.5 || - this._viewOffset < -this._viewLength * (Timeline._Band.SCROLL_MULTIPLES - 1.5)) { - - this._recenterDiv(); - } else { - this.softLayout(); - } - - this._onChanging(); -} - -Timeline._Band.prototype._onChanging = function() { - this._changing = true; - - this._fireOnScroll(); - this._setSyncWithBandDate(); - - this._changing = false; -}; - -Timeline._Band.prototype._fireOnScroll = function() { - for (var i = 0; i < this._onScrollListeners.length; i++) { - this._onScrollListeners[i](this); - } -}; - -Timeline._Band.prototype._setSyncWithBandDate = function() { - if (this._syncWithBand) { - var centerDate = this._ether.pixelOffsetToDate(this.getViewLength() / 2); - this._syncWithBand.setCenterVisibleDate(centerDate); - } -}; - -Timeline._Band.prototype._onHighlightBandScroll = function() { - if (this._syncWithBand) { - var centerDate = this._syncWithBand.getCenterVisibleDate(); - var centerPixelOffset = this._ether.dateToPixelOffset(centerDate); - - this._moveEther(Math.round(this._viewLength / 2 - centerPixelOffset)); - - if (this._highlight) { - this._etherPainter.setHighlight( - this._syncWithBand.getMinVisibleDate(), - this._syncWithBand.getMaxVisibleDate()); - } - } -}; - -Timeline._Band.prototype._onAddMany = function() { - this._paintEvents(); -}; - -Timeline._Band.prototype._onClear = function() { - this._paintEvents(); -}; - -Timeline._Band.prototype._positionHighlight = function() { - if (this._syncWithBand) { - var startDate = this._syncWithBand.getMinVisibleDate(); - var endDate = this._syncWithBand.getMaxVisibleDate(); - - if (this._highlight) { - this._etherPainter.setHighlight(startDate, endDate); - } - } -}; - -Timeline._Band.prototype._recenterDiv = function() { - this._viewOffset = -this._viewLength * (Timeline._Band.SCROLL_MULTIPLES - 1) / 2; - if (this._timeline.isHorizontal()) { - this._div.style.left = this._viewOffset + "px"; - this._div.style.width = (Timeline._Band.SCROLL_MULTIPLES * this._viewLength) + "px"; - } else { - this._div.style.top = this._viewOffset + "px"; - this._div.style.height = (Timeline._Band.SCROLL_MULTIPLES * this._viewLength) + "px"; - } - this.layout(); -}; - -Timeline._Band.prototype._paintEvents = function() { - this._eventPainter.paint(); -}; - -Timeline._Band.prototype._softPaintEvents = function() { - this._eventPainter.softPaint(); -}; - -Timeline._Band.prototype._paintDecorators = function() { - for (var i = 0; i < this._decorators.length; i++) { - this._decorators[i].paint(); - } -}; - -Timeline._Band.prototype._softPaintDecorators = function() { - for (var i = 0; i < this._decorators.length; i++) { - this._decorators[i].softPaint(); - } -}; - -Timeline._Band.prototype.closeBubble = function() { - SimileAjax.WindowManager.cancelPopups(); -}; +/******** end of simile-timeline-bundle.js ********/ diff -r b4128cfda701 -r 60a291fe7965 web/data/cubicweb.timeline-ext.js --- a/web/data/cubicweb.timeline-ext.js Thu Nov 13 14:34:16 2008 +0100 +++ b/web/data/cubicweb.timeline-ext.js Thu Nov 13 15:54:24 2008 +0100 @@ -38,7 +38,6 @@ this._frc = null; this._eventIdToElmt = {}; - this.foo = 'bar'; }; Timeline.CubicWebEventPainter.prototype = new Timeline.OriginalEventPainter();