var main_num = 1;
var mb_cont = 1;

var mbval = null;

function changeBanner() {
	if (mbval) {
	  clearInterval(mbval);
	  mbval = null;
	}
	main_num++;
	if (main_num>4)
	 main_num = 1;
  var img_href = '/i/banner/main/'+main_num+'.jpg';
  	$.preload([ img_href ], {
  		onFinish: function(data) {
  		  if (mb_cont==1) {
  		    $("#mainb2").css({opacity:0,"background-image":"url("+data.image+")"}).show();
  		    $("#mainb2").animate({ opacity:1 },2500);
  		    $("#mainb").animate({ opacity:0 },2500,function() {
          	mbval = setInterval(changeBanner,3000);
          });
  		    mb_cont = 2;
  		  } else {
  		    $("#mainb").css({opacity:0,"background-image":"url("+data.image+")"}).show();
  		    $("#mainb").animate({ opacity:1 },2500);
  		    $("#mainb2").animate({ opacity:0 },2500,function() {
          	mbval = setInterval(changeBanner,3000);
          });
  		    mb_cont = 1;
        }
  		}
    });
}

function bindMainBanner() {
  if (!$("#mainb")[0])
    return;
  mbval = setInterval(changeBanner,3000);
}

    var settings = {
      tl: { radius: 8 },
      tr: { radius: 8 },
      bl: { radius: 8 },
      br: { radius: 8 },
      antiAlias: true
    }

function bindTabNav() {
  if (!$(".tab-nav")[0])
    return;
  var tabs_size = getSizeLite($(".tabs")[0]);
  var last_tab_size = getSizeLite($(".tabs >div:last")[0]);
  var last_tab_pos = parseInt($(".tabs >div:last").css("left"));
  if (last_tab_size.wb+last_tab_pos>tabs_size.wb)
    $(".tab-nav").show();    
  $(".tab-nav .left").click(function() {
    var pos = $(".tabs")[0].scrollLeft;
    $(".tabs").animate({ "scrollLeft":pos-500 },500);
    return false;
  });
  $(".tab-nav .right").click(function() {
    var pos = $(".tabs")[0].scrollLeft;
    $(".tabs").animate({ "scrollLeft":pos+500 },500);
    return false;
  });
}

function changeQuantity(elem,type) {
  var inp = $("input[name='quantity']",$(elem).parent()[0])[0]; 
  var item_id = $(inp).attr("item_id");
  var q = parseInt(inp.value);
  if (isNaN(q)) {
    inp.value='0';
    return;
  }
  var err = "Произошла ошибка во время изменения кол-ва товара в корзине";
  $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
      alert(err);   
  }});
  switch (type) {
    case 'up':
      q++;
      break;
    case 'down':
      if (q<=0)
        return;
      q--;
      break;
  }
  $.getJSON(url_prefix+"/basket/change/",{ item_id:item_id,quantity:q,ms:new Date().getTime() },function(result) {
    if (!result || result.error) {
      var error = result.error || err;
      alert(error);
      return;
    }
    if (result) {
       inp.value = q;
    }
  },function() {
    alert(err);
  });
}

function bindBasketFunctions() {
  $(".ord-items .quantity .arrow-up").click(function() {
    changeQuantity(this,'up');
    return false;
  });
  $(".ord-items .quantity .arrow-down").click(function() {
    changeQuantity(this,'down');
    return false;
  });
  $(".ord-items .quantity input[name='quantity']").bind("change",function() {
    changeQuantity(this);
    return false;
  });
  $("#item_info .basket,#item_info .basket-icon").click(function() {
      var item_id = $(this).attr("item_id");
      var err = "Произошла ошибка во время добавления товара в корзину";
      $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
          alert(err);   
      }});
      $.getJSON(url_prefix+"/basket/add/",{ item_id:item_id,ms:new Date().getTime() },function(result) {
        if (!result || result.error) {
          var error = result.error || err;
          alert(error);
          return;
        }
        if (result) {
          $("#basket-param-name").text("Товар");
          $("#basket-form").show();
      	  $("#overlay").css("opacity",0).show().fadeTo(500,0.5);
        }
      },function() {
        alert(err);
      });
      return false;
  });
}

function unbindInlineGalleryKeys() {
    $.hotkeys.remove("right");
    $.hotkeys.remove("left");
}

function bindInlineGalleryKeys() {
    $.hotkeys.remove("right");
    $.hotkeys.remove("left");
    $.hotkeys.add("right",{ type:"keydown" },function() {
      $("#fullimage2 .nav .right").trigger("click");
    });
    $.hotkeys.add("left",{ type:"keydown" },function() {
      $("#fullimage2 .nav .left").trigger("click");
    });
}

