/**
 * @include  "d:/www/_common/js/js_common.js"
 * @include  "d:/www/_common/js/ajaqs_sender.js"
 * @include  "d:/www/_common/js/events.js"
 * @include  "d:/www/_common/js/fh_helper.js"
 * @include  "_p_messages.js"
 * @include  "_p_scripts.js"
 */

/**
 * 
 */
addEvent(window, 'load', prodaem_onload);
addEvent(window, 'resize', prodaem_onresize);

/**
 * при старте страницы - запуск подсказок, привязка обработчиков к кнопкам
 *
 * @return void
 */
function prodaem_onload()
{
	id('txtSearch').onfocus = search_focus;
	id('txtSearch').onblur  = search_blur;
	id('cmdSearch').onclick = CheckSearchForm;
	id('cmdFilter').onclick = CheckFilterForm;
	id('cmdLogin').onclick  = CheckLoginForm;
	id('cmdPoll').onclick   = MakeVote;

	if (p_obj.isLocal) p_obj.region = 'mk';
	region_onload();

	prodaem_clicker();

	prodaem_onresize();

	var loSiteHelper = new fh_helper_class();
	loSiteHelper.marginLeft = 150;
	loSiteHelper.hover_runner(poSiteTargets);
}

/**
 * подправляет надписи к некоторым полям ввода с учетом региона сайта
 * 
 * @return void
 */
function region_onload()
{
	if (p_obj.region=='developer'  ||  p_obj.region=='ukraine')
	{
			//	ничего дополнять не нужно
	}
	else	//	для регионов нужно дополнение
	{
		switch(p_obj.region)
		{
			case 'lviv':
			case 'uz':
			case 'if':
			case 'vn':
			case 'km':
			case 'te':
			case 'rv':
				p_obj.lang = 'ua';	//	Украинский для этих регионов
				break;
		}

		if (p_obj.lang == 'ua')
		{
			ukrainize();
/*			
			p_msg = p_msg_ua;
			poSiteTargets = poSiteTargets_ua;
			poRegFormTargets = poRegFormTargets_ua;
			poAddFormTargets = poAddFormTargets_ua;
			poSklerozTargets = poSklerozTargets_ua;
			pcRegAddTemplate = pcRegAddTemplate_ua;
			NotFoundMSG = NotFoundMSG_ua;
*/
		}

		var lcRName = poRegNames.rp[p_obj.region].replace(' ', '&nbsp;');
		var lcAdd = pcRegAddTemplate.replace('%%REGION_NAME%%', lcRName);
		poAddFormTargets.txtPCity += lcAdd;
		poRegFormTargets.txtCity += lcAdd;
	}
}

/**
 * насильственный украинизатор
 * заменяет переменные с русским текстом украинским
 * @return
 */
function ukrainize()
{
	poSuggesterPost.NotFoundMSG = NotFoundMSG_ua;
	poSuggesterReg.NotFoundMSG = NotFoundMSG_ua;

	p_msg = p_msg_ua;
	poSiteTargets = poSiteTargets_ua;
	poRegFormTargets = poRegFormTargets_ua;
	poAddFormTargets = poAddFormTargets_ua;
	poSklerozTargets = poSklerozTargets_ua;
	pcRegAddTemplate = pcRegAddTemplate_ua;

	oAjax.anim_text = p_msg_ua.ajax_wait_load;
}

/**
 * вызывается при изменении окна браузера
 *
 * @return void
 */
function prodaem_onresize()
{
	var lnFullW = id('pbody').clientWidth;

	var lnHelloW = id('header').clientWidth - id('main_logo').clientWidth - (document.all ? 60 : 40);
	style('hello', 'width', lnHelloW + 'px');

	var lnSideW = id('columnLeft').clientWidth;
	if (lnSideW < p_obj.side_width_min)
	{
		lnSideW = p_obj.side_width_min;
		style('columnLeft', 'width', lnSideW + 'px');
		style('columnRight', 'width', lnSideW + 'px');
	}
	if (lnSideW > p_obj.side_width_max)
	{
		lnSideW = p_obj.side_width_max;
		style('columnLeft', 'width', lnSideW + 'px');
		style('columnRight', 'width', lnSideW + 'px');
	}

	var lnCenterW = lnFullW - (lnSideW*2) - (document.all ? 50 : 22);

	style('columnContent', 'width', lnCenterW + 'px');
	style('columnContent', 'overflowX', 'hidden');

	var loMenu = id('main_menu');
	var loItems = loMenu.childNodes;

	var loBI = browserInfo();

	for (var i=0, lnWidth=0, lnML = 0, lnMR = 0, lnLen = loItems.length; i < lnLen; i++)
	{
		if (loBI.ie  ||  loBI.opera)
		{
			if (loBI.opera) lnMR = lnML = 10;
			if (loBI.ie) lnMR = lnML = 0;
		}
		else
		{
			lnML = parseInt(getStyle(loItems[i], 'margin-left'));
			lnMR = parseInt(getStyle(loItems[i], 'margin-right'));
		}
		lnWidth += parseInt(loItems[i].clientWidth) + lnML+lnMR;
	}

	if (document.all) lnWidth += 40;

	var lnParentW = loMenu.parentNode.clientWidth;
	var lnFirstMargin = parseInt(Math.floor(((lnParentW - lnWidth) / 2)) - 1);
	if (lnFirstMargin > 0) loMenu.style.marginLeft = lnFirstMargin + 'px';
}

