	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 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 openCategory(cat_id){
		req.open(null,'/jscript/common.php',true);
		req.send({
			param:cat_id,
			query:'mphGetSubcatsToCat',
			callback:'openCategoryOut'
		});	
	}
	
	function openCategoryOut(params){
		var cat_id=params.cat_id;
		var list=params.list;
		var cat_name=params.cat_name;
		
		var table=document.getElementById('table_left_menu').getElementsByTagName('tbody')[0];
		var rows=table.getElementsByTagName('tr');
		
		
		
		for (i=0;i<rows.length;i++){
			if (rows[i].className=='leftt_table_root_item' && rows[i].id==cat_id) {
				var num_row=i;
				var td=rows[i].getElementsByTagName('td')[0];
				td.className='td17';
				var div1=td.getElementsByTagName('div')[0];
				div1.innerHTML=cat_name;
				var div2=td.getElementsByTagName('div')[1];
				div2.getElementsByTagName('img')[0].src='/images/minus.gif';
				div2.getElementsByTagName('a')[0].onclick=function(){
					closeCategory(cat_id);
				}
			}
		}
		
		for (i=0;i<list.length;i++){
			var row=table.insertRow(num_row+i+1);
			row.className='left_table_sub_cat';
			row.id='sub_'+list[i].id;
			var td=d.createElement('td');
			td.className='td16';
			row.appendChild(td);
			
			var div1=d.createElement('div');
			div1.className='div24';
			div1.style.paddingLeft='10px';
			var div1_a=d.createElement('a');
			div1_a.href='/catalog/'+list[i].url+'/';
			div1_a.innerHTML=list[i].name;
			div1.appendChild(div1_a);
			td.appendChild(div1);
			
			if (list[i].need_more==1){
				var div2=d.createElement('div');
				div2.className='div23';
				var div2_a=d.createElement('a');
				div2_a.id=list[i].id;
				div2_a.href='javascript:void(0);';
				div2_a.onclick=function(){
					openSubCategory(this.id);
				}
				var div2_img= new Image();
				div2_img.src='/images/plus.gif';
				div2_a.appendChild(div2_img);
				div2.appendChild(div2_a);
				td.appendChild(div2);
			}
			
		}
		
	}
	
	function closeCategory(cat_id){
		req.open(null, '/jscript/common.php', true);
		req.send({
			param: cat_id,
			query: 'spbGetCatUrl',
			callback: 'closeCategoryOut'
		});
	}
		
	function closeCategoryOut(params){
		var table=document.getElementById('table_left_menu').getElementsByTagName('tbody')[0];
		var rows=table.getElementsByTagName('tr');
		var permit=false;
		var i=0;
		while (i<rows.length){		
			if (permit && (rows[i].className!='left_table_sub_cat' && rows[i].className!='left_table_brands')){
				break;
			}
			
			if (permit){
				table.removeChild(rows[i]);			
			}			 
			
			if (rows[i].className=='leftt_table_root_item' && rows[i].id==params.id) {
				var num_row=i;
				var td=rows[i].getElementsByTagName('td')[0];
				td.className='td16';
				var div1=td.getElementsByTagName('div')[0];
				div1.innerHTML='';
				div1_a=d.createElement('a');
				div1_a.id=params.id;
				div1_a.href='javascript:void(0);';
				div1_a.innerHTML=params.name;
				div1_a.id=params.id;
				div1_a.onclick=function(){
					openCategory(this.id);
				}
				div1.appendChild(div1_a);
				
				var div2=td.getElementsByTagName('div')[1];
				div2.getElementsByTagName('img')[0].src='/images/plus.gif';
				div2.getElementsByTagName('a')[0].id=params.id;
				div2.getElementsByTagName('a')[0].onclick=function(){
					openCategory(this.id);
				}
				i++;
				permit=true;
			}
			
			if (!permit)
				i++;
		}
		
		
	}
	
	
	function openSubCategory(cat_id){
		req.open(null, '/jscript/common.php', true);
		req.send({
			param: cat_id,
			query: 'mpgGetBrandsToSubcat',
			callback: 'openSubCategoryOut'
		});
	}
	
	function openSubCategoryOut(params){
		var cat_id=params.cat_id;
		var cat_name=params.cat_name;
		var list=params.brands;
		var cat_url=params.url;
		var table=document.getElementById('table_left_menu').getElementsByTagName('tbody')[0];
		var rows=table.getElementsByTagName('tr');
		
		
		for (i=0;i<rows.length;i++){
			if (rows[i].className=='left_table_sub_cat' && rows[i].id=='sub_'+cat_id) {
				var num_row=i;
				var td=rows[i].getElementsByTagName('td')[0];
				td.className='td17';
				var div1=td.getElementsByTagName('div')[0];
				div1.innerHTML=cat_name;
				var div2=td.getElementsByTagName('div')[1];
				div2.getElementsByTagName('img')[0].src='/images/minus.gif';
				div2.getElementsByTagName('a')[0].onclick=function(){
					closeSubCategory(cat_id);
				}
			}
		}
		
		
		
		for (i=0;i<list.length;i++){
			var row=table.insertRow(num_row+i+1);
			row.className='left_table_brands';
			//row.id='sub_'+list[i].id;
			var td=d.createElement('td');
			td.className='td16';
			row.appendChild(td);
			
			var div1=d.createElement('div');
			div1.className='div24';
			div1.style.paddingLeft='10px';
			var div1_a=d.createElement('a');
			div1_a.href='/catalog/'+cat_url+'/'+list[i].url+'/';
			div1_a.innerHTML=list[i].name;
			div1.appendChild(div1_a);
			td.appendChild(div1);
			
		}
		
	}
	
	function closeSubCategory(cat_id){
		req.open(null, '/jscript/common.php', true);
		req.send({
			param: cat_id,
			query: 'spbGetCatUrl',
			callback: 'closeSubCategoryOut'
		});
	}
	
	function closeSubCategoryOut(params){
		var table=document.getElementById('table_left_menu').getElementsByTagName('tbody')[0];
		var rows=table.getElementsByTagName('tr');
		var permit=false;
		var i=0;
		while (i<rows.length){		
			if (permit && rows[i].className!='left_table_brands'){
				break;
			}
			
			if (permit){
				table.removeChild(rows[i]);			
			}			 
			
			if (rows[i].className=='left_table_sub_cat' && rows[i].id=='sub_'+params.id) {
				var num_row=i;
				var td=rows[i].getElementsByTagName('td')[0];
				td.className='td16';
				var div1=td.getElementsByTagName('div')[0];
				div1.innerHTML='';
				div1_a=d.createElement('a');
				div1_a.id=params.id;
				div1_a.href='javascript:void(0);';
				div1_a.innerHTML=params.name;
				div1_a.id=params.id;
				div1_a.onclick=function(){
					openSubCategory(this.id);
				}
				div1.appendChild(div1_a);
				
				var div2=td.getElementsByTagName('div')[1];
				div2.getElementsByTagName('img')[0].src='/images/plus.gif';
				div2.getElementsByTagName('a')[0].id=params.id;
				div2.getElementsByTagName('a')[0].onclick=function(){
					openSubCategory(this.id);
				}
				i++;
				permit=true;
			}
			
			if (!permit)
				i++;
		}
	}
	



	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();
	}
	
function addAccessInBasket(prod_id, access_id, count){
    var frm = d.getElementById('form_add_in_bracket');
    frm.add_prod_in_bracket_parent_prod.value = prod_id;
    addProductInBracket(access_id, count);
}	
	
	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;
	}
	
	function UfixThumbImage(img,width,height){		
		if (img.height>height){
				img.width=img.width*height/img.height;
				img.height=height;
		}
				
		if (img.width>width){
			img.height=img.height*width/img.width;
			img.width=width;
		}
			
		img.style.maxHeight=height+'px';
		img.style.maxWidth=width+'px';
		img.style.display='block';
	}				
