var vdm = {
    initForm:function(){
        var emailForm = $('mainForm');
        
        if (emailForm) {
            emailForm.select('input').each(function(idx){
                $(idx).observe('focus', function(event){vdm.focusValue(Event.element(event));});
                $(idx).observe('blur', function(event){vdm.blurValue(Event.element(event));});
            });
        }
    },
    
    focusValue:function(field) {
        if (!$F(field).empty()) { if ($F(field)==field.readAttribute('rel')) { $(field).value = ''; } }
    },
    
    blurValue:function(field) {
        if ($F(field).empty()) { $(field).addClassName('frmBlur'); $(field).value = field.readAttribute('rel') || ''; }
        else $(field).className = 'frm';
    },
    
    vEmail:function(str) {
        var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        return filter.test(str);
    },
    
    contactUs:function() {
        if ($F('fullname').empty()) {
            $('fullname').addClassName('frmError');
            alert("The 'Name' field is required, please try again!");
            $('fullname').focus();
            return;
        }

        if ($F('email').empty()) {
            $('email').addClassName('frmError');
            alert("The 'Email' field is required, please try again!");
            $('email').focus();
            return;
        }
        
        if (!this.vEmail($F('email'))) {
            $('email').addClassName('frmError');
            alert('This email address is invalid, please try again!');
            $('email').focus();
            return;
        }
        
        var setAjax = new Ajax.Request('/scripts/ajax/', {
            parameters: Object.toQueryString({ 
                'fields' : Form.serialize('mainForm'),
                'func'   : 'contactForm'
            }),
            onComplete: function (req) {
                stateRes = req.responseText;
                if (stateRes==1) {
                    $('contactForm').hide();
                    $('contactThankU').show();
                } else {
                    alert('An error occured, Please try again!');
                }
            }
        });
        
    },
    
    joinMailing:function(obj_id){
        if ($F(obj_id).empty() || $F(obj_id)==$(obj_id).readAttribute('rel')) {
            $(obj_id).addClassName('frmError');
            alert('Email, is a required field, please try again!');
            $(obj_id).focus();
            return;
        } else {
            if (!this.vEmail($F(obj_id))) {
                $(obj_id).addClassName('frmError');
                alert('This email address is invalid, please try again!');
                $(obj_id).focus();
                return;
            }
        }
        
        var setAjax = new Ajax.Request('/scripts/ajax.php', {
            parameters: Object.toQueryString({ 
                'fields' : Form.serialize('mainForm'),
                'func'   : 'joinMailingList'
            }),
            onComplete: function (req) {
                if (req.responseText==1) {
                    Effect.SlideUp('mailing',{ duration: 0.2, afterFinish:function(){
                        Effect.SlideDown('thankYou',{ duration: 0.2 });
                    }});
                } else {
                    alert('An error occured, Please try again!');
                }
            }
        });
            
    }
};


document.observe("dom:loaded", function() { vdm.initForm(); });
