window.onerror = null;
var tooltip_attr_name = "tooltip";
var tooltip_attr_name_right = "tooltip-right"
var curX;
var curY;
var currentElement;
var allElements;
var aLength;

window.onload = function() {
	if (document.getElementById("genres-menu")) {
		allElements = document.getElementById("genres-menu").getElementsByTagName("a");
		aLength = allElements.length;
		if (document.createElement)
			tooltip.create();
	}
	if (document.getElementById("genres-menu-top")) {
		allElements = document.getElementById("genres-menu-top").getElementsByTagName("a");
		aLength = allElements.length;
		if (document.createElement) 
			tooltip.create();
                
	}
	if (document.getElementById("main-menu")) {
		allElements = document.getElementById("main-menu").getElementsByTagName("a");
		aLength = allElements.length;
		if (document.createElement) 
			alt.create();
	}

	if (document.getElementById("genres-menu-search")) {
		allElements = document.getElementById("genres-menu-search").getElementsByTagName("a");
		aLength = allElements.length;
		if (document.createElement) 
			tooltip.create();
                
	}
	if (document.getElementById("view-contents")) {
		conLink = document.getElementById("view-contents");
		conLink.onclick = function() { toggle("contents-tooltip"); }
	}
	if (document.getElementById("genre-list-link")) {
		genrelistLink = document.getElementById("genre-list-link");
		genrelistLink.onclick = function() { genrelist(); }
	}
}





tooltip = {
	tip: document.createElement("div"),
	top: document.createElement("div"),
	middle: document.createElement("div"),
	bottom: document.createElement("div"),
	arrow: document.createElement("div"),
	c: null,
	visible: false,
	
	move: function(e) {
		if (tooltip.visible) {
			tooltip.draw(curX, curY);
		}
	},
	
	create: function() {
		//tip create
		tooltip.tip.setAttribute("id", "tooltip");
		document.body.appendChild(tooltip.tip);
		
		//top create
		tooltip.top.setAttribute("id", "tooltip-top");
		tooltip.tip.appendChild(tooltip.top);
		
		//tip create
		tooltip.middle.setAttribute("id", "tooltip-middle");
		tooltip.tip.appendChild(tooltip.middle);
		
		//tip create
		tooltip.bottom.setAttribute("id", "tooltip-bottom");
		tooltip.tip.appendChild(tooltip.bottom);
		
		//tip create
		tooltip.arrow.setAttribute("id", "tooltip-arrow");
		tooltip.tip.appendChild(tooltip.arrow);

		for (var i = 0; i < aLength; i++) {
			if (allElements[i].getAttribute("title")) {
				allElements[i].setAttribute(tooltip_attr_name, allElements[i].getAttribute("title"));
				if (allElements[i].getAttribute(tooltip_attr_name)) {
					allElements[i].removeAttribute("title");
					tooltip.addListener(allElements[i], "mouseover", tooltip.show);
					tooltip.addListener(allElements[i], "mouseout", tooltip.hide);
				}
			}
		}
		
		//document.onmousemove = tooltip.move;
		tooltip.tip.style.display = "none";
		tooltip.visible = false;

		window.onscroll = tooltip.hide;
		window.onresize = tooltip.hide;
	},
	
	show: function(e) {
		d = window.event ? window.event.srcElement : e.currentTarget;
		currentElement = d;
		if (!d.getAttribute(tooltip_attr_name))
			return;
		if (tooltip.middle.firstChild)
			tooltip.middle.removeChild(tooltip.middle.firstChild);
		tooltip.middle.appendChild(document.createTextNode(d.getAttribute(tooltip_attr_name)));
		
		position = getBounds(d);

		curX = position.left - 290;
		curY = position.top + position.height - 13 - 8;
		tooltip.visible = true;
		tooltip.move();		
		tooltip.c = setTimeout("tooltip.tip.style.display = 'block';", 0);
	},
	
	hide: function(e) {
		tooltip.tip.style.display = "none";
		clearTimeout(tooltip.c);
		tooltip.visible = false;
		tooltip.draw(-200, -200);
	},
	
	addListener: function(o, e, a) {
		if (o.addEventListener)
			o.addEventListener(e, a, false);
		else if (o.attachEvent)
			o.attachEvent("on" + e, a);
		else
			return null;
	},
	
	draw: function(x, y) {
		tooltip.tip.style.left = x + "px";
		tooltip.tip.style.top = y + "px";
	}
}

