//set up our namespace
YAHOO.namespace("feedFilter");

//object creation ahoy
YAHOO.feedFilter = function() {
	//private variables
	var YUE = YAHOO.util.Event;
	var YUD = YAHOO.util.Dom;
	var YUC = YAHOO.util.Connect;
	
	var feedList = YUD.get('newFeedsList');
	
	//private functions
	
	//generic xmlhttprequest failure handler
	function xhrFailure(o) {
		console.log("XHR failed, show something useful");
	}
	
	function addItem(original, dummy) {
		if(original.value) {	
			//set up the new item w/ a custom id, value, etc
			var newItem = dummy.cloneNode(true);
				newItem.id = '';	//have to do this because generateId returns the dummy ID if we don't clear it
				newItem.id = YUD.generateId(newItem);
			newItem.getElementsByTagName('input')[0].value = original.value;
			
			//clear out original, insert dummy, and then wire it up for clicking
			original.value = '';
			dummy.parentNode.appendChild(newItem);
			YUE.addListener(newItem, 'click', removeItem, newItem.id);
			original.focus();
		}
	}

	//remove new feed from dom, and thus from form submit
	function removeItem(e, id) {
		YUE.stopEvent(e);
		
		//remove event handlers and then remove from the DOM
		var feedItem = YUD.get(id);
		YUE.purgeElement(feedItem, true);
		feedItem.parentNode.removeChild(feedItem);
	}
	
	//public functions
	return {
		//makes request to server to get HTML for a new feed to add
		addFeed : function(e) {
			YUE.stopEvent(e);
			
			addItem(YUD.get('newFeed'), YUD.get('dummyFeedItem'));
		},
		
		addNeedle : function(e) {
			YUE.stopEvent(e);
			
			addItem(YUD.get('newNeedle'), YUD.get('dummyNeedleItem'));
		}
	};
}();


//attach handlers
YAHOO.util.Event.addListener('addFeedButton', 'click', YAHOO.feedFilter.addFeed, YAHOO.feedFilter, true);
YAHOO.util.Event.addListener('addNeedleButton', 'click', YAHOO.feedFilter.addNeedle, YAHOO.feedFilter, true);