//jQuery.noConflict();

function gebi(id)
{
	var elm = document.getElementById(id);
	if(elm)
		return elm;
}

////////////////////
function doAjax(action, param) 
{
	if(param['isloading'] != false)IsLoading(true);
	param['action'] = action;
	if (param['backend_url']) var backend_url = param['backend_url'];
	else var backend_url = "/ajax.php";
	$.ajax({
		type: "POST",
		url: backend_url,
		data: param,
		dataType: "json",
		success: function(response) 
		{
			if (response) 
			{
				if(param['isloading'] != false)IsLoading(false);
				
				if (!response.js.action) 
					debug_message('Invalid response');
				else 
				{
					if(response.text) 
						debug_message(response.text);
					var func = response.js['response_func'] || 'action_response';
					eval(func+'(response.js)');
				}
			}
		}
	});
}
function debug_message(message) 
{
	if (!message) return;
	alert(message);
}
function action_response(response) 
{
	var obj = $('#'+response.dest_obj_id).html(response.text);
}
function action_eval_response(response) 
{
	eval(response.text);
}



function response_favorite(response)
{
	if(response.status == 1)
	{
		$('#'+response.dest_obj_id).attr('title', 'Добавить в избранное');
		$('#'+response.dest_obj_id+' img').attr('src', $('#'+response.dest_obj_id+' img').attr('src').replace("ico_del_fav.png", "ico_add_fav.png"));
	}
	else if(response.status == 2)
	{
		$('#'+response.dest_obj_id).attr('title', 'Удалить из избранного');
		$('#'+response.dest_obj_id+' img').attr('src', $('#'+response.dest_obj_id+' img').attr('src').replace("ico_add_fav.png", "ico_del_fav.png"));
	}
}

////////////////////
function IsLoading(is_visible)
{
	var elm = gebi('loading');
	if(!elm)return;
	if(!is_visible)
	{
		elm.style.display = "none";
		return;
	}
	
	var top = window.screen.availHeight / 3;
	var width = window.screen.availWidth;
	top += window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop;
	width += window.pageXOffset ? window.pageXOffset : document.documentElement.scrollLeft;
	elm.style.top = top + 'px';
	elm.style.left = width / 3 + 'px';
	elm.style.display = "block";
}
function ErrorCheck()
{
	var allert_message = "";
	var elm = document.forms['message'];
 	if(elm.elements['form[name]'])
 	{
 		if(!elm.elements['form[name]'].value)
  			allert_message += "<li>Нужно написать имя.</li>";
  		if(elm.elements['form[name]'].length > 25)
  			allert_message += "<li>Слишком длинное имя. Не больше 25 символов</li>";
  	}
 	if(elm.elements['form[text]'])
 	{
 		if(!elm.elements['form[text]'].value)
  			allert_message += "<li>Нужно написать текст сообщения.</li>";
  		if(elm.elements['form[text]'].length >= 255)
  			allert_message += "<li>Слишком длинный текст. Не больше 1000 символов</li>";
  	}
  	if(elm.elements['form[code]'] && !elm.elements['form[code]'].value)
  		allert_message += "<li>Нужно ввести код.</li>";


	if(!allert_message)document.forms['message'].submit();
	else
	{
		var error = gebi('error');
		if(error)
		{
			error.style.display = 'block';
			error.innerHTML = '<ul>'+allert_message+'</ul>';
		} 
		
	}
}