alt = {
	tip: document.createElement("div"),
	top: document.createElement("div"),
	middle: document.createElement("div"),
	bottom: document.createElement("div"),
	arrow: document.createElement("div"),
	c: null,
	visible: false,
	
	move: function(e) {
		if (alt.visible) {
			alt.draw(curX, curY);
		}
	},
	
	create: function() {

		//tip create
		alt.tip.setAttribute("id", "tooltip-right");
		document.body.appendChild(alt.tip);
		
		//top create
		alt.top.setAttribute("id", "tooltip-right-top");
		alt.tip.appendChild(alt.top);
		
		//tip create
		alt.middle.setAttribute("id", "tooltip-right-middle");
		alt.tip.appendChild(alt.middle);
		
		//tip create
		alt.bottom.setAttribute("id", "tooltip-right-bottom");
		alt.tip.appendChild(alt.bottom);
		
		//tip create
		alt.arrow.setAttribute("id", "tooltip-right-arrow");
		alt.tip.appendChild(alt.arrow);

		for (var i = 0; i < aLength; i++) {
			if (allElements[i].getAttribute("title")) {
				allElements[i].setAttribute(tooltip_attr_name_right, allElements[i].getAttribute("title"));
				if (allElements[i].getAttribute(tooltip_attr_name_right)) {
					allElements[i].removeAttribute("title");
					alt.addListener(allElements[i], "mouseover", alt.show);
					alt.addListener(allElements[i], "mouseout", alt.hide);
				}
			}
		}
		
		//document.onmousemove = alt.move;
		alt.tip.style.display = "none";
		alt.visible = false;

		window.onscroll = alt.hide;
		window.onresize = alt.hide;
	},
	
	show: function(e) {
		d = window.event ? window.event.srcElement : e.currentTarget;
		currentElement = d;
		if (!d.getAttribute(tooltip_attr_name_right))
			return;
		if (alt.middle.firstChild)
			alt.middle.removeChild(alt.middle.firstChild);
		alt.middle.appendChild(document.createTextNode(d.getAttribute(tooltip_attr_name_right)));
		
		position = getBounds(d);

		curX = position.left + position.width + 10;
		curY = position.top + position.height - 13 - 8;
		alt.visible = true;
		alt.move();		
		alt.c = setTimeout("alt.tip.style.display = 'block';", 0);
	},
	
	hide: function(e) {
		alt.tip.style.display = "none";
		clearTimeout(alt.c);
		alt.visible = false;
		alt.draw(-200, -200);
	},
	
	addListener: function(o, e, a) {
		if (o.addEventListener)
			o.addEventListener(e, a, false);
		else if (o.attachEvent)
			o.attachEvent("on" + e, a);
		else
			return null;
	},
	
	draw: function(x, y) {
		alt.tip.style.left = x + "px";
		alt.tip.style.top = y + "px";
	}
}

function getBounds(element) {
  var left = element.offsetLeft;
  var top = element.offsetTop;
  for (var parent = element.offsetParent; parent; parent = parent.offsetParent) {
    left += parent.offsetLeft;
    top += parent.offsetTop;
  }
  return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}


function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function setCookie(name, value) {
	cswitch = getCookie("cswitch");
	if (!cswitch) {
		var today = new Date();d = new Date(today.getTime() + 7790000000); 
		var newCookie1 = name + "=" + escape(value) + ";expires=" + d.toGMTString() + ";path=/ ;";
		document.cookie = newCookie1;
		//var newCookie2 = name + "=" + escape(value) + ";expires=" + d.toGMTString() + ";path=/ ;domain=labirint-shop.ru;";
		//document.cookie = newCookie2;
		//var newCookie3 = name + "=" + escape(value) + ";expires=" + d.toGMTString() + ";path=/ ;domain=192.168.2.252;";
		//document.cookie = newCookie3;
	}
}

