
function Rotator(RotatorPlocha) {
    this.RotatorPlocha = $(RotatorPlocha);
	this.polozky = this.RotatorPlocha.select('div.slide');
	this.umiestneniePoloziek = this.RotatorPlocha.select('div.okno');
	this.aktualnaPolozka  = 0;
	this.aktualnePosunutie  = 0;
	this.smerPosunu  = "vodorovne"; //vodorovne/zvislo
	this.casPosunu  = 6;
	this.posuvanie_o  = 1;
	this.au = false;
}

Rotator.prototype.automat= function () {
	this.au = new PeriodicalExecuter(this.posun.bind(this, '-', 0), this.casPosunu);
}
Rotator.prototype.automatStop= function () {
	if(this.au) {
		this.au.stop();
	}
}

Rotator.prototype.posun= function (smer,pocet) {
    pocet=(pocet==undefined || pocet==null || pocet=="" || isNaN(pocet))?this.posuvanie_o:pocet;
    if (this.polozky.length>0 && (smer=="+" && (this.aktualnaPolozka-pocet)>=0) || (smer=="-" && this.aktualnaPolozka<(this.polozky.length-(pocet)))) {
        vzdialenost=this.smerPosunu=="vodorovne"?this.polozky[0].getWidth():this.polozky[0].getHeight();
        posun_o=smer=="-"?(vzdialenost*pocet)*(-1):((vzdialenost*pocet));

        if (smer=="+") {
            posun_o=((vzdialenost*this.aktualnaPolozka)*(-1))+posun_o;
        }
        if (smer=="-") {
            posun_o=posun_o-(vzdialenost*this.aktualnaPolozka);
        }
        for (i=0; i<this.polozky.length; i++) {
            if (this.smerPosunu=="vodorovne") {
                new Effect.Move(this.polozky[i], { sync: false, x: posun_o, y: 0, mode: 'absolute' })
            }
            else {
                new Effect.Move(this.polozky[i], { sync: false, x: 0, y: posun_o, mode: 'absolute' })
            }
        }
        if (smer=="+") {
            this.aktualnaPolozka=this.aktualnaPolozka-pocet;
        }
        if (smer=="-") {
            this.aktualnaPolozka=this.aktualnaPolozka+pocet;
        }
    }
    else if (this.polozky.length>0 && smer=="-" && (this.aktualnaPolozka==(this.polozky.length-1) || (this.aktualnaPolozka+pocet)>=(this.polozky.length-1))) {
        posun_o=0;
        for (i=0; i<this.polozky.length; i++) {
            if (this.smerPosunu=="vodorovne") {
                new Effect.Move(this.polozky[i], { sync: false, x: posun_o, y: 0, mode: 'absolute' })
            }
            else {
                new Effect.Move(this.polozky[i], { sync: false, x: 0, y: posun_o, mode: 'absolute' })
            }
        }
        this.aktualnaPolozka=0;
    }
    else if (this.polozky.length>0 && smer=="+" && this.aktualnaPolozka==0) {
        vzdialenost=this.smerPosunu=="vodorovne"?this.polozky[0].getWidth():this.polozky[0].getHeight();
        posun_o=(vzdialenost*(this.polozky.length-1))*(-1);

        for (i=0; i<this.polozky.length; i++) {
            if (this.smerPosunu=="vodorovne") {
                new Effect.Move(this.polozky[i], { sync: false, x: posun_o, y: 0, mode: 'absolute' })
            }
            else {
                new Effect.Move(this.polozky[i], { sync: false, x: 0, y: posun_o, mode: 'absolute' })
            }
        }
        this.aktualnaPolozka=(this.polozky.length-1);
    }
}

Rotator.prototype.presun= function (smer,pocet) {
    pocet=1;
    pocet=(pocet==undefined || pocet==null || pocet=="" || isNaN(pocet))?this.posuvanie_o:pocet;

    vzdialenost=this.smerPosunu=="vodorovne"?this.polozky[0].getWidth():this.polozky[0].getHeight();
    posun_o=smer=="-"?(vzdialenost*pocet)*(-1):((vzdialenost*pocet));

    //alert(this.aktualnePosunutie+"\npocet vsetkych: "+this.polozky.length+"\n"+this.polozky[this.aktualnePosunutie]);

    if (smer=="+") {
        posun_o=((vzdialenost*this.aktualnePosunutie)*(-1))+posun_o;
    }
    if (smer=="-") {
        posun_o=posun_o-(vzdialenost*this.aktualnePosunutie);
    }

    posuvaj_do=(this.aktualnaPolozka+pocet)
    posuvaj_do=posuvaj_do>=this.polozky.length?this.polozky.length:posuvaj_do;
    if (this.smerPosunu=="vodorovne") {
        new Effect.Move(this.umiestneniePoloziek[0], { sync: false, x: posun_o, y: 0, mode: 'absolute' })
    }
    else {
        new Effect.Move(this.umiestneniePoloziek[0], { sync: false, x: 0, y: posun_o, mode: 'absolute' })
    }
    for (i=this.aktualnaPolozka; i<posuvaj_do; i++) {
        dalsia=(i+1)>=this.polozky.length?0:(i+1);
        this.polozky[dalsia].setStyle("margin-left: "+(posun_o*(-1))+"px;")
        //prvok=Builder.node("div",{className: 'slide'},[.down(0)]);
        this.umiestneniePoloziek[0].appendChild(this.polozky[i]);
        this.polozky[i].setStyle("margin-left: 0px;")
    }

    this.aktualnaPolozka=(posuvaj_do==this.polozky.length?0:posuvaj_do);
    /*for (i=0; i<this.polozky.length; i++) {
        if (this.smerPosunu=="vodorovne") {
            new Effect.Move(this.polozky[i], { sync: false, x: posun_o, y: 0, mode: 'absolute' })
        }
        else {
            new Effect.Move(this.polozky[i], { sync: false, x: 0, y: posun_o, mode: 'absolute' })
        }
    }*/

    if (smer=="+") {
        this.aktualnePosunutie=this.aktualnePosunutie-pocet;
    }
    if (smer=="-") {
        this.aktualnePosunutie=this.aktualnePosunutie+pocet;
    }

    /*if (smer=="+") {
        this.aktualnaPolozka=this.aktualnaPolozka-pocet;
    }
    if (smer=="-") {
        this.aktualnaPolozka=this.aktualnaPolozka+pocet;
    }*/

    //obrazok=this.polozky[0];
    //this.RotatorPlocha.appendChild(obrazok);
}

