/////////////////////////////////////////////////////////////////////////
//  zxForgotPassword v1.0 - 9:20 AM 30/10/2007 | Upd 03/06/2008        //
//                                                                     //
// @author: azim.zakhidov@cyberplex.com                                //
// @Form Validation for Hook                                           //
/////////////////////////////////////////////////////////////////////////

window.addEvent('load', function(){
    ForgotPassword = new zxForgotPassword();
});

var zxForgotPassword = new Class({
    options: {
        form:'form_forgot',
        phone:'forgotpass_phone_number',
        email:'forgotpass_email',
        errorDiv: 'hook_error',
        errorPhone: 'Invalid hook&trade; phone number',
        errorEmail: 'Invalid Email Address'

    },

    setOptions:function(options){
        this.options = Object.extend(this.options, options || {} );
    },

    initialize:function(options){
        this.setOptions(options);
        if (!$(this.options.form)) { return ''; }
        this.bind();
    },

    bind: function(){
        $(this.options.form).addEvent('submit', function(ev){
            var msg = '';

            if ( $(this.options.phone) && !this.validatePhone( $(this.options.phone) )){
                msg += this.options.errorPhone;
            }

            if ( $(this.options.email) && !this.validateEmail( $(this.options.email) )){
                msg += (msg!=''?'<br>':'')+this.options.errorEmail;
            }

            if (msg!=''){
                var ev = new Event(ev).stop();
                this.showError(msg);
                return false;
            }
        }.bind(this));
    },

    showError:function(error){
        $(this.options.errorDiv).setHTML(error).setStyle('display',(error=='')?'none':'block');
    },

    validatePhone:function(el){
        var reg = /^([0-9]{3}|\([0-9]{3}\))[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{4}$/;
        return el.value.trim().test(reg);
    },

    validateEmail:function(el){
        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
        return el.value.trim().test(reg);
    }
});