function bindInlineGalleryNav() {
  $("#close-gallery").click(closeGallery);
  $("#fullimage2 #gallery_check_item").click(function() {
    var cont = $("#fullimage2 .nav").attr("cur_cont");
    var c = $("#"+cont)[0];
    if (!c)                         
      return false;
    $(".showed .check input",c).trigger("click");
    $(".showed .check input",c)[0].checked = this.checked;
    return true;
  });
   $("#fullimage2 .nav .left").bind("click",function() {
    var cont = $(this).parent().attr("cur_cont");
    var c = $("#"+cont)[0];
    if (!c)                         
      return false;
    if ($(".showed",c).prev()[0])
      $(".showed",c).prev().find("img").trigger("click",[ true ]);
    else
      $(">li:last",c).find("img:first").trigger("click",[ true ]);
    return false;
   });
   $("#fullimage2 .nav .right").bind("click",function() {
    var cont = $(this).parent().attr("cur_cont");
    var c = $("#"+cont)[0];
    if (!c)                         
      return false;
    if ($(".showed",c).next()[0])
      $(".showed",c).next().find("img").trigger("click",[ true ]);
    else
      $(">li:first",c).find("img").trigger("click",[ true ]);
    return false;
   });
}

function unbindInlineGallery(cont) {
  var c = $("#"+cont)[0];
  if (!c)                         
    return;
  $("img",c).unbind("click");
} 

function bindInlineGallery(cont) {
  var c = $("#"+cont)[0];
  if (!c)                         
    return;
  $("img,.zoom-in",c).click(function(e,s) {
    e.preventDefault();
    if (!s) {
      fw = 40;
      fh = 40;
  		$("#overlay").css("opacity",0).show().fadeTo(500,0.5);
  		$("#fullimage2 #gallery_check_item").show();
  		bindInlineGalleryKeys();
    	setImageHeight(fw,fh,false);
    }
    var txt = $(this).parent().parent().find(">span.title").text();
    $("#fullimage2 .fullimagedesc span").text("").parent().hide();
    $("#fullimage2 .nav").attr("cur_cont",cont);
  	$("#fullimage2 .loading").hide();
  	$("#fullimage2 .loading img").hide();
  	var full_image  = $("#fullimage2 img.full")[0];
  	if (ival) {
		  clearInterval(ival);
		  ival = null;
		}
  	ival = setInterval(function() {
        $("#fullimage2 .nav").hide(); 
  			$("#fullimage2 .loading").show();
  			$("#fullimage2 .loading img").show();
  			$(full_image).hide();
  			clearInterval(ival); 
  			ival = null; 
  		},100);
  	$(".showed",c).removeClass("showed");
  	var item_cont = $(this).parent()[0];
  	while(item_cont && item_cont.tagName!="LI") {
  	 item_cont = $(item_cont).parent()[0];
    }
  	$(item_cont).addClass("showed");
  	var cc = $(".check input",item_cont)[0].checked;
  	$("#fullimage2 #gallery_check_item")[0].checked = cc;
  	$.preload([ $(this).parent().find(">img").attr("full_src") ? $(this).parent().find(">img").attr("full_src") : $(this).parent().find(">img").attr("src") ], {
  		onFinish: function(data) {
  			clearInterval(ival);
  			ival = null;
  			if ($("#fullimage2").css("display")=="none") {
  			 closeGallery();
  			 return;
  			}
    if (txt && txt!="") {
      $("#fullimage2 .fullimagedesc span").text(txt).parent().show();
    } 
  			$("#fullimage2 .loading").hide();
        $("#fullimage2 .nav").show(); 
  			$(full_image).attr({ "src":data.image });//.fadeIn(300);
  			 $(full_image).css({ width:"auto",height:"auto" });
  			fw = $(full_image).width();
  			fh = $(full_image).height();
  			$(full_image).css("margin",0);
  			if (fh>500) {
  			 fw = Math.round(500/fh*fw);
  			 fh = 500;
  			 $(full_image).css({ width:fw,height:fh });
        }
  			if (fw<350) {
  			 mt = Math.round((350-fw)/2); 
  			 fw = 350;
  			 $(full_image).css({ "margin-left":mt,"margin-right":mt });
        }
  			if (fh<250) {
  			 ml = Math.round((250-fh)/2); 
  			 fh = 250;
  			 $(full_image).css({ "margin-top":ml,"margin-bottom":ml });
        }
        if (txt && txt!="") {
          fh+=50;
        } else {
          fh+=35;
        }        
  			$(full_image).fadeIn(300);
  			setImageHeight(fw,fh,true);
      } 
    });
    return false;
  });
}

if (!Array.indexOf) {
  Array.prototype.indexOf = function (obj, start) {
    for (var i = (start || 0); i < this.length; i++) {
      if (this[i] == obj) {
        return i;
      }
    }
  }
}

var ival = null;


var is_scrolling = false;
var scroller,scroller_pos,scroller_size,cont_size;

function changeScrollPos(x) {
  if (x<0)
    x=0;
  if (x>scroller_size.wb-5)
    x = scroller_size.wb-5;
  $(">.track",scroller).css("left",x);
  var items_pos = x/scroller_size.wb*cont_size;
  $("#items")[0].scrollLeft=items_pos;
}

function onScrollerMouseMove(e) {
    if (!is_scrolling)
      return false;
    var evt=window.event;
    var ss = getPositionLite($("#contentcolumn .inner")[0]);
    scroller_pos = ss.x+44;
    var x=(e.pageX==null ? evt.clientX : e.pageX)-scroller_pos-2;
    changeScrollPos(x);
}

function onScrollerMouseUp(e) {
    if (!is_scrolling)
      return false;
    is_scrolling = false;
    $(document.body).unbind("mousemove");
}

