﻿/*************************
  Coppermine Photo Gallery
  ************************
  Copyright (c) 2003-2008 Dev Team
  v1.1 originally written by Gregory DEMAR

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 3
  as published by the Free Software Foundation.
  
  ********************************************
  Coppermine version: 1.4.18
  $HeadURL: https://coppermine.svn.sourceforge.net/svnroot/coppermine/trunk/cpg1.4.x/scripts.js $
  $Revision: 4380 $
  $Author: gaugau $
  $Date: 2008-04-12 12:00:19 +0200 (Sa, 12 Apr 2008) $
**********************************************/
$(function() {
//<<< главное меню
		$("ul.topnav li a").hover(function() { //When trigger is hover...
		//Following events are applied to the subnav itself (moving subnav up and down)
			$(this).parent().find("ul.subnav").show(); //Drop down the subnav on click
			$(this).parent().hover(function() {
			}, function(){	
				$(this).parent().find("ul.subnav").hide(); //When the mouse hovers out of the subnav, move it back up
			});
		//Following events are applied to the trigger (Hover events for the trigger)
		})
// главное меню >>>
//<<< создание теней у миниизображений
        // $(".thumb-cont").each(function (i) {
 				// var inner=this.innerHTML;
				// var width=$(this).find('img')[0].width+18;
				 // $(this).replaceWith(
					// '<DIV class="thumb"><DIV style="WIDTH: '+width+'px" class=wrap1>'+
					// '<DIV class=wrap2>'+
					// '<DIV class=wrap3>'+
					// '<DIV class=wrap4>'+this.innerHTML+
					// '</DIV></DIV></DIV></DIV></DIV>');
	// })
	// $(".wrap4 a").css({padding:"0px",margin:"0px"});
//создание теней у миниизображений >>>

//crea_Shadows();

//<<< отключаем фильтры, которые работают только в ИЕ
ie=document.all && !window.opera;
if (!ie) $('#palitra_ie1').hide();
// отключаем фильтры, которые работают только в ИЕ >>>

			if ($("a.zoom2").length>0){
			$("a.zoom2").fancybox({
				'zoomSpeedIn'		:	500,
				'zoomSpeedOut'		:	500
			});
			}
});

function golds(){
//golden section
			var l1=$("#line1");
			var l2=$("#line2"); 
			var l3=$("#line3"); 		
			var l4=$("#line4"); 
			var c_i=$("#cropbox");
			var border=30;
		var offset=$("#cropbox").offset();
			l1.toggle();l2.toggle();l3.toggle();l4.toggle();

			l1.height(c_i.height());
			l1.css('top',border+'px');
			l1.css('left',offset.left+c_i.width()/3+'px');

			l2.height(c_i.height());
			l2.css('top',border+'px');
			l2.css('left',offset.left+c_i.width()*2/3+'px');

			l3.width(c_i.width());
			l3.css('top',c_i.height()*2/3+border+'px');
			l3.css('left',offset.left);

			l4.width(c_i.width());
			l4.css('top',c_i.height()/3+border+'px');
			l4.css('left',offset.left);
}
	function tglgoldensec()
{//golden section
  	if (document.getElementById('td_top').style.borderRightStyle=="solid")
    {
	document.getElementById('td_top').style.borderRightStyle="none";
	document.getElementById('td_top').style.borderLeftStyle="none";
	document.getElementById('td_bottom').style.borderRightStyle="none";
	document.getElementById('td_bottom').style.borderLeftStyle="none";
	document.getElementById('td_center').style.borderStyle="none";	
	document.getElementById('td_left').style.borderTopStyle="none";
	document.getElementById('td_left').style.borderBottomStyle="none";
	document.getElementById('td_right').style.borderTopStyle="none";
	document.getElementById('td_right').style.borderBottomStyle="none";
	}
  else {
    document.getElementById('td_top').style.borderRightStyle="solid";
	document.getElementById('td_top').style.borderLeftStyle="solid";
    document.getElementById('td_bottom').style.borderRightStyle="solid";
	document.getElementById('td_bottom').style.borderLeftStyle="solid";
	document.getElementById('td_center').style.borderStyle="solid";	
	document.getElementById('td_left').style.borderTopStyle="solid";
	document.getElementById('td_left').style.borderBottomStyle="solid";
	document.getElementById('td_right').style.borderTopStyle="solid";
	document.getElementById('td_right').style.borderBottomStyle="solid";
  }
}
	function tglflt(fltr)
{//set filters for IE (grayscale, xray etc.)
  img = document.getElementById('cropbox');
	if (img.style.filter == fltr)
    img.style.filter="";
  else {
    img.style.filter=fltr;
  }
};

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function writeCookie(name, data, noDays){
  var cookieStr = name + "="+ data
  if (writeCookie.arguments.length > 2){
    cookieStr += "; expires=" + getCookieExpireDate(noDays)
    }
  document.cookie = cookieStr
}

