polyglot=new function(){
var d=[];
this.getPolyglot=function(a){
	if(typeof(d[a])!='undefined')return d[a];
	return '';
}
this.setPolyglot=function(a,b){
	if(typeof(d[a])=='undefined')d[a]=b;
}
}
function getPolyglot(a){return polyglot.getPolyglot(a);}
function setPolyglot(a,b){polyglot.setPolyglot(a,b);}

loadImage('/base/img/status_default.png');
loadImage('/base/img/status_success.png');

function contains(a,b){return (a.compareDocumentPosition)?!!(a.compareDocumentPosition(b)&16):(a.contains(b))?true:((b.parentNode&&a.contains(b.parentNode))||a==b.parentNode)?true:false;}//Safari 3 bug contains with text nodes.

function commonAncestor(a,b){
	var p=function(c){for(var x=[];c;c=c.parentNode){x.unshift(c);}return x;}
	var p1=p(a);
	var p2=p(b);
	for (var n=p1.length,i=0;i<n;i++){if(p1[i]!=p2[i]){return p1[i-1];}}
}

function getOwner(a){
	while(a.parentNode){
		a=a.parentNode;
		if(a.className.indexOf('pageContent')!==-1&&a.className.indexOf('owner_')!==-1){
			var c=a.className;
			c=c.substr(c.indexOf('owner_')+6);
			if(c.indexOf(' ')!==-1)c=c.split(' ')[0];
			return c;
		}
	}
}

function getStyle(a,b){
	if(window.getComputedStyle)return document.defaultView.getComputedStyle(a,null).getPropertyValue(b);
	var n=b.indexOf('-');
	if(n!==-1)b=b.substr(0,n)+b.substr(n+1,1).toUpperCase()+b.substr(n+2);
	return a.currentStyle[b];
}

function getLeft(a){var b=a.offsetLeft;while(a.offsetParent){a=a.offsetParent;b+=a.offsetLeft;}return b;}

function getTop(a){var b=a.offsetTop;while(a.offsetParent){a=a.offsetParent;b+=a.offsetTop;}return b;}

function getPageYOffset(){return (window.pageYOffset)?window.pageYOffset:document.documentElement.scrollTop;}

function getPageXOffset(){return (window.pageXOffset)?window.pageXOffset:document.documentElement.scrollLeft;}

function addEvent(a,b,c){return (a.addEventListener)?a.addEventListener(b,c,false):(a.attachEvent)?a.attachEvent('on'+b,c):false;}

function removeEvent(a,b,c){return (a.removeEventListener)?a.removeEventListener(b,c,false):(a.detachEvent)?a.detachEvent('on'+b,c):false;}

function cancelEvent(e){(e.preventDefault)?e.preventDefault():e.returnValue=false;}

function getEvent(e,a){
if(!e)var e=window.event;
switch(a){
case 'type':return e.type;
case 'target':return (e.target&&e.target.nodeType==3)?e.target.parentNode:(e.target)?e.target:e.srcElement;// nodeType 3 defeat Safari bug
case 'key':return (e.charCode)?e.charCode:(e.which)?e.which:e.keyCode;
case 'mousex':return (e.pageX||e.pageX===0)?e.pageX:e.clientX+document.documentElement.scrollLeft;
case 'mousey':return (e.pageY||e.pageY===0)?e.pageY:e.clientY+document.documentElement.scrollTop;
}
}


function AJAX(a,b,c){
//a : destination URL to send data to.
//b : data to send(can be urlencoded data,or a form that can includes files)
//[c] :a function to launch once request successfully completed with XMLHttpRequest.responseText as first argument.
//This function will return XMLHttpRequest when it is not forced to use a iframe
if(typeof(c)!='function')var c=function(){}
var x=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject('Msxml2.XMLHTTP');
var chkerr=function(h){
	//FIXME would be cleaner if refused would get into method functions, not AJAX!
	if(h=='<!--refused-->'){
		notify(getPolyglot('actionRefused'),getPolyglot('actionRefusedDesc'),'/base/img/status_refused.png');
		if(pandore)login();
		c(false);
		return;
	}
	c(h);
	//FIXME <!--bug--> is not so necessary.. could be removed! also from PHP + bug polyglot notices.
	//FIXME empty will be handled by plugins themselves, not from platform.
}
if(typeof(b)=='string'){
	x.open('POST',a,true);
	x.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	x.send(b);
	x.onreadystatechange=function(){if(x.readyState==4){if(x.status==200){chkerr(x.responseText);}}};
	return x;
}
if(window['FormData']){
	var f=new FormData();
	var j=false;
	var m=b.getElementsByTagName('INPUT');
	for(var n=m.length,i=0;i<n;i++){
		if(m[i].type=='file'){j=true;f.append(m[i].name,m[i].files[0]);}
		else f.append(m[i].name,m[i].value);
	}
	var m=b.getElementsByTagName('TEXTAREA');
	for(var n=m.length,i=0;i<n;i++)f.append(m[i].name,m[i].value);
	var m=b.getElementsByTagName('SELECT');
	for(var n=m.length,i=0;i<n;i++)f.append(m[i].name,m[i].value);
	if(j==true){
		var n=create('DIV');
		var p=create('SPAN',{'class':'uploadBar'});
		n.appendChild(p);
		n.appendChild(create('A',{'class':'uploadX','href':'javascript:void(0);'}));
		n.lastChild.onclick=function(){x.abort();};
		var g=notify(getPolyglot('uploadProgress'),n,'/base/img/status_transfer.png',false);
		addEvent(x.upload,'progress',function(e){if(!e.lengthComputable){return;}p.style.width=(e.loaded/e.total*260).toFixed(0)+'px';});
	}
	addEvent(x,'readystatechange',function(){if(x.readyState!=4){return;}if(typeof(n)!='undefined'){denotify(g);}if(x.status!=200){return;}chkerr(x.responseText);});
	x.open('POST',a,true);
	x.send(f);
	return x;
}
b.setAttribute('action',a);
var n=0;
while(document.getElementById('upload_target'+n))n++
var m=document.createElement('DIV');
document.body.appendChild(m);
m.innerHTML='<iframe style="display:none;" name="upload_target'+n+'" id="upload_target'+n+'"></iframe>';
var i=m.firstChild;
b.target='upload_target'+n;
var g=notify(getPolyglot('uploadProgress'),'');
addEvent(i,'load',function(){var w;try{w=i.contentDocument.body.innerHTML;}catch(e){try{w=i.Document.body.innerHTML;}catch(e){w='';}}chkerr(w);setTimeout(function(){m.parentNode.removeChild(m);denotify(g);},1);});
b.submit();
return null;
}

