function set_cookie(name, value, expires, noEscape) {
	if (!expires) {
		expires = new Date();
	}
    var _value = noEscape ? value : escape(value);
	document.cookie = name + "=" + _value + "; expires=" + expires.toGMTString() +  "; path=/;domain=." + document.domain + ";";
}


function get_cookie(name) {
	cookie_name = name + "=";
	cookie_length = document.cookie.length;
	cookie_begin = 0;
	while (cookie_begin < cookie_length)
	{
		value_begin = cookie_begin + cookie_name.length;
		if (document.cookie.substring(cookie_begin, value_begin) == cookie_name) {
			var value_end = document.cookie.indexOf (";", value_begin);
			if (value_end == -1) {
				value_end = cookie_length;
			}
			return unescape(document.cookie.substring(value_begin, value_end));
		}
		cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1;
		if (cookie_begin == 0) {
			break;
		}
	}
	return null;
}

function check_cookies() {
	var cookies = document.cookie.toString().split(';');
	var counterUtmx = 0; // if user has two cookie __utmx, we should remove those
	for (var i in cookies) {
		var name = cookies[i].toString().split('=')[0];
		name = trim(name);
		if (name == '__utmx') {
			counterUtmx++;
		}
	}
	if (counterUtmx >= 2) {
		for (var i in cookies) {
			var name = cookies[i].toString().split('=')[0];
			var regexp = /__utm.+/gi;
			if (name.match(regexp)) {
				delete_cookie(name);
			}
		}
	}
}

function delete_cookie( name, path, domain ) {
	document.cookie = name + "=;path=/;domain=." + document.domain + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	document.cookie = name + "=;path=/;domain=.www." + document.domain + ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function trim(string) {
	return string.replace(/(^\s+)|(\s+$)/g, "");
}
