$(document).ready(function(){
/* settings */
	distance = 30;
	Iw = 2048;
	Ih = 1315;
	Bh = 375;
	mms = 259;
	mmsh = 162;
	smh = 45;

	/* search */
	setWM();
	$(window).resize(function(){
		setWM();
	});

	$("#mpa dl dd").addClass("d_none");
	$("#mpa dl dd").each(function (i){
		var pa = $(this).parent();
		pa.prepend('<span>\+</span>');
	});
	$("#mpa span, #mpa dt").click(function(){
		var dl = $(this).parents("dl");
		if(dl.find("dd:first").css("display")=='none'){
			dl.find("dd").hide(600);
			dl.find("span").html("+");
			dl.find("dd:first").show(600);
			dl.find("span:first").html("-");
		}else{
			dl.find("dd").hide(600);
			dl.find("span").html("+");
		}
	});

	$(".bmap > .pavils > div[class*=nbg]").mouseover(function(){
		$(this).removeClass("nbg");
	});
	$(".bmap > .pavils > div[class*=nbg]").mouseout(function(){
		if($(".map-top span.showpa, .map-top span.hidpa").attr("class")=='showpa'){
			$(this).addClass("nbg");
		}
	});
	$(".bmap > .pavils > div").click(function(){
		$('#pdesc').remove();
		clpa = $(this);
		setScroll(clpa);
		pav = clpa.attr("class");
		ppav = clpa.attr("title");
//		alert(pav);
		var postdata = "pavil="+pav+"&ppav="+ppav;
		var url = "/firms/mapl.p3";
		jQuery.ajax({
			type: "post",
			url: url,
			data: postdata,
			success: function(html){
				$(".pavils").append("<div id='pdesc'>"+html+"</div>");
				var maskHeight = Number($(".pavils #pdesc").height()/2);
//				var maskWidth = $(window).width();

				//transition effect
				var dp = getSPpos(clpa);
				var tpos = Number(dp[0]*8-maskHeight);
				var lpos = Number(dp[1]*8-100);
				if(tpos<100){tpos=100;}
				if(lpos<300){lpos=300;}
				if(lpos>1500){lpos=1500;}
//				alert(tpos);
//				alert(lpos);
				$('#pdesc').css("left",lpos+"px")
				$('#pdesc').css("top",tpos+"px")
				$('#pdesc').css("display","block");
				$(".close").click(function(){
					$('#pdesc').remove();
				});
			}
		});
	});

	/* showthispav*/
	$("#skladlist span a, .storage a").click(function(){
		var rp = $(this).attr("rel");
		var clpa = $(".bmap > .pavils > div[class="+rp+"]");
		if(clpa.length){
			$(".map-top span.min, .map-top span.max").attr("class");
			var mm = $(".map-war");
			if(mm.hasClass('min')){
				mm.removeClass("min");
				$(".bmap").slideDown(600);
			}
			$("body").animate({scrollTop: $('.map-top').attr('offsetTop')}, 0);
			clpa.removeClass('nbg');
			setScroll(clpa,'1');
		}
		return false;
	});

//	$("table.rows tr:even td").addClass("row");
	refreshMapPav();
	$(".bmap > .pavils > div:not([class*=nbg])").each(function(i){
		var pt = $(this);
		var epo = getSPpos($(this));
		var tpos = Number(epo[0]);
		var lpos = Number(epo[1]);
		var wi = Number(epo[2]);
		var hi = Number(epo[3]);
		var spoint = "<div class='spoint' style='width:"+wi+"px;height:"+hi+"px;background:#ffa500; margin-left:"+lpos+"px; margin-top:"+tpos+"px'></div>";
		$(".dwar").append(spoint);
	});

	$(".addFavor").one('click', function(){
		var s = window.location.href;
		re=/http:\/\/[^\/]+(.*)/;
		var url = s.replace(re, "$1");
		var name = $(document).attr("title")
		var postdata = "url="+url+"&name="+name+"&aj=1";
		$.ajax({
			type: "post",
			url: "/cabinet/favor/",
			data: postdata,
			success: function(html){
				var htmltext = "<li><a href='"+url+"'>"+name+"</li>";
				if(!$(".flist a[href="+url+"]").html()){
					$(".flist").append(htmltext);
				}
			}
		});
		return false;
	});
	$(".favor-list .del").click(function(){
		if(confirm('Вы действительно хотите удалить эту запись из вашей книги?')){
		} else {
			return false;
		}
	});
	$(".search .so-sel li").click(function(){
		var soval = $(this).attr("title");
		$(".search .so-sel li").removeClass("cur");
		$(this).addClass("cur");
		$(".search input[name='so']").val(soval);
		if($("#ss").val()!=''){
			$(".search").submit();
		}
	});
	/* map ruler */
	$(".map-top span.min, .map-top span.max").click(function(){
		var d = $(this).attr("class");
		var mm = $(".map-war");
		if(d=='max'){
			mm.removeClass("min");
			setDocumentCookie(document, 'min', '0');
			setDocumentCookie(document, 'mini', '0');
			$(".bmap").slideDown(600);
		}else{
			if(!(mm.hasClass("min"))){
				mm.addClass("min");
			}
			setDocumentCookie(document, 'min', '1');
			setDocumentCookie(document, 'mini', '1');
			$(".bmap").slideUp(600);
		}
	});
	/* map s/h pavs */
	$(".map-top span.showpa, .map-top span.hidpa").click(function(){
		var d = $(this).attr("class");
		if(d=='hidpa'){
			setDocumentCookie(document, 'showpa', '0');
			$(this).attr("class","showpa");
			$(this).text("Показать павильоны");
			$(".bmap > .pavils > div").addClass("nbg");
		}else{
			setDocumentCookie(document, 'showpa', '1');
			$(this).attr("class","hidpa");
			$(this).text("Скрыть павильоны");
		}
		refreshMapPav();
	});
	/* war-map hid */
	$(".map-war span").click(function(){
		var mm = $(".map-war");

		if(mm.hasClass("min")){
			setDocumentCookie(document, 'mini', '0');
			mm.removeClass("min");
		}else{
			setDocumentCookie(document, 'mini', '1');
			mm.addClass("min");
		}
	});

	dragMap();

/* scroll top */
	if($(".map-top span.showpa, .map-top span.hidpa").attr("class")=='showpa'){
		setScroll();
	}

/* firmsgoods */
	if($(".firms-list").html()){
		if(!$(this).hasClass("nohid")){
			$(".firms-list dl").each(function(i){
				var dth = $(this).find("dt:first");
				if($(this).find("dl").length){
					dth.html('<span>-</span>'+dth.html());
				}else{
					dth.html('<span>\+</span>'+dth.html());
				}
//				if(!$(this).prevAll("h2").length){
//					$(this).addClass("hidprfld");
//				}
			});
		}
	}
/*
	$(".firms-list dl dt").click(function(){
		var dle = $(this).parent();
		var dte = $(this);
		if(dle.find("dd").css('display') == 'block' && dle.find("dd:first").hasClass('first')){
			dle.find("dd").slideUp('fast', function(){
				dte.css({'background-image': 'url("/accel/static/i/plus.png")',
						 'background-position' : '5px',
						 'background-repeat': 'no-repeat'});
			});
		}else{
			var spa=$(this).find("span");
			if(!dle.find("dd:first").html()){
				spa.html("");
				spa.addClass("load");
				var postdata = "org="+$('.alls').attr("rel")+"&tuid="+$(this).attr('title');
				prodload(postdata,dle,spa);
			} else {
				dle.find("dd").slideDown('fast');
			}
			dte.css({'background-image': 'url("/accel/static/i/minus.png")',
					 'background-position' : '5px',
					 'background-repeat': 'no-repeat'});
		}
	});
*/
	$(".firms-list dl dt").click(function(){
		var dle = $(this).parent();
		if($(this).find("span").html()=='-'){
			$(this).find("span").html('\+');
//			alert($(this).html());
			dle.addClass("hidpr");
//			dle.dle.children().children().addClass("hid");
		} else {
			var spa=$(this).find("span");
			if(!$(this).parent().find("dd:first").html()){
				spa.addClass("load");
				var postdata = "org="+$('.alls').attr("rel")+"&tuid="+$(this).attr('title');
				prodload(postdata,dle,spa);
			}else{
				dle.removeClass("hidpr");
			}
			dle.find("dl").removeClass("hidpr");
/*
			if(!$(this).parent().find("dd:first").html()){
				spa.html("");
				spa.addClass("load");
				var postdata = "org="+$('.alls').attr("rel")+"&tuid="+$(this).attr('title');
				prodload(postdata,dle,spa);
			} else {
				spa.html('-');
				dle.removeClass("hid");
			}
*/
			spa.html('-');
//			alert(dle.html());
//			dle.children("dl").removeClass("hid");
		}
	});

	/* now wday */
	if($("#shedule").html()){
		var nd=new Date();
		var nd=Number(nd.getDay()-1);
		if(nd<0){var nd = 6};
		$('#shedule dl:eq('+nd+')').addClass("cur");
	}
});