function keyFilter(a){
return function(e){
	var k=getEvent(e,'key');
	switch(k){
	case 0://others
	case 8://backspace
	case 9://tab
	case 13://enter
	case 37://left
	case 38://top
	case 39://right
	case 40://bottom
	return;
	break;
	default :
		if(!a.test(String.fromCharCode(k)))cancelEvent(e);
	}
}
}

function inputText(e,ins){
	e.focus();
	var sSel;
	if(e.selectionStart)sSel=e.selectionStart;
	else if(document.selection){
		var r=document.selection.createRange();
		if(r==null)sSel=e.value.length;
		else{
			var re=e.createTextRange();
			var rc=re.duplicate();
			re.moveToBookmark(r.getBookmark());
			rc.setEndPoint('EndToStart',re);
			sSel=rc.text.length;
		}
	}
	else sSel=e.value.length;
	e.value=e.value.substr(0,sSel)+ins+e.value.substr(sSel);
	var eSel=sSel+ins.length;
	if(e.setSelectionRange)e.setSelectionRange(eSel,eSel);
	else if(e.createTextRange){
		var r=e.createTextRange();
		r.collapse(true);
		r.moveEnd('character',eSel);
		r.moveStart('character',eSel);
		r.select();
	}
}

function getWidth(a){
//No methods really exist to get real computed style,we must rely on CSS/attributes.
//Therefore this function might fail to report in certain circumstances in certain browsers(ex. weird/invalid positions,borders/paddings..)
var w=getStyle(a,'width');
if(w.indexOf('px')!==-1)return parseInt(w.replace('px',''));
var p=[getStyle(a,'padding-top'),getStyle(a,'padding-right'),getStyle(a,'padding-bottom'),getStyle(a,'padding-left')];
for(var i=0;i<4;i++){
	if(p[i].indexOf('px')!==-1)p[i]=parseInt(p[i]);
	else p[i]=0;
}
return a.offsetWidth-p[1]-p[3];
}
function getHeight(a){
//No methods really exist to get real computed style,we must rely on CSS/attributes.
//Therefore this function might fail to report in certain circumstances in certain browsers(ex. weird/invalid positions,borders/paddings..)
var h=getStyle(a,'height');
if(h.indexOf('px')!==-1)return parseInt(h.replace('px',''));
var p=[getStyle(a,'padding-top'),getStyle(a,'padding-right'),getStyle(a,'padding-bottom'),getStyle(a,'padding-left')];
for(var i=0;i<4;i++){
	if(p[i].indexOf('px')!==-1)p[i]=parseInt(p[i]);
	else p[i]=0;
}
return a.offsetHeight-p[0]-p[2];
}


function refresh(a){
var l=window.location.href.toString();
var r='';
if(l.indexOf('?')!==-1){
	r=l.substr(l.indexOf('?')+1);
	l=l.substr(0,l.indexOf('?'));
}
AJAX(l,r,function(x){
	var n=create('BODY');
	n.innerHTML=x;
	if(a==document.body){replace(document.body,n);return;}
	var m=n.getElementsByTagName(a.nodeName);
	for(var n=m.length,i=0;i<n;i++){if(m[i].id==a.id){replace(a,m[i]);break;}}
});
}


function create(a,b,c){
if(typeof(b)=='undefined'||b==null)var b=[];
if(typeof(c)=='undefined'||c==null)var c=[];
var g=document.createElement(a);
for(var i in b){
	//Dumb Internet Explorer
	switch(i){
	case 'style':g.style.cssText=b[i];
	break;
	case 'class':g.className=b[i];
	break;
	default:g.setAttribute(i,b[i]);
	}
}
for(var n=c.length,i=0;i<n;i++)g.appendChild(c[i]);
return g;
}

function colorize(a,b,c,d,e){
//a is the node
//b is the desired color
//c is the attribute(background-color,color..)
//[d] is the time that the animation should take,in milliseconds.
//[e] is the function to launch when the animation completed.
if(typeof(d)!='number')var d=400;
if(typeof(e)!='function')var e=function(){};
if(c=='background-color'){var attr='bgcolorstatus';var colorise=function(a,b){a.style.backgroundColor=b;}}
else if(c=='color'){var attr='colorstatus';var colorise=function(a,b){a.style.color=b;}}
var from=getStyle(a,c);
if(!window.getSelection){
	if(from=='transparent')from='rgb(255,255,255)';
	if(b.indexOf('rgba')===0)b=b.substr(0,b.lastIndexOf(','));
}
if(a.getAttribute(attr)!=null){clearInterval(a.getAttribute(attr));a.removeAttribute(attr);}
var oti=new Date().getTime();
var convert=function(n){
	if(n.indexOf('rgb')===0){
		n=n.replace('rgb(','').replace('rgba(','').replace(')','').replace(/ /g,'').split(',');
		n[0]=parseInt(n[0]);
		n[1]=parseInt(n[1]);
		n[2]=parseInt(n[2]);
		if(typeof(n[3])!=='undefined')n[3]=parseFloat(n[3]);
		else n[3]=1;
	}
	else if(/^#?[A-Za-z0-9]{6}$/.test(n)||/^#?[A-Za-z0-9]{3}$/.test(n)){
		n=n.replace('#','');
		if(n.length==3)n=[n[0],n[0],n[1],n[1],n[2],n[2]].join('');
		n=[parseInt((n).substring(0,2),16),parseInt((n).substring(2,4),16),parseInt((n).substring(4,6),16),1]
	}
	return n;
}
var to=convert(b);
if(from=='transparent'||from=='rgba(0, 0, 0, 0)'){from=[to[0],to[1],to[2],0];}
else from=convert(from);
if(from[3]==0&&to[3]==0||(from[0]==to[0]&&from[1]==to[1]&&from[2]==to[2]&&from[3]==to[3])){return;e();}
var diff=[to[0]-from[0],to[1]-from[1],to[2]-from[2],to[3]-from[3]];
if(from[3]==1&&to[3]==1)a.setAttribute(attr,setInterval(function(){var ti=new Date().getTime()-oti;var p=ti/d;if(p>=1){colorise(a,['rgb(',to[0],',',to[1],',',to[2],')'].join(''));clearInterval(a.getAttribute(attr));a.removeAttribute(attr);e();return;}colorise(a,['rgb(',(from[0]+(p*diff[0])).toFixed(0),',',(from[1]+(p*diff[1])).toFixed(0),',',(from[2]+(p*diff[2])).toFixed(0),')'].join(''));},10));
else a.setAttribute(attr,setInterval(function(){var ti=new Date().getTime()-oti;var p=ti/d;if(p>=1){colorise(a,['rgba(',to[0],',',to[1],',',to[2],',',to[3],')'].join(''));clearInterval(a.getAttribute(attr));a.removeAttribute(attr);e();return;}colorise(a,['rgba(',(from[0]+(p*diff[0])).toFixed(0),',',(from[1]+(p*diff[1])).toFixed(0),',',(from[2]+(p*diff[2])).toFixed(0),',',(from[3]+(p*diff[3])).toFixed(2),')'].join(''));},10));

}

