




function issm(ele) {
	if(!isobject(ele)) return false;
	else if(!isdefined(ele.eletype)) return false;
	else if(ele.eletype==51) return true;
	return false;
}

function newsm(id) {
	id='m'+id;
	var ele=newvele(id+'c'); if(!ele) return false; 
	if(ele.eletype==51) return ele;
	ele.eletype=51;

	ele.smid=id;
	ele.mdelaysm=0;
	ele.smsdsm=0;
	ele.smvisible=new Object(); ele.smdir=new Object();
	ele.smx=new Object(); ele.smxdefault='at';
	ele.smy=new Object(); ele.smydefault=0;
	ele.fadesm=new Object(); ele.fadedefaultsm=1; ele.smisfading=new Object();
	ele.movedirsm=new Object(); ele.movedirdefaultsm='0'; ele.smismoving=new Object();
	ele.iidsm=new Object();
	ele.holdsmflag=new Object();
	ele.smmc=new Object();
	ele.smmt=new Object();
	var divs=ele.getelebytag('div');
	for(var c1=0;c1<divs.length;c1++){ var divid=divs[c1].id; if(divid.substr(0,ele.smid.length)==ele.smid){
		if(divid.substr(divid.length-1,1)=='t') ele.smmt[divid.replace('t','')]=newvele(divs[c1]);
		else{
			ele.smvisible[divid]=0; ele.smdir[divid]=0;
			ele.smx[divid]=ele.smxdefault; ele.smy[divid]=ele.smydefault;
			ele.fadesm[divid]=ele.fadedefaultsm; ele.smisfading[divid]=0;
			ele.movedirsm[divid]=ele.movedirdefaultsm; ele.smismoving[divid]=0;
			ele.iidsm[divid]=-1;
			ele.holdsmflag[divid]=0;
			ele.smmc[divid]=newvele(divs[c1]); ele.smmc[divid].hide();
		}
	}}
	ele.smm=new Object();
	var tables=ele.getelebytag('table');
	for(var c1=0;c1<tables.length;c1++){ var tableid=tables[c1].id; if(tableid.substr(0,ele.smid.length)==ele.smid){
		if(tableid.substr(tableid.length-2,2)=='tb') ele.smm[tableid.replace('tb','')]=newtbele(tables[c1]);
	}}
	ele.smi=new Object();
	ele.smibg=new Object();
	ele.smiclass=new Object();
	ele.smihtml=new Object();
	var tds=ele.getelebytag('td');
	for(var c1=0;c1<tds.length;c1++){ var tdid=tds[c1].id; if(tdid.substr(0,ele.smid.length)==ele.smid){	
		ele.smi[tdid]=newvele(tds[c1]);
		ele.smibg[tdid]=ele.smi[tdid].getatt('background');
		ele.smiclass[tdid]=ele.smi[tdid].getclass();
		ele.smihtml[tdid]=ele.smi[tdid].gethtml();
	}}
	
	ele.eleon=newvele(id+'con'); if(!ele.eleon) return false;
	ele.eleon.smmc=new Object();
	ele.eleon.smmt=new Object();
	ele.eleon.smm=new Object();
	divs=ele.eleon.getelebytag('div');
	for(var c1=0;c1<divs.length;c1++){ var divid=divs[c1].id; if(divid.substr(0,ele.smid.length)==ele.smid){
		if(divid.substr(divid.length-3,1)=='t') ele.eleon.smmt[divid.replace('t','')]=newvele(divs[c1]);
		else ele.eleon.smmc[divid]=newvele(divs[c1]);
	}}
	tables=ele.eleon.getelebytag('table');
	for(var c1=0;c1<tables.length;c1++){ var tableid=tables[c1].id; if(tableid.substr(0,ele.smid.length)==ele.smid){
		if(tableid.substr(tableid.length-4,2)=='tb') ele.eleon.smm[tableid.replace('tb','')]=newtbele(tables[c1]);
	}}
	ele.eleon.smi=new Object();
	ele.eleon.smibg=new Object();
	ele.eleon.smiclass=new Object();
	ele.eleon.smihtml=new Object();
	tds=ele.eleon.getelebytag('td');
	for(var c1=0;c1<tds.length;c1++){ var tdid=tds[c1].id; if(tdid.substr(0,ele.smid.length)==ele.smid){
		ele.eleon.smi[tdid]=newvele(tds[c1]);
		ele.eleon.smibg[tdid]=ele.eleon.smi[tdid].getatt('background');
		ele.eleon.smiclass[tdid]=ele.eleon.smi[tdid].getclass();
		ele.eleon.smihtml[tdid]=ele.eleon.smi[tdid].gethtml();
	}}
	
	for(var k in ele.smi){
		eval("ele.smi['"+k+"'].addevent('mouseover',function(){ele.smhold('"+k+"');});");
		eval("ele.smi['"+k+"'].addevent('mousemove',function(){ele.smhold('"+k+"');});");
		if(k.substr(k.length-1,1)=='p'){
			eval("ele.smi['"+k+"'].addevent('mouseover',function(){ele.smshow('"+k+"');});");
			eval("ele.smi['"+k+"'].addevent('mousemove',function(){ele.smshow('"+k+"');});");
		}
		eval("ele.smi['"+k+"'].addevent('mouseover',function(){ele.smimover('"+k+"');});");
		eval("ele.smi['"+k+"'].addevent('mouseout',function(){ele.smimout('"+k+"');});");
		eval("ele.smi['"+k+"'].addevent('mouseout',function(){ele.smfree('"+k+"');});");
	}
	
	ele.smsettrigger=smsettrigger;
	ele.smshow=smshow;
	ele.smhide=smhide;
	ele.smhold=smhold;
	ele.smfree=smfree;
	ele.smimover=smimover;
	ele.smimout=smimout;
	ele.smgetparentid=smgetparentid;
	ele.smgetparentiid=smgetparentiid;
	
	return ele;
}

