var sizeH=new Array();
var sizeW=new Array();
var sizeZ=new Array();
var price=new Array();

var osizeH=new Array();
var osizeW=new Array();
var osizeZ=new Array();
var oprice=new Array();


function init() {


	if (document.getElementById("busket")) updateBusket();
	if (document.getElementById("id_c_size")) {
		var fild=document.getElementById("id_c_size");
		for (var j=0; j<fild.options.length; j++) {
			var size=fild.options[j].text.split('x');
			if (size[1]) {
				sizeH[sizeH.length]=size[0];
				sizeW[sizeW.length]=size[1];
				sizeZ[sizeZ.length]=size[2];
				price[price.length]=fild.options[j].value;
			}
			document.getElementById("id_c_h").value=sizeH[0];
			document.getElementById("id_c_w").value=sizeW[0];
		}
	}
	if (document.getElementById("id_o_size")) {
		var fild=document.getElementById("id_o_size");
		for (var j=0; j<fild.options.length; j++) {
			var size=fild.options[j].text.split('x');
			if (size[1]) {
				osizeH[osizeH.length]=size[0];
				osizeW[osizeW.length]=size[1];
				osizeZ[osizeZ.length]=size[2];
				oprice[oprice.length]=fild.options[j].value;
				
			}
		}
	}
}

