//----------------------------------------------------------------
// Written by Ray Wilson
// Copyright Music From Outer Space LLC 2010.
// http://www.musicfromouterspace.com/mfosweb/home.action
// ----------------------------------------------------------------

function addLinkToMyMFOS(linktype, itemname, path, partno)
{
	var sb = new StringBuffer();
	sb.append(linktype);
	sb.append(",");
	sb.append(itemname);
	sb.append(",");
	sb.append(path);
	sb.append(",");
	sb.append(partno);
	var add_to_cookie = sb.toString();

	var mfosfavs = readCookie("MFOS_FAVORITES");
	if (mfosfavs == null)
	{
		createCookie("MFOS_FAVORITES", add_to_cookie, 365);
	}
	else
	{
		var linklist = mfosfavs.split(/]/g);
		for ( var i = 0; i < linklist.length; ++i)
		{
			if (linklist[i] == add_to_cookie)
			{
				//----------------------
				// Already in list.
				// ----------------------
				popupTimedUserMessage("Already in My MFOS.", 1000, "#ffff99", "#000000");
				return;
			}
		}
		if (linklist.length >= 30)
		{
			//----------------------
			// Max links stored.
			// ----------------------
			popupTimedUserMessage("Max links stored.", 1000, "#ffff99", "#000000");
			return;
		}
		sb.clear();
		sb.append(mfosfavs);
		sb.append("]");
		sb.append(add_to_cookie);
		createCookie("MFOS_FAVORITES", sb.toString(), 365);
	}
	popupTimedUserMessage("Added to My MFOS!", 1000, "#948CDE", "#ffffff");

	if(document.getElementById("mymfosdiv"))
	{
		buildMyMFOS();
	}
}

function removeLinkFromMyMFOS(linktype, itemname, path, partno)
{
	var sb = new StringBuffer();
	sb.append(linktype);
	sb.append(",");
	sb.append(itemname);
	sb.append(",");
	sb.append(path);
	sb.append(",");
	sb.append(partno);
	var remove_this = sb.toString();

	var mfosfavs = readCookie("MFOS_FAVORITES");
	if (mfosfavs == null)
	{
		return;
	}
	else
	{
		sb.clear();
		var linklist = mfosfavs.split(/]/g);
		for ( var i = 0; i < linklist.length; ++i)
		{
			if (linklist[i] == remove_this)
			{
				continue;
			}
			if (sb.getLength() > 0)
			{
				sb.append("]");
			}
			sb.append(linklist[i]);
		}
		if (sb.getLength() == 0)
		{
			eraseCookie("MFOS_FAVORITES");
		}
		else
		{
			createCookie("MFOS_FAVORITES", sb.toString(), 365);
		}
	}

	if(document.getElementById("mymfosdiv"))
	{
		buildMyMFOS();
	}
}

function generateAddToMyMFOSLink(title, info, linktype)
{
	var sb = new StringBuffer();
	sb.append("<span title='Add to My MFOS Links' class='favmeicon' ");
	sb.append("onclick=\"top.addLinkToMyMFOS('");
	sb.append(linktype);
	sb.append("','");
	sb.append(title);
	sb.append("','");
	sb.append(info);
	sb.append("'");
	sb.append(",'");
	sb.append(info);
	sb.append("'");
	sb.append(");\" />&nbsp;</span>");
	return sb.toString();
}