function pr(text, elm)
{
	if (typeof(elm) == "undefined" || elm == null) return '';

 	elm.focus();

 	if(elm.createTextRange)
 	{
  		document.selection.createRange().text += text;
 	}
 	else if(elm.setSelectionRange)
 	{
  		var len = elm.selectionEnd;
  		elm.value = elm.value.substr(0, len) + text + elm.value.substr(len);
  		elm.setSelectionRange(len + text.length, len + text.length);
 	}
 	else
 	{
  		elm.value += text;
 	}
}
function AnswerComment(id)
{
	var form = document.forms['message'];
	
	$('a[name=comment'+id+']').next().after($('#addcomment'));
	$('#close_addcomment').show('slow');
	
	form.elements['form[parent_id]'].value = id;
	form.elements['form[text]'].focus();
	
	$('#close_addcomment > a').click(function () {
		$('a[name=addcomment]').after($('#addcomment'));
		$('#close_addcomment').hide('slow');
		form.elements['form[text]'].focus();
		return false;
	});
}
function SetStarVote(star, oldstar)
{
	for(var i = 1; i <= 5; i++)
	{
		var elm = gebi('star' + i);
		if(!elm)continue;
		var num = elm.src.substring(elm.src.length - 5, elm.src.length - 4);
		if(star >= i)
		{
			elm.src = elm.src.replace('star'+num, 'star4');
		}
		if(oldstar >= 0)
		{
			if(oldstar >= i)
				num = 1;
			else if(oldstar < i && oldstar > i-1)
				num = 2;
			else
				num = 3;
			elm.src = elm.src.replace('star4', 'star'+num);
		}
	}
}
function max_length_elm(node, length)
{
	if(!node)return false;
	var elm = jQuery("[name='"+jQuery(node).attr('name')+"']");
	if(elm.val().length > length)
	{
		elm.val(elm.val().substring(0, length));
	}
}
function max()
{
	var max = 0;
	for(var i = 0; i < arguments.length; i++)
		if(arguments[i] > max)
			max = arguments[i];
	return max;
}
function isNumber(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber = true;
	var Char;
	
	if (!sText)return IsNumber;
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) 
		{
			IsNumber = false;
		}
	}
	return IsNumber;
}
function doGetCaretPosition (ctrl) 
{
    var CaretPos = 0;
    // IE Support
    if (document.selection) 
	{
        ctrl.focus ();
        var Sel = document.selection.createRange ();

        Sel.moveStart ('character', -ctrl.value.length);
        CaretPos = Sel.text.length;
    }
    // Firefox support
    else if (ctrl.selectionStart || ctrl.selectionStart == '0')
        CaretPos = ctrl.selectionStart;

    return CaretPos;
}

function setCaretPosition (ctrl, pos)
{
    if(ctrl.setSelectionRange)
    {
        ctrl.focus();
        ctrl.setSelectionRange(pos,pos);
    }
    else if (ctrl.createTextRange) 
	{
        var range = ctrl.createTextRange();
        range.collapse(true);
        range.moveEnd('character', pos);
        range.moveStart('character', pos);
        range.select();
    }
}

/**
* params
*	skip_empty_checkbox - пропускать ли не выбранные чекбоксы
*	val_checkbox - брать ли значение из чекбокса
*	params - доп параметры
*	not_bind_click - не использовать привязку к событию
*/
function handlerAjaxOptions(form_selector, action_ajax, do_ajax, params)
{
	var handler = function()
	{
		var form_params = new Array();
		var val;
		if (params['params'] != undefined)
		{
			for (key in params['params'])
			{
				form_params[form_params.length] = new Array(key, params['params'][key]); 
			}
		}
		
		$(form_selector+' input, '+form_selector+' select').each(function() {
			var elm = $(this);
			if (elm.context.nodeName == 'INPUT')
			{
				if (elm.attr('type') == 'checkbox')
				{ 
					if (!elm.attr('checked'))
					{
						if (params['skip_empty_checkbox'] == true) return;
						val = -1;
					}
					else val = (params['val_checkbox'] == true ? elm.val() : 1);
				}
				else val = elm.val();
			
			}
			else if (elm.context.nodeName == 'SELECT')
			{
				val = $('option:selected', elm).val();
			}
			form_params[form_params.length] = new Array(elm.attr('name'), val); 
		});
		doAjax(action_ajax, {'do':do_ajax,'params':form_params});return false;
	}
	
	if (params['not_bind_click'] != true) $(form_selector+' input[name=submit]').bind('click', handler);
	
	return handler;
}


function getNewLS()
{
	doAjax('getNewLS', {'do':'user','isloading':false});
	setTimeout('getNewLS()', 180000);
}
function print_r(arr)
{
	var div = '<div style="position:fixed;padding:4px;background-color:#fff;font-size:12px;color:#000;border:1px solid #000;width:99%;height:200px;overflow:auto;left:1px;right:1px;bottom:0px;" id="debug_print_r"></div>';
	$('#debug_print_r').remove();
	$('body').append(div);
	
	var html = '';
	for (var key in arr)
	{
		html += 'Array['+key+'] = '+arr[key]+'<br />'; 
	}
	$('#debug_print_r').html(html);
}


sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
			$('#nav li.sfhover ul').css('left', '0px');
			this.style.zIndex=200; //this line added to force flyout to be above relatively positioned stuff in IE
		}
		sfEls[i].onmouseout=function() {
			$('#nav li.sfhover ul').css('left', '-999em');
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