/**
 * вызываем при фокусе поля поиска
 * очищаем поле поиска от подсказки
 * 
 * @return void
 */
function search_focus()
{
	var loObj = id('txtSearch');
	if (loObj.value == p_obj.search_help_text) loObj.value = '';
}

/**
 * вызываем при потере при выходе из поля поиска
 * если юзер ничего не ввел - возвращаем подсказку на место
 * 
 * @return void
 */
function search_blur()
{
	var loObj = id('txtSearch');
	if (loObj.value == '') loObj.value = p_obj.search_help_text;
}

/**
 * переспрашиваем и, если уверен, отправляем юзера на разлогинивание
 * (лучше б на обучение)
 * @return void
 */
function logout()
{
	if (!confirm('Уверены, что хотите выйти (разлогиниться)?')) return false;
	{
		window.location = p_obj.root + 'logout.html';
		return false;
	}
}

/**
 * проверка формы поиска
 * 
 * @return boolean - TRUE если с формой все Ок
 */
function CheckSearchForm()
{
	var loWord = id('txtSearch');
	var lcWord = loWord.value;

	lcWord = lcWord.replace('  ', '');

	if (lcWord==''  ||  lcWord==p_obj.search_help_text)
	{
		alert('Не указан текст для поиска');
		loWord.focus();
		return false;
	}

	if (lcWord.length < 4)
	{
		alert('Слишком короткое слово');
		loWord.focus();
		return false;
	}

	var laWords = lcWord.split(' ');
	if(laWords.length > 5)
	{
		alert('Слишком много слов для поиска');
		loWord.focus();
		return false;
	}

	for (var i =0; i < laWords.length; i++)
	{
		var lcCur = laWords[i];
		if (lcCur.length < 4)
		{
			alert('Слишком короткое слово');
			loWord.focus();
			return false;
		}
	}

	id('frmSearch').action = p_obj.root + 'search.html';
	id('frmSearch').submit();
	return true;
}

/**
 * проверка формы фильтра по городам
 * @return {Boolean} - TRUE если с формой все Ок
 */
function CheckFilterForm()
{
	var loCBO = id('cboCity');
	if(loCBO.value == 'none') { alert('Выберите город который Вам нужен'); loCBO.focus(); return false; }

	setCookie(p_obj.cookieCity, loCBO.value);	//	ставим куку
	var lcCityName = loCBO.options[loCBO.selectedIndex].innerHTML;
	setCookie(p_obj.cookieCity + '_name', lcCityName);	//	ставим куку
	window.location = window.location.href;			//	обновляем страницу
	return true;
}

/**
 * инициирует серверную проверку дублирования логина
 *
 * @return void
 */
function check_double_login()
{
	var loObj = id('txtULogin');
    if (loObj.value == "") return false; //  поле пустое - пропускаем

    oAjax.start("./check-double/", check_double_login_Response, [loObj.id]);
	return true;
}

/**
 * обрабатывает ответ сервера по дублированию логина
 * 
 * @return void
 */
function check_double_login_Response()
{
    var loMsg  = id('double_login');

    if (oAjax.responseObj.result == 'Ok') loMsg.innerHTML = '';
	else
	{
		loMsg.innerHTML = oAjax.responseObj.error;
		id('txtULogin').focus();
	}
}

function MakeVote()
{
	if (!xmlHttp)
    {
        alert('Невозможно связаться с сервером!\nГолосование невозможно');
        return false;        // запуск Аякса невозможен - пропускаем
    }

    var laList = id('poll_list').childNodes;

	for (var i=0, lnAnswer = -1; i < laList.length; i++)
	{
		if (laList[i].firstChild.tagName=='INPUT'  &&  laList[i].firstChild.checked)
		{
			lnAnswer = parseInt(laList[i].firstChild.id.replace('opbPollVar_', ''));
		}
	}

	if (lnAnswer == -1)
	{
		alert('Вы не выбрали вариант ответа!');
		return false;
	}

	var lcValue = 'txtAnswerID='+lnAnswer;
	id('cmdPoll').disable = true;	//	шоб не клацали
    oAjax.start('./make-vote/', MakeVote_Response, lcValue, true);
	return true;
}

