$(document).ready(function(){    
	initResize();
	initTextarea('.textarea-holder,.form-contact .area','textarea','active');
	initTextarea('.enter-popup .text,.register-popup .text,.fields .text,.form-contact .text-form','input','text-active');
	initTextarea('.form-feedback .text-form','input','text-active');
	initTextarea('.form-feedback .area','textarea','active');
	initRadio();
	if ($.browser.msie && ($.browser.version == '6.0' || $.browser.version == '7.0')) initIeNav();
	addClass('.main-product .description .list li:has(".list-popup")','active');
	addClass('.score','active-score');
	addClass('.prog-menu>li','active-drop');
	addClass('.user-holder>li#enter','active-drop'); // add by kys
	$('div.top-gallery').gallery({
		duration: 1800,
		listOfSlides: '.wrap > ul > li',
		autoRotation: 10000,
		switcher: '.switcher>li'
	});	

});

function initRadio() {
	var radio = $('.radio input:radio');
	var activeClass = 'radio-active';
	radio.change(function(){
		setActive($(this));
	});
	function setActive(_this){
		var radios = radio.filter('[name="'+_this.attr('name')+'"]');
		radios.parents('.radio').removeClass(activeClass);
		_this.parents('.radio').addClass(activeClass);
	}
}

function initTextarea(_holder,_filed,_class) {
	var areaHolder = $(_holder);
	var activeClass = _class;
	areaHolder.each(function(){
		var _this = $(this);
		var area = _this.find(_filed);
		area.focus(function(){_this.addClass(activeClass);}).blur(function(){_this.removeClass(activeClass);});
	});
	var _this = $(_holder);
	areaHolder.focus(function(){_this.addClass(activeClass);}).blur(function(){_this.removeClass(activeClass);});
}

function addClass(_els,_class) {
	var holder = $(_els);
	var addClass = _class;
	holder.each(function(){
		var _this = $(this);
		var opener = _this.find('a'); // fix aka kys. It was ">a"
		var closer = _this.find('.close,.close2');
		opener.click(function(){
			holder.removeClass(addClass);
			_this.addClass(addClass);
			return 1;
		});
		closer.click(function(){
			_this.removeClass(addClass);
			return 1;
		});
	});
	$(document).mousedown(function(e){
		e = e || event;
		var t = e.target || e.srcElement;
		t = $(t);
		if(t.parents(_els).length == 0){
			holder.removeClass(addClass);
		}
	});
}

function initIeNav(){
	var nav = $('.products-menu');
	nav.each(function(){
		var _this = $(this);
		_this.css({opacity:0});
		var els = _this.find('span').css({paddingLeft:0,paddingRight:0});
		var width = 0;
		els.each(function(){width += $(this).outerWidth();});
		calcWidth();
		$(window).resize(function(){calcWidth();});
		function calcWidth(){
			els.css({
				paddingLeft: parseInt((_this.outerWidth() - width)/els.length/2),
				paddingRight: parseInt((_this.outerWidth() - width)/els.length/2)
			});
			_this.css({opacity:'auto'});
		}
	});
}

