function getCookie(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )) return matches ? decodeURIComponent(matches[1]) : undefined } /* name - название cookie value - значение cookie (строка) props - Объект с дополнительными свойствами для установки cookie: expires - Время истечения cookie. Интерпретируется по-разному, в зависимости от типа: Если число - количество секунд до истечения. Если объект типа Date - точная дата истечения. Если expires в прошлом, то cookie будет удалено. Если expires отсутствует или равно 0, то cookie будет установлено как сессионное и исчезнет при закрытии браузера. path - Путь для cookie. domain - Домен для cookie. secure - Пересылать cookie только по защищенному соединению. */ function setCookie(name, value, props) { props = props || {} var exp = props.expires if (typeof exp == "number" && exp) { var d = new Date() d.setTime(d.getTime() + exp*1000) exp = props.expires = d } if(exp && exp.toUTCString) { props.expires = exp.toUTCString() } /* try to disable for now var domain = props.domain if (typeof domain == 'undefined') { domain = document.location.hostname.replace(/^([a-z]{3}\.)?((test\.)?travvi(\.\w+)*)$/, ".$2"); } if (domain) { props.domain = domain } */ value = encodeURIComponent(value) var updatedCookie = name + "=" + value for(var propName in props){ updatedCookie += "; " + propName var propValue = props[propName] if(propValue !== true){ updatedCookie += "=" + propValue } } document.cookie = updatedCookie } function deleteCookie(name) { setCookie(name, null, { expires: -1 }) } var Spinner = { show: function() { $('#spinnedLogo').show(); }, hide: function() { $('#spinnedLogo').fadeOut("slow"); } } var Console = { log: function(s) { if (typeof console != "undefined" && typeof console.debug != "undefined") { console.log(s); } } }