Dom = YAHOO.util.Dom;

YAHOO.util.Event.onDOMReady(function() {
	// Global Dialog object
	var div = document.createElement('div');
	div.innerHTML = "<div class='hd'></div><div class='bd'></div>";
	document.body.appendChild(div);
	
	var businessDialog = new YAHOO.widget.Dialog(div,
	{
		width : "625px",
		visible : false,
		underlay : "none",
		draggable : false,
		modal: true,
		zindex: 50,
		constraintoviewport: true,
		fixedcenter: true
	} );

	// Hide Dialog
	var hideBusinessDialog = function() {
		this.hide();
	}

	//////////////////////////////////
	//// SUGGEST BUSINESS SECTION ////
	//////////////////////////////////

	var validateSuggestBusiness = function () {
		// Gathering Information
		var businessCompany = document.getElementById('businessCompany');
		var businessPhone = document.getElementById('businessPhone');
		var businessEmail = document.getElementById('businessEmail');
		var businessComment = document.getElementById('businessComment');
		
		// Fix errors
		businessPhone.value = businessPhone.value.replace(/[^0-9]/g, '');	
		
		// Validate and add to Errors
		var errors = '';
		if (businessCompany.value == "")
			errors += "<li>Company Name is required.</li>";
		if (businessPhone.value == "")
			errors += "<li>Phone Number is required.</li>";
		if (businessEmail.value == "")
			errors += "<li>Email Address is required.</li>";
		if (businessPhone.value.search(/(^$)|(^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,3})|(\(?\d{2,3}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$)/)==-1)
			errors += "<li>Phone Number is invalid.  Must be in the form 123-123-1234</li>";
		if (businessPhone.value.length < 10)
			errors += "<li>Phone Number is invalid.  Must be at least 10 digits</li>";
		if (businessEmail.value.search(/(^$)|(^[^@]+@([^@.]+\.)+[^@.]{2,6}$)/)==-1)
			errors += "<li>Email Address is invalid<br>";
		
		// Fill in errors div or return successful
		if (errors != '') {
			document.getElementById('businessSuggestErrors').innerHTML = "<font color='red'><b>There is a problem with the form:</b><br><ul>"+errors+"</ul></font>";
			return false;
		} else {
			document.getElementById('businessSuggestErrors').innerHTML = "";
			return true;
		}
	}

	var acceptBusinessSuggestion = function() {
		if (validateSuggestBusiness()) {
			var formObject = document.getElementById('businessSuggestForm');
			YAHOO.util.Connect.setForm(formObject);
			var request = YAHOO.util.Connect.asyncRequest('GET', 'advertise_xhr.php', businessSuggestionCallback);
		}
	}

	var businessSuggestionSuccess = function(o){
		// Gathering Information
		var root = o.responseXML.documentElement;
		var businessType = root.getElementsByTagName('businessType')[0].firstChild.nodeValue;
		var businessVar = businessType.toLowerCase();
		var businessVar = businessVar.substr(0,3);
		var success = root.getElementsByTagName('success')[0].firstChild.nodeValue;
		var reason = '';
		if (root.getElementsByTagName('reason'))
			reason = root.getElementsByTagName('reason')[0].firstChild.nodeValue;
			
		if (success == '1') {
			// Set the Dialog up
			businessDialog.setBody("Thank you for submitting your request about banner advertising on FSN Funeral Homes.  We've received your company information and will contact you within 24 hours.");
			var newButtons = [ { text:"Okay", handler:hideBusinessDialog } ]; 
			//{ text:"Add another "+businessType, handler:function(){showSuggestBusiness(businessVar);} },
			businessDialog.cfg.queueProperty("buttons", newButtons);
			
			// Show Dialog
			businessDialog.render();
		} else {
			document.getElementById('businessSuggestErrors').innerHTML = "<font color='red'><b>There is a problem with the form:</b><br>"+reason+"</font>";
		}
	}
	var businessSuggestionFailure = function(o){
		alert("Error: Please Re-Log in and try again.");
	}
	var businessSuggestionCallback = {
		success: businessSuggestionSuccess,
		failure: businessSuggestionFailure
	};

	showSuggestBusiness = function(businessType) {
		// Information Gathering //
		var formContent = '';
		
		// Create Form
		formContent += "<form id='businessSuggestForm'>";
		formContent += "<table style='width:100%'><tbody><tr><td colspan='2'>";
		formContent += "<div id='businessSuggestErrors' style='height: 85px;'>Enter the following information about your business.  We will contact you within 24 hours about advertising on FSN Funeral Homes.</div>";
		formContent += "</td></tr>";
		
		formContent += "<tr><td style='vertical-align:top; width:50%'>*Company Name:<br>";
		formContent += "<input type='text' title='Company Name' size='25' value='' id='businessCompany' name='businessCompany'><br>";
		formContent += "Contact Name:<br>";
		formContent += "<input type='text' size='25' value='' id='businessContact' name='businessContact'><br>";
		formContent += "*Phone Number:<br>";
		formContent += "<input type='text' maxlength='12' title='Phone Number' size='13' value='' id='businessPhone' name='businessPhone'><br>";
		formContent += "*Email Address:<br>";
		formContent += "<input type='text' size='25' value='' id='businessEmail' name='businessEmail'><br>* Required";
		formContent += "</td><td style='vertical-align:top; width:50%'>";
		formContent += "Website Address:<br>";
		formContent += "<input type='text' size='25' value='' id='businessUrl' name='businessUrl'><br>";
		formContent += "Comments:<br>";
		formContent += "<textarea title='Comments?' id='businessComment' wrap='VIRTUAL' rows='5' cols='30' name='businessComment'></textarea>";
		formContent += "</td>";
		
		formContent += "</tr></tbody></table>";
		formContent += "<input name='businessType' type='hidden' value='"+businessType+"'>";
		formContent += "</form>";
		
		// Set up form
		businessDialog.setBody(formContent);
		businessDialog.cfg.queueProperty("width", "800px");
		businessDialog.cfg.queueProperty("buttons", [{ text:"Submit", handler: acceptBusinessSuggestion, isDefault:true }, { text:"Cancel", handler: hideBusinessDialog }]);
		businessDialog.setHeader("Contact us about advertising opportunities.");
		
		// Show Dialog
		businessDialog.render();
		businessDialog.show();
		return false;
	}
});

