/* Simple AJAX Code-Kit (SACK) v1.6.1 */
/* ©2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence,
   see documentation or authors website for more details */

function sack(file) {
	this.xmlhttp = null;

	this.resetData = function() {
		this.method = "POST";
  		this.queryStringSeparator = "?";
		this.argumentSeparator = "&";
		this.URLString = "";
		this.encodeURIString = true;
  		this.execute = false;
  		this.element = null;
		this.elementObj = null;
		this.requestFile = file;
		this.vars = new Object();
		this.responseStatus = new Array(2);
  	};

	this.resetFunctions = function() {
  		this.onLoading = function() { };
  		this.onLoaded = function() { };
  		this.onInteractive = function() { };
  		this.onCompletion = function() { };
  		this.onError = function() { };
		this.onFail = function() { };
	};

	this.reset = function() {
		this.resetFunctions();
		this.resetData();
	};

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				this.xmlhttp = null;
			}
		}

		if (! this.xmlhttp) {
			if (typeof XMLHttpRequest != "undefined") {
				this.xmlhttp = new XMLHttpRequest();
			} else {
				this.failed = true;
			}
		}
	};

	this.setVar = function(name, value){
		this.vars[name] = Array(value, false);
	};

	this.encVar = function(name, value, returnvars) {
		if (true == returnvars) {
			return Array(encodeURIComponent(name), encodeURIComponent(value));
		} else {
			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
		}
	}

	this.processURLString = function(string, encode) {
		encoded = encodeURIComponent(this.argumentSeparator);
		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
		varArray = string.split(regexp);
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split("=");
			if (true == encode){
				this.encVar(urlVars[0], urlVars[1]);
			} else {
				this.setVar(urlVars[0], urlVars[1]);
			}
		}
	}

	this.createURLString = function(urlstring) {
		if (this.encodeURIString && this.URLString.length) {
			this.processURLString(this.URLString, true);
		}

		if (urlstring) {
			if (this.URLString.length) {
				this.URLString += this.argumentSeparator + urlstring;
			} else {
				this.URLString = urlstring;
			}
		}

		// prevents caching of URLString
		this.setVar("rndval", new Date().getTime());

		urlstringtemp = new Array();
		for (key in this.vars) {
			if (false == this.vars[key][1] && true == this.encodeURIString) {
				encoded = this.encVar(key, this.vars[key][0], true);
				delete this.vars[key];
				this.vars[encoded[0]] = Array(encoded[1], true);
				key = encoded[0];
			}

			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
		}
		if (urlstring){
			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
		} else {
			this.URLString += urlstringtemp.join(this.argumentSeparator);
		}
	}

	this.runResponse = function() {
		eval(this.response);
	}

	this.runAJAX = function(urlstring) {
		if (this.failed) {
			this.onFail();
		} else {
			this.createURLString(urlstring);
			if (this.element) {
				this.elementObj = document.getElementById(this.element);
			}
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
					try {
						this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
					} catch (e) { }
				}

				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState) {
						case 1:
							self.onLoading();
							break;
						case 2:
							self.onLoaded();
							break;
						case 3:
							self.onInteractive();
							break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;

							if (self.execute) {
								self.runResponse();
							}

							if (self.elementObj) {
								elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input"
								|| elemNodeName == "select"
								|| elemNodeName == "option"
								|| elemNodeName == "textarea") {
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							if (self.responseStatus[0] == "200") {
								self.onCompletion();
							} else {
								self.onError();
							}

							self.URLString = "";
							break;
					}
				};

				this.xmlhttp.send(this.URLString);
			}
		}
	};

	this.reset();
	this.createAJAX();
}

var your_mark = 0;

function fillstar(num) {
	var status = Array('', 'Хуже не бывает', 'Очень плохо', 'Плохо', 'Ниже среднего', 'Средне', 'Выше среднего', 'Нормально', 'Хорошо', 'Отлично', 'Лучше не бывает!');
	
	document.getElementById("count-marks-label").style.display = "none";
	document.getElementById("status-label").innerHTML = status[num];
	document.getElementById("status-label").style.display = "block";
	
	for (i=1; i<=num; i++) {
		document.getElementById("star" + i).src = "/images/design/zvezda.gif";
	}
	for (i=num+1; i<=10; i++) {
		document.getElementById("star" + i).src = "/images/design/zvezda2.gif";
	}
}


