/*
@author    : Igor "SkAZi" Potapov <igor@potapoff.org>
@copyright : Plan-B Ltd.
@require   : MooTools 1.2
*/

var oldschool = (Browser.Engine.trident && Browser.Engine.version < 5);


var Loader = new Class({
    'initialize': function( images, onLoad ){
        this.images = images;
        this.total = 0;
        this.onLoad = onLoad || $lambda;

        var that = this;
        this.images.each(function( image ){
            var el = document.createElement('IMG');
            el.onload = that.picLoaded.bind(that);
            el.setAttribute('src', image);
        });
        
    },
    'picLoaded': function(){
        this.total++;
        if(this.total >= this.images.length)
            this.onLoad();
    }
});


/*
    @author   : Igor "SkAZi" Potapov <igor@potapoff.org>
                technique of Scott Jehl, <scott@scottjehl.com>
    @copyright: Plan-B Ltd.
    @requires : Mootools 1.2
*/

var createDropShadows = function( selector ){
    if(Browser.Engine.name == 'presto' ||
       Browser.Engine.name == 'trident') return false;
    
    $$('.childs-will-shadow > *').each(function( element ){
        var ins = new Element('ins', {'html': element.get('html')});
        element.set('html', '');
        ins.inject( element ).clone().addClass('shadow').inject( element, 'top' );
        element.addClass('drop-shadow');
        element.getParent().removeClass('childs-will-shadow');
    });

    $$(selector || '.will-shadow').each(function( element ){
        var ins = new Element('ins', {'html': element.get('html')});
        element.set('html', '');
        ins.inject( element ).clone().addClass('shadow').inject( element, 'top' );
        element.addClass('drop-shadow').removeClass('will-shadow');
    });
}

var createSearchEvents = function(){
    if($('search'))
    $$('#search > input.search')[0].addEvents({
        'focus': function(){
            if(this.value == gettext('поиск'))
                this.removeClass('clean').value = '';
        },
        'blur': function(){
            if(this.value == '')
                this.addClass('clean').value = gettext('поиск');
        }
    });
    
    if($('mark-search'))
    $$('#mark-search input.search')[0].addEvents({
        'focus': function(){
            if(this.value == gettext('Введите название или артикул'))
                this.removeClass('clean').value = '';
        },
        'blur': function(){
            if(this.value == '')
                this.addClass('clean').value = gettext('Введите название или артикул');
        }
    });
    
}

/*
@author    : Igor "SkAZi" Potapov <igor@potapoff.org>
@copyright : Plan-B Ltd.
@require   : MooTools 1.2
*/

var enableLanguageSelect = function(){
    
    $('lang-select-popup').fade('out');
    $('lang-select').addEvent('click', function(){
        $('lang-select-popup').setStyle('display', 'block');
        $('lang-select-popup').fade('in');
        
        $('body').addEvent('click', function(){
            $('lang-select-popup').fade('out');
            $('body').removeEvent('click');
        });
        
        return false;
    });
    
    $$('#lang-select-popup a').each(function(element){
        element.addEvent('click', function(){
            $('lang-select').set('html', this.get('html') );
            $('lang-select-popup').fade('out');
            return true;
        });
    });
    
}


var enablePageAnimation = function( id, options ){

    $( id ).set('morph', options || {duration: 200, transition: 'sine:out', link: 'chain'});

    $( id ).addEvent('mouseenter', function(){

        this.morph({
            marginRight: -5,
            marginTop: 0
        });

        this.morph({
            marginRight: -3,
            marginTop: 0
        });

    });

    $( id ).addEvent('mouseleave', function(){
        
        this.morph({
            marginRight: 2,
            marginTop: 0
        });
        
        this.morph({
            marginRight: 0,
            marginTop: 0
        });
        
    });  
    
}

var detectFlash = function(ver) {
   if(!!(window.attachEvent && !window.opera)) try{return typeof new ActiveXObject('ShockwaveFlash.ShockwaveFlash.'+ver)=='object';} catch(e){ }
   else try{ return parseInt(navigator.plugins['Shockwave Flash'].description.split(" ")[2]) >= ver; } catch(e){ }
   return false;
}  


Number.prototype.nullOrLower  = function(){
    return this <= 0 ? this : 0;    
}


var mailize = function( item ){
    var mail = item.get('rel').split(/, ?/);
    item.set('text', mail[1]+'@'+mail[0]).set('href', 'mailto:'+mail[1]+'@'+mail[0]);
}

var showDropDown = function( e ){
    if(this.hasClass('over'))
        this.fireEvent('mouseleave');
    else {
        var child = this.getChildren('ul')[0];
        if(child.getSize().x && child.getSize().x < this.getSize().x)
            child.setStyle('width', this.getSize().x);
        this.addClass('over').getChildren('ul')[0].setStyles({'opacity': 0.1, 'display':''}).tween('opacity', 1);
    }
    var parent = new Event(e).target.getParent();
    if(parent.hasClass('drop') || parent.tagName == 'EM')
        return false;
    else
        return true;
}

var hideDropDown = function(){
    if(!this.hasClass('over'))
        return;
        
    var that = this;
    this.getChildren('ul')[0].tween('opacity', 0.1);
    (function(){
        that.removeClass('over').getChildren('ul')[0].setStyle('display', 'none');
    }).delay(400);
    return false;
}

window.addEvent('domready', function(){
        
     
        $$("#page-top-menu > li.drop").each(function( item ){
            item.addEvent('click', showDropDown);
            item.addEvent('mouseleave', hideDropDown);
        });
        
        createDropShadows();
        createSearchEvents();
        
        var openNext = function(){
            var answer = this.getNext();
            if(!answer) return false;
            
            this.getNext().setStyles({'opacity': 0, 'display': (this.getNext().style.display=='block'? 'none': 'block')}).fade();
            return false;    
        }
        
        $$('#page .next-will-dropdown').each(function( item ){
            item.addEvent('click', openNext);
            item.getNext().setStyle('display', 'none');
        });
        
        $$('a[href$=nospam]').each(function( item ){
            mailize(item);
        });
        
});