﻿var fontSelector = new Class({
    initialize: function() {
        this.cols = 4;
        this.rows = 10;
        this.i = -1;
        this.fontNum = 0;
        this.isChanging = false;
        this.fontFamiliesClass = ["t1", "t2", "t3", "t4"];
        this.wS = window.getSize();
        var overlay = new Element("div", { "id": "overlayDiv", "class": "overlay fixME", "styles": {"z-index" : 6000} }).inject($(document.body).addClass("h"));
        overlay.addEvents({ "mousemove": this._changeTypeFace.bindWithEvent(this),
            "mousedown": this._fixTypeFace.bindWithEvent(this)
        });

    },
    _changeTypeFace: function(ev) {
        $(document.body).addClass("rolled");
        $(document.body).removeClass("h");
        var c = Math.round(ev.page.x / this.wS.x * (this.rows - 1)) + 1;
        var r = Math.round(ev.page.y / this.wS.y * (this.cols - 1)) + 1;
        var i = (r * this.rows + c) % this.fontFamiliesClass.length;
        if (this.i == i || this.isChanging) return;
        this.i = i;
        this.fontNum = (this.fontNum + 1) % this.fontFamiliesClass.length;
        this._changeClass(this.fontFamiliesClass[this.fontNum]);
    },
    _changeClass: function(curClass) {
        this.fontFamiliesClass.each(function(classStr) {
            if (curClass == classStr) $(document.body).addClass(classStr);
            else $(document.body).removeClass(classStr);
        });
    },
    _fixTypeFace: function(ev) {
        this._fixLinks(this.fontNum + 1);
        if (!$(document.body).hasClass("rolled")) return;
        $("overlayDiv").destroy();
    },
    _fixLinks: function(curTypeNum) {
        $$("a[href]").filter(function(aElt) {
            return aElt.get("href").test(/\/t([0-9])?\//);
        }).each(function(aelt) {
            aelt.set("href", aelt.get("href").replace(/\/t([0-9])?\//, "/t" + (curTypeNum) + "/"));
        });
    }
});

var expodromeLink = new Class({
    initialize: function() {
        $$("a[href^=/expodrome]").each(function(linkElt) {
            linkElt.set({ "href": "javascript:void(0)", "events": { "click": this._toggle.bind(this)} });
        }, this);
    },
    _toggle: function() {
        var expowin = window.open("/expodrome.aspx", "expoWindow", "menubar=0,resizable=1,width=130,height=750, left=0, top=0");
        window.moveTo(150, 0);
    }
});
window.addEvent("domready", function(){new expodromeLink();});