function fade(a,b,c,d){
//a is the node.
//b is the opacity,between 0 and 100
//[c] is the time that the animation should take,in milliseconds.
//[d] is the function to launch when the animation completed.
if(typeof(c)!='number')var c=400;
if(typeof(d)!='function')var d=function(){};
if(a.getAttribute('fadestatus')!==null){clearInterval(a.getAttribute('fadestatus'));a.removeAttribute('fadestatus');}
var op=0;
if(getStyle(a,'display')!='none'&&(getStyle(a,'visibility')!='hidden'||(a.style.visibility!='hidden'&&a.parentNode && getStyle(a.parentNode,'visibility')=='hidden'))){
	if(typeof(a.style.opacity)=='undefined'){
		if(getStyle(a,'filter')===false)op=100;
		else op=parseInt(getStyle(a,'filter').replace('alpha(opacity=','').replace(')',''));
	}
	else op=Math.round(parseFloat(getStyle(a,'opacity').replace(',','.'))*100);
}
var diff=b-op;
if(diff==0){d();return;}
var oti=new Date().getTime();
var nodes=[a];
if(typeof(a.style.opacity)=='undefined'){
	var nods=a.getElementsByTagName('*');
	for(var n=nods.length,i=0;i<n;i++){
		if(nods[i].nodeType==1&&(getStyle(nods[i],'position')=='relative'||getStyle(nods[i],'position')=='absolute'||getStyle(nods[i],'position')=='fixed'))nodes.push(nods[i]);
	}
}
var n=nodes.length;
if(typeof(document.body.style.opacity)=='undefined')var upd=function(a,b){a.style.filter='alpha(opacity='+b+')';}
else var upd=function(a,b){a.style.opacity=(b/100).toFixed(2);}
for(var i=0;i<n;i++){upd(nodes[i],op);}
if(b>op){
	if(a.style.display=='none')a.style.display='';
	if(getStyle(a,'display')=='none')a.style.display='block';
	a.style.visibility='';
	if(getStyle(a,'visibility')=='hidden')a.style.visibility='visible';
}
a.setAttribute('fadestatus',setInterval(function(){var ti=new Date().getTime()-oti;if(ti>=c){for(var i=0;i<n;i++){upd(nodes[i],b);}clearInterval(a.getAttribute('fadestatus'));a.removeAttribute('fadestatus');d();return;}for(var i=0;i<n;i++){upd(nodes[i],op+(ti/c)*diff);}},10));
}


function resize(a,b,c,d,e){
//a is the node.
//b is the final width in px
//c is the final height in px
//[d] is the time that the animation should take,in milliseconds.
//[e] is the function to launch when the animation completed.
if(typeof(d)!='number')var d=400;
if(typeof(e)!='function')var e=function(){};
if(a.getAttribute('sizestatus')!=null){clearInterval(a.getAttribute('sizestatus'));a.removeAttribute('sizestatus');}
if(getStyle(a,'display')=='inline')a.style.display='inline-block';
var pwi=getWidth(a);
var phe=getHeight(a);
if(typeof(b)=='number'&&b!=pwi){
	var wi=b;
	var dwi=wi-pwi;
	a.style.minWidth='0px';
	a.style.width=pwi+'px';
}
else var wi=false;
if(typeof(c)=='number'&&c!=phe){
	var he=c;
	var dhe=he-phe;
	a.style.minHeight='0px';
	a.style.height=phe+'px';
}
else var he=false;
var end=function(){if(wi!==false){a.style.width=wi+'px';}if(he!==false){a.style.height=he+'px';}clearInterval(a.getAttribute('sizestatus'));a.removeAttribute('sizestatus');e();}
var oti=new Date().getTime();
if(wi!==false&&he!==false)a.setAttribute('sizestatus',setInterval(function(){var ti=new Date().getTime()-oti;if(ti>=d){end();return;}var p=ti/d;p=p*(1+(0.5*(1-p)));a.style.width=(pwi+(dwi*p)).toFixed(0)+'px';a.style.height=(phe+(dhe*p)).toFixed(0)+'px';},10));
else if(wi!==false)a.setAttribute('sizestatus',setInterval(function(){var ti=new Date().getTime()-oti;if(ti>=d){end();return;}var p=ti/d;p=p*(1+(0.5*(1-p)));a.style.width=(pwi+(dwi*p)).toFixed(0)+'px';},10));
else if(he!==false)a.setAttribute('sizestatus',setInterval(function(){var ti=new Date().getTime()-oti;if(ti>=d){end();return;}var p=ti/d;p=p*(1+(0.5*(1-p)));a.style.height=(phe+(dhe*p)).toFixed(0)+'px';},10));
else end();
}

function scrollToThis(a,b,c){
//a is the node
//[b] is the time that the animation should take,in milliseconds.
//[c] is the function to launch when the animation completed.
if(typeof(b)!='number')var b=400;
if(typeof(c)!='function')var c=function(){};
if(typeof(scrol)!='undefined')clearInterval(scrol);
var to=getTop(a)-50;
if(to<0)to=0;
var from=getPageYOffset();
var diff=to-from;
var oti=new Date().getTime();
if(diff>100||diff<-100)scrol=setInterval(function(){var ti=new Date().getTime()-oti;if(ti>=b){window.scroll(0,to);clearInterval(scrol);c();return;}var p=ti/b;p=p*(1+(0.5*(1-p)));window.scroll(0,Math.round(from+(diff*p)));},10);
else c();
}

