// Fucking IE!!!!!!
if(!Array.indexOf) {
    Array.prototype.indexOf = function(obj) {
	for(var i = 0; i < this.length; i++) {
	    if(this[i] == obj) {
		return i;
	    }
	}
	return -1;
    }
}

(function($) {
    $(document).ready(function() {
	$('div.y-head-strip div.y-head-strip_pad').find('a,span').click(function(e) {
	    $.cookie('ya_browser_hide', '1', {
		expires: 7, 
		path: '/', 
		domain: window.location.host.replace(/^[^\.]+?\./, '.')
		});
	    e.preventDefault();
	    $('div.y-head-strip').slideUp('fast');
	    if(!$(this).hasClass('y-head-strip_close')) {
		window.location = $(this).attr('href');
	    }
	    return false;
	});
	$('.opener').click(function() {
	    $('#login').slideToggle('fast', function() {
		$('#login_name_f').focus();
	    });
	});
		
		
	(function() {
	    var path = $('div#path'), buttons = path.find('li i'), prevButton;
			
	    $('body').live('click', function(event) {
		if($(event.target).closest(path.selector).get(0)==null)
		    path.find('li').removeClass('open');
	    });
			
	    buttons.click(function() {
		if(prevButton !== this && $(prevButton).closest('li').hasClass('open'))
		    $(prevButton).closest('li').removeClass('open');
				
		$(this).closest('li').toggleClass('open');
		prevButton = this;
	    });
	})();
		
	/*$('span.switch_city').click(function(e) {
			e.preventDefault();
			$('#header div.info ul.contact li').not('.skype,.contacts').hide();
			var li = $(this).parents('li').next('li').not('.skype');
			if(!li.length) li = $(this).parents('ul').find('li').not('.skype').eq(0);
			li.show();
			return false;
		})
		.bind('selectstart', function(e) {
			e.preventDefault();
			return false;
		});*/
		
	if($('#header div.info ul.contact li').not('.skype,.contacts').length > 1) {
	    $('span.switch_city').click(function(e) {
		e.preventDefault();

		if($('#autocomplete_header_phones').stop(true, true).is(':visible')) {
		    $('#autocomplete_header_phones').fadeOut('fast', function() {
			$(this).remove();
		    });
		    return false;
		}

		var div = $('<div class="autocomplete" id="autocomplete_header_phones" style="display: none;"><div class="top"><div class="l"></div><div class="r"></div></div><ul></ul><div class="bottom"><div class="l"></div><div class="r"></div></div></div>');
		$('#header div.info ul.contact li').not('.skype,.contacts').each(function(index) {
		    if($(this).is(':hidden')) {
			var li = $('<li>')
			.html($(this).html())
			.find('span').removeClass().css({
			    'margin-left': '15px'
			}).end()
			.attr('index', index)
			.css({
			    'text-decoration': 'none'
			})
			.bind('mouseover', function() {
			    $(this).addClass('hover');
			})
			.bind('mouseout', function() {
			    $(this).removeClass('hover');
			})
			.bind('click', function() {
			    var ind = parseInt($(this).attr('index'));
			    $('#header div.info ul.contact li').not('.skype,.contacts').hide().eq(ind).show();
			    div.fadeOut('fast', function() {
				$(this).remove();
			    });
			});
			div.find('ul').append(li);
		    }
		});
		div.css({
		    'top': ($(this).parents('li').offset().top + $(this).parents('li').height() + 5) + 'px', 
		    'left': $(this).parents('li').offset().left + 'px'
		}).fadeIn('fast');
		$('body').append(div);

		return false;
	    })
	    .bind('selectstart', function(e) {
		e.preventDefault();
		return false;
	    });
			
	    $('body').live('click', function(event) {
		if($(event.target).closest('#autocomplete_header_phones').get(0)==null)
		    $('#autocomplete_header_phones').fadeOut('fast', function() {
			$(this).remove();
		    });
	    });
	}

	var cats_hide_timer;
	$('#sidebar div.categories > ul > li').not('.all').bind('mouseover mouseout', function(event) {
	    var self = $(this);
	    if(event.type == 'mouseover') {
		if(cats_hide_timer) clearTimeout(cats_hide_timer);
		if(self.hasClass('hover')) {
		    return false;
		}
		self.parent('ul').find('li.hover').removeClass('hover');

		var ul = self.find('div.sub_categories ul').css({
		    'margin': '0px'
		});
		;
		if(ul.length) {
		    self.addClass('hover');

		    var wh = $(window).height() + $(window).scrollTop();
		    var h = ul.outerHeight() + ul.offset().top + 5;
		    var margin = 0;
		    while((h - margin) >= wh) {
			margin+=2;
		    }
		    ul.css({
			'margin-top': '-' + margin + 'px'
			});
		}
	    }
	    else {
		if(!self.hasClass('hover')) {
		    return false;
		}
		cats_hide_timer = setTimeout(function() {
		    self.removeClass('hover');
		}, 150);
	    }
	});

		
	$('#footer .lang_select').html($('#header .lang_select').html());
	$('#header .lang_select .tgl,#footer .lang_select .tgl').click(function(event) {
	    event.preventDefault();
	    var drop = $(this).next('.lang_dropdown').toggleClass('open');
	    if(drop.parents('#header').length > 0) $('#footer .lang_dropdown').removeClass('open');
	    if(drop.parents('#footer').length > 0) $('#header .lang_dropdown').removeClass('open');
	    return false;
	});
		
	$('body').live('click',function(event) {
	    if($(event.target).closest('.lang_select').get(0) == null)
		$('#header .lang_dropdown, #footer .lang_dropdown').removeClass('open');
	});
		
	$('div.search input[name=search]')
	.focus(function() {
	    $(this).removeClass('tip');
	    if($(this).val() == $(this).attr('default')) $(this).val('');
	})
	.blur(function() {
	    $(this).addClass('tip');
	    if(!$(this).val()) $(this).val($(this).attr('default'));
	});
		
	$('div.search form').submit(function(event) {
	    var input = $(this).find('input[name=search]');
	    if(!input.val() || input.val() == input.attr('default') || input.val().length < 2) {
		event.preventDefault();
		input.val('').focus().select();
		return false;
	    }
	    return true;
	});
		
	//		$('#header form input[name=search]').autocomplete({
	//			url: '/ajax/search/autocomplete/',
	//			searchVar: 'search',
	//			itemsLimit: 20,
	//			onFinish: function(input, settings) {
	//				settings.resultsWrapper.css({'top': input.offset().top + input.outerHeight() + 3, 'left': input.offset().left - 25}).width(input.width() + 30);
	//			},
	//			onItemSelect: function(item, input, settings) {
	//				var val = $('#header form input[name=search]').val().replace(/\s+\([^\)]+?\)$/, '');
	//				if(val) {
	//					$('#header form').find('input[name=search]').val(val);//.end().submit();
	//				}
	//
	//				var loc = $(item).find('a').eq(0).attr('href');
	//				window.location = loc;
	//				return false;
	//			},
	//			onBeforeSend: function(input, settings) {
	//				settings.extraParams['srcht'] = $('#header form input[name=srcht]').val();
	//			}
	//		});
		
	$('a.user_cart').click(function(e) {
	    if($('#cart_not_empty').is(':hidden') || parseInt($('#cart_count').html()) == 0) {
		e.preventDefault();
		return false;
	    }
	    else {
		return true;
	    }
	});

	$('a[href^="#"]').each(function() {
	    var id = $(this).attr('href');
	    if(id.length > 1 && $(id).length > 0) {
		$(this).click(function(e) {
		    e.preventDefault();
		    var top = $(id).offset().top;
		    $('html,body').animate({
			scrollTop: top
		    }, 700, function() {
			window.location.hash = id;
		    });
		    return false;
		});
	    }
	});
    });
	
    // Messsages
    $.SSshowFormMessage = function(input, type, text) {		
	if(!text) text = '';
	if(!type) type = 'success';	
		
	var parent = $(input).parents('div.row');
	if(!parent.length) parent = $(input).parent();
	if(type == 'success')
	    parent.find('div.form_message_error,div.form_message_error_line').remove();
	else
	    parent.find('div.form_message_success').remove();
		
	if(parent.find('div.form_message_' + type).length > 0) {
	    if(type == 'success')
		parent.find('div.form_message_success').html('<i></i>' + text);
	    else if(type == 'error')
		parent.find('div.form_message_error_line').html('<i></i>' + text);
	}
	else {
	    if(type == 'success')
		parent.append($('<div style="display: none;" class="form_message_success"><i></i>' + text + '</div>').fadeIn('normal'));
	    else
		parent.append($('<div style="display: none;" class="form_message_error"><i></i></div><div class="form_message_error_line">' + text + '</div>').fadeIn('normal'));
	}
    };
    $.fn.SSshowFormMessage = function(type, text) {
	$.SSshowFormMessage(this, type, text);
    };
	
    // Gallery
    $.SSscrollAbleItems = function(obj, limit) {
	var wrapper = $(obj);
	var len = wrapper.find('ul li').length;
	if(len > limit) {
	    $('<input type="range" max="' + (len - limit) + '" min="0" value="0" style="display: none;" readonly />').insertAfter(wrapper);
	    var width = wrapper.find('ul li').eq(0).outerWidth();
	    var range = wrapper.next('input:range').rangeinput({
		precision: 2,
		speed: 'fast',
		css: {
		    slider: 'scroll', 
		    handle: 'control handle', 
		    progress: 'track'
		},
		onSlide: function(e, step) {
		    wrapper.find('ul').stop(true, true).animate({
			'margin-left': (-1)*step*width
			}, 'fast');
		},
		change:  function(e, step) {
		    wrapper.find('ul').stop(true, true).animate({
			'margin-left': (-1)*step*width
			}, 'fast');
		}
	    });
	    wrapper.next('div.scroll')
	    .wrap('<div class="bslider"></div>').find('div.track').append('<div></div>')
	    .parents('div.bslider').prepend('<span class="control left"></span><span class="control right"></span>')
	    .find('span.left,span.right').click(function() {
		var step = Math.round((range.data('rangeinput').getValue() - parseInt(range.data('rangeinput').getValue()))*100)/100;
		step = (step > 0 ? ($(this).hasClass('left') > 0 ? step : (1 - step)) : 1);
		if($(this).hasClass('right')) range.data('rangeinput').stepUp(step);
		if($(this).hasClass('left'))  range.data('rangeinput').stepDown(step);
	    });
	    $([wrapper.find('ul'), wrapper.next('div.bslider')]).each(function() {
		$(this).mousewheel(function(event, delta) {
		    event.preventDefault();
		    var step = Math.round((range.data('rangeinput').getValue() - parseInt(range.data('rangeinput').getValue()))*100)/100;
		    step = (step > 0 ? (delta > 0 ? step : (1 - step)) : 1);
		    if(delta < 0) range.data('rangeinput').stepUp(step);
		    if(delta > 0) range.data('rangeinput').stepDown(step);
		});
	    });
	}
    };
    $.fn.SSscrollAbleItems = function(limit) {
	$.SSscrollAbleItems(this, limit);
    };

    // Add to cart
    var hide_cart_informer_timer;
    $.fn.addToCart = function(img, alt, name, adding_to_cart, added_to_cart) {
	var trigger = $(this);
	if(hide_cart_informer_timer) clearTimeout(hide_cart_informer_timer);

	var id_good = $(trigger).attr('href').match(/\/([0-9]+)\.html$/i)[1];
	if(!$('.good_adding_to_cart').length) {
	    var img_old = $(img);
	    if(!img_old.length) {
		img_old = $(alt);
		var img_old_w = img_old.width();
		var img_old_h = img_old.height();
		var img_old_o = img_old.offset();
		var img_new_w = parseInt(img_old_w*1.1);
		var img_new_h = parseInt(img_old_h*1.1);
	    }
	    else {
		var img_old_w = img_old.width();
		var img_old_h = img_old.height();
		var img_old_o = img_old.offset();
		var img_new_w = parseInt(img_old_w*1.5);
		var img_new_h = parseInt(img_old_h*1.5);
	    }
	    var img_new = img_old.clone(true);
	    $('body').append($('<div id="good_' + id_good + '_adding_to_cart" class="good_adding_to_cart"></' + 'div>').css({
		'font-size': '22px',
		'background-color': '#fff', 
		'position': 'absolute', 
		'top': parseInt(img_old_o.top) + 'px', 
		'left': parseInt(img_old_o.left) + 'px', 
		'z-index': '1000'
	    }).append(img_new))

	    img_new.animate({
		'width': img_new_w + 'px', 
		'height': img_new_h + 'px'
		}, 'fast');
	    $('#good_' + id_good + '_adding_to_cart').animate({
		'top': parseInt(img_old_o.top - (img_new_h - img_old_h)/2) + 'px', 
		'left': parseInt(img_old_o.left - (img_new_w - img_old_w)/2) + 'px'
		}, 'fast', function() {
		var cart = $('#header a.user_cart');
		var cart_o = cart.offset();
		var cart_w = cart.width();
		var cart_h = cart.height();
		$('html,body').animate({
		    scrollTop: 0
		}, 'normal', function() {});
		$('#good_' + id_good + '_adding_to_cart').animate({
		    'top': parseInt(cart_o.top - 10 + cart_w/2) + 'px', 
		    'left': parseInt(cart_o.left + 20 + cart_h/2) + 'px', 
		    'width': '10px', 
		    'height': '10px'
		}, 'slow', function() {
		    $(this).remove();
		    name = name.length > 30 ? name.substring(0, 30) + '...' : name;
		    if(!$('#cart_informer').length) {
			$('<div id="cart_informer" style="display:none;"><strong>' + adding_to_cart + '</' + 'strong></' + 'div>').insertAfter($('#header'));
			$('#cart_informer').css('top', ($(window).scrollTop() > 125 ? $(window).scrollTop() : 125) + 'px');
			if(!$.browser.msie)
			    $('#cart_informer').fadeIn('slow');
			else
			    $('#cart_informer').show();
		    }
		    else {
			$('#cart_informer')
			.html('<strong>' + adding_to_cart + '</' + 'strong>')
			.css('top', ($(window).scrollTop() > 125 ? $(window).scrollTop() : 125) + 'px');
		    }

		    $.post('/ajax/cart/add_good/', {
			'id_good': id_good
		    }, function(data) {
			if(!data || typeof(data) != 'object') return false;
			var added_cnt = parseInt(data['count']) - parseInt($('#cart_count').html());
			$('#cart_informer').html('<strong>' + added_to_cart + ' <span>' + (added_cnt > 0 ? added_cnt : 1) + '<' + '/span></' + 'strong>' + name)
			hide_cart_informer_timer = setTimeout(function() {
			    if(!$.browser.msie)
				$('#cart_informer').fadeOut('normal', function() {
				    $(this).remove();
				});
			    else
				$('#cart_informer').remove();
			}, 3000);
			$('#cart_count').html(data['count']);
			$('#cart_money').html(data['money'].replace(/\s+/g, '&nbsp;'));
			$('#cart_not_empty:hidden,#cart_empty:visible').toggle();
		    }, "json");
		});
	    });
	}
    };
	
    $(window).scroll(function() {
	if($('#cart_informer:visible').length) {
	    $('#cart_informer').css('top', ($(window).scrollTop() > 125 ? $(window).scrollTop() : 125) + 'px');
	}
    });
	
    // Fast order
    $.FastBuy = function(s, id_good) {
	$(s).click(function(e) {
	    e.preventDefault();
			
	    if($('#cart_informer:visible').length) {
		$('#cart_informer').remove();
	    }
			
	    $.fancybox({
		href: '/ajax/cart/fast_order/?id_good=' + (id_good ? id_good : $(this).attr('href').match(/\/([0-9]+)\.html$/i)[1]),
		scrolling: 'auto',
		autoDimensions: false,
		width: 750,
		height: 'auto',
		transitionIn: 'elastic',
		transitionOut: 'elastic',
		centerOnScroll: false,
		titleShow: true,
		titlePosition: 'inside',
		overlayColor: '#444',
		overlayOpacity: 0.5,
		hideOnContentClick: false,
		hideOnOverlayClick: false
	    });
	    return false;
	});
    };
    $.fn.FastBuy = function(id_good) {
	$.FastBuy(this, id_good);
    };
})(jQuery);



