$(document).ready(
	function(){
	initall();
});


function initall () {
	/* Tooltip */
	$(".tooltip").tooltip({
		track: true,
		showURL: false,
		bodyHandler: function() { 
			return $("<img/>").attr("src", this.rel); 
		}
	});
	/* */
	/*
		Main menu actions 
	*/
		var menuBlock = $(".slide_block");
		var menuTimer = null;
		var maxHeight = 241;
		var minHeight = 0;
		menuOver = function(num){
			menuBlock.eq(num).stop().animate({
				'height':maxHeight
			},600);
			$("#main_menu li a").removeClass("active");
			$("#main_menu li a").eq(num).addClass("active");
			$("#main_menu li").eq(num).addClass("this");
		}
		menuOut = function(num){
			menuBlock.stop().animate({
				'height':minHeight
			},400);
			$("#main_menu li a").removeClass("active");
			$("#main_menu li").removeClass("this");
			
		}
		$("#main_menu li a").each(function(i){
			if (menuBlock.length) {
				$(this).mouseover(
					function(){
						if (menuTimer) clearTimeout(menuTimer);
						menuTimer = setTimeout("menuOver("+i+")", 400);
						$("#main_menu li a").removeClass("active");
						$("#main_menu li a").eq(i).addClass("active");
						$("#main_menu li").eq(i).addClass("this");
					}
				);
				$(this).mouseout(
					function(){
						clearTimeout(menuTimer);
						menuOut(i);
						$("#main_menu li a").removeClass("active");
						$("#main_menu li").removeClass("this");
					}
				);
			}
		});
		menuBlock.hover(
			function(){
				var i = menuBlock.index(this);
				menuOver(i);
			},
			function(){
				var i = menuBlock.index(this);
				menuOut(i);
			}
		);
		// Headphone neme hover
		menuBlock.each(
			function(i){
				menuBlock.eq(i).find(".model li a").mouseover(
					function(){
						var index = menuBlock.eq(i).find(".model li a").index(this);
						$(this).parents(".slide_block").find(".headphone_preview").show();
						$(this).parents(".slide_block").find(".headphone_preview li").removeClass("active");
						$(this).parents(".slide_block").find(".headphone_preview li").eq(index).addClass("active");
					}
				);
				menuBlock.eq(i).find(".model li a").mouseout(
					function(){
						$(this).parents(".slide_block").find(".headphone_preview").hide();
					}
				);
			}
		);
	/*
		Home, street, tech - hover
	*/
		$("#type_menu .title .not_active").hover(
			function(){
				$(this).addClass("hovered");
			},
			function(){
				$(this).removeClass("hovered");
			}
		);
	/* 
		Splash content banner
	*/
			var change = null;
			var changeTimer = 6000;
			var i = 0;
			var is_first = true;
			$("#preloader_best").show();
			var n = $("#best li").size();
			function second_passed() {
				// First
				if (i == 0) {
					$("#best li").eq(i).animate({opacity:1}, {duration: 900});
					$("#best li").eq(i).css("z-index",100);
					$("#preloader_best").hide();
				}
				if (0 < i < n) {
					$("#best li").eq(i-1).animate({opacity:0}, {duration: 600});
					$("#best li").eq(i-1).css("z-index",10);
					$("#best li").eq(i).animate({opacity:1}, {duration: 900});
					$("#best li").eq(i).css("z-index",100);
				}
				// Last
				if (i == n) {
					i = 0;
					$("#best li").eq(n).animate({opacity:0}, {duration: 600});
					$("#best li").eq(n).css("z-index",10);
					$("#best li").eq(0).animate({opacity:1}, {duration: 900});
					$("#best li").eq(0).css("z-index",100);
				}
				i++;
			}
			setTimeout(second_passed, 600);
			change = setInterval(second_passed, changeTimer);
	/* 
		Filter button 
	*/
		$("#filter .btn").hover(
			function(){ $(this).find("img").stop(true,true).fadeOut("fast"); },
			function(){ $(this).find("img").stop(true,true).fadeIn("fast"); }
		);
	/*
		Imagemap menu (Home, Street, Tech)
	*/
		var curr_pos = new Array();
		typeMenuAction = function(elem, dY, i){
			curr_pos[i] = "0 0";
			if ($(elem).hasClass("first")) curr_pos[i] = "0 -"+dY+"px";
			else if ($(elem).hasClass("second")) curr_pos[i] = "0 -"+dY*2+"px";
			else if ($(elem).hasClass("third")) curr_pos[i] = "0 -"+dY*3+"px";
			else if ($(elem).hasClass("fourth")) curr_pos[i] = "0 -"+dY*4+"px";
			else if ($(elem).hasClass("fifth")) curr_pos[i] = "0 -"+dY*5+"px";
            else if ($(elem).hasClass("sixth")) curr_pos[i] = "0 -"+dY*6+"px";
			$(elem+" area").mouseover(
				function(){
					var menu_height = dY;
					var index_area = $(elem+" area").index(this) + 1;
					var menu_top = index_area*menu_height;
					setTimeout('$("'+elem+' .menu").css("background-position", "0 '+(-1)*menu_top+'px")', 10);
				}
			);
			$(elem+" area").mouseout(
				function(){
					setTimeout('$("'+elem+' .menu").css("background-position", "'+curr_pos[i]+'")', 10);
				}
			);
		}
		// Home
		typeMenuAction("li.home", 125, 1);
		// Street
		typeMenuAction("li.street", 157, 2);
		// Tech
		typeMenuAction("li.tech", 141, 3);
	/*
		Filter on inner page
	*/
		// Filter slider
		$(".slider_filter_cut").find(".ui-slider-handle").eq(0).addClass("ui-slider-handle-left"); // cost
		$(".slider_filter_cut").find(".ui-slider-handle").eq(1).addClass("ui-slider-handle-right");// cost
		
		changeSliderArrows = function(elem){
			$(elem+" .slider_filter_cut").find(".ui-slider-handle").eq(0).addClass("ui-slider-handle-left");
			$(elem+" .slider_filter_cut").find(".ui-slider-handle").eq(1).addClass("ui-slider-handle-right");
		}
		changeSliderArrows(".weight");
		changeSliderArrows(".length");
		changeSliderArrows(".resistance");
		changeSliderArrows(".frequency");
		changeSliderArrows(".power");
		changeSliderArrows(".membrane");
		// Filter headphones types click
		$("#headphone_types li a").click(
			function(){
				var index = $("#headphone_types li a").index(this);
				$("#headphone_types_radio li").eq(index).find("input").click();
				$(this).parents("li").toggleClass("active");
				return false;
			}
		);
		$("#headphone_types_radio").hide();
		$("#headphone_types li").click(
			function(){
				var index = $("#headphone_types li").index(this);
				$("#headphone_types_radio li").eq(index).find("input").click();
				$(this).toggleClass("active");
			}
		);
		$("#headphone_types_radio input").each(
			function(i){
				if ( $(this).attr("checked") ) $("#headphone_types li").eq(i).addClass("active");
			}
		);
		// Cover filter
		var coverBlock = $(".stroke_field")
		coverBlock.each(
			function(i){
				$(this).find(".title_cover img").click(
					function(){
						$(this).toggleClass("active");
						coverBlock.eq(i).find(".cover").slideToggle(600);
					}
				);
			}
		);
		// Headphone view list
		//Hover
		var catalogElem = $("#catalogue .item");
		catalogElem.each(
			function(i){
				$(this).hover(
					function(){
						$(this).addClass("active");
					},
					function(){
						$(this).removeClass("active");
					}
				)
			}
		);
		// Compare click
		$(".image_links .compare").click(
			function(){
				// ACTIONS TODO
				if ($(this).hasClass('active')) {
					compare_del($(this).attr('rel'));
					$(this).removeClass('active');
				} else {
					compare_add($(this).attr('rel'));
					$(this).addClass('active');
				}
				return false;
			}
		);
			
/*
	Question popup
*/
	questionPopup();

	$(".filter input.text").keyup(function() {			
		var val = $(this).val();
		val = val.replace(/[^\d]+/g,"");
		if (val.length>5) {
			val = val.substr(0,5);
		}
		$(this).val(val);
	});
	$("#filter input.text").keyup(function() {			
		var val = $(this).val();
		val = val.replace(/[^\d]+/g,"");
		if (val.length>5) {
			val = val.substr(0,5);
		}
		$(this).val(val);
	});
	/* Tooltip */
	initTooltip ();
	/* IE popup */
	$("#popup-content h2 span").click(function(){
		$("#iepopup").hide();
	});
	/* */
	initDetail ();
	initCompare ();

}