function sendvote(id_books, votemark, logined, user) { 
	//votediv = document.getElementById("product-voting-body");
	//votediv.innerHTML = "<img src='/images/design/upload.gif'> Загрузка...";

	JsHttpRequest.query(
		"/vote.ajax.php",
		{ 	"book":id_books,
			"votemark":votemark,
			"logined":logined,
			"user":user },
		function (result, errors) {
			if (result.err=='no')
			{
				document.getElementById("rate").innerHTML = result['rate'];
				document.getElementById("countmarks").innerHTML = "Всего: " + result.countmarks;
				document.getElementById("count-marks-label").innerHTML = "Ваша оценка: " + result.your_mark;
				your_mark = result.your_mark * 1;
				outstar();
			}
		},
		true
	);
}

function outstar() {
	if (your_mark>0) { fillstar(your_mark); } 
	document.getElementById("status-label").style.display = "none";
	document.getElementById("count-marks-label").style.display = "block";
}

var dhshowautohelp = true;
function autohelp_timeout(e, dhp){
if(dhshowautohelp)
{
	var text_k = e.keyCode;
	if(text_k != 16 && text_k != 17 && text_k != 18 && text_k != 13 && text_k != 20 && text_k != 192 && text_k != 37 && text_k != 38 && text_k != 39 && text_k != 40 && text_k != 116){
		autohelp_change(dhp);
	}
	if(text_k == 38 || text_k==40)
	{
	if(dhp==3) {var auhr = 'autohelp_rows_big'; var txt  = document.forms.searchformadvanced.q;}
    if(dhp==2) {var auhr = 'autohelp_rows_width'; var txt  = document.getElementById('txtwords');}
    if(dhp==1) {var auhr = 'autohelp_rows'; var txt  = document.forms.searchform.q;}
    if(document.getElementById(auhr).style.display == 'block')
	{
		   var test = document.getElementById('dhlistul'+dhp);
		   var dhsch = 11;
		    for (var i in test.childNodes) {if(test.childNodes[i].value==2) dhsch = i;}
		    var dhi = test.childNodes.length-2;
		if(text_k==40)
		{
			if(dhsch == 11)
			{
			test.childNodes[0].style.backgroundColor = "#CCFFCC";
			test.childNodes[0].value=2;
			txt.value = document.getElementById('dha'+0+dhp).innerHTML;
			}
			else
			{
		     if(dhsch==dhi)
		     {
		     	test.childNodes[dhsch].value=1;	
			test.childNodes[dhsch].style.backgroundColor = "#ffffff";
			txt.value = document.getElementById('dha'+0+dhp).innerHTML;
		     test.childNodes[0].style.backgroundColor = "#CCFFCC";
			test.childNodes[0].value=2;	
		     }
			else
			{
			test.childNodes[dhsch].value=1;	
			test.childNodes[dhsch].style.backgroundColor = "#ffffff";
			dhsch++;
			txt.value = document.getElementById('dha'+dhsch+dhp).innerHTML;
			test.childNodes[dhsch].style.backgroundColor = "#CCFFCC";
			test.childNodes[dhsch].value=2;
			}
			}
		}
		if(text_k==38)
		{
            if(dhsch == 11)
			{
			test.childNodes[dhi].style.backgroundColor = "#CCFFCC";
			test.childNodes[dhi].value=2;
			txt.value = document.getElementById('dha'+dhi+dhp).innerHTML;
			}
			else
			{
		     if(dhsch==0)
		     {
		     	test.childNodes[dhsch].value=1;	
			test.childNodes[dhsch].style.backgroundColor = "#ffffff";
			txt.value = document.getElementById('dha'+dhi+dhp).innerHTML;
		    test.childNodes[dhi].style.backgroundColor = "#CCFFCC";
			test.childNodes[dhi].value=2;	
		     }
			else
			{
			test.childNodes[dhsch].value=1;	
			test.childNodes[dhsch].style.backgroundColor = "#ffffff";
			dhsch--;
		    txt.value = document.getElementById('dha'+dhsch+dhp).innerHTML;
			test.childNodes[dhsch].style.backgroundColor = "#CCFFCC";
			test.childNodes[dhsch].value=2;
			}
			}
		}
	}
	}
}
}

