var InfoRequestController = Class.create();

InfoRequestController.prototype = {

	initialize: function(divId, formId, submitId, url){
		this.divId = divId;
        this.formId = formId;
        this.url = url;
        this.submitId = submitId;
        $(submitId).onclick = this.requestInfo.bind(this);
        $(formId).onsubmit = function () { return false; };
	},

	showInfoForm: function (){
		Element.show(this.divId);
		$(this.divId).style.display = 'block';
	},

	hideInfoForm: function(id) {
		Element.hide(this.divId);
	},

	requestInfo: function(){
		if ($F('name') == '' || ($F('email') == '' && $F('phone') == '')){
			alert("This form requires a name and an email or a phone.");
			return;
		}
		
		var first_name= $F('name');
		var last_name = '';
		var space = first_name.indexOf(' ', 0);
		if (space > 0){
			last_name = first_name.substr(space + 1);
			first_name = first_name.substr(0, space);
		}
		//alert(first_name + " " + last_name);
		$('first_name').value = first_name;
		$('last_name').value = last_name;
		

		var req = new Ajax.Request(
			this.url,
			{
				method: 'post',
				parameters: $(this.formId).serialize(),
				onSuccess: this.infoRequestSuccess.bind(this),
                onFailure: this.infoRequestFailure.bind(this)
			}
		);
		WU.disableAll(this.divId);
	},

    infoRequestSuccess: function(req){
		//alert("The Information Request Succeeded");
        WU.enableAll(this.divId);
		var txt = req.responseText;
		var obj = eval('(' + txt + ')');
		if (obj.result == 'success'){
			window.location = "info-request-thanks.php";
		} else {
			alert("Your entry was not processed due to a system problem. Please call 314.918.8800");
		}
	},

    infoRequestFailure: function(req){
		//alert("The Information Request Failed");
		WU.enableAll(this.divId);
		alert("Your entry was not processed due to a system problem. Please call 314.918.8800");

    },

    enterContest: function(){
            if ($F('name') == '' || ($F('email') == '' && $F('phone') == '')){
                    alert("We require a name and an email or a phone.");
                    return;
            }
            var first_name= $F('name');
            var last_name = '';
            var space = first_name.indexOf(' ', 0);
            if (space > 0){
                    last_name = first_name.substr(space + 1);
                    first_name = first_name.substr(0, space);
            }
            //alert(first_name + " " + last_name);
            $('first_name').value = first_name;
            $('last_name').value = last_name;
            //alert(Form.serialize(this.formId));
            var req = new Ajax.Request(
                    'save-contest-entry.php',
                    {
                            method: 'post',
                            parameters: Form.serialize(this.formId),
                            onSuccess: this.contestRequestSuccess.bind(this),
            onFailure: this.infoRequestFail.bind(this)

                    }
            );
            WU.disableAll(this.divId);
    },

	contestRequestSuccess: function(req){
		var div = $(this.divId);
		WU.enableAll(div);
		var txt = req.responseText;
		var obj = eval('(' + txt + ')');
		if (obj.result == 'success'){
			//Element.hide(div);
			window.location = "contest-thanks.php";

		} else {
			alert("Your entry was not processed due to a system problem. Please call 314.918.8800");
		}
	}

}