function loadImage(a){var x=new Image();x.src=a;return x;}


function reloadImage(a,b){
var t=new Date().getTime();
var imgs=[];
var divs=[];
var no=a.getElementsByTagName('*');
if(a.nodeName=='IMG')imgs.push(a);
else if(a.style.backgroundImage!='')divs.push(a);
for(var n=no.length,i=0;i<n;i++){
	if(no[i].nodeType!=1)continue;
	if(no[i].nodeName=='IMG')imgs.push(no[i]);
	else if(no[i].style.backgroundImage!='')divs.push(no[i]);
}
for(var n=imgs.length,i=0;i<n;i++){
	var img=imgs[i];
	var c=img.src;
	if(c.indexOf('?')!==-1)c=c.substr(0,c.indexOf('?'));
	c=c+'?'+t;
	if(getStyle(img,'display')=='none'||getStyle(img,'visibility')=='hidden'||b===false)img.src=c;
	else fade(img,0,null,function(){img.src=c;imageReady(img,function(){fade(img,100);});});
}
for(var n=divs.length,i=0;i<n;i++){
	var div=divs[i];
	var c=div.style.backgroundImage;
	c=c.substr(0,c.length-1);
	if(c.indexOf('?')!==-1)c=c.substr(0,c.indexOf('?'));
	c=c+'?'+t+')';
	if(getStyle(a,'display')=='none'||getStyle(a,'visibility')=='hidden'||b===false)div.style.backgroundImage=c;
	else fade(div,0,null,function(){div.style.backgroundImage=c;fade(div,100);});
}
}


function imageReady(a,b){
if(a.nodeName=='IMG')var x=[a];
else var x=a.getElementsByTagName('IMG');
var n=x.length;
if(n==0){b();return;}
var oti=new Date().getTime();
if(x[0].readyState)var z=function(){for(var i=0;i<n;i++){if(x[i].readyState!='complete'){return false;}}};
else var z=function(){for(var i=0;i<n;i++){if(x[i].complete==false){return false;}}};
if(z()!==false){b();return;}
var k=setInterval(function(){if(z()===false&&new Date().getTime()-oti<10000){return;}b();clearInterval(k);},100);
}

function showImages(u){
var p=document.getElementsByTagName('IMG');
var imgs=[];
for(var n=p.length,i=0;i<n;i++){
	if(!p[i].parentNode||p[i].parentNode.nodeName!=='A'||!p[i].parentNode.href||p[i].parentNode.href.indexOf('javascript:showImages(')!==0)continue;
	imgs.push(p[i]);
}
var num=0;
var ims=[];
for(var n=imgs.length,i=0;i<n;i++){
	var ur=imgs[i].getAttribute('src');
	if(ur.indexOf(u)===0)var nu=num;
	ur=ur.replace('/image/','/image/full/');
	ims.push(create('DIV',{'style':'padding:30px 60px;'},[create('IMG',{'src':ur})]));
	num++;
}
overWindow('create',ims,nu);
}


function webmSupport(e){
var t=getEvent(e,'target');
var r=t.getElementsByTagName('DIV')[0];
t.parentNode.replaceChild(r,t);
}


function appear(a,b,c,d){
//a is the node
//b is the desired parentNode(or null if the node already have a parentNode)
//c is the desired nextSibling(or null to appendChild as lastChild)
//d is the function to execute after last animation
if(typeof(c)!='object')var c=null;
if(typeof(d)!='function')var d=function(){};
var pos=a.style.position;
a.style.position='absolute';
a.style.visibility='hidden';
b.insertBefore(a,c);
imageReady(a,function(){
	a.style.position=pos;
	var dis=a.style.display;
	if(getStyle(a,'display')=='inline')a.style.display='inline-block';
	var ph=getHeight(a);
	var pw=getWidth(a);
	var pa=[getStyle(a,'padding-top'),getStyle(a,'padding-right'),getStyle(a,'padding-bottom'),getStyle(a,'padding-left')];
	for(var i=0;i<4;i++){
		if(pa[i].indexOf('px')!==-1)pa[i]=parseInt(pa[i]);
		else pa[i]=0;
	}
	var ma=[getStyle(a,'margin-top'),getStyle(a,'margin-right'),getStyle(a,'margin-bottom'),getStyle(a,'margin-left')];
	for(var i=0;i<4;i++){
		if(ma[i].indexOf('px')!==-1)ma[i]=parseInt(ma[i]);
		else ma[i]=0;
	}
	var phe=a.style.height;
	var pwi=a.style.width;
	a.style.height='0px';
	a.style.width='0px';
	var pp=a.style.padding;
	var ppt=a.style.paddingTop;
	var ppr=a.style.paddingRight;
	var ppb=a.style.paddingBottom;
	var ppl=a.style.paddingLeft;
	var pm=a.style.margin;
	var pmt=a.style.marginTop;
	var pmr=a.style.marginRight;
	var pmb=a.style.marginBottom;
	var pml=a.style.marginLeft;
	a.style.padding='0px';
	a.style.margin='0px';
	a.style.display=dis;
	if(pa[0]!=0||pa[1]!=0||pa[2]!=0||pa[3]!=0||ma[0]!=0||ma[1]!=0||ma[2]!=0||ma[3]!=0){
		var oti=new Date().getTime();
		var k=setInterval(function(){
		var ti=(new Date().getTime()-oti)/400;
		if(ti>=1){ti=1;clearInterval(k);}
		a.style.paddingTop=(ti*pa[0]).toFixed(0)+'px';
		a.style.paddingRight=(ti*pa[1]).toFixed(0)+'px';
		a.style.paddingBottom=(ti*pa[2]).toFixed(0)+'px';
		a.style.paddingLeft=(ti*pa[3]).toFixed(0)+'px';
		a.style.marginTop=(ti*ma[0]).toFixed(0)+'px';
		a.style.marginRight=(ti*ma[1]).toFixed(0)+'px';
		a.style.marginBottom=(ti*ma[2]).toFixed(0)+'px';
		a.style.marginLeft=(ti*ma[3]).toFixed(0)+'px';
		},10);
	}
	resize(a,pw,ph,null,function(){
		a.style.height=phe;
		a.style.width=pwi;
		a.style.padding=pp;
		a.style.paddingTop=ppt;
		a.style.paddingRight=ppr;
		a.style.paddingBottom=ppb;
		a.style.paddingLeft=ppl;
		a.style.margin=pm;
		a.style.marginTop=pmt;
		a.style.marginRight=pmr;
		a.style.marginBottom=pmb;
		a.style.marginLeft=pml;
		fade(a,100,null,d);
	});
});
}