/* refresh map */
function refreshMapPav(){
	if($(".map-top span.showpa, .map-top span.hidpa").attr("class")=='hidpa'){
		$(".bmap > .pavils > div").removeClass("nbg");
	}
}

function prodload(postdata,dle,spa){
	var url = "/firms/mapl.p3";
	jQuery.ajax({
		type: "post",
		url: url,
		data: postdata,
		success: function(html){
			spa.removeClass("load");
			spa.html('-');
			dle.find("dt:first").after(html);
			dle.removeClass("hidpr");

			$("dd.nav span").click(function(){
				if(!$(this).hasClass("cur")){
					spa.html("");
					spa.addClass("load");
					var postdata = "org="+$('.alls').attr("rel")+"&tuid="+$(this).parent().parent().find("dt:first").attr('title')+"&page="+$(this).text();
					prodload(postdata,dle,spa);
					var dds = $(this).parent().parent().find("dd");
					dds.remove();
				}
			});
		}
	});
}

function setScroll(cle,greed){
/* map position to pav */
//	if($(".bmap > .pavils > div:not([class*=nbg])").length==1 || cle){
//	if($(".map-top span.showpa, .map-top span.hidpa").attr("class")=='showpa'){
		if(cle){
			var pa = cle;
		} else {
//			var pa = $(".bmap > .pavils > div:has([class*=nbg]):first");
			var pa = $(".bmap > .pavils > div:not([class*=nbg]):first");
//			alert( $(".bmap > .pavils > div:not([class*=nbg]):first") );
		}
		var re = /([\d\-]+)px/;
		var tpos = pa.css("top");
		var lpos = pa.css("left");
		var xrlim = $(window).width()-Iw;
		var yrlim = Bh-Ih;
		var nl = gVal(Number(lpos.replace(re, "$1"))-$(window).width()/2+45,0,xrlim);
		var nt = gVal(Number(tpos.replace(re, "$1"))-190,0,yrlim);
		$(".bmap").css("background-position",nl+"px "+nt+"px");
		warmapset(nl,nt);
		/* set pavils */
		setPav(nt,nl);

		wc = pa.css("width");
		hc = pa.css("height");
		wc = wc.replace(re, "$1");
		hc = hc.replace(re, "$1");

		if(!cle || greed){
			pa.append('<span class="selected"> </span>');
			var pas = $(".selected");
			adw = hc;
			if(wc>hc){adw=wc;}
			sme = 150+Number(adw);
			gcnt = 0;
			morgmorg(pas);
		}
//	}
//	if(!$(".bmap > .pavils > div:not([class*=nbg])").length){
//		$.scrollTo('.top-nav', 0, {queue:true} );
//	}
}

