
$(document).ready(function(){

	var animated=0;
	var lw=252;
	var lh=155;
	var lleft=0;
	var ltop=0;
	var index=0;
	var offset_y=100;
	var is_string="";
	var items_arr=[];
	$("span.lens_cat").data("checked",0);
	$("div.lens_block").css("display","none");
	$("div.lens_block").each(function(){
		$(this).css({"position":"absolute","left":lleft*lw,"top":offset_y+ltop*lh})
		$(this).data("num",index);
		$(this).data("hidden",0);
		items_arr[index]=index;
		lleft++;
		if(lleft>3){
			lleft=0;
			ltop++;
		}
		index++;
	})
	setTimeout(function(){
		$("div.lens_block").fadeIn(1800);
	},1000);
	
	//if($("div.lens_block").first().hasClass("c12")){alert(1)};
	function update_items(){
		if(is_string=="") is_string="*";
		//alert(is_string);
		$("div.lens_block").each(function(){
			if(!$(this).is(is_string)){
				//$(this).fadeOut(400);
				$(this).data("hide",1);
			} else {
				//$(this).fadeIn(800);
				$(this).data("hide",0);
			}
		})
		var total=$("div.lens_block").length;
		for(i=0;i<total;i++){
			l1=$("div.lens_block").eq(items_arr[i]);
			if($("div.lens_block").eq(items_arr[i]).data("hide")==1){
				for(j=i+1;j<total;j++){
					if($("div.lens_block").eq(items_arr[j]).data("hide")==0){
						l2=$("div.lens_block").eq(items_arr[j]);
						l1y=offset_y+Math.floor(i/4)*lh;
						l1x=(i-Math.floor(i/4)*4)*lw;
						l2y=offset_y+Math.floor(j/4)*lh;
						l2x=(j-Math.floor(j/4)*4)*lw;						
						//l1x=$(l1).css("left");
						//l1y=$(l1).css("top");
						//l2x=$(l2).css("left");
						//l2y=$(l2).css("top");
						tmp=items_arr[i];
						items_arr[i]=items_arr[j];
						items_arr[j]=tmp;
						//$(l1).css({"left":l2x,"top":l2y});
						//$(l1).stop().animate({left:l2x,top:l2y,opacity:0},400);
						//$(l2).stop().animate({left:l1x,top:l1y,opacity:1},800);
						$(l1).data("num",j);
						$(l2).data("num",i);
						$(l1).stop(true,true).animate({left:l2x,top:l2y,opacity:0},600);
						$(l2).stop(true,true).animate({left:l1x,top:l1y,opacity:1},800);
						
						break;
					}
				}
				$(l1).animate({opacity:0},400);
			} else {
				$(l1).animate({opacity:1},800);
			}
		}
	}
	
	function update_sort_items(){
		if(is_string=="") is_string="*";
		var result_total=0;
		$("div.lens_block").each(function(){
			if(!$(this).is(is_string)){
				$(this).data("hidden",1);
			} else {
				$(this).data("hidden",0);
				result_total++;
			}
		})
		var prop_arr=is_string.split(".");
		if(prop_arr.length>0 && prop_arr[0]!="*") prop_arr.splice(0,1);
		var total=$("div.lens_block").length;
		var new_items_arr=[];
		for(i=0;i<total;i++) new_items_arr[i]=items_arr[i];
		
		if(is_string!="*"){
			//сортировка элементов
			for(var props=0;props<prop_arr.length;props++){
				var plen=$("div.lens_block."+prop_arr[props]).length;
				var order=0;
				var order_counter=0;
				for(i=0;i<plen;i++){
					for(j=0;j<total;j++){
						//if($("div.lens_block").eq(new_items_arr[j]).is(is_string) && $("div.lens_block").eq(new_items_arr[j]).attr("order_"+prop_arr[props])==k.toString()){
						if($("div.lens_block").eq(new_items_arr[j]).data("hidden")==0 && $("div.lens_block").eq(new_items_arr[j]).attr("order_"+prop_arr[props])==order.toString()){
							/*tmp=new_items_arr[k];
							new_items_arr[k]=new_items_arr[j];
							new_items_arr[j]=tmp;
							$("div.lens_block").eq(new_items_arr[k]).data("num",k);
							$("div.lens_block").eq(new_items_arr[j]).data("num",j);*/
							//alert($("div.lens_block").eq(new_items_arr[i]).find("span.lens_name").html()+" -> "+$("div.lens_block").eq(new_items_arr[j]).find("span.lens_name").html());
							tmp=new_items_arr[j];
							for(m=j;m>order_counter;m--){
								new_items_arr[m]=new_items_arr[m-1];
								$("div.lens_block").eq(new_items_arr[m]).data("num",m);
							}
							new_items_arr[order_counter]=tmp;
							$("div.lens_block").eq(new_items_arr[order_counter]).data("num",order_counter);
							order_counter++;
							break;
						}
					}
					order++;
				}
			}
			
			//скрытые элементы - в конец списка
			for(i=0;i<total;i++){
				if($("div.lens_block").eq(new_items_arr[i]).data("hidden")==1){
					for(j=i+1;j<total;j++){
						if($("div.lens_block").eq(new_items_arr[j]).data("hidden")==0){
							//alert("hidden: "+$("div.lens_block").eq(new_items_arr[i]).find("span.lens_name").html());
							tmp=new_items_arr[i];
							new_items_arr[i]=new_items_arr[j];
							new_items_arr[j]=tmp;
							$("div.lens_block").eq(new_items_arr[i]).data("num",i);
							$("div.lens_block").eq(new_items_arr[j]).data("num",j);
							break;
						}
					}
				} else {
				}
			}
		} else {
			for(i=0;i<total;i++){
				new_items_arr[i]=i;
				$("div.lens_block").eq(new_items_arr[i]).data("num",i);
			}
		}
		
		//анимация
		for(i=0;i<total;i++){
			d_new=$("div.lens_block").eq(new_items_arr[i]);
			//if($(d_new).data("hidden")==0) new_opacity=1; else new_opacity=0;
			d_y=offset_y+Math.floor(i/4)*lh;
			d_x=(i-Math.floor(i/4)*4)*lw;
			if($(d_new).data("hidden")==0){
				$(d_new).css("display","block");
				$(d_new).stop(true,true).animate({left:d_x,top:d_y,opacity:1},600,function(){
					animated--;
				});
			} else {
				$(d_new).stop(true,true).animate({left:d_x,top:d_y,opacity:0},600,function(){
					$(this).css("display","none");
					animated--;
				});
			}
			//$(d_new).stop(true,true).animate({left:d_x,top:d_y,opacity:new_opacity},800);
		}
		
		for(i=0;i<total;i++) items_arr[i]=new_items_arr[i];
		
		if(result_total==0){
			if($(".wrap_lens .lens_reset_container").length==0) $(".wrap_lens").append("<div class='lens_reset_container'>По данному запросу ничего не найдено. <a class='lens_reset_filter' href='javascript:void()'>Сбросить фильтр</a></div>");
			$(".wrap_lens .lens_reset_container").fadeIn(600);
		} else {
			$(".wrap_lens .lens_reset_container").fadeOut(600,function(){
				$(this).remove();
			});
		}

		/*alert(new_items_arr);
		for(i=0;i<total;i++){
			if($("div.lens_block").eq(new_items_arr[i]).data("hidden")==1) break;
			//alert($("div.lens_block").eq(new_items_arr[i]).find("span.lens_name").html());
		}*/		
	}
	
	$("span.lens_cat").bind("click",function(e){
		if(!animated){
		
			$(".lens_order").fadeOut(600,function(){
				$(this).remove();
			})
		
			var total=$("div.lens_block").length;
			animated+=total;
			if($(this).data("checked")==0){
				//$(this).css({"font-weight":"bold","color":"#d30000","border-bottom":"1px dashed #d30000"});
				//$(this).css({"font-weight":"bold"});
				$(this).addClass("selected");
				//$(this).css({"font-weight":"bold","color":"#3CA126","border-bottom":"1px dashed #3CA126"});
				$(this).data("checked",1);
				var l_item=this;
				if($(this).hasClass("radiobutton")){
					$(this).parent().find("span.lens_cat").each(function(){
						if(this!=l_item){
							//$(this).css({"font-weight":"normal"});
							$(this).removeClass("selected");
							$(this).data("checked",0);
						}
					})
				}
			} else {
				//$(this).css({"font-weight":"normal"});
				$(this).removeClass("selected");
				$(this).data("checked",0);
			}
			is_string="";
			$("span.lens_cat").each(function(){
				if($(this).data("checked")==1){
					is_string+="."+$(this).attr("param");
				}
			})
			//alert(is_string);
			//update_items();
			update_sort_items();
		}
	})
	
	
	$("a.lens_reset_filter").live("click",function(e){
		e.preventDefault();
		if(!animated){
			$("span.lens_cat").each(function(){
				$(this).data("checked",0);
				//$(this).css({"font-weight":"normal","color":"#3D6FAA","border-bottom":"1px dashed #3D6FAA"});
				$(this).removeClass("selected");
				$(".wrap_lens .lens_reset_container").fadeOut(600,function(){
					$(this).remove();
				});
			})
			var total=$("div.lens_block").length;
			animated+=total;
			is_string="";
			update_sort_items();
		}
	})
	
	
	$(".lens_block span.lens_name").bind("click",function(e){
		var l_sel=".lens_order.l"+$(this).parent().parent().data("num").toString();
		if($(l_sel).length>0){
			$(l_sel).fadeOut(400,function(){
				$(this).remove();
			})
		} else {
			//alert($(this).parent().parent().data("num"));
			$(".lens_order").each(function(){
				$(this).fadeOut(400,function(){
					$(this).remove();
				})
			})
			var l_num=$(this).parent().parent().data("num");
			if((l_num-Math.floor(l_num/4)*4) < 1){
				var l_y=offset_y+Math.floor(l_num/4)*lh-15;
				//if(Math.floor(l_num/4)>1) l_y=offset_y+lh-10;
				//var l_x=2*lw;
				l_x=-19;
				$(".wrap.wrap_lens").append("<div class='lens_order reverse l"+$(this).parent().parent().data("num").toString()+"' style='left:"+l_x.toString()+"px;top:"+l_y.toString()+"px;'></div>");
				
				$(l_sel).append("<div class='order_close'></div>");
				$(l_sel).append("<div class='right_block'></div>");
				$(this).parent().parent().find("img").clone().appendTo(l_sel+" .right_block");
				$(l_sel+" .right_block").append("<div class='lens_form_container'><form id='form_lens'><table class='lens_form'><tbody><tr><td>ФИО</td><td><input id='fio'></input></td></tr><tr><td>Телефон</td><td><input id='tel'></input></td></tr><tr><td>Адрес</td><td><input id='adres'></input></td></tr><tr><td>SPH</td><td><select id='sph'><option value='-2.00' selected>-2.00</option></select></td></tr><tr><td>Кривизна</td><td><select id='kriv'><option value='8.5' selected>8.5</option></select></td></tr><tr><td width='70'>Количество</td><td><select id='kol'><option value='10' selected>10</option></select></td></tr><tr><td colspan='2'>Комментарий<br><textarea id='comment' style='width:100%;'></textarea></td></tr><tr><td colspan='2'><input id='lens_submit' type='submit' value='Заказать'></input></td></tr></tbody></table></form></div>");
				$(l_sel+" .right_block").append("<a class='open_orderform' href='javascript:void()'>Заказать доставку</a>");
				$(l_sel).append("<div class='left_block'>"+$(this).parent().html()+"</div>");
				$(l_sel).append("<div style='clear:both;'></div>");
				$(l_sel).fadeIn(600);
			} else {
				var l_y=offset_y+Math.floor(l_num/4)*lh-15;
				//if(Math.floor(l_num/4)>1) l_y=offset_y+lh-10;
				var l_x=0;
				l_x=(l_num-Math.floor(l_num/4)*4-1)*lw-10;
				$(".wrap.wrap_lens").append("<div class='lens_order l"+$(this).parent().parent().data("num").toString()+"' style='left:"+l_x.toString()+"px;top:"+l_y.toString()+"px;'></div>");
				$(l_sel).append("<div class='order_close'></div>");
				$(l_sel).append("<div class='left_block'>"+$(this).parent().html()+"</div>");
				$(l_sel).append("<div class='right_block'></div>");
				$(this).parent().parent().find("img").clone().appendTo(l_sel+" .right_block");
				$(l_sel+" .right_block").append("<div class='lens_form_container'><form id='form_lens'><table class='lens_form'><tbody><tr><td>ФИО</td><td><input id='fio'></input></td></tr><tr><td>Телефон</td><td><input id='tel'></input></td></tr><tr><td>Адрес</td><td><input id='adres'></input></td></tr><tr><td>SPH</td><td><select id='sph'><option value='-2.00' selected>-2.00</option></select></td></tr><tr><td>Кривизна</td><td><select id='kriv'><option value='8.5' selected>8.5</option></select></td></tr><tr><td width='70'>Количество</td><td><select id='kol'><option value='10' selected>10</option></select></td></tr><tr><td colspan='2'>Комментарий<br><textarea id='comment' style='width:100%;'></textarea></td></tr><tr><td colspan='2'><input id='lens_submit' type='submit' value='Заказать'></input></td></tr></tbody></table></form></div>");
				$(l_sel+" .right_block").append("<a class='open_orderform' href='javascript:void()'>Заказать доставку</a>");
				$(l_sel).append("<div style='clear:both;'></div>");
				$(l_sel).fadeIn(600);
			}
			$(l_sel+" .left_block").append("<p class='lens_desc dostavka' style='margin-top:20px;'>Доставка контактных линз в городе Чебоксары в Пн-Пт с 9:00 до 18:00.</p><p class='lens_desc dostavka'>Стоимость доставки 100 руб.</p><p class='lens_desc dostavka'>Чек доставляется вместе с заказом.</p><p class='lens_desc dostavka'>Укажите размер купюры, которой собираетесь оплатить заказ.</p>");
		}
	})
	
	$("div.lens_block img").bind("click",function(e){
		$(this).parent().find("span.lens_name").trigger("click");
	})
	
	$("div.order_close").live("click",function(){
		$(this).parent().fadeOut(400,function(){
			$(this).remove();
		})
	})
	
	function nl2br(str){
		return str.replace(/([^>])\n/g, '$1<br/>');
	}

	
	$("#form_lens").live("submit",function(e){
		e.preventDefault();
		var check=1;
		if(jQuery.trim($("#fio").val())==""){
			alert("Поле 'ФИО' обязательно для заполнения");
			check=0;
			return 0;
		}
		if(jQuery.trim($("#tel").val())==""){
			alert("Поле 'Телефон' обязательно для заполнения");
			check=0;
			return 0;
		}
		if(jQuery.trim($("#adres").val())==""){
			alert("Поле 'Адрес' обязательно для заполнения");
			check=0;
			return 0;
		}
		if(check){
			var obj=this;
			var params="?";
			params+="&fio="+jQuery.trim($("#fio").val());
			params+="&tel="+jQuery.trim($("#tel").val());
			params+="&adres="+jQuery.trim($("#adres").val());
			params+="&name="+$(obj).parent().parent().parent().find("span.lens_name").html();
			params+="&sph="+jQuery.trim($("#sph").val());
			params+="&kriv="+jQuery.trim($("#kriv").val());
			params+="&kol="+jQuery.trim($("#kol").val());
			params+="&comment="+nl2br(jQuery.trim($("#comment").val()));
			$.ajax({
				url: "/ajax/order_lens.html"+params,
				success: function(msg){
					$(obj).parent().parent().parent().fadeOut(400,function(){
						$(this).remove();
						alert(msg);
					})
				}
			});
		}
	});
	
	$("a.open_orderform").live("click",function(){
		$(this).css({"display":"none"});
		$(this).parent().find("div.lens_form_container").slideDown(800,function(){
			$(this).parent().parent().parent().find("p.dostavka").fadeIn(800);
		});
		//$(this).parent().find("div.lens_form_container").css("display","block");
		$(this).remove();
	})
})