function readCookie(cookieName){
   var searchName = cookieName + "="
   var cookies = document.cookie
   var start = cookies.indexOf(cookieName)
   if (start == -1){ // cookie not found
     return ""
     }
   start += searchName.length //start of the cookie data
   var end = cookies.indexOf(";", start)
   if (end == -1){
     end = cookies.length
     }
   return cookies.substring(start, end)
}

function blocking(nr, cookie, vis_state)
{
        if (document.layers)
        {
                current = (document.layers[nr].display == 'none') ? vis_state : 'none';
                if (cookie != '')
                        writeCookie(nr, current);
                document.layers[nr].display = current;
        }
        else if (document.all)
        {
                current = (document.all[nr].style.display == 'none') ? vis_state : 'none';
                if (cookie != '')
                        writeCookie(nr, current);
                document.all[nr].style.display = current;
        }
        else if (document.getElementById)
        {
                display = (document.getElementById(nr).style.display == 'none') ? vis_state : 'none';
                if (cookie != '')
                        writeCookie(nr, display);
                document.getElementById(nr).style.display = display;
        }
}


function adjust_popup()
{
        var w, h, fixedW, fixedH, diffW, diffH;
        if (document.documentElement && document.body.clientHeight==0) {     // Catches IE6 and FF in DOCMODE
                fixedW = document.documentElement.clientWidth;
                fixedH = document.documentElement.clientHeight;
                window.resizeTo(fixedW, fixedH);
                diffW = fixedW - document.documentElement.clientWidth;
                diffH = fixedH - document.documentElement.clientHeight;
                w = fixedW + diffW + 16; // Vert Scrollbar Always On in DOCMODE.
                h = fixedH + diffH;
                if (w >= screen.availWidth) h += 16;
        } else if (document.all) {
                fixedW = document.body.clientWidth;
                fixedH = document.body.clientHeight;
                window.resizeTo(fixedW, fixedH);
                diffW = fixedW - document.body.clientWidth;
                diffH = fixedH - document.body.clientHeight;
                w = fixedW + diffW;
                h = fixedH + diffH;
                if (h >= screen.availHeight) w += 16;
                if (w >= screen.availWidth)  h += 16;
        } else {
                fixedW = window.innerWidth;
                fixedH = window.innerHeight;
                window.resizeTo(fixedW, fixedH);
                diffW = fixedW - window.innerWidth;
                diffH = fixedH - window.innerHeight;
                w = fixedW + diffW;
                h = fixedH + diffH;
                if (w >= screen.availWidth)  h += 16;
                if (h >= screen.availHeight) w += 16;
        }
        w = Math.min(w,screen.availWidth);
        h = Math.min(h,screen.availHeight);
        window.resizeTo(w,h);
        window.moveTo((screen.availWidth-w)/2, (screen.availHeight-h)/2);
}

function show_section(e) {
    if (document.getElementById(e).style.display == 'none') {
        document.getElementById(e).style.display = 'block';
    } else {
        document.getElementById(e).style.display = 'none';
    }
}


function expand()
{
        var Nodes = document.getElementsByTagName("table")
        var max = Nodes.length
        for(var i = 0;i < max;i++) {
                var nodeObj = Nodes.item(i)
                var str = nodeObj.id
                if (str.match("section")) {
                        nodeObj.style.display = 'block';
                }
        }
}

function hideall()
{
        var Nodes = document.getElementsByTagName("table")
        var max = Nodes.length
        for(var i = 0;i < max;i++) {
                var nodeObj = Nodes.item(i)
                var str = nodeObj.id
                if (str.match("section")) {
                        nodeObj.style.display = 'none';
                }
        }
}

