﻿var DXagent = navigator.userAgent.toLowerCase();
var DXopera = (DXagent.indexOf("opera") > -1);
var DXopera9 = (DXagent.indexOf("opera/9") > -1);
var DXsafari = DXagent.indexOf("safari") > -1;
var DXie = (DXagent.indexOf("msie") > -1 && !DXopera);
var DXIE55 = (DXagent.indexOf("5.5") > -1 && DXie);
var DXns = (DXagent.indexOf("mozilla") > -1 || DXagent.indexOf("netscape") > -1 || DXagent.indexOf("firefox") > -1) && !DXsafari && !DXie && !DXopera;
var DXDefaultThemeCookieName = "DemoCurrentTheme";
var postImg_MaxWidth = screen.width - 202;
var postImgAligned_MaxWidth = Math.round(screen.width / 3);
var hidePostImg = false;

function initPostImages() {
    if (hidePostImg) return;
    var $in_spoilers = $('div.sp-body var.postImg');
    $('var.postImg').not($in_spoilers).each(function() {
        var $v = $(this);
        var src = $v.attr('title');
        var $img = $('<img src="' + src + '" class="' + $v.attr('className') + '" alt="pic" />');
        $img = fixPostImage($img);
        var maxW = ($v.hasClass('postImgAligned')) ? postImgAligned_MaxWidth : postImg_MaxWidth;
        $img.bind('click', function() { return imgFit(this, maxW); });
        if (user.opt_js.i_aft_l) {
            $('#preload').append($img);
            var loading_icon = '<a href="' + src + '" target="_blank"><img src="../images/loading_3.gif" alt="" /></a>';
            $v.html(loading_icon);
            if ($.browser.msie) {
                $v.after('<wbr>');
            }
            $img.one('load', function() {
                imgFit(this, maxW);
                $v.empty().append(this);
            });
        }
        else {
            $img.one('load', function() { imgFit(this, maxW) });
            $v.empty().append($img);
            if ($.browser.msie) {
                $v.after('<wbr>');
            }
        }
    });
}

function initSpoilers() {
    $('div.sp-body').each(function() {
        var $sp_body = $(this);
        var name = this.title;
        //this.title = '';
        $('<div class="sp-head folded clickable">' + name + '</div>').insertBefore($sp_body).click(function(e) {
            if (!$sp_body.hasClass('inited')) {
                initPostImages($sp_body);
                $sp_body.prepend('<div class="clear"></div>').append('<div class="clear"></div>').addClass('inited');
            }
            if (e.shiftKey) {
                e.stopPropagation();
                e.shiftKey = false;
                var fold = $(this).hasClass('unfolded');
                $('div.sp-head', $($sp_body.parents('td')[0])).filter(function() { return $(this).hasClass('unfolded') ? fold : !fold }).click();
            }
            else {
                $(this).toggleClass('unfolded');
                $sp_body.slideToggle('fast');
            }
        });
    });
}

function fixPostImage($img) {
    var banned_image_hosts = /imagebanana|hidebehind/i;  // imageshack
    var src = $img[0].src;
    // keep4u
    if (src.match(/keep4u/i)) {
        var new_src = src.replace(/http:\/\/keep4u.ru\/imgs\/\w\/(.*)\/(.*)\.(.*)/, "http://keep4u.ru/torrents/$1/$2.$3");
        var new_url = src.replace(/http:\/\/keep4u.ru\/imgs\/\w\/(.*)\/(.*)\.(.*)/, "http://keep4u.ru/full/$1/$2/$3");
        $img.attr('src', new_src).addClass('clickable').bind('click', function() { return !window.open(new_url); });
    }
    else if (src.match(banned_image_hosts)) {
        $img.wrap('<a href="' + this.src + '" target="_blank"></a>').attr({ src: "http://static.torrents.ru/smiles/tr_oops.gif", title: "Прочтите правила выкладывания скриншотов!" });
    }
    return $img;
}

function fixPng(element) {
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
        if (element.tagName == 'IMG' && /\.png$/.test(element.src)) {
            var src = element.src;
            element.src = '../Images/blank.gif';
            element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')";
        }
    }
}

var WidthCorrectAllowed = true;
function CorrectWidth() {
    if (WidthCorrectAllowed) {
        WidthCorrectAllowed = false;
        var divSpacer = document.getElementById('divSpacer');
        if (divSpacer != null)
            return divSpacer.offsetWidth > 800 ? '800px' : 'auto';
        return 'auto';
    }
}

