function findChildElemById(node, id)
{
	var c = node.firstChild;
	while(c != null){
		if (c.nodeType == 1)
		{
			if (c.getAttribute('id') == id)
				return c;
		}
		c = c.nextSibling;
	}
	return null;
}

function feedbackAjax(elem, id, opt){
	elem.innerHTML = '<div id="feedback-'+id+'-loading">' + msgs['ld'] + '</div>';
	var xmlhttp;
	if (window.XMLHttpRequest)
	{
		// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject)
	{
		// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		elem.innerHTML = '<div>' + msgs['nj'] + '</div>';
	}
	xmlhttp.onreadystatechange=function()
	{
		if (xmlhttp.readyState==4)
		{
			if (document.getElementById('feedback-'+id+'-loading'))
				elem.innerHTML = '';
			// copy response to HTML elements
			var container = document.createElement('div');
			container.innerHTML = xmlhttp.responseText;
			var c = container.firstChild;
			var ch = new Array();
			while(c != null)
			{
				if (c.nodeType == 1)
					ch.push(c);
				c = c.nextSibling;
			}
			for(var i=0; i<ch.length; i++)
			{
				c = ch[i];
				var cid = c.getAttribute('id');
				var te = document.getElementById(cid);
				if (te == null)
				{
					te = document.createElement('div');
					te.setAttribute('id', cid);
					elem.appendChild(te);
				}
				te.parentNode.replaceChild(c, te);
			}
		}
	}
	var url = "/feedbacks_ajax.php?fbp="+id+opt;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function feedbackOpen(btn, id){
	var elem = document.getElementById("feedback-" + id);
	if (elem.style.display != '')
	{
		btn.value = msgs['fh'];
		elem.style.display = '';
		if (elem.childNodes.length == 0)
		{
			feedbackAjax(elem, id, '');
		}
	}else{
		btn.value = msgs['fs'];
		elem.style.display = 'none';
	}
}

function submitFeedback(action, id){
	if (confirm(msgs[action]))
	{
		var form = document.forms["feedback"];
		form.action = form.action + "#p" + id;
		form.fba.value = action;
		form.fbp.value = id;
		form.submit();
	}
	return false;
}

function sbo(z,id,url,len){
	var t='';
	var x=document;
	var y=window;

	if(x.selection){
		t=x.selection.createRange().text;
	}else if(y.getSelection){
		t=y.getSelection().toString();
	}else if(x.getSelection){
		t=x.getSelection();
	}
	if (t.length == 0){
		t+=x.getElementById('ctx'+id).innerHTML;
	}
	t=t.replace(/src=".\//g,'src="http://www.active.lviv.ua/');
	var n = 500;
	if (t.length>n)
	{
		var p1 = t.lastIndexOf("/>", n);
		var p2 = t.lastIndexOf("<", n);
		if (p1<p2) n = p2;
		t = t.substring(0,n) + '...';
	}
	
	f = document.forms['publish'];
	switch(z){
		case 1:
			f.innerHTML = '<input type="hidden" name="t"/><input type="hidden" name="u"/><input type="hidden" name="n"/>';
			f.t.value = t;
			f.u.value = location.href;
			f.n.value = x.title;
			f.action = 'http://www.blogger.com/blog_this.pyra';
			f.submit();
			break;
		case 2:
			f.innerHTML = '<input type="hidden" name="subject"/><input type="hidden" name="event"/>';
			f.event.value = '<a href="'+location.href+'">'+x.title+'</a> : '+t;
			f.subject.value = x.title;
			f.action = 'http://www.livejournal.com/update.bml';
			f.submit();
			break;
		case 3:
			f.innerHTML = '<input type="hidden" name="u"/><input type="hidden" name="t"/>';
			f.u.value = location.href;
			f.t.value = x.title;
			f.action = 'http://www.facebook.com/sharer.php';
			f.submit();
	}
	
	return void(0);
}

function findNodes(root, tag, cls, result){
	var n = root.firstChild;
	while(n != null){
		if (n.nodeType == 1)
		{
			var name = n.nodeName;
			if (name != null && name.toLowerCase() == tag)
			{
				if (cls != null)
				{
					var a = n.attributes['class'];
					if (a != null && a.value == cls)
					{
						result.push(n);
					}
				}else{
					result.push(n);
				}
			}else{
				findNodes(n, tag, cls, result);
			}
		}
		n = n.nextSibling;
	}
}

function findAttribute(root, tag, attr){
	var r = [];
	findNodes(root, tag, null, r);
	if (r.length>0)
	{
		return r[0].attributes[attr].value;
	}else{
		return null;
	}
}

function cutPoint(v){
	if (v != null)
	{
		if (v[0]=='.')
		{
			return v.substr(1);
		}
	}
	return v;
}

function showImageCodes(id,url){
	var c = document.getElementById('ctx'+id);
	if (c != null)
	{
		var attachmentNodes = [];
		findNodes(c, 'div', 'inline-attachment', attachmentNodes);
		for(var i=0;i<attachmentNodes.length;i++){
			var a = attachmentNodes[i];
			if (findAttribute(a,'input','type')!=null)
			{
				continue;
			}
			var img = cutPoint(findAttribute(a, 'img', 'src'));
			var link = cutPoint(findAttribute(a, 'a', 'href'));
			var code = '';

			if (img != null)
			{
				code+='small:<br/><input type="text" size="20" value="[url='+url+'][img]http://www.active.lviv.ua'+img+'[/img][/url]"/>';
			}

			if (img != null)
			{
				if(code.length>0){
					code+='<br/>';
				}
				code+='big:<br/><input type="text" size="20" value="[url='+url+'][img]http://www.active.lviv.ua'+link+'[/img][/url]"/>';
			}

			if (code.length>0)
			{
				var d = document.createElement("div");
				d.innerHTML = code;
				attachmentNodes[i].appendChild(d);
			}
		}
	}
	return void(0);
}

function sb(id,url){
	document.write('<ul class="profile-icons">');
	document.write('<li><a href="javascript:showImageCodes(' + id + ',\'' + url + '\');">img</a></li>');
	document.write('<li>' + msgs['share'] + '</li>');
	document.write('<li class="blogger-icon"><a href="javascript:sbo(1,'+id+',\'' + url + '\')" title="' + msgs['s_blg'] + '"><span>' + msgs['s_blg'] + '</span></a></li>');
	document.write('<li class="livejournal-icon"><a href="javascript:sbo(2,'+id+',\'' + url + '\')" title="' + msgs['s_lj'] + '"><span>' + msgs['s_lj'] + '</span></a></li>');
	document.write('<li class="facebook-icon"><a href="javascript:sbo(3,'+id+',\'' + url + '\')" title="' + msgs['s_fb'] + '"><span>' + msgs['s_fb'] + '</span></a></li>');
	document.write('</ul>');
}