function disappear(a,b){
//a is the node
//b is the function to execute after last animation
if(typeof(b)!='function')var b=function(){};
var phe=a.style.height;
var pwi=a.style.width;
var pp=a.style.padding;
var ppt=a.style.paddingTop;
var ppr=a.style.paddingRight;
var ppb=a.style.paddingBottom;
var ppl=a.style.paddingLeft;
var pm=a.style.margin;
var pmt=a.style.marginTop;
var pmr=a.style.marginRight;
var pmb=a.style.marginBottom;
var pml=a.style.marginLeft;
var pa=[getStyle(a,'padding-top'),getStyle(a,'padding-right'),getStyle(a,'padding-bottom'),getStyle(a,'padding-left')];
for(var i=0;i<4;i++){
	if(pa[i].indexOf('px')!==-1)pa[i]=parseInt(pa[i]);
	else pa[i]=0;
}
var ma=[getStyle(a,'margin-top'),getStyle(a,'margin-right'),getStyle(a,'margin-bottom'),getStyle(a,'margin-left')];
for(var i=0;i<4;i++){
	if(ma[i].indexOf('px')!==-1)ma[i]=parseInt(ma[i]);
	else ma[i]=0;
}
fade(a,0,null,function(){
	if(pa[0]!=0||pa[1]!=0||pa[2]!=0||pa[3]!=0||ma[0]!=0||ma[1]!=0||ma[2]!=0||ma[3]!=0){
		var oti=new Date().getTime();
		var k=setInterval(function(){
		var ti=(new Date().getTime()-oti)/400;
		if(ti>=1){ti=1;clearInterval(k);}
		a.style.paddingTop=(pa[0]-(ti*pa[0])).toFixed(0)+'px';
		a.style.paddingRight=(pa[1]-(ti*pa[1])).toFixed(0)+'px';
		a.style.paddingBottom=(pa[2]-(ti*pa[2])).toFixed(0)+'px';
		a.style.paddingLeft=(pa[3]-(ti*pa[3])).toFixed(0)+'px';
		a.style.marginTop=(ma[0]-(ti*ma[0])).toFixed(0)+'px';
		a.style.marginRight=(ma[1]-(ti*ma[1])).toFixed(0)+'px';
		a.style.marginBottom=(ma[2]-(ti*ma[2])).toFixed(0)+'px';
		a.style.marginLeft=(ma[3]-(ti*ma[3])).toFixed(0)+'px';
		},10);
	}
	resize(a,0,0,null,function(){
	a.parentNode.removeChild(a);
	a.style.height=phe;
	a.style.width=pwi;
	a.style.padding=pp;
	a.style.paddingTop=ppt;
	a.style.paddingRight=ppr;
	a.style.paddingBottom=ppb;
	a.style.paddingLeft=ppl;
	a.style.margin=pm;
	a.style.marginTop=pmt;
	a.style.marginRight=pmr;
	a.style.marginBottom=pmb;
	a.style.marginLeft=pml;
	b();
});});
}


function replace(a,b,c){
//FIXME might need to take margin / paddings into account to be ok.
if(typeof(c)!='function')var c=function(){}
var ph=a.style.height;
var pw=a.style.width;
var vis=b.style.visibility;
b.style.visibility='hidden';
a.parentNode.insertBefore(b,a.nextSibling);
var he=getHeight(b);
var wi=getWidth(b);
b.parentNode.removeChild(b);
fade(a,0,null,function(){resize(a,wi,he,null,function(){a.parentNode.replaceChild(b,a);a.style.width=pw;a.style.height=ph;fade(b,100,null,c);});});
}


function pandore(e,ssl){
var t=getEvent(e,'target');
var n=0;
if(t.getAttribute('click'))var n=t.getAttribute('click');
n++;
t.setAttribute('click',n);
if(n<3)return;
t.setAttribute('click',0);
login(ssl);
}
function logout(){
AJAX('/base/login.php','action=logout',function(){window.location.reload();});
}
function login(ssl){
var submit=function(e){
	cancelEvent(e);
	submitLog();
}
var submitLog=function(){
	var nod=document.createElement('DIV');
	document.body.appendChild(nod);
	nod.innerHTML='<iframe style="display:none;" name="upload_login" id="upload_login"></iframe>';
	var iframe=nod.firstChild;
	ifr.firstChild.target='upload_login';
	addEvent(iframe,'load',function(){
		if(document.cookie.indexOf('admin=')!==-1){
			if(window.location.protocol.indexOf('https')===-1&&ssl==true){window.location.replace(window.location.href.replace('http://','https://'));return;}
			var s=document.getElementsByTagName('SCRIPT');
			for(var n=s.length,i=0;i<n;i++){
				if(s[i].src.indexOf('/base/js/admin.js')===-1)continue;
				setTimeout(function(){ifr.parentNode.removeChild(ifr);nod.parentNode.removeChild(nod);},2);
				if(!document.getElementById('wysiwyg'))fade(document.getElementById('adminBoard'),100);
				return;
			}
			window.location.reload();
		}
		else ifr.firstChild.lastChild.value='';
		setTimeout(function(){nod.parentNode.removeChild(nod);},1);
	});
	ifr.firstChild.submit();
}
var ifr;
var t=document.getElementById('pandore');
if(typeof(ssl)=='undefined')var ssl=false;
var p=(ssl===true)?'https://'+window.location.hostname:'';
ifr=create('DIV',{'style':'opacity:0.4;filter:alpha(opacity=40);position:absolute;top:'+getTop(t)+'px;left:'+getLeft(t)+'px;height:'+getHeight(t)+'px;width:'+getWidth(t)+'px;'});
ifr.innerHTML='<form method="POST" action="'+p+'/base/login.php"><input type="hidden" name="action" value="login"><input type="password" name="password" style="height:'+getHeight(t)+'px;width:'+getWidth(t)+'px;background-color:#ffffff;color:#000000;text-align:right;font-size:10px;border:solid #000000 1px;"></form>';
document.body.appendChild(ifr);
addEvent(ifr.firstChild,'submit',submit);
ifr.firstChild.lastChild.focus();
if(document.getElementById('adminBoard'))fade(document.getElementById('adminBoard'),0);
}


