jQuery(document).ready(function($) {
/* rx-library.js */

// add classes to "first" and "last" children of node (fast routine)
// 17/09/09
jQuery.fn.RX_markSides = function(Q) {
	return this.each(function() {
		$(this).children(':first').addClass(Q.c_first);
		$(this).children(':last').addClass(Q.c_last);
	});
}
//

// add classes to "first" and "last" item inside UL. Used for clearing floats.
// use: <ul class="rx-rowsplit rx-rows-3">. 3 - number of items in one row
// 24/08/09
jQuery.fn.RX_rowSplit = function(Q) {
	return this.each(function() {
		var I = $(this),
        k = 1;
				i = I.attr('class').match(/rx-rows\-\d{1}/),
				n = i.toString().substr(8);

		I.children('li').each(function() {
			if (k == 1) {
				$(this).addClass(Q.c_first);
			} else if (k == n) {
				$(this).addClass(Q.c_last);
			}

			k = (k == n) ? 1 : k+1 ;
		});

		k = I.children('li:last');
		if (!k.hasClass(Q.c_last)) {
			k.addClass(Q.c_last);
		}
	});
}
//

// menu drop down : toggling + callbacks
// 24/08/09
jQuery.fn.RX_menu = function(Q) {
	return this.each(function() {
		$(this).hover(
			function() {
				var t = $(this),
						i = t.children('div');

				if(i.size()) {
					t.addClass('rx-selected');
					i.css( {visibility:'visible', display:'none'}).slideDown('fast');
					//Q.onHover();
				}
			},
			function() {
				var t = $(this),
						i = t.children('div');

				if(i.size()) {
					t.removeClass('rx-selected');
					i.css( {visibility:'hidden' } );
					//Q.onOut();
				}
			}
		);
	});
}
//

// open links in another window
// 01/09/09
jQuery.fn.RX_externalLink = function() {
	return this.each(function() {
		$(this).click(function() {
			window.open($(this).attr('href'));
			return false;
		})
		return;
	});
}
//

// smooth hover effect based on animated opacity
// 19/09/09
jQuery.fn.RX_smoothHover = function(Q) {
	return this.each(function() {
		$(this).hover(
      function() { $(this).animate({opacity:1}, 'fast'); },
			function() { $(this).stop().animate({opacity:Q.hide}, 'fast'); }
		);
	});
}
//

// gallery - no html changed. pics resized
// 20/01/10
jQuery.fn.RX_picSneak = function(Q) {
  this.each(function() {
    var I = $(this),
        n_wrap = I.find(Q.c_wrap),
        a_img = n_wrap.children(),
        i, j,
        C = 'rx-',
        max = 0,
        P = 1,
        FX = 1,
        _busy = false,
        n_thumb = I.find(Q.c_thumb);

    // correct paddings
    function _padding(V, M) {
      var i = M - V,
          ax = Math.floor(i/2);
      return {i1:ax, i2:(i-ax)}
    }
    //

    // resize pics to viewport
    // paddings to center is added
    var _resize = function() {
      var i = 0;

      a_img.each(function() {
        var I = $(this);

        if (I.is('img')) {
          I.addClass(C+ ++i).css('z-index', 79 - i);
        } else {
          I.addClass(C+ ++i).css('z-index', 79 - i);
          I = I.children('img');
        }

        var h = parseInt(I.css('height')),
            w = parseInt(I.css('width')),
            cx = h/Q.v_h,
            dx = w/Q.v_w,
            ax, bx;

        if (cx>=dx) {
          ax = Math.ceil( w / cx );
          bx = _padding(ax, Q.v_w);

          I.css('height', Q.v_h).css('width', ax).
            css('padding-left', bx.i1).css('padding-right', bx.i2);

        } else if (cx<dx) {

          ax = Math.ceil( h / dx );
          bx = _padding(ax, Q.v_h);

          I.css('width', Q.v_w).css('height', ax).
            css('padding-top', bx.i1).css('padding-bottom', bx.i2);
        }

      });
      max = i;
      n_wrap.css('width', (max+1)*Q.v_w);
    }
    //

		if (a_img.size()<1) { return false; }
		_resize();

    if (n_wrap.hasClass(Q.fx[0]) || n_thumb.size() ) {
      FX = 1;
    } else if (n_wrap.hasClass(Q.fx[1]) ) {
      FX = 2;
    }

		I.find(Q.a_prev).click(function() {
			if (_busy) { return false; }
			if (P>1) {
				_busy = true;
        (FX == 1) ?
          n_wrap.animate({'left': '+='+Q.v_w}, 'fast', function() { _busy = false; }) :
          $(a_img[P-2]).animate({'opacity': 1}, 'normal', function() { _busy = false; });
				P--;
			}

			return false;
		});
		//

		I.find(Q.a_next).click(function() {
			if (_busy) { return false; }

			if (P<max) {
			  _busy = true;
        (FX == 1) ?
  				n_wrap.animate({'left': '-='+Q.v_w}, 'fast', function() { _busy = false; }) :
          $(a_img[P-1]).animate({'opacity': 0}, 'normal', function() { _busy = false; });

				P++;
			}

			return false;
		});
		//

		if (n_thumb.size()) {
			i = 0;
			n_thumb.children('img').each(function() {
				$(this).addClass(C+ ++i).click(function() {
          var i = $(this).attr('class').match(/rx\-\d{1,2}/)
              j = i.toString().substr(3);

            if (_busy) { return false; }
            _busy = true;
            n_wrap.animate({'left': - Q.v_w * (j-1)}, 'fast', function() { _busy = false; });
            P = j;
        });
			});
		}
    //
  });
}
//

// mouse wheel & slider
// 30.09.09
jQuery.fn.RX_scroller = function(Q) {
	if ($.browser.mozilla) { _wheel_coef = 39; }
	else if($.browser.safari) { _wheel_coef = 29; }
	else { _wheel_coef = 34; }

	this.each(function() {
		var n_par = $(this);

		n_par.find(Q.n_scroll).bind('mousewheel', function(event, delta) {
				var node = n_par.find(Q.n_hiding);

				if ( node.attr('scrollHeight') > node.outerHeight() ) {
					var speed = node.height() / node.attr('scrollHeight') * (_wheel_coef),
							nv = node.scrollTop() - delta * speed;
					node.scrollTop(nv);
					var s_hande =  node.scrollTop() / ( node.attr('scrollHeight') -  node.height() ) * 100;

					n_par.find(Q.n_slider).slider('option', 'value', -s_hande );
					return false;
				}

				return true;
		});

		n_par.find(Q.n_slider).slider({
			animate: false,
			orientation: "vertical",
			min: -100,
			max: 0,
			slide: function(event, ui) {
				var node = n_par.find(Q.n_hiding);

				if ( node.attr('scrollHeight') > node.outerHeight() ) {
					var ratio = node.attr("scrollHeight") - node.height();
					node.attr( { scrollTop: -ui.value * (ratio / 100) } );
				} else {
					return false;
				}
				return true;
			}
		});
		//

	});
}
//

/* start */
	
		/*
	$('a.rx-el, .rx-el a').RX_externalLink();

	$('.x-gallery ul, .x-raves ul, .x-splash .links').RX_rowSplit({
		c_first : 'rx-first',
		c_last : 'rx-last'
	});

	$('.menu-navy li').RX_menu();

	$('.menu-navy, .menu-lang').RX_markSides({
		c_first : 'rx-first',
		c_last : 'rx-last'
	});


	$('.rx-gallery').RX_picSneak({
		a_prev : 'small .prev',
		a_next : 'small .next',
		c_wrap : '.screen div',
    fx : ['rx-slide', 'rx-opacity'],
		v_h : 322, // height
		v_w : 778, // width
		c_thumb : 'del' //thumbs
	});
	*/

	$('.x-about').RX_scroller({
		n_scroll: '.screen',
		n_hiding: '.screen',
		n_slider: '.rx-scroll'
	});







});