function isIE() {
    return (document.all && !window.opera) ? true : false;
}
function MoveFooter() {
    var spacer = document.getElementById("SpacerDiv");
    var footer = document.getElementById("Footer");
    if (!DXDemoIsExists(spacer) || !DXDemoIsExists(footer))
        return;

    if (!isIE())
        footer.style.visibility = "hidden";

    spacer.style.height = "0px";

    var lastChildHeight = 0;
    var lastChild = null;
    lastChild = GetLastChild(document.body.lastChild);
    if (lastChild != null)
        lastChildHeight = DXGetAbsoluteY(lastChild) + lastChild.offsetHeight;
    spacer.top = DXGetDocumentClientHeight() - lastChildHeight;
    if (Math.abs(spacer.top) == spacer.top)
        spacer.style.height = spacer.top + "px";

    if (!isIE())
        footer.style.visibility = "";
}
function GetLastChild(element) {
    if (element != null) {
        var top = DXGetAbsoluteY(element);
        var height = element.offsetHeight;
        if (top == 0 && height == 0 || element.nodeName == "#text")
            return GetLastChild(element.previousSibling);
    }
    return element;
}

DXattachEventToElement(window, "resize", DXWindowOnResize);
function DXWindowOnResize(evt) {
    MoveFooter();
}

function trace_event(sender, args, event_name) {
    var s = "";
    for (var i in args) {
        if ("inherit" != i && "constructor" != i)
            s += i + " = " + eval("args." + i) + "<br />";
    }
    if (s == "") s = "";

    var name = sender.name;
    var pos = name.lastIndexOf("_");
    if (pos > -1)
        name = name.substring(pos + 1);
    change_monitor_value("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td valign=\"top\" style=\"width: 100px;\">Sender:</td><td valign=\"top\">" + name + "</td></tr><tr><td valign=\"top\">EventType:</td><td valign=\"top\"><b>" + event_name + "</b></td></tr><tr><td valign=\"top\">Arguments:</td><td valign=\"top\">" + s + "</td></tr></table><br />", false);
}
function change_monitor_value(val, is_need_clear) {
    var memo = document.getElementById("Events");
    if (memo != null) {
        memo.innerHTML = Trim(is_need_clear ? val : memo.innerHTML + val);
        memo.scrollTop = 100000;
        if (is_need_clear)
            memo.scrollTop = 0;
    }
}
function clear_monitor() {
    change_monitor_value('', true);
}
function LTrim(value) {
    var re = /\s*((\S+\s*)*)/;
    return value.replace(re, "$1");
}
function RTrim(value) {
    var re = /((\s*\S+)*)\s*/;
    return value.replace(re, "$1");
}
function Trim(value) {
    return LTrim(RTrim(value));
}

function screenshot(src) {
    var screenLeft = document.all && !document.opera ? window.screenLeft : window.screenX;
    var screenWidth = screen.availWidth;
    var screenHeight = screen.availHeight;
    var zeroX = Math.floor((screenLeft < 0 ? 0 : screenLeft) / screenWidth) * screenWidth;

    var windowWidth = 475;
    var windowHeight = 325;
    var windowX = parseInt((screenWidth - windowWidth) / 2);
    var windowY = parseInt((screenHeight - windowHeight) / 2);
    if (windowX + windowWidth > screenWidth)
        windowX = 0;
    if (windowY + windowHeight > screenHeight)
        windowY = 0;

    windowX += zeroX;

    var popupwnd = window.open(src, '_blank', "left=" + windowX + ",top=" + windowY + ",width=" + windowWidth + ",height=" + windowHeight + ", scrollbars=no, resizable=no", true);
    if (popupwnd != null && popupwnd.document != null && popupwnd.document.body != null) {
        popupwnd.document.body.style.margin = "0px";
    }
}
function DXDemoIsExists(obj) {
    return (typeof (obj) != "undefined") && (obj != null);
}
function DXDemoIsFocusableTag(tagName) {
    tagName = tagName.toLowerCase();
    return (tagName == "input" || tagName == "textarea" || tagName == "select" ||
		tagName == "button" || tagName == "a");
}
function DXDemoIsFocusable(element) {
    if (!DXDemoIsExists(element) || !DXDemoIsFocusableTag(element.tagName))
        return false;
    var current = element;
    while (DXDemoIsExists(current)) {
        if (current.tagName.toLowerCase() == "body")
            return true;
        if (current.disabled || element.style.display == "none" || element.style.visibility == "hidden")
            return false;
        current = current.parentNode;
    }
    return true;
}
function DXDemoActivateFormControl(controlId) {
    var control = document.getElementById(controlId);
    if (DXDemoIsExists(control) && DXDemoIsFocusable(control))
        control.focus();
}
function DXDemoActivateLabels() {
    var labels = document.getElementsByTagName("label");
    for (var index = 0; index < labels.length; index++) {
        labels[index].onclick = function() {
            DXDemoActivateFormControl(this.getAttribute('htmlfor') || this.getAttribute('for'));
        }
    }
}
function DXDemoHideFocusRects(container) {
    if (container == null)
        return;
    hyperlinks = container.getElementsByTagName("a");
    for (var index = 0; index < hyperlinks.length; index++) {
        hyperlinks[index].onfocus = function() { this.blur(); }
    }
}
DXattachEventToElement(window, "load", DXWindowOnLoad);
function DXWindowOnLoad(evt) {
    DXDemoActivateLabels();
    MoveFooter();
    DXPrepareThemes();
}
function DXPrepareThemes() {
}
function DXGetCookieValue(name) {
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
        offset = cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = cookie.indexOf(";", offset)
            if (end == -1) {
                end = cookie.length;
            }
            setStr = unescape(cookie.substring(offset, end));
        }
    }
    return setStr;
}
function DXGetCurrentThemeCookieName() {
    if (_aspxIsExists(DXCurrentThemeCookieName))
        return DXCurrentThemeCookieName;
    return DXDefaultThemeCookieName;
}
function DXGetCurrentThemeFromCookies() {
    return DXGetCookieValue(DXGetCurrentThemeCookieName());
}
function DXSaveCurrentThemeToCookies(name) {
    document.cookie = DXGetCurrentThemeCookieName() + "=" + name + "; expires=Thu, 13 Sep 3007 14:07:07 GMT; path=/";
}

