Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
//browser detect for NN 4.xx and IE 4.xx and below, if so redirect to upgrade page.
var agt=navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();
var is_minor = parseFloat(appVer);
var is_major = parseInt(is_minor);
// If Mac platform, also use the Macintosh style sheet.
if (navigator.platform.indexOf('Mac') != -1) {
document.write('<link rel="stylesheet" href="/Shared/css/screen_mac.css?v=5.0">');
document.write('<link rel="stylesheet" href="/Local/'+locale+'/css/local_mac.css?v=5.0">');
}
function isIEUnsupported()
{
var iePos = appVer.indexOf('msie');
if (iePos !=-1) {
is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
is_major = parseInt(is_minor);
}
if ((iePos!=-1) && is_major<6) {
if (isRetail.toLowerCase() == "true") {return false}
else {return true}
}
else {return false}
}
function isSafariUnsupported()
{
if((agt.indexOf('safari') > 0) && agt.indexOf('mac') > 0 )
{
is_minor = parseFloat(agt.substring(agt.indexOf('safari')+7,agt.indexOf('safari')+12));
is_major = parseInt(is_minor);
if (is_major < 412) {return true}
else {return false}
}
}
function isSafari3Plus()
{
if(agt.indexOf('safari') > 0)
{
is_minor = parseFloat(agt.substring(agt.indexOf('safari')+7,agt.indexOf('safari')+12));
is_major = parseInt(is_minor);
if (is_major >= 500) {return true}
else {return false}
}
return false;
}
var browserName=navigator.appName;
var browserVer=parseInt(navigator.appVersion);
var isMac = (navigator.appVersion.indexOf("Mac") != -1);
//Do Object detection
if (document.getElementById) {
if ((browserName=="Netscape" && browserVer<5) || isIEUnsupported() || isSafariUnsupported() || (browserName=="Microsoft Internet Explorer" && isMac))
{
document.location.href = "/Common/errors/upgrade.aspx";
}
}
else {document.location.href = "/Common/errors/upgrade.aspx";}
function shouldPriceBeVisible()
{
if ((locale.toLowerCase() == "intl" && isRetail.toLowerCase() == "false") || (locale.toLowerCase() == "zh-cn"))
{
return false;
}
return true;
}
function Redirect(url)
{
window.location = url;
}
// ND: Added so that tIFR could access user agent through ExternalInterface
function getUserAgent()
{
return navigator.userAgent.toLowerCase();
}
// ND: Added so that tIFR could access browser detection through ExternalInterface
function isBrowserIE()
{
var iePos = appVer.indexOf('msie');
if (iePos !=-1)
{
is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
is_major = parseInt(is_minor);
}
if ((iePos!=-1) && is_major >= 4)
{
return true;
}
else
{
return false;
}
}
Прошу прощения за многабукаф. Найдено на просторах http://www.tiffany.com. Помимо этого, там ещё много отжигов - например, hidden-поля в формах, содержащие несколько десятков килобайт Base64-кодированных данных. Что-то похожее как-то раз уже проскальзывало; как и в том случае, сайт сделан на ASP.NET.
На хрена, ну на хрена отправлять это на сервер? Может быть, чтобы потом вывести на веб-страницу? Ну тогда у меня для них плохие новости... Ладно, завязываю ковыряться, надо работать.
Это называется ViewState. Такой способ хранить состояние страницы между постбэками. Так они хотели сделать разработку в вебе похожей на разработку настольных приложений.
На хрена, ну на хрена отправлять это на сервер? Может быть, чтобы потом вывести на веб-страницу? Ну тогда у меня для них плохие новости... Ладно, завязываю ковыряться, надо работать.
Не прощаем.