function questionPopup(){
	$(".icon_question").mouseover(
		function(){
			$(".stroke_field").css("z-index",10);
			$(this).parents(".stroke_field").css("z-index",20);
			$(this).parents(".stroke_field").find(".help").show();
		}
	);
	$(".icon_question").mouseout(
		function(){
			$(".help").hide();
		}
	);
}

function initDetail () {
		// Cufon headers
		Cufon.replace('.agletterica', {hover: true});
		// View headphone tabs
		$("#description_full .tabs li").click(
			function(){
				$("#description_full .tabs li").removeClass("active");
				$(this).addClass("active");
				var index = $("#description_full .tabs li").index(this);
				$("#description_full .content").hide();
				$("#description_full .content").eq(index).show();
				Cufon.replace('.agletterica', {hover: true});
			}
		);
		/*
			Photogallery
		*/
		$("#photo_big .big_image").hide();
		$("#photo_big .big_image").eq(0).show();
		$("#small_photos img").eq(0).addClass("active");
		$("#small_photos img").click(
			function(){
				$("#small_photos img").removeClass("active");
				var index = $("#small_photos img").index(this);
				$("#small_photos img").eq(index).addClass("active");
				$("#photo_big .big_image").hide();
				$("#photo_big .big_image").eq(index).show();
			}
		);
}

