﻿
function CreateObSilde(ob,group,config)
{
    this.ob = ob;
    this.group = group;
    this.config = config;// tt,fnChangeTT,bd,kt,kc,tg,type                 tt: text bg opa vtr area   type:0 ttdeu type:1 tt heso
    this.timer;
    this.fntt;
    
    this.Event;
    
    // them 1 cai dem so lan trong config bao nhieu lan thi tat, them cac su kien va cac tham so cua su kien
    this.timerCount;
    
    this.khoidau;
    
    
    this.getNewTT = function(tt,kd,kt,kc,type)
    {
            
            var chieuHT = (tt<kt)?1:-1;
            var chieu = (kd<kt)?1:-1;
            if(chieuHT!=chieu)
            {    
//                if(!(tt<kt*chieu&&this.config.boom!=false))
                kd = tt;
                kc = parseInt(Math.sqrt(kc));
                //alert(1);
            }
//            if(tt<kt*chieu&&this.config.boom!=false)
//            {    tt = tt+chieu;}
//            else
//            {    
                if(type==0)
                    tt = tt+ chieuHT*kc;
                else
                    if(type==1)
                    {    
                        var hs = parseInt(Math.abs(kt-tt)/kc);
                        tt = tt + chieuHT*((hs==0)?1:hs);
                    }
//             }   
               
            return [parseInt(tt),kd,kc];    
    }
    this.chageVtr = function()
    {
        var xy = YAHOO.util.Dom.getXY(this.ob);
        //alert(xy[0]+' '+this.config.kt[0]);
        if(xy[0]==this.config.kt[0] && xy[1]==this.config.kt[1] )
        {  return false;}
        else
        {
            if(this.config.kc[0]!=0&&xy[0]!=this.config.kt[0])
            {
                var newX = this.getNewTT(xy[0],this.khoidau[0],this.config.kt[0],this.config.kc[0],this.config.type);
                xy[0] = newX[0];
                this.khoidau[0] = newX[1];
                this.config.kc[0] = newX[2];
            }
            if(this.config.kc[1]!=0&&xy[1]!=this.config.kt[1])
            {
                
                var newY = this.getNewTT(xy[1],this.khoidau[1],this.config.kt[1],this.config.kc[1],this.config.type);
               // alert(newY);
                xy[1] = newY[0];
                this.khoidau[1] = newY[1];
                this.config.kc[1] = newY[2];
            }
           // alert(xy);
            YAHOO.util.Dom.setXY(this.ob,[xy[0],xy[1]]);
            return true;
         }

    }
    this.chageArea = function()
    {
        var area = YAHOO.util.Dom.getArea(this.ob);
        if(area[0]==this.config.kt[0]&&area[1]==this.config.kt[1])
            return false;
        else
        {
            if(this.config.kc[0]!=0&&area[0]!=this.config.kt[0])
            {
                var newX = this.getNewTT(area[0],this.khoidau[0],this.config.kt[0],this.config.kc[0],this.config.type);
                area[0] = newX[0];
                this.khoidau[0] = newX[1];
                this.config.kc[0] = newX[2];
            }
            if(this.config.kc[1]!=0&&area[1]!=this.config.kt[1])
            {
                
                var newY = this.getNewTT(area[1],this.khoidau[1],this.config.kt[1],this.config.kc[1],this.config.type);
               // alert(newY);
                area[1] = newY[0];
                this.khoidau[1] = newY[1];
                this.config.kc[1] = newY[2];
            }
           // alert(xy);
            YAHOO.util.Dom.setArea(this.ob,[area[0]+'px',area[1]+'px']);
            return true;
         }

    }
    this.chageTextColor = function()
    {
        return this.chageColor('color');
    }
    this.chageBGColor = function()
    {
        return this.chageColor('background-color');
    }
    this.chageColor = function(tt)
    {
        var bg =  FNMain.colorhex2dec(YAHOO.util.Dom.getStyle(this.ob,tt));
        //alert(bg.r+' '+bg.g+' '+bg.b);
        var kc = [this.config.kc.r,this.config.kc.g,this.config.kc.b];
        var kd = [this.khoidau.r,this.khoidau.g,this.khoidau.b];
        var bgar =[bg.r,bg.g,bg.b];
        if(bg.r == this.config.kt.r && bg.g==this.config.kt.g && bg.b==this.config.kt.b )//&& bg.g==this.config.kt.g && bg.b==this.config.kt.b)
            return false;
        else
        {
            if(this.config.kc.r!=0 && bg.r!=this.config.kt.r)
            {
                var r = this.getNewTT(bgar[0],kd[0],this.config.kt.r,kc[0],this.config.type);
                bg.r = r[0];
                this.khoidau.r = r[1];
                this.config.kc.r = r[2];
                if(bg.r<0)
                    bg.r =0;
                if(bg.r>255)
                    bg.r =255;
            }
            
            if(this.config.kc.g!=0 && bg.g!=this.config.kt.g)
            {
                var g = this.getNewTT(bgar[1],kd[1],this.config.kt.g,kc[1],this.config.type);
                bg.g = g[0];
                this.khoidau.g = g[1];
                this.config.kc.g = g[2];
                if(bg.g<0)
                    bg.g =0;
                if(bg.g>255)
                    bg.g =255;
            }
            if(this.config.kc.b!=0 && bg.b!=this.config.kt.b)
            {
                var b = this.getNewTT(bgar[2],kd[2],this.config.kt.b,kc[2],this.config.type);
                bg.b = b[0];
                this.khoidau.b = b[1];
                this.config.kc.b = b[2];
                if(bg.b<0)
                    bg.b =0;
                if(bg.b>255)
                    bg.b =255;
            }

            
            YAHOO.util.Dom.setStyle(this.ob,tt
                    , FNMain.RGB2HTML( bg.r, bg.g, bg.b) ); 
            return true;
         }
    }
    this.chageOpa = function()
    {
        var opa = YAHOO.util.Dom.getOpacity(this.ob);
        if(opa==this.config.kt)
            return false;
        else
        {
            var newOpa = this.getNewTT(opa,this.khoidau,this.config.kt,this.config.kc,this.config.type);
            opa = newOpa[0];
            this.khoidau = newOpa[1];
            this.config.kc = newOpa[2];
            if(opa>100)
               opa=100;
            if(opa<0)
               opa=0;
            YAHOO.util.Dom.setOpacity(this.ob,opa);
            return true;
        }    
    }
    this.run = function(group)
    {
        var obSilde = mySilde.getObofGroup(group);
        if(obSilde!=null)
        {
            var kqss =obSilde.fntt();
            if(!kqss||this.timerCount==0)
            {     
                mySilde.removeOb(obSilde.group);
            }
            else
            {
                
                if(obSilde.Event!=null&&obSilde.Event.runSilde!=null)
                    obSilde.Event.runSilde.ev(obSilde.ob,obSilde.group,obSilde.Event.runSilde.ts);   
                    
                obSilde.timer = setTimeout(function(obSilde){return function() {
                        obSilde.run(obSilde.group);
                }}(obSilde),obSilde.config.tg); 
                if(this.timerCount!=null)
                    this.timerCount--;
                    
            }
            
        }
    }
    this.slide = function()
    {
        if(this.config.Event!=null)
            this.Event = this.config.Event;
            
        if(this.config.timerCount!=null)
            this.timerCount = this.config.timerCount;
        if(this.config.fnChangeTT !=null)
            this.fntt = this.config.fnChangeTT;
        else
        {    
            if(this.config.tt==null||this.config.tt=='vtr')
            {    
                this.config.kt[0] = parseInt(this.config.kt[0]);
                this.config.kt[1] = parseInt(this.config.kt[1]);
                this.fntt = this.chageVtr;
                if(this.config.bd!=null)
                {
                    if(this.config.bd[0]!=null)
                        YAHOO.util.Dom.setX(this.ob,this.config.bd[0]);
                    if(this.config.bd[1]!=null)
                        YAHOO.util.Dom.setY(this.ob,this.config.bd[1]);
                    this.khoidau = YAHOO.util.Dom.getXY(this.ob);    
                }
            }
            else
            if(this.config.tt=='area')
            {    
                this.fntt = this.chageArea;
                if(this.config.bd!=null)
                {
                    if(this.config.bd[0]!=null)
                        YAHOO.util.Dom.setWidth(this.ob,this.config.bd[0]+'px');
                    if(this.config.bd[1]!=null)
                        YAHOO.util.Dom.setHeight(this.ob,this.config.bd[1]+'px');
                    this.khoidau =  YAHOO.util.Dom.getArea(this.ob);    
                }
            }
            else    
            if(this.config.tt=='opa')
            {    
                this.fntt = this.chageOpa;    
                if(this.config.bd!=null)
                    YAHOO.util.Dom.setOpacity(this.ob,this.config.bd);
                this.khoidau = YAHOO.util.Dom.getOpacity(this.ob);        
            }
            else    
            if(this.config.tt=='bg')
            {    
                this.fntt = this.chageBGColor;
                if(this.config.bd!=null)
                {    
                    YAHOO.util.Dom.setStyle(this.ob,'background-color'
                    , FNMain.RGB2HTML(this.config.bd.r, this.config.bd.g, this.config.bd.b) ); 
                }
                this.khoidau = FNMain.colorhex2dec(YAHOO.util.Dom.getStyle(this.ob,'background-color'));      
            }
            else    
            if(this.config.tt=='text')
            {    
                this.fntt = this.chageTextColor;
                if(this.config.bd!=null)
                    YAHOO.util.Dom.setStyle(this.ob,'color', 
                    FNMain.RGB2HTML(this.config.bd.r, this.config.bd.g, this.config.bd.b) );  
                 this.khoidau = FNMain.colorhex2dec(YAHOO.util.Dom.getStyle(this.ob,'color'));    
            }
        } 
        if(this.config.chung==false)
        {
            if(this.timer==null)
                this.run(this.group);
            var newRun = new Array()
            for(var j=0;j<mySilde.obsrun.length;j++)
                if(mySilde.obsrun[j].group!=this.group)newRun.push(mySilde.obsrun[j]);
            mySilde.obsrun =   newRun;      
        } 
        else  
            mySilde.runObs(this);
//        if(this.timer==null)
//            this.run(this.group);
    }
}
function CreateSlide()
{
    this.obs = new Array();
    this.obsrun = new Array();
    this.timer;
    this.runObs = function(obSilde)
    {
        var have = false;
        for(var i=0;i<this.obsrun.length;i++)
            if(this.obsrun[i].group==obSilde.group)
            {   have = true;break;}
        if(!have)       
            this.obsrun.push(obSilde);
        if( this.timer==null)
            this.run();  
    }
    this.run = function()
    {
        for(var i=0;i<mySilde.obsrun.length;i++)
        {
            var obSilde = mySilde.obsrun[i];
            if(obSilde.fntt()&&(obSilde.timerCount==null||obSilde.timerCount!=0))
            {
                if(obSilde.timerCount!=null)
                    obSilde.timerCount--;
                if(obSilde.Event!=null&&obSilde.Event.runSilde!=null)
                    obSilde.Event.runSilde.ev(obSilde.ob,obSilde.group,obSilde.Event.runSilde.ts);    
            } 
            else
            {     
//                if(obSilde.Event!=null&&obSilde.Event.endSilde!=null)
//                    obSilde.Event.endSilde.ev(obSilde.ob,obSilde.group,obSilde.Event.endSilde.ts);
                var newRun = new Array()
                for(var j=0;j<mySilde.obsrun.length;j++)
                    if(mySilde.obsrun[j].group!=obSilde.group)newRun.push(mySilde.obsrun[j]);
                  
                mySilde.obsrun =   newRun;  
                mySilde.removeOb(obSilde.group);
                if(obSilde.Event!=null&&obSilde.Event.endSilde!=null)
                                obSilde.Event.endSilde.ev(obSilde.ob,obSilde.group,obSilde.config.Event.endSilde.ts);
                //alert(mySilde.obsrun.length);
            }
        }
        if(mySilde.obsrun.length>0)
           mySilde.timer = setTimeout(mySilde.run,20);
        else
        {    clearTimeout(mySilde.timer);mySilde.timer=null;}
    }
    this.slide = function(ob,group,config)
    {
        this.removeOb(group);
        obsl = new CreateObSilde(ob,group,config);
        this.obs.push(obsl);
        obsl.slide();
    }
    this.getOb = function(ob)
    {
        for(var i=0;i<this.obs.length;i++)
        {    
            var slide = this.obs[i];
            if(this.obs[i].ob == ob)
                return this.obs[i];
        }
        return null;        
    }
    this.removeOb = function(group)
    {
        var obs = new Array();
        for(var i=0;i<this.obs.length;i++)
        {    
            var slide = this.obs[i];
            if(this.obs[i].group != group)
                obs.push(this.obs[i]);
            else
                if(this.obs[i]!=null)
                {
                    clearTimeout(this.obs[i].timer);
                    var newRun = new Array()
                    for(var j=0;j<mySilde.obsrun.length;j++)
                        if(mySilde.obsrun[j].group!=this.obs[i].group)newRun.push(mySilde.obsrun[j]);
                        else
                        {
                            
                            if(mySilde.obs[i].Event!=null&&mySilde.obs[i].Event.endSilde!=null)
                                mySilde.obs[i].Event.endSilde.ev(mySilde.obs[i].ob,mySilde.obs[i].group,mySilde.obs[i].config.Event.endSilde.ts);
                        }
                    mySilde.obsrun =   newRun;    
                }    
        }
        this.obs = obs; 
    }
    this.getObofGroup = function(group)
    {
        for(var i=0;i<this.obs.length;i++)
        {    
            var slide = this.obs[i];
            if(this.obs[i].group == group)
                return this.obs[i];
        }
        return null;
    }
}
var mySilde = new CreateSlide();