function MakeVote_Response()
{
    id('cmdPoll').disable = false;	//	шоб клацали

    if (oAjax.responseObj  &&  oAjax.responseObj.result == 'Error')
    {
        alert(oAjax.responseObj.error);
        return true;
    }
	else
	{
		var lcMessage = 'Ваш голос засчитан';
		id('poll_content').innerHTML = oAjax.responseText + '<p>Вы уже голосовали</p>';;
		alert(lcMessage);
	    aska(lcMessage);
	}
	return true;
}

function show_poll_results()
{
	if (!xmlHttp)
    {
        alert('Невозможно связаться с сервером!\nПолучить данные невозможно');
        return false;        // запуск Аякса невозможен - пропускаем
    }

    oAjax.start('./get-vote/', show_poll_results_Response, 'txtID=1', true);
	return true;
}

function show_poll_results_Response()
{
    if (oAjax.responseText  &&  oAjax.responseText.length > 0)
    {
		id('poll_content').innerHTML = oAjax.responseText;
	}
	return true;
}

/**
 * 
 * @param {HTMLElement} loLink
 */
function show_pages_list(loLink)
{
	var loTarget = loLink;
	var loList =  loTarget.parentNode.lastChild;
	if (loList)
	{
		if (loList.style.display != 'block')	//	список невидим
		{
			loList.style.display = 'block';	//	показываем список
			loTarget.innerHTML = 'скрыть список страниц';

		}
		else	//	список видим
		{
			loList.style.display = 'none';	//	прячем список
			loTarget.innerHTML = 'показать список всех страниц';
		}
	}
}

function subsribe_need_login()
{
	alert('Подписаться на рассылку могут только зарегистрированные пользователи.');
}

function CheckLoginForm()
{
    var loForm  = id('frmLogin');
	var lcLogin = loForm.txtLogin.value;
	var lcPass  = loForm.txtPass.value;

	if (lcLogin==""  &&  lcPass  == "")
	{
		window.location = p_obj.root + 'reg.html';
		return false;
	}

	if (lcLogin == "") { alert('Не указан login!'); loForm.txtLogin.focus(); return false; }
	if (lcPass  == "") { alert('Не указан пароль!'); loForm.txtPass.focus(); return false; }

    if (!lcLogin.match(/[a-zA-Z0-9_]{4,10}/i)) { alert("Login должен состоять из цифр и/или латинских букв, и быть длиной от четырех до десяти символов!"); loForm.txtLogin.focus(); return false; };
	if (!lcPass.match(/[a-zA-Z0-9_]{4,10}/i)) { alert("Пароль должен состоять из цифр и/или латинских букв, и быть длиной от четырех до десяти символов!"); loForm.txtPass.focus(); return false; };

	if (!xmlHttp) return false;   // запуск Аякса невозможен - пропускаем

    oAjax.start('./check-login/', checkLoginResponser, ['txtLogin', 'txtPass']); //	инициирует проверку логина/пароля на сервере
	return false;
}

/**
 * обрабатывает ответ сервера
 * 
 * @return {Boolean}
 */
function checkLoginResponser()
{
	if (oAjax.responseObj.result == 'Ok') id("frmLogin").submit();
    else
    {
		if (oAjax.responseObj.tryleft <= 0)
		{
			alert(oAjax.responseObj.error);
			window.navigate(window.location.hostname);
		}
		else
		{
			alert(oAjax.responseObj.error + '\nосталось попыток - ' + oAjax.responseObj.tryleft);
		}
		return false;
    }
	return true;
}

/**
 * показывает или скрывает подрубрику на стартовой странице
 * 
 * @param {HTMLElement} toBtn - ссылка на кнопку по которой кликнули
 * @return void
 */
function show_start_subs(toBtn)
{
	var loSub = toBtn.parentNode.lastChild;

	if (loSub.style.display == 'block')
	{
		loSub.style.display = 'none';
		toBtn.innerHTML = p_obj.downSign;
	}
	else
	{
		loSub.style.display = 'block';
		toBtn.innerHTML = p_obj.upSign;
	}
}

function prodaem_clicker()
{
	var laLinks = hasClass('site', 'td');

	for (var i=0, lnLen = laLinks.length; i < lnLen; i++)
	{
		var lcText = laLinks[i].innerHTML;
		if (lcText.substring(0, 7).toLowerCase() != 'http://') lcText = 'http://' + lcText;
		laLinks[i].innerHTML = '<a href="'+ lcText +'" target="_blank" rel="nofollow">'+ lcText +'</a>';
	}
}

function get_site_path()
{
	return p_obj.root;
}