function to16(n1){
hchars = "0123456789ABCDEF" // 񲰮렬 񮤥𦠹ῠ㲥 16-塶鵰󍊶ar n_16;
n_16=parseInt(n1,10);
if (n_16 > 255) return '00'
{var i = n_16%16;
var j = (n_16 - i)/16;
rezult = "";
rezult += hchars.charAt (j);
rezult += hchars.charAt (i);
return rezult}
  }
  
  function makePalette(color){
  var nP=21;
var nP1=10;
  
if (color.substr(0,1)=="#") {
  fR=parseInt("0x"+color.substr(1,2),16);
  fG=parseInt("0x"+color.substr(3,2),16);
  fB=parseInt("0x"+color.substr(5,2),16);}
if (color.substr(0,1)=="r") {
  OperaColor=color.substr(4).split(",");
  fR=OperaColor[0];
  fG=OperaColor[1];
  fB=OperaColor[2].slice(0,OperaColor[2].indexOf( ")" ));	}
var sR=255;var sG=255;var sB=255;
  for (var i=0;i<=nP-nP1-1;i++){
  fPc=i/(nP-nP1-1);
  sPc=1-fPc;
	ColorP="#"+
	to16(Math.floor(sR*sPc+fR*fPc))+
	to16(Math.floor(sG*sPc+fG*fPc))+
	to16(Math.floor(sB*sPc+fB*fPc));
	var j=i+1;
	document.getElementById("gr"+j).style.background=ColorP;
	}
  for (var i=0;i<=nP-nP1-1;i++){
  fPc=i/(nP-nP1-1);
  sPc=1-fPc;
	ColorP="#"+
	to16(Math.floor(fR*sPc))+
	to16(Math.floor(fG*sPc))+
	to16(Math.floor(fB*sPc));
	var j=i+1+nP1;
	document.getElementById("gr"+j).style.background=ColorP;
	}
  }
  
  
   function showcolor(){
		//ע沠𮭠
  colorName='#'+
  to16(document.getElementById('t1c1').value)+
  to16(document.getElementById('t2c1').value)+
  to16(document.getElementById('t3c1').value);
  document.getElementById('img_1').style.background=colorName;
  }
   function getFromPalette(color,elem_id){
  //alert(document.getElementById('img_1').style.background);
  //alert(elem_id);
if (elem_id=="grs22") {color=document.getElementById('img_1').style.background;}
  item_index='c1';
  if (color.substr(0,1)=="#") {
  document.getElementById('t1'+item_index).value=parseInt("0x"+color.substr(1,2),16);
  document.getElementById('t2'+item_index).value=parseInt("0x"+color.substr(3,2),16);
  document.getElementById('t3'+item_index).value=parseInt("0x"+color.substr(5,2),16);}
 if (color.substr(0,1)=="r") {
  OperaColor=color.substr(4).split(",");
  document.getElementById('t1'+item_index).value=parseInt(OperaColor[0],10);
  document.getElementById('t2'+item_index).value=parseInt(OperaColor[1],10);
  document.getElementById('t3'+item_index).value=parseInt(OperaColor[2].slice(0,OperaColor[2].indexOf( ")" )),10);
  }
  }
  function chekN(obj) {
  N_111=obj.value;
  if (N_111<0) {N_111=0;}
  if (N_111>255) {N_111=255;}  
  if (isNaN(N_111)) {N_111=0;}
  obj.value=N_111;
  }
  function submit_form_index__(fld) {
				//document.getElementById('p_d').style.display='none';
				//document.getElementById('p_a').style.display='none';
				if(document.getElementById('order').value==fld+'_d')
				{document.getElementById('order').value=fld+'_a';
				//document.getElementById(fld+'_d').style.display='inline';
				}
				else
				{document.getElementById('order').value=fld+'_d';
				//document.getElementById(fld+'_a').style.display='inline';
				}
				document.getElementById('form_index').submit();
  }
   function sort_col(el,sub) {
				//document.getElementById('p_d').style.display='none';
				//document.getElementById('p_a').style.display='none';
				//alert(el.innerHTML);
				//alert(el.id);
				//var sort='DESC';
				var arrow, title, ord;
				if (el.innerHTML.substr(0,2)=="↑ ") {arrow='↓ ';title='Сортировать по возрастанию';ord='_a';}
				else if (el.innerHTML.substr(0,2)=="↓ ") {arrow='↑ ';title='Сортировать по убыванию';ord='_d';}
				else {arrow='↓ ';title='Сортировать по возрастанию';ord='_a';}
				for (var i=1;i<=17;i++) {
				el2=document.getElementById('sort_'+i);
				el2.innerHTML=el2.innerHTML;
				if (el2.innerHTML.substr(0,2)=="↑ ") {el2.innerHTML=el2.innerHTML.substr(2,20);el2.title='';}
				if (el2.innerHTML.substr(0,2)=="↓ ") {el2.innerHTML=el2.innerHTML.substr(2,20);el2.title='';}
				el2.title='Сортировать по убыванию';
				}
				el.innerHTML=arrow+el.innerHTML;
				el.title=title;
				document.getElementById('order').value=el.id+ord;
				if(sub==1){
				document.getElementById('form_index').submit();}
  }