//function shoping(id_tov, check) { 
//	if (check=="") {check=0;}
//	
//	if (check==1) {
//		var urlnavi="/buy.php?check=1&s=1&id=" + id_tov
//		window.location=urlnavi;
//	}
//	else if (check>1) {
//		var urlnavi="/buy.php?s=1&imho="+check+"&id=" + id_tov
//		window.open(urlnavi,'',"toolbar=0,location=0,menubar=0,scrollbars=0,resizable=0,width=10,height=10,top=20000000,left=20000000");
//	}
//	else {
//		var urlnavi="/buy.php?s=1&id=" + id_tov
//		window.open(urlnavi,'',"toolbar=0,location=0,menubar=0,scrollbars=0,resizable=0,width=10,height=10,top=20000000,left=20000000");
//	}
//	
//	var bcount=parseInt(document.getElementById('basket-in-cart').innerHTML)
//	document.getElementById('basket-in-cart').innerHTML=bcount+1;
//	
//	var buy="buy"+id_tov;
//	for (i=0;i<document.getElementsByTagName('span').length; i++) {
//		qq=document.getElementsByTagName('span')[i];
//		if (qq.id==buy) {qq.innerHTML='<a href=\"/basket/\">В корзине</a>';}
//	}
//}
//
//function shoping2(id_tov) { 
//	var urlnavi="/buy.php?s=1&ido=" + id_tov
//	window.open(urlnavi,'',"toolbar=0,location=0,menubar=0,scrollbars=0,resizable=0,width=10,height=10,top=2000000,left=2000000");
//	
//	var bcount=parseInt(document.getElementById('basket-in-cart').innerHTML)
//	document.getElementById('basket-in-cart').innerHTML=bcount+1;
//	
//	var buy="buyof"+id_tov;
//	document.getElementById(buy).innerHTML="<a href=\"/basket/\">В корзине</a>";
//}

function delshoping(id_tov, check) { 
	if (check=="") {check=0;}
	
	if (check==1) {
		var urlnavi="/buy.php?check=1&id=" + id_tov
		window.location=urlnavi;
	}
	else if (check==2) {
		var urlnavi="/buy.php?check=1&step=1&id=" + id_tov
		window.location=urlnavi;
	}
	else {
		var urlnavi="/buy.php?id=" + id_tov
		window.open(urlnavi,'',"toolbar=0,location=0,menubar=0,scrollbars=0,resizable=0,width=10,height=10,top=20000,left=20000");	
	}
}

function delshoping2(id_tov, check) { 
	if (check=="") {check=0;}
	
	if (check==1) {
		var urlnavi="/buy.php?check=1&ido=" + id_tov
		window.location=urlnavi;
	}
	else {
		var urlnavi="/buy.php?ido=" + id_tov
		window.open(urlnavi,'',"toolbar=0,location=0,menubar=0,scrollbars=0,resizable=0,width=10,height=10,top=20000,left=20000");
	}
}

function screenshot(idbook, scrn) { 
	var urlnavi="/screenshot/" + idbook + "/" + scrn + "/";
	window.open(urlnavi, "Screenshot","width=872,height=612,scrollbars=yes,resizable=yes"); 
}

function fragment(idbook) { 
	var urlnavi="/fragment/" + idbook + "/";
	this.window.open(urlnavi, "Fragment","width=872,height=612,scrollbars=yes,resizable=yes"); 
}

function alreadyInBasket(idbook, retail) {
	var buy="buy"+idbook;
	for (i=0;i<document.getElementsByTagName('span').length; i++) {
		var qq=document.getElementsByTagName('span')[i];
			
		if (qq.id==buy) {qq.innerHTML=((retail ==1 )  ? '<a href=\"/retail/basket/\">В корзине</a>' : '<a href=\"/basket/\">В корзине</a>');}
	}
}