function overWindow(a,c,d){
//a can be create,replace,remove,updatecell,prevcell or nextcell.
//c create,replace,updatecell : innerHTML or Node to include in cell,or function that will return either of these. Single or in array.
//d updatecell : id of the cell to update. create,replace : position in cell array.
if(typeof(overWindows)=='undefined')overWindows=[];
if(typeof(overWwork)=='undefined')overWwork=[];
if(!document.getElementById('overW')){
	if(a=='replace')a='create';
	if(a=='create'){
		document.body.appendChild(create('DIV',{'id':'overWbackground'}));
		document.body.appendChild(create('DIV',{'id':'overWback'},[create('DIV',{'id':'overWtable'},[create('DIV',{'id':'overWcell'},[create('DIV',{'id':'overWboard'},[create('DIV',{'id':'overWfill'}),create('DIV',{'id':'overW'}),create('A',{'id':'overWprev','href':'javascript:overWindow(\'prevcell\');'}),create('A',{'id':'overWnext','href':'javascript:overWindow(\'nextcell\');'}),create('A',{'id':'overWX','href':'javascript:overWindow(\'remove\');'}),create('DIV',{'id':'overWwait'},[create('A',null,[document.createTextNode('•')]),create('A',null,[document.createTextNode('•')]),create('A',null,[document.createTextNode('•')])])])])])]));
		fade(document.getElementById('overWwait').childNodes[0],0,1);
		fade(document.getElementById('overWwait').childNodes[1],0,1);
		fade(document.getElementById('overWwait').childNodes[2],0,1);
		fade(document.getElementById('overWbackground'),60);
		var keynext=function(e){
			if(!document.getElementById('overW')){removeEvent(document,'keydown',keynext);return;}
			switch(getEvent(e,'key')){
				case 37:overWindow('prevcell');
				break;
				case 39:overWindow('nextcell');
				break;
				case 27:overWindow('remove');
				break;
			}
		}
		addEvent(document.getElementById('overWcell'),'click',function(e){if(getEvent(e,'target')==document.getElementById('overWcell')){overWindow('remove');}});
		addEvent(document,'keydown',keynext);
	}
	else return;
}

var overWwait=document.getElementById('overWwait');
var overWbackground=document.getElementById('overWbackground');
var overWback=document.getElementById('overWback');
var overWtable=document.getElementById('overWtable');
var overWcell=document.getElementById('overWcell');
var overW=document.getElementById('overW');
var overWX=document.getElementById('overWX');
var overWboard=document.getElementById('overWboard');
var overWprev=document.getElementById('overWprev');
var overWnext=document.getElementById('overWnext');
var overWfill=document.getElementById('overWfill');
document.body.appendChild(overWback);

var resume=function(n){
	if(typeof(n)!='undefined'&&overWwait.getAttribute('node')!==n)return;
	overWwait.setAttribute('stop','1');
	overWwait.style.display='none';
}
var wait=function(n){
	var towhite=function(a){
		if(a.parentNode.getAttribute('stop')=='1'){
			fade(overWwait.childNodes[0],0,1);
			fade(overWwait.childNodes[1],0,1);
			fade(overWwait.childNodes[2],0,1);
			return;
		}
		if(a.previousSibling)var o=a.previousSibling;
		else var o=a.parentNode.lastChild;
		fade(a,100,300,function(){fade(a,10,1000);});
		setTimeout(function(){if(a.nextSibling){towhite(a.nextSibling);}else{towhite(a.parentNode.firstChild);}},800);
	}
	overWwait.removeAttribute('stop');
	overWwait.setAttribute('node',n);
	setTimeout(function(){
		if(overWwait.getAttribute('stop')=='1')return;
		if(overWwait.style.display=='block')return;
		overWwait.style.display='block';
		towhite(overWwait.firstChild);
	},800);
}

var transition=function(a,b,c){
	var transit=function(){
		overWboard.style.height=he;
		switch(c){
		case 'none' :
			a.style.display='none';
		break;
		case 'hidden' :
			a.style.visibility='hidden';
		break;
		case 'remove' :
			a.parentNode.removeChild(a);
		break;
		default:
		}
		if(next.innerHTML==''){
			next.style.height=getHeight(overWboard)+'px';
			next.style.width=getWidth(overWboard)+'px';
			b.style.position='';
			b.style.top='';
			b.style.visibility='';
			overWboard.style.height='';
			overWEnd();
		}
		else resize(overWboard,getWidth(next),getHeight(next),null,function(){
			resume(next.id);
			b.style.position='';
			b.style.top='';
			fade(b,100);
			overWboard.style.height='';
			overWEnd();
		});
	}
	var next=b;
	if(next.parentNode==overW){for(var n=next.childNodes.length,i=0;i<n;i++){if(next.childNodes[i].style.display!='none'){next=next.childNodes[i];break;}}}
	var he=getHeight(overW)+'px';
	next.style.visibility='';
	b.style.position='fixed';
	b.style.visibility='hidden';
	b.style.top='0px';
	b.style.display='';
	a.style.height='';
	updateCtrl(next);
	if(a.innerHTML!='')fade(a,0,null,function(){imageReady(next,transit);});
	else imageReady(next,transit);
}
var updateCtrl=function(a){
	var z=a.id.substr(a.id.indexOf('-')+1);
	var x=a.parentNode.id.replace('overW','');
	if(z>0)fade(overWprev,100);
	if(z<overWindows[x].length-1)fade(overWnext,100);
	if(z==0)fade(overWprev,0,null,function(){overWprev.style.display='none';});
	if(z==overWindows[x].length-1)fade(overWnext,0,null,function(){overWnext.style.display='none';});
}
var setContent=function(a){
	var z=parseInt(a.id.substr(a.id.indexOf('-')+1));
	var x=a.parentNode.id.replace('overW','');
	for(var n=(z+1),i=z-1;i<=n;i++){
		if(i<a.parentNode.childNodes.length&&i>=0&&a.parentNode.childNodes[i].innerHTML==''){
			if(typeof(overWindows[x][i])=='function')overWindows[x][i]=overWindows[x][i]('overW'+x+'-'+i);
			if(typeof(overWindows[x][i])=='object' && overWindows[x][i].nodeName)a.parentNode.childNodes[i].appendChild(overWindows[x][i]);
			else if(typeof(overWindows[x][i])=='string')a.parentNode.childNodes[i].innerHTML=overWindows[x][i];
		}
	}
}
var overWEnd=function(){
	overWwork.shift();
	if(overWwork.length>0)overWwork[0]();
}
var proceed=function(a,c,d){
switch(a){
case 'replace' :
	var y='remove';
	var x=overWindows.length-1;
case 'create' :
	if(typeof(y)=='undefined')var y='none';
	if(typeof(x)=='undefined')var x=overWindows.length;
	var z=(typeof(d)=='number')?d:0;
	overWindows[x]=[];
	var newW=create('DIV',{'id':'overW'+x,'style':'position:fixed;visibility:hidden;'});
	if(typeof(c)!='object'||!c[0])c=[c];
	for(var n=c.length,i=0;i<n;i++){
		overWindows[x].push(c[i]);
		newW.appendChild(create('DIV',{'id':'overW'+x+'-'+i,'style':'display:none;'}));
	}
	overW.appendChild(newW);
	setContent(newW.childNodes[z]);
	wait(newW.childNodes[z].id);
	if(overW.childNodes.length!=1){
		newW.childNodes[z].style.display='';
		transition(overW.lastChild.previousSibling,overW.lastChild,y);
		return;
	}
	overWait=true;
	var inter=setInterval(function(){
		if(newW.childNodes[z].innerHTML=='')return;
		delete overWait;
		clearInterval(inter);
		imageReady(newW.childNodes[z],function(){
			resume(newW.childNodes[z].id);
			fade(overW,100);
			fade(overWfill,80);
			fade(overWX,100);
			newW.childNodes[z].style.display='';
			overWboard.style.width=getWidth(newW.childNodes[z])+'px';
			newW.style.position='';
			newW.style.visibility='';
			overWboard.style.height='';
			updateCtrl(newW.childNodes[z]);
			overWEnd();
		});
	},300);
break;
case 'remove' :
	delete overWindows[overWindows.length-1];
	if(overW.childNodes.length>1)transition(overW.lastChild,overW.lastChild.previousSibling,'remove');
	else{
		resume();
		fade(overWfill,0);
		fade(overW,0,null,function(){overWback.parentNode.removeChild(overWback);});
		fade(overWbackground,0,null,function(){overWbackground.parentNode.removeChild(overWbackground);});
		overWEnd();
		delete overWindows;
	}
break;
case 'nextcell' :
	for(var n=overW.lastChild.childNodes.length,i=0;i<n;i++){if(overW.lastChild.childNodes[i].style.display!='none'){var currcell=overW.lastChild.childNodes[i];break;}}
	if(!currcell.nextSibling){overWEnd();return;}
	wait(currcell.nextSibling.id);
	transition(currcell,currcell.nextSibling,'none');
	setContent(currcell.nextSibling);
break;
case 'prevcell' :
	for(var n=overW.lastChild.childNodes.length,i=0;i<n;i++){if(overW.lastChild.childNodes[i].style.display!='none'){var currcell=overW.lastChild.childNodes[i];break;}}
	if(!currcell.previousSibling){overWEnd();return;}
	wait(currcell.previousSibling.id);
	transition(currcell,currcell.previousSibling,'none');
	setContent(currcell.previousSibling);
break;
case 'updatecell' :
	var upnode=document.getElementById(d);
	var newnode=create('DIV',{'style':'display:none;','id':upnode.id});
	if(typeof(c)=='object')newnode.appendChild(c);
	else if(typeof(c)=='string')newnode.innerHTML=c;
	upnode.parentNode.insertBefore(newnode,upnode);
	if(upnode.style.display!='none')transition(upnode,newnode,'remove');
	else{upnode.parentNode.removeChild(upnode);overWEnd();}
break;
default :
}
}
if(typeof(c)=='undefined')var c=null;
if(typeof(d)=='undefined')var d=null;
if(typeof(overWait)!='undefined'&&a=='updatecell'){proceed(a,c,d);return;}
overWwork.push(function(){proceed(a,c,d);});
if(overWwork.length==1)proceed(a,c,d);
}


