      var cookie =  YAHOO.util.Cookie;

    // Sets the cookie
    function setCookie(name, subname, value){    
		cookie.setSub(name, subname, value, { expires: new Date("January 12, 2025"), path: "/", domain: getDomain()});
    }

    // checks if cookie is present
    function getCookie(name, subname){
        var cookieValue = cookie.getSub(name, subname, {domain: getDomain()});
        return cookieValue;
    }

    // Appends the cookie
    function appendCookie(name, subname, newValue){
        var cookieValue = getCookie(name, subname) + "-" + newValue;
        setCookie(name, subname, cookieValue);
    }

    // parses the referer and identifies search engine and keyword
    RefererParser = function(referer) {
        this.SearchEngine = getSearchEngine();
        if (this.SearchEngine != null)
            this.Keyword = getKeyword(this.SearchEngine);
        else
            this.Keyword = null;  
             
        function getSearchEngine() {
            if (referer != null) {
                if (referer.indexOf("google") > -1)
                    return "google";
                else if (referer.indexOf("yahoo") > -1)
                    return "yahoo";
                else if (referer.indexOf("bing") > -1)
                    return "bing";
                else                 
                    return null;   
            }               
        }    
        
        function getKeyword(searchEngine) {
            if (searchEngine == "google") {
                return parseQuery(referer.split("&"), 'q');                      
            }
            else if (searchEngine == "yahoo") {
                var ySearch = referer.split("?");
                return parseQuery(ySearch[ySearch.length-1].split("&"), 'p');
            }
            if (searchEngine == "bing") {
                var bSearch = referer.split("?");
                return parseQuery(bSearch[bSearch.length-1].split("&"), 'q');
            }       
        }
        
        function parseQuery(queryArray, queryParam) {
            for (var i=0; i < queryArray.length; i++) {
                    if (queryArray[i].split("=")[0] == queryParam) {
                        return queryArray[i].split("=")[1];
                    }               
                }  
            return null;
        }
    }

	// Gets the domain for url
    function getDomain() {
        var domain = document.domain;
        if (domain.length > 4) {
            var parts = domain.split('.');
            var len = parts.length;
            if (len > 1) {
                return (parts[len-2] + "." + parts[len-1]);
            }
        }
    } 
	
    // Code to place cookie
    function checkCookie() {
        if (document.referrer != '') {
            var parser = new RefererParser(document.referrer);
            if (parser.SearchEngine != null && parser.Keyword != null) {
				var sn = getCookie("se01", "sename");
				if (sn != null)
					appendCookie("se01", "sename", parser.SearchEngine);
				else
					setCookie("se01", "sename", parser.SearchEngine);
					
				var sk = getCookie("se01", "sekey");
				if (sk != null)
					appendCookie("se01", "sekey", parser.Keyword);  
				else 
					setCookie("se01", "sekey", parser.Keyword); 				                  
            }        
        }
    }

    var c = checkCookie();
