var IE=(window.navigator.appName=="Microsoft Internet Explorer");

function js_set_event(element, eventName, handler)
{
	  if(element.addEventListener)
			element.addEventListener(eventName, handler, false);
	  else
		if(element.attachEvent)
			element.attachEvent('on' + eventName, handler);
}

//menu
function onload_menuhover()
{
	if(!document.getElementById("hmenu"))
		return;
	var lis = document.getElementById("hmenu").getElementsByTagName("LI");
	for (var i=0;i<lis.length;i++)
	{
		lis[i].onmouseover=function(){this.className+=" iehover";}
		lis[i].onmouseout=function() {this.className=this.className.replace(new RegExp(" iehover\\b"), "");}
	}
}

function onload_linkthis()
{
	var href=document.location.href;

	for(var i=0;i<document.links.length;i++)
	{
		if(document.links[i].className == "left" && href == document.links[i].href)
			document.links[i].className="this";
		if(document.links[i].className == "link" && href == document.links[i].href)
			document.links[i].className="this";
		if(document.links[i].className == "arrow" && href == document.links[i].href)
			document.links[i].className="arrowa";
	}
}

function ms_over(elem)
{
	if(!IE) return;
	if(elem.className)
	{
		elem.classNameSave=elem.className;
		elem.className=elem.className+'m';
	}
}

function ms_out(elem)
{
	if(!IE) return;
	if(elem.classNameSave)
		elem.className=elem.classNameSave;
}

function js_set_cookies(name,value,path,reload)
{
	var str=name+"="+value+"; domain="+document.domain+"; path="+path;
	document.cookie=str;
	if(reload)
		document.location.reload();
}

function js_set_cookies_noreload(name, value,expires)
{
	var today = new Date();
	var expires_date = new Date( today.getTime() + 1000*expires );
	var str=name+"="+value+"; expires=" + expires_date.toGMTString()+"; domain="+document.domain+"; path=/";
	document.cookie=str;
}

function js_get_cookies(name)
{
	if(document.cookie.length>0)
	{
		c_start=document.cookie.indexOf(name + "=")
		if(c_start!=-1)
		{
			c_start=c_start + name.length+1
			c_end=document.cookie.indexOf(";",c_start)
			if (c_end==-1) c_end=document.cookie.length
			return document.cookie.substring(c_start,c_end);
		}
	}
	return "";
}
function fstyle(name,style,value)
{
	if(document.getElementById(name))
		document.getElementById(name).style[style]=value;
}

function trim(str, charlist)
{
    return ltrim(rtrim(str, charlist), charlist);
}

function ltrim(str, charlist)
{
	if(!charlist)
		charlist = "\\s";
	return str.replace(new RegExp("^[" + charlist + "]+", "g"), "");
}

function rtrim(str, chars)
{
	if(!charlist)
		charlist = "\\s";
	return str.replace(new RegExp("[" + charlist + "]+$", "g"), "");
}

function number_format(number, decimals, dec_point, thousands_sep)
{
	var x = Math.round(number*Math.pow(10,decimals));
	var y = (''+Math.abs(x)).split('');
	var z = y.length - decimals;
	if(z<0) z--;

	for(var i=z; i<0; i++)
		y.unshift('0');
	if(!dec_point)
		dec_point='.';
	y.splice(z,0,dec_point);
	if(Math.abs(number)<1 && x)
		y.unshift('0');
	if(!thousands_sep)
		thousands_sep=" ";
	for(var i=z;i>3;i-=3)
		y.splice(i-3,0,thousands_sep);
	return ((x<0)?'-':'')+y.join('');
}

function c_backet()
{
	this.cookie='NULL';
	this.order_sum=0;
	this.field=0;
	this.cost=new Array();
	this.count=new Array();
	this.downcode=0;
	this.downnumb=0;
}

var backet=new c_backet();

c_backet.prototype.getfield = function()
{
	this.field++;
	return this.field;
}

c_backet.prototype.parse = function()
{
	var read=unescape(js_get_cookies('BACKET')),prod=read.split("|");
	for(var i=0;i<prod.length;i++)
	{
		var elem=prod[i].split("#");
		if(elem.length!=3 || elem[1]*1<=0)
			continue;
		this.cost[elem[0]]=elem[2]*1;
		this.count[elem[0]]=elem[1]*1;
	}
}

