﻿/********************************************************************************
* Class Name    : CookieHandler ( static )
* Purpose       : To provide an interface for handling cookies through Javascript
* Developed By  : Mukesh R Yadav (mukesh.yadav@suviinfo.com
* Company       : Suvi Information Pvt. Ltd.
* Created Date  : June 14, 2007
*
* Methods
* CookieHandler.setCookie( name, value, expires, path, domain, secure ) 
*       Set a cookie
*       name    = Name of the cookie
*       value   = Value of the cookie
*       expires = [Optional], Set the duration of cookie
*       path    = [Optional], Set cookie path 
*       domain  = [Optional], Set domain of cookie
*       secure  = [Optional], Set cookie as a secure cookie
*
* CookieHandler.getCookie( name) 
*       Retrieve a cookie
*       name    = Name of the cookie
*
* CookieHandler.deleteCookie( name, path, domain ) 
*       Delete a cookie
*       name    = Name of the cookie
*       path    = [Optional], Set cookie path 
*       domain  = [Optional], Set domain of cookie
*
**********************************************************************************/

CookieHandler = new function(){
    this.setCookie = function( name, value, expires, path, domain, secure ) {
        // set time, it's in milliseconds
        var today = new Date();
        today.setTime( today.getTime() );
        /* if the expires variable is set, make the correct expires time, the current script below will set 
        it for x number of days, to make it for hours, delete * 24, for minutes, delete * 60 * 24 */
        if ( expires ){
            expires = expires * 1000 * 60 * 60 * 24;
        }
        var expires_date = new Date( today.getTime() + (expires) );

        document.cookie = name + "=" +escape( value ) + 
            ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
            ( ( path ) ? ";path=" + path : "" ) + 
            ( ( domain ) ? ";domain=" + domain : "" ) +
            ( ( secure ) ? ";secure" : "" );
    }

    this.getCookie = function ( name ) {
        var start = document.cookie.indexOf( name + "=" );
        var len = start + name.length + 1;
        if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ){
            return null;
        }
        if ( start == -1 ) {
            return null;
        }
        var end = document.cookie.indexOf( ";", len );
        if ( end == -1 ) { 
            end = document.cookie.length;
        }
        return unescape( document.cookie.substring( len, end ) );
    }
    
    // this deletes the cookie when called    
    this.deleteCookie =function ( name, path, domain ) {
        //if ( this.GetCookie( name ) ) {
            document.cookie = name + "=" +
                ( ( path ) ? ";path=" + path : "") +
                ( ( domain ) ? ";domain=" + domain : "" ) +
                ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
        //}
    }
}