function autohelp_change(dhp){
	if(dhshowautohelp)
{
    if(dhp==3)
    {
    var txt  = document.forms.searchformadvanced.q.value;
    var auhr = 'autohelp_rows_big';
    }
    if(dhp==2)
    {
    var txt  = document.getElementById('txtwords').value;
    var auhr = 'autohelp_rows_width';
    }
    if(dhp==1)
    {   
	var txt  = document.forms.searchform.q.value;
	var auhr = 'autohelp_rows';
    }
	if(txt.length > 1 && txt!=' '){
		var list = document.getElementById(auhr);
		JsHttpRequest.query( "/autohelp.ajax.php", 
		     { "txt"  : txt, "dhp" : dhp},
			function (result, errors) 
			{
				list = document.getElementById(auhr);
				if (result.err=='no')
				{
					if(result.html)
					{
					list.innerHTML = '';
					list.innerHTML = result.html;
					list.style.display = 'block';
					}
					else list.style.display = 'none';
					
				}
				else
				{
					list.innerHTML = result.log;
				}
			},
			true
		);
	}
	else document.getElementById(auhr).style.display = 'none';
}
}
function dhdisplaynone(dhp)
{
	if(dhshowautohelp)
{
	if(dhp==3)
    {
    var auhr = 'autohelp_rows_big';
    }
    if(dhp==2)
    {
    var auhr = 'autohelp_rows_width';
    }
    if(dhp==1)
    {   
	var auhr = 'autohelp_rows';
    }
	document.getElementById(auhr).style.display = 'none';
}
}
function dhautohelpclose()
{
	dhshowautohelp = false;
    if(document.getElementById('autohelp_rows_big')) document.getElementById('autohelp_rows_big').style.display = 'none';
    if(document.getElementById('autohelp_rows_width')) document.getElementById('autohelp_rows_width').style.display = 'none';
    if(document.getElementById('autohelp_rows')) document.getElementById('autohelp_rows').style.display = 'none';
}


function setStylesheet( newColor ) {
    var objCurStylesheet = document.getElementById('stylesheet');
    var strCurStyleName = objCurStylesheet.href.substring( objCurStylesheet.href.lastIndexOf('/')+1, objCurStylesheet.href.lastIndexOf('.') );

    if (strCurStyleName == newColor) {
        return;
    }

    objCurStylesheet.href = '/css/'+ newColor +'.css';

    document.getElementById(newColor).className = "ClrThisOut";
    document.getElementById(newColor+"_box").className = "ClrThisIn";
    document.getElementById(strCurStyleName).className = 'ClrOut';
    document.getElementById(strCurStyleName+'_box').className = 'ClrIn';

    var aaa = 'defaultStyle='+ newColor;



    document.cookie = aaa;
}


function linksap(){
	$("#books")
	.find("tr").attr("onmouseover", "this.style.background='#FFE8C4'")
	.attr("onmouseout", "this.style.background='#FFFFFF'")
	.click(function(){
        $(this).toggleClass("booksselect");
    });
	
}
function bookadd(id,uid){
	var list = document.getElementById('bookadd');
	JsHttpRequest.query( "/addbook.ajax.php", 
		     { "id"  : id, "uid" : uid},
			function (result, errors) 
			{
				if (result.err=='no')
				{
					if(result.html)
					{
					list.innerHTML = '';
					list.innerHTML = result.html;
					list.style.display = 'block';
					}
					else list.style.display = 'none';
					
				}
			},
			true
	);
}
function aadd(id,uid){
	var list = document.getElementById('aadd');
	JsHttpRequest.query( "/addauthor.ajax.php", 
		     { "id"  : id, "uid" : uid},
			function (result, errors) 
			{
				if (result.err=='no')
				{
					if(result.html)
					{
					list.innerHTML = '';
					list.innerHTML = result.html;
					list.style.display = 'block';
					}
					else list.style.display = 'none';
					
				}
			},
			true
	);
}