function morgmorg(el){
	el.css("width",sme+"px");
	el.css("height",sme+"px");
	el.css("top",-Number((sme-hc)/2+2)+"px");
	el.css("left",-Number((sme-wc)/2+2)+"px");
	el.css("opacity",1);
	gcnt++;
	el.animate({
		width: "0px",
		opacity:'0',
		height: "0px",
		top: Number(hc/2)+"px",
		left: Number(wc/2)+"px"
	}, 1000, function() {
		if(gcnt>2){
			el.remove();
		} else {
			morgmorg(el);
		}
	});
}

function setWM(){
	sxrlim = Math.round(($(window).width()+45)/8);
	smxrlim = Math.round(($(window).width())/8);
	$(".crosh").css("width",sxrlim);
}

function dragMap(){
	var clicking = false;
	$('.bmap, .crosh').mousedown(function(e){
		clicking = true;
		xstart = e.pageX;
		ystart = e.pageY;

		/* big map pos */
		bigm = $(".bmap");
		var getxy = getIEpos(bigm);
		getx = getxy[0];
		gety = getxy[1];

		var rem = /([\d\-]+)(?:.{2})?\s0(?:.{2})?\s0(?:.{2})?\s([\d\-]+)(?:.{2})?/;
		/* cros pos */
		if($(".crosh").css("margin-top")){
			crospos =$('.crosh').css('margin-top')+" 0 0 "+$('.crosh').css('margin-left');
		}else{
			crospos = $(".crosh").css("margin");
		}
		scgetx = Number(crospos.replace(rem, "$1"));
		scgety = Number(crospos.replace(rem, "$2"));

		/* elemap */
		/* pavils pos */
		if($(".pavils").css("margin-top")){
			pavpos =$('.pavils').css('margin-top')+" 0 0 "+$('.pavils').css('margin-left');
		}else{
			pavpos = $(".pavils").css("margin");
		}
		pagetx = Number(pavpos.replace(rem, "$1"));
		pagety = Number(pavpos.replace(rem, "$2"));
	});
	$(document).mouseup(function(e){
		clicking = false;
	});
	$('.bmap').mousemove(function(e){
		if(clicking == false) return;
		xdin = Number(xstart-e.pageX);
		xrlim = $(window).width()-Iw;

		ydin = Number(ystart-e.pageY);
		yrlim = Bh-Ih;

		if(Math.abs(xdin)>distance || Math.abs(ydin)>distance){
			xco = gVal(xdin,getx,xrlim);
			yco = gVal(ydin,gety,yrlim);
			$(".bmap").css("background-position",xco+"px "+yco+"px");
			warmapset(xco,yco);

			/* set pavils */
			var tco = sVal(ydin,pagetx,yrlim);
			var lco = sVal(xdin,pagety,xrlim);
			setPav(tco,lco);
		}
	});
	$('.crosh').mousemove(function(e){
		if(clicking == false) return;

		xdin = Number(xstart-e.pageX);
		ydin = Number(ystart-e.pageY);
		xrlim = mms-smxrlim;
		yrlim = mmsh-smh;

/* set to cross */
		var xco = cVal(xdin,scgety,xrlim);
		var yco = cVal(ydin,scgetx,yrlim);
		warmapset(xco,yco);
		$(".bmap").css("background-position",xco+"px "+yco+"px");

/* set pavils */
		setPav(yco,xco);
	});
};