function initCompare () {
		/*
			Compare page
		*/
		$("#headphone_compared li").hover(
			function(){
				$("a.this_name").removeClass("hovered");
				$(this).find("a.this_name").addClass("hovered");
			},
			function(){
				$("a.this_name").removeClass("hovered");
			}
		);
		// Slider
		Cufon.replace('.agletterica', {hover: true});
		var elemCount = $("#headphone_compared").find('li.elem').length;
		var elemWidth = new Array();
		var lWidth = 0;
		var timeRun = 100;
		var timer = null;
		// Define functions
		movePosXprev = function(elem){
			var leftCoord = parseInt($(elem).css("left"));
			if (leftCoord<0) {
				$(elem).css("left", leftCoord + 10);
				$("#slide_right_na").addClass("not_active");
				$("#slide_right").removeClass("not_active");
			}
			else{
				$("#slide_left_na").removeClass("not_active");
				$("#slide_left").addClass("not_active");
				clearInterval(timer);
			}
		}
		movePosXnext = function(elem){
			var leftCoord = parseInt($(elem).css("left"));
			if (-leftCoord<=diff) {
				$(elem).css("left", leftCoord - 10);
				$("#slide_left_na").addClass("not_active");
				$("#slide_left").removeClass("not_active");
			}
			else{
				$("#slide_right_na").removeClass("not_active");
				$("#slide_right").addClass("not_active");
				clearInterval(timer);
			}
		}
		// Define moving line width
		$("#headphone_compared").find('li.elem').each(
			function(i){
				elemWidth[i] = $(this).width();
				lWidth = lWidth + elemWidth[i];
			}
		);
		var lineWidth = lWidth + 0*elemCount; //8 = margin-right
		$("#headphone_compared").width(lineWidth);
		// Define constant
		var diff = 182*elemCount-$("#headphone_compared_frame").width();
		// Mouse moving actions
		$('#slide_left').mouseover(
			function(){
				clearInterval(timer);
				timer = setInterval("movePosXprev('#headphone_compared')",timeRun);
			}
		);
		$("#slide_right").mouseover(
			function(){
				clearInterval(timer);
				timer = setInterval("movePosXnext('#headphone_compared')",timeRun);
			}
		);
		$("#slide_left, #slide_right").mouseout(
			function(){
				clearInterval(timer);
			}
		);
		questionPopup();
}

function initTooltip () {
	$(".tooltip").tooltip({
		track: true,
		showURL: false,
		bodyHandler: function() { 
			return $("<img/>").attr("src", this.rel); 
		}
	});
}

function compare_del(id) {
	$("a.compare[rel="+id+"]").removeClass('active');
	$(".elem[rel="+id+"]").hide();
	$.get('/compare/delete/?id='+id+'&ajax=Y',function(data) { $('#compare_cut').html(data);});
	return false;
}

function compare_add(id) {
	$.get('/compare/add/?id='+id+'&ajax=Y',function(data) { $('#compare_cut').html(data);});
	return false;
}

function update_compare (el) {
	$.get($(el).attr('href'),function(data){$('.view').eq(0).html(data);});
	return false;
}

function change_color (el) {
	$.get($(el).attr('href')+'?ajax=Y',function(data){$('.view').eq(0).html(data);$("html").scrollTop(450);});
	return false;
}

function change_params(el) {
	$(".compareprops").removeClass('active');
	$(el).parent().addClass('active');
	if ($(el).attr('rel')=='diff') {
		$('#compare_params li').hide();
		$('.params_detail li').hide();
		$('.params_detail li[rel=diff]').each(function() {
			$("#compare_params li:eq("+$(this).index()+")").show();
			$(this).show();
		});
	} else {
		$('#compare_params li').show();
		$('.params_detail li').show();
	}
	return false;
}
