/*
originally written by paul sowden <paul@idontsmoke.co.uk> | http://idontsmoke.co.uk
modified and localized by alexander shurkayev <alshur@narod.ru> | http://htmlcoder.visions.ru
*/

window.onerror = null;
var tooltip_attr_name = "tooltip";
var tooltip_blank_text = "(откроется в новом окне)"; // текст для ссылок с target="_blank"
var tooltip_newline_entity = "  "; // укажите пустую строку (""), если не хотите использовать в tooltip'ах многострочность; ежели хотите, то укажите тот символ или символы, которые будут заменяться на перевод строки
var tooltip_max_width = "370" // максимальная ширина tooltip'а в пикселах; обнулите это значение, если ширина должна быть нелимитирована

window.onload = function(e){
	if (document.createElement) tooltip.d();
	
	init_sender();
	init_hoverable_spans();
	init_form();
}

tooltip = {

	t: document.createElement("DIV"),
	c: null,
	g: false,

	m: function(e){
		if (tooltip.g){
			oCanvas = document.getElementsByTagName(
			(document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY"
			)[0];
			x = window.event ? event.clientX + oCanvas.scrollLeft : e.pageX;
			y = window.event ? event.clientY + oCanvas.scrollTop : e.pageY;
			tooltip.a(x, y);
		}
	},

	d: function(){
		tooltip.t.setAttribute("id", "tooltip");
		//tooltip.t.style.filter = "alpha(opacity=85)"; // buggy in ie5.0
		document.body.appendChild(tooltip.t);
		a = document.all ? document.all : document.getElementsByTagName("*");
		aLength = a.length;
		for (var i = 0; i < aLength; i++){
			tooltip_title = a[i].getAttribute("title");
			tooltip_alt = a[i].getAttribute("alt");
			tooltip_blank = a[i].getAttribute("target") && a[i].getAttribute("target") == "_blank" && tooltip_blank_text;
			if (tooltip_title || tooltip_blank){
				a[i].setAttribute(tooltip_attr_name, tooltip_blank ? (tooltip_title ? tooltip_title + " " + tooltip_blank_text : tooltip_blank_text) : tooltip_title);
				if (a[i].getAttribute(tooltip_attr_name)){
					a[i].removeAttribute("title");
					if (tooltip_alt && a[i].complete) a[i].removeAttribute("alt");
					tooltip.l(a[i], "mouseover", tooltip.s);
					tooltip.l(a[i], "mouseout", tooltip.h);
				}
			}else if (tooltip_alt && a[i].complete){
				a[i].setAttribute(tooltip_attr_name, tooltip_alt);
				if (a[i].getAttribute(tooltip_attr_name)){
					a[i].removeAttribute("alt");
					tooltip.l(a[i], "mouseover", tooltip.s);
					tooltip.l(a[i], "mouseout", tooltip.h);
				}
			}
			if (!a[i].getAttribute(tooltip_attr_name) && tooltip_blank){
				//
			}
		}
		document.onmousemove = tooltip.m;
		window.onscroll = tooltip.h;
	},

	s: function(e){
		d = window.event ? window.event.srcElement : e.currentTarget;
if (!d.getAttribute(tooltip_attr_name)) return;
if (tooltip.t.firstChild) tooltip.t.removeChild(tooltip.t.firstChild);
tooltip.t.appendChild(document.createTextNode(d.getAttribute(tooltip_attr_name)));

   r = d.getAttribute(tooltip_attr_name);
 //  re = /, /ig;
 // tooltip.t.innerHTML = r.replace(re, "<br />");
	
	tooltip.c = setTimeout("tooltip.t.style.visibility = 'visible';", 1);
	tooltip.g = true;

	},

	h: function(e){
		tooltip.t.style.visibility = "hidden";
		if (!tooltip_newline_entity && tooltip.t.firstChild) tooltip.t.removeChild(tooltip.t.firstChild);
		clearTimeout(tooltip.c);
		tooltip.g = false;
		tooltip.a(-99, -99);
	},

	l: function(o, e, a){
		if (o.addEventListener) o.addEventListener(e, a, false); // was true--Opera7b workaround!
		else if (o.attachEvent) o.attachEvent("on" + e, a);
			else return null;
	},

	a: function(x, y){
		oCanvas = document.getElementsByTagName(
		(document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY"
		)[0];

		w_width = window.innerWidth ? window.innerWidth + window.pageXOffset : oCanvas.clientWidth + oCanvas.scrollLeft;
		w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop;

		tooltip.t.style.width = "auto";

		t_width = window.event ? tooltip.t.clientWidth : tooltip.t.offsetWidth;
		t_height = window.event ? tooltip.t.clientHeight : tooltip.t.offsetHeight;

		if (t_width > tooltip_max_width){
			tooltip.t.style.width = tooltip_max_width + "px";
			t_width = window.event ? tooltip.t.clientWidth : tooltip.t.offsetWidth;
		}

		t_extra_width = 7; // CSS padding + borderWidth;
		t_extra_height = 5; // CSS padding + borderWidth;

		tooltip.t.style.left = x + 8 + "px";
		tooltip.t.style.top = y + 8 + "px";

		while (x + t_width + t_extra_width > w_width){
			--x;
			tooltip.t.style.left = x + "px";
			t_width = window.event ? tooltip.t.clientWidth : tooltip.t.offsetWidth;
		}

		while (y + t_height + t_extra_height > w_height){
			--y;
			tooltip.t.style.top = y + "px";
			t_height = window.event ? tooltip.t.clientHeight : tooltip.t.offsetHeight;
		}
	}
}

function init_hoverable_spans()
{
	var hoverable_spans = document.getElementsByTagName("SPAN");
	if(hoverable_spans && hoverable_spans.length)
	{
		for (var span_idx in hoverable_spans)
		{
			if(hoverable_spans[span_idx] && hoverable_spans[span_idx].className == 'ahref')
			{
				register_hoverable_span(hoverable_spans[span_idx])
			}
		}
	}
}

function register_hoverable_span(e)
{
	attach_event(e, "mouseover", function()
		{
			hoverable_span_over(e);
		});

	attach_event(e, "mouseout", function()
		{
			hoverable_span_out(e);
		});

}

function gel(e)
{
	return document.getElementById(e)
}

function show_hide(el)
{
	var func;
	el.style.display=="block" ? func="none" : func="block";
	el.style.display=func;

	return func=='block';
}

function show_hide_form()
{
	return show_hide(gel("showcom"));
}

function submitter()
{
	if (gel("cnick").value == '' || gel("ccomment").value == '')
	{
		alert('Вы заполнили не все поля!');
		return false;
	}
	else if (gel("cemail").value == '')
	{
		alert('Вы заполнили не все поля. Ваш email отображаться не будет!');
		return false;
	}
	
	return true;
}

function attach_event(o, e, a)
{
	if (o.addEventListener) o.addEventListener(e, a, false); // was true--Opera7b workaround!
	else if (o.attachEvent) o.attachEvent("on" + e, a);
	else o["on"+e]=a;
}

function hoverable_span_over(elt)
{
	elt.className = 'ahref_over';
}
function hoverable_span_out(elt)
{
	elt.className = 'ahref';
}

function init_sender()
{
	var send_friend_button_elt = document.getElementById("send_friend_button");
	if(send_friend_button_elt)
	{
		send_friend_button_elt.onclick = function ()
			{
				var to = prompt("Введите, пожалуйста, email-адрес вашего друга, которому вы хотите послать стихотворение", "");
				if (to)
				{
					var toname = prompt("Как зовут вашего друга?", "");
					if (toname)
					{
						var name = prompt("А как зовут Вас?", sender_to);
						
						if (name)
						{
							var num = document.getElementById("num").value;
							var ifr = document.getElementById("sendfriend")
							ifr.src = sender_root + "?num="+num+"&to="+to+"&toname="+toname+"&name="+name
						}
					}
					
				}
			}
	}
}

function init_form()
{
	var opener_form_link = gel("opener_form_link");
	if(opener_form_link)
	{
		opener_form_link.onclick = form_opener;
		//attach_event(opener_form_link, "click", form_opener);
	}
}

function form_opener()
{
	var el = gel("opener_form_link");
	var isVisibile = show_hide_form();

	if (isVisibile)
	{
		el.href=el.href.replace("?comments=1", "");
		//el.title="Скрыть комментарии"
	}
	else 
	{
		el.href += "?comments=1";
		//el.title="Отобразить комментарии"
	}

	return false;
}