function showpic(src) {
	w=360;
	h=200;
	t=(screen.height-h-130)/2; if (t<0) {t=0;}
	l=(screen.width-w)/2; if (l<0) {l=0;}
	var showpic = window.open('/cgi-bin/showpic.cgi?'+src, 'showpic', 'width='+w+',height='+h+',top='+t+',left='+l+',resizable=1,status=0,toolbar=0,menubar=0,location=0,scrollbars=auto');
	showpic.focus()
}
function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function clearBusket() {
	setCookie('busket', '', '', '/');
	setCookie('co_pb', '', '', '/');
	if (document.getElementById("busket")) { updateBusket() } else { document.location.href=document.location.href
	 }
}
function change (id) {
//~ alert("change "+id);
	var fild=gEid("id_"+id+"_size");
	var price_plus=0;
	if (document.getElementById("id_plus") && document.getElementById("id_plus").checked) {
	//~ alert("8888");
		var h, w;
		if (fild.value=='MY') {
			h=document.getElementById("id_"+id+"_h").value;
			w=document.getElementById("id_"+id+"_w").value;
		} else {
			var fild=document.getElementById("id_c_size");
			var size=fild.options[fild.selectedIndex].text.split('x');
			h=size[0];
			w=size[1];
		}

		var minCM=0;
		var minID=-1;
		var maxCM=0;
		var maxID=-1;

		for (var j=0; j<oprice.length; j++) {
			if ((h+'x'+w)==(osizeH[j]+'x'+osizeW[j])) {
				minID=j; minCM=-1;
			}
		}

		if (minID==-1) {
			if ((h>200)||(w>200)) {
				for (var j=0; j<oprice.length; j++) {
					if ((osizeH[j]-h)>=0 && (osizeW[j]-w)>=0) {
						var diff=osizeH[j]-h + osizeW[j]-w;
						if ((diff<minCM) || (minID==-1)) { minCM=diff; minID=j }
					} else {
						var diff=((h-osizeH[j]>0)?(h-osizeH[j]):(0)) + ((w-osizeW[j]>0)?(w-sizeW[j]):(0));
						if ((diff<maxCM) || (maxID==-1)) { maxCM=diff; maxID=j }
					}
				}
			} else {
				for (var j=0; j<oprice.length; j++) {
					if ((osizeH[j]-h)>=0 && (osizeW[j]-w)>=0) {
						var diff=osizeH[j]-h + osizeW[j]-w;
						if ((diff<minCM) || (minID==-1)) { minCM=diff; minID=j }
					} else {
						var diff=((h-osizeH[j]>0)?(h-osizeH[j]):(0)) + ((w-osizeW[j]>0)?(w-sizeW[j]):(0));
						if ((diff<maxCM) || (maxID==-1)) { maxCM=diff; maxID=j }
					}
				}
				if (minID==-1) { minID=maxID }
			}
		}
		var bestID;
		//~ alert(oprice[minID] + " - " + oprice[maxID] + " = " + maxCM);
		if (minID>-1) {
			bestID=minID; price_plus=oprice[minID];
		}  else {
			bestID=maxID; price_plus=Math.round(oprice[maxID]*1+oprice[maxID]*maxCM/100);
		}
		//~ alert(price_plus);
		var n=document.getElementById("id_"+id+"_n").value;
		document.getElementById("id_o_n").value=n;
		document.getElementById("id_o_price").value=price_plus;
		document.getElementById("id_o_name").value=
			document.getElementById("id_o_name2").value+
			' ('+((minCM==-1)?(''):('свой '))+h+'x'+w+((osizeZ[bestID]!=undefined) ? ('x'+osizeZ[bestID]) : '')+')';
		price_plus=price_plus*n;
		// R вычисленной цене матраца прибавляется коэффициент-поправка пружинного блока и чехла
		//price_plus=price_plus*n+document.getElementById('id_pb_price').value*1;
		//alert (bestID+", "+h+", "+w+" price_plus="+price_plus);
	}
	var tmp=0;
	if (fild.value=='MY') {
		document.getElementById("hidden_size").className='visible';
		var minCM=0;
		var minID=-1;
		var maxCM=0;
		var maxID=-1;
		var h=document.getElementById("id_"+id+"_h").value;
		var w=document.getElementById("id_"+id+"_w").value;
		if ((h>200)||(w>200)) {
			for (var j=0; j<price.length; j++) {
				if ((sizeH[j]-h)>=0 && (sizeW[j]-w)>=0) {
					var diff=sizeH[j]-h + sizeW[j]-w;
					if ((diff<minCM) || (minID==-1)) { minCM=diff; minID=j }
				} else {
					var diff=((h-sizeH[j]>0)?(h-sizeH[j]):(0)) + ((w-sizeW[j]>0)?(w-sizeW[j]):(0));
					if ((diff<maxCM) || (maxID==-1)) { maxCM=diff; maxID=j }
				}
			}
		} else {
			for (var j=0; j<price.length; j++) {
				if ((sizeH[j]-h)>=0 && (sizeW[j]-w)>=0) {
					var diff=sizeH[j]-h + sizeW[j]-w;
					if ((diff<minCM) || (minID==-1)) { minCM=diff; minID=j }
				} else {
					var diff=((h-sizeH[j]>0)?(h-sizeH[j]):(0)) + ((w-sizeW[j]>0)?(w-sizeW[j]):(0));
					if ((diff<maxCM) || (maxID==-1)) { maxCM=diff; maxID=j }
				}
			}
			if (minID==-1) { minID=maxID }
		}
		var bestID, bestPrice;
		if (minID>-1) {
			bestID=minID; bestPrice=price[bestID];
		}  else {
			bestID=maxID; bestPrice=price[bestID]*1+price[bestID]*maxCM/100;
		}
		//~ alert (sizeH[bestID]+' x '+sizeW[bestID])
		tmp = bestPrice*1;

		document.getElementById("id_"+id+"_name").value=
				document.getElementById("id_"+id+"_name2").value+
				' (свой '+h+'x'+w+((sizeZ[bestID]) ? ('x'+sizeZ[bestID]) : '')+')';
	} else {
		if (id=='c') document.getElementById("hidden_size").className='hidden';
		tmp=fild.value*1;

		document.getElementById("id_"+id+"_name").value=
				document.getElementById("id_"+id+"_name2").value+
				" ("+fild.options[fild.selectedIndex].text+")";
	}
	if(!isNaN(price_plus)){
	//~ alert(gEid('id_co_price').value*1+' - '+gEid('id_pb_price').value*1);
		if(window.co_arr!=undefined){// Решили поправки накладывать одна на другую
			// Вычислить и Запомнить новую поправку, чтоб в сл. раз ее 
		//	gEid('id_co_price').value=nf(co_arr[gEid('co').value][4]*tmp,2);
		}
		if(window.pb_arr!=undefined){// Решили поправки накладывать одна на другую
			// Вычислить и Запомнить новую поправку, чтоб в сл. раз ее 
		//	gEid('id_pb_price').value=nf(pb_arr[gEid('pb').value][4]*tmp,2);
		}
		gEid("id_c_price_clear").value=Math.floor(tmp);
		tmp = (tmp + price_plus)
			*((gEid('id_pb_price').value!=undefined) ? ((gEid('id_pb_price').value==0) ? 1 : gEid('id_pb_price').value) : 1)
			*((gEid('id_co_price').value!=undefined) ? ((gEid('id_co_price').value==0) ? 1 : gEid('id_co_price').value) : 1);
		// Решили поправки накладывать одна на другую	
			//+ ((gEid('id_pb_price').value!=undefined) ? gEid('id_pb_price').value*1 : 0)
			//+ ((gEid('id_co_price').value!=undefined) ? gEid('id_co_price').value*1 : 0);
		//~ alert(tmp);
		
		document.getElementById("id_"+id+"_price").innerHTML=Math.floor(tmp);
		document.getElementById('id_'+id+'_price1').innerHTML=Math.floor(tmp-tmp*document.getElementById('id_'+id+'_discount').value/100); // nf(cpf,2);
	} else { 
		alert("Дождитесь полной загрузки страницы."); }
}


