/*
$HeadURL: svn+secure://svn.comminternet.com/main/websites/capecodforsale.com/trunk/web/common/framework/javascript/cxGeneral.js $
$LastChangedRevision: 6653 $
$LastChangedDate: 2009-07-16 09:50:52 -0400 (Thu, 16 Jul 2009) $
*/

function cxGeneral_setCookie(pName, pValue, pExpiration, pPath)
{
    var value = pName + "=" + escape(pValue);

    if (pExpiration)
	value += "; expires=" + pExpiration.toGMTString();
    if (pPath)
	value += "; path=" + pPath;

    document.cookie = value;
}

function cxGeneral_getCookie(pName)
{
    pName += "=";

    var cookies = document.cookie.split("; ");
    for (var i = 0; i < cookies.length; ++i)
    {
	if (cookies[i].indexOf(pName) == 0)
	    return cookies[i].substring(pName.length);
    }

    return null;
}

function cxGeneral_deleteCookie(pName)
{
    cxGeneral_setCookie(pName, "", new Date(0));
}

function cxGeneral_hasClassName(pElement, pClass)
{
    if (!pElement)
	return;

    var classes = pElement.className.split(" ");
    for (var i = 0; i < classes.length; ++i)
    {
	if (classes[i] == pClass)
	    return true;
    }

    return false;
}

function cxGeneral_addClassName(pElement, pClass)
{
    if (!pElement)
	return;

    if (!cxGeneral_hasClassName(pElement, pClass))
	pElement.className = pElement.className + " " + pClass;
}

function cxGeneral_removeClassName(pElement, pClass)
{
    if (!pElement)
	return;

    var classes = pElement.className.split(" ");
    for (var i = 0; i < classes.length; ++i)
    {
	if (classes[i] == pClass)
	    classes[i] = null;
    }

    pElement.className = classes.join(" ");
}

function cxGeneral_toggleClassName(pElement, pClass, pValue)
{
    if (!pElement)
	return;

    if (typeof(pValue) == "undefined")
	pValue = !cxGeneral_hasClassName(pElement, pClass);

    if (pValue)
	cxGeneral_addClassName(pElement, pClass);
    else
	cxGeneral_removeClassName(pElement, pClass);
}

function cxGeneral_isIE()
{
    var userAgent = navigator.userAgent.toLowerCase();

    if (userAgent.indexOf("msie") == -1
	|| userAgent.indexOf("konqueror") != -1
	|| userAgent.indexOf("safari") != -1
	|| userAgent.indexOf("omniweb") != -1
	|| userAgent.indexOf("opera") != -1
	|| userAgent.indexOf("webtv") != -1
	|| userAgent.indexOf("icab") != -1)
	return false;
    else
	return true;
}

function cxGeneral_getOffsetLeft(pElement)
{
    return cxGeneral_getOffset(pElement, "offsetLeft");
}

function cxGeneral_getOffsetTop(pElement)
{
    return cxGeneral_getOffset(pElement, "offsetTop");
}

function cxGeneral_getOffset(pElement, pProperty)
{
    var offset = 0;

    do
	offset += pElement[pProperty];
    while (pElement = pElement.offsetParent);

    return offset;
}

function cxGeneral_cancelBubble(pEvent)
{
    if (!pEvent)
        pEvent = window.event;

    pEvent.cancelBubble = true;
    if (pEvent.stopPropagation)
        pEvent.stopPropagation();
}