function setPav(tco,lco){
	xrlim = -(Iw-$(".bmap").width())+42;
	yrlim = -(Ih-Bh);
	$(".bmap > .pavils").css("margin",tco+"px 0 0 "+lco+"px");
}

function getIEpos(ele){
	var bgs = [ 'x', 'y' ];
	if(ele.css("background-position-x")){
		bgs[0]=parseInt(ele.css("background-position-x").split(' ')[0]);
		bgs[1]=parseInt(ele.css("background-position-y").split(' ')[0]);
	} else {
		var re = /([\d\-]+)px\s([\d\-]+)px/;
		imgpos = ele.css("background-position");
		bgs[0] = Math.round(Number(imgpos.replace(re, "$1")));
		bgs[1] = Math.round(Number(imgpos.replace(re, "$2")));
	}
	return bgs;
}

function getSPpos(ele){
	var bgs = [ 't', 'l', 'w', 'h' ];
	var re = /([\d\-]+)px/;
	var tpos = ele.css("top");
	var lpos = ele.css("left");
	var wi= ele.css("width");
	var hi= ele.css("height");
	bgs[0] = Math.round(Number(tpos.replace(re, "$1")/8));
	bgs[1] = Math.round(Number(lpos.replace(re, "$1")/8));
	bgs[2] = Math.round(Number(wi.replace(re, "$1")/8));
	bgs[3] = Math.round(Number(hi.replace(re, "$1")/8));
	return bgs;
}

function warmapset(ixco,iyco){
	var sxco = Math.round(ixco/8);
	var syco = Math.round(iyco/8);
	$(".crosh").css("margin",Number(Math.abs(syco)-3)+"px 0 0 "+Number(Math.abs(sxco)-3)+"px");
	$(".lwar").css("background-position",sxco+"px "+syco+"px");
}

function gVal(c,cur,lim){
	c=cur-c;
	if(c>0){c=0;}
	if(c<lim){c=lim;}
	return Math.round(Number(c));
}
function cVal(c,cur,lim){
	c=cur-c;
	if(c<0){c=0;}
	if(c>lim){c=lim;}
	return Math.round(Number(-c*8));
}
function sVal(c,cur,lim){
	c=cur-c;

	if(c>0){c=0;}
	if(c<lim){c=lim;}
	return Math.round(Number(c));
}


function setDocumentCookie(oDoc, sName, sValue, toMs){
	if ( sName.length < 1 )
		return;
	if ( sValue.length > 0 ){
		var expDate = new Date();
		if(!toMs) var toMs = 7*24*60*60*1000;
		expDate.setTime(expDate.getTime() + toMs);
		oDoc.cookie = sName + "=" + escape(sValue) + "; expires=" + expDate.toGMTString() + "; path=/";
	} else {
		oDoc.cookie = sName + "=";
	}
}

/*
$(window).load(function(){
	setBannerIndent();
});

function setBannerIndent(){
	/*
	$('.lay:first').each(function(){
		//console.log($(this).height());
		
		if($(this).height() > 120){
			$(this).css({
				'padding-right': '170px', 'margin-right': 0
			});
			$('p', this).css('float', 'none');
			$('a', this).css({
				'float': 'none', 'margin-left': 'auto', 'margin-right': 'auto'
			});
		}
		else{
			$(this).removeAttr('style');
			$('p', this).removeAttr('style');
			$('a', this).removeAttr('style');
		}
	});
}
	*/