function tooltip(el,txt,b_color,cor) {
	//tipobj=document.getElementById('mess');
	//tipobj.innerHTML = txt;
	//correct=cor;
	//tipobj.style.background=b_color;
	//op = 1;	
	
	//tipobj.style.opacity = op; 
	//tipobj.style.visibility="visible";
	
	//el.onmousemove=positiontip;
	el.title=txt;
}

// function hide_info(el) {
	// document.getElementById('mess').style.visibility='hidden';
	// el.onmousemove='';
// }

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function positiontip(e) {
var tipobj=document.getElementById('mess');
var ie=document.all && !window.opera;
var ns6=document.getElementById && !document.all;
var offsetfromcursorY=25; 
var correct=0;

	var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
	var curY=(ns6)?e.pageY-correct : event.clientY+ietruebody().scrollTop-correct;
	var winwidth=ie? ietruebody().clientWidth : window.innerWidth-20
	var winheight=ie? ietruebody().clientHeight : window.innerHeight-20
	
	var rightedge=ie? winwidth-event.clientX : winwidth-e.clientX;
	var bottomedge=ie? winheight-event.clientY-offsetfromcursorY : winheight-e.clientY-offsetfromcursorY;

	if (rightedge < tipobj.offsetWidth)	tipobj.style.left=curX-tipobj.offsetWidth+"px";
	else tipobj.style.left=curX+"px";

	if (bottomedge < tipobj.offsetHeight) tipobj.style.top=curY-tipobj.offsetHeight-offsetfromcursorY+"px"
	else tipobj.style.top=curY+offsetfromcursorY+"px";
}

function appear() {	
	if(op < 1) {
		op += 0.1;
		tipobj.style.opacity = op;
		tipobj.style.filter = 'alpha(opacity='+op*100+')';
		t = setTimeout('appear()', 10);
	}
}