function addBusket (id, not_update, correct) {
	var co_id=(gEid('co_id')) ? gEid('co_id').value : "";
	//~ var pb_id=(document.getElementById('pb_id')) ? document.getElementById('pb_id').value : "";
	var pb_id=(gEid('pb_id')) ? gEid('pb_id').value : "";
	var co_name=gEid('co_name').value;
	var pb_name=gEid('pb_name').value;
	var name=gEid("id_"+id+"_name").value+
		((id=='o') ? '' 
			: (
				((co_name==undefined) ? '' : ('|'+co_name+'('+co_id+')')) + 
				((pb_name==undefined) ? '' : ('|'+pb_name+'('+pb_id+')'))
			)
		);
	//~ alert(name);
	var n=gEid("id_"+id+"_n").value;
	var discount=gEid("id_"+id+"_discount").value;
	var price=(gEid("id_"+id+"_price").value)?(gEid("id_"+id+"_price").value)
	:(gEid("id_"+id+"_price").innerHTML-
		((gEid('id_plus') && gEid('id_plus').checked)
			?gEid("id_"+correct+"_price").value:0)
	);
	var iid=gEid("id_"+id+"_id").value;
	var str=name+'::'+n+'::'+discount+'::'+price+'::'+iid;//+'::'+co_id+'::'+pb_id;
	var oldStrings=getCookie('busket');
	setCookie('busket', (oldStrings)?(oldStrings+';;'+str):(str), '', '/');
		isnewcook=parseInt(isnewcook)+parseInt(n);
	if (not_update) { 	
		return; 
	};
	updateBusket();
}

//AJAX

function alertBusket(http_request) {

	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			
			document.getElementById("busket").classText=(http_request.responseText!='')?('active'):('');
			document.getElementById("busket").innerHTML=http_request.responseText;
			if(isnewcook){alert("Товар добавлен в корзину в количестве - " + isnewcook);}
			isnewcook=0;
		} else {
			alert('There was a problem with the request.');
		}
	}
		
}

function updateBusket() {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) { }

		}
	}
	
	if (!http_request) {
		alert('Giving up :( Ошибка загрузки (Cannot create an XMLHTTP instance)');
		return false;
	}
	http_request.onreadystatechange = function() { 
		alertBusket(http_request); 
	};
	http_request.open('GET', '/ajax/catalog.cgi?rnd='+Math.random(), true);
	http_request.send(null);
	
}

