YAHOO.namespace("helpform.container");
var valid = false;

YAHOO.util.Event.onDOMReady(function () {
	
	// Remove progressively enhanced content class, just before creating the module
    YAHOO.util.Dom.removeClass("dialog1", "yui-pe-content");
	
	// Define various event handlers for Dialog
	var handleSubmit = function() {
		
		this.submit();
		
		if (valid) {
			YAHOO.loading.wait = new YAHOO.widget.Panel("wait",
															{ width: "260px", 
															  fixedcenter: true, 
															  close: true, 
															  draggable: false, 
															  zindex:10,
															  modal: true,
															  visible: true
															}
													);

			YAHOO.loading.wait.setHeader("Sending Questions/Comments ...");
			YAHOO.loading.wait.setBody("<img src=\"images/rel_interstitial_loading.gif\"/>");
			YAHOO.loading.wait.render(document.body);
		}
	};
	var handleCancel = function() {
		this.cancel();
	};

	// Instantiate the Dialog
	YAHOO.helpform.container.dialog1 = new YAHOO.widget.Dialog("dialog1", 
				{ width : "400px",
				  fixedcenter : true,
				  visible : false, 
				  zindex: 4,
				  modal: true,
				  constraintoviewport : true,
				  buttons : [ { text:"Submit", handler:handleSubmit, isDefault:true },
							  { text:"Cancel", handler:handleCancel } ]
				 } );

	var handleSuccess = function(o) {
		var statusCode = o.responseText;
		var codeArray = statusCode.split(",");
		
		if (codeArray.length < 0)
			statusMsg = "Unable to submit questions/comments, please try again!";
		else
		{
			if (codeArray[0] == "0" || codeArray[0] == 0)
			{
				statusMsg = codeArray[1];
					
				statusHeader = "Error!";
				statusMsg += "<p><a href=\"javascript:closePanel('','')\">Close</a></p>";
			}
			else
			{
				statusHeader = "Submission Successful!";
				statusMsg = "Questions/Comments have been submitted!<p><a href=\"javascript:closePanel('', '')\">Close</a></p>";
			}
		}

		YAHOO.loading.wait.setHeader(statusHeader);
		YAHOO.loading.wait.setBody(statusMsg);
	};

	var handleFailure = function(o) {
		YAHOO.loading.wait.setHeader("Error!");
		YAHOO.loading.wait.setBody("Unable to submit questions/comments, please try again!<p><a href=\"javascript:closePanel('','')\">Close</a></p>");
	};

	YAHOO.helpform.container.dialog1.callback = { success: handleSuccess,
												 failure: handleFailure };
												 
	// Render the Dialog
	YAHOO.helpform.container.dialog1.render();

	// Validate the entries in the form to require that both first and last name are entered
	YAHOO.helpform.container.dialog1.validate = function() {
		var data = this.getData();
		var errorMsg = "Please provide the following:\n";
		
		if (data.firstname == "")
			errorMsg = errorMsg + '\n* First Name';
		
		if (data.lastname == "")
			errorMsg = errorMsg + '\n* Last Name';
			
		if (data.email == "")
			errorMsg = errorMsg + '\n* Email Address';
		else if (emailcheck(data.email) == false)
			errorMsg = errorMsg + '\n* Valid Email Address';
			
		if (data.questioncomm == "")
			errorMsg = errorMsg + '\n* Questions or Comments';
		
		if (errorMsg != "Please provide the following:\n")
		{
			alert(errorMsg);
			valid = false;
			return false;
		} else {
			valid = true;
			return true;
		}
	};

	YAHOO.util.Event.addListener("showform", "click", YAHOO.helpform.container.dialog1.show, YAHOO.helpform.container.dialog1, true);
});

// Function validates an email address
function emailcheck(str) {

	var at = "@";
	var dot = ".";
	var lat = str.indexOf(at);
	var lstr = str.length;
	var ldot = str.indexOf(dot);
	
	if (str.indexOf(at)==-1)
	   return false;


	if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr)
	   return false;

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	    return false;

	if (str.indexOf(at,(lat+1))!=-1)
	    return false;

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	    return false;

	if (str.indexOf(dot,(lat+2))==-1)
	    return false;
		
	if (str.indexOf(" ")!=-1)
	    return false;

 	return true;
}
