    /* Shad'o Soft tm */    
    window.addEvent('domready', function(){
        $('mainLoading').setStyle('display','none');
        $$('a[id^=leftmenu_]').addEvent('click',function(){
            whato_O = this.getProperty('action')
            requestVar = {
                'action':'getArticles',
                'display':whato_O
            }
            request(requestVar,'loading',lang['loading...'],'articles',getArticlesCallback,Mediabox);
        });
        
        requestVar = {
            'action':'getArticles',
            'display':section
        }
        request(requestVar,'loading',lang['loading...'],'articles',getArticlesCallback,Mediabox);
    })
    
    function request(action,loading,loadingMess,render,callback,sbox){   
        if (window.location.hostname=='127.0.0.1'){ 
            var libFolder = '/pangyaserverV2/classes/libs/';        
        } else {
            var libFolder = '/classes/libs/';        
        }
            var myrequest = new Request({
                url : 'http://'+window.location.hostname+libFolder+'server.php',
                method : "post",
                data : action,
                onSuccess: function() {
                },
                onRequest: function(r) { 
                    //$(render).setStyle('opacity','0');
                    //loading action
                    $(loading).empty();
                    $(loading).adopt(
                        new Element('center').adopt(
                            new Element('span',{'height':'32px','line-height':'32px'}).set('html','  '+loadingMess),
                            new Element('img',{'src':'pictures/loader.gif'})
                        )
                    );
                    //$(loading).setStyle('display','block');
                    
                    $('loading2').setStyle('display','block');
                    //$('loading2').fade('in');
                    
                },
                onComplete : function (r) {
                    //$(loading).setStyle('display','none')
                    $('loading2').setStyle('display','none');
                    
                    if (render){
                        $(render).empty();
                    }
                    
                    if (r){
                        r=JSON.decode(r);
                        if (callback!=null){
                            if (r.title!='')document.title = r.title;  
                            /*if (r.Error==0) */eval('callback(r,render,sbox)');
                        }
                    }
                }
            }).send();
    }

    
        
    function getArticlesCallback(result,render,sbox){
        if (result.data.logout){
            location.reload();
        } else {
            var articlesRender = new Element('div',{'id':'article'});
             
            $each(result.articles,function(data,key){
                articlesRender.adopt(
                    new Element('div',{'class':'article_title'}).set('html','- '+data.title+' -'),
                    new Element('div',{'class':'article_content'}).set('html',data.content),
                    new Element('div',{'class':'article_datetime'}).set('html',data.date),
                    new Element('center').adopt(
                        new Element('div',{'class':'separator'})
                    ),
                    new Element('br') 
                )
            });
                       
            $(render).adopt(articlesRender);
            //$(render).fade(1.0);
            $$('div[name=pagination]').each(function(el){
                el.empty();
            });
            
            var mypages = new Element('span');
            $each(result.pages,function(val,key){
            if (result.currentPage==val){
                mypages.adopt(
                    new Element('a').set('html',val+' ')
                )
            }
            else {
                mypages.adopt(
                    new Element('a',{'href':'javascript:void(0);'}).set('html',val+' ').addEvent('click',function(){
                        requestVar = {
                            'action' : 'getArticles',
                            'display' : result.currentView,
                            'page' : val
                        }
                        request(requestVar,'loading',lang['loading...'],'articles',getArticlesCallback,Mediabox);
                    })
                )
            }

            })
            
            //(result.currentPage==val)?'':'href':(result.currentPage==val)?'':'javascript:void(0);'
            if (result.pages.length>1){
                $$('div[name=pagination]').each(function(el){
                    el.adopt(
                        new Element('div',{'align':'left','id':'pages','class':'paging'}).adopt(
                            new Element('span').set('html','page < '),
                            mypages,
                            new Element('span').set('html','>')
                        )
                    );
                });
            }
            sbox.scanPage();
            if (result.currentView=='gallery'){
                request({'action':'getGalleryList'},'loading',lang['loading Gallery...'],'galleryrender',getGalleryListCB,Mediabox);            
            }
            //honto
            if (result.currentView=='pangyadb'){
                myDB = new pangyaDB();
                myDB.show();
            }
        }
    }
    
    var numberOfFiles;
    var filesList;
    function getGalleryListCB(r,render,sbox){
        numberOfFiles = r.filesList.main.length;
        filesList = r.filesList;
        createGallery(render,sbox);
    }

    function createGallery(render,sbox){
        centerel = new Element('center');
        $(render).adopt(
        centerel
        );

        $each(filesList.main,function(data,key){
        centerel.adopt(
            new Element('a',{'href':'/gallery_psp/'+filesList.main[key],'rel':'lightbox gal','style':'margin:5px'}).adopt(
                new Element('img',{'src':'/gallery_psp/thumbs/'+filesList.thumb[key],'border':'0px'})
            )
        )
        });    

        sbox.scanPage();
    }
    
    function UserLogin(){
        request({'action':'MemberConnection','loginID':$('loginID').value,'loginPassword':$('loginPassword').value},'loading',lang['connecting'],null,UserLoginCallback,Mediabox);
    }
    
    function UserLoginCallback(r){
        if (r.Error==0){
            location.reload();
        } else {
            _Alert('<br/>'+lang['lang_1']+'<br/><br/>',lang['loginError']);
        }
    }
        
    function getScrollY() {
        var scrOfX = 0, scrOfY = 0;
          if( typeof( window.pageYOffset ) == 'number' ) {
            //Netscape compliant
            scrOfY = window.pageYOffset;
          } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
            //DOM compliant
            scrOfY = document.body.scrollTop;
          } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
            //IE6 standards compliant mode
            scrOfY = document.documentElement.scrollTop;
          }
          return scrOfY ;
    }
    
    function _Alert(amessage,atitle){
        if ($('popback')==undefined){
            //beta popup alert
            var AlertBackground = new Element('div',{'id':'popback'})
            var AlertContent = 
                new Element('div',{'id':'popup_a'}).adopt(
                    new Element('div',{'id':'popup_b'}).adopt(
                        new Element('h2',{'id':'popuphead'}).adopt(
                            new Element('span').set('html',atitle)
                        ),
                        new Element('div',{'id':'popupcontent'}).set('html',amessage),
                        new Element('div',{'id':'popup_c'}).adopt(
                            new Element('center').adopt(
                                new Element('input',{'events':{'click':function(){
                                    //$('popback').destroy();
                                    $('popback').fade('out');
                                    
                                }},'type':'button','value':'OK'})
                            )
                        )
                        
                    )
                )
            AlertBackground.adopt(
                AlertContent
            )
            $('siteCore').adopt(
                AlertBackground    
            )
            AlertContent.set('opacity',0);
            AlertContent.fade('in');
        } else {
            $('popback').fade('in')
        }
    }
    var pangyaDB = new Class({
        initialize:function(){
            obj=this;
            obj.country = 'jp';
            obj.initVars();
        },
        initVars:function(){
            obj.chrs = -1;
            obj.itemsByPages = 5;
            obj.countries = {'jp':'日本','us':'USA','kr':'한국','th':'ไทย'};
        },
        show:function(){
            request({'action' : 'pangyaDB','section' : 'chrsList','page':'1','ibp':obj.itemsByPages,'country':obj.country},'loading',lang['loadingDB...'],'dbrender',obj.getChrsCB,Mediabox);            
        },
        getChrsCB:function(result,render,sbox){
            obj.initVars();//reset vars fix bug!
            var chrSelect = 
                new Element('select',{'id':'charactersList'});
            var itemsByPages = 
                new Element('select');
            var countrySelect = 
                new Element('select',{'events':{'change':function(){
                    //console.log(this.value);
                    obj.country = this.value;
                    obj.show();
                
                }}});
            $each(obj.countries,function(cname,ccode){
                countrySelect.adopt(
                    new Element('option',{'value':ccode,'selected':((obj.country==ccode)?'selected':'')}).set('html',cname)
                )
            })
                
            for (x=5;x<=50;x=x+5){
                itemsByPages.adopt(
                    new Element('option',{'value':x}).set('html',x)
                )
            }
            $('search').empty();
            $('search').adopt(
                new Element('fieldset',{'style':'width:94%'}).adopt(
                    new Element('legend').set('html','Pangya database'),
                    new Element('p').adopt(
                        new Element('label').set('html','Country '),
                        countrySelect
                    )
                    
                ),
                new Element('fieldset',{'style':'width:94%'}).adopt(
                    new Element('legend').set('html','search'),
                    
                    new Element('p').adopt(
                        new Element('label').set('html','Character '),
                        chrSelect.adopt(
                            new Element('option',{'selected':'selected','value':'-1'}).set('html','--')
                        ),
                        new Element('label').set('html',' Items by pages '),
                        itemsByPages
                    ),
                    
                    
                    new Element('center').adopt(
                        new Element('input',{'events':{'click':function(){
                            obj.chrs = $('charactersList').value;
                            obj.itemsByPages = itemsByPages.value;
                            requestvar = {'action' : 'pangyaDB','section' : 'part','page':'1','chrs':obj.chrs,'ibp':obj.itemsByPages,'country':obj.country};
                            request(requestvar,'loading',lang['loadingDB...'],'dbrender',obj.getDBCB,Mediabox);            
                            
                        }},'type':'button','value':'search'})
                    )
                )
            )
            $each(result.chrs,function(chrData,id){
                chrSelect.adopt(
                    new Element('option',{'value':id}).set('html',chrData.name)
                )
            })
            
            
            request({'action' : 'pangyaDB','section' : 'part','page':'1','ibp':obj.itemsByPages,'country':obj.country},'loading',lang['loadingDB...'],'dbrender',obj.getDBCB,Mediabox);            
            
            
        },
        getDBCB:function(result,render,sbox){
            $(render).empty();
            var myTbody = new Element('tbody');
            
            var pages = new Element('div',{'class':'pages'}).adopt(
                new Element('center').adopt(
                    new Element('a',{'href':'javascript:void(0)','events':{'click':function(){
                        requestVar = {
                            'action' : 'pangyaDB',
                            'section' : 'part',
                            'page':parseInt(result.page)-1,
                            'chrs':obj.chrs,
                            'ibp':obj.itemsByPages,
                            'country':obj.country                            
                        }
                        request(requestVar,'loading',lang['loadingDB...'],'dbrender',obj.getDBCB,Mediabox);            
                    }}}).set('html','<< PREVIOUS'),
                    new Element('a').set('html',' '+result.page+' - '+result.pages+' '),
                    new Element('a',{'href':'javascript:void(0)','events':{'click':function(){
                        requestVar = {
                            'action' : 'pangyaDB',
                            'section' : 'part',
                            'page':parseInt(result.page)+1,
                            'chrs':obj.chrs,
                            'ibp':obj.itemsByPages,
                            'country':obj.country
                        }
                        request(requestVar,'loading',lang['loadingDB...'],'dbrender',obj.getDBCB,Mediabox);            
                    }}}).set('html','NEXT >>')
                ),
                new Element('br')
            );
            
            var pages2 = new Element('div',{'class':'pages'}).adopt(
                new Element('br'),
                new Element('center').adopt(
                    new Element('a',{'href':'javascript:void(0)','events':{'click':function(){
                        requestVar = {
                            'action' : 'pangyaDB',
                            'section' : 'part',
                            'page':parseInt(result.page)-1,
                            'chrs':obj.chrs,
                            'ibp':obj.itemsByPages,
                            'country':obj.country
                        }
                        request(requestVar,'loading',lang['loadingDB...'],'dbrender',obj.getDBCB,Mediabox);            
                    }}}).set('html','<< PREVIOUS'),
                    new Element('a').set('html',' '+result.page+' - '+result.pages+' '),
                    new Element('a',{'href':'javascript:void(0)','events':{'click':function(){
                        requestVar = {
                            'action' : 'pangyaDB',
                            'section' : 'part',
                            'page':parseInt(result.page)+1,
                            'chrs':obj.chrs,
                            'ibp':obj.itemsByPages,
                            'country':obj.country
                        }
                        request(requestVar,'loading',lang['loadingDB...'],'dbrender',obj.getDBCB,Mediabox);            
                    }}}).set('html','NEXT >>')
                )
            );
            
            
            $(render).adopt(
                pages,
                new Element('table',{'border':'1','style':'width:100%'}).adopt(
                    myTbody
                ),
                pages2
            )
            
            $each(result.db,function(data,key){
                if (data.preview.length>0){
                    myTbody.adopt(
                        new Element('tr').adopt(
                            new Element('td',{'rowspan':'2','style':'width:68px;height:88px;background-image:url(http://pictures.shadosoft-tm.com/pangya/hspics.php?section=iff-'+obj.country+'-part&pic='+data.preview+');background-repeat:no-repeat;','valign':'top'}).adopt(
                                new Element('img',{'src':'http://pictures.shadosoft-tm.com/pangya/preview.gif'})//hspics.php                            
                            ),
                            new Element('td',{'colspan':'4'}).set('html',data.name),
                            new Element('td',{'style':'width:68px;height:88px;'}).adopt(
                                new Element('center').adopt(
                                    new Element('div',{'style':'height:64px;'}).adopt(
                                        new Element('img',{'src':'http://pictures.shadosoft-tm.com/pangya/hspics.php?section=iff-'+obj.country+'-characters&pic='+data.characters+''})
                                    ),
                                    
                                    new Element('div',{'style':'height:16px;'}).adopt(
                                        new Element('img',{'src':'http://pictures.shadosoft-tm.com/pangya/hspics.php?section=iff-'+obj.country+'-levels&pic=level_'+(parseInt(data.minlvl)+1)+''})                                
                                    )
                                )
                            )
                        ),
                        new Element('tr',{'style':'text-align:center;'}).adopt(
                            new Element('td',{'style':'background-color:rgb(255,216,216);'}).set('html',data.power+' - '+data.powerSlots),
                            new Element('td',{'style':'background-color:rgb(255,240,216);'}).set('html',data.control+' - '+data.controlSlots),
                            new Element('td',{'style':'background-color:rgb(219,247,216);'}).set('html',data.accuracy+' - '+data.accuracySlots),
                            new Element('td',{'style':'background-color:rgb(216,247,247);'}).set('html',data.spin+' - '+data.spinSlots),
                            new Element('td',{'style':'background-color:rgb(239,220,251);'}).set('html',data.curve+' - '+data.curveSlots)
                        )
                    )
                }
            })
        }
    });
    
    
    
    
    
    