var nfh = {
	initForm:function(){
		var emailForm = $('mainForm');
		
		if (emailForm) {
			emailForm.select('input').each(function(idx){
				$(idx).observe('focus', function(event){nfh.focusValue(Event.element(event));});
				$(idx).observe('blur', function(event){nfh.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') || '';
		}
	},
    
    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!');
                }
            }
        });
    	
	},
    
    orderForm: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;
        }
    	
		if ($F('phone').empty()) {
			$('phone').addClassName('frmError');
			alert("The 'Phone' field is required, please try again!");
			$('phone').focus();
			return;
		}

        var setAjax = new Ajax.Request('/scripts/ajax/', {
    		parameters: Object.toQueryString({ 
	            'fields' : Form.serialize('mainForm'),
	            'func'   : 'orderForm'
        	}),
            onComplete: function (req) {
                stateRes = req.responseText;
                if (stateRes==1) {
                    $('orderForm').hide();
                    $('orderThankU').show();
                } else {
                    alert('An error occured, Please try again!');
                }
            }
        });
    	
	},
    
    excLinks:function(){
        if ($F('excEmail').empty() || $F('excEmail')==$('excEmail').readAttribute('rel')) {
            $('excEmail').addClassName('frmError');
            alert('Email, is a required field, please try again!');
            $('excEmail').focus();
            return;
        } else {
            if (!this.vEmail($F('excEmail')))
            {
                $('excEmail').addClassName('frmError');
                alert('This email address is invalid, please try again!');
                $('excEmail').focus();
                return;
            }
        }
        
        if ($F('excUrl').empty() || $F('excUrl')==$('excUrl').readAttribute('rel')) {
            $('excUrl').addClassName('frmError');
            alert('The web address, is a required field, please try again!');
            $('excUrl').focus();
            return;
        }
        
        var AjaxPars = { 
            'fields' : Form.serialize('mainForm'),
            'func'   : 'excLinks'
        };
        var setAjax = new Ajax.Request('/scripts/ajax/', {
            parameters: $H(AjaxPars).toQueryString(),
            onComplete: function (req) {
                if (req.responseText==1) {
                    $('excEmail').hide(); $('excUrl').hide();
                    Effect.SlideUp('excForm',{ duration: 0.3, afterFinish:function(){
                        Effect.SlideDown('thankYou',{ duration:0.3, transition:Effect.Transitions.spring });
                    }});
                } else {
                    alert('An error occured, Please try again!');
                }
            }
        });
    },
    
    joinTheCult:function(){
        if ($F('joinEmail').empty() || $F('joinEmail')==$('joinEmail').readAttribute('rel')) {
            $('joinEmail').addClassName('frmError');
            alert('Email, is a required field, please try again!');
            $('joinEmail').focus();
            return;
        } else {
            if (!this.vEmail($F('joinEmail')))
            {
                $('joinEmail').addClassName('frmError');
                alert('This email address is invalid, please try again!');
                $('joinEmail').focus();
                return;
            }
        }
        
        var AjaxPars = { 
            'fields' : Form.serialize('mainForm'),
            'func'   : 'sendEmail'
        };
        var setAjax = new Ajax.Request('/scripts/ajax/', {
            parameters: $H(AjaxPars).toQueryString(),
            onComplete: function (req) {
                if (req.responseText==1) {
                    $('joinEmail').next('span').hide();
                    $('joinEmail').hide();
                    Effect.SlideUp('emailForm',{ duration: 0.3, afterFinish:function(){
                        Effect.SlideDown('thankYou',{ duration:0.3, transition:Effect.Transitions.spring });
                    }});
                } else {
                    alert('An error occured, Please try again!');
                }
            }
        });
    }
};


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