function denotify(a){
if(!document.getElementById('statusW'+a))return;
var statusWn=document.getElementById('statusW'+a);
statusWnn=statusWn.lastChild;
fade(statusWnn,0,null,function(){resize(statusWn,'',0,null,function(){statusWn.parentNode.removeChild(statusWn);});});//FIXME both animation at the same time, with correct overflow.
}


function notify(ttl,msg,img,delay){
if(typeof(delay)!='undefined'){
	if(typeof(delay)=='boolean')var delay=false;
	else var delay=parseInt(delay);
}
else var delay=8000;
if(typeof(img)=='undefined'||img==null)var img='/base/img/status_default.png';
if(document.getElementById('statusW'))var s=document.getElementById('statusW');
else var s=create('DIV',{'id':'statusW'});
var id=new Date().getTime();
var m=create('DIV');
var x=create('A',{'href':'javascript:void(0);'});
var w=create('DIV',null,[create('DIV',null,[document.createTextNode(ttl)]),m,create('IMG',{'src':img}),x]);
var n=create('DIV',{'id':'statusW'+id},[create('DIV'),w]);
if(typeof(msg)=='string')m.innerHTML=msg;
else m.appendChild(msg);
x.onclick=function(){denotify(id);};
w.onmouseover=function(){fade(x,100);};
w.onmouseout=function(){fade(x,0);};
s.appendChild(n);
document.body.appendChild(s);
fade(w,100);
fade(w.previousSibling,80);
if(delay!==false)setTimeout(function(){denotify(id);},delay);
return id;
}


function debug(a){
if(!document.getElementById('debug'))document.body.appendChild(create('DIV',{'id':'debug'}));
var t=document.getElementById('debug');
t.insertBefore(document.createElement('BR'),t.firstChild);
t.insertBefore(document.createElement('BR'),t.firstChild);
t.insertBefore(document.createTextNode(a),t.firstChild);
}