function initResize(){
	$('.main-product,.main-ads').each(function(){
		var sidebar = $('.sidebar');
		var productHeight = $(this).height();
		var ttlHeight = $('.main-ttl').outerHeight();
		var classNarrow = 'body-narrow';
		var classWide = 'body-wide';
		switchClass();
		$(window).resize(function(){
			if (productHeight) switchClass();
		});
		function switchClass(){
			if ($(window).width() <= 1234) {
				sidebar.css({paddingTop:productHeight+ttlHeight});
				$('body').removeClass(classWide).addClass(classNarrow);
			}
			else {
				sidebar.css({paddingTop:0});
				$('body').removeClass(classNarrow).addClass(classWide);
			}
		}
	});
}
(function($) {
	$.fn.gallery = function(options) { return new Gallery(this.get(0), options); };
	
	function Gallery(context, options) { this.init(context, options); };
	
	Gallery.prototype = {
		options:{},
		init: function (context, options){
			this.options = $.extend({
				duration: 700,
				slideElement: 1,
				autoRotation: false,
				effect: false,
				listOfSlides: 'ul > li',
				switcher: false,
				disableBtn: false,
				nextBtn: 'a.link-next, a.btn-next, a.next',
				prevBtn: 'a.link-prev, a.btn-prev, a.prev',
				circle: true,
				direction: false,
				event: 'click',
				IE: false
			}, options || {});
			
			// add by Victorious
			// хак для остановки слайдера при наведении мыши на него
			cheat = this;			
			$(".top-gallery .wrap ul").mouseenter(function(){			
				cheat.stop();			
			}).mouseleave(function(){	
				cheat.play();
			});					
			
			var _el = $(context).find(this.options.listOfSlides);
			if (this.options.effect) this.list = _el;
			else this.list = _el.parent();
			if (this.options.switcher) this.switcher = $(context).find(this.options.switcher);
			this.nextBtn = $(context).find(this.options.nextBtn);
			this.prevBtn = $(context).find(this.options.prevBtn);
			this.count = _el.index(_el.filter(':last'));
			
			if (this.options.switcher) this.active = this.switcher.index(this.switcher.filter('.active:eq(0)'));
			else this.active = _el.index(_el.filter('.active:eq(0)'));
			if (this.active < 0) this.active = 0;
			this.last = this.active;
			
			this.woh = _el.outerWidth(true);
			if (!this.options.direction) this.installDirections(this.list.parent().width());
			else {
				this.woh = _el.outerHeight(true);
				this.installDirections(this.list.parent().height());
			}
			
			if (!this.options.effect) {
				this.rew = this.count - this.wrapHolderW + 1;
				if (!this.options.direction) this.list.css({marginLeft: -(this.woh * this.active)});
				else this.list.css({marginTop: -(this.woh * this.active)});
			}
			else {
				this.rew = this.count;
				this.list.css({opacity: 0}).removeClass('active').eq(this.active).addClass('active').css({opacity: 1}).css('opacity', 'auto');
				if (this.options.switcher) this.switcher.removeClass('active').eq(this.active).addClass('active');
			}
			
			if (this.options.disableBtn) {
				if (this.count < this.wrapHolderW) this.nextBtn.addClass(this.options.disableBtn);
				if (this.active == 0) this.prevBtn.addClass(this.options.disableBtn);
			}
			
			this.initEvent(this, this.nextBtn, this.prevBtn, true);
			this.initEvent(this, this.prevBtn, this.nextBtn, false);
			
			if (this.options.autoRotation) this.runTimer(this);
			
			if (this.options.switcher) this.initEventSwitcher(this, this.switcher);
		},
		installDirections: function(temp){
			this.wrapHolderW = Math.floor(temp / this.woh);
			if (((this.wrapHolderW - 1) * this.woh + this.woh / 2) > temp) this.wrapHolderWwrapHolderW--;
		},
		fadeElement: function(){
			if ($.browser.msie && this.options.IE){
				this.list.eq(this.last).css({opacity:0});
				this.list.removeClass('active').eq(this.active).addClass('active').css({opacity:'auto'});
			}
			else{
				this.list.eq(this.last).animate({opacity:0}, {queue:false, duration: this.options.duration});
				this.list.removeClass('active').eq(this.active).addClass('active').animate({
					opacity:1
				}, {queue:false, duration: this.options.duration, complete: function(){
					$(this).css('opacity','auto');
				}});
			}
			if (this.options.switcher) this.switcher.removeClass('active').eq(this.active).addClass('active');
			this.last = this.active;
		},
		scrollElement: function(){
			if (!this.options.direction) this.list.animate({marginLeft: -(this.woh * this.active)}, {queue:false, duration: this.options.duration});
			else this.list.animate({marginTop: -(this.woh * this.active)}, {queue:false, duration: this.options.duration});
			if (this.options.switcher) this.switcher.removeClass('active').eq(this.active).addClass('active');
		},
		runTimer: function($this){
			if($this._t) clearTimeout($this._t);
			$this._t = setInterval(function(){
				$this.toPrepare($this, true);
			}, this.options.autoRotation);
		},
		initEventSwitcher: function($this, el){
			el.bind($this.options.event, function(){
				$this.active = $this.switcher.index($(this));
				if ($this.active == 0) {
					$this.prevBtn.addClass($this.options.disableBtn);
					$this.nextBtn.removeClass($this.options.disableBtn);
				}
				else if ($this.active == $this.count) {
					$this.nextBtn.addClass($this.options.disableBtn);
					$this.prevBtn.removeClass($this.options.disableBtn);
				}
				else {
					$this.prevBtn.removeClass($this.options.disableBtn);
					$this.nextBtn.removeClass($this.options.disableBtn);
				}
				if($this._t) clearTimeout($this._t);
				if (!$this.options.effect) $this.scrollElement();
				else $this.fadeElement();
				if ($this.options.autoRotation) $this.runTimer($this);
				return false;
			});
		},
		initEvent: function($this, addEventEl, addDisClass, dir){
			addEventEl.bind($this.options.event, function(){
				if($this._t) clearTimeout($this._t);
				if ($this.options.disableBtn &&($this.count > $this.wrapHolderW)) addDisClass.removeClass($this.options.disableBtn);
				$this.toPrepare($this, dir);
				if ($this.options.autoRotation) $this.runTimer($this);
				return false;
			});
		},
		toPrepare: function($this, side){
			if (($this.active == $this.rew) && $this.options.circle && side) $this.active = -$this.options.slideElement;
			if (($this.active == 0) && $this.options.circle && !side) $this.active = $this.rew + $this.options.slideElement;
			for (var i = 0; i < $this.options.slideElement; i++){
				if (side) {
					if ($this.active + 1 > $this.rew) {
						if ($this.options.disableBtn && ($this.count > $this.wrapHolderW)) $this.nextBtn.addClass($this.options.disableBtn);
					}
					else $this.active++;
				}
				else{
					if ($this.active - 1 < 0) {
						if ($this.options.disableBtn && ($this.count > $this.wrapHolderW)) $this.prevBtn.addClass($this.options.disableBtn);
					}
					else $this.active--;
				}
			};
			if ($this.active == $this.rew && side) if ($this.options.disableBtn &&($this.count > $this.wrapHolderW)) $this.nextBtn.addClass($this.options.disableBtn);
			if ($this.active == 0 && !side) if ($this.options.disableBtn &&($this.count > $this.wrapHolderW)) $this.prevBtn.addClass($this.options.disableBtn);
			if (!$this.options.effect) $this.scrollElement();
			else $this.fadeElement();
		},
		stop: function(){
			if (this._t) clearTimeout(this._t);
		},
		play: function(){
			if (this._t) clearTimeout(this._t);
			if (this.options.autoRotation) this.runTimer(this);
		}
	}
}(jQuery));

/////////////////////////////////////////////////////////////////////////////
// add by kys 
function onEnterClick() {
	$('.user-holder>li#enter a').click();
}

// add by Victorious
// Функции для работы с куками со старого маркета
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function intim_warning( msg )
{
	var cookie = readCookie('intim');
	if ( cookie == null ) {
		if ( !confirm( msg ) ) {
			window.location.href="/";
		} else {
			createCookie("intim",1,6*30);
		}				
	} 	
}