c_backet.prototype.number = function()
{
	var data=0;

	for(prod in this.count)
		if(this.count[prod]>0)
			data++;
	return data;
}

c_backet.prototype.sum = function()
{
	var data=0;

	for(prod in this.count)
		data+=this.count[prod]*this.cost[prod];
	this.order_sum=number_format(Math.round(100*data)/100.0, 2, '.',' ');
	return this.order_sum;
}

c_backet.prototype.elem = function(elem,code,cost)
{
	if(elem && elem.value)
		this.count[code]=elem.value*1;
	else
		this.count[code]=0;
	this.set(code,cost,this.count[code]);
	if(elem && elem.type && elem.type=="text")
		elem.value=this.count[code];
}

c_backet.prototype.set = function(code,cost,numb)
{
	this.count[code]=numb;
	this.cost[code]=cost;
	if(this.count[code]<0 || isNaN(this.count[code]))
		this.count[code]=0;
	var data="BACKET=";
	for(var prod in this.count)
		if(this.count[prod]>0)
			data+=prod+'#'+this.count[prod]+'#'+this.cost[prod]+'|';
	document.cookie=data+"; path=/";
}

c_backet.prototype.add = function(code,cost,numb,fnumb)
{
	if(!this.count[code])
		this.count[code]=0;
	this.count[code]=this.count[code]*1+numb*1;
	this.set(code,cost,this.count[code]);
	if(document.forms['PRODUCT'].elements['P_'+fnumb])
		document.forms['PRODUCT'].elements['P_'+fnumb].value=this.count[code];
}

c_backet.prototype.get = function(code)
{
	return (this.count[code]?this.count[code]*1:0);
}

c_backet.prototype.update = function()
{
	if(this.cookie==document.cookie)
	{
		setTimeout("backet.update()",500);
		return;
	}
	this.parse();
	this.cookie=document.cookie;
	if(document.getElementById('BACKET_COUNT'))
		document.getElementById('BACKET_COUNT').innerHTML=backet.number();
	if(document.getElementById('BACKET_SUMM'))
		document.getElementById('BACKET_SUMM').innerHTML=backet.sum() + ' грн';
	if(document.getElementById('SUMMALL'))
		document.getElementById('SUMMALL').innerHTML=backet.sum()+' грн';
	this.fill();
	setTimeout("backet.update()",500);
}

c_backet.prototype.fill = function()
{
	if(!document.forms['PRODUCT'])
		return;
	for(var i=0;i<document.forms['PRODUCT'].elements.length;i++)
	{
		var elem=document.forms['PRODUCT'].elements[i];
		if(elem.type=="text" && elem.getAttribute('prod'))
			elem.value=backet.get(elem.getAttribute('prod'));
	}
}

c_backet.prototype.onmousedown = function(code,cost,numb,fnumb,type)
{
	this.downtype=type;
	this.downcode=code;
	this.downnumb=numb;

	if(type)
		this.add(code,cost,numb,fnumb);
	else
		if(document.getElementById('N'+fnumb))
		{
			var count=document.getElementById('N'+fnumb).value*1 + 1*this.downnumb;
			if(count<0 || isNaN(count))
				count=0;
			document.getElementById('N'+fnumb).value=count;
		}

	setTimeout("backet.down("+fnumb+")",1000);
}

c_backet.prototype.onmouseup = function()
{
	this.downcode=0;
	this.downnumb=0;
	this.downtype=0;
}

c_backet.prototype.down = function(fnumb)
{
	if(this.downcode && this.downnumb)
	{
		if(this.downtype)
			this.add(this.downcode,this.cost[this.downcode],this.downnumb,fnumb);
		else
		{
			if(document.getElementById('N'+fnumb))
			{
				var count=document.getElementById('N'+fnumb).value*1 + 1*this.downnumb;
				if(count<0 || isNaN(count))
					count=0;
				document.getElementById('N'+fnumb).value=count;
			}
		}
		setTimeout("backet.down("+fnumb+")",200);
	}
}

function onload_backet()
{
	backet.update();
}