//slider
function slider(elemId, sliderWidth, range1, range2, step,output) {
	//alert(elemId);
	var knobWidth = 10;				// ширина и высота бегунка
	var knobHeight = 20;			// изменяются в зависимости от используемых изображений
	var sliderHeight = 30;			// высота slider'а
	
	var offsX,tmp;					// вспомагательные переменные
	var d = document;
	var isIE = d.all || window.opera;	// определяем модель DOM
	
	var point = (sliderWidth-knobWidth-3)/(range2-range1);
	// point - количество пикселей на единицу значения
	
	var slider = d.createElement('DIV'); // создаем slider
	slider.id = elemId + '_slider';
	slider.className = 'slider';
	d.getElementById(elemId).appendChild(slider);	
	slider.output=output;
	
	var knob = d.createElement('DIV');	// создаем ползунок
	knob.id = elemId + '_knob';
	knob.className = 'knob';
	slider.appendChild(knob); // добавляем его в документ
	
	knob.style.left = 0;			// бегунок в нулевое значение
	knob.style.width = knobWidth+'px';	
	knob.style.height = knobHeight+'px';
	slider.style.width = sliderWidth+'px';
	slider.style.height = sliderHeight+'px';
	
	//var sliderOffset = slider.offsetLeft;			// sliderOffset - абсолютное смещение slider'а
	//tmp = slider.offsetParent;		// от левого края в пикселях (в IE не работает)
	////tmp.tagName != 'HTML' && 
	//while(tmp.tagName != 'BODY') {
	//	sliderOffset += tmp.offsetLeft;		// тут его и находим
	//	tmp = tmp.offsetParent;
	//}
	var sliderOffset = pageX(slider);
		//	alert(sliderOffset);
	//setValue2(50);//устанавливаем на "хорошо"
	setValue2(0);//устанавливаем на "0"
var is_d=0;
var y_koord=0;
	$('#'+knob.id).mousedown(function(){
			$('#is_d')[0].value=slider.id;
	  });
		$('*').mouseup(function(){
			$('#is_d')[0].value=0;
		});

		$('#'+knob.id).mouseover(function(){
		tt();
		});
	    //sliderOffset=sliderOffset-10;
		$('#'+slider.id).mousemove(function(e){
			if ($('#is_d')[0].value==slider.id){
			var x = e.pageX-sliderOffset-knobWidth/2;
			//alert(sliderOffset);
			setValue(x,step);}
			else
			{$('#is_d')[0].value=0;}}	);			
		
		$('#'+slider.id).click(function(e){
			sliderClick(e);});
		
		$('#'+output).change(function () {
			var h_val=0;
			if (isNaN(parseInt($('#'+output)[0].value))) {h_val=0;} else {h_val=$('#'+output)[0].value;}
			setValue2(h_val);
		});

		
		function mr1() {
	d.getElementById(this.id).value=this.value;
	}
	function mr2() {
	d.getElementById('rateit').href=d.getElementById('rate_').value+'&rate_x='+d.getElementById('r_x').value+'&rate_t='
	+d.getElementById('r_t').value+'&rate_o='+d.getElementById('r_o').value;
	}

	function tt() 
	{	var txt='';
		//alert(d.getElementById(slider.output).value);
		var b_c='#F1D1C1';
		var o_v=d.getElementById(slider.output).value;
					switch(o_v)
			{
				case '0'	: txt='не заслуживает внимания';						b_c='#efefef';break;
				case '10'	: txt='трудно сказать, но больше хорошо, чем плохо';	b_c='#beefc7';break;
				case '20'	: txt='на правильном пути';								b_c='#a8efb4';break;
				case '30'	: txt='неплохо, но есть над чем серьезно поработать';	b_c='#85ef97';break;
				case '40'	: txt='делаем успехи';									b_c='#80FFA0';break;
				case '50'	: txt='хорошо';											b_c='#65ef7d';break;
				case '60'	: txt='весьма положительно';							b_c='#57ef72';break;
				case '70'	: txt='серьёзное заявление';							b_c='#48ef65';break;
				case '80'	: txt='очень хорошо';									b_c='#38ef57';break;
				case '90'	: txt='отлично, таких фотографий малo';					b_c='#25ef48';break;
				case '100'	: txt='идеально'	;									b_c='#13ef39';break;			}
		return tooltip(knob,txt,b_c,0);
		}
	// function ht() 
	// {return hide_info(knob);}
	 
// далее подробно не описываю, кто захочет - разберется
//////////////////// функции установки/получения значения //////////////////////////

	function setValue(x,step_)	// установка по пикселям
	{
		if(x < 0) knob.style.left = 0; 
		else if(x > sliderWidth-knobWidth-3) knob.style.left = (sliderWidth-3-knobWidth)+'px';
		else {
			if(step_ == 0) knob.style.left = x+'px';			
			else knob.style.left = Math.round(x/(step_*point))*step_*point+'px';
		}
		d.getElementById(slider.output).value = getValue();	// это вывод значения для примера
		if (slider.output=='r_x'){
		d.getElementById('rateit').href=d.getElementById('rate_').value+
		'&rate_x='+d.getElementById(slider.output).value+'&rate_t='+d.getElementById('r_t').value+'&rate_o='+d.getElementById('r_o').value;
		}
		if (slider.output=='r_t'){
		d.getElementById('rateit').href=d.getElementById('rate_').value+
		'&rate_x='+d.getElementById('r_x').value+'&rate_t='+d.getElementById(slider.output).value+'&rate_o='+d.getElementById('r_o').value;
		}
		if (slider.output=='r_o'){
		d.getElementById('rateit').href=d.getElementById('rate_').value+
		'&rate_x='+d.getElementById('r_x').value+'&rate_t='+d.getElementById('r_t').value+'&rate_o='+d.getElementById(slider.output).value;
		}
		//alert(d.getElementById('rateit').href);
		//tooltip(knob,'!'+d.getElementById(slider.output).value);
	}
	function setValue2(x)	// установка по значению
	{
		if(x < range1 || x > range2) alert('Value is not included into a slider range!');
		else setValue((x-range1)*point,1);
		
		d.getElementById(slider.output).value = getValue();
	}

	function getValue() 
	{return Math.round(parseInt(knob.style.left)/point)+range1;}

//////////////////////////////// слушатели событий ////////////////////////////////////

	function sliderClick(e) {	
		var x;
		if(isIE) {
			if(event.srcElement != slider) return; //IE onclick bug
			x = event.offsetX - Math.round(knobWidth/2);
		}	
		else x = e.pageX-sliderOffset-knobWidth/2;
		setValue(x,step);
		//hide_info(knob);
	}


	function startCoord(e) {				
		if(isIE) {	
			offsX = event.clientX - parseInt(knob.style.left);
			slider.onmousemove = mov;
			
		}
		else {				
			slider.addEventListener("mousemove", mov(e), true);
			
		}
	}
	 
	function mov(e)	{
		var x;	
		if(isIE) x = event.clientX-offsX;
		else x = e.pageX-sliderOffset-knobWidth/2;
		setValue(x,step);
		//hide_info(knob);
	}

	function endCoord()	{
		if(isIE) {slider.onmousemove = null;	}
		else {slider.removeEventListener("mousemove", mov, true);}
		//hide_info(knob);
	}

	// объявляем функции setValue2 и getValue как методы класса
	this.setValue = setValue2;
	this.getValue = getValue;
} // конец класса


