function showhide(xxx){
	if (document.getElementById(xxx).style.display=="none"){
		document.getElementById(xxx).style.display=""; // block or table-row
	}else{
		document.getElementById(xxx).style.display="none";
	}
}
function show_div(xxx){
	document.getElementById(xxx).style.display=""; // block
}
function hide_div(xxx){
	document.getElementById(xxx).style.display="none";
}
function focus_by_id(xxx){
	document.getElementById(xxx).focus();
}
function wr_send_data(url){
	var wr_script_object=document.createElement("script");
	wr_script_object.src=url+'&js_rand='+Math.random();
	document.body.appendChild(wr_script_object);
	return false;
}
function play_sound(src){
	var wr_object=document.createElement("audio");
	wr_object.src=src;
	if(wr_object.canPlayType){
		wr_object.autoplay=1;
		document.body.appendChild(wr_object);
	}else{
		if (navigator.appName=='Microsoft Internet Explorer'){
			var wr_object=document.createElement("BGSOUND");
			wr_object.src=src;
			document.body.appendChild(wr_object);
			wr_object.parentNode.removeChild(wr_object);
		}else{
			var wr_object=document.createElement("EMBED");
			wr_object.src=src;
			wr_object.width=0;
			wr_object.height=0;
			wr_object.controls='smallconsole';
			wr_object.autostart=true;
			document.body.appendChild(wr_object);
		}
	}
}
function htmlspecialchars(html) { 
      html = html.replace(/&/g, "&amp;"); 
      html = html.replace(/</g, "&lt;"); 
      html = html.replace(/>/g, "&gt;"); 
      html = html.replace(/"/g, "&quot;"); 
      return html; 
}
function trim(s){
	s = s.replace( /^\s+/g, '');
	return s.replace( /\s+$/g, '');
}
function str_replace(subject, search, replace) {
    return subject.split(search).join(replace);
}
function del_quot(html) { 
      html = html.replace(/"/g, ''); 
	  html = html.replace(/'/g, ''); 
      return html; 
}

function is_ok_int_val(str) {
	return (str.search(/\d/)>=0 && str.search(/\D/)<0);
}
function gebi(xxx){
	return document.getElementById(xxx);
}
function number_format( number, decimals, dec_point, thousands_sep ) {
    var i, j, kw, kd, km;
    if( isNaN(decimals = Math.abs(decimals)) ){
        decimals = 2;
    }
    if( dec_point == undefined ){
        dec_point = ",";
    }
    if( thousands_sep == undefined ){
        thousands_sep = ".";
    }
    i = parseInt(number = (+number || 0).toFixed(decimals)) + "";
    if( (j = i.length) > 3 ){
        j = j % 3;
    } else{
        j = 0;
    }
    km = (j ? i.substr(0, j) + thousands_sep : "");
    kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
    kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");
    return km + kw + kd;
}
function get_view_time_as_text(view_time){
	if (!is_ok_int_val(view_time)) return '';
	out_text='';
	if (view_time>=3600){
		out_text=out_text+Math.floor(view_time/3600)+' ч. ';
		view_time=view_time-Math.floor(view_time/3600)*3600;
	}
	if (view_time>=60 || out_text){
		out_text=out_text+Math.floor(view_time/60)+' мин. ';
		view_time=view_time-Math.floor(view_time/60)*60;
	}
	if (!out_text || view_time>0){
		out_text=out_text+view_time*1+' сек.';
	}
	return out_text;
}

function slider(elemId, sliderWidth, range1, range2, step) {
	var knobWidth = 17;				// ширина и высота бегунка
	var knobHeight = 21;			// изменяются в зависимости от используемых изображений
	var sliderHeight = 21;			// высота slider'а

	var offsX,tmp;					// вспомагательные переменные
	var d = document;
	var isIE = d.all || window.opera;	// определяем модель DOM
	var point = (sliderWidth-knobWidth-3)/(range2-range1);
	// point - количество пикселей на единицу значения

	d.getElementById(elemId).firstChild.id=elemId+'_input';
	var out_input_id = elemId+'_input';

	var slider = d.createElement('DIV'); // создаем slider
	slider.id = elemId + '_slider';
	slider.className = 'slider';
	d.getElementById(elemId).appendChild(slider);

	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 не работает)
	while(tmp.tagName != 'BODY') {
		sliderOffset += tmp.offsetLeft;		// тут его и находим
		tmp = tmp.offsetParent;
	}

	if(isIE)						// в зависимости от модели DOM
	{								// назначаем слушателей событий
		knob.onmousedown = startCoord;
		slider.onmousedown = startCoord;
		d.onmouseup = endCoord;
	}
	else {
		knob.addEventListener("mousedown", startCoord, true);
		slider.addEventListener("mousedown", startCoord, true);
		d.addEventListener("mouseup", endCoord, true);
	}


	function setValue(x)	// установка по пикселям
	{
		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(out_input_id).value = getValue();	// это вывод значения для примера
	}
	function setValue2(x)	// установка по значению
	{
		if(x >= range1 && x <= range2)
		{
			setValue((x-range1)*point);
			d.getElementById(out_input_id).value = getValue();
		}
	}

	function getValue()
	{return Math.round(parseFloat(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);
	}

	function startCoord(e) {
		sliderClick(e)
		if(isIE) {
			offsX = event.clientX - parseInt(knob.style.left);
			slider.onmousemove = mov;
		}
		else {
			slider.addEventListener("mousemove", mov, true);
		}
	}

	function mov(e)	{
		var x;
		if(isIE) x = event.clientX-offsX;
		else x = e.pageX-sliderOffset-knobWidth/2;
		setValue(x);
		return false;
	}

	function endCoord()	{
		if(isIE) slider.onmousemove = null;
		else slider.removeEventListener("mousemove", mov, true);
	}

	// объявляем функции setValue2 и getValue как методы класса
	this.setValue = setValue2;
	this.getValue = getValue;
	setValue2(d.getElementById(out_input_id).value);
}

function webm_teaser_block_actions_exchange(id){
	showhide('teaser_block_actions_show_links_'+id);
	showhide('teaser_block_actions_links_'+id);
	return false;
}

function webm_teaser_blocks_stat_show_hide(block){
	$('#'+block+' .webm_teaser_blocks_area td.hide_stat').toggle();
	$('#'+block+' .webm_teaser_blocks_area tr.hide_stat').toggle('normal');
	$('#'+block+' .webm_teaser_blocks_area .show_stat').toggle();
	$('#'+block+' .webm_short_teaser_blocks td').toggleClass('with_border');
	$('#'+block+' .webm_short_teaser_blocks th').toggleClass('with_border');
	$('#'+block+' .webm_short_teaser_blocks table').toggleClass('whith_margin');
}

function wr_ajax_send_data(URL, post_req){
    if (window.XMLHttpRequest){
        var request = new XMLHttpRequest();
        request.onreadystatechange = wr_ajax_StateChange;
        request.open((post_req? "POST": "GET"), URL, true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        request.send(post_req);
    } else if (window.ActiveXObject) {
        var request = new ActiveXObject("Microsoft.XMLHTTP");
        if (request) {
			request.onreadystatechange = wr_ajax_StateChange;
            request.open((post_req? "POST": "GET"), URL, true);
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            request.send(post_req);
        }
    }
	function wr_ajax_StateChange(){
		if (request.readyState == 4 && request.status == 200){
			eval(request.responseText);
		}
	}
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}
function setCookie(name, value, lifetime_sec){
	var expiresDate = new Date();
	expiresDate.setTime(expiresDate.getTime()+lifetime_sec*1000);
	document.cookie=name+"="+escape(value)+"; path=/; expires="+expiresDate.toGMTString()+";";
}

function rand(min, max) {
	if(max) {
		return Math.floor(Math.random() * (max - min + 1)) + min;
	} else {
		return Math.floor(Math.random() * (min + 1));
	}
}

function get_unixtime(){
	var foo = new Date;
	var unixtime = parseInt(foo.getTime() / 1000);
	return unixtime;
}

function internal_mail_timeout_check_new_message(){
	var curr_val=getCookie('last_internal_mail_update_time');
	if ((curr_val? curr_val: 0)<=get_unixtime()-20-rand(1,10)){
		setCookie('last_internal_mail_update_time', get_unixtime(), 60);
		wr_ajax_send_data('/?any_header&internal_mail_timeout_check_new_message');
	}
	if (getCookie('internal_mail_red_mode')){
		jQuery('#support_online').addClass('new_mess');
	}else{
		jQuery('#support_online').removeClass('new_mess');
	}
}

/*
$(document).ready(function() {
	if ($('table.rotation_paint > tbody > tr:even')){
		$('table.rotation_paint > tbody > tr:even').css('background-color', '#F8F8F8');
	}
});
*/