function deleteb(i){
	text='Удалить?'
	url='/?event=bookpl&delete='
	url+=i;
	if(confirm(text)){window.location=url;}
}
function deletea(i){
	text='Удалить?'
	url='/?event=subscr&delete='
	url+=i;
	if(confirm(text)){window.location=url;}
}
function comment_form_show(A){
	//login_small_hide();
	$("#comment_send_banned").show();
	$("#comment_send_error").hide();
	$("#comment_sent").hide();
	$("#comment_empty").hide();
	$("#comment_sending").hide();
	$("#comment_submit").attr("href",$(A).attr("href"));
	var B=$(A).parent();
	//if(B[0].tagName=="B"){
		//B=$(A).parent().parent()
	//}
	if($("#comment_form").css("display")=="none"){
		top_url=$(A).attr("href");
		comment_form_anchor=B;
		if($.browser.msie){
			$("#comment_form").insertAfter(B).show();
			$("#comment_text").focus()
		}else{
			$("#comment_form").insertAfter(B).slideDown("fast",function(){$("#comment_text").focus()})
		}
	}else{
		if($(A).attr("href")!=top_url){
			top_url=$(A).attr("href");
			$("#comment_form").hide();
			comment_form_anchor=B;
			if($.browser.msie){
				$("#comment_form").insertAfter(B).show();
				$("#comment_text").focus()
			}else{
				$("#comment_form").insertAfter(B).slideDown("fast",function(){$("#comment_text").focus()})
			}
		}else{
			$("#comment_form").slideUp("fast")
		}
	}
	
}
$(document).ready(
	function(){
		$("#comment_submit").click(send_comment);
		init_comment_tooltips();
		
	}
);
function send_comment(){
	//login_small_hide();
	var B=$.trim($("#comment_text").val());
	if(!B){
		$("#comment_empty").show();
		$("#comment_text").focus();
		return false
	}
	$("#comment_empty").hide();
	comment_form_blocked=true;
	var A=$("#comment_submit").attr("href");
	//alert(A);
	$("#comment_form").hide();
	comment_form_anchor.hide();
	$("#comment_sending").insertAfter(comment_form_anchor).show();
	var E=$("#id_performer").val();
	var C=$("#special_mark").attr("checked")?1:0;var D;
	if(E||C){
		D={
			comment:B,id_performer:E,special_mark:C
		}
	}else{
		D={
			comment:B
		}
	}

	JsHttpRequest.query( "/coment.ajax.php", 
		     { "data"  : B, "url":A},
			function (result, errors) 
			{
				comment_add_handler(result)
			},
			true
	);
	
}
function comment_add_handler(result){
	//comment_form_anchor.show();
	var A;
	var F;
	
	if(result.err=="no"){
		
		comment_added(result.parent,result.level,result.number,result.text);
		//alert(result.text);
		$("#comment_sending").hide();
		var B=$("#comment"+result.parent);
		$("#comment_sent").find("a").attr("href","#comment"+result.number);
		$("#comment_sent").insertAfter(B.find(".reply_link")).show();
		$("#comment_text").val("");
		comment_form_blocked=false
	}
}
function comment_added(B,D,A,C){
	if(!D){
		D="0"
	}
	var G=$(C);
	if($("#comments_no").length==0){
		var F=false;
		if(B){
			var E=$("#comment"+B);
			
			$("#comment"+B).nextAll("div.comment").each(
			function(){
				var H=$(this).find(".comment_parent").text();
				var I=$(this).find(".comment_level").text();
				if(H==B){
					E=$(this)
				}else{
					if((I*1)<(D*1)){
						return false
					}else{
						E=$(this)
					}
				}
			});
			
			if(!F){
				F=true;
				G.insertAfter(E)
			}
		}else{
			var E;
			var F=false;
			$("div.comment").each(function()
			{
				var H=$(this).find(".comment_level").text();
				if((H*1)>=0){
					E=$(this)
				}
			});
			G.insertAfter(E)
		}
	}else{
		$("#comments_no").hide();
		G.insertAfter($("#comments_no"));
		$("#comments_no").remove()
	}
	
	init_comment_script($("#comment"+A))
}
function init_comment_script(B){
	var A=B.find(".comment_parent").text();
	add_tooltip_for_comment(B,A);i
	
}
function init_comment_tooltips(){
	$("a.parent_title").each(function(){
		var A=(/(\d+)/).exec($(this).attr("href"))[0];
		add_tooltip_for_comment($(this).parents(".comment"),A)
	})
}
function add_tooltip_for_comment(B,A){
	if(A){
		$("#comment_reply").find("div.body").html($("#comment"+A).find("p").html());
		set_tooltip(B.find(".parent_title").parent(),$("#comment_reply").html(),false)
	}
}
function set_tooltip(C,B,A){
	$(C).attr("rel",B);
	$(C).mousemove(tooltip_show);
	$(C).mouseout(tooltip_hide);
	if(A){tooltip_show(C)}
}
function clear_tooltip(A){
	$(A).unbind("mousemove");
	$(A).unbind("mouseout");
	$("#tooltip").hide()
}
var tooltip_for;
var tooltip_el;
var doc_el;
var tooltip_width;
var doc_width;
function tooltip_show(B){
	if(tooltip_for!=this){
		if(!$(this).attr("rel")){return }
		$("#tooltip").hide();
		$("#tooltip").html($(this).attr("rel"));
		tooltip_for=this;
		$("#tooltip").show();
		tooltip_el=$("#tooltip");
		doc_el=$(document);
		doc_width=doc_el.width();
		tooltip_width=tooltip_el.width()
	}
	var A=$.browser.msie?35:20;
	if(B.pageX+A+tooltip_width>doc_width-A){
		tooltip_el.css("left",doc_width-tooltip_width-A)
	}else{
		tooltip_el.css("left",B.pageX+A)
	}
	tooltip_el.css("top",B.pageY+22)
}
function tooltip_hide(){
	tooltip_for=false;
	$("#tooltip").hide()
}
function comments_thread(E){
	var G=($(E).attr("href").indexOf("c=")>-1);
	var D=G||$(E).attr("loaded");
	var H=$(E);
	var C=false;
	var B=$(E);
	if(G){
		$(E).attr("href",$(E).attr("href").replace("c=","o="));
		$(E).attr("loaded","1");
		$(E).text($(E).parent().find("span.show_text").text())
	}else{
		if(D){
			$(E).attr("href",$(E).attr("href").replace("o=","c="));
			$(E).text("аЁаКб?б?б?б? аВаЕб?аКб?")
		}else{
			C=true;
			var A=$("#comments_loading").clone().attr("id","").insertAfter(H).show();
			$(H).hide();
			$.ajax({
				method:"GET",url:H.attr("href"),success:function(K,M){
					if(M=="success"){
						H.show();
						var I=$("#trash").clone();
						I.html(K);
						var J=I;
						var L=H.parents("div.comment");
						J.find("div.comment").each(function(){
							L=$(this).insertAfter(L);
							if(scroll_comment){
								L.show()
							}else{
								L.slideDown("fast")
							}
							init_comment_script($(this))
						});
						H.attr("href",H.attr("href").replace("o=","c="));
						H.text("аЁаКб?б?б?б? аВаЕб?аКб?");
						H.parents("div.comment").nextAll("div.comment").each(function(){
							if($(this).find(".comment_level").text()*1>F){
								$(this).slideDown("fast")
							}else{return false}
						});
						I.remove();
						if(scroll_comment){
							setTimeout(function(){
								if($("#comment"+scroll_comment).length>0){
									$("#comment"+scroll_comment).scrollTo()
								}
							scroll_comment=false
							},500)
						}
					}
					A.remove()},error:function(){A.remove()}
			})
		}
	}
	if(!C){
		var F=$(E).parents("div.comment").find(".comment_level").text()*1;
		$(E).parents("div.comment").nextAll("div.comment").each(function(){
			if($(this).find(".comment_level").text()*1>F){
				if(G){
					$(this).slideUp("fast")
				}else{
					$(this).slideDown("fast")
				}
			}else{return false}
		});
		$(E).attr("shown",G?"1":"")
	}
	return false
}
$(document).ready();