
$(document).ready(function() {

	$(".addClientButton").click( function() { newClient(); return false; });


	/* Client & Contact Editor Variables */
	
	var	client_name = $("#clientEditor_clientname"),
		client_contact = $("#clientEditor_contactname"),
		client_address1 = $("#clientEditor_address1"),
		client_address2 = $("#clientEditor_address2"),
		client_city = $("#clientEditor_city"),
		client_state = $("#clientEditor_state"),
		client_zip = $("#clientEditor_zip"),
		client_country_code = $("#clientEditor_country_code"),
		client_phone = $("#clientEditor_phone"),
		client_fax = $("#clientEditor_fax"),
		client_email = $("#clientEditor_email"),
		
		client_errorMsg = $("#client_errorMsg"),
		contact_errorMsg = $("#contact_errorMsg"),
		
		contact_fullname = $("#contactEditor_fullname"),
		contact_email = $("#contactEditor_email"),
		contact_phone = $("#contactEditor_phone"),
		contact_fax = $("#contactEditor_fax");


	$("#clientEditor").dialog({
		bgiframe: true,
		autoOpen: false,
		close: function() { client_errorMsg.slideUp(); },
		width: 350,
		modal: true,
		resizable: false,
		buttons: {
			"Save Client Details": function() {
		
				var validCompanyname = (client_name.val().length > 2);
				
				if (!validCompanyname) {
					client_errorMsg.slideUp(500, function() { $(this).removeClass("ui-state-default").addClass("ui-state-error").html("Please enter a Company Name.").slideDown(500); });
					return false;
				}
		
				var validContactName = (client_contact.val().length > 2);
				
				if (!validContactName) {
					client_errorMsg.slideUp(500, function() { $(this).removeClass("ui-state-default").addClass("ui-state-error").html("Please enter a Contact Name.").slideDown(500); });
					return false;
				}
		
				var validEmail = ((client_email.val().indexOf(".") > 0) && (client_email.val().indexOf("@") > 0));

				if (!validEmail) {
					client_errorMsg.slideUp(500, function() { $(this).removeClass("ui-state-default").addClass("ui-state-error").html("Please enter a Valid Email Address.").slideDown(500); });
					return false;
				}

				
				$.ajax({
					beforeSend: function() { client_errorMsg.hide(); },
					url: "saveClientDataXML",
					data: { clientID: $("#clientEditor").dialog("option", "clientID"), name: client_name.val(), contactname: client_contact.val(), email: client_email.val(), phone: client_phone.val(), fax: client_fax.val(), address1: client_address1.val(), address2: client_address2.val(), city: client_city.val(), state: client_state.val(), zip: client_zip.val(), country_code: client_country_code.val()},
					success: function(clientID) {
						client_errorMsg.slideUp();
						
						if ($("#contactListing"))
						{
							
							/* if client screen object does't exist then create it */
							if ($("#contactListing" + clientID).length <= 0) {
								
								$("#clientListings").prepend('<div id="contactListing' + clientID + '" class="contactListing" style="display:none;"><div id="contactHeading"><h2 id="clientDisplayName" onClick="editClient(' + clientID + ');">' + client_name.val() + '</h2><div><a href="#" onClick="return deleteClient(' + clientID + ');" class="ui-corner-top">Delete this Client</a><a href="#" onClick="return newContact(' + clientID + ');" class="ui-corner-top">Add a New Contact</a></div></div><div id="contactData"><div id="addressListing" class="ui-corner-all" onClick="editClient(' + clientID + ');"><div id="clientDisplayContact">' + client_contact.val() + '</div><div class="emailString" id="clientDisplayEmail">' + client_email.val() + '</div><div id="clientDisplayAddress1" class="giveMeSomeRoom">' + client_address1.val() + '</div><div id="clientDisplayAddress2">' + client_address2.val() + '</div><div><span id="clientDisplayCity" style="margin-right: 8px;">' + client_city.val() + '</span><span id="clientDisplayState" style="margin-right: 8px;">' + client_state.val() + '</span><span id="clientDisplayZip">' + client_zip.val() + '</span></div><div id="clientDisplayCountryCode">' + $('#clientEditor_country_code :selected').text() + '</div><div class="telephoneString" id="clientDisplayPhone">' + client_phone.val() + '</div><div class="faxString" id="clientDisplayFax">' + client_fax.val() + '</div></div><div id="peopleListing"></div></div></div>');
	/* 							$("#clientListings").prepend('' . str_replace(array("'", "XXXclientIDXXX", 'XXXclientnameXXX', 'XXXcontactnameXXX', 'XXXaddress1XXX', 'XXXaddress2XXX', 'XXXcityXXX', 'XXXstateXXX', 'XXXzipXXX', 'XXXcountry_codeXXX', 'XXXphoneXXX', 'XXXfaxXXX', 'XXXemailXXX'), array("'", "' + clientID + '", "' + client_name.val() + '", "' + client_contact.val() + '", "' + client_address1.val() + '", "' + client_address2.val() + '", "' + client_city.val() + '", "' + client_state.val() + '", "' + client_zip.val() + '", "' + $('#clientEditor_country_code :selected').text() + '", "' + client_phone.val() + '", "' + client_fax.val() + '", "' + client_email.val() + '"), ereg_replace("[\t\r\n]", '', build_client_line() )) . ''); */
								$("#contactListing" + clientID).slideDown(1000, function() { $("#noClientsMsg").slideUp (); });
							}
	
							/* Update screen items */
							
							$("#contactListing" + clientID).find("#clientDisplayName").html(client_name.val());
							$("#contactListing" + clientID).find("#clientDisplayContact").html(client_contact.val());
							$("#contactListing" + clientID).find("#clientDisplayAddress1").html(client_address1.val());
							$("#contactListing" + clientID).find("#clientDisplayAddress2").html(client_address2.val());
							$("#contactListing" + clientID).find("#clientDisplayCity").html(client_city.val());
							$("#contactListing" + clientID).find("#clientDisplayState").html(client_state.val());
							$("#contactListing" + clientID).find("#clientDisplayZip").html(client_zip.val());
							$("#contactListing" + clientID).find("#clientDisplayCountryCode").html($("#clientEditor_country_code :selected").text());
							$("#contactListing" + clientID).find("#clientDisplayPhone").html(client_phone.val());
							$("#contactListing" + clientID).find("#clientDisplayFax").html(client_fax.val());
							$("#contactListing" + clientID).find("#clientDisplayEmail").html(client_email.val());
							
						}
						
						if ($("#clientSelector_pulldown"))
						{
							$("#clientSelector_pulldown").append ('<option value="' + clientID + '">' + client_name.val() + '</option>');
							$("#clientSelector_pulldown").val (clientID);
						}

					}
				});
				
				$(this).dialog("close");
			},
			Cancel: function() {
				$(this).dialog("close");
			}
		}
	});


	$("#contactEditor").dialog({
		bgiframe: true,
		autoOpen: false,
		width: 350,
		close: function() { contact_errorMsg.slideUp(); },
		modal: true,
		resizable: false,
		buttons: {
			"Save Contact Details": function() {
				
				var contactID = $("#contactEditor").dialog("option", "contactID");
				var clientID = $("#contactEditor").dialog("option", "clientID");

				var validContactName = (contact_fullname.val().length > 2)
				
				if (!validContactName) {
					contact_errorMsg.slideUp(500, function() { $(this).removeClass("ui-state-default").addClass("ui-state-error").html("Please enter a Contact Name.").slideDown(500); });
					return false;
				}
		
				var validEmail = ((contact_email.val().indexOf(".") > 0) && (contact_email.val().indexOf("@") > 0));

				if (!validEmail) {
					contact_errorMsg.slideUp(500, function() { $(this).removeClass("ui-state-default").addClass("ui-state-error").html("Please enter a Valid Email Address.").slideDown(500); });
					return false;
				}


				$.ajax({
					beforeSend: function() { contact_errorMsg.hide(); },
					url: "saveContactDataXML",
					data: { contactID: contactID, clientID: clientID, fullname: contact_fullname.val(), email: contact_email.val(), phone: contact_phone.val(), fax: contact_fax.val() },
					success: function(response) {

						contact_errorMsg.slideUp();
						
						/* find the personal nugget */
						var personal_nugget = $(".personalNugget[peopleID='" + response + "']");
						
						/* if does not exist - create! */
						if (personal_nugget.length <= 0) {
							$("#contactListing" + clientID).find("#peopleListing").prepend('<div class="personalNugget ui-corner-all" peopleID="' + response + '" onClick="editContact(' + response + ');"><div id="contactDisplayFullname" class="fullName">' + contact_fullname.val() + '</div><div id="contactDisplayEmail" class="emailString">' + contact_email.val() + '</div><div id="contactDisplayPhone" class="telephoneString">' + contact_phone.val() + '</div><div id="contactDisplayFax" class="faxString">' + contact_fax.val() + '</div></div>');
/* $("#contactListing" + clientID).find("#peopleListing").prepend('' . str_replace(array("'", 'XXXcontactIDXXX', 'XXXfullnameXXX', 'XXXemailXXX', 'XXXphoneXXX', 'XXXfaxXXX'), array("'", "' + response + '", "' + contact_fullname.val() + '", "' + contact_email.val() + '", "' + contact_phone.val() + '", "' + contact_fax.val() + '"), ereg_replace("[\t\r\n]", '', fashion_personal_nugget('XXXcontactIDXXX', 'XXXfullnameXXX', 'XXXemailXXX', 'XXXphoneXXX', 'XXXfaxXXX')  )) . ''); */
						}


						/* Update screen items */
						
						personal_nugget.find("#contactDisplayFullname").html(contact_fullname.val());
						personal_nugget.find("#contactDisplayEmail").html(contact_email.val());
						personal_nugget.find("#contactDisplayPhone").html(contact_phone.val());
						personal_nugget.find("#contactDisplayFax").html(contact_fax.val());

					}
				});
				
				$(this).dialog("close");
			},
			Cancel: function() {
				$(this).dialog("close");
			}
		}
	});


	/* Client Delete Dialog Behavior */
	
	$("#clientDeleteConfirmation").dialog({
		bgiframe: true,
		resizable: false,
		autoOpen: false,
		width: 760,
		modal: true,
		buttons: {
			"Delete and Destroy Client Data": function() {
				$.ajax({
					url: "deleteClientDataXML",
					data: { clientID: $("#clientDeleteConfirmation").dialog("option", "clientID") },
					success: function(clientID) {
						$("#contactListing" + clientID).slideUp(1000, function() { $(this).remove(); });
					}
				});
			
				$(this).dialog("close");
			},
			Cancel: function() {
				$(this).dialog("close");
			}
		}
	});
		
});