function bindScroller() {
  if (!$("ul#items")[0])
    return;
  $("#items").parent().parent().bind("selectstart",function(e ) { return false; });
  $("#items").parent().parent()[0].setAttribute("unselectable", "on");
  scroller = $("#hor-scroller")[0];
  scroller_size = getSizeLite(scroller);
  cont_size = parseInt($("#items li:last").css("left"))+95+40-scroller_size.wb;
  $(scroller).css("visibility","visible").click(function(e) {
    var evt=window.event || e;
    var ss = getPositionLite($("#contentcolumn .inner")[0]);
    scroller_pos = ss.x+44;
    var x=(e.pageX==null ? evt.clientX : e.pageX)-scroller_pos-2;
    changeScrollPos(x);
  });
  $(">.track",scroller).bind("mousedown",function(e) {
    var evt=window.event;
    is_scrolling = true;
    var ss = getPositionLite($("#contentcolumn .inner")[0]);
    scroller_pos = ss.x+44;
    var x=(e.pageX==null ? evt.clientX : e.pageX)-scroller_pos-2;
    changeScrollPos(x);
    $(document.body).bind("mousemove",onScrollerMouseMove).one("mouseup",onScrollerMouseUp);  
  });
  $("#items").bind('mousewheel', function(event, delta) {
    var x= parseInt($(">.track",scroller).css("left"));
    x -= delta*10;
    changeScrollPos(x);
    event.stopPropagation();
    return false;
  });
}  

function getPFParams() {
    var type_id = $("#pfitems").attr("type_id");
    var p = { type_id:type_id };
    $(".filter .field ul .selected").each(function() {
      var el = $(this).parent()[0];
      while (el && el.tagName!="UL") {
        el = $(el).parent()[0];
      }
      if ($(this).attr("list_value"))
        p[$(el).attr("param_name")] = $(this).attr("list_value");
    });
    $(".filter .field input.field").each(function() {
      if (this.value)
        p[$(this).attr("name")] = this.value;
    });
    p.page = $(".pfpager input[name='page_num']")[0].value;
    return p;
}

function bindPfItems(cont,ignoreForm,param_name) {
  $(cont+" li .check input").click(function(e) {
    var isCheck = $(e.target).parent().is(".check");
    var cont = $(this).parent()[0];
    while(cont && cont.tagName!="LI") {
      cont = $(cont).parent()[0];
    }
//    var cont = $(this).parent().parent().parent().parent()[0];
    if ( $(cont).is(".selected")) {
      $(cont).removeClass("selected");
      var el = this;
      var pfitems = $.cookie(param_name);
      if (!pfitems)
        pfitems = [];
      else
        pfitems = pfitems.split(",");
      var item_id = $(this).attr("name").replace(param_name+"_","");
      if (pfitems.indexOf(item_id)>=0) {
        pfitems.splice(pfitems.indexOf(item_id),1); 
      }
      $("#pfbookmarks").text("Закладки ("+pfitems.length+")");  
      $.cookie(param_name, pfitems.join(","),{ path: '/'});
    } else {
      $(cont).addClass("selected");
      var pfitems = $.cookie(param_name);
      if (!pfitems)
        pfitems = [];
      else
        pfitems = pfitems.split(",");
      var item_id = $(this).attr("name").replace(param_name+"_","");
      pfitems.push(item_id);
      $.cookie(param_name, pfitems.join(","),{ path: '/'});
      this.checked=true;
      if (!ignoreForm && !$("#request_form")[0] && $("#fullimage2").css("display")=="none") {
        var bname = "";
        switch(param_name) {
          case "stone_type":
            bname = "Вид кромки";
            break;
          case "stone_work":
            bname = "Доп.пункт";
            break;
          case "profile":
            bname = "Профиль";
            break;
          case "facade":
            bname = "Фасад";
            break;
          case "butt":
            bname = "Торец фасада";
            break;
          case "pfitems":
            bname = "Цвет";
            break;
        }
        $("#basket-param-name").text(bname);
        $("#basket-form").show();
    	  $("#overlay").css("opacity",0).show().fadeTo(500,0.5);
      }
    }
    return true;
  });
}

function bindOrdItems() {
   $("#request_form .ord-items li .check2 input").click(function(e) {
    var isCheck = $(e.target).parent().is(".check");
    var cont = $(this).parent().parent().parent().parent()[0];
    if ( $(cont).is(".selected")) {
      $(cont).removeClass("selected");
      var el = this;
      var item_id = $(this).attr("name").replace("it_","");
      var err = "Произошла ошибка во время удаления товара из корзины";
      $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
          alert(err);   
      }});
      $.getJSON(url_prefix+"/basket/remove/",{ item_id:item_id,ms:new Date().getTime() },function(result) {
        if (!result || result.error) {
          var error = result.error || err;
          alert(error);
          return;
        }
        if (result) {
          $(cont).find(".quantity input[name='quantity']")[0].value = 1;
        }
      },function() {
        alert(err);
      });
    } else {
      $(cont).addClass("selected");
      var item_id = $(this).attr("name").replace("it_","");
      var err = "Произошла ошибка во время добавления товара в корзину";
      $.ajaxSetup({"error":function(XMLHttpRequest,textStatus, errorThrown) {
          alert(err);   
      }});
      $.getJSON("/basket/add/",{ item_id:item_id,ms:new Date().getTime() },function(result) {
        if (!result || result.error) {
          var error = result.error || err;
          alert(error);
          return;
        }
        if (result) {
          $(cont).find(".quantity input[name='quantity']")[0].value = 1;
//         alert("Товар добавлен в корзину");
        }
      },function() {
        alert(err);
      });
      
     
    }
    return true;
  });
}


