feeds = new Array()
readHashes = new Array()
if (getCookie("readHashes") != null) {
	loadReadHashesFromString(getCookie("readHashes"))
}

function loadReadHashesFromString(inputString) {
	readHashes = inputString.split(':')
}

/***
 * positionInReadHashes
 *
 * return the position of the linkHash in the readHashes
 * returns -1 if feed is not in the readHashes
 **/
function positionInReadHashes(feed) {
	returnVal = -1
	for (var i = 0; i < readHashes.length; i++) {
		if (readHashes[i] == feed['linkHash']) {
			returnVal = i
			break
		}
	}

	return returnVal

}

function removeFromReadHashes(feed) {
	returnArray = new Array()
	for (var i = 0; i < readHashes.length; i++) {
		result = (readHashes[i] != feed['linkHash']) ? 'true' : 'false'
		if (readHashes[i] != feed['linkHash']) {
			returnArray.push(readHashes[i])
		}
	}
	readHashes = returnArray
}

function addToReadHashes(feed) {
	readHashes.push(feed['linkHash'])
}

function addItem(feedName, position, link) {
	if (null == feeds[feedName + position]) {
		feeds[feedName + position] = new Array()
	}	
	feed = feedName + position
	feeds[feed]["link"] = link
	feeds[feed]["feedName"] = feed
	feeds[feed]["linkHash"] = hashLink(link)
	// document.writeln(getCookie(link))
}

function cookeStringOfReadHashes() {
	return readHashes.join(':')
}
function toggle(feed) {
	// alert("in toggle: " + feed['feedName'] + " : " + positionInReadHashes(feed))

	if (positionInReadHashes(feed) > -1) {
		removeFromReadHashes(feed)
	}
	else {
		addToReadHashes(feed)
	}
	
	updateDisplay(feed);
	updateStoredCookie();
}

function updateStoredCookie() {
	// alert(cookeStringOfReadHashes())
	setCookie("readHashes", cookeStringOfReadHashes(),  new Date(2010, 01, 01, 01, 01, 01))
}

function updateDisplay(feed) {
	if (positionInReadHashes(feed) > -1) {
		document.getElementById("icon" + feed['feedName']).src = "images/postitold.png"
	}
	else {
		document.getElementById("icon" + feed['feedName']).src = "images/postitnew.png"
	}
}

function updateAllDisplays() {

	document.writeln("<pre>")
	for (feed in feeds) {
		updateDisplay(feeds[feed])
	}

}

function setAllToRead(matchString) {
	for (feed in feeds) {
		// alert("in: " + feeds[feed]['feedName'])
		if (feeds[feed]['feedName'].indexOf(matchString) > -1) {
			addToReadHashes(feeds[feed])
			updateDisplay(feeds[feed]);
		}
	}
	
	updateStoredCookie();
}

function clickedIcon(clickedIcon) {
	clickedOn = (clickedIcon.id).substring(4,(clickedIcon.id).length)
	toggle(feeds[clickedOn])
}

function clickedLink(clickedLink) {
	clickedOn = (clickedLink.id).substring(4,(clickedLink.id).length)
	feed = feeds[clickedOn]
	addToReadHashes(feed)
	
	updateDisplay(feed);
	updateStoredCookie();

}

function hashLink(input) {
	longHash = hex_md4(input)
	shortHash = longHash.substring(longHash.length - 4)
	
	return shortHash
}
