	var d=document;
	var req;
	var spbCloseSortBoxTimer=0;
	
	function initJsHTTPRequest(){
		req = new JsHttpRequest();
		req.onreadystatechange = function(){
			if (req.readyState == 4) {
			
				if (req.responseText) {
					var wnd = window.open('', 'jsdebug');
					wnd.document.write('<pre>' + req.responseText + '</pre>');
				}
				else {
					var resp = req.responseJS;
					eval(resp.callback);
				}
			}
		}
	}

	function documentLoaded(){
		spbCacheLoad();
		
		initJsHTTPRequest();
		Custom.init();
		if (window.setupZoom) 
			setupZoom();
		
		if (window.customModuleFunction)
			customModuleFunction();

		spbSetDate();
			
	}
	
	function spbCacheLoad(){
		var img=new Image();
		img.src='/images/bg-menu-item-active.gif';
	}
	
	function addInCompare(prod_id){
		req.open(null,'/jscript/common.php',true);
		req.send({
			param:prod_id,
			query:'addToCompareList',
			callback:'addInCompareOut'
		})
	}
	
	function addInCompareOut(msg_type){
		if (msg_type==1)
				alert('Товар не найден');
				
		if (msg_type==2)
				alert('Нельзя сравнивать товары из разных категорий');
			
		if (msg_type==3)
				alert('Товар уже присутсвует в списке сравнения');
				
		if (msg_type==4)
				window.location='/compare/';
	}
	
	function deleteFromCompare(prod_id){
		req.open(null,'/jscript/common.php',true);
		req.send({
			param:prod_id,
			query:'deleteFromCompare',
			callback:'deleteFromCompareOut'
		})

	}
	
	function deleteFromCompareOut(param){
		window.location='/compare/'+param;
	}


	function OpenCategory(cat_id){
		
		var row=document.getElementById('left_menu_tr_'+cat_id);
		var td=row.getElementsByTagName('td')[0];
		td.className='td17';		
		var cat_name=td.getElementsByTagName('a')[0].innerHTML;
		
		td.getElementsByTagName('div')[0].innerHTML=cat_name;
		td.getElementsByTagName('div')[1].innerHTML='<a href="javascript:CloseCategory('+cat_id+');"><img src="/images/minus.gif"></a>';
		
		
		
		req.open(null,'/jscript/common.php',true);
		req.send({
			param:cat_id,
			query:'showBrandsToCategory',
			callback:'OpenCategoryOut'
		})
	}
	
	function spbAddToBookmarks(id){
		req.open(null,'/jscript/common.php',true);
		req.send({
			param:id,
			query:'addToBookMark',
			callback:'spbAddToBookmarksOut'
		})
	}
	
	function spbAddToBookmarksOut(out){
		if (out==1)
			alert('Товар успешно добавлен в закладки');
	}
		
	function OpenCategoryOut(stack){
		
		
		
		var cat_id=stack['cat_row']['id'];
		var brands=stack['brands'];
		var cat_url=stack['cat_row']['url'];
		
		var table=document.getElementById('table_left_menu');
		var tbody=table.getElementsByTagName('tbody')[0];
		
		var rows=tbody.getElementsByTagName('tr');
		var num=0;
		for (i=0;i<rows.length;i++){
			if (rows[i].id == 'left_menu_tr_' + cat_id) {
				num = i + 1;
				break;
			}
		}
		
		if (num==0)
			return;
		
		for (i=brands.length-1;i>=0;i--){
			var row=tbody.insertRow(num);
			row.className='tr1';
			var td=document.createElement('td');
			td.className='td101';
			var a=document.createElement('a');
			a.href='/catalog/'+cat_url+'/'+brands[i]['url']+'/';
			a.innerHTML=brands[i]['name'];
			td.appendChild(a);			
			row.appendChild(td);
		}
		
		//row.className='tr1';
		
		
		//row.appendChild(td);
				
		
		
		

		/*
		
		var table=d.getElementById('table_left_menu');
		if (!table)
			return;
		
		var tbody=table.getElementsByTagName('tbody')[0];
		var rows=tbody.getElementsByTagName('tr');
		var need_table;
		for (i=0;i<rows.length;i++){			
			if (rows[i].id=='table_left_menu_tr_'+cat_id){				
				need_table=rows[i+1].getElementsByTagName('table')[0].getElementsByTagName('tbody')[0];
			}
		}
		
		if (!need_table)
			return;
			
		need_table.removeChild(need_table.getElementsByTagName('tr')[0]);
		
		for (i=0;i<brands.length;i++){
			var tr=d.createElement('tr');
			var td=d.createElement('td');
			var a=d.createElement('a');
			a.href='/catalog/'+cat_url+'/'+brands[i]['url']+'/';
			a.innerHTML=brands[i]['name'];
			td.appendChild(a);
			tr.appendChild(td);
			need_table.appendChild(tr);
		}
		
		*/
	}

	function CloseCategory(cat_id){
		var tr=document.getElementById('left_menu_tr_'+cat_id);
		var td=tr.getElementsByTagName('td')[0];
		td.className='td16';
		
		var div1=td.getElementsByTagName('div')[0];
		var cat_name=div1.innerHTML;
		var cat_url=td.id;
		
		div1.innerHTML='<a href="/catalog/'+cat_url+'/">'+cat_name+'</a>';
		
		var div2=td.getElementsByTagName('div')[1];
		div2.innerHTML='<a href="javascript:OpenCategory('+cat_id+');"><img src="/images/plus.gif"></a>';
		
		var table=document.getElementById('table_left_menu');
		var tbody=table.getElementsByTagName('tbody')[0];
		
		var rows=tbody.getElementsByTagName('tr');
		
		var permit=false;
		for (i=0;i<rows.length;i++){
			
			if (permit){
				if (rows[i].className=='tr1'){
					tbody.removeChild(rows[i])
					i--;
				}
				else {
					break;
				}
			}
			
			if (rows[i].id == 'left_menu_tr_'+cat_id && !permit) {
				permit=true;
			}
			
			
		}
		
	}
	
	function closeAllCategory(){
		var table=document.getElementById('table_left_menu');
		var tbody=table.getElementsByTagName('tbody')[0];
		var rows=tbody.getElementsByTagName('tr');
		
		for (i=0;i<rows.length;i++){
			if (rows[i].getElementsByTagName('td')[0].className=='td17') {
				var str=rows[i].id;
				//alert(str);
			}
		}
		
	}
	
	function addProductInBracket(prod_id,count){
		
		var frm=d.getElementById('form_add_in_bracket');
		frm.add_prod_in_bracket.value=prod_id;
		frm.add_prod_in_bracket_count.value=count;
		frm.submit();
		
	//	alert('test');
	}
	
	function getToBasket(){
		window.location='/basket/'
	}
	
	function getOffsetSum(elem) {
    var top=0, left=0
    while(elem) {
        top = top + parseInt(elem.offsetTop)
        left = left + parseInt(elem.offsetLeft)
        elem = elem.offsetParent
    }

    return {top: top, left: left}
}

	
	window.onload = documentLoaded;
	
	