function registerMenuAnimation(i,f){
var load=function(){
	var t=document.getElementById(i);
	addEvent(t,'mouseover',hand);
	addEvent(t,'mouseout',hand);
	addEvent(t,'click',hand);
	removeEvent(window,'load',load);
}
var hand=function(e){
	var ty=getEvent(e,'type');
	var ta=getEvent(e,'target');
	if(ta.className=='menus')return;
	while(ta.nodeName!='LI')ta=ta.parentNode;
	switch(ty){
	case 'mouseover':var func=function(f,ta,ty){if(ta.getAttribute('animOut')!==null&&ta.getAttribute('animOut')!==''){ta.removeAttribute('animOut');return;}f(ta,ty);};
	break;
	case 'mouseout':var func=function(f,ta,ty){ta.setAttribute('animOut',setTimeout(function(){ta.removeAttribute('animOut');f(ta,ty);},200));};
	break;
	case 'click':if(f(ta,ty)===false){cancelEvent(e);}return;
	break;
	}
	if(ta.getAttribute('animOut')!==null&&ta.getAttribute('animOut')!=='')clearTimeout(ta.getAttribute('animOut'));
	func(f,ta,ty)
	while(ta.parentNode.className!='menus'){
		ta=ta.parentNode.parentNode;
		if(ta.getAttribute('animOut')!==null&&ta.getAttribute('animOut')!=='')clearTimeout(ta.getAttribute('animOut'));
		func(f,ta,ty);
	}
}
if(!document.body)addEvent(window,'load',load);
else load();
}

function commentGet(a,b){
AJAX('/base/comment.php','action=commentGet&ID='+encodeURIComponent(a)+'&owner='+encodeURIComponent(b),function(x){overWindow('create',x);});
}

function commentAdd(e){
	var t=getEvent(e,'target');
	cancelEvent(e);
	var tt=document.getElementById('commentname');
	var name=tt.value;
	if(name==''||name==tt.getAttribute('placeholder')||name.length>20){notify(getPolyglot('commentIncomplete'),getPolyglot('commentIncompleteDesc'));return;}
	var tt=document.getElementById('commentdata');
	var data=tt.value;
	if(data==''||data==tt.getAttribute('placeholder')||data.length>1000){notify(getPolyglot('commentIncomplete'),getPolyglot('commentIncompleteDesc'));return;}
	var tt=document.getElementById('commenticons');
	var icon=tt.getAttribute('select');
	if(icon==''||icon==null){
		var icons=tt.getElementsByTagName('IMG');
		if(icons.length>1){notify(getPolyglot('commentIncomplete'),getPolyglot('commentMissingIcon'));return;}
		icon=icons[0].id.split('_')[1];
	}
	var comm=t.parentNode.nextSibling;
	t=comm.id.split('_');
	var owner=t[1];
	var ID=t[2];
	var validate=function(e){
		var t=getEvent(e,'target');
		if(t.value.length!=5)return;
		var captcha=t.value;
		t.onkeyup=function(){};
		AJAX('/base/comment.php','action=commentAdd&owner='+owner+'&ID='+ID+'&name='+name+'&data='+encodeURIComponent(data)+'&icon='+icon+'&captcha='+encodeURIComponent(captcha),function(x){
			if(x=='captcha'){
				reloadImage(document.getElementById('captchaImage'));
				document.getElementById('captchaInput').value='';
				document.getElementById('captchaInput').focus();
				notify(getPolyglot('captchaWrong'),getPolyglot('captchaWrongDesc'));
				t.onkeyup=validate;
				return;
			}
			overWindow('remove');
			if(x=='max'){
				notify(getPolyglot('maxComment'),getPolyglot('maxCommentDesc'));
				return;
			}
			var pad=function(a){
				while(a.length>2)a='0'+a;
				return a;
			}
			var nod=create('DIV',{'id':'comment_'+owner+'_'+ID+'_'+x},[create('DIV',null,[document.createTextNode(name)]),create('DIV',{'style':'cursor:pointer;'},[document.createTextNode('Effacer')]),create('DIV',null,[document.createTextNode(data)]),create('IMG',{'src':'/res/base/comment/'+icon+'.png'})]);
			addEvent(nod.childNodes[1],'click',commentDelete);
			setTimeout(function(){if(nod.childNodes[1].parentNode){disappear(nod.childNodes[1]);}},900000);
			appear(nod,comm,comm.firstChild);
			var as=document.getElementsByTagName('A');
			for(var n=as.length,i=0;i<n;i++){
				if(as[i].href='javascript:commentGet(\''+ID+'\',\''+owner+'\');'){
					var c=as[i].innerHTML;
					var b=parseInt(c.substr(0,c.indexOf(' ')))+1;
					var e=c.substr(c.indexOf(' ')+1);
					as[i].innerHTML=b+' '+e;
					break;
				}
			}
			
		});
	}
	var ov=create('DIV',{'id':'captchaWindow'});
	ov.innerHTML=getPolyglot('captchaPlease')+'<img id="captchaImage" src="/base/captcha.php?'+new Date().getTime()+'"><input id="captchaInput">';
	addEvent(ov.lastChild,'keyup',validate);
	overWindow('create',ov);
	imageReady(ov,function(){setTimeout(function(){document.getElementById('captchaInput').focus();},800);});
	
}

function commentDelete(e){
	var t=getEvent(e,'target');
	removeEvent(t,'click',commentDelete);
	t=t.parentNode;
	var tt=t.id.split('_');
	var owner=tt[1];
	var ID=tt[2];
	var time=tt[3];
	AJAX('/base/comment.php','action=commentDelete&owner='+owner+'&ID='+ID+'&timestamp='+time,function(){disappear(t);});
}

function commentSelectIcon(e){
	var ta=getEvent(e,'target');
	if(ta.nodeName!='IMG')return;
	var pa=ta.parentNode;
	for(var i=0,n=pa.childNodes.length;i<n;i++)fade(pa.childNodes[i],40);
	pa.setAttribute('select',ta.id.split('_')[1]);
	fade(ta,100);
}

function maxChar(e){
	if(getEvent(e,'type')=='propertychange'&&e.propertyName!='value')return;
	var t=getEvent(e,'target');
	if(t.value.length>1000)t.value=t.value.substr(0,1000);
	if(t.value.length==1000)cancelEvent(e);
}

function placeHolder(e){
var ta=getEvent(e,'target');
switch(getEvent(e,'type')){
case 'blur':
	if(ta.value=='')ta.value=ta.getAttribute('placeholder');
break;
case 'focus':
	if(ta.value==ta.getAttribute('placeholder'))ta.value='';
break;
}
}


//FIXME should disappear
function grolo(){
var g;
this.gh=function(){
	if(g==='undefined')alert('g');
}
}
var f=new grolo();
f.gh();

