var itp_static_url='http://static.seopult.ru';
var default_process="<img src='"+itp_static_url+"/themes/default/_img/loader.gif' height='16' width='16'>";
String.prototype.trim = function() { return this.replace(/^[\s\r\n\t]+|[\s\r\n\t]+$/g, ''); };
String.prototype.remove_dbl_spaces = function() { return this.replace(/\s{2,}/g, ' '); };
function getInText(node){
	return node.innerText || node.textContent;
}
function execute(id, url,while_loading,redirect_url,redirect_timeout, callback_on_success, callback_on_error) {
	var goal=document.getElementById(id);
	if (!goal){
		//to debug
		//alert("Object with id '"+id+"' doesn't exist");
		return false;
	}
	if (!while_loading){
		goal.innerHTML="<img src='/themes/default/_img/loader.gif' width='16' height=16>";
	}else if(while_loading!='__empty__'){
		goal.innerHTML=while_loading;
	}
	var request   = false;
	var msxmlhttp = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP' );

	if ( window.XMLHttpRequest ) {
		request = new XMLHttpRequest;
	} else if ( window.ActiveXObject ) {
		for ( var i = 0; i < msxmlhttp.length; i ++ ) {
			try {
				request = new ActiveXObject( msxmlhttp[i] );
			} catch ( e ) {
				request = false;
			}
		}
	}
	if ( !request ) {
		alert( 'Can\'t create XMLHTTP instance' );
		return false;
	}
	request.onreadystatechange = function() { 
		if ( request.readyState == 4 ) {
			if ( request.status == 200 ) {
				var reg=/<script[^>]*?>(.*?)<\/script>/ig;
				var reg_repl=/<[\/]{0,1}script[^>]*?>/ig;
				var resp=request.responseText;
				if (scr=resp.match(reg)){
					resp=resp.replace(reg,"");
					goal.innerHTML=resp;
					for (i=0; i<scr.length;i++){
						to_exec=scr[i].replace(reg_repl,"");
						eval(to_exec);
					}
				} else {
					goal.innerHTML=resp;
				}
				if (redirect_url){
					if (redirect_timeout){
						setTimeout("execute('"+id+"','"+redirect_url+"','"+while_loading+"')",redirect_timeout*1000);
					} else {
						execute(id,redirect_url,while_loading);
					}
				}

				if (callback_on_success) {
					callback_on_success();
				}
			} else {
				if (callback_on_error) {
					callback_on_error(request.status);
				}
				
			}
		}
	}
	var q_pos=url.indexOf('?');
	var q_data=(q_pos!=-1?url.substr(q_pos+1):'');
	var u_path=(q_pos!=-1?url.substr(0,q_pos):url);
	request.open( 'POST', u_path, true );
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.send(q_data);
};
function execute_with_hiding(id,url,while_loading){
	var resObj=document.getElementById(id);
	if (resObj){
		if (resObj.style.display=='none'){
			resObj.style.display='';
			execute(id,url,while_loading);
		}else{
			resObj.style.display='none';
		}
	}
};
function execute_onempty_with_hiding(id,url){
	var resObj=document.getElementById(id);
	if (resObj){
		if (resObj.style.display=='none'){
			resObj.style.display='';
			if (resObj.innerHTML=='') {
				execute(id,url);
			}
		}else{
			resObj.style.display='none';
		}
	}
}
function check_checkboxes (formObj){
	elms=formObj.elements;
	if (!elms){
		return false;
	}
	for (i=0;i<elms.length;i++){
		if (elms[i].type=='checkbox' && elms[i].name!='' && elms[i].checked){
			return true;
		}
	}
	return false;
};
function check_checkboxes_in (container, common) {
	var elms=container.getElementsByTagName('input');
	if (!elms){
		return false;
	}
	for (i=0; i<elms.length; i++) {
		if (elms[i].type=='checkbox' && (!common || elms[i].name.indexOf(common)!=-1) && !elms[i].disabled && elms[i].checked) {
			return true;
		}
	}
	return false;
};
function enlargeObj(id,size){
	var oDist=document.getElementById(id);
	if (oDist){
		var currentSize=new Number(oDist.style.height.substr(0,oDist.style.height.length-2));
		var newSize=currentSize+size;
		oDist.style.height=newSize+'px';
		return true;
	}
	return false;
};
function reduceObj(id,size){
	var oDist=document.getElementById(id);
	if (oDist){
		var currentSize=new Number(oDist.style.height.substr(0,oDist.style.height.length-2));
		if (currentSize<size)
		return false;
		var newSize=currentSize-size;
		oDist.style.height=newSize+'px';
		return true;
	}
	return false;
};
function clearObj(id) {
	var oDist=document.getElementById(id);
	if (oDist){
		if (oDist.value) {
			oDist.value='';
		}
		if (oDist.innerHTML) {
			oDist.innerHTML='';
		}
	}
	return false;
};
function showhideObj(id){
	var oDist=document.getElementById(id);
	if (oDist){
		if (oDist.style.display=='none')
		oDist.style.display='';
		else
		oDist.style.display='none';
	}
};
function checkall_common(form,state,common){
	var elms=form.elements;
	for (i=0;i<elms.length;i++){
		if (elms[i].type=='checkbox' && (!common || elms[i].name.indexOf(common)!=-1) && !elms[i].disabled){
			elms[i].checked=state;
		}
	}
};
function fillall_common(form,value,common){
	var elms=form.elements;
	for (i=0;i<elms.length;i++){
		if (elms[i].type=='text' && (common=='' || elms[i].name.indexOf(common)!=-1)){
			elms[i].value=value;
		}
	}
};
function deleteById(id_to_delete){
	var obj_to_delete=document.getElementById(id_to_delete);
	if (obj_to_delete){
		obj_to_delete.parentNode.removeChild(obj_to_delete);
	}
};
function deleteNode(obj_to_delete) {
	if (obj_to_delete){
		obj_to_delete.parentNode.removeChild(obj_to_delete);
	} 
};
function valid_email(mail){
	var preg_email=/^[a-zA-Z0-9_]+[-a-zA-Z0-9_\.]*@[a-zA-Z0-9]+[-a-zA-Z0-9_\.]*\.[a-zA-Z]+$/;
	return mail.match(preg_email)?true:false;
};
var preg_valid_url=/^http:\/\/((?:[a-zA-Z0-9]+(?:[-a-zA-Z0-9]*[a-zA-Z0-9]+){0,1}\.){1,}[a-zA-Z]{2,})([\/]{1}.*){0,1}$/i;
function valid_url(url) {
	return url.match(preg_valid_url)?true:false;
};
var restricted_symbols=/[^a-zA-Zа-яА-ЯёЁ0-9\.\?_\s:;,!#\/\(\)\'-]+/;
var max_allowed_length=60;
function valid_keyword(keyword) {
	var key_error='';
	if (keyword.length>max_allowed_length) {
		key_error='Максимально возможное количество символов в ключевом слове составляет '+max_allowed_length;
	} else if (keyword.match(restricted_symbols)) {
		key_error="Ключевое слово может состоять из букв и цифр, разделенных пробелом, а также включать символы .?-_:;,!#/()\'";
	}
	return key_error;
};
function showhideHelp(){
	var help=document.getElementById('more_help');
	var helper=document.getElementById('more_helper');
	if (help.style.display==''){
		help.style.display='none';
		helper.innerHTML='подробнее';
	}else{
		help.style.display='';
		helper.innerHTML='скрыть';
	}
};
function submitter(formObjToSubmit){
	if (!formObjToSubmit){
		return '';
	}
	var submit_elms=formObjToSubmit.elements;
	var ret='';
	for (i=0;i<submit_elms.length;i++){
		if (submit_elms[i].name=='' || submit_elms[i].type=='button' || (submit_elms[i].type=='checkbox' && !submit_elms[i].checked)){
			continue;
		}
		ret+='&'+URLEncode(submit_elms[i].name)+'='+URLEncode(submit_elms[i].value);
	}
	if (ret==''){
		return '';
	}
	return ret.substr(1);
};
function inputs_readonly(h_obj, readonly) {
	readonly=!!readonly;
	var h_inputs=h_obj.getElementsByTagName('input');
	for (i_input=0; i_input<h_inputs.length; i_input++) {
		h_inputs[i_input].readOnly=readonly;
	}
};
function is_numeric(val){
	var preg=/^[\+-]{0,1}[0-9]+(?:\.[0-9]*){0,1}$/;
	return val.match(preg)?true:false;
};
function is_int(val){
	var preg=/^[0-9]+$/;
	return val.match(preg)?true:false;
};
function in_array (needle, haystack, argStrict) {
	var key = '', strict = !!argStrict;
	for (key in haystack) {
		if ((!strict && haystack[key] == needle) || (strict && haystack[key] === needle)) {
			return true;
		}
	}
	return false;
}
function redirect_url(url) {
	return "http://yushkevich.su/redirect.php?url="+URLEncode(url);
};
function blink_bg(id, color, times) {
	var blObj=document.getElementById(id);
	if (!color) {
		color='#FFEFD8';
	}
	if (!times) {
		times=2;
	}
	if (blObj) {
		var init=blObj.style.backgroundColor;
		var timeout=50;
		for (i=0; i<times; i++) {
			setTimeout("set_bg_color('"+id+"','"+color+"')", timeout);
			setTimeout("set_bg_color('"+id+"','"+init+"')", timeout+300);
			timeout+=500;
		}
	}
};
function set_bg_color(id, color) {
	var colObj=document.getElementById(id);
	if (colObj) {
		colObj.style.backgroundColor=color;
	}
};
function random (min, max) {
	max=Math.round(max); min=Math.round(min);
	if (min>=max) {
		return 0;
	}
	return min+Math.floor(Math.random()*(max-min));
};
// Инициализируем таблицу перевода
var trans = [];
for (var i = 0x410; i <= 0x44F; i++){
	trans[i] = i - 0x350; // А-Яа-я
}
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё

function URLEncode(str){
	var ret = [];
	// Составляем массив кодов символов, попутно переводим кириллицу
	for (var i = 0; i < str.length; i++)
	{
		var n = str.charCodeAt(i);
		if (typeof trans[n] != 'undefined')
		n = trans[n];
		if (n <= 0xFF)
		ret.push(n);
	}
	return escape(String.fromCharCode.apply(null, ret));

};
function rand_num(){
	return Math.ceil(Math.random()*10000000000).toString();
};