﻿// Get only the specified key value for the named cookie
// (when using multiple keys in a cookie in ASP or ASP.Net they are stored in the value 
// like a querystring)
function GetCookieKeyValue(cookieName, keyName) {
    var value = "";
    
    if (document.cookie.length > 0) {
        var cookieVal = GetEntireCookieValue(cookieName);
        
        if (cookieVal != null && cookieVal.length > 0) {
            value = GetQueryStringValue(cookieVal, keyName);
        }
    }
    
    return value;
}

// Get the entire value (all keys) for a specified cookie
function GetEntireCookieValue(cookieName) {
	var nameEQ = cookieName + "=";
	var ca = document.cookie.split(';');
	
	for(var i = 0; i < ca.length; i++) {
		var c = ca[i];
		    
		if (c.indexOf(nameEQ) > -1) {		
		    return c.substring(c.indexOf(nameEQ) + nameEQ.length, c.length);
		}
	}
	
	return "";
}

// Return the entire key value pair associated with the specified key in the querystring
function GetQueryStringKeyValuePair(queryString, keyName) { 
    var value = "";
    var keyValuePairs = queryString.split('&');
  
    for (i = 0; i < keyValuePairs.length && value == ""; i++) {
        if (keyValuePairs[i].length > 1) {
            var pair = keyValuePairs[i].split('=');
            
            if (pair.length == 2) {
                var pairKeyName = pair[0];
                  
                if (pairKeyName == keyName) {
                    value = keyValuePairs[i];
                }
            }
        }
    }
    
    return value;
}


// Return the value associated with the specified key in the querystring
function GetQueryStringValue(queryString, keyName) { 
    var value = "";
    var keyValuePairs = queryString.split('&');
  
    for (i = 0; i < keyValuePairs.length && value == ""; i++) {
        if (keyValuePairs[i].length > 1) {
            var pair = keyValuePairs[i].split('=');
            
            if (pair.length == 2) {
                var pairKeyName = pair[0];
                  
                if (pairKeyName == keyName) {
                    value = pair[1];
                    
                    break;
                }
            }
        }
    }
    
    return value;
}

// Set the specified key in the specified cookie to the specified value
function SetCookieValue(cookieName, keyName, newValue, expires) {
    var oldCookieVal = GetEntireCookieValue(cookieName);
    var newKeyValuePair;
    
    newKeyValuePair = keyName.toUpperCase() + '=' + escape(newValue);

    if (oldCookieVal == "") {
        // Cookie does not exist -- create it
        // No expiry date = session cookie
        document.cookie = cookieName + "=" + newKeyValuePair + "; path=/; domain=.lendingtree.com" + 
         ( expires ? ";expires=" + expires : "" );
    }
    else if (oldCookieVal.indexOf(keyName.toUpperCase() + '=') != -1) {
        // Cookie exists AND key exists -- replace value in cookie

        var keys = oldCookieVal.split("&");
        
        for (var i = 0; i < keys.length; i++) {
            var keyValue = keys[i].split("=");
            
            if (keyValue[0].toUpperCase() == keyName.toUpperCase())
            {
                keys[i] = keyName.toUpperCase() + "=" + escape(newValue);
                break;
            }
        }
        
        document.cookie = cookieName + "=" + keys.join("&") + "; path=/; domain=.lendingtree.com" + 
         ( expires ? ";expires=" + expires : "" );
    }
    else {
        // Cookie exists but value does not -- append to the data
    
        document.cookie =  cookieName + "=" + oldCookieVal + "&" + newKeyValuePair + "; path=/; domain=.lendingtree.com" + 
         ( expires ? ";expires=" + expires : "" ); 
    }
}

function SetCookie(cookieStr) {
    if (cookieStr != "") {
        var split = cookieStr.split("|");
        
        for (var i = 0; i < split.length; i++) {
            var cookie = split[i];
            var nameAndVal = cookie.split(":");
            
            if (nameAndVal.length == 2) {
                var key = nameAndVal[0];
                var val = nameAndVal[1];
            
                SetCookieValue("LTTrackingSession", key, val);
            }
            else if (nameAndVal.length == 3) {
                var name = nameAndVal[0];
                var key = nameAndVal[1];
                var val = nameAndVal[2];
                
                SetCookieValue(name, key, val);
            }
        }
    }
}

