
function hkObj(id) {
	return document.getElementById(id);
}


function hkPopupWindow(url,width,height,scroll) {
	var popUpWin = 0;
	
	if (scroll==null) scroll=false;
	
	if(popUpWin) {
		if(!popUpWin.closed) popUpWin.close();
	}

	var left = (screen.width/2) - width/2;
  	var top = (screen.height/2) - height/2;
  	var scrolling = (scroll)?'yes':'no';

	popUpWin = open(url, '', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars='+scrolling+',resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
	popUpWin.focus();
}


function hkToggleBlockDisplay(id) {
	var obj = hkObj(id);
	if (obj && obj.style) {
		if (obj.style.display=='none') obj.style.display = '';
		else obj.style.display = 'none';
	}
}

function hkShowBlock(id) {
	var obj = hkObj(id);
	if (obj) {
		obj.style.display = '';
	}
}

function hkHideBlock(id) {
	var obj = hkObj(id);
	if (obj) {
		obj.style.display = 'none';
	}
}

function hkRound(rnum, rlength)
{
	return Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
}

function hkFormatNumber(round, rlength)
{
	if (round - Math.floor(round) == 0) 
	{
		round = round + ".00";
	}
	else
	{
		var string = round.toString();
		var parts = string.split(".");
		var cents = parts[1];

		if (cents.length < rlength) 
		{
			for (var i=0; i<rlength-cents.length ;  i++)
			{
				round += "0";
			}
		}
		

	}
	return round;
}

function showImage(what,w,h,root,title) {
	var scroll=0;
	if (w>screen.width) {
		w=screen.width;
		scroll=1;
	}
	if (h>screen.height) {
		h=screen.height;
		scroll=1;
	}

	var left = (screen.width/2) - w/2;
  	var top = (screen.height/2) - h/2;

	var opt='toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+scroll+',height='+h+',width='+w+',top='+top+',left='+left;
	
	var titleAdd = '';
	if (title) {
		titleAdd = '&title='+escape(title);
	}
	
	var wnd= window.open(root+'showimage.php?name='+what+titleAdd,'',opt);
	wnd.focus();
}

function hkParseInt(str)
{
	var number = parseInt(str);
	if (isNaN(number)) number = -1;
	return number;
}

function hkParseFloat(str)
{
	var number = parseFloat(str);
	if (isNaN(number)) number = -1;
	return number;
}

function hkStripTags(strMod)
{
    if(arguments.length<3) strMod=strMod.replace(/<\/?(?!\!)[^>]*>/gi, '');
    else
	{
        var IsAllowed=arguments[1];
        var Specified=eval("["+arguments[2]+"]");
        if(IsAllowed)
		{
            var strRegExp='</?(?!(' + Specified.join('|') + '))\b[^>]*>';
            strMod=strMod.replace(new RegExp(strRegExp, 'gi'), '');
        }
		else
		{
            var strRegExp='</?(' + Specified.join('|') + ')\b[^>]*>';
            strMod=strMod.replace(new RegExp(strRegExp, 'gi'), '');
        }
    }
    return strMod;
}



function hkAlertObjProps(obj, showValues) 
{
	var buf = '';
	for (var prop in obj) 
	{
		buf += ' ' + prop;
		if (showValues) buf += '=' + obj[prop] + ' '
	}
	alert(buf);
}


var bestAutoGroupId = null;
function hkHomeBestAuto(id)
{
	if (bestAutoGroupId)
	{
		//remove old
		jQuery('#idBestVersions'+bestAutoGroupId).hide();
		jQuery('#idBestLi'+bestAutoGroupId).removeClass('selected');
	}

	//show new
	jQuery('#idBestVersions'+id).show();
	jQuery('#idBestLi'+id).addClass('selected');
	
	//remember selected
	bestAutoGroupId = id;
}

function hkHomeSubscribe()
{
	var email = jQuery.trim(jQuery('#idEmail').val());
	if (/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/i.test(email))
	{
		jQuery.ajax({
			cache: false,
			url:   hkBaseUri + 'subscribe',
			type:  'POST',
			data:  {email: email},
			dataType: 'html',
			timeout:  5000,
			error: function(){
				alert('Нет связи с сервисом, пожалуйста, попробуйте ещё раз!');
			},
			success: function(html){
				alert('Ваш email адрес добавлен в рассылку!');
				jQuery('#idEmail').val('E-mail');
			}
		});
		
	}
	else
	{
		alert('Пожалуйста, заполните email адрес правильно!');
		jQuery('.subscribe-block #idEmail').focus();
	}

	return false;
}

function hkModelAutoSubscribe(form)
{
	var email = jQuery.trim(form.email.value);
	if (/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/i.test(email))
	{
		jQuery.ajax({
			cache: false,
			url:   hkBaseUri + 'subscribe/auto_version',
			type:  'POST',
			data:  {email: email, version_id: form.version_id.value},
			dataType: 'html',
			timeout:  5000,
			error: function(){
				alert('Нет связи с сервисом, пожалуйста, попробуйте ещё раз!');
			},
			success: function(html){
				alert('Ваш email адрес добавлен в рассылку!');
				jQuery('#idEmailAutoNewsletter').val('E-mail');
			}
		});
		
	}
	else
	{
		alert('Пожалуйста, заполните email адрес правильно!');
		jQuery('#idEmailAutoNewsletter').focus();
	}

	return false;
}

function hkModelMotoSubscribe(form)
{
	var email = jQuery.trim(form.email.value);
	if (/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/i.test(email))
	{
		jQuery.ajax({
			cache: false,
			url:   hkBaseUri + 'subscribe/moto_version',
			type:  'POST',
			data:  {email: email, version_id: form.version_id.value},
			dataType: 'html',
			timeout:  5000,
			error: function(){
				alert('Нет связи с сервисом, пожалуйста, попробуйте ещё раз!');
			},
			success: function(html){
				alert('Ваш email адрес добавлен в рассылку!');
				jQuery('#idEmailMotoNewsletter').val('E-mail');
			}
		});
		
	}
	else
	{
		alert('Пожалуйста, заполните email адрес правильно!');
		jQuery('#idEmailMotoNewsletter').focus();
	}

	return false;
}

function hkHomePoll()
{

	if (jQuery('#idPollForm input:radio:checked').length!=1)
	{
		alert('Пожалуйста, выберите вариант ответа!');
		return false;
	}

	return true;
}

var hkHomeTab = function()
{
	this.tabs = new Array('idTabNews', 'idTabArticles', 'idTabActions');
	this.selected = 'idTabNews';
}

hkHomeTab.prototype.render = function()
{
	for(var i=0; i<this.tabs.length; i++)
	{
		var id = this.tabs[i];
		jQuery('#'+id).removeClass('selected');
		jQuery('#'+id+'Content').hide();
	}

	jQuery('#'+this.selected).addClass('selected');
	jQuery('#'+this.selected+'Content').show();
}

hkHomeTab.prototype.mOver = function(obj)
{
	var id = jQuery(obj).parent().attr('id');
	if (id==this.selected) return;

	jQuery('#'+id).addClass('selected');
}

hkHomeTab.prototype.mOut = function(obj)
{
	var id = jQuery(obj).parent().attr('id');
	if (id==this.selected) return;

	jQuery('#'+id).removeClass('selected');
}

hkHomeTab.prototype.click = function(id)
{
	this.selected = id;
	this.render();
}

var hkHT = new hkHomeTab();

var hkLeftMenu = function()
{
	this.tabs = new Array();
	this.selected = null;

	this.moverClass = '';
}

hkLeftMenu.prototype.init = function()
{
	var selfLM = this;
	jQuery('ul.view-subnav li').each(function(i){
		var id = jQuery(this).attr('id');
		if (jQuery('#'+id+' div.nv-link strong.hr').length>0)
		{
			selfLM.selected = id;
		}
	});
}

hkLeftMenu.prototype.render = function()
{
	for(var i=0; i<this.tabs.length; i++)
	{
		var id = this.tabs[i];
		jQuery('#'+id).removeClass('selected');
		jQuery('#'+id+'Content').hide();
	}

	jQuery('#'+this.selected).addClass('selected');
	jQuery('#'+this.selected+'Content').show();
}

hkLeftMenu.prototype.mOver = function(obj)
{
	if (!this.selected) this.init();

	var id = jQuery(obj).attr('id');
	if (id==this.selected) return;
	
	this.moverClass = jQuery('#'+id).attr('class');
	jQuery('#'+id).attr('class', 'type1-nv');
	jQuery('#'+id).addClass('pointer');
}

hkLeftMenu.prototype.mOut = function(obj)
{
	if (!this.selected) this.init();

	var id = jQuery(obj).attr('id');
	if (id==this.selected) return;
	
	jQuery('#'+id).attr('class', this.moverClass);
}

hkLeftMenu.prototype.click = function(obj)
{
	if (!this.selected) this.init();

	var id = jQuery(obj).attr('id');
	if (id==this.selected) return;
	
	var link = jQuery('#'+id+' div.nv-link a').attr('href');
	var target = jQuery('#'+id+' div.nv-link a').attr('target');
	if (target=='_blank') window.open(link);
	else location.href = link;
}

var hkLM = new hkLeftMenu();


var hkTabMenu = function()
{
	this.tabs = new Array();
	this.selected = null;
}

hkTabMenu.prototype.init = function()
{
	var selfTM = this;
	jQuery('ul.tabmenu li').each(function(i){
		var id = jQuery(this).attr('id');
		if (jQuery('#'+id+'.selected').length>0)
		{
			selfTM.selected = id;
		}
	});

}

hkTabMenu.prototype.mOver = function(obj)
{
	if (!this.selected) this.init();

	var id = jQuery(obj).attr('id');
	if (id==this.selected) return;
	
	this.moverClass = jQuery('#'+id).attr('class');
	jQuery('#'+id).addClass('pointer').addClass('selected');
}

hkTabMenu.prototype.mOut = function(obj)
{
	if (!this.selected) this.init();

	var id = jQuery(obj).attr('id');
	if (id==this.selected) return;
	
	jQuery('#'+id).removeClass('selected');
}

hkTabMenu.prototype.click = function(obj)
{
	if (!this.selected) this.init();

	var id = jQuery(obj).attr('id');
	if (id==this.selected) return;
	
	var link = jQuery('#'+id+' a').attr('href');
	var target = jQuery('#'+id+' a').attr('target');
	if (target=='_blank') window.open(link);
	else location.href = link;
}

var hkTM = new hkTabMenu();


var hkFinanceMenuTimer = null;

function HkFinanceMenuTimerStop()
{
	clearTimeout(hkFinanceMenuTimer);
}

function HkFinanceMenuTimerStart()
{
	hkFinanceMenuTimer = setTimeout("HkFinanceMenuHide()", 1000);
	HkAutoBazarMenuHide();
	HkServicesMenuHide();
}

function HkFinanceMenuHide()
{
	HkFinanceMenuTimerStop();
	jQuery('#idFinanceMenu').hide();
}


var hkAutoBazarTimer = null;

function HkAutoBazarMenuTimerStop()
{
	clearTimeout(hkAutoBazarTimer);
}

function HkAutoBazarMenuTimerStart()
{
	hkAutoBazarTimer = setTimeout("HkAutoBazarMenuHide()", 1000);
	HkFinanceMenuHide();
	HkServicesMenuHide();
}

function HkAutoBazarMenuHide()
{
	HkAutoBazarMenuTimerStop();
	jQuery('#idAutoBazarMenu').hide();
}

var hkServicesMenuTimer = null;

function HkServicesMenuTimerStop()
{
	clearTimeout(hkServicesMenuTimer);
}

function HkServicesMenuTimerStart()
{
	hkServicesMenuTimer = setTimeout("HkServicesMenuHide()", 1000);
	HkAutoBazarMenuHide();
	HkFinanceMenuHide();
}

function HkServicesMenuHide()
{
	HkServicesMenuTimerStop();
	jQuery('#idServicesMenu').hide();
}

jQuery(document).ready(function(){
	
	try
	{
		jQuery.ifixpng.pixel = 'img/0.gif';
		jQuery("img.iePNG").ifixpng();
	}
	catch (e) { }
	


	//detect version
	var ver = 0;
	var rez = swfobject.getFlashPlayerVersion();
	if (rez && rez.major)
	{
		ver = rez.major;
	}
	
	var flashvars = {};
	var params = { wmode: "opaque" };
	var attributes = {};

	if (ver>=9)
	{
		//add flash banners
		//swfobject.embedSWF(hkBaseUri + "flash/ifon.swf", "idBannerHomeLeft1", "240", "285", "9.0.0", "", flashvars, params, attributes);
		swfobject.embedSWF(hkBaseUri + "flash/zavodi3.swf", "idBannerHomeLeft2", "240", "350", "9.0.0", "", flashvars, params, attributes);
		
		swfobject.embedSWF(hkBaseUri + "flash/top4auto.swf", "idBannerInnerRight", "240", "350", "9.0.0", "", flashvars, params, attributes);

		//swfobject.embedSWF(hkBaseUri + "flash/f1.swf", "idBannerHomeRight1", "228", "134", "9.0.0", "", flashvars, params, attributes);
		//swfobject.embedSWF(hkBaseUri + "flash/garag.swf", "idBannerHomeRight2", "228", "134", "9.0.0", "", flashvars, params, attributes);
		swfobject.embedSWF(hkBaseUri + "flash/top2.swf", "idBannerHomeRight3", "228", "134", "9.0.0", "", flashvars, params, attributes);
		
		//swfobject.embedSWF(hkBaseUri + "flash/otziv_nov.swf", "idBannerHomeCenter1", "478", "80", "9.0.0", "", flashvars, params, attributes);

		//jQuery('#idBannerHomeCenter1Container').css('margin-bottom', '10px');
	} 
	else
	{
		//add alternative content
		var alt = '<span>Для просмотра блока нужен flash плейер.</span><p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>';
		var co = '#989696';
		var pa = '3px 4px 0 10px';
		var style = 'color:#989696;padding:3px 4px 0 10px';
		jQuery('#idBannerHomeLeft1').append(alt).css('color', co).css('padding', pa);
		jQuery('#idBannerHomeLeft2').append(alt).css('color', co).css('padding', pa);
		jQuery('#idBannerHomeRight1').append(alt).css('color', co).css('padding', pa);
		jQuery('#idBannerInnerRight').append(alt);
	}
	
	//inner banners
	var ib = new Array(
		{url: 'calculators/alkotester', src:'img/banners/alko.gif'},	
		{url: 'calculators/cost_of_ownership ', src:'img/banners/dengi.gif'},	
		{url: 'pdd', src:'img/banners/devki.gif'}
	);
	
	var randIdx = Math.ceil(ib.length * Math.random());
	randIdx--;
	var banner = ib[randIdx];
	$('#idFNABanner').html('<a href="' + hkBaseUri +  banner.url + '"><img src="' + hkBaseUri +  banner.src  + '" alt="" /></a>');
	
});

function UpdateContentFont(type)
{
	if (type=='big')
	{
		jQuery('#idContentArea').css('font-size', '16px');
	}
	else
	{
		jQuery('#idContentArea').css('font-size', '14px');
	}
}

var HkRateComment = function(type)
{
	this.url = hkBaseUri + 'rate_comment/';
	this.type = type;
	
	this.CheckAuth = function()
	{
		if (!hkIsLogged)
		{
			alert('Вы не можете проголосовать.\nПожалуйста, зарегистрируйтесь!');
			return false;
		}
		return true;
	}
	
	this.GetUrl = function()
	{
		var url = this.url;
		if (this.type==1) url += 'news';
		else if (this.type==2) url += 'article';
		else if (this.type==3) url += 'finance';
		
		return url;
	}
	
	this.DoComment = function(id, direction)
	{
		var url = this.GetUrl();
		
		jQuery.ajax({
			cache: false,
			url:   url,
			type:  'POST',
			data:  {id: id, direction: direction},
			dataType: 'json',
			timeout:  5000,
			error: function(){
				alert('Нет связи с сервисом, пожалуйста, попробуйте ещё раз!');
			},
			success: function(data){
				//if guest
				if (data.error=='unknown')
				{
					alert('Ошибка голосования!');
				}
				else if (data.error=='guest')
				{
					alert('Вы не можете проголосовать.\nПожалуйста, зарегистрируйтесь!');
				}
				else if (data.error=='self_comment')
				{
					alert('Нельзя оценивать свой комментарий!');
				}
				else if (data.error=='already_rated')
				{
					alert('Вы уже оценили этот комментарий!');
				}
				else if (data.error=='')
				{
					alert('Спасибо за оценку!');
					$('#idCR'+id).html(data.raiting);
				}
			}
		});
	}
}




function RateCommentUp(type, id)
{
	var hkRC = new HkRateComment(type);
	if (!hkRC.CheckAuth()) return;
	
	hkRC.DoComment(id, 'up');
}

function RateCommentDown(type, id)
{
	var hkRC = new HkRateComment(type);
	if (!hkRC.CheckAuth()) return;
	
	hkRC.DoComment(id, 'down');
	
}