function buildMyMFOS()
{
	if(document.getElementById("mymfosdiv"))
	{
		var sb = new StringBuffer();
		var sb2 = new StringBuffer();
		var mfosfavs = readCookie("MFOS_FAVORITES");
		if (mfosfavs == null)
		{
			sb.append("No My MFOS Links stored yet.");
		}
		else
		{
			sb.append("<table border='0' cellpadding='2' cellspacing='0'>");
	
			var linklist = mfosfavs.split(/]/g);
			for ( var i = 0; i < linklist.length; ++i)
			{
				var parts = linklist[i].split(/,/g);
				sb2.clear();
				sb2.append("<tr><td style='padding-top:4px;'>");
				sb2.append("<span class='tinydelete_lo' onmouseover='this.className=\"tinydelete_hi\";' onmouseout='this.className=\"tinydelete_lo\";' ");
				sb2.append("title='Remove link from My MFOS.' onclick=\"removeLinkFromMyMFOS('");
				sb2.append(parts[0]);
				sb2.append("','");
				sb2.append(parts[1]);
				sb2.append("','");
				sb2.append(parts[2]);
				sb2.append("'");
				if (parts.length > 3)
				{
					sb2.append(",'");
					sb2.append(parts[3]);
					sb2.append("'");
				}
				sb2.append(");\"></span></td><td style='padding-top:4px;'><span title='");
				var disptext = "";
				switch (parts[0])
				{
				case "PROJECT":
					disptext = parts[1];
					sb2.append("DIY Project' class='tinyprojspan'></span>");
					break;
				case "CATALOG":
					disptext = parts[1]; // + " " + parts[2];
					sb2.append("Catalog Page' class='tinycartspan'></span>");
					break;
				}
				sb2.append("</td><td valign='top'>");
				sb2.append("<a href='#' target='_blank' title='Go to: ");
				sb2.append(disptext);
				sb2.append("' ");
				sb2.append("onclick=\"top.closeSearchWindow();");
				switch (parts[0])
				{
				case "PROJECT":
					sb2.append("launchpage('SYNTHDIY','");
					sb2.append(parts[2]);
					sb2.append("','");
					sb2.append(parts[3]);
					sb2.append("', true);");
					break;
				case "CATALOG":
					sb2.append("launchpage('CATALOG',null,'");
					sb2.append(parts[3]);
					sb2.append("', true);");
					break;
				}
				sb2.append("return false;\">");
				sb2.append(disptext.trimToPx(150));
				sb2.append("</a>");
				sb2.append("</td></tr>");
	
				sb.append(sb2.toString());
			}
			sb.append("</table>");
		}
	
		document.getElementById("mymfosdiv").innerHTML = sb.toString();
	}
}

String.prototype.visualLength = function()
{
	var ruler = document.getElementById("ruler");
	ruler.innerHTML = this.toString();
	return ruler.offsetWidth;
}

String.prototype.trimToPx = function(length)
{
	var tmp = this;
	var trimmed = this;
	if (tmp.visualLength() > length)
	{
		trimmed += "...";
		while (trimmed.visualLength() > length)
		{
			tmp = tmp.substring(0, tmp.length - 1);
			if (tmp == "")
			{
				return "";
			}
			trimmed = tmp + "...";
		}
	}
	return trimmed;
}

function storeMyMFOSLink(o)
{
	var favtype   = o.favtype;
	var uri       = o.uri;
	var linktitle = o.linktitle;
	var partno    = o.partno;
	
	switch(favtype)
	{
	case "PROJECT":
		addLinkToMyMFOS(favtype, linktitle, uri, partno);
		break;
	case "CATALOG":
		addLinkToMyMFOS(favtype, linktitle, uri, partno);
		break;
	}
}

function popupTimedUserMessage(msg, timeMS, bgcolor, txtcolor)
{
	var obj = top.document.getElementById("userMessageDiv");
	if(obj)
	{
		var xpos;
		var ypos;
		if(GLOBALSEARCHWINDOWOPEN)
		{
			// -------------------------------------------
			// Place the div within the search dialog.
			// -------------------------------------------
			var pt = getUpperLeftPoint(document.getElementById("searchWindowDiv"));
			xpos = (pt.x + 40) // Corner of search dialog.
			ypos = (pt.y + 30) // Corner of search dialog.
			
			xpos = parseInt(xpos) + 150;
			ypos = parseInt(ypos) + 150;
			if(mozilla)
			{
				obj.style.paddingTop = "3px";
			}
			obj.style.left = xpos + "px";
			obj.style.top = ypos + "px";
			obj.style.border = "solid 1px black";
		}
		else
		{
			var o = document.getElementById("mainpagesearchtext");
			var pt = getUpperLeftPoint(o);
			if(mozilla)
			{
				obj.style.paddingTop = "3px";
			}
			obj.style.left = pt.x + "px";
			obj.style.top = pt.y + "px";
			obj.style.border = "solid 1px white";
		}
		obj.style.color = txtcolor;
		obj.style.backgroundColor = bgcolor;
		obj.style.display = "block";
		obj.style.zIndex = "600";
		obj.innerHTML = msg;
		setTimeout("hideUserMessageDiv();", timeMS);
	}
}

function hideUserMessageDiv()
{
	var obj = top.document.getElementById("userMessageDiv");
	if(obj)
	{
		obj.style.left = "-1000px";
		obj.style.top = "-1000px";
		obj.style.display = "none";
		obj.style.zIndex = "-10";
		obj.innerHTML = "";
	}
}