function DXSetClientWidth(element, clientWidth) {
    var currentStyle = _aspxGetCurrentStyle(element);
    var newClientWidth = clientWidth - _aspxPxToInt(currentStyle.paddingLeft) - _aspxPxToInt(currentStyle.paddingRight) -
        _aspxPxToInt(currentStyle.borderLeftWidth) - _aspxPxToInt(currentStyle.borderRightWidth);
    element.style.width = newClientWidth + "px";
}
function DXGetAbsoluteX(curEl) {
    var pos = 0;
    var isFirstCycle = true;
    while (curEl != null) {
        pos += curEl.offsetLeft;
        if (curEl.offsetParent != null && !DXopera && !DXopera9) {
            pos -= curEl.scrollLeft;
        }
        if (DXie && !isFirstCycle && curEl.tagName != "TABLE")
            pos += curEl.clientLeft;
        isFirstCycle = false;

        curEl = curEl.offsetParent;
    }
    return pos;
}
function DXGetAbsoluteY(curEl) {
    var pos = 0;
    while (curEl != null) {
        pos += curEl.offsetTop;
        if (curEl.offsetParent != null && !DXopera && !DXopera9) {
            pos -= curEl.scrollTop;
        }
        curEl = curEl.offsetParent;
    }
    return pos;
}
function DXGetDocumentClientHeight() {
    if (DXsafari)
        return window.innerHeight;
    if (DXIE55 || DXopera || document.documentElement.clientHeight == 0)
        return document.body.clientHeight;
    return document.documentElement.clientHeight;
}
function DXGetDocumentScrollTop() {
    if (!DXsafari && (DXIE55 || document.documentElement.scrollTop == 0))
        return document.body.scrollTop;
    return document.documentElement.scrollTop;
}
function DXGetDocumentScrollLeft() {
    if (!DXsafari && (DXIE55 || document.documentElement.scrollLeft == 0))
        return document.body.scrollLeft;
    return document.documentElement.scrollLeft;
}
function DXattachEventToElement(element, eventName, func) {
    if (DXns || DXsafari)
        element.addEventListener(eventName, func, true);
    else {
        if (eventName.toLowerCase().indexOf("on") != 0)
            eventName = "on" + eventName;
        element.attachEvent(eventName, func);
    }
}
//Begin Expand/Collapse
var sectionStates = new Array();
function ExpandCollapse(imageItemId) {
    noReentry = true; // Prevent entry to OnLoadImage
    var imageItem = _aspxGetElementById(imageItemId);
    if (ItemCollapsed(imageItemId) == true) {
        imageItem.src = "../Images/ExpandedButton.gif";
        imageItem.alt = "Collapse";
        ExpandSection(imageItem);
    }
    else {
        imageItem.src = "../Images/CollapsedButton.gif";
        imageItem.alt = "Expand";
        CollapseSection(imageItem);
    }
    noReentry = false;
}
function ExpandCollapse_CheckKey(imageItemId) {
    var imageItem = _aspxGetElementById(imageItemId);
    if (window.event.keyCode == 13)
        ExpandCollapse(imageItem);
}
function ChangeExpanded(imageItem, state, style) {
    try {
        var element = imageItem.parentNode.parentNode;
        var span = element.nextSibling;
        span.style.display = style;
        sectionStates[imageItem.id] = state;
    }
    catch (e) {
    }
}
function ExpandSection(imageItem) {
    ChangeExpanded(imageItem, "e", "");
}

