/*
version = '3.7.003 2009-07-13'
*/
//
// Функции для работы jshttprequest
//

document.writeln('<scr' + 'ipt src="/comm/js/jshttprequest/jshttprequest.js" type="text/javascript"><\/scr' + 'ipt>');

var LoadingWhere = 1;

//
// формирование url для запроса
//
function makeurl(url,clas,func)
{
	if(!url)
	{
		var loc = String(document.location);
		url = (loc.indexOf('?') < 1) ? '/?id=1' : loc;
	}
	if(typeof(clas)!='undefined') url += '&clas=' + clas;
	if(typeof(func)!='undefined') url += '&func=' + func;
	return url;
}

//
// получение страницы (cur_id) с заданными стилями и вставка в указанный div
//
function jshttp_getmess(divadd, cur_id, template, style, cell, get, loadingdiv, loadingtext, loadingw)
{
	divadd = find_div_id(divadd);
	var url = makeurl('','jshttp','getmess');
	var datas = {
	'js_divadd'		: divadd,		// идентификатор div-а для вставки 
	'js_cur_id' 	: cur_id,		// идентификатор получаемого объекта
	'js_template'	: template,		// шаблон
	'js_style'		: style,		// стиль
	'js_cell'		: cell,			// список
	'js_get'		: get			// 1 - получение GET-способом, 0 - PHP-функциями
	};

	if(typeof(loadingdiv)!='undefined' && (iloadingdiv = document.getElementById(loadingdiv)) && (idivadd = document.getElementById(divadd)))
	{
		if(typeof(loadingtext)=='undefined')
			loadingtext = iloadingdiv.innerHTML;
		else
			loadingtext = '<div class="loading">' + loadingtext + '</div>';

		if(typeof(loadingw)=='undefined')
			loadingw = LoadingWhere;
		if(loadingw==-1)
			idivadd.innerHTML = iloadingdiv.innerHTML + idivadd.innerHTML;	//to top
		else if(loadingw==1)
			idivadd.innerHTML += iloadingdiv.innerHTML;						//to end
		else
			idivadd.innerHTML = iloadingdiv.innerHTML;						//replace
	}
	//alert(url);
	JsHttpRequest.query(url, datas, jshttp_getmess_res, false);
	return false;
}

//
// получение страницы по url с заданными стилями и вставка в указанный div
//
// loadingw=-1	- div loadingdiv с текстом loadingtext добавляем в начало концу div-а divadd
// loadingw=1	- div loadingdiv с текстом loadingtext добавляем к концу div-а divadd [по умолчанию]
// loadingw=2	- div loadingdiv с текстом loadingtext заменяем div divadd
// loadingw=0	- не вододим div loadingdiv
//
function jshttp_geturl(divadd, url, template, style, cell, loadingdiv, loadingtext, loadingw)
{
	divadd = find_div_id(divadd);
	if(divadd)
	{
		document.getElementById(divadd).setAttribute('saveurl',url,0);
	}
	url += '&template=' + ((typeof(template)!='undefined') ? template : 'main_post');
	if(typeof(style)!='undefined') url += '&style=' + style;
	if(typeof(cell)!='undefined') url += '&cell=' + cell;
	url += '&js_divadd=' + divadd;

	if(typeof(loadingdiv)!='undefined' && (iloadingdiv = document.getElementById(loadingdiv)) && (idivadd = document.getElementById(divadd)))
	{
		if(typeof(loadingtext)=='undefined')
			loadingtext = iloadingdiv.innerHTML;
		else
			loadingtext = '<div class="loading">' + loadingtext + '</div>';

		if(typeof(loadingw)=='undefined')
			loadingw = LoadingWhere;

		if(loadingw==-1)
			idivadd.innerHTML = loadingtext + idivadd.innerHTML;	//to top
		else if(loadingw==1)
			idivadd.innerHTML += loadingtext;						//to end
		else if(loadingw==2)
			idivadd.innerHTML = loadingtext;						//replace
		else
			;														//nothing
	}
	JsHttpRequest.query(url, null, jshttp_getmess_res, false);
	//alert(url);
	return false;
}


//
// получение контента из функции блока (block_id) и вставка в указанный div
//
function jshttp_getblock(divadd, url, block_id)
{
	divadd = find_div_id(divadd);
	url = makeurl(url,'jshttp','get_function_block');
	var datas = {
	'js_divadd'		: divadd,		// идентификатор div-а для вставки 
	'js_block_id' 	: block_id		// идентификатор текущего блока (откуда запустили функцию)
	};
	JsHttpRequest.query(url, datas, jshttp_getmess_res, false);
	return false;
}

function jshttp_getmess_res(result, errors)
{
	if(result && result['js_divadd'] && (idivadd = document.getElementById(result['js_divadd'])))
	{
		idivadd.innerHTML = result['js_info'];
		if(result['js_eval'])
		{
			eval(result['js_eval']);
			//alert(result['js_eval']);
		}
	}
}


//
// проверка на допустимость полей формы регистрации: name login и user_nick
//
function jshttp_checkfield(field,url)
{
	if(!field) return;
	url = makeurl(url,'jshttp','checkfield');
	var datas = new Array();
	datas[field.name] = field.value;
	datas['js_name']  = field.name;
	datas['js_value'] = field.value;
	datas['js_desc'] = field.getAttribute('description');
	if(!datas['js_desc'] && (desc = document.getElementById(field.name.replace('p__','d1__'))))
		datas['js_desc'] = desc.innerHTML;
	JsHttpRequest.query(url, datas, jshttp_checkfield_res, false);
}
function jshttp_checkfield_res(result, errors)
{
	var text1 = new Array();
	var text2 = new Array();
	text1["ru"] = 'Пользователь с таким "%s" уже существует';
	text1["en"] = 'User with this "%s" already exist';
	text2["ru"] = 'Заполните обязательное поле "%s"';
	text2["en"] = 'Fill required field  "%s"';
	var js_name = result['js_name'];
	var js_value = result['js_value'];
	var js_desc = result['js_desc'];
	
	if(result['js_err']==1)
	{
		document.getElementById(js_name).className += ' terbg';
		alert(text1[TG_site_lang].replace(/%s/,js_desc));
	}
	else if(js_value=='')
	{
		document.getElementById(js_name).className += ' terbg';
		alert(text2[TG_site_lang].replace(/%s/,js_desc));
	}
	else
	{
		document.getElementById(js_name).className = document.getElementById(js_name).className.replace(/ terbg/g,'');
	}
}

//
// если obj-объект, то ищет id ближайшего родительского div-а с id-м block_XXX
// если obj-строка, то возвращает ее
//
function find_div_id(obj)
{
	if(typeof(obj)=='object')
	{
		while(obj = obj.parentNode)
		{
			//if(obj.className && obj.className.indexOf('block_is') >= 0)
			//if(obj.id != "")
				//return obj.id;
			if(obj.id != "" && obj.id.indexOf('block_') >= 0)
				return obj.id;
		}
		return false;
	}
	return obj;
}



//
// тестовая
//
function test_select(form,field)
{
	//alert(form.name);
	//alert(field.name);

	var url = makeurl('','jshttp_test','test_select');
	var datas = new Array();
	datas['q'] = document.getElementById(form.name);
	datas['abc'] = 'abc';

	if(div = document.getElementById(field.name + '_diag'))
		div.innerHTML = 'loading';

	JsHttpRequest.query(url, datas, test_select_res, false);
	return false;
}
function test_select_res(result, errors)
{
	if(idivadd = document.getElementById('block_171'))
		idivadd.innerHTML = errors;
}