function creaEditForm(msg_id,msg_author,ok,reply,pid,author_id,max_msg_body)
{
					var text_msg = '';
					var text_input;
					var d=document;
					text_input = '<input type="hidden" name="pid" value="'+pid+'" />';
					if(reply==1) //для ответа на сообщение текст сообщения выводить не надо
					{	
					    text_input =    text_input +    
							'<input type="hidden" name="event" value="comment" />'+
                            '<input type="hidden" name="reply_id" value="'+ msg_id+ '" size="10" id="reply_id">';
					}
					else
					{
						// if(typeof(d.getElementById('cedit'+msg_id).innerText)!='undefined') {
						// text_msg=d.getElementById('cedit'+msg_id).innerText;}
						// else{
						// text_msg=d.getElementById('cedit'+msg_id).textContent;}
						 $.ajax({type: "GET",url: "/ajax/get_msg.php",cache: false,async: false,data: "msg_id="+msg_id,
						 success: function(msg){if (msg!=""){text_msg = msg; }}});
						text_input=	text_input +    			    
						'<input type="hidden" name="event" value="comment_update" />'+
						'<input type="hidden" name="msg_id" value="'+msg_id+'" />';
					}
					if (d.getElementById("editForm_" + msg_id)!=null) { 
						//blocking("cbody"+msg_id,'', 'block'); 
						blocking("editForm_" + msg_id,'', 'block');}
					else{
						var editForm = d.createElement('DIV');
						editForm.id = 'editForm_' + msg_id;
	//					'onselect="storeCaret_f'+msg_id+'(this);"'+
	//					'onclick="storeCaret_f'+msg_id+'(this);" onkeyup="storeCaret_f'+msg_id+'(this);" '+
						d.getElementById('cbody'+msg_id).appendChild(editForm);
					}
					
					
					left_symbol_text = max_msg_body-text_msg.length;
						if (left_symbol_text<4) {left_symbol_text = '<font color=red>'+left_symbol_text+'</font>';}
			
					d.getElementById("editForm_" + msg_id).innerHTML=
				    '<form name="f'+msg_id+'" method="POST" action="db_input.php">'+
					text_input+
				    '<table width="100%" cellspacing="5" cellpadding="2"><tbody><tr><td>'+
					'<textarea style="width: 100%;" maxlength="512" rows="4" name="msg_body" class="textinput" id="textarea_'+msg_id+'">'+
					text_msg+
					'</textarea><div class="left_symbol">Осталось&nbsp;символов:&nbsp;<span>'+left_symbol_text+'</span></div>'+
					'</td><td width="50">'+
				    '<input type="submit" class="comment_button" name="submit" value="'+ok+'" />'+
					'</td></tr>	</tbody></table>'+
					'<div class="centered" id="smiles"><div class="smiles_box" style="width:485px;display:none;">'+
					'<IMG SRC = "core/smiles/smiles2_1.gif" USEMAP = "#'+msg_id+'">'+
					'<MAP NAME="'+msg_id+'" id="map_smiles">'+
					d.getElementById('map_smiles').innerHTML+
					'</MAP></div><div class="centered" id="format_button">'+
					d.getElementById('format_button').innerHTML.replace('add_message','textarea_'+msg_id)+'</div></div>'+
					'<input type="hidden" id="author_id'+ msg_id+'" name="author_id" value="'+author_id+'" />'+
					'<input type="hidden" id="msg_author'+ msg_id+'" name="msg_author" value="'+msg_author+'" />'+
				    '</form>';
			
$("textarea").keyup(function () {limitInputText(this,max_msg_body);});
$("textarea").change(function () {limitInputText(this,max_msg_body);});
}

