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-message').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 ($('newsletter')) {
                    var email = $('newsletter');
                }
                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);
		}]
]);