function show_tip(id, evt){
	if(document.getElementById(id)){
		var x, y, h; 
		var frame=document.getElementById(id);
		if (evt) {
			x = evt.clientX; 
			y = evt.clientY;
		} else {
			x = window.event.clientX; 
			y = window.event.clientY; 
		}
		h = document.documentElement.scrollTop||document.body.scrollTop;
		if (frame.style.display!="block") {
			frame.style.display = "block";
		}
		x = x - frame.clientWidth  + 30; 
		y = y - frame.clientHeight - 5 + h;
		frame.style.left = x + 'px'; frame.style.top = y + 'px'; 
	}
} 
function hide_tip(id) { 
	document.getElementById(id).style.display = "none"; 
} 
var isnewcook=0;
function draw_busket() {
	if (document.getElementById('table')) {
		var table='<table>'+
			'<tr>'+
				'<th class="f">Ваши покупки</th>'+
				'<th width="80">Кол-во</th>'+
				'<th width="80">Удалить</th>'+
				'<th width="80">Цена</th>'+
				'<th width="80">Скидка</th>'+
				'<th width="80">Сумма</th>'+
			'</tr>';

		var i=0; var summ=0; var oldsumm=0;
		while (document.getElementById('arr0_'+i)) {
			if (_deleted_[i]!=1) {
				var os=document.getElementById('arr3_'+i).value*document.getElementById('arr1_'+i).value;
				var s=Math.round(os*(100-document.getElementById('arr2_'+i).value)/100);
				//~ alert(document.getElementById('arr0_'+i).value);
				table+='<tr>'+
						'<td class="f"><font size=2><a target=_blank href="'+document.getElementById('url_'+i).value+'#content"'+
							'  onclick="setCookie(\'co_pb\', \''+
								document.getElementById('arr0_co_'+i).value+'-'+document.getElementById('arr0_pb_'+i).value+
								'\', \'\', \'/\'); setCookie(\'isFromBasket\', \'1\', \'\', \'/\');"'+'>'+
							document.getElementById('arr0_'+i).value+'</a></font></td>'+
						'<td><input type="text" class="border" id="n_'+i+'" value="'+document.getElementById('arr1_'+i).value+'" onchange="makenewcook(); draw_busket();"/></td>'+
						'<td><a href="#" onclick="return delitem('+i+')"><img src="/img/del.gif" alt="x"/></a></td>'+
						'<td>'+document.getElementById('arr3_'+i).value+' руб</td>'+
						'<td>'+document.getElementById('arr2_'+i).value+' %</td>'+
						'<td><b>'+s+' руб</b></td>'+
					'</tr>';
				summ+=s; oldsumm+=os;
			}
			i++; 
		}
		table+='</table>';
		document.getElementById('table').innerHTML=table;
		document.getElementById('summ').innerHTML='<b>Итого:</b>'+((oldsumm!=summ)?('<span class="old">'+oldsumm+' руб</span>'):(''))+'<span class="new">'+summ+' руб</span>';
	}
}
var _deleted_=new Array();

function delitem(i) { if (confirm('Удалить позицию?')) { _deleted_[i]=1; makenewcook(); draw_busket(); } return false; }

function makenewcook() {
	var i=0; var str=''; var suff='';
	while (document.getElementById('arr0_'+i)) {
		if (_deleted_[i]!=1) {
			document.getElementById("arr1_"+i).value=document.getElementById("n_"+i).value;
			var name    =document.getElementById("arr0_"+i).value;
			var n       =document.getElementById("arr1_"+i).value;
			var discount=document.getElementById("arr2_"+i).value;
			var price   =document.getElementById("arr3_"+i).value;
			var iid     =document.getElementById("arr4_"+i).value;
			str+=suff+name+'::'+n+'::'+discount+'::'+price+'::'+iid;
			suff=";;";
		}
		i++; 
	}
	setCookie('busket', str, '', '/');
}

function SendBusket() {
	var f=document.getElementById("forma");
	if (getCookie('busket') == null) { alert('Ваша корзина пуста'); return; }
	if (f.soname.value     == '') { alert('Введите фамилию');  f.soname.focus();     return; }
	if (f.name.value       == '') { alert('Введите имя');      f.name.focus();       return; }
	if (f.patronymic.value == '') { alert('Введите отчество'); f.patronymic.focus(); return; }
	if (f.phone.value      == '') { alert('Введите телефон');  f.phone.focus();      return; }
	if (f.email.value      == '') { alert('Введите e-mail');   f.email.focus();      return; }
	if (f.adress.value     == '') { alert('Введите адрес');    f.adress.focus();     return; }
	if (confirm('Отправить?')) {
		makenewcook();
		f.submit();
	}
}

function fRigidity(i) {
	var f=document.getElementById('search');
	f.Rigidity.value=i;
	for (var j=1; j<=5; j++) { document.getElementById('r_'+j).src='/img/rdot'+j+((j==i)?('active'):(''))+'.gif'; }
	document.getElementById('r_0').className=(i==0)?('active'):('');
	return (false);
}

function fType(i,value) {
	var f=document.getElementById("search");
	f.Type.value=value;
	var j=0;
	while (document.getElementById('t_'+j)) { document.getElementById('t_'+j).className=(i==j)?('active'):(''); j++; }
	return (false);
}

function gEid(id){
	if(document.getElementById(id)){
		return document.getElementById(id);
	} else { 
		//~ alert(id+' no object'); 
		//~ var o = new Object;
		return new Object; 
	}
}