function emoticon_post(obj,text) {
while (obj.parentNode.tagName!='FORM'){
obj=obj.parentNode;
}
var form_ = obj.parentNode.name;

        text = ' ' + text + ' ';
				d=obj.parentNode.msg_body;
        if (d.createTextRange && document.post.message.caretPos) {
                var caretPos = d.caretPos;
                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
                d.focus();
        } else {
                d.value  += text;
                d.focus();
        }
}

function storeCaret_(textEl) {
        if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}
function add_tags(str1, str2, obj)
{
   //var obj=document.getElementById("message");
   while (obj.parentNode.tagName!='FORM'){
obj=obj.parentNode;
}
//obj=document.getElementsByName(obj.parentNode.name);
do {obj=obj.parentNode} while ((obj.tagName!='FORM'));
obj=$(obj).find('textarea')[0];

if (str2=='[/url]') {
str1=prompt('Вставка ссылки в формате: [url=адрес_ссылки]выделенный текст[/url]. Введите или откорректируйте адрес ссылки:',str1);
if (str1 == null) {return ;}
str1='[url='+str1+']';
}
		
   obj.focus(); 
   if(document.selection && document.selection.createRange)// Internet Explorer
  {
	var sel = document.selection.createRange();
	if (sel.parentElement() == obj)  {sel.text = str1 + sel.text + str2;}
	
  }  
   else
   {
      var len = obj.value.length; 
      var start = obj.selectionStart; 
      var end = obj.selectionEnd; 
 
      var scrollTop = obj.scrollTop; 
      var scrollLeft = obj.scrollLeft; 
 
      var sel = obj.value.substring(start, end); 
      var rep = str1 + sel + str2; 
      obj.value =  obj.value.substring(0,start) + rep + obj.value.substring(end,len); 
 
      obj.scrollTop = scrollTop; 
      obj.scrollLeft = scrollLeft;    
   }
}

 function pageX(elem) {
        return elem.offsetParent ?
                elem.offsetLeft + pageX( elem.offsetParent ) :
                elem.offsetLeft;

 }