//==================
function CreateObEffect(ob,group,config)
{
    this.ob = ob;
    this.group = group;
    this.config = config;// tt,sl,tg,kc,region,color                 tt: 
    this.timer;
    this.Event;
    this.timer;
    
    this.slide = function()
    {
        clearTimeout(this.timer);
        if(this.config.tg!=null)
        this.timer = setTimeout(function(group){return function() {
                       myEffect.removeOb(group);
                }}(this.group),(this.config.tg==null)?2000:this.config.tg); 
                
        var ob = ($(this.ob)==null)?this.ob : $(this.ob);
        
        var div = document.createElement("div");
        if($(this.group)==null)
        {
            div = document.createElement("div");
            div.id = this.group;
            ob.appendChild(div);
        }
        else
            div =   $(this.group); 
        
        YAHOO.util.Dom.setStyle(div,'position','absolute');
        YAHOO.util.Dom.setStyle(div,'overflow','hidden');
        //YAHOO.util.Dom.setStyle(div,'background-color','red');
        var t = (this.config.region!=null)?this.config.region.t:0;
        var l = (this.config.region!=null)?this.config.region.l:0;
        var r = (this.config.region!=null)?this.config.region.r:0;
        var b = (this.config.region!=null)?this.config.region.b:0;
        YAHOO.util.Dom.setStyle(div,'top',t+'px');
        YAHOO.util.Dom.setStyle(div,'left',l+'px');
        var area = YAHOO.util.Dom.getArea(ob);
        if(ob==document.body)
        {
            
            area = [YAHOO.util.Dom.getDocumentWidth(),YAHOO.util.Dom.getDocumentHeight()];
            YAHOO.util.Dom.setStyle(div,'z-index','1000');
        }
        YAHOO.util.Dom.setArea(div,[(area[0]-l-r)+'px',(area[1]-t-b)+'px']);
        
        
        if(this.config.html!=null)
            this.showHtml();
        else
        {
            var html="";
            for(var i=0;i<this.config.sl;i++)
            {
               if(this.config.url!=null)
                    html+="<img id='"+this.group+"_"+i+"' border='0' src='"+this.config.url+"' style='position:absolute' width='10px' height='10px' />";
               else
                   html+="<div id='"+this.group+"_"+i+"' style='position:absolute;background-color:"+((this.config.color==null)?'blue':this.config.color)+"'></div>";          
            }
            div.innerHTML = html;
            this.run(this.config.tt);     
        }   
        //mySilde.slide(this.group,'test1',{tt:'opa',fntt:null,bd:40,kt:100,kc:3,tg:100,type:0});  
    }
    this.showHtml = function()
    {
        //YAHOO.util.Dom.setStyle(this.group,'background-color',this.config.color);
       // mySilde.slide(this.group,this.group+'_opa',{tt:'opa',fntt:null,bd:5,kt:20,kc:1,chung:true,type:0});
        var ob = ($(this.ob)==null)?this.ob : $(this.ob);
        var area =  YAHOO.util.Dom.getArea(this.group);
        var html="<div id='"+this.group+"_bg_html' style='background-color:"+this.config.color+";position:absolute;width:"+area[0]+"px;height:"+area[1]+"px;left:0px'></div>"
        +"<div id='"+this.group+"_center' style='position:absolute;top:"
        + parseInt((area[1]>>1)-(this.config.area[1]>>1))+"px;left:"
        + parseInt((area[0]>>1)-(this.config.area[0]>>1))+"px;width:"+this.config.area[0]+"px;height:"+this.config.area[1]+"px'>"+this.config.html+"</div>";
        $(this.group).innerHTML = html;
        YAHOO.util.Dom.setOpacity(this.group+"_bg_html",((this.config.opa==null)?20:this.config.opa));
       //mySilde.slide(this.group+"_bg_html",this.group+'_opa',{tt:'opa',fntt:null,bd:5,kt:((this.config.opa==null)?20:this.config.opa),kc:1,chung:true,type:0});
//        if(ob!=document.body)
//        mySilde.slide(this.group+"_center",this.group+'_opa',{tt:'opa',fntt:null,bd:((this.config.opa==null)?20:this.config.opa),kt:100,kc:3,chung:true,type:0});
    }
    this.run = function(type)
    {
        var rds =[
            [50,25,94,40,8,49,96,33,47,87,17,9,51,18,32,61,29,47,25,90,50,95,35,41,63]
            ,[51,18,32,61,29,47,25,50,25,94,40,8,49,96,33,47,87,25,90,50,95,35,41,63]
            ,[17,9,51,18,32,61,29,47,50,25,94,40,8,49,96,33,47,87,17,9,90,50,95,35,41,63]
        ];
        this.runRD(rds[type]);
    }
    this.runRD = function(rds)
    {
        var ob = ($(this.ob)==null)?this.ob : $(this.ob);
        var region =  YAHOO.util.Dom.getRegion(ob);
        var area = [region.right-region.left,region.bottom-region.top];
        //var rds= new Array();
        //var rds = [50,25,94,40,8,49,96,33,47,87,17,9,51,18,32,61,29,47,25,90,50,95,35,41,63];
        for(var i=0;i<this.config.sl;i++)
        {
//             var rd = parseInt(Math.random()*100);
//             rds.push(rd);
             var rd = rds[i];
             var kc=[(rd>40)?(rd%20):rd,(rd>40)?(rd%20):rd];
             var areabd=[rd,rd],areakt=[area[0]-rd,area[0]-rd];
             var vtrkt =[region.left,region.top];
             var num=parseInt(rd/10);
             if(num>0&&num<3)
                vtrkt[0]= region.left+i*3;
             else   
                if(num>2&&num<5)
                    vtrkt[0]= region.right-i*3;
                else   
                if(num>4&&num<8)
                    vtrkt[1]= region.top+i*3;
                else    
                    vtrkt[1]= region.bottom-i*3;
//             areabd[chieu] = rd;
//             areakt[chieu] = area[chieu]-rd;
             
             mySilde.slide(this.group+"_"+i,this.group+"_vtr_"+i,
                {tt:'vtr',fntt:null,bd:[parseInt(( region.right+region.left)>>1),parseInt(( region.bottom+region.top)>>1)]
                ,kt:vtrkt,kc:[(rd>40)?(rd%20):rd,(rd>40)?(rd%20):rd],chung:true,type:0});
             
             mySilde.slide(this.group+"_"+i,this.group+"_area_"+i,
                {tt:'area',fntt:null,bd:areabd,kt:areakt,kc:kc,chung:true,type:0});
             YAHOO.util.Dom.setOpacity(this.group+"_"+i,25);
             //YAHOO.util.Dom.setStyle(this.group+"_"+i,'background-color',FNMain.RGB2HTML(rds[i+3],rds[i+1],rds[i+2]));
//             mySilde.slide(this.group+"_"+i,this.group+"_bg_"+i,
//             {tt:'bg',fntt:null,bd:{r:45,g:30,b:0},kt:{r:80,g:255,b:100},kc:{r:10,g:10,b:10},tg:100,type:0});
             //YAHOO.util.Dom.setXY(this.group+"_"+i,pos);
        }
//        $('kqrd').innerHTML = rds;
    }
    
}
function CreateEffect()
{
    this.obs = new Array();
    this.slide = function(ob,group,config)
    {
        this.removeOb(group);
        obsl = new CreateObEffect(ob,group,config);
        this.obs.push(obsl);
        obsl.slide();
    }
    this.getOb = function(ob)
    {
        for(var i=0;i<this.obs.length;i++)
        {    
            var slide = this.obs[i];
            if(this.obs[i].ob == ob)
                return this.obs[i];
        }
        return null;        
    }
    this.removeOb = function(group)
    {
        //alert(group);
        var obs = new Array();
        for(var i=0;i<this.obs.length;i++)
        {    
            var slide = this.obs[i];
            if(this.obs[i].group != group)
                obs.push(this.obs[i]);
            else
                if(this.obs[i]!=null)
                {    
                    clearTimeout(this.obs[i].timer);    
                    var ob = ($(this.obs[i].ob)==null)?this.obs[i].ob : $(this.obs[i].ob);
                    ob.removeChild($(this.obs[i].group));
                }
        }
        this.obs = obs; 
    }
    this.getObofGroup = function(group)
    {
        for(var i=0;i<this.obs.length;i++)
        {    
            var slide = this.obs[i];
            if(this.obs[i].group == group)
                return this.obs[i];
        }
        return null;
    }
    this.mouseOut = function(ob,group,ev)
    {
        if(!YAHOO.util.Dom.isInner(ob,ev))
        {
            myEffect.removeOb(group);
        }
    }
    this.load = function(opa)
    {
    if($('loadbody')==null)
    document.write(
    "<div id='loadbody' style='position:absolute;background: #2d8e10 url('"+getUrl('images/bgload.jpg')+"') repeat top left;z-index:1000;top:0px;left:0px'></div><div id='loadmain' class='bodymain' style='position: absolute;z-index:1001;width:200px;height:50px'><div class='bd'><div class='t'></div>"
                  +"<div class='l'></div><div class='r'></div><div class='b'></div><div class='c'></div>"
                  +"<div class='t_l'><div class='t_r'><div class='b_l'><div class='b_r'></div></div></div></div></div>"
                +"<div class='nd'><div style='padding:15px 0px 0px 50px;color:white;font-weight:bold'>"
                
            +"<img src='"+getUrl('images/load.gif')+"' /> loading..."
         +"</div></div></div>"
);
else
{ YAHOO.util.Dom.setStyle('loadbody','display','');
 YAHOO.util.Dom.setStyle('loadmain','display','');
 }
var area = [YAHOO.util.Dom.getDocumentWidth(),YAHOO.util.Dom.getDocumentHeight()];
YAHOO.util.Dom.setArea('loadbody',[area[0]+'px',area[1]+'px']);
YAHOO.util.Dom.setXY('loadbody',[0,0]);
YAHOO.util.Dom.setXY('loadmain',[parseInt( (area[0]>>1)-100),parseInt( (area[1]>>1)-25)]);
YAHOO.util.Dom.setOpacity('loadbody',90);
//        myEffect.slide(document.body,'loadbody',{html:
//         "<div class='bodymain' style='position: relative;width:100%;height:100%'><div class='bd'><div class='t'></div>"
//                  +"<div class='l'></div><div class='r'></div><div class='b'></div><div class='c'></div>"
//                  +"<div class='t_l'><div class='t_r'><div class='b_l'><div class='b_r'></div></div></div></div></div>"
//                +"<div class='nd'><div style='padding:15px 0px 0px 50px'>"
//                
//            +"<img src='"+getUrl('images/load.gif')+"' /> loading..."
//         +"</div></div></div>"
//        ,area:[200,50],color:'blue',opa:((opa==null)?20:opa)});
    }
    this.unload = function()
    {
 YAHOO.util.Dom.setStyle('loadmain','display','none');   
 YAHOO.util.Dom.setStyle('loadbody','display','none');
// mySilde.slide('loadbody','loadab',{tt:'opa',fntt:null,bd:14,kt:2,kc:6,chung:true,type:0
// ,Event:{endSilde:{ev:function(){YAHOO.util.Dom.setStyle('loadbody','display','none');
// },ts:'thamso'} } 
// });
//        myEffect.removeOb('loadbody');
    }
}
var myEffect = new CreateEffect();