var pleft = 0;
var ptop = 0;
var incr = 0;
var id_books = 0;
var bwidth = 0;
var show = 1;
var src = 0;


function showpicture(id,src, bw, bh, pos, mwidth, mheight) {
	if (getCookie("dontshowbig") != 1) {
		id_books = id;
		bwidth = bw;
		picturediv = document.getElementById("bigpic");
		var book_href = document.getElementById("href" + id_books).href;
		pleft = pos.x;
		ptop = pos.y;
		var oldsrc = document.getElementById("111").src;
		if (navigator.userAgent.indexOf("MSIE 7.0")!=-1) { pleft -= 11; }
		picturediv.style.left = pleft + 'px';
		picturediv.style.top = ptop + 'px';
		//alert (oldsrc);
		picturediv.innerHTML = "<div onmouseout='hidepicture()' onmousemove='show=1'><a href='" + book_href + "'><img  border=0 id='2' src='"+oldsrc+"'</a></div><div id='loading-pic' onmouseout='hidepicture()' onmousemove='show=1'><img src='/script/ajax-loader.gif' border=0></div><div id='noshow' onmouseout='hidepicture()' onmousemove='show=1'></div>";
		bpic = new Image();
		bpic.onload = function () {
				document.getElementById("loading-pic").innerHTML = "";
				pic.src = bpic.src;
			}
		bpic.src = src;
		pic = document.getElementById(2);
		pic.width = mwidth;
		pic.border = 0;
		picturediv.style.display = "block";
		increase();
	}
}

function hidepicture() {
	show = 0;
	setTimeout('starthide()', 20);
}

function starthide() {
 
	if (show == 0) {
	    var mw = document.getElementById("111").width;
		//alert (mw);
		document.getElementById("noshow").style.display = "none";
		pic.width = pic.width - 10;
		pleft = pleft + 5;
		ptop = ptop + 5;
		picturediv.style.left = pleft + 'px';
		picturediv.style.top = ptop + 'px';
		if (pic.width > mw) setTimeout('starthide()', 0); else picturediv.style.display = "none";
	}
}

function increase() {
	if ((pic.width + incr)>bwidth) incr = (bwidth-pic.width); else incr = 10;
	pic.width = pic.width + incr;
	
	pleft = pleft - Math.round(incr/2);
	ptop = ptop - Math.round(incr/2);
	picturediv.style.left = pleft + 'px';
	picturediv.style.top = ptop + 'px';
	
	if (pic.width < bwidth) {
		setTimeout('increase()', 0); 
	}
	else {
		if (bpic.complete) pic.src = bpic.src;
		document.getElementById("noshow").style.display = "block";
	}
	
	if (pic.width > 100) document.getElementById("loading-pic").style.display = "block";
}

function dontshowbig(dontshow) {
	UserSes = getCookie("UserSes");
	if (dontshow) {
		setCookie("dontshowbig", "1"); 
		big_pics_stat(UserSes, "dontshow");
	}
	else {
		setCookie("dontshowbig", "0");
		big_pics_stat(UserSes, "show");
	}
}