function js_add(code,cost,type)
{
	var data='',numb=backet.getfield();
	data+='<table class="null" border=0 cellpadding=0 cellspacing=1 width="80">';
	data+='<tr>';
	data+='<td><input type="hidden" name="H_'+numb+'" value="'+code+'"><input type="text" maxlength="8" class="order" prod="'+code+'" name="P_'+numb+'" + onchange="backet.elem(this,\''+code+'\','+cost+');" value="0"></td>';
	data+='<td><img style="cursor:pointer" src="/styles/white/minus.gif" title="Удалить 1 единицу из корзины" onmousedown="backet.onmousedown(\''+code+'\','+cost+',-1,'+numb+',1);" onmouseup="backet.onmouseup();"></td>';
	data+='<td><img style="cursor:pointer" src="/styles/white/plus.gif" title="Добавить 1 единицу в корзину" onmousedown="backet.onmousedown(\''+code+'\','+cost+',1,'+numb+',1);" onmouseup="backet.onmouseup();"></td>';
	if(type==1)
		data+='<td><img style="padding-left:10px;cursor:pointer" src="/styles/white/del.gif" title="Удалить товар из корзины" onclick="backet.set(\''+code+'\','+cost+',0); fadedel(\'ROW_'+code+'\',\'PRODTABLE\');"></td>';
	data+='</tr>';
	data+='</table>';
	document.write(data);
}

function js_add_prev(code,count)
{
	var data='',numb=backet.getfield();
	data+='<table class="null" border=0 cellpadding=0 cellspacing=1 width="80">';
	data+='<tr>';
	data+='<td><input type="hidden" name="H_'+numb+'" value="'+code+'"><input id="N'+numb+'" type="text" maxlength="8" class="order" prodprev="'+code+'" name="P_'+numb+'" + onchange="backet.elem(this,\''+code+'\',0);" value="'+count+'"></td>';
	data+='<td><img style="cursor:pointer" src="/styles/white/minus.gif" title="Удалить 1 единицу из корзины" onmousedown="backet.onmousedown(\''+code+'\',0,-1,'+numb+',0);" onmouseup="backet.onmouseup();"></td>';
	data+='<td><img style="cursor:pointer" src="/styles/white/plus.gif" title="Добавить 1 единицу в корзину" onmousedown="backet.onmousedown(\''+code+'\',0,1,'+numb+',0);" onmouseup="backet.onmouseup();"></td>';
	data+='</tr>';
	data+='</table>';
	document.write(data);
}

if(window.attachEvent)
	js_set_event(window, 'load', onload_menuhover);
js_set_event(window, 'load', onload_backet);
js_set_event(window, 'load', onload_linkthis);

function fadedel(id,pid)
{
	var elem;

	if(!(elem=document.getElementById(id)))
		return;
	if(!elem.opacityfilter)
	{
		elem.style.backgroundColor="#a0a0ff";
		elem.opacityfilter=1;
		elem.opacity=100;
	}
	opacity=elem.opacity
	if(elem.opacity > 0)
	{
		elem.opacity-=5;
		if(elem.filters && elem.filters.alpha)
			elem.filters.alpha.opacity = elem.opacity;
		else
		{
			elem.style.MozOpacity = elem.opacity/100;
			elem.style.opacity = elem.opacity/100;
		}
		setTimeout('fadedel("'+id+'","'+pid+'")', 50);
	}
	else
	{
		document.getElementById(pid).deleteRow(document.getElementById(id).rowIndex);
	}
}

function js_page_sort(elem)
{
	js_set_cookies('SORT',elem.options[elem.selectedIndex].value,'/',1);
}

var a_sort={
	rank:           'по рейтингу',
	name:           'по наименованию [а-я]',
	namedesc:       'по наименованию [я-а]',
	costdesc:       'по убыванию цены',
	cost:           'по возрастанию цены'
	};

function js_set_sort(elem)
{
	var id="divsortw";

	if(!document.getElementById(id))
	{
		div=document.createElement('DIV');
		document.body.appendChild(div);
	}
	else
		div=document.getElementById(id);
	if(!div)
		return;

	div.style.position='absolute';
	div.id=id;
	div.style.width=160;

	var x=offsetx(document.getElementById('divsort'));
	var y=offsety(document.getElementById('divsort'))+20
	var data="<table class=sort width=160 cellpadding=0 cellspacing=0>";
	for(var i in a_sort)
		data+="<tr><td onmouseover=\"this.className='hover';\" onmouseout=\"this.className='';\"  onclick='js_set_sort_click(this,\""+i+"\");'>"+a_sort[i]+"</td></tr>";
	data+="</table>";
	div.innerHTML=data;
	div.style.left=x;
	div.style.top=y;
	if(div.style.display!='block')
		div.style.display='block';
	else
	{
		div.style.display='none';
		return;
	}
}
function js_set_sort_click(elem,name)
{
	js_set_cookies('order',name, '/products/', 1);
	document.getElementById('divsort').innerHTML=elem.innerHTML;
}
function js_set_sort_out()
{
	document.getElementById("divsortw").style.display='none';
}