function NumSort(cell,n,dtype) {
	function NSort(a,b) {return a[0]-b[0]}
	function parseData(key)	{ return key.substring(0,10).split('.').reverse().join('.')+key.substring(11)}

	var tn = T.length; while (tn--) {if (T[tn].HeaderCells.index(cell)>=0) break};
	if (tn <0) return;
	var TT = T[tn];
	var desc = ($(cell).attr('class') == 'SCH_Asc');
	TT.HeaderCells.attr('class','SCH_None');
	$(cell).attr('class',desc? 'SCH_Desc':'SCH_Asc');
	var tarray=[], footer=[];
	var table = TT.Table.getElementsByTagName('TBODY')[0];
	var rows = table.getElementsByTagName('TR');
	var footidx = rows.length-TT.Frows; 
	for (var i=TT.Trows; i<footidx; i++) {
		tr = rows[i]; var key = 0;
		var td = tr.getElementsByTagName('TD');
		if (dtype==0) key = parseFloat(td[n].innerHTML.replace(/,/,'.'))
		else if (dtype==1) key = td[n].firstChild.innerHTML
		else if (dtype == 2) key = parseData(td[n].innerHTML);
		if(TT.Counter>=0) tarray.push(Array(key,tr,td[TT.Counter]))
		else tarray.push(Array(key,tr));
		//alert(td[n].innerHTML);
	}
	if (TT.Frows>0) footer = rows[i];
	var mi = tarray.length;
	var j=0;
	if (desc)
		while (mi--){
			row = tarray[mi][1];
			row.className = (j++%2==0)? TT.OddRowClass:TT.EvenRowClass;
			if (TT.Counter>=0) tarray[mi][2].innerHTML = j;
			if (TT.Frows>0) table.insertBefore(row,footer)
			else table.appendChild(row);
		}
	else{
		if (dtype ==0) aa = tarray.sort(NSort)
		else aa = tarray.sort();
		for (i=0;i<mi;i++){
			row = aa[i][1];
			row.className = (j++%2==0)? TT.OddRowClass:TT.EvenRowClass;
			if (TT.Counter>=0) aa[i][2].innerHTML = j;
			if (TT.Frows>0) table.insertBefore(row,footer)
			else table.appendChild(row);
		}
	}	
}
function prepare_Num_Sort(){		
		T=[];
	$('TABLE[sortable]').each(function(idx,DomEle){
	tbl = new Object();
		tbl.HeaderCells = $('.SCH_None,.SCH_Desc,.SCH_Asc',DomEle); 
		tbl.Table = DomEle;
	    tbl.Trows = parseInt(DomEle.getAttribute('titlerows'));
		tbl.Frows = parseInt(DomEle.getAttribute('footerrows'));
		tbl.Counter = parseInt(DomEle.getAttribute('counter'));
		rows = $('TR:lt('+String(tbl.Trows+2)+')',DomEle);
		tbl.OddRowClass = rows.eq(tbl.Trows).attr('class');
		tbl.EvenRowClass = rows.eq(tbl.Trows+1).attr('class');
		T[idx] = tbl;
	}) 	
}
function crea_Shadows(){
	//<<< создание теней у миниизображений 
	// $(".thumb").each(function (i) {
	// var inner=this.innerHTML;
				// var img=$(this).find('img');
				// var zoom2=img[0].src.replace('thumb_','');
				// var width=img.width()+18;
				// var zoom2_top=(120-img.height())/2-9;
				// var w=$(this).parent().width();
				// var zoom2_right=(w-width)/2;
				// $(this).replaceWith(
					// '<div class="thumb" style="width:'+width+'px;padding:0px;margin-left:'+zoom2_right+'px;"><DIV style="WIDTH: '+width+
					// 'px; margin-top:'+zoom2_top+'px;padding:0px;" class=wrap1>'+
					// '<DIV class=wrap2>'+
					// '<DIV class=wrap3>'+
					// '<DIV class=wrap4><a href="'+zoom2+'" class="zoom2" style="top:'+zoom2_top+
					// 'px; left:'+img.width()+'px;" title="'+img[0].title+'">+</a> '+inner+
					// '</DIV></DIV></DIV></DIV></div>');
					// $(".wrap4 a").css({padding:"0px",margin:"0px"});
		// })
		//создание теней у миниизображений  >>>		
}

function getSelText(){
        var txt = '';
        if (window.getSelection){
                txt = window.getSelection();
        }else if (document.getSelection){
                txt = document.getSelection();
        }else if (document.selection){
                txt = document.selection.createRange().text;
        }
        return txt;
}
function limitInputText(input,maxlen) {
	//maxlen = $('#max_msg_body').val();
	inputstr = input.value;
	strlen = inputstr.length;
		//alert(input);
	if (strlen > maxlen) {
		input.value = inputstr.substring(0, maxlen);
	}
		cnt_left = maxlen - input.value.length;
		if (cnt_left<4) {
		$(input).parent().find('.left_symbol span')[0].innerHTML = '<font color=red>'+cnt_left+'</font>';
		}
		else{
		$(input).parent().find('.left_symbol span')[0].innerHTML = cnt_left;}
	return true;
}
