var Successpopup = Class.create();
Successpopup.prototype = {
    initialize: function(form, getSubscribeUrl){
        this.form = form;
        
		this.getSubscribeUrl = getSubscribeUrl;
		this.onComplete = this.resetLoadWaiting.bindAsEventListener(this);
		this.containerSuffix = '';
    },
	
	_disableEnableAll: function(element, isDisabled) {
        var descendants = element.descendants();
        for (var k in descendants) {
            descendants[k].disabled = isDisabled;
        }
        element.disabled = isDisabled;
    },
	
	resetLoadWaiting: function(transport){
        this.setLoadWaiting(false);
    },
	
	setLoadWaiting: function(enable) {
        if (enable) {
			var container = $('news-container'+this.containerSuffix);
            container.setStyle({opacity:.5});
            this._disableEnableAll(container, true);
            Element.show('news-please-wait'+this.containerSuffix);
        }
		else {
			var container = $('news-container'+this.containerSuffix);
            container.setStyle({opacity:1});
            this._disableEnableAll(container, false);
            Element.hide('news-please-wait'+this.containerSuffix);
        }
    },
	
    getsuccessPopup: function(){  
			this.setLoadWaiting(true);
            var request = new Ajax.Request(
                this.getSubscribeUrl,
                {
                    method: 'post',
					onComplete: this.onComplete,
                    onFailure: function(response){
						alert('An error occurred while processing your request');
						this.onComplete;
					},
					onSuccess: function(response){
						if(response.responseText!=''){
							$('popup-added').style.display='';
							$('msgs').innerHTML = response.responseText;
							$('newsletter').value='Enter your email address';
						}
						else{
							$('popup-added').style.display='none';
							$('newsletter').value='Enter your email address';
						}
					},
                    parameters: Form.serialize(this.form)
                }
            );
	}
}

//Overwrite Validation Function in validation.js
Validation.addAllThese([
	['validate-cemail', 'Please make sure your emails match.', function(v) {
                if ($('email')) {
                    var email = $('email');
                }
                else {
                    var email = $$('.validate-email').length ? $$('.validate-email')[0] : '';
                }
                var cemail = $('cemail') ? $('cemail') : $$('.validate-cemail')[0];
                return (email.value == cemail.value);
            }],
	['validate-USphone', 'Please enter a valid number. <br>For example 1234567890 or 222 555 1212, 222-555-1212, (222) 555 1212, (222) 555-1212.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^(?:\([0-9]\d{2}\)\ ?|[0-9]\d{2}(?:\-?|\ ?))[0-9]\d{2}[- ]?\d{4}$/.test(v);
		}]
]);
