var ErrorBox = new Class({    Implements: [Options],    options: {        Container: $('divError'),        Event: null,        alerts: {            required: "Gerekli alan.",            alpha: "Sadece harf giriniz.",            alphanum: "Sadece harf veya rakam giriniz.",            nodigit: "Kuruş hanesi girmeyiniz.",            digit: 'Geçerli sayı giriniz.',            digitmin: "En fazla %0 girebilirsiniz.",            digitltd: " %0 - %1 aras\u0131nda değer giriniz.",            number: "Geçerli numara giriniz.",            email: "Geçerli e-posta giriniz: <br /><span>ör: isminiz@domain.com</span>",            phone: "Geçerli telefon numarası giriniz.",            url: "Geçerli web adresi giriniz: <br /><span>ör: http://www.domain.com</span>"        },        regexp: {            required: '.+',            lengthmin: '',            lengthmax: '',            lengthrange: '',            alpha: /^[a-z ._-]+$/i,            alphanum: /^[a-z0-9 ._-]+$/i,            digit: /^[-+]?[0-9]+$/,            nodigit: /^[^0-9]+$/,            number: /^[-+]?\d*\.?\d+$/,            email: /^[a-z0-9._%-]+@[a-z0-9.-]+\.[a-z]{2,4}$/i,            phone: /^[\d\s ().-]+$/,            url: /^(http|https|ftp)\:\/\/[a-z0-9\-\.]+\.[a-z]{2,3}(:[a-z0-9]*)?\/?([a-z0-9\-\._\?\,\'\/\\\+&amp;%\$#\=~])*$/i        }    },    initialize: function(options) {        this.setOptions(options);        this.Errors = new Array();        this.ErrorObjects = new Array();        this.regex = ['length'];        this.isValid = false;        this.validations = [];        var regex = new Hash(this.options.regexp);        regex.each(function(el, key) {            this.regex.push(key);        }, this)        this.Hide();    },    Show: function() {        this.options.Container.getElements('span').each(function(item) {            item.destroy();        });        this.Errors.each(function(errorMessage) {            var span = new Element('span');            span.inject(this.options.Container);            span.set('html', errorMessage+'<br />');        } .bind(this));        this.options.Container.setStyle('display', 'block');        this.options.Container.removeClass('msg-info');        this.options.Container.addClass('msg-error');        var myFX = new Fx.Scroll(window).toElement(this.options.Container);        if (this.options.Event != null)            return new Event(this.options.Event).stop();    },    Hide: function() {        if (this.options.Container != null)            this.options.Container.setStyle('display', 'none');    },    AddElement: function(el, rules, errorMesages) {        el.errorObjects = [];        rules = rules.split(';');        errorMesages = errorMesages.split('|');        rules.each(function(rule, i) {            var errObj = new ErrorObject();            var ruleParts = rule.split(',');            if (ruleParts.length > 1) {                errObj.RuleMethod = ruleParts[0];                errObj.RuleArgs = ruleParts[1].split('|');            }            else {                errObj.RuleMethod = ruleParts[0];            }            if (this.regex.contains(errObj.RuleMethod)) {                errObj.RuleRegex = this.options.regexp[errObj.RuleMethod];            }            errObj.Element = el;            errObj.ErrorMessage = errorMesages[i];            this.ErrorObjects.push(errObj);        } .bind(this));        this.validations.push(el);    },    IsValid: function() {        this.Errors = [];        this.isValid = true;        this.ErrorObjects.each(function(errObj) {            if (!errObj.IsValid()) {                this.isValid = false;                this.Errors.push(errObj.ErrorMessage);            }        } .bind(this));        return this.isValid;    }});ErrorObject = new Class({    initialize: function() {        this.RuleMethod = '';        this.RuleRegex = '';        this.RuleArgs = [];        this.ErrorMessage = '';        this.Element = null;    },    _validate: function() {        var result = true;        switch (this.RuleMethod) {            case 'required':                if (this.Element.get('tag') == 'select') {                    if (this.RuleArgs[0]) {                        op = this.Element.options[this.Element.selectedIndex];                        if (op.value == this.RuleArgs[0]) {                            result = false;                        }                    }                    else if (this.Element.options[this.Element.selectedIndex] == null)                        result = false;                }                else if (this.Element.get('tag') == 'input') {                    result = this.Element.value.trim().test(this.RuleRegex);                }                break;            case 'lengthmin':                result = (this.Element.value.trim().length >= this.RuleArgs[0]);                break;            case 'lengthmax':                result = (this.Element.value.trim().length <= this.RuleArgs[0]);                break;            case 'lengthrange':                result = ((this.Element.value.trim().length >= this.RuleArgs[0]) && (this.Element.value.trim().length <= this.RuleArgs[1]));                break;        }/*        if (!result) {            this.Element.addClass('error');            this.Element.getParent().previousElementSibling.addClass('error');        }        else {            this.Element.removeClass('error');            this.Element.getParent().previousElementSibling.removeClass('error');        }*/        return result;    },    IsValid: function() {        return this._validate();    }});