function unbindPfItems(cont) {
  $(cont+" li").unbind("click");
}

function getElemFromItem(item) {
          var elem = $("<li><div class='inner'><div class='b'></div><div class='bi'><span class='thumb'><span class='zoom-in'></span><img/></span><span class='title'></span><div class='desc'></div><div class='check'><input type='checkbox'/></div></div></div></li>")[0];
          if (item.selected) {
            $(elem).addClass("selected");
            $(".check input",elem)[0].checked=true;
          } 
          $(".bi .thumb img:first",elem).attr("full_src","/img/pfitems/"+item.pic).attr("src","/img/pfitems/thumbs/"+item.pic).attr("alt",item.name+(item.model ? " "+item.model : ""));
          $(".bi span.title",elem).html(item.name);
          $(".desc",elem).html("<small>"+item.cover+"</small><br/><small>"+(item.model ? item.model : "")+"</small>")
          $(".check input",elem).attr({ id:"pfitems_"+item.type_id+"_"+item.id,name:"pfitems_"+item.type_id+"_"+item.id });
          return elem;
}

function PFPager_setAjaxLinks(link) {
  var parts = $(link).attr("href").split("/");
  var page_num = -1;
  var new_href = "";
  for(var i=0;i<parts.length;i++) {
    if (parts[i]=="page" && i<parts.length-1) {
      page_num = parts[i+1];
      break;
    } else
      new_href += "/"+parts[i];
  }
  $(link).attr("href","#page"+(page_num>0 ? "-"+page_num :""));
}

function outPFItems(p) {
    p.ms=new Date().getTime();
    $.post(url_prefix+"/ajax/pfitems/",p,function(result) {
      if (!result) {
        alert("Произошла ошибка во время поиска");
      }
      if (result && result.pfitems && result.pfitems.length>0) {
        $("#pfnoitems").hide();
        unbindInlineGallery("pfitems");
        unbindPfItems("#pfitems");
        $("#pfitems").empty().show();
        for(var i=0;i<result.pfitems.length;i++) {
          var item = result.pfitems[i];
          var elem = getElemFromItem(item);
          $("#pfitems").append(elem);
        }
          bindPfItems("#pfitems",false,"pfitems");
          bindInlineGallery("pfitems");
          $(".pfpager").show();
          $(".pfpager input[name='page_num']")[0].value = p.page;
          $(".pfpager .total_pages").text(result.pager.total_pages);
      } else {
          $(".pfpager").hide();
        $("#pfitems").hide();
        $("#pfnoitems").show();
      }
      curvyCorners.redraw();
    },"json");
}

function gotoPage(page,dir) {
    try {
      var page_num = parseInt($(".pfpager input[name='page_num']")[0].value);
      var p = getPFParams();
      if (page>0) {
        p.page = page;
      } else if (page_num>0)
        p.page = page_num+dir;
      if (p.page<1)
        return false;
      var total_pages = parseInt($(".pfpager .total_pages").text());
      if (p.page>total_pages)
        return false;

      outPFItems(p);
      
      $(".pfpager .prev").attr("href","#page-"+(p.page-1));
      $(".pfpager .next").attr("href","#page-"+(p.page+1));
      return false;
    } catch(ex) { return false; }
}

function bindPFPager() {
  if (!$(".pfpager")[0])
    return;
  PFPager_setAjaxLinks(".pfpager .first");
  PFPager_setAjaxLinks(".pfpager .last");
  PFPager_setAjaxLinks(".pfpager .prev");
  PFPager_setAjaxLinks(".pfpager .next");
  $(".pfpager .first").click(function() { return gotoPage(1,0); });
  $(".pfpager .last").click(function() {
    var page_num = parseInt($(".pfpager .total_pages").text());
    return gotoPage(page_num,0); 
  });
  $(".pfpager .prev").click(function() { return gotoPage(0,-1); });
  $(".pfpager .next").click(function() { return gotoPage(0,+1); });
  $("#pager_form").bind("submit",gotoByPager);
}

function gotoByPager(e) {
    e.stopPropagation();
    e.returnValue = false;
    var page_num = null;
    try {
      page_num = parseInt($(".pfpager input[name='page_num']")[0].value);
    } catch(ex) {}    
    if (!page_num) {
      alert("Вы ввели некорректный номер страницы");
      $(this).focus();
      return false;
    }
    gotoPage(page_num,0);
    return false;
}


function bindGalleryKeys() {
  if ($("#items")[0]) {
    $.hotkeys.remove("right");
    $.hotkeys.remove("left");
    $.hotkeys.add("right",{ type:"keydown" },function() {
      var nextimage = $("#items .selected").next()[0];
      if (!nextimage)
        nextimage = $("#items li:first")[0];
      if (nextimage) {
        $("#items")[0].scrollLeft = parseInt($(nextimage).css("left"))-3;
        $("a:first",nextimage).trigger("click");
      }
    });
    $.hotkeys.add("left",{ type:"keydown" },function() {
      var previmage = $("#items .selected").prev()[0];
      if (!previmage)
        previmage = $("#items li:last")[0];
      if (previmage) {
        $("#items")[0].scrollLeft = parseInt($(previmage).css("left"))-3;
        $("a:first",previmage).trigger("click");
      }
  });
  }
}