function onload_sort()
{
	if(!document.getElementById('divsort'))
		return;
	var order=js_get_cookies('order');
	if(!a_sort[order])
		order='costdesc';
	document.getElementById('divsort').innerHTML=a_sort[order];
}

js_set_event(window, 'load', onload_sort);

/**/
function getdiv(id)
{
	var div;

	if(!document.getElementById(id))
	{
		div=document.createElement('DIV');
		document.body.appendChild(div);
	}
	else
		div=document.getElementById(id);
	if(!div)
		return;
	div.id=id;
	div.style.position='absolute';
	div.innerHTML="";
	return div;
}

function bigimg_close()
{
	if(document.getElementById("bodydiv"))
		document.getElementById("bodydiv").style.display='none';
	if(document.getElementById("divbigimg"))
		document.getElementById("divbigimg").style.display='none';
}

function bidimg_set()
{
	if(document.getElementById('bifimgarea'))
	{
		var bh = document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
		var ht=20+30+50;
		var hi=bh-100-ht;
		var w=bigimage.width;
		var h=bigimage.height;
		if(h>w)
		{
			w=Math.round(w/(h/hi));
			h=hi;
		}
		document.getElementById('bifimgarea').innerHTML="<img src='"+bigimage.src+"' width='"+w+"' height='"+h+"'>";
	}
}

var bigimage = new Image();

function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

function bigimg(elem,src,title)
{
	var body=getdiv("bodydiv");
	var div=getdiv("divbigimg");

	if(!body || !div)
		return;

	var bw = document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
	var bh = document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
	var sw=getBodyScrollLeft();
	var sh=getBodyScrollTop();

	var w=560;
	var ht=20+30+50;
	var hi=bh-100-ht;
	if(hi<0)h1=200;
	var h=hi+ht;
	var l=sw+(bw-w)/2;
	var t=sh+(bh-h)/2;
	if(l<0)l=0;
	if(t<0)t=0;

	body.style.zindex=1000;
	body.className="disable";
	body.style.width=Math.min(bw,document.body.offsetWidth)+"px";
	body.style.height=Math.max(document.body.scrollHeight, document.body.clientHeight)+"px";
	body.style.left="0px";
	body.style.top="0px";
	if(body.filters) body.filters.alpha.opacity = 40;
	body.style.MozOpacity = 0.6;
	body.style.opacity = 0.6;
	body.onclick=bigimg_close;
	body.style.display='block';

	div.style.zindex=1001;
	div.style.width=w+"px";
	div.style.height=h+"px";
	div.style.left=l+"px";
	div.style.top=t+"px";
	div.onclick=bigimg_close;

	var data="";
	data+="<div style='cursor:pointer;width:100%;border:1px solid #c0c0c0;text-align:center;background-color:#ffffff'>";
	data+="<table border=0 width='100%' cellpadding=5 cellspacing=0>";
	data+="<tr><td align=center><h2 style='padding:5px;margin:0px;border-bottom:2px dotted #000080'>"+title+"</h2></td></tr>";
	data+="<tr><td align=center id='bifimgarea' style='background-image:url(/styles/white/load.gif);background-position:50% 50%; background-repeat:no-repeat;width:100%;height:"+hi+"px;position:relative;'></td></tr>";
	data+="<tr><td align=center style='color:#909090;font-weight:normal;cursor:pointer;'>закрыть окно просмотра</td></tr>";
	data+="</table>";
	data+="</div>";
	div.innerHTML=data;

	if(div.style.display!='block')
		div.style.display='block';
	else
		div.style.display='none';

	bigimage.onload = bidimg_set;
	bigimage.src = src;

}

var property_path='';
var compare_path='';
function clean_filter()
{
	js_set_cookies('FILTER','',property_path,0);
	document.location.reload();
}

