LBP.Flip = new Hash({
    options: {
        position: 0,
        urlPrefix: '',
        urlSuffix: '',
        caller: '',
        start: 1,
        total: 0
    },
    initialize: function(){
    },
    setValue: function(options) {
        this.options = $merge(this.options, options || {});
        if(!this.setKeyEvent) this.setEvent();
    },
    setEvent: function(){
    	var keydownEvent = function(event) {
    		this.handleKey(event, keydownEvent);
        }.bind(this);
        document.addEvent('keydown', keydownEvent);
        this.setKeyEvent = true;
    },
    handleKey: function(e, keyDownEvent) {
        e = e || window.event;
        var keyCode = $pick(e.keyCode, e.which, e.code, e.key);
        switch(keyCode) {
        	//trang truoc
            case 37: case 100: case 109: case 104:
                if(this.options.position != this.options.start) {
                    this.sendRequest(this.options.position-1, keyDownEvent,e);
				}
                break;
            //trang sau
            case 39: case 98: case 107: case 102:
                if(this.options.position != this.options.total) {
                    this.sendRequest(this.options.position+1, keyDownEvent,e);
                }
                break;
            //trang dau+
            case 33:
                this.sendRequest(this.options.start, keyDownEvent,e);
            	break;
            //trang cuoi+
            case 34:
            	if(this.options.total) { this.sendRequest(this.options.total, keyDownEvent,e);}
            	break;
        }
    },
    sendRequest: function(pos, keyDownEvent,e) {
        if (e.preventDefault) e.preventDefault();
        if (e.stopPropagation) e.stopPropagation();
        var reqUrl = this.options.urlPrefix+pos+this.options.urlSuffix;
        var reqCaller = this.options.caller;
        document.removeEvent('keydown', keyDownEvent);
        this.setKeyEvent = false;
        var flipRequest = new Request.LBP({
            'url':    reqUrl,
            'caller': reqCaller
        }).send('sendby=' + reqCaller + '&dmode=html_ajax');
    },
    extend: function(properties) {
        return $extend(this, properties);
    }
});
LBP.Flip.extend(new Events($empty)).extend(new Options($empty)).extend(new Chain($empty));


var ActionScroll = new Class ({
	Implements: [Events, Options],
	options: {
		idTarger: 'scoll-target',
		event: 'load'
	},

	initialize: function(options){
		this.setOptions(options);
		this.BuildScroll();

	},

	BuildScroll: function(){
		var rowTarget = $(document.getElementById(this.options.idTarger));
		var tagetPosition = rowTarget.getPosition();
		var myFx = new Fx.Scroll(window).toElement(rowTarget);

	}

});


/*var ChangeStyle = new Class({
    options: {
        mouseEvent: 'mouseover',
        overClassName: 'hover',
        targetClassName: ''

    },
    initialize: function(){
		//select all div with class name that is this.option.targetClassName
		var target = this.
    },

});*/