function bindGallerySlider() {
  $("#slider .gallery a").click(function() {
    $("#slider .selected").removeClass("selected");
    $(this).addClass("selected");
  	var fw = 695;
  	var fh = 520;
  	var picw = parseInt($(this).attr("rw"));
  	var pich = parseInt($(this).attr("rh"));
  	if (isNaN(picw) || !pich)
  	 picw = 695;
  	if (isNaN(picw) || !pich)
  	 pich = 520;
  	$("#gallery .loading").hide();
  	var isLoading = false;
  	var ival = setInterval(function() { 
  			$("#gallery .loading").show();
  			isLoading = true;
  			$("#gallery #fullimage").hide();
  			clearInterval(ival); 
  			ival = null; 
  		},500);
  	var is_main = $(this).is(".is_main");
  	$.preload([ $(this).attr("href") ], {
  		onFinish: function(data) {
        if (ival) {  		
    			clearInterval(ival);
    			ival = null;
  			}
  			if (!is_main)
  			 $("#points").hide();
  			else
  			 $("#points").show();
  			$("#gallery .loading").hide();
  			var oldwidth = parseInt($("#gallery").css("width"));
  			var oldheight = parseInt($("#gallery").css("height"));
        if (isLoading) {
          $("#gallery #fullimage .active").hide();
        }
        $("#gallery #fullimage").show();
        var imgel = ($("#gallery #fullimage img.first").is(".active") ? $("#gallery #fullimage img.second")[0] : $("#gallery #fullimage img.first")[0]);
        $("#gallery")[0].customAnimate = true;
        $("#gallery")[0].op = 1;
        $("#gallery")[0].params = { isLoading:isLoading,oldwidth:oldwidth,oldheight:oldheight,newwidth:fw,oldElem:$("#gallery #fullimage .active")[0],newElem:imgel };
        $(imgel).attr({ "src":data.image }).css({ "marginLeft":(fw-picw)/2,"marginTop":(fh-pich)/2 }).show();
  			$("#gallery").stop().animate({ width:fw,height:fh,op:0 },{
          duration: 1000,complete:function() {
            $("#gallery #fullimage .active").removeClass("active").css({ "left":0,"marginLeft":0,"marginTop":0 });
            $(imgel).addClass("active");
            $("#gallery")[0].params = null;
          } });          
  		}
  	})

    return false;
  });
}

function closeGallery() {
  $(document).trigger("abort_preload");
	unbindInlineGalleryKeys();
  $("#fullimage2 .nav").hide();
	$("#fullimage2 .loading").stop();
	$("#fullimage2").stop().css({ width:2,height:150,"margin-left":-1,"margin-top":-1 }).hide();
	$("#fullimage2 img.full").hide();
	$("#close-gallery").stop().css({ "margin-left":-1,"margin-top":-1 }).hide();
	$("#fullimage2").stop();
	$("#basket-form").hide();
	$("#overlay").fadeOut(500);
	return false;
};

function setImageHeight(w,h,isAnimated) {
	if (w>0 && h>0) {
		var fh = h;
		var fw = w;
		$("#fullimage2 .loading").css({
		  left:45,
			height:Math.round(fh)+10,
			width:Math.round(fw)
		});
		$("#fullimage2").css({ height:Math.round(fh)-1,"margin-top":Math.round(-fh/2-20) }).show();
		$("#close-gallery").css({ "margin-top":Math.round(-fh/2-40),marginLeft:Math.round(fw/2)-8 });
 		if ($.browser.safari || !isAnimated) {
  		  $("#fullimage2").css({ 
  			marginLeft:Math.round(-fw/2),
  			width:Math.round(fw)
  		});
  		if (isAnimated)
  		  $("#close-gallery").show();
		} else
		  $("#fullimage2").animate({ 
			marginLeft:Math.round(-fw/2),
			width:Math.round(fw)
		}, 300,function() {
		          $("#close-gallery").show();
    } );
		$("#fullimage2 .loading img").css({ "margin-top":Math.round((fh-1))/2-10 });
	}
}


