
function clear_jquery_error() {
	$(".error").remove();
}

function remove_jquery(elem) {
	$(elem).remove();
}

function hide_jquery(elem) {
	$(elem).hide();
}

function show_jquery(elem) {
	$(elem).show();
}


function get_jquery_error(elem) {
	$("label[for='comment']").before("<p class='error'>"+elem+"</p>");
	$(".error").fadeIn("slow");
}
if(lstcommentid){
	lstcommentid = $s("comment-"+lstcommentid);	
}
var commentformel = $s("commentform");

if(commentformel.action.indexOf("wp-comments-post.php") != -1){
    commentformel.onsubmit = wptcajaxsend;      	 
}

function gparam(f){
	var p='wptcajax=wptcajax';
	var fi = f.getElementsByTagName('input');
	for(i=0; i < fi.length; i++ ){
		e=fi[i];
		if(e.name!=''){
			if(e.type=='select')
				element_value=e.options[e.selectedIndex].value;
			else if(e.type=='checkbox' || e.type=='radio'){
				if(e.checked==false)
					continue;
				element_value=e.value;
			}else{
				element_value=e.value;
			}
			p+="&"+e.name+'='+encodeURIComponent(element_value);
		}
	}
	fi = f.getElementsByTagName('textarea');
	for(i=0; i < fi.length; i++)
		p+="&"+fi[i].name+"="+encodeURIComponent(fi[i].value);
	
	return p;
}

function getXMLInstance(){
	var req;
	if(window.XMLHttpRequest){
		req = new XMLHttpRequest();
		if (req.overrideMimeType){
			//req.overrideMimeType('text/xml');
		}
	}else if(window.ActiveXObject){
		try{
			req = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				req = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){}
		}
	}
	if(!req){
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	return req;
}

function wptcajaxsend(){
	clear_jquery_error();
	var req = getXMLInstance();
	var r = $s('comment_reply_ID').value;
	var c = null;

	var p=gparam(commentformel);

	if(p != null)
		q=p.split("&");

	var author = null, email = null, comment = null;
	author = stpm("author",q);
	email = stpm("email",q);
	comment = stpm("comment",q);

	if(needauthoremail == true){

		if(author != null && author == ""){
			get_jquery_error("Укажите имя или ник");
			if($s("author")) $s("author").focus();
			return false;
		}

		if(email != null && (email == "" || email.length < 6 || email.match(/^([a-z0-9+_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i) == null)){
			get_jquery_error("Проверьте правильность написания e-mail");
			if($s("email")) $s("email").focus();
			return false;
		}
	}

	var ac = document.cookie.split("; ");

	if(author == null){
		author = stpm("wordpress_"+COOKIEHASH,ac);
		if(author != null){
			author = author.split("|");
			author = author[0];
		}
	}
    
    if(author){   
    	if (author.length > 12) {
        	var one_str = round(author.length/12); //находим сколько раз умещается в имени автора 12 символов
            var ost = author.length%12;  // находим остаток деления на 12
            if (ost>1) one_str=one_str+1; // если остаток больше 1, прибавляем +1 к числу вхождений
            var str=author.length; 
            var new_str;
        	for ( var i=0;i < one_str-1 ;i++) {  // от 0 до числа вхождений делаем:
           		new_str=str.substr((i*12),11);  // выбираем первые 12 символов
                var prob=new_str.lastIndexOf('');  // ищем последний пробел
                if(prob) {  // если находим пробел
                	new_str.replace($/s/b, "<br />");  // заменяем пробел на перевод строки
                	}
            }
        } 
    
         
            for ( var i=0;i < author.length ;i++) {
                if (i == 12 && author.length[i+1] != " ") {
                    //get_jquery_error("Вы ввели слишком длинное имя. Пожалуйста, не более 12 символов для одного слова в имени");
                    //if($s("author")) $s("author").focus();
                    //return false;
                }
            }
        }

	if(comment == null || comment == ""){
		get_jquery_error("А комментарий? :)");
		if($s("comment")) $s("comment").focus();
		return false;
	}
	comment = comment.replace(/\r\n\r\n/g, "</p><p>");
	comment = comment.replace(/\r\n/g, "<br />");
	comment = comment.replace(/\n\n/g, "</p><p>");
	comment = comment.replace(/\n/g, "<br />");
	comment = "<p>"+comment+"</p>";
	var dateObj = new Date();

	if(r == 0){
		c = document.createElement(lstcommentid.tagName);
		c.id = "newcomment";
		if(sortflag == 'DESC'){
			lstcommentid.parentNode.insertBefore(c,lstcommentid);
			window.location="#newcomment";
		}else{
			if(lstcommentid.parentNode.lastChild == lstcommentid){
				lstcommentid.parentNode.appendChild(c);
			}else{
				lstcommentid.parentNode.insertBefore(c,lstcommentid.nextSibling);
			}
		}
	}else{
		c = document.createElement('div');
		c.id = "newcomment";
		rpPel.appendChild(c);      
	}
	c.innerHTML = "<div id='newcommentcontent'><p>"+author+":<br />"+comment+"</p></div><div id='newcommentsubmit'><p><b>Идет отправка...</b><img src='http://astseo.ru/wp-content/plugins/wordpress-thread-comment1/loading.gif' /></p></div>";

	$s(commentformid).style.display='none';
	
	req.onreadystatechange = function(){
		if(req.readyState == 4){
			$s(commentformid).style.display='block';            
            remove_jquery(".first_coms");
			if(req.status == 200){
				wptctextreplace($s('newcomment'),req.responseText);

				if(parseInt(r)){
					movecfm(null,0,0);	
				}
				if($s('comment')) $s('comment').value = '';
			}else{
				c.parentNode.removeChild(c);
				var error = req.responseText.match(/<body>[\s\S]*?<p>([\s\S]*)<\/p>[\s\S]*?<\/body>/i);
				if(typeof(error) != 'undefined' && error != null && error != ''){
					get_jquery_error(error[1]);
				}else{
					get_jquery_error("Вы слишком быстро комментируете. Подождите несколько секунд.");
				}
			}
		}
	}
	
	req.open('POST', commentformel.action, true);
	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	req.setRequestHeader("Content-length", p.length);
	req.setRequestHeader("Connection", "close");
	req.send(p);
	
	return false;
}

function wptctextreplace(element,text){
	if(!text)
		return false;

	var orgtext = text;
	text = text.match(/[^<]*<((\w+).*?id\s*=\s*("|')(.*?)\3[^>]*)>([\s\S]*)<\/\2>/i);
	if(typeof(text) != 'undefined' && text != null){
		element.innerHTML = text[5];
		element.id = text[4];
		text = text[1]
		text = text.match(/class\s*=\s*("|')(.*?)\1/i);
		if(text != null){
			text = text[2];
		}
		if(lstcommentid.className.match(/alt/i)){
			text = text.replace(/\balt\b/i,'');
		}
		element.className = text;
	}else{
		element.innerHTML = orgtext;
	}

	if($s('comment_reply_ID').value == 0)
		lstcommentid = element;

	if(typeof(AjaxEditComments) != 'undefined' && typeof(AjaxEditComments.init) == 'function')
		AjaxEditComments.init();

	return true;
}
function stpm(aname,array){
	for (var i=0; i < array.length; i++){
		var c = array[i].split("=");
		c[0] = unescape(decodeURI(c[0]));
		c[0] = c[0].replace(/^\s+|\s+$/g,"");
		if (aname == c[0]){
			c[1] = unescape(decodeURI(c[1]));
			c[1] = c[1].replace(/^\s+|\s+$/g,"");
			return c[1];
		}
	}
 	return null;
}
