var Mme={
extend:function(a,b){for(var o in b)a[o]=b[o];return a},
get:function(a,b){return(b||document).getElementById(a)},
tags:function(a,b){return(b||document).getElementsByTagName(a)},
init:function(){var o=this,n;for(n in o)o.initLib(o[n])},
initLib:function(a){var o,i;if(a.init)a._ready=a.init();if(a.pattern){
o=a._range=this.getRange(a.pattern)
if(o){
if(o.tagName)a.bind(o)
else if(o.length){for(i=0;i<o.length;i++)a.bind(o[i])}
a._bound=true
}}},
getRange:function(a){
var v={id:a.middle('#',' '),clss:a.middle('.',' ')},o,q,i
v.tag=(v.id?a.middle('#'+v.id+' ','.'):a).split('.')[0]
o=Mme.get(v.id)
if(v.tag){
o=Mme.tags(v.tag,o)
if(a.middle('.',' ')){q=[];for(i=0;i<o.length;i++)if(o[i].className==v.clss)q.push(o[i]);o=q}
}
return o
},
create:function(a,b,c,d){var o=(d||document).createElement(a);Mme.extend(o,b);Mme.extend(o.style,c);return o}
}
Mme.extend(String.prototype,{
begins:function(a){return this.indexOf(a)==0},
has:function(a){return this.indexOf(a)>-1},
middle:function(a,b){var o=this.split(a);return(o.length<2)?'':o[1].split(b)[0]}
})
Mme.popup={pattern:'#content a.external',bind:function(a){a.title='New window: '+(a.title||a.href);a.onclick=function(){window.open(a.href);return false}}}
Mme.stripe={
pattern:'table.stripe',bind:function(a){var o=Mme.tags('tr',a),i;a.cellSpacing=0;for(var i=0;i<o.length;i+=2)o[i].className='odd'}}
Mme.mailto={pattern:'#content a.mailto',bind:function(a){
var v=decodeURI(a.href).replace(/ AT /,'@').replace(/ DOT /g,'.')
a.href=v
a.title='Send e-mail to: '+(a.title||v.middle('mailto:','@'))
}}
Mme.eolas={
init:function(){
var o=Mme.tags('object'),i,j,p,v=[]
if(o.length==0)return
if(!o[0].outerHTML)return
for(i=0;i<o.length;i++){
o[i].stop()
v.push(o[i].outerHTML.split('</')[0])
p=o[i].childNodes
for(j=0;j<p.length;j++)v.push(p[j].outerHTML)
v.push('</object>')
o[i].parentNode.innerHTML=v.join('\n')
}}}
Mme.flash={items:[],
init:function(){var o=this.items,i;for(i=0;i<o.length;i++)this.render(o[i]);return true},
add:function(a,b){this.items.push([a,b])},
render:function(a){
var v=[],q=Mme.extend({wmode:'transparent',quality:'high'},a[0]),x
v.push('<object type="application/x-shockwave-flash" width="'+q.width+'" height="'+q.height+'" data="'+q.movie+'">')
for(x in q){
switch(x){
case'height':case'width':break;
default:v.push('<param name="'+x+'" value="'+q[x]+'" />')
}}
v.push('</object>')
Mme.get(a[1]).innerHTML=v.join('\n')
}}
var Jb={
init:function(){var n,o;for(n in Jb){o=Jb[n];if(o.init)o.init()}},
get:function(a,b){return(b||document).getElementById(a)},
tags:function(a,b){return(b||document).getElementsByTagName(a)},
set:function(a,b){for(var o in b)a[o]=b[o];return a},
create:function(a,b,c,d){var g=this,o=(d||document).createElement(a);g.set(o,b);g.set(o.style,c);return o},
append:function(q,a,b,c){var o=a.tagName?a:this.create(a,b,c,q.ownerDocument);q.appendChild(o);return o},
replace:function(a,b){a.parentNode.replaceChild(b,a)},
time:function(){return new Date().getTime()},
fn:function(a){return(0.5-Math.cos(a*Math.PI)/2)},
opacity:function(a,b){Jb.set(a.style,{'filter':'alpha(opacity='+b+')',opacity:b/100})},
expand:function(a){a.style.display='block'},
collapse:function(a){a.style.display='none'}
}
Jb.effect={max:400,
fade:function(a,from,to,next){
var g=Jb,o=this,dif=to-from
a.begin=g.time()
a.step=function(){
var t=g.time()-a.begin
if(t>o.max){g.opacity(a,to);o.stop(a,next)}
else{g.opacity(a,from+g.fn(t/o.max)*dif)}
}
g.opacity(a,from);g.expand(a);a.timer=setInterval(a.step,10)
},
stop:function(a,next){clearInterval(a.timer);a.timer=null;if(next)next()}
}
Jb.gallery={shade:80,
init:function(){
var g=Jb,o=this,q=g.get('gallery'),db=document.body,i,v;if(!q)return
o.img=[]
o.curtain=g.append(db,'div',{id:'curtain',onclick:o.close},{width:db.scrollWidth+'px',height:db.scrollHeight+'px'})
o.hires=g.append(db,'img',{id:'imgbox',onclick:o.next,alt:'Click to view next.'})
q=o.tags=g.tags('a',q)
for(i=0;i<q.length;i++){v=o.img[i]=new Image();v.src=q[i].href;g.set(q[i],{index:i,onclick:o.launch})}
},
launch:function(){
var g=Jb,o=g.gallery,oc=o.curtain
o.current=this.index
g.effect.fade(oc,0,o.shade,o.show)
return false
},
show:function(){
var g=Jb,o=g.gallery,oh=o.hires,ic=o.img[o.current],top,left,w=window,dd=document.documentElement
oh.src=ic.src
top=parseInt((w.pageYOffset||dd.scrollTop)+((w.innerHeight||dd.clientHeight)-ic.height)/2)+'px'
left=parseInt((w.pageXOffset||dd.scrollLeft)+((w.innerWidth||dd.clientWidth)-ic.width)/2)+'px'
g.set(oh.style,{top:top,left:left})
Jb.effect.fade(oh,0,100)
},
next:function(){
var g=Jb,o=g.gallery
o.current++
if(o.current<o.img.length)g.effect.fade(o.hires,100,0,o.show)
else o.close()
},
close:function(){
var g=Jb,o=g.gallery
g.collapse(o.hires)
g.effect.fade(o.curtain,o.shade,0,o.end)
},
end:function(){var g=Jb;g.collapse(g.gallery.curtain)}
}
var Toolbar={exec:function(a){alert('Exec: '+a.id)}}
var GCLK={
init:function(){var n;for(n in GCLK)if(GCLK[n].init)GCLK[n].init()},
set:function(a,b){for(var o in b)a[o]=b[o];return a},
create:function(a,b,c,d){var o=(d||document).createElement(a);GCLK.set(o,b);GCLK.set(o.style,c);return o},
append:function(a,b,c,d){var o=b.tagName?b:GCLK.create(b,c,d);a.appendChild(o);return o}
},
$=function(a,b){return(b||document).getElementById(a)},
$$=function(a,b){return(b||document).getElementsByTagName(a)}
GCLK.flickr={
init:function(){
	var m=this,o=$$('div'),i
	for(i=0;i<o.length;i++){if(o[i].className=='flickr')m.prepare(o[i])}
},
prepare:function(a){
	var o=$$('a',a),i
	for(i=0;i<o.length;i++)o[i].target="flickr"
}
}

