
// (с) Igor Guzei - Guzei.com

function CreateXmlHttpRequestObject()
{
								var x = 0;
 try                              { x = new XMLHttpRequest()                   }
 catch (e1){ try                  { x = new ActiveXObject("Msxml2.XMLHTTP")    }
			 catch(e2){  try      { x = new ActiveXObject("Microsoft.XMLHTTP") }
						 catch(e3){ x = 0 }
					  }
		   }
 finally                   { return x }

}




String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,'');
}




function check_uc(str,limit)   /* Upper case */
{
	a = str.match(/[A-ZА-ЯЁ]/g);  /* но это только латиница и кириллица, а как бы это сделать для всех кодировок? */
	if (a)
	{
		if ( limit<1 )
		{
			if ( a.length/str.length > limit )
			{
				return false;
			}
		}
		else
		{
			if (a.length > limit )
			{
				return false;
			}
		}
	}
	return true;
}




function check_word_length(str,limit)
{
	a = str.split(/[-\s]/);
	if(a)
	{
		for (i=0;i<a.length;i++)
		{
			if (a[i].length > limit )
			{
				return false;
			}
		}
	}
	return true;
}




function check_letter(str,limit)
{
	a = str.match(/[0-9а-яёa-z]/gi);

	if (a==null || a.length<limit)
	{
		return false;
	}
	return true;
}




function comment_add( c, p, type )
{
	var    d = document;
	var eStr = d.getElementById('ctext');
	var  str = eStr.value;
		 str = str.trim();
	if(str.length)
	{
		if (!check_uc(str,0.3))
		{
			alert( 'Перебор ЗАГЛАВНЫХ букв' );
			return false;
		}
		if(!check_word_length(str,24))
		{
			alert( 'В вашем сообщении слишком длинное слово. Используйте пробелы!' );
			return false;
		}
		eStr.value='';

		var ul = d.getElementById('ulcomment');
		var li = d.createElement('li');
			li.setAttribute('style','color: #f60');
		var br = d.createElement('br');
		var b1 = d.createElement('b');
		var data = d.createTextNode(new Date);
		var t = d.createTextNode(str);
			li.appendChild(data);
			li.appendChild(br);
			b1.appendChild(t);
			li.appendChild(b1);
			ul.appendChild(li);
		if (-1==str.toLowerCase().search(/хуй|хует|хуесосы|пиздец|пизда|ебат|ебал|ебаные|ебучие|долбоёбы|пидор|пидар|блять|сука|урод|сосать|говно|гавно|козлы|href/))
		{
			var r = CreateXmlHttpRequestObject();
			if (r)
			{
				var post_val='c='+c+'&p='+p+'&text='+encodeURIComponent(str);
				var n='';
				if ( 2==type ) n='verse_';
				else if ( 3==type ) n='article_';
				r.open('POST','./tools/'+n+'comment_add.php', true );
				r.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
				r.send(post_val);
				//r.onreadystatechange = function(){if(4==r.readyState && 200==r.status){alert(r.responseText)}}
			}
		}
	}
	return false;
}




function comment_del( c, p, i, type )
{
	var r = CreateXmlHttpRequestObject();
	if (r)
	{
		var eComment = document.getElementById('c_'+i);

		var comment = eComment.firstChild ? encodeURIComponent(eComment.firstChild.nodeValue) : ''  // if no text - child id null

		post_val = 'c='+c+'&p='+p+'&text='+comment;
		var n='';
		if ( 2==type ) n='verse_';
		else if ( 3==type ) n='article_';
		r.open('POST','./'+n+'comment_del.php', true );
		r.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
		r.send(post_val);
		r.onreadystatechange = function()
		{
			if(r.readyState==4)
			{
				if(r.status==200)
				{
					var err = r.responseText;
					if (err!='0')
					{
						alert('error: '+err)
					}
					else
					{
						var ul = document.getElementById('ulcomment');
						var li = document.getElementById('lic_'+i);
						ul.removeChild(li);
					}
				}
			}
		}
	}
}