function smsettrigger(x,y,fade,movedir,mdelay,sd,baseele) {
	var ele=this; if(!baseele) return;
	ele.smx[ele.smid]=x;
	ele.smy[ele.smid]=y;
	ele.movedirsm[ele.smid]=movedir;
	ele.fadesm[ele.smid]=fade;
	ele.smsdsm=sd;
	if(mdelay=='at') { ele.mdelaysm=400; if(isie())ele.mdelaysm=200; }
	else ele.mdelaysm=mdelay;
	eleaddevent("mouseover",function(){this.style.cursor='pointer';},baseele);
	eleaddevent("mouseover",function(){ele.smshow(baseele);},baseele);
	eleaddevent("mousemove",function(){ele.smshow(baseele);},baseele);
	eleaddevent("mousemove",function(){ele.smhold(ele.smid+'i0');},baseele);
	eleaddevent("mouseout",function(){ele.smfree(ele.smid+'i0');},baseele);
}

function smshow(iid) {
	var ele=this; var mcid=0;
	if(isobject(iid)) mcid=ele.smid; else if(iid.substr(0,2)!=ele.smid) mcid=ele.smid; else mcid=iid.replace('p','').replace('i','m');
	var sm=ele.smmc[mcid]; var smt=ele.smmt[mcid]; var smi=0;
	if(isobject(iid)) smi=newvele(iid); else if(iid.substr(0,2)!=ele.smid) smi=newvele(iid); else smi=ele.smi[iid];
	if(ele.smvisible[mcid]) return;
	//if(sm.isvisible(1)) return;
	sm.style.position='absolute'; sm.style.zIndex='1000'; sm.style.display='block';
	var x=ele.smx[mcid]; var y=ele.smy[mcid];
	if(x=='at') x=smi.getabsx()+smi.getw();
	else if(x=='-at') x=smi.getabsx()-sm.getw();
	else x+=smi.getabsx();
	if(y=='at') y=smi.getabsy()+smi.geth();
	else if(y=='-at') y=smi.getabsy()-sm.geth();
	else y+=smi.getabsy();
	if(ele.smsdsm) {
		x-=4; y-=4;
		if(isie()) if(isie()==6||ele.fadesm[mcid]) fixiepng(false,mcid);
	}
	sm.setx(x); sm.sety(y);
	sm.style.visibility='visible';
	smt.style.position='relative';
	smt.setx(0); smt.sety(0);
	smi.style.cursor='pointer';
	ele.smvisible[mcid]=1; ele.smdir[mcid]='i';
	if(ele.fadesm[mcid]) ele.smisfading[mcid]=1;
	if(ele.movedirsm[mcid]) ele.smismoving[mcid]=1;
	if(ele.fadesm[mcid]){ sm.fade(1,3,'at','at',0,100,function(){ele.smdir[mcid]=0;ele.smisfading[mcid]=0;}); }
	var fromw=0; var tow=0; var fromh=0; var toh=0;
	if(ele.movedirsm[mcid]=='mr'){
		fromw=0; tow=smt.getw(); fromh=smt.geth(); toh=smt.geth();
		smt.resize(1,3,   Math.abs(tow-fromw)*30/100,0.23,fromw,tow,   0,0,fromh,toh,   function(){ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	}else if(ele.movedirsm[mcid]=='md'){
		fromw=smt.getw(); tow=smt.getw(); fromh=0; toh=smt.geth();
		smt.resize(1,3,   0,0,fromw,tow,   Math.abs(toh-fromh)*30/100,0.23,fromh,toh,   function(){ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	}else if(ele.movedirsm[mcid]=='mrd'||ele.movedirsm[mcid]=='mdr'){
		fromw=0; tow=smt.getw(); fromh=0; toh=smt.geth();
		smt.resize(1,3,   Math.abs(tow-fromw)*30/100,0.23,fromw,tow,   Math.abs(toh-fromh)*30/100,0.23,fromh,toh,   function(){ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	}else if(ele.movedirsm[mcid]=='m1'){
		fromw=2; tow=smt.getw(); fromh=2; toh=smt.geth();
		smt.seta(60);
		smt.resize(1,3,   Math.abs(tow-fromw)*30/100,0.23,fromw,tow,   0,0,fromh,fromh,   function(){
			smt.resize(1,3,   0,0,tow,tow,   Math.abs(toh-fromh)*30/100,0.23,fromh,toh,   function(){smt.seta(100);ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
		});
	}else if(ele.movedirsm[mcid]=='u') smt.move(1,3,   0,0,0,0,   smt.geth()*30/100,0.23,smt.geth(),0,   function(){ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	else if(ele.movedirsm[mcid]=='d') smt.move(1,3,   0,0,0,0,   smt.geth()*30/100,0.23,smt.geth()*-1,0,   function(){ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	else if(ele.movedirsm[mcid]=='l') smt.move(1,3,   smt.getw()*30/100,0.23,smt.getw(),0,   0,0,0,0,   function(){ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	else if(ele.movedirsm[mcid]=='r') smt.move(1,3,   smt.getw()*30/100,0.23,smt.getw()*-1,0,   0,0,0,0,   function(){ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	ele.holdsmflag[mcid]=1;
	if(ele.iidsm[mcid]!=-1){ window.clearInterval(ele.iidsm[mcid]); ele.iidsm[mcid]=-1; }
	eval("ele.iidsm['"+mcid+"']=window.setInterval(function(){ele.smhide('"+mcid+"');},ele.mdelaysm);");
}
function smhide(mcid) {
	var ele=this; var sm=ele.smmc[mcid]; var smt=ele.smmt[mcid];
	if(ele.holdsmflag[mcid]) return;
	if(!ele.smvisible[mcid]||((ele.smisfading[mcid]||ele.smismoving[mcid])&&ele.smdir[mcid]=='o')) return;
	ele.smdir[mcid]='o';
	if(ele.fadesm[mcid]) ele.smisfading[mcid]=1;
	if(ele.movedirsm[mcid]) ele.smismoving[mcid]=1;
	if(!ele.fadesm[mcid]&&!ele.movedirsm[mcid]){ sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0; }
	if(ele.fadesm[mcid]) sm.fade(1,2,'at','at',100,0,function(){sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smisfading[mcid]=0;});
	var fromw=0; var tow=0; var fromh=0; var toh=0;
	if(ele.movedirsm[mcid]=='mr'){
		fromw=smt.getw(); tow=0; fromh=smt.geth(); toh=smt.geth();
		smt.resize(1,3,   Math.abs(tow-fromw)*30/100,0.23,fromw,tow,   0,0,fromh,toh,   function(){smt.setw('auto');smt.seth('auto');sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	}else if(ele.movedirsm[mcid]=='md'){
		fromw=smt.getw(); tow=smt.getw(); fromh=smt.geth(); toh=0;
		smt.resize(1,3,   0,0,fromw,tow,   Math.abs(toh-fromh)*30/100,0.23,fromh,toh,   function(){smt.setw('auto');smt.seth('auto');sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	}else if(ele.movedirsm[mcid]=='mrd'||ele.movedirsm[mcid]=='mdr'){
		fromw=smt.getw(); tow=0; fromh=smt.geth(); toh=0;
		smt.resize(1,3,   Math.abs(tow-fromw)*30/100,0.23,fromw,tow,   Math.abs(toh-fromh)*30/100,0.23,fromh,toh,   function(){smt.setw('auto');smt.seth('auto');sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	}else if(ele.movedirsm[mcid]=='m1'){
		fromw=smt.getw(); tow=2; fromh=smt.geth(); toh=2;
		smt.seta(60);
		smt.resize(1,3,   0,0,fromw,fromw,   Math.abs(toh-fromh)*30/100,0.23,fromh,toh,   function(){
			smt.resize(1,3,   Math.abs(tow-fromw)*30/100,0.23,fromw,tow,   0,0,toh,toh,   function(){smt.seta(100);smt.setw('auto');smt.seth('auto');sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
		});
	}else if(ele.movedirsm[mcid]=='u') smt.move(1,3,   0,0,0,0,   smt.geth()*30/100,0.23,0,smt.geth(),   function(){sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	else if(ele.movedirsm[mcid]=='d') smt.move(1,3,   0,0,0,0,   smt.geth()*30/100,0.23,0,smt.geth()*-1,   function(){sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	else if(ele.movedirsm[mcid]=='l') smt.move(1,3,   smt.getw()*30/100,0.23,0,smt.getw(),   0,0,0,0,   function(){sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	else if(ele.movedirsm[mcid]=='r') smt.move(1,3,   smt.getw()*30/100,0.23,0,smt.getw()*-1,   0,0,0,0,   function(){sm.hide();ele.smvisible[mcid]=0;ele.smdir[mcid]=0;ele.smismoving[mcid]=0;});
	window.clearInterval(ele.iidsm[mcid]); ele.iidsm[mcid]=-1;
}

function smhold(iid) {
	var mcid=iid.replace('p','').replace('i','m');
	var ele=this;
	while(mcid.lastIndexOf('m')!=-1) {
		ele.holdsmflag[mcid]=1;
		mcid=mcid.substr(0,mcid.lastIndexOf('m'));
	}
}
function smfree(iid) {
	var mcid=iid.replace('p','').replace('i','m');
	var ele=this;
	while(mcid.lastIndexOf('m')!=-1) {
		ele.holdsmflag[mcid]=0;
		mcid=mcid.substr(0,mcid.lastIndexOf('m'));
	}
}

function smimover(iid) {
	var ele=this;
	ele.smi[iid].style.cursor='pointer';
	ele.smi[iid].setclass(ele.eleon.smiclass[iid+'on']);
	ele.smi[iid].setatt('background',ele.eleon.smibg[iid+'on']);
	ele.smi[iid].sethtml(ele.eleon.smihtml[iid+'on']);
}
function smimout(iid) {
	var ele=this;
	ele.smi[iid].setclass(ele.smiclass[iid]);
	ele.smi[iid].setatt('background',ele.smibg[iid]);
	ele.smi[iid].sethtml(ele.smihtml[iid]);
}

function smgetparentid(thisid) {
	return thisid.substr(0,thisid.lastIndexOf('m'));
}
function smgetparentiid(thisid) {
	var ele=this;
	var psmid=ele.getparentid(thisid);
	var lastno=thisid.lastIndexOf('m')+1;
	return psmid+'i'+thisid.substr(lastno,thisid.length-lastno);
}