try{
GCLK.clock={
init:function(){var m=this,o=$('analog-clock');if(o)m.prepare(o)},
prepare:function(a){
    var m=this,o=GCLK.create('div',{className:'face'}),r=m.radius=a.offsetWidth/2
    for(i=0;i<12;i++) GCLK.append(o,'div',{innerHTML:i+1})
    m.make('hh',0.5,o);m.make('mm',0.75,o);m.make('ss',0.9,o)
    GCLK.append(a,o);m.setHrs(o,r)
    m.timer=setInterval(GCLK.clock.tick,200)
},
make:function(a,b,c){
    var m=GCLK.clock,n=Math.floor(m.radius*b),o=m[a]=[]
    for(i=0;i<n;i++)o[i]=GCLK.append(c,'div',{className:a})
},
setHrs:function(o,r){
    var p,M=Math,P=M.PI,rp,n=r*0.9
    ;for(i=0;i<12;i++){
        p=o.childNodes[i];rp=(i+1)*2*P/12-P/2
        GCLK.set(p.style,{top:r+M.sin(rp)*n-p.offsetHeight/2+'px',left:r+M.cos(rp)*n-p.offsetWidth/2+'px'})
    }
},
tick:function(){
    var m=GCLK.clock,d=new Date,hh,mm,ss,f=m.update
    try{
        ss=d.getSeconds()+d.getMilliseconds()/1000
        mm=d.getMinutes()+ss/60
        hh=d.getHours()+mm/60
        f(m.hh,hh%12,12);f(m.mm,mm,60);f(m.ss,ss,60)
    }catch(e){alert('error');m.stop()}
},
update:function(a,b,c){
    var M=Math,P=M.PI,rp=b*P*2/c-P/2,r=GCLK.clock.radius
    for(i=0;i<a.length;i++)GCLK.set(a[i].style,{top:r+M.sin(rp)*i+'px',left:r+M.cos(rp)*i+'px'})
},
stop:function(){clearInterval(GCLK.clock.timer)}
}
}
catch(err){
}
