YAHOO.namespace('YAHOO.mrl.FriendEmailDialog');
YAHOO.mrl.FriendEmailDialog.init = function() {
	function submit(event) {
		YAHOO.util.Event.preventDefault(event);
		this.doSubmit();
		YAHOO.mrl.FriendEmailDialog.dialog.hide();
	}
	
	function cancel() {
		this.cancel();
	}

	function success_handler(o) {
		var data = handle_json(o);
		if (data.success) {
			message_box('Your Email Has Been Sent');
		} else {
			var labels = YAHOO.util.Dom.getElementsBy(function(el) { return true; }, 'label', this.form);
			for (var i=0; i<labels.length; i++) {
				YAHOO.util.Dom.removeClass(labels[i], 'error');
			}
			for(var i=0; i<data.names.length; i++) {
				YAHOO.util.Dom.addClass(YAHOO.util.Dom.get('label_'+[data.names[i]]), 'error');
			}
		}
	}
	
	function failure_handler(o) {
		error_box('Server Error');
		YAHOO.mrl.FriendEmailDialog.dialog.cancel();
	}

	YAHOO.mrl.FriendEmailDialog.dialog = new YAHOO.widget.Dialog('email_panel',
		{width: '400px', visible: false, 
		 context: ['emailer_button', 'tr', 'br'],
		 hideaftersubmit: false,
		 close: false
		}
	);
	YAHOO.util.Dom.removeClass(YAHOO.mrl.FriendEmailDialog.dialog.innerElement, 'hidden');
	
	YAHOO.mrl.FriendEmailDialog.dialog.callback.success = success_handler;
	YAHOO.mrl.FriendEmailDialog.dialog.callback.failure = failure_handler;

	function render_and_show(event, dialog) {
		dialog.render();
		dialog.show();
	};
	YAHOO.util.Event.addListener('emailer_button', 'click', render_and_show, YAHOO.mrl.FriendEmailDialog.dialog);
	YAHOO.util.Event.addListener('email_send', 'click', submit, YAHOO.mrl.FriendEmailDialog.dialog, true);
	YAHOO.util.Event.addListener('email_cancel', 'click', cancel, YAHOO.mrl.FriendEmailDialog.dialog, true);
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('close', 'span', 'email_panel'), 'click', cancel, YAHOO.mrl.FriendEmailDialog.dialog, true);
};

YAHOO.util.Event.addListener(window, 'load', YAHOO.mrl.FriendEmailDialog.init);

YAHOO.namespace('YAHOO.mrl.Contacts');

