/**
 * Вызов ajax-запроса для записи данных статистики
 *
 * @param string type Тип запроса: 'display' - для вызова по событию onload документа и фиксирования показов, 'click' - для вызова по событию onclick ссылки
 * @param object element Элемент <a> при типе 'click'. При типе 'display' может быть не передан
 */
function doLoadStatistics(type, element)
{
	/**
	 * Регулярные выражения для разбора href ссылки и определения отправляемых данных
	 */
	var regexpView = /\/(vacancy|resume)\/view\/(\d+)\//i;
	var regexpCompany = /\/company\/([a-z_]+)\/((vacancy|resume)\/)?/i;

	/**
	 * Используемые классы ссылок, для определения источника ссылки
	 */
	var sourceClasses = ['statistics_top', 'statistics_hot', 'statistics_view', 'statistics_view_short'];

	/**
	 * Массив данных для отправки
	 */
	var data = [];

	/**
	 * Массив элементов после получения по имени класса
	 */
	var elements;

	/**
	 * Одна запись данных
	 */
	var row = {
		adv_type: null, // Тип объявления
		adv_id: null, // ID объявления
		org_linkname: null, // Linkname организации
		source: null // Источник ссылки
	};

	/**
	 * Проверить строку на соответствие регулярным выражениям и заполнить переменные данных
	 */
	var regExpMatch = function(str)
	{
		var matches = null;

		if( (matches = str.match(regexpView)) != null )
		{
			row.adv_type = matches[1];
			row.adv_id = matches[2];
			row.org_linkname = null;
			return true;
		}

		if( (matches = str.match(regexpCompany)) != null )
		{
			row.adv_type = (matches[3] != 'undefined' ? matches[3] : null);
			row.adv_id = null;
			row.org_linkname = matches[1];
			return true;
		}

		return false;
	}

	/**
	 * Объект для создания ajax-запроса
	 */
	var req = new Subsys_JsHttpRequest_Js();

	req.onreadystatechange = function()
	{
//		tId = setTimeout("returnTrue()", 5000);
//		if(req.readyState < 4) {clearTimeout(tId);}

		if( req.readyState == 2 )
		{
			if( type!='display'){window.location = element.href;}
		}

		/*if( req.readyState == 4 )
		{
			if(req.responseJS)
			{	if(req.responseJS.ok)
				{
				}
				else
				{
				}
			}
			document.getElementById('debug').innerHTML = req.responseText;
		}*/
	}

	/*--------------------------------*/

	/**
	 * Определяем что делать
	 */
	switch(type)
	{
		case 'display':
			/**
			 * Проход по всем классам
			 */
			for(var i=0; i<sourceClasses.length; i++)
			{
				elements = document.getElementsByClassName(sourceClasses[i]);
				row.source = sourceClasses[i].replace('statistics_', '');

				for(var j=0; j<elements.length; j++)
				{
					if( !regExpMatch(elements[j].href) )
					{	continue;
					}
					data.push({adv_type: row.adv_type, adv_id: row.adv_id, org_linkname: row.org_linkname, source: row.source});
				}
			}
		break;

		case 'click':
			if( !regExpMatch(element.href) )
			{	return;
			}
			row.source = element.className.match(/statistics_([a-z_]+)/i)[1];
			data.push({adv_type: row.adv_type, adv_id: row.adv_id, org_linkname: row.org_linkname, source: row.source});
//			alert(row.adv_type +' '+ row.adv_id +' '+ row.org_linkname +' '+ row.source);
		break;

		default: return;
	}

	if( data.length > 0 )
	{
		req.caching = false;
		req.open('POST', '/ajaxstatistics/', true);
		req.send({
			type: type,
			data: data
		});
	}

	//alert(req.readyState);

	return false;

}

//function returnTrue()
//{
//	alert('23423453');
//	return true;
//}