﻿var site = {
    lang: "",
    HM: false,
    domready: function (lang) {
        
        this.lang = lang;
        this.HM = new HistoryManager();
        new menu();
        new lightbox();
        new image();
        new list();
        this.HM.start();
    },
    addHistoryEvent: function (name, HMUID) {
        this.HM.addEvent(HMUID + ':changed', function (e) { site.call(name, { a: "history", v: e }); });
    },
    call: function (action, args) {
        this.fireEvent(action, args);
        return void (0);
    },
    submitForm: function (obj) {
        var form = $(obj.id);
        // validation
        var passed = true;
        form
            .getElements("input.valid")
                .each(function (input) {
                    var isValid = input.get("value").test(input.get("rel"));
                    if (!isValid)
                        input.addClass("error");
                    else
                        input.removeClass("error");
                    passed = passed && isValid;
                });
        if (passed) {
            $(obj.input).setStyle("visibility", "hidden");
            $(obj.validationErrorMessage).setStyle("display", "none");
            new Request.HTML({ "url": obj.url })
            .addEvents({
                "success": function () { $(obj.successMessage).setStyle("display", "block"); },
                "error": function () { $(obj.serverErrorMessage).setStyle("display", "block"); }
            })
            .post(form.toQueryString());
        } else {
            $(obj.validationErrorMessage).setStyle("display", "block");
        }
        return void (0);
    }
};
Object.append(site, new Events());