function newClient() {

	/* Clear ze Fields! */
	$("#clientEditor_clientname").val("");
	$("#clientEditor_contactname").val("");
	$("#clientEditor_address1").val("");
	$("#clientEditor_address2").val("");
	$("#clientEditor_city").val("");
	$("#clientEditor_state").val("");
	$("#clientEditor_zip").val("");
	$("#clientEditor_country_code").val("");
	$("#clientEditor_phone").val("");
	$("#clientEditor_fax").val("");
	$("#clientEditor_email").val("");
	
	$("#clientEditor").dialog("option", "title", "Add New Client");
	$("#clientEditor").dialog("option", "clientID", "NEW");
	$("#clientEditor").dialog("open");
	
	return false;
}


function newContact(clientID) {
	$("#contactEditor_fullname").val("");
	$("#contactEditor_email").val("");
	$("#contactEditor_phone").val("");
	$("#contactEditor_fax").val("");
	
	$("#contactEditor").dialog("option", "title", "Add New Contact");
	$("#contactEditor").dialog("option", "clientID", clientID);
	$("#contactEditor").dialog("option", "contactID", "NEW");
	$("#contactEditor").dialog("open");
	
	return false;
}

		
function editClient(clientID) {

	/* Gather Client Data */
	$.ajax({
		url: "getClientDataXML",
		data: { clientID: clientID },
		success: function(xml) {
		
			var ID = $(xml).find("ID").html(),
				clientname = $(xml).find("clientname").html(),
				contactname = $(xml).find("contactname").html(),
				address1 = $(xml).find("address1").html(),
				address2 = $(xml).find("address2").html(),
				city = $(xml).find("city").html(),
				state = $(xml).find("state").html(),
				zip = $(xml).find("zip").html(),
				country_code = $(xml).find("country_code").html(),
				phone = $(xml).find("phone").html(),
				fax = $(xml).find("fax").html(),
				email = $(xml).find("email").html();

			$("#clientEditor_clientname").val(clientname);
			$("#clientEditor_contactname").val(contactname);
			$("#clientEditor_address1").val(address1);
			$("#clientEditor_address2").val(address2);
			$("#clientEditor_city").val(city);
			$("#clientEditor_state").val(state);
			$("#clientEditor_zip").val(zip);
			$("#clientEditor_country_code").val(country_code);
			$("#clientEditor_phone").val(phone);
			$("#clientEditor_fax").val(fax);
			$("#clientEditor_email").val(email);

			$("#clientEditor").dialog("option", "title", "Edit Client Details");
			$("#clientEditor").dialog("option", "clientID", ID);
			$("#clientEditor").dialog("open");
		}
	});
}

		
function editContact(contactID) {

	/* Gather Contact Data */
	$.ajax({
		url: "getContactDataXML",
		data: { contactID: contactID },
		success: function(xml) {
			var ID = $(xml).find("ID").html(),
				clientID = $(xml).find("clientID").html(),
				fullname = $(xml).find("fullname").html(),
				email = $(xml).find("email").html(),
				phone = $(xml).find("phone").html(),
				fax = $(xml).find("fax").html();
				
			$("#contactEditor_fullname").val(fullname);
			$("#contactEditor_email").val(email);
			$("#contactEditor_phone").val(phone);
			$("#contactEditor_fax").val(fax);

			$("#contactEditor").dialog("option", "title", "Edit Contact Details");
			$("#contactEditor").dialog("option", "clientID", clientID);
			$("#contactEditor").dialog("option", "contactID", ID);
			$("#contactEditor").dialog("open");
		}
	});
}


function deleteClient(clientID) {
	$("#clientDeleteConfirmation").dialog("option", "clientID", clientID).dialog("open");
	return false;
}