function add_filter(group,data,type)
{
	data=MyURLEncode(data);

	var text='',read=js_get_cookies('FILTER');
	var prop=read.split("|"),save=new Array();
	for(var i=0;i<prop.length;i++)
	{
		var elem=prop[i].split("#");
		if(elem.length!=2)
			continue;
		if(elem[0]==group && elem[1]==data)
			continue;
		if(save[elem[0]+'#'+elem[1]])
			continue;
		save[elem[0]+'#'+elem[1]]=1;
		text+=elem[0]+'#'+elem[1]+'|';
	}
	if(type==1)
		text+=group+'#'+data+'|';
	js_set_cookies('FILTER',text,property_path,0);
	//document.location.href=property_path;
	document.location.reload();
}

function MyURLEncode(str)
{
	var ret = '';

	for (i=0; i<str.length; i++)
	{
		var n = str.charCodeAt(i);
		if (n >= 0x410 && n <= 0x44F)
			n -= 0x350;
		else
			if (n == 0x451)
				n = 0xB8;
			else
				if (n == 0x401)
					n = 0xA8;
		if ((n < 65 || n > 90) && (n < 97 || n > 122) && n < 256)
		{
			if (n < 16)
				ret += '%0'+n.toString(16);
			else
				ret += '%'+n.toString(16);
		}
		else
			ret += String.fromCharCode(n);
	}
	return ret;
}

function c_compare(code,path,title)
{
	this.code=code;
	this.path=path;
	this.title=title;
}

var a_compare=new Array();

function js_compare_click(code,path,title)
{
	js_compare(0,0,code,path,title);
}

function js_compare(block,elem,code,path,title)
{
	var j=0,type=elem?elem.checked:1;

	for(var i in a_compare)
		j++;
	if(j>=10)
	{
		alert('Максимльное количество товаров для сравнения 10');
		if(elem)
			elem.checked=0;
		return;
	}

	if(type)
		a_compare[code]=new c_compare(code,path,title);
	else
		if(a_compare[code])
			delete a_compare[code];

	var text='';
	for(var i in a_compare)
		text+=MyURLEncode(a_compare[i].code)+'||';
	js_set_cookies('COMPARE',text,compare_path,0);
	js_compare_draw();
}

function js_compare_clean()
{
	a_compare=new Array();
	js_set_cookies('COMPARE','',compare_path,0);
	js_compare_draw();

	for(var i=0;i<document.forms['PRODUCT'].length;i++)
		if(document.forms['PRODUCT'].elements[i].checked)
			document.forms['PRODUCT'].elements[i].checked=0;
}

function js_compare_del(code,type)
{
	if(a_compare[code])
		delete a_compare[code];
	var text='';
	for(var i in a_compare)
		text+=MyURLEncode(a_compare[i].code)+'||';
	js_set_cookies('COMPARE',text,compare_path,type);
	if(type==0)
		js_compare_draw();
	if(type==0)
	{
		for(var i=0;i<document.forms['PRODUCT'].length;i++)
			if(document.forms['PRODUCT'].elements[i].value==code)
				document.forms['PRODUCT'].elements[i].checked=0;
	}
}

function js_compare_draw()
{
	var i,j=0,data='';

	for(var i in a_compare)
		j++;
	if(!j)
	{
		document.getElementById('divcompare').style.display='none';
		document.getElementById('divcompare_data').innerHTML='';
		return;
	}

	document.getElementById('divcompare').style.display='block';
	data+="<form name='COMPARE' action='' method='GET'>";
	data+='<table border=0 width="100%" cellspacing="0" cellpadding="1" style="padding-top:6px;padding-bottom:6px;">';
	for(i in a_compare)
	{
		data+='<tr>';
		data+="<td style='padding-left:4px;padding-right:4px;'><input name=FF"+j+" type=checkbox checked value='ON' onclick='js_compare_del(\""+a_compare[i].code+"\",0);'></td>";
		data+="<td width='100%'><a class=compare href='"+a_compare[i].path+"'>"+a_compare[i].title+"</a></td>";
		data+='</tr>';
		j++;
	}
	data+='</table>';
	data+='</form>';
	document.getElementById('divcompare_data').innerHTML=data;
}

function js_compare_submit()
{
	document.location.href=compare_path+'compare.html';
}



function fixPNG(element)
{
	if(/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
	{
		var src;
		if(element.tagName=='IMG')
		{
			if(/\.png$/.test(element.src))
			{
				src=element.src;
				element.src="/styles/null.gif";
			}
		}
		else
		{
			src=element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
			if(src)
			{
				src=src[1];
				element.runtimeStyle.backgroundImage="none";
			}
		}
		if(src)
			element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
	}
}
