
var end_char = '';

function setCharAt(strs, indexx, charr)
{		
	if(indexx > strs.length-1) return strs;
	
	return strs.substr(0, indexx) + charr + strs.substr(indexx+1);
}

function clears(str, num)
{	
	for(var k = 0; k < num; k++)
	{
		str = setCharAt(str, k, " ");
	}

	//debug_msg += 'end<br>';

	return str;
}

function gwo(str, num)
{
	var ress = "";

	for (var k = 0; k < num; k++)
	{
		ress = ress + str.charAt(k);
	}

	return ress;
}

function pae()
{
	var dnnm = 'giza';
	var conm = 'cart';
	
	if (! $(dnnm).value)
	{
		return false;
	}

	var all_queries = $(dnnm).value.split(",");

	ti = $(conm);

	var curs = ti.innerHTML;
	var check_test = /[\r\n\t ]/m;
	//alert(curs);

	var all_chars_counter = 0;
	var cur_pos = 0;

	var ch_flag = 0;
	var ch_flag2 = 0;

	var now_tag_flag = 0;

	var cur_str = "";
	var last_tag  = "";

	var last_block_start = 0;

	var script_tag_open = /<script[^><]*>/i;

	var blocks = new Array();

	var cur_str = "";

	for (i = 0; i <= all_queries.length-1; i++)
	{
		var cur_pair = all_queries[i].split(":");

		cur_pair[0] = parseInt(cur_pair[0]);
		cur_pair[1] = parseInt(cur_pair[1]);
		
		var stop = 0;
		
		if (i == 141)
		{
			stop = stop;
		}
				
		while (! stop)
		{
			var c_char = curs.charAt(all_chars_counter);

			if (now_tag_flag == 1)
			{
				last_tag += c_char;
			}
			else
			{
				last_tag = c_char;
			}

			if (cur_pos == cur_pair[0]+1)
			{
				stop = 1;

				blocks[i] = curs.substr(last_block_start, all_chars_counter - 1 - last_block_start);
				
				//debug_msg += blocks[i] + '<br>';

				last_block_start = all_chars_counter-1;

				cur_str = "";
			}

			if (last_tag.match(/>$/))
			{
				cur_pos = cur_pos;
			}

			if (! now_tag_flag)
			{
				var cur_sp_chars = spch(curs.substr(all_chars_counter, 10));
				var start_sp = false;

				if (last_tag == "&")
				{
					start_sp = true;
				}
				else
				{
					start_sp = false;
				}

				if (last_tag == "<")
				{
					end_char = />/;

					now_tag_flag = 1;
				}

				now_tag_flag = if_sp(cur_sp_chars, start_sp, now_tag_flag);
			}
			else if (last_tag.match(script_tag_open))
			{
				end_char = /<\/script>/i;
			}

			if ((now_tag_flag == 1) && (last_tag.match(end_char)))
			{
				now_tag_flag = 0;
			}
			else if ( (! now_tag_flag) && ( ! c_char.match(check_test) ) )
			{
				cur_str += c_char;

				cur_pos++;
			}

			all_chars_counter++;
		}
	}

	blocks[i] = curs.substr(last_block_start, curs.length - last_block_start);

	//debug_msg += '<b>реультат</b><Br>Всего блоков: ' + all_queries.length + '<br>';	
	
	for (i = 0; i <= all_queries.length-1; i = i + 2)
	{
		var cur_pair = all_queries[i].split(":");
		var cur_pair2 = all_queries[i+1].split(":");

		ss = i+1;

		var tmp = gwo(blocks[ss], cur_pair[1]);

		//debug_msg += tmp + " ++ " + gwo(blocks[ss+1], cur_pair2[1]) + '<br>';
				
		blocks[ss] = gwo(blocks[ss+1], cur_pair2[1]) + " " + clears(blocks[ss], cur_pair[1]);

		blocks[ss+1] = tmp + " " + clears(blocks[ss+1], cur_pair2[1]);
	}

	curs = blocks.join("");
	curs = curs.replace(/<a/ig, " <a");
	curs = curs.replace(/ +<\/a>/ig, "</a> ");
	
	ti.innerHTML = curs;
	
	//debug_msg += '<br><b>готово!</b>';
}

function if_sp(first, second, flag)
{
	var now_tag_flag = flag;
	
	if (first && (! now_tag_flag))
	{
		if (second)
		{
			now_tag_flag = 1;
			
			end_char = /;/;
		}
	}
	
	return now_tag_flag;
}

function spch(str)
{
	var chet = /^&[\#0-9a-zA-Z]+;/i;

	if (str.match(chet) != null)
	{
		retval = true;
	}
	else
	{
		retval = false;
	}

	return retval;
}

function spch2(str)
{
	var chet = /<script/i;

	return str.match(chet);
}

function spch3(str)
{
	var chet = /\/script>/i;

	return str.match(chet);
}