function setDocumentCookie( oDoc, sName, sValue ) {
    if ( sName.length < 1 ) return;

    if ( 0 < sValue.length ) {
        var expDate = new Date();
        expDate.setTime( expDate.getTime() + 365*24*60*60*1000 );

        oDoc.cookie = ""
                        + sName + "=" + sValue + "; "
                        + "expires=" + expDate.toGMTString();
    } else {
        oDoc.cookie = sName + "=";
    }
}

function setNamedCookie( sName, sValue ) {
    setDocumentCookie( document, sName, sValue );
}

function deleteDocumentCookie( oDoc, sName ) {
    oDoc.cookie = sName + "=";
}

function deleteCookie( sName ) {
    deleteDocumentCookie( document, sName );
}

function fetchDocumentCookie( oDoc, sName ) {
    var sValue = "";
    var index = 0;

    if( oDoc.cookie )
        index = oDoc.cookie.indexOf( sName + "=" );
    else
        index = -1;

    if ( index < 0 )
        sValue = "";
    else {
        var countbegin = (oDoc.cookie.indexOf( "=", index ) + 1);
        if ( 0 < countbegin )
        {
            var countend = oDoc.cookie.indexOf( ";", countbegin );
            if ( countend < 0 )
                countend = oDoc.cookie.length;
            sValue = oDoc.cookie.substring( countbegin, countend );
        } else {
            sValue = "";
        }
    }
    return sValue;
}

function fetchNamedCookie( sName ) {
    return fetchDocumentCookie( document, sName );
}