function clickupdwn(ev,ids)
  {
    var hs = (ev.wheelDelta==null)?ev.detail:ev.wheelDelta;
    var rg = YAHOO.util.Dom.getRegion(ids[1]);
    var vtrm = rg.top+ids[3];
    YAHOO.util.Dom.setY(ids[1],vtrm);
    var vtr = vtrHdong(ids);
    if(vtr!=0)
        YAHOO.util.Dom.setY(ids[1],vtr);
    xacdinhVtr(ids[0],ids[1],ids[2]);
   // YAHOO.util.Event.addListener(window,'scroll',function(){return false;},null,true);
  }
  function clickpanel(ev,ids)
  {
//    var vtr = YAHOO.util.Event.getXY(ev);
//    var rA1 = YAHOO.util.Dom.getRegion(ids[0]);
//    var rB1 = YAHOO.util.Dom.getRegion(ids[2]+'_run');
//    var rB2 = YAHOO.util.Dom.getRegion(ids[2]+'_panel');
//    var top = parseInt (((rB2.top-vtr[1])/(rB2.bottom-rB2.top))*(rA1.bottom-rA1.top)+rA1.top);
//    
//    YAHOO.util.Dom.setY(ids[1],top);
//    vtr = vtrHdong(ids);
//    if(vtr!=0)
//        YAHOO.util.Dom.setY(ids[1],vtr);
     var r1 = YAHOO.util.Dom.getRegion(ids[0]);
     var r2 = YAHOO.util.Dom.getRegion(ids[1]);
     var r3 = YAHOO.util.Dom.getRegion(ids[2]+'_panel');
     var gr4 = YAHOO.util.Event.getXY(ev)[1];
     var gmain = (r3.top+r3.bottom)>>1;
     var hr1 = r1.bottom - r1.top;
     var hr2 = r2.bottom - r2.top;
     if(hr2>hr1)
     {
        var gr2 = gmain + ((gr4-gmain)/(r3.bottom-r3.top))*((hr2-hr1)<<1) ;
        gr2 = 2*gmain- gr2;
        var tr2 = parseInt(gr2 - ((r2.bottom-r2.top)>>1));
        YAHOO.util.Dom.setY(ids[1],tr2);
        tr2 = vtrHdong(ids);
        if(tr2!=0)
        YAHOO.util.Dom.setY(ids[1],tr2);
        xacdinhVtr(ids[0],ids[1],ids[2]);
     }
    
  }

  function mousescroll(ev,ids)
  {
    var hs = (ev.wheelDelta==null)?ev.detail:ev.wheelDelta;
    var rg = YAHOO.util.Dom.getRegion(ids[1]);
    YAHOO.util.Dom.setY(ids[1],rg.top+((hs>0)?-28*ids[3]:28*ids[3]));
    var vtr = vtrHdong(ids);
    if(vtr!=0)
        YAHOO.util.Dom.setY(ids[1],vtr);
    xacdinhVtr(ids[0],ids[1],ids[2]);
    //YAHOO.util.Event.addListener(window,'scroll',function(){return false;},null,true);
    return false;
  }
  function scrollVtr(ids,vtr1,vtr2)
  {
    mySilde.slide(ids[1],ids[1]+'_vtr',{tt:'vtr',fntt:null,bd:vtr1,kt:vtr2,kc:[1,1],chung:false,type:0
    ,Event:{runSilde:{ev:function(od,gr,ids){xacdinhVtr(ids[0],ids[1],ids[2]);},ts:ids}}
    });
  }
  function mousemove(ev,ids)
  {
         xacdinhVtr(ids[0],ids[1],ids[2]);
         var vtr = YAHOO.util.Event.getXY(ev);
         var rA1 = YAHOO.util.Dom.getRegion(ids[0]);
         var rB1 = YAHOO.util.Dom.getRegion(ids[1]);
         if((rB1.bottom-rB1.top)>(rA1.bottom-rA1.top))
         {
             var ngoai = true;
             var kc =80,hs=0,vtr2;
             if(vtr[1]>=rA1.top&&vtr[1]<=rA1.top+kc)
             {   
                hs = 1+parseInt((kc-(vtr[1]-rA1.top))/4);
                vtr2 = [rA1.left,rA1.top];
                ngoai = false;
             }
             if(vtr[1]<=rA1.bottom&&vtr[1]>=rA1.bottom-kc)
             {
                hs = 1+parseInt((kc-(rA1.bottom-vtr[1]))/4);
                vtr2 = [rA1.left,rA1.bottom-(rB1.bottom-rB1.top)];
                ngoai = false;
             }
             if(ngoai)
                mySilde.removeOb(ids[1]+'_vtr');
            if(vtr2!=null) 
            mySilde.slide(ids[1],ids[1]+'_vtr',{tt:'vtr',fntt:null,bd:[rB1.left,rB1.top],kt:vtr2,kc:[0,hs],chung:false,type:0
            ,Event:{runSilde:{ev:function(od,gr,ids){xacdinhVtr(ids[0],ids[1],ids[2]);},ts:ids}}
            }); 
        }
  }
  function mouseout(ev,ids)
  {
         if(!YAHOO.util.Dom.isInner(ids[0],ev))
            mySilde.removeOb(ids[1]+'_vtr');
  }
  function mouseover(ev,ids)
  {
         //if(!YAHOO.util.Dom.isInner(ids[0],ev))
           $(ids[0]+'_input').focus();
  }
  function mouseup(ev,ids)
  {
     //$(ids[0]+'_input').focus();
     $(ids[0]+'_input').focus();
  }
  function keydown(ev,ids)
  {
    var rg = YAHOO.util.Dom.getRegion(ids[1]);
    //$(ids[0]+'_input').focus();
    //alert();
    var vtrm = rg.top+((ev.keyCode==38)?13:((ev.keyCode==40)?-13:0));
    YAHOO.util.Dom.setY(ids[1],vtrm);
    var vtr = vtrHdong(ids);
    if(vtr!=0)
        YAHOO.util.Dom.setY(ids[1],vtr);
    xacdinhVtr(ids[0],ids[1],ids[2]);
  }
  function keyup(ev,ids)
  {
    
    //alert(ev.keycode)
  }
  function vtrHdong(ids)
  {
    var rA1 = YAHOO.util.Dom.getRegion(ids[0]);
    var rB1 = YAHOO.util.Dom.getRegion(ids[1]);//chua
    if(rB1.top>rA1.top)
        return rA1.top;
    if(rB1.bottom<rA1.bottom)
        return rA1.bottom-(rB1.bottom-rB1.top);    
    return 0;    
  }
  function xacdinhVtr(nd,cnd,scrl)
  {
    if($(scrl).getAttribute('display')=='none')
        YAHOO.util.Dom.setStyle(scrl,'display','none');
   // $(nd+'_input').focus();
    var rA1 = YAHOO.util.Dom.getRegion(nd);
    var rB1 = YAHOO.util.Dom.getRegion(cnd);
    var rB2 = YAHOO.util.Dom.getRegion(scrl+'_panel');
    
    var hA1 = rA1.bottom - rA1.top ;
    var hB2 = rB2.bottom- rB2.top;
    var hB1 = rB1.bottom- rB1.top;
    var hB2 =  parseInt((hA1*hB2)/hB1);
    
    if(hB1>hA1)
    {
        if($(scrl).getAttribute('display')!='none')
            YAHOO.util.Dom.setStyle(scrl,'display','');
    YAHOO.util.Dom.setHeight(scrl+'_run',hB2+'px');
    var tB2 =rB2.top+ parseInt(((rA1.top-rB1.top)/hA1)*hB2);
    YAHOO.util.Dom.setY(scrl+'_run',tB2);
    
    }
    else
        YAHOO.util.Dom.setStyle(scrl,'display','none');
  }