(function() {

    $(document).ready(function() {
        window._layout = $('#layout');
        $('#main-menu td').dropDownMenu();

        $("#center ul.gallery a").fancybox({titlePosition:"inside"});
        $("#center .p-photo a").fancybox({titlePosition:"inside"});

    });

    window.submitFeedback = function(form) {
        var params = $(form).serializeArray();
        params.push({ name: 'iface', value: 'action/feedback' });
        showLoader();
        jQuery.post('/ajax/', params, function(data) { parseFeedbackResponse(data, form); }, 'xml');
        return false;
    }

    parseFeedbackResponse = function(data, form) {
        var successXML = data.getElementsByTagName('success')[0];
        if (successXML) {
            var cnt = _getTextContent(successXML.getElementsByTagName('html')[0]);
            $(form).replaceWith($el('div').addClass('text').html(cnt));
        } else {
            var errorsXML = data.getElementsByTagName('errors')[0];
            if (errorsXML) {
                $('.error', form).removeClass('error');
                var attrs = errorsXML.getElementsByTagName('attr');
                for (var i=0; i<attrs.length; i++) {
                    $('.'+attrs[i].getAttribute('name')).addClass('error');
                }
            }
        }
        hideLoader();
    }


    var showLoader = function() {
        if (!window._loaderP) {
            window._loaderP = $(document.createElement('div')).addClass('loader-p').html('Загрузка ...').css({opacity: 0.6}).appendTo(window._layout);
        } else {
            window._loaderP.show();
        }
        if ((jQuery.browser.msie) && (jQuery.browser.version<7)) {
            window._loaderP.css({top: document.documentElement.scrollTop});
        }
    }
    var hideLoader = function() {
        if (window._loaderP)
            window._loaderP.hide();
    }
    $().ajaxError(function(event, request, settings) {
        if (window._loaderP) {
            window._loaderP.html('Ошибка!').addClass('loader-error');
            window.setTimeout(function() {
                window._loaderP.remove();
                window._loaderP = null;
            }, 5000)
        }
    });
    var $el = function(tag) {
        return $(document.createElement(tag));
    }
    window._getTextContent = function(xmlElement) {
        if (xmlElement.text != undefined) return xmlElement.text;
        else if (xmlElement.textContent != undefined) return xmlElement.textContent;
        else if (xmlElement.firstChild != undefined) return xmlElement.firstChild.nodeValue;
        return '';
    }

    jQuery.fn.extend({
        dropDownMenu: function() {
            this.each(function() {
                var $this = $(this);
                var $submenu = $('ul', this);
                if ($submenu.length) {
                    var shown = false;
                    var delayTimer = null;
                    var $popup = $el('div')
                        .addClass('popup-menu')
                        .append($el('ins').addClass('t'))
                        .append($el('ins').addClass('b'))
                        .append($submenu)
                        .css({ display: 'none' })
                        .appendTo(window._layout);
                    $([$this.get(0), $popup.get(0)]).mouseover(function() {
                        if (delayTimer) window.clearTimeout(delayTimer);
                        if (!shown) {
                            var pos = $this.offset();
                            pos.top += $this.height()-1;
                            shown = true;
                            $popup.css({ left: pos.left, top: pos.top, display: 'block' });
                            $popup.find('ins.b').css({ top: $popup.height()-1 });
                        } else {
                            return false;
                        }
                        return true;
                    }).mouseout(function() {
                        if (delayTimer) clearTimeout(delayTimer);
                        delayTimer = window.setTimeout(function() {
                            delayTimer = null;
                            $popup.css({ display: 'none' });
                            shown = false;
                        }, 50);
                        return false;
                    });
                }
            });
        }
    });
})();

/**
 * pngFix для IE
 *
 */
var __sizingRegExp = /iesizing\-(\w+)/;

function fixPNG(element, sizing) {
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
        sizing = sizing || "crop";
        var sizingMatch = __sizingRegExp.exec(element.className)
        if (sizingMatch)
            sizing = sizingMatch[1];
        var url = "/i/e.gif";
        if (element.tagName == "IMG") {
            if (/\.png$/.test(element.src)) {
                url = element.src;
                element.src = "/i/e.gif";
            }
        } else {
            url = element.currentStyle.backgroundImage.match(/url\(["']?(.+\.png).*?["']?\)/i);
            if (url) {
                url = url[1];
                element.runtimeStyle.backgroundImage = "none";
            }
        }
        if (url)
            element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + url + "',sizingMethod='" + sizing + "')";
        else
            element.runtimeStyle.filter = "true";
    }
}