/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

	function showGlobalSearchList(){
		var frm=d.getElementById('frm_global_search');
		if (frm.globalSearchString.value)
			frm.submit();
	}
	
	function showSampleSearchResult(param){
		d.getElementById('globalSearchString').value=param;
		showGlobalSearchList();
	}
	
	function openQuickProd(url){
		if (url!=0){
			window.location='/catalog/'+url+'/';
		}
	}
	function setValueList(){
			document.getElementById('frm_valute_list').submit();
	}
	
	
	function ReviewChangeBrand(param){
		if (param.value)
			window.location='/review/'+param.value;
	}
	
	function userNeedRegister(){
			if (confirm('Уведомления доступны только зарегистрированным пользователям. Войти на сайт?')){
					window.location='/user/';
			}
	}
	
	
	function fixThumbImage(img){
		//alert(img.height);
		if (img.height>112)
				img.height='112';
				
		if (img.width>73)
			img.width=73;
			
		img.style.maxHeight='112px';
		img.style.maxWidth='73px';
	}
	
	function spbChangeCount(id,type) {
		var cnt=d.getElementById('prod_count_'+id);
		if (isNaN(cnt.value))
			cnt.value=0;
		
		if (type=='inc'){
			cnt.value=cnt.value*1+1;
		}
		else {
			if (cnt.value>1)
				cnt.value=cnt.value-1;
		}
		
		if (cnt.value<1)
			cnt.value=1;
	}
	
	
	function spbShowProdAddParam(type){
		for (i=1;i<5;i++){
			d.getElementById('td_prod_param_'+i+'_1').className='td87';
			d.getElementById('td_prod_param_'+i+'_2').className='td89';
			d.getElementById('td_prod_param_'+i+'_3').className='td88';
			d.getElementById('td_prod_param_'+i+'_text').style.display='none';
			d.getElementById('td_prod_param_'+i+'_link').style.display='block';
			d.getElementById('td_prod_param_'+i+'_content').style.display='none';
			
		}

			d.getElementById('td_prod_param_'+type+'_1').className='td90';
			d.getElementById('td_prod_param_'+type+'_2').className='td92';
			d.getElementById('td_prod_param_'+type+'_3').className='td91';
			d.getElementById('td_prod_param_'+type+'_text').style.display='block';
			d.getElementById('td_prod_param_'+type+'_link').style.display='none';
			d.getElementById('td_prod_param_'+type+'_content').style.display='block';
		
	}
	
	function spbSetCatalogViewType(type){
		frm=d.getElementById('frm_catalog_view_type');
		frm.catalog_view_type.value=type;
		frm.submit();
	}

	function spbAuthUser(){
		d.getElementById('frm_auth_user').submit();
	}

	function spbDelFromBm(id){
		var frm=d.getElementById('frm_book_list');
		frm.book_delete.value=id;
		frm.submit();
	}
	
	function spbSetDate(){
		var c=new Date();
		var str;
		switch (c.getDay()){
			case 0:
			 str='Воскресенье';
			break;
			case 1:
			 str='Понедельник';
			break;
			case 2:
			 str='Вторник';
			break;
			case 3:
			 str='Среда';
			break;
			case 4:
			 str='Четверг';
			break;
			case 5:
			 str='Пятница';
			break;
			case 6:
			 str='Суббота';
			break;
		}
		
		str=str+', '+c.getDate();
		
		switch (c.getMonth()){
			case 0:
			 str=str+' '+'Января';
			break;
			case 1:
			 str=str+' '+'Февраля';
			break;
			case 2:
			 str=str+' '+'Марта';
			break;
			case 3:
			 str=str+' '+'Апреля';
			break;
			case 4:
			 str=str+' '+'Мая';
			break;
			case 5:
			 str=str+' '+'Июня';
			break;
			case 6:
			 str=str+' '+'Июля';
			break;
			case 7:
			 str=str+' '+'Августа';
			break;
			case '8':
			 str=str+' '+'Сентября';
			break;
			case 9:
			 str=str+' '+'Октября';
			break;
			case 10:
			 str=str+' '+'Ноября';
			break;
			case 11:
			 str=str+' '+'Декабря';
			break;
		}
		str=str+' '+c.getFullYear();
		str=str+', '+c.getHours()+':'+c.getMinutes();
				
		d.getElementById('span_date').innerHTML=str;
		//Вторник, 1 декабря 2009, 14:12
	}
	
	function spbSetGroubCompare(){
		
		elems=getElementsByClassName('checkbox_compare');
		for (i=0;i<elems.length;i++){
			if (elems[i].checked){
				req.open(null,'/jscript/common.php',true);
				req.send({
				param:elems[i].value,
				query:'addToCompareList',
				callback:'spbSetGroubCompareOut'
				})
			}
		}
		//frm.submit();
		window.location='/compare/';
	}
	
	function spbSetGroubCompareOut(){
		
	}

	
	function spbGetBrandList(cat_id){
		if (cat_id=='0')
			return;
		
		req.open(null,'/jscript/common.php',true);
		req.send({
			param:cat_id,
			query:'getBrands',
			callback:'spbGetBrandListOut'
		});	
	}
	
	
	function spbGetBrandListOut(params){
		if (!params.length)
			return;
		var sel=document.getElementById('select4');
		sel.options.length=0;		
		for (i=0;i<params.length;i++){
			//alert(i);
			sel.options[i]=new Option (params[i]['name'],params[i]['url']);
			sel.options[i].className='custom_option';
			
		}
		
		document.getElementById('selectsearch_filter_brand').innerHTML=params[0]['name'];
		
	}
	
	
	
	function spbSetSort(type,elem){
		spbClearCloseSortBox();
		var frm=document.getElementById('frm_set_sort');
		frm.prod_set_sort.value=type;
		
		var coord=getOffsetSum(elem);
		//alert(coord.left);
		
		var div=getElementsByClassName('div21')[0];
		
		var elems=div.getElementsByTagName('input');
		
		if (frm.prod_set_sort_type.value==1)
			elems[0].checked=true;

		if (frm.prod_set_sort_type.value==2)
			elems[1].checked=true;
			
		if (frm.prod_set_sort_type.value!=1 && frm.prod_set_sort_type.value!=2){
			elems[0].checked=false;
			elems[1].checked=false;
		}
		
		
		div.style.left=coord.left+'px';
		div.style.top=(coord.top*1+20)+'px';
		div.style.display='block';
		
	}
	
	function spbSetSortType(type){
		var frm=document.getElementById('frm_set_sort');
		frm.prod_set_sort_type.value=type;
		frm.submit();	
	}
	
	function spbClearSearchString(){
		var tb=document.getElementById('globalSearchString');
		if (tb.value=='Поиск')
		 tb.value='';
	}
	
	function spbFillSearchString(){
		var tb=document.getElementById('globalSearchString');
		if (!tb.value)
			tb.value='Поиск';
	}
	

	function spbCloseSortBox(){
		var div=getElementsByClassName('div21')[0];
		div.style.display='none';
	}
	
	function spbClearCloseSortBox(){
		clearTimeout(spbCloseSortBoxTimer);
	}
	
	function spbStartCloseSortBox(){
		spbCloseSortBoxTimer=setTimeout('spbCloseSortBox()',800);
	}
	
	
	function spbOpebBasket(){
		var div=document.getElementById('div_small_basket');
		var dst_div=document.getElementById('div_open_basket');
		var coord=getOffsetSum(div);
		dst_div.style.left=coord.left+'px';
		dst_div.style.top=coord.top-57+'px';
		dst_div.style.width=div.offsetWidth-1+'px';
		dst_div.style.height='87px';	
		dst_div.style.display='block';
	}
	
	function spbCloseBasket(){
		document.getElementById('div_open_basket').style.display='none';
	}
	
	
	function spbSetPriceFilter(){		
		document.getElementById('frm_set_filter_price').submit();		
	}

	function spbPagePrint(){
		window.print() ;
	}
	
	

 
function bookmark(title,url){
	if (window.sidebar)
		window.sidebar.addPanel(title,url,'');
	else
		window.external.AddFavorite(url, title );
		
}

function spbSendByEmail(body,title){
	var email;
	if (email=prompt('Введите E-mail адрес получателя','')){
		var mailto_link = 'mailto:'+email+'?subject='+title+'&body='+body; 
		win = window.open(mailto_link,'emailWindow'); 
		if (win && win.open &&!win.closed) 
		win.close(); 
	}
}
	
	function spbShowCarouselImg(path){
		var link=document.getElementById('spbPreviewImage');
		link.href=path;
		var img=link.getElementsByTagName('img')[0];
		img.src=path;
	}