/**
 * @author karlstanley
 */
YAHOO.namespace('syzygy.util');
YAHOO.namespace('syzygy.util.cookie');
/**
 * @method toggleClass - adds or removes the supplied class as appropriate
 * @param {Object} element
 * @param {Object} class
 */
YAHOO.syzygy.util.toggleClass = function(element, theClass){
	if (YAHOO.util.Dom.hasClass(element, theClass)){
		YAHOO.util.Dom.removeClass(element, theClass);
	} else {
		YAHOO.util.Dom.addClass(element, theClass);		
	}
}

/**
 * @method getTarget - cross browser event target (e.srcElement vs. e.target)
 * @param {Object} event - the event we're getting the target from
 * 
 * implementation courtesy of quirksmode.org
 */
YAHOO.syzygy.util.getTarget = function(e){	
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
		
	return targ;
}

/**
 * @method cookie.create - create a cookie
 * @param {string} name - cookie name
 * @param {string} value - cookie value
 * @param {int} days - number of days till expiration. -1 to clear 
 *                     now, 0 to clear when browser closes
 * 
 * implementation courtesy of quirksmode.org
 */
YAHOO.syzygy.util.cookie.create = function(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

YAHOO.syzygy.util.cookie.read = function(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 null;
}

YAHOO.syzygy.util.cookie.erase = function(name) {
	YAHOO.syzygy.util.cookie.create(name,"",-1);
}