function nf(cpf,decplaces){
	var num=parseFloat(cpf);
	if(!isNaN(num)){
		var str=''+Math.round(num*Math.pow(10,decplaces));
		if(str.indexOf('e')==-1){
			while(str.length<=decplaces){str='0'+str;}
			var decpoint=str.length-decplaces;
			return str.substring(0,decpoint)+((decpoint>0) ? ('.'+str.substring(decpoint,str.length)) : '');
		} else { alert('слишком маленькое число'); return 0; }
	} else { //alert('не число'); 
		return 0; }
}

function change1(id,co_arr){
//~ alert("change1 "+id+" = "+co_arr.join(", "));
	document.getElementById(id+'_img').src='/57/' + co_arr[document.getElementById(id).value][2];
	document.getElementById(id+'_img').alt=co_arr[document.getElementById(id).value][0];
	document.getElementById(id+'_img_t').src='/120/' + co_arr[document.getElementById(id).value][2];
	document.getElementById(id+'_img_t').alt=co_arr[document.getElementById(id).value][0];
	document.getElementById(id+'_img_a').href=co_arr[document.getElementById(id).value][2];
	document.getElementById(id+'_p_name').innerHTML=co_arr[document.getElementById(id).value][0];
	document.getElementById(id+'_p_name1').innerHTML=co_arr[document.getElementById(id).value][0];
	document.getElementById(id+'_p_rem').innerHTML=co_arr[document.getElementById(id).value][3];
	document.getElementById(id+'_id').value=co_arr[document.getElementById(id).value][1];
	document.getElementById(id+'_name').value=co_arr[document.getElementById(id).value][0];
	//~ var cp=document.getElementById('id_c_price').innerHTML;
	var cp=parseFloat(document.getElementById('id_c_price_clear').value);
	//~ var sc=parseFloat(document.getElementById('id_c_size_correct').value); // поправка к цене в зависимости от размера
	var cpf=parseFloat(cp);
	var o_price=parseFloat((document.getElementById('id_plus').checked)?document.getElementById('id_o_price').value:0);
	/*
	// Отнять от общей цены стоимость подставки - получить стоимость матраса 
	var m_price=(document.getElementById('id_c_price').value)
				?(document.getElementById('id_c_price').value)
				:(document.getElementById('id_c_price').innerHTML-o_price
				);
	
	// Отнять прошлую поправку - получить оригинальную цену с дефалтовым ПБ и чехлом
	cpf=m_price-((document.getElementById('id_pb_price')) ? document.getElementById('id_pb_price').value : 0)-
				((document.getElementById('id_co_price')) ? document.getElementById('id_co_price').value : 0);
	//cpf=cpf;
	*/
	/*
	// Вычислить и Запомнить новую поправку, чтоб в сл. раз ее отнять
	document.getElementById('id_'+id+'_price').value=nf(co_arr[document.getElementById(id).value][4]*cpf,2);
	*/
	//Запоминается коэффициент чехла или блока - Решили поправки накладывать одна на другую
	gEid('id_'+id+'_price').value=co_arr[gEid(id).value][4];
	/*
	// Добавить новую поправку - получить новую цену с дефалтовым ПБ без подставки
	cpf=(cpf+((document.getElementById('id_pb_price')) ? document.getElementById('id_pb_price').value*1 : 0)
			+((document.getElementById('id_co_price')) ? document.getElementById('id_co_price').value*1 : 0)
			//~ +sc
		);
	*/
	// Решили поправки накладывать одна на другую
	cpf=cpf*((gEid('id_pb_price')) ? ((gEid('id_pb_price').value==undefined || gEid('id_pb_price').value==0) ? 1 : gEid('id_pb_price').value*1) : 1)
			*((gEid('id_co_price')) ? ((gEid('id_co_price').value==undefined || gEid('id_co_price').value==0) ? 1 : gEid('id_co_price').value*1) : 1);
	//~ alert(gEid('id_co_price').value+' - id_pb_price='+gEid('id_pb_price').value+' - parseFloat_id_pb_price='+parseFloat(gEid('id_pb_price').value+' -- '));
	
	//cpf=(cpf);
	
	// Добавить цену подставки
	cpf=(cpf+o_price); 
	//~ alert(cpf);
	gEid('id_c_price').innerHTML=Math.floor(cpf); // nf(cpf,2);
	gEid('id_c_price1').innerHTML=Math.floor(cpf-cpf*gEid('id_c_discount').value/100); // nf(cpf,2);
	
}

//проверка того, что введено положительное или отрицательное число
function isNumber(elem) {
	var str = elem.value;
 	    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();
    if (!str.match(re)) {
        return false;
    }
    return true;
}
