YAHOO.namespace("mrespta.evReminder");

// enclose in function scope namespace
(function(){
    var Mres = YAHOO.mrespta;
    var EvRem = Mres.evReminder;
    
    EvRem.initUI = function() {
    	if (EvRem.dlg)
    	    return; // already done
	    // Define various event handlers for Dialog
	    var handleSubmit = function() {
		    this.submit();
		    EvRem.dlg.hide();
	    };
	    var handleCancel = function() {
		    this.cancel();
		    EvRem.dlg.hide();
	    };
	    var handleSuccess = function(o) {
		    var response = o.responseText;
		    response = response.split("<!")[0];
		    alert(response);
	    };
	    var handleFailure = function(o) {
		    alert("Submission failed: " + o.status);
	    };
    
	    // Instantiate the Dialog
	    EvRem.dlg = new YAHOO.widget.Dialog("addRemindDlg", 
							    { width : "35em",
							      fixedcenter : true,
							      visible : false, 
							      constraintoviewport : true,
							      buttons : [ { text:"Submit", handler:handleSubmit, isDefault:true },
								          { text:"Cancel", handler:handleCancel } ]
							    });

	    // Validate the entries in the form to require that both first and last name are entered
	    EvRem.dlg.validate = function() {
		    var data = this.getData();
		    if (data.email == "" || data.email.match(/[^@]+@[^@]+$/) == null) {
			    alert("Please enter a valid email address.");
			    return false;
		    } else if (data.evlist == ""){
			    alert("There are no non-repeating events to add.");
			    return false;
		    }
            // set the hidden field values
            var today = new Date();
            var date = YAHOO.util.Dom.get("evdate").value;
            //var d = date.split("/"); //[d[1],d[2],d[0]].join("/");
            //date = new Date(d[2],d[0]-1,d[1]);
            var d = date.split("-"); //[d[1],d[2],d[0]].join("/"); mysql date
            date = new Date(d[0],d[1]-1,d[2]);
            //if (date.getTime() < today.getTime())
            if (d[0] < today.getFullYear() || ( d[0] == today.getFullYear() &&  (d[1]-1) < today.getMonth()) ||
               ( d[0] ==  today.getFullYear() && (d[1]-1) == today.getMonth() && d[2] < today.getDate()))
            {
                alert("The event date you have selected is past. Please select an event in the future.");
                return false;
            }
            var remdate = null;
            var advance = Number(YAHOO.util.Dom.get("advance").value);
            if (advance == -1) // immediate
				remdate = today;
            else
				remdate = YAHOO.widget.DateMath.subtract(date,YAHOO.widget.DateMath.DAY,advance); // convert to num
            //if (remdate.getTime() < today.getTime()) // if its in the past
            var remyr = remdate.getFullYear(), thisyr = today.getFullYear(), remmo = remdate.getMonth(), thismo = today.getMonth();
            if (remyr < thisyr || (remyr == thisyr && remmo < thismo) ||
				 (remyr ==  thisyr && remmo == thismo && remdate.getDate() < today.getDate()))
            {
                alert("Please select an advance notice day that is in the present or future.");
                return false;
            }
            
            //remdate = [remdate.getMonth() + 1, remdate.getDate(),remdate.getFullYear()].join('/');
            //mysql likes yyyy-mm-d
            remdate = [remdate.getFullYear(),remdate.getMonth() + 1, remdate.getDate()].join('-');
            YAHOO.util.Dom.get("reminddate").value = remdate;

			return true;
	    };

        EvRem.setEvents = function (adate, evList) // adate - array date
        {
            try
            {
                YAHOO.util.Dom.get("evRemlist").value = evList.join("<br/>");
                YAHOO.util.Dom.get("evdate").value = [adate[0],adate[1],adate[2]].join("-"); //mysql style
                YAHOO.util.Dom.get("eventdate").innerHTML = [adate[0],adate[1],adate[2]].join("-"); //mysql style
            }
            catch(e)
            {
                eval('debugger;');
            }
        };

	    // Wire up the success and failure handlers
	    EvRem.dlg.callback = { success: handleSuccess,
						         failure: handleFailure };
    	
    	
	    // Render the Dialog
	    EvRem.dlg.render();

    } // initUI

	EvRem.getReminders = function ()
	{
		var url = "/ws/getreminders.php?email=";

		function onSuccess(o)
		{   
			var data;
			if (o.status == 200)
			{
				var el = YAHOO.util.Dom.get("remresult");
				if (el)
					el.innerHTML = o.responseText;
			}
		}
	    
		function onFailure (o)  { }
  		var callback =
		{
			success : onSuccess,
			failure : onFailure,
			scope : this
		};

		var email = YAHOO.util.Dom.get("emailforrems").value;
		url += email;
		YAHOO.util.Connect.asyncRequest('GET', url, callback); 
		
	};

	EvRem.setup = function ()
	{
		YAHOO.util.Dom.get('submitgetrems').onclick = function () 
						{YAHOO.mrespta.evReminder.getReminders();}
		
	};



    //YAHOO.util.Event.onDOMReady(init);
})();
