
var SiteDomain = "http://cafenapkin.com";

// ----------------------------------------------------------------------------------

var jsCurry = function(fn, scope, args) {
    var scope = scope || window;
	if (!args) { args = []; }
    return function() {
	    fn.apply(scope, args);
    };
}


var addObjectEventFunction = function(obj, evt, fun)
{
	if (obj.addEventListener) // W3C standard
	{
		obj.addEventListener(evt, fun, false);
	} 
	else if (obj.attachEvent) // Microsoft
	{
		obj.attachEvent('on'+evt, fun);
	}
}


function showEm(svc, act, div)
{
	var em = "<a href='mailto:" + act + "@" + svc + ";'>" + act + "@" + svc + "</a>"
	div.parentNode.innerHTML = em;
}



function flipImage(fs,d)
{
	if (document.getElementById(d).style.display=="none")
	{
		toggleDisplay(d);
		flipSwitch(fs);
	}
}

function selectProjectTab(pta)
{
	var pts = document.getElementById('logoTabs').getElementsByTagName('img');
	for (var i=0;i<pts.length;i++)
	{
		pts[i].className = "normal";	
	}
	pta.className = "selected";
}

function flipSwitch(fs)
{
	var as = document.getElementById('flipperControl').getElementsByTagName('a');
	for (var i=0;i<as.length;i++)
	{
		as[i].className = 'normal';
	}
	fs.className = 'selected';
}


function openBox(x)
{
	var bs = document.getElementsByClassName('sectionbox');
	for (var i=0;i<bs.length;i++)
	{
		bs[i].style.display = "none";
	}
	document.getElementById(x).style.display = "block";	
}


// ----------------------------------------------------------------------------------





function array_contains(a, v)
{
	if (a!=null)
	{
		for (var i=0;i<a.length;i++)
		{
			if (a[i]==v) { return true; }
		}
	}
	return false;
}



// ----------------------------------------------------------------------------------

function parseInteger(n)
{
	var r = 0;
	try
	{
		r = parseInt(n);
	}
	catch(er) { };
	return r;
}

function isInteger(n)
{
	try
	{
		var x = parseInt(n);
	}
	catch(er)
	{
		return false;
	}
	return true;	
}


function isNumeric(n)
{
	try
	{
		var x = parseFloat(n);
	}
	catch(er)
	{
		return false;
	}
	return true;	
}


// ----------------------------------------------------------------------------------


function cssHasClass(d,c)
{
	if (!(d.className)) { d.className = ""; }
	var dc = d.className.split(" ");
	for (var i=0;i<dc.length;i++)
	{
		if (dc[i]==c)
		{
			return true;
		}
	}
	return false;
}

function cssAddClass(d,c)
{
	cssRemoveClass(d,c);
	d.className = trim(d.className + " " + c);
}

function cssRemoveClass(d,c)
{

	var cn = "" + d.className;
	if ( (cn=="undefined") )
	{
		cn = "";
	}
	var dc = cn.split(" ");
	cn = "";
	for (var i=0;i<dc.length;i++)
	{
		if (dc[i]!=c)
		{
			cn += (" " + dc[i]);
		}
	}

	try
	{
		d.className = trim(cn);
	}
	catch(err)
	{
//		document.getElementById("debug").innerHTML = "(test): " + err + "<hr />";
		try
		{
			d.setAttribute("class",trim(cn));
		}
		catch(err)
		{
	//		document.getElementById("debug").innerHTML = "(test): " + err + "<hr />";
		}
	}


}



// ----------------------------------------------------------------------------------

document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};

function toggleDisplay(d,p,v)	// div/object; position anchor object; vertical offset
{
	
	var toggleItems = document.getElementsByClassName(document.getElementById(d).className);
	if (document.getElementById(d).className!="")
	{
		for (i=0;i<toggleItems.length;i++)
		{
			if (toggleItems[i].id!=d)
			{
				document.getElementById(toggleItems[i].id).style.display = "none";
			}
		}
	}

	if (!(p)) { p = false; }
	if (!(v)) { v = false; }
	toggleVisibility(d,p,v);
	
}

function toggleVisibility(d,p,v)	// div/object; position anchor object; vertical offset
{

	if (document.getElementById(d))
	{
		if ((p)&&(v))
		{
			var posLeft = document.getElementById(p).offsetLeft;
			var posTop = document.getElementById(p).offsetTop + v;
			document.getElementById(d).style.left = posLeft.toString(10) + "px";
			document.getElementById(d).style.top = posTop.toString(10) + "px";
		}
		var dv = document.getElementById(d).style.display;
		if (dv=="none")
		{
			document.getElementById(d).style.display = "block";
		}
		else
		{
			document.getElementById(d).style.display = "none";
		}
	}
}



// ----------------------------------------------------------------------------------

function setCookie(name,value) {
	var v = ""+value;
	document.cookie = name+"="+escape(v);
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return false;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}




// ----------------------------------------------------------------------------------




// ----------------------------------------------------------------------------------

function parseJSON(j)
{
	var r = new Array();
	try
	{
		r = eval('('+j+')');
	}
	catch(er)
	{
		return r;
	}
	return r;
}

// ----------------------------------------------------------------------------------


function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}