function bindGalleryImages() {
  $("a.gallery_image > img,a.gallery_image > span").click(function(e) {
    e.preventDefault();
    fw = 40;
    fh = 40;
		$("#fullimage2 #gallery_check_item").hide();
    var txt = $(this).parent().attr("title");
    if (txt && txt!="") {
      $("#fullimage2 .fullimagedesc span").text(txt).parent().show();
    } else 
      $("#fullimage2 .fullimagedesc span").text("").parent().hide();
  	setImageHeight(fw,fh,false);
		$("#overlay").css("opacity",0).show().fadeTo(500,0.5);
  	$("#fullimage2 .loading").hide();
  	$("#fullimage2 .loading img").hide();
  	var full_image  = $("#fullimage2 img.full")[0];
  	ival = setInterval(function() { 
  			$("#fullimage2 .loading").show();
  			$("#fullimage2 .loading img").show();
  			$(full_image).hide();
  			clearInterval(ival); 
  			ival = null; 
  		},100);
  	$.preload([ $(this).parent().attr("href") ], {
  		onFinish: function(data) {
  			clearInterval(ival);
  			ival = null;
  			$("#fullimage2 .loading").hide(); 
  			$(full_image).attr({ "src":data.image });//.fadeIn(300);
  			 $(full_image).css({ width:"auto",height:"auto" });
  			fw = $(full_image).width();
  			fh = $(full_image).height();
  			if (fh>400) {
  			 fw = Math.round(400/fh*fw);
  			 fh = 400;
  			 $(full_image).css({ width:fw,height:fh });
        }
        if (txt && txt!="") {
          fh+=25;
        }        
  			$(full_image).fadeIn(300);
  			setImageHeight(fw,fh,true);
      } 
    });
    return false;
  });
}

var top_rounded_settings = {
  tl: { radius: 15 },
  tr: { radius: 15 },
  antiAlias: true
}
var bottom_rounded_settings = {
  bl: { radius: 15 },
  br: { radius: 15 },
  antiAlias: true
}

function getPositionLite(el)
{
	var x = 0, y = 0;
	while(el) {
		x += el.offsetLeft || 0;
		y += el.offsetTop || 0;
		el = el.offsetParent;
	}
	return { x:x, y:y };
}

function getSizeLite(el){
		return {
			wb:el.offsetWidth||0,
			hb:el.offsetHeight||0
		};
}

function hideChildMenu() { 
  $("#submenu-balloon").hide();
  $("#childmenus > ul").hide();
  if (!ival)
    return;
  clearInterval(ival); 
  ival = null; 
}

function bindMenu() {
  var mainpos = getPositionLite($("#mainmenu")[0]).x;
  $("#mainmenu li").hover(function() {
    hideChildMenu();
    var child_name = $(this).find("a:first").attr("item_id");
    pos = getPositionLite($(this)[0]);
    size = getSizeLite(this);
    var childmenu = $("#childmenus .childmenu[parent_id='"+child_name+"']")[0];
    if (childmenu) {
      $("#submenu-balloon").css("left",pos.x-mainpos+size.wb/2-10).show();
      $(childmenu).css("left",pos.x-mainpos-10).show();
    }
        
  },function() {
    ival = setInterval(hideChildMenu,400);
  });
  $("#childmenus .childmenu").hover(function() {
    if (!ival)
      return;
    clearInterval(ival);
    ival = null;
  },function() {
    ival = setInterval(hideChildMenu,400);
  });
}

function docClick(e) {
      if (e.target.tagName=="A" && $("#params_profile select[changed],#params_profile input.text[changed]")[0]) {
        if (confirm("Имеются несохраненные данные профилей. Сохранить их?")) {
          e.returnValue = false;
          e.stopPropagation();
          saveProfileData();
          return false;
        } else {
          return true;
        }          
      }
}      

var pival = null;

function bindPoints() {
  $("#points .point").hover(function() {
    if (pival) {
      clearInterval(pival);
      pival = null;
    }
    $("#points .point_desc:visible").stop(true,true).fadeOut(300);
    $(this).next().stop(true,true).fadeIn(300);
    if (!$(this).next().is(".rounded")) {
      curvyCorners(settings,$(this).next().find("span:first")[0]);
      $(this).next().addClass("rounded");
    }    
  },function() {
    if (pival) {
      clearInterval(pival);
      pival = null;
    }
    var el=this;
    pival = setInterval(function() {
      $(el).next().stop(true,true).fadeOut(300);    
    },1000); 
  });
  $("#points .point_desc").hover(function() {
    if (pival) {
      clearInterval(pival);
      pival = null;
    }
  },function() {
    if (pival) {
      clearInterval(pival);
      pival = null;
    }
    var el=this;
    pival = setInterval(function() {
      $("#points .point_desc:visible").stop(true,true).fadeOut(300);
    },1000); 
  });
}