YAHOO.mrl.Contacts.init = function() {
	YAHOO.mrl.Contacts.my_contacts = null;

	function load_contacts(e)
	{
		YAHOO.util.Event.preventDefault(e);
	
		refresh_contacts();
	};

	function handle_load_contacts(status, data)
	{
		if (status == 200) {
			YAHOO.mrl.Contacts.my_contacts = data.contacts;
			show_contacts();
		}
	};
	
	function refresh_contacts()
	{
		YAHOO.mrl.Contacts.my_contacts = null;
		run_ajax('/account/contacts/list_ajax', handle_load_contacts);
	};


	YAHOO.mrl.Contacts.contactsPanel = null;

	function handle_select()
	{
		var formElement = document.forms.select_email_contacts_form;
		var emails = '';
		for (var i = 0; i < formElement.length; i++) {
			if (formElement.elements[i].checked) {
				if (emails)
					emails += ', ' + formElement.elements[i].value;
				else
					emails = formElement.elements[i].value;
			}
		}
		
		email_inputs = YAHOO.util.Dom.getElementsByClassName('email_contact_input', 'input');
		for (var i = 0; i < email_inputs.length; i++) {
			email_inputs[i].value = emails;
		}
		YAHOO.mrl.Contacts.contactsPanel.hide();
	}

	function select_all()
	{
		var formElement = document.forms.select_email_contacts_form;
		for (var i = 0; i < formElement.length; i++) {
			formElement.elements[i].checked = true;
		}
	}

	function show_contacts()
	{
		if (!YAHOO.mrl.Contacts.contactsPanel) {
			YAHOO.mrl.Contacts.contactsPanel = new YAHOO.widget.Panel("email_contacts_panel", 
				{width: '400px', visible: true, close: false, fixedcenter: true, modal: true}
			);
			YAHOO.mrl.Contacts.contactsPanel.handle_select = handle_select;
			YAHOO.mrl.Contacts.contactsPanel.select_all = select_all;
			YAHOO.mrl.Contacts.contactsPanel.refresh_contacts = refresh_contacts;
			YAHOO.mrl.Contacts.contactsPanel.setHeader('My Contacts');
		}
		var contactsHTML = null;
		if (!YAHOO.mrl.Contacts.my_contacts) {
			contactsHTML = '<div class="email_contacts"><div class="header"><h3>Import Contacts</h3><p><a class="edit" href="/account/contacts/import_contacts" target="_blank">Import Contacts</a></p></div>';
			contactsHTML += '<p>You currently do not have any saved contacts.</p>';
			contactsHTML += '<p><a href="/account/contacts/import_contacts" target="_blank">Import Contacts</a>.  Then click Continue to select from your contact list.</p>';
			// contactsHTML += '<form id="import_email_contacts_form" action="/account/contacts/upload" method="post" enctype="multipart/form-data"><fieldset><div class="fieldrow><input type="hidden" id="contact_source" name="contact_source" value="U"><label for="new_contacts">Import Contacts:</label><input id="new_contacts" name="new_contacts" type="file" size="50" /></div></fieldset></form>';
			contactsHTML += '<button onclick="javascript: YAHOO.mrl.Contacts.contactsPanel.refresh_contacts();">Continue</button><button onclick="javascript: YAHOO.mrl.Contacts.contactsPanel.hide();">Cancel</button></div>';
		} else {
			contactsHTML = '<div class="email_contacts"><div class="header"><h3>Select Contacts</h3><p><a class="edit" href="#" onclick="javascript: YAHOO.mrl.Contacts.contactsPanel.select_all();">Select All</a> | <a class="edit" href="/account/contacts/import_contacts" target="_blank">Import Contacts</a></p></div><div id="select_email_contacts"><form id="select_email_contacts_form" action="#"><ul>';
			for (contact_idx in YAHOO.mrl.Contacts.my_contacts) {
				contact = YAHOO.mrl.Contacts.my_contacts[contact_idx];
				contactID = 'emailcontact_' + contact.contact_id;
				if (contact.contact_name)
					contactEmail = contact.contact_name + ' <' + contact.email_address + '>';
				else
					contactEmail = contact.email_address;
				contactEmail = contactEmail.replace(',','_');
				contactsHTML += '<li><input id="' + contactID + '" type="checkbox" name="' + contactID + '" value="' + contactEmail + '"> <label for="' + contactID + '">' + contactEmail.replace('<','&lt;').replace('>','&gt;') + '</label>';
			}
			contactsHTML += '</ul></form></div><button onclick="javascript: YAHOO.mrl.Contacts.contactsPanel.handle_select();">Select</button><button onclick="javascript: YAHOO.mrl.Contacts.contactsPanel.hide();">Cancel</button></div>'
		}
		YAHOO.mrl.Contacts.contactsPanel.setBody(contactsHTML);
		YAHOO.mrl.Contacts.contactsPanel.render(document.body);
		YAHOO.mrl.Contacts.contactsPanel.show();
	};

	YAHOO.util.Event.addListener('select_email_contacts', 'click', load_contacts);

	YAHOO.mrl.Contacts.edit = true;
	function edit_contacts(e)
	{
		YAHOO.util.Event.preventDefault(e);

		var contact_remove = YAHOO.util.Dom.getElementsByClassName('remove_contact', 'a');
		for (var i = 0; i < contact_remove.length; i++) {
			if (YAHOO.mrl.Contacts.edit) {
				YAHOO.util.Dom.removeClass(contact_remove[i], 'invisible');
			} else {
				YAHOO.util.Dom.addClass(contact_remove[i], 'invisible');
			}
		}
		YAHOO.mrl.Contacts.edit = !YAHOO.mrl.Contacts.edit;
	}
	
	YAHOO.util.Event.addListener('edit_contacts', 'click', edit_contacts);

};

YAHOO.util.Event.addListener(window, 'load', YAHOO.mrl.Contacts.init);

YAHOO.namespace('mrl.share');
YAHOO.mrl.share.init = function() {
	YAHOO.mrl.share.panel = new YAHOO.widget.Dialog('sharethis',
		{width: '300px', visible: false, context: ['share_button', 'tr', 'br'], 
		 close: false});

	function render_show(event, panel) {
		YAHOO.util.Dom.removeClass(YAHOO.util.Dom.get('sharethis'), 'hidden');
		panel.render();
		panel.show();
	}

	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('close', 'span', 'sharethis'), 'click', YAHOO.mrl.share.panel.hide, YAHOO.mrl.share.panel, true);
	YAHOO.util.Event.addListener('share_button', 'click', render_show, YAHOO.mrl.share.panel);
	YAHOO.util.Event.addListener(YAHOO.mrl.share.panel.element.getElementsByTagName('a'), 'click', YAHOO.mrl.share.panel.hide, YAHOO.mrl.share.panel, true);
};

YAHOO.util.Event.addListener(window, 'load', YAHOO.mrl.share.init);