function CollapseSection(imageItem) {
    ChangeExpanded(imageItem, "c", "none");
}
function ItemCollapsed(imageId) {
    return sectionStates[imageId] != "e";
}
function CorrectCodeRenderWidth(pageControl) {
    var tabContent = pageControl.GetContentElement(pageControl.activeTabIndex);
    var divCodeRender = _aspxGetChildsByClassName(tabContent, "cr-div");
    for (var index = 0; index < divCodeRender.length; index++) {
        if ((divCodeRender[index].offsetWidth) != pageControl.GetContentsCell().clientWidth)
            DXSetClientWidth(divCodeRender[index], pageControl.GetContentsCell().clientWidth);
    }
}

function ValidateEmail(email) {
    return (-1 != email.search(/^[a-zA-Z0-9]+([_\.-]?[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,4})+$/));
}

// Dialog Settings

var lastKonkursSrc = "";
var KonkursOnLoadHandlerAttached = false;
function Konkurs_Click(s, e) {
    var src = $("[id$='_konkursURL']").val();
    if (src == lastKonkursSrc) {
        window.popupKonkurs.Show();
        return;
    }
    lastKonkursSrc = src;
    var iframeElement = window.popupKonkurs.GetContentIFrame();
    if (!KonkursOnLoadHandlerAttached) {
        _aspxAttachEventToElement(iframeElement, "load", OnKonkursLoad)
        KonkursOnLoadHandlerAttached = true;
    }
    iframeElement.src = src;
    window.popupKonkurs.SetWindowContentIFrameUrl(-1, iframeElement.src);
}

function OnKonkursLoad() {
    window.popupKonkurs.SetHeaderText($("[id$='_lnkKonkurs']").html());
    window.popupKonkurs.Show();
}

function ClosePopup(value) {
    window.popupKonkurs.Hide();
}

// Dialog Settings

jQuery(document).ready(function() {
    $("[selected$='selected']", "#accordion").parent().addClass('dxnbItemSelected_Office2003BlueNavigation').parent().show();
    $('#accordion').accordion({ autoHeight: false, active: paneIndex, navigate: true });
    $('#accordion > div').eq(paneIndex).show();
    $('.dxnbItem_Office2003BlueNavigation').hover(
        function() {
            $(this).addClass('dxnbItemHover_Office2003BlueNavigation');
        },
        function() {
            $(this).removeClass('dxnbItemHover_Office2003BlueNavigation');
        }
    );
    //	Вкладки меню
    $('.h-menu-pad').each(function() {
        var w = $(this).width();
        $(this).width(w);
        $(this).find('.h-menu-container').width(w - 2);
        $(this).find('.h-menu-pad-button').width(w - 6);
        $(this).find('a.h-menu-link').width(w - 40);
    });
    $('.h-menu-container').hover(
		function() {
		    $(this).parent('td').addClass('hover');
		    //	Выпадающее меню
		    var m = $(this).find('.h-sub-menu');
		    var sh = $(this).find('.h-sub-menu-shadow');
		    m.show();
		    //if (typeof (sh.attr('style')) == 'undefined' || sh.attr('style') == '')
		    {
		        var w = parseInt(m.width());
		        var l = parseInt($(this).position().left + ($(this).width() - w) / 2);
		        if (l < 0) {
		            l = 0;
		        }
		        if (l + w > 950) {
		            l = 950 - w;
		        }
		        m.css({ 'left': l + 'px' });
		        $(this).find('.h-sub-menu-shadow').css({
		            'width': (parseInt(m.outerWidth()) + 12) + 'px',
		            'height': (parseInt(m.outerHeight()) + 6) + 'px',
		            'left': (l - 6) + 'px',
		            'opacity': 0.3
		        });
		    }
		    sh.show();
		},
		function() {
		    $(this).parent('td').removeClass('hover');
		    //	Выпадающее меню
		    $(this).find('.h-sub-menu').hide();
		    $(this).find('.h-sub-menu-shadow').hide();
		}
	);

});

function stopEvent(event) {
    event.preventDefault();
    event.stopPropagation();
    if ($.browser.msie) {
        event.originalEvent.keyCode = 0;
        event.originalEvent.cancelBubble = true;
        event.originalEvent.returnValue = false;
    }
}

//DATE
Date.prototype.formatted = function() {
    return this.getDate() + '.' + (this.getMonth() + 1) + '.' + this.getFullYear();
};

//STRING
String.prototype.toDate = function() {
    var d = new Date();
    d.setTime(Date.parse(this));
    return d;
};

String.prototype.truncate = function(to_length) {
    if (to_length >= this.length) return this.valueOf();
    var re = new RegExp('<[^>]*>', 'gim');
    var text = this.replace(re, '');
    text = text.substring(0, to_length);
    text = text.replace(/\w+$/, '');
    return text;
};
