/**
 * (c) Copyright 2008 Bedican Solutions
 *
 * Shop specific functions, extends the Yahoo UI library.
 * The following js files should be included first.
 *
 * http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js
 * http://yui.yahooapis.com/2.7.0/build/cookie/cookie-min.js
 * http://yui.yahooapis.com/2.7.0/build/json/json-min.js
 *
 */

function addSearch(searchData, cookie, id, url, deleteImage)
{
	// append to cookie

	var date = new Date();
	date.setTime(date.getTime() + (1000*60*60*24*365));

	var data = YAHOO.util.Cookie.get(cookie);

	if(data == null) {
		data = new Array();
	} else {
		data = YAHOO.lang.JSON.parse(data);
	}

	// check it doesnt already exist

	for(x in data) {
		if(YAHOO.lang.JSON.stringify(searchData) == YAHOO.lang.JSON.stringify(data[x])) { return; }
	}

	data.push(searchData);

	YAHOO.util.Cookie.set(cookie, YAHOO.lang.JSON.stringify(data), { expires: date });

	// update the current page

	var firstChild = Dom.getFirstChild(id);

	if(firstChild.nodeName.toLowerCase() != "ul") {
		var list = Dom.get(id).insertBefore(document.createElement('ul'), firstChild);
	} else {
		var list = firstChild;
	}

	var search = document.createElement('li');
	list.appendChild(search);

	var dlink = document.createElement('a');
	dlink.setAttribute('href', '#');
	dlink.className = 'mysearches_delete';
	dlink.onclick = function() { deleteSearch(searchData, cookie, id); }

	search.appendChild(dlink);

	var image = document.createElement('img');
	image.setAttribute('src', deleteImage);
	image.setAttribute('alt', 'delete');

	dlink.appendChild(image);

	var link = document.createElement('a');
	link.setAttribute('href', url);

	search.appendChild(link);

	var text = document.createTextNode(searchData['s']);
	link.appendChild(text);
}

function editSearch(id)
{
	var firstChild = Dom.getFirstChild(id);

	if(firstChild.nodeName.toLowerCase() != "ul") { return; }

	// display/show the delete options per link

	var li = Dom.getChildren(firstChild);

	for(x in li)
	{
		// the first child of the each li element is the delete link
		var link = Dom.getFirstChild(li[x]);

		if(Dom.getStyle(link, "display") == "none") {
			Dom.setStyle(link, "display", "inline");
		} else {
			Dom.setStyle(link, "display", "none");
		}
	}
}

function deleteSearch(searchData, cookie, id)
{
	// remove from cookie

	var data = YAHOO.util.Cookie.get(cookie);
	if(data == null) { return; }

	data = YAHOO.lang.JSON.parse(data);
	if(data.length == 0) { return; }

	var index = 0;
	for(x in data) {
		if(YAHOO.lang.JSON.stringify(searchData) == YAHOO.lang.JSON.stringify(data[x])) { break; }
		index++;
	}

	if(index == data.length) { return; }

	data.splice(index, 1);

	if(data.length == 0) {
		YAHOO.util.Cookie.remove(cookie);
	} else {
		var date = new Date();
		date.setTime(date.getTime() + (1000*60*60*24*365));

		YAHOO.util.Cookie.set(cookie, YAHOO.lang.JSON.stringify(data), { expires: date });
	}

	// update the current page

	var firstChild = Dom.getFirstChild(id);
	if(firstChild.nodeName.toLowerCase() != "ul") { return; }

	var li = Dom.getChildren(firstChild);
	if(index >= li.length) { return; }

	firstChild.removeChild(li[index]);

	if(li.length == 1) {
		// last li element, remove ul too
		Dom.get(id).removeChild(firstChild);
	}
}