$(document).ready(function() {
  bindMenu();
  
  
  curvyCorners(top_rounded_settings, ".top-rounded");
  curvyCorners(bottom_rounded_settings, ".bottom-rounded");
  curvyCorners({
  bl: { radius: 15 },
  antiAlias: true
},".left-bottom-rounded");

	$("#overlay").click(closeGallery);
  bindGalleryKeys();
  bindGalleryImages();  
  bindGallerySlider();
    var $_fx_step_default = $.fx.step._default;
    $.fx.step._default = function (fx) {
      if (!fx.elem.customAnimate) return $_fx_step_default(fx);
        if (fx.prop=="op" && fx.elem.params) {
          if ($(fx.elem.params.oldElem).css("opacity")>fx.now && !fx.elem.params.isLoading)
            $(fx.elem.params.oldElem).css("opacity",fx.now);
          $(fx.elem.params.newElem).css("opacity",1-fx.now);
        } else {
          if (fx.prop=="width" && fx.elem.params) {
            //$(fx.elem.params.oldElem).css("left",Math.round(fx.now-fx.elem.params.oldwidth)/2);
            //$(fx.elem.params.newElem).css("left",Math.round(-fx.elem.params.newwidth/2+fx.now/2));
          }
          fx.elem.style[fx.prop] = fx.now+ fx.unit;
        }
        fx.elem.updated = true;
    };  		

  $("#items a").click(function() {
    $("#slider .selected").removeClass("selected");
    $("#items .selected").removeClass("selected");
    $(this).parent().addClass("selected");
    var newimg = $("img:first",this);
  	var fw = 695; //parseInt($(newimg).attr("rw"));
  	var fh = 520; //parseInt($(newimg).attr("rh"));
  	$("#gallery .loading").hide();
  	var isLoading = false;
  	var ival = setInterval(function() { 
  			$("#gallery .loading").show();
  			isLoading = true;
  			$("#gallery #fullimage").hide();
  			$("#slider").hide();
  			clearInterval(ival); 
  			ival = null; 
  		},500);
  		
    var item_id = $(this).attr("item_id");
    document.location.hash = item_id;
  	$.preload([ $(this).attr("full_href") ], {
  		onFinish: function(data) {  		
      $.ajaxSetup({ async:false });
      var info = null;
    	$.getJSON(url_prefix+"/ajax/items/",{ id:item_id,ms:new Date().getTime() },function(obj) {
    		info = obj;
    	});
    	if (!info && !info.id) {
    	 alert("Произошла ошибка во время получения информации о товаре");
      }
      if (info.photos && info.photos.length>0) {
        $("#slider .gallery a").unbind("click").remove();
        if (info.pic)
          $("#slider .gallery").append(
            $("<a/>").addClass("selected").addClass("is_main").attr({ href:"/img/items/"+item_id+"/"+info.pic }).css("top",0).html("<img src=\"/img/items/thumbs/photos/"+item_id+"/"+info.pic+"\"/>")[0]
          )
        for(i=0;i<info.photos.length;i++) {
          var photo = info.photos[i];
          photo.y = parseInt(photo.y);
          $("#slider .gallery").append(
            $("<a/>").attr({ href:"/img/items/"+item_id+"/"+photo.pic,rw:photo.rw,rh:photo.rh }).css("top",photo.y).html("<img src=\"/img/items/thumbs/photos/"+item_id+"/"+photo.pic+"\"/>")[0]
          )
        }
        bindGallerySlider();
        $("#slider").show();
      } else {
        $("#slider .gallery a").unbind("click").remove();
        $("#slider").hide();
      }
      $("#item_info h2").text(info.full_name ? info.full_name : info.name);
      $("#item_info .basket").attr("item_id",info.id);
      $("#item_info .basket-icon").attr("item_id",info.id);
      if (info.old_price && info.old_price!="0") {
        $("#item_info .old_price span").text(info.old_price+" руб.");
        $("#item_info .old_price").show();
      } else
        $("#item_info .old_price").hide();
      if (info.price && info.price!="0") {
        $("#item_info .price").text(info.price+" руб.").show();
      }  else
        $("#item_info .price").hide();
      $("#points").empty().show();
      if (info.texts && info.texts.length>0) {
        for(j=0;j<info.texts.length;j++) {
          var px = parseInt(info.texts[j].x);          
          var py = parseInt(info.texts[j].y);
          var pt = info.texts[j].desc;          
          var p = $("<div/>").addClass("point").css({left:px,top:py})[0];
          var pd =$("<div/>").addClass("point_desc").css({left:px+30,top:py})
            .append( $("<span/>").addClass("round")[0] )       
            .append( $("<div/>").addClass("inner").html(pt)[0] )[0];       
          $("#gallery #fullimage #points").append(p).append(pd);
        }
        bindPoints();
      }                                  
  			clearInterval(ival);
  			ival = null;
  			$("#gallery .loading").hide();
  			var oldwidth = parseInt($("#gallery").css("width"));
  			var oldheight = parseInt($("#gallery").css("height"));
        if (isLoading) {
          $("#gallery #fullimage .active").hide();
        }
        $("#gallery #fullimage").show();
        var imgel = ($("#gallery #fullimage img.first").is(".active") ? $("#gallery #fullimage img.second")[0] : $("#gallery #fullimage img.first")[0]);
        $("#gallery")[0].customAnimate = true;
        $("#gallery")[0].op = 1;
        $("#gallery")[0].params = { isLoading:isLoading,oldwidth:oldwidth,oldheight:oldheight,newwidth:fw+2,oldElem:$("#gallery #fullimage .active")[0],newElem:imgel };
        $(imgel).attr({ "src":data.image }).show();
  			$("#gallery").stop().animate({ width:fw,height:fh,op:0 },{
          duration: 1000,complete:function() {
            $("#gallery #fullimage .active").removeClass("active").css({ "left":0,"marginLeft":0,"marginTop":0 });
            $(imgel).addClass("active");
            $("#gallery")[0].params = null;
          } });          
  		}
  	})
  	return false;
  
  });
/*
  $("#slider").hover(function() {
    $("#slider .inner").css("opacity","").stop().fadeIn(500);
  },function() {
    $("#slider .inner").css("opacity","").stop().fadeOut(500);
  });*/
  $("#slider #next").click(function() {
    var sc = parseInt($("#slider .gallery")[0].scrollTop);
    $("#slider .gallery")[0].scrollTop = sc+48;
    return false;
  }); 
  $("#slider #prev").click(function() {
    var sc = $("#slider .gallery")[0].scrollTop;
    $("#slider .gallery")[0].scrollTop = sc-48;
    return false;
  });
  jQuery("#arrow-right").click(function() {
    var pos = jQuery("#items")[0].scrollLeft+jQuery("#items")[0].offsetWidth;
    jQuery("#items").animate({ "scrollLeft":pos },500,function() {
      var items_pos = jQuery("#items")[0].scrollLeft; 
      $(">.track",scroller).css("left",Math.round(items_pos*scroller_size.wb/cont_size));
    });
    return false;
  });
  jQuery("#arrow-left").click(function() {
    var pos = jQuery("#items")[0].scrollLeft-jQuery("#items")[0].offsetWidth;
    jQuery("#items").animate({ "scrollLeft":pos },500,function() {
      var items_pos = jQuery("#items")[0].scrollLeft; 
      $(">.track",scroller).css("left",Math.round(items_pos*scroller_size.wb/cont_size));
    });
    return false;
  });
  if ($("#items .selected")[0]) {
    $("#items")[0].scrollLeft = parseInt($("#items li.selected:first").css("left"))-3;
  }
  $("#basket-form #close-form,#basket-form .close").click(closeGallery);
  $('.MultiFile').MultiFile({ 
  	accept:'dxf|jpg|tif|bmp|png|rar|zip', max:15, STRING: { 
  		remove:'удалить',
  		file:'$file', 
  		selected:'Выбраны: $file', 
  		denied:'Неверный тип файла: $ext!', 
  		duplicate:'Этот файл уже выбран:\n$file!' 
  	} 
  });		 
  $('#request_form').ajaxForm({
  	beforeSubmit: function(a,f,o) {
  		o.dataType = "html";
  		$("#request_form input[type=submit]").attr("disabled",true);
  		$('#uploadOutput').html('Идет отправка заявки...');
  	},
  	success: function(data) {
  		$('#uploadOutput').html('');
  	 if (data==1) {
        $("#request_form .errors").html('').hide();
  	   location.href=url_prefix+"/request/complete/";
     } else {
      $("#request_form .errors").html(data).show();
  		$("#request_form input[type=submit]").removeAttr("disabled");
     }
  	}
  });   
  bindScroller();
  $("#feedback-form input[name='contact_name']")
    .bind("focus",function() { if (this.value=="Ваше имя") this.value=""; })
    .bind("blur",function() { if (!this.value) this.value="Ваше имя"; });
  $("#feedback-form input[name='contact_email']")
    .bind("focus",function() { if (this.value=="Ваш e-mail") this.value=""; })
    .bind("blur",function() { if (!this.value) this.value="Ваш e-mail"; });
  $("#feedback-form textarea[name='contact_body']")
    .bind("focus",function() { if (this.value=="Ваше сообщение") this.value=""; })
    .bind("blur",function() { if (!this.value) this.value="Ваше сообщение"; });
  $("#feedback-form .submit").click(function() {
    $("#feedback-form").submit();
    return false;  
  });
  
  bindInlineGalleryNav();
  bindInlineGallery("pfitems");
  bindBasketFunctions();
  bindTabNav();
  bindPoints();  
  bindPfItems("#pfitems",false,"pfitems");
  bindPfItems(".bookmarks",true,"pfitems");
  bindOrdItems();
  $(".bookmarks li .remove_from_basket_link").click(function() {
    if (confirm("Вы действительно хотите удалить выбраный товар из заявки?")) {
      var item_cont = $(this).parent().parent().parent()[0];
      $(item_cont).find(".check2 input").trigger("click");
      $(item_cont).remove();
    }
    return false;
  });
  $(".bookmarks li .remove_link").click(function() {
    if (confirm("Вы действительно хотите удалить выбраный цвет из заявки?")) {
      var item_cont = $(this).parent().parent().parent()[0];
      $(item_cont).find(".check input").trigger("click");
      $(item_cont).remove();
    }
    return false;
  });
  $(".filter .field ul li").click(function() {
    $(this).parent().find(".selected").removeClass("selected");
    $(this).addClass("selected");
    $("#pf-search-btn").trigger("click");
  });
  $("#pf-search-btn").click(function(e) {
    var p = getPFParams();
    p.page = 1;
    outPFItems(p);
    return false;
  });
  $("#pffilter").click(function() {
    $("#pfitems").show();
  });
  $(".tabs").click(function(e) {
    var el = e.target;
    while(el && !$(el).parent().is(".tabs") && !$(el).is(".tab") && !$(el).is(".tab-active")) {
      el = $(el).parent()[0];
    }
    var index = $(this).children().index(el);
    if (!el || index<0)
      return;
    $("> .descs > div",$(this).parent()[0]).hide();
    $("> .descs > div:eq("+index+")",$(this).parent()[0]).show();
    curvyCorners.adjust($(".tab-active",this)[0], 'className', 'tab');    
    curvyCorners.adjust(el, 'className', 'tab-active');    
    curvyCorners.redraw();
  });
  bindPFPager();
  $(".left_banner .pics").cycle({
      fx:"fade",
      speed:2000,
      timeout:5000
  });
  bindMainBanner();
});
			
			
