/*
 * Mark Wallaert 10-26-2005
 * single call to load any event listeners (cross-browser) needed for the page
 */
addEvent (window, 'load', addListeners, false);

/*
 * Mark Wallaert 10-26-2005
 * set up any event listeners needed in here
 */
function addListeners(e) {
	// "quote message in reply" event listeners
	var all_links = document.getElementsByTagName('a');
	for (var i = 0; i < all_links.length; i++) {
		// only attach listeners to links with name quoteMessage editMessage'
		if ((all_links[i].name == 'quoteMessage') || (all_links[i].name == 'editMessage')) {
			addEvent(all_links[i], 'click', editMessage, false);
		}
	}
}

/*
 * Mark Wallaert 10-26-2005
 * cross-browser event listeners
 */
function addEvent(eventTarget, eventType, eventFunction, useCapture) {
	if (eventTarget.addEventListener) {
		eventTarget.addEventListener(eventType, eventFunction, useCapture);
		return true;
	} else if (eventTarget.attachEvent) {
		var r = eventTarget.attachEvent('on' + eventType, eventFunction);
		return r;
	} else {
		eventTarget['on' + eventType] = eventFunction;
	}
}

function editMessage(e) {
// cross-browser
	var elem;
	if (window.event && window.event.srcElement) {
		elem = window.event.srcElement;
	}
	if (e && e.target) {
		elem = e.target;
	}
	if (!elem) {
		return;
	}


// traverse up the tree to the general message message
	var message = elem.parentNode.parentNode.parentNode.childNodes;

// and search for the other needed leafs underneath
	var quote_marker = '';
	var quoted_text = '';
	var quoted_topic = '';
	for (var i = 0; i < message.length; i++) {
		// look for the message body to quote
		if (message[i].className == 'post-content') {
			var message_leaf = message[i].childNodes;
			// and the text node underneath
			for (var j = 0; j < message_leaf.length; j++) {
				if (message_leaf[j].nodeType == 3) {
					var quoted_text = quoted_text + message_leaf[j].nodeValue;
				}
			}
		// look for the message topic to quote
		} else if (message[i].className == 'post-date') {
			var message_leaf = message[i].childNodes;
			for (var j = 0; j < message_leaf.length; j++) {
				if (message_leaf[j].className == 'message_topic') {
					quoted_topic = quoted_topic + message_leaf[j].textContent;
				} else if (message_leaf[j].className == 'message_date') {
					quote_marker = quote_marker + message_leaf[j].textContent;
				}
			}
		}
	}

	// find the relative fom elemenets and populate
	var attributes = elem.attributes;
	var new_message = document.getElementById('form_message_body');
	var new_topic = document.getElementById('form_message_topic');
	//new_message.value = quoted_text; /* aje - no longer want quoted text */
	new_topic.value = quoted_topic;
	// if a quoted message, and quoting-stuff
	if (elem.name == 'quoteMessage') {
		var parent_id = document.getElementById('parent_id');
		for (i = 0; i < attributes.length; i++) {
			if (attributes[i].nodeName == 'parent_id') {
				parent_id.value = attributes[i].nodeValue;
			}
		}
		//new_message.value = "-- START " + quote_marker + "\n" + new_message.value + "\n---- END " + quote_marker + "\n\n";
		new_topic.value = 'RE: ' + new_topic.value;
	}
	if (elem.name == 'editMessage') {
		var message_id = document.getElementById('message_id');
		for (i = 0; i < attributes.length; i++) {
			if (attributes[i].nodeName == 'message_id') {
				message_id.value = attributes[i].nodeValue;
			}
		}
	}

}