function absPosition(obj) {
	var x = y = 0;
	while(obj) {
		x += obj.offsetLeft;
		y += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return {x:x, y:y};
}

var your_mark = 0;






var FadeInterval = 300;
var StartFadeAt = 6;



var FadeSteps = [];
FadeSteps[FadeSteps.length] = "#ececec";
FadeSteps[FadeSteps.length] = "#eaeaea";
FadeSteps[FadeSteps.length] = "#e7e7e7";
FadeSteps[FadeSteps.length] = "#e5e5e5";
FadeSteps[FadeSteps.length] = "#e2e2e2";
FadeSteps[FadeSteps.length] = "#dfdfdf";
FadeSteps[FadeSteps.length] = "#dcdcdc";
FadeSteps[FadeSteps.length] = "#dadada";
FadeSteps[FadeSteps.length] = "#d7d7d7";
FadeSteps[FadeSteps.length] = "#d5d5d5";
                                   
FadeSteps[FadeSteps.length] = "#d2d2d2";
FadeSteps[FadeSteps.length] = "#d5d5d5";
FadeSteps[FadeSteps.length] = "#d7d7d7";
FadeSteps[FadeSteps.length] = "#dadada";
FadeSteps[FadeSteps.length] = "#dcdcdc";
FadeSteps[FadeSteps.length] = "#dfdfdf";
FadeSteps[FadeSteps.length] = "#e2e2e2";
FadeSteps[FadeSteps.length] = "#e5e5e5";
FadeSteps[FadeSteps.length] = "#e7e7e7";
FadeSteps[FadeSteps.length] = "#eaeaea";
FadeSteps[FadeSteps.length] = "#ececec";
FadeSteps[FadeSteps.length] = "#efefef";
FadeSteps[FadeSteps.length] = "#f2f2f2";
FadeSteps[FadeSteps.length] = "#f5f5f5";
FadeSteps[FadeSteps.length] = "#f7f7f7";
FadeSteps[FadeSteps.length] = "#fafafa";
FadeSteps[FadeSteps.length] = "#fcfcfc";
FadeSteps[FadeSteps.length] = "#ffffff";

// background:#EFEFEF;

function DoFade(colorId, targetId) {
    if (colorId >= 0) {
        document.getElementById(targetId).style.backgroundColor = FadeSteps[colorId];
        if (colorId == 0) {
            document.getElementById(targetId).style.backgroundColor = "#efefef";
        }
        colorId--;
        setTimeout("DoFade("+colorId+",'"+targetId+"')", FadeInterval);
    }
}




function getElementPosition(elem){
	var offsetTrail = elem;
	var offsetTop   = 0;
	while (offsetTrail) {
		offsetTop  += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
	}
	return offsetTop;
} 

function authorizeClose(){
	document.getElementById('authorize').style.display = 'none';
}
	
function onScroll_center(){
	//alert(document.getElementsByTagName('body')[0].scrollTop); 
	var height  = clientHeight();
	var element = document.compatMode=='CSS1Compat' && !window.opera ? document.documentElement : document.body;
	document.getElementById('authorize').style.top = element.scrollTop + 250 + "px";
}

function clientHeight(){
	return document.compatMode=='CSS1Compat' && !window.opera ? document.documentElement.clientHeight : document.body.clientHeight;
}


function show_tag_add(label) {
	var cont = document.getElementById("tags-add-cont");
	if (cont.style.display == "block") { 
		cont.style.display = "none";
		label.className = "closed";
	}
	else {
		cont.style.display = "block";
		label.className = "opened";
	}
}

function show_win(id) {
	var cont = document.getElementById(id);
	if (cont.style.display == "block") { 
		cont.style.display = "none";
	}
	else {
		cont.style.display = "block";
	}
}

document.onclick = function (e) {
	var isIE = (String(typeof(document.all)) != "undefined");
	var target = isIE ? event.srcElement : e.target;
	var book_tags = document.getElementById('tags_book_tags');
	var your_tags = document.getElementById('tags_your_tags');
	
	if (book_tags && book_tags.style.display=="block" && target.parentNode.id != "tags_book_tags_cont") {
		book_tags.style.display = "none";
	}
	if (your_tags && your_tags.style.display=="block" && target.parentNode.id != "tags_your_tags_cont") {
		your_tags.style.display = "none";
	}
}

function copy_tag(tag) {
	var form = document.forms.add_tag_form;
	form.tag.value = tag;
	form.tag.focus();
}

function showallprops(obj) {		// Для тестов
	for (var prop in obj) {
	  displayLine =obj.name+"."+prop+"="+obj[prop];
	  document.write(displayLine+"<BR>");
	}
}
function confirmDel(){
	if(confirm('Удалить?'))
		return true;	
	else 
		return false;	
}
