function SizeCalc ()
{
	var self=this;

	this.form1=$('#calcForm1');
	this.form2=$('#calcForm2');

	this.form1.submit(function(){ self.form2.submit(); return false; });

	this.size1=$('input[name=size1]', self.form1);
	this.size2=$('input[name=size2]', self.form1);
	this.size3=$('input[name=size3]', self.form1);

	this.rv1=$('input[name=size1]', self.form2);
	this.rv2=$('input[name=size2]', self.form2);
	this.rv3=$('input[name=size3]', self.form2);

	this.goods_count=$('.resultButtonCalc a span span'); // кол-во товаров
	this.resultCalcInfo=$('.resultButtonCalc .resultButtonCalcInfo'); // информация о результате запроса

	this.shopSignal=true;

	this.size1.focus(function () { self.startCheck(); });
	this.size1.blur(function () { self.stopCheck(); });
	this.size2.focus(function () { self.startCheck(); });
	this.size2.blur(function () { self.stopCheck(); });
	this.size3.focus(function () { self.startCheck(); });
	this.size3.blur(function () { self.stopCheck(); });

	this.startCheck=function () {
		this.rememberStartValue();
		this.shopSignal=false;
		this._startCheck();
	}

	this.stopCheck=function () {
		this.shopSignal=true;
	}

	this._startCheck=function () {
		if (this.shopSignal)
			return;
		window.setTimeout(
			function () {
				self.check();
				self._startCheck();
			}, 1000
		);
	};

	this.startValue=new Array();

	this.rememberStartValue=function () {
		this.startValue[0]=this.size1.val();
		this.startValue[1]=this.size2.val();
		this.startValue[2]=this.size3.val();
	};

	this.check=function () {
		if (this.startValue[0]==this.size1.val() && this.startValue[1]==this.size2.val() && this.startValue[2]==this.size3.val())
			return;

		// данные в input были изменены

		this.rememberStartValue();
		this.calcPpanties();
		this.calcByustgalter();
		this.getCount();
	};

	this.calcPpanties=function()
	{
		var table=[
			//  обхват бедер (см), европейский, российский, международный
			[   0, '', '', ''    ], 
			[  91, 36, 42, 'XS'  ], //91 см. и меньше = XS
			[  95, 38, 44, 'S'   ],
			[  99, 40, 46, 'M'   ],
			[ 103, 42, 48, 'L'   ],
			[ 107, 44, 50, 'XL'  ],
			[ 110, 46, 52, '2XL' ],
			[ 113, 48, 54, '3XL' ]
		];

		var value1=parseInt(this.size1.val());
		var row;

		if (isNaN(value1))
		{
			row=table[0];
		}
		else
		{
			for (var i=1; i<table.length; i++) 
			{
				row=table[i];
				if (value1 <= row[0]) break;
			}
		}

		$("#size1eur").text(row[1]);
		$("#size1rur").text(row[2]);
		$("#size1int").text(row[3]);
		$("#size1main").text(row[3]);
		this.rv1.val(row[3]);
	}

	this.calcByustgalter=function()
	{
		var table=[
			//  Обхват под грудью (см), Размер бюстгальтера и корсета
			[   0,  '', [ [0,''] ] ],
			[  67,  65, [ [79,'A'], [81,'B'], [83,'C'], [85,'D'] ] ],
			[  72,  70, [ [84,'A'], [86,'B'], [88,'C'], [90,'D'], [92,'E'], [94,'F'], [96,'G'] ] ],
			[  77,  75, [ [89,'A'], [91,'B'], [93,'C'], [95,'D'], [97,'E'], [99,'F'], [101,'G'] ] ],
			[  82,  80, [ [94,'A'], [96,'B'], [98,'C'], [100,'D'], [102,'E'], [104,'F'], [106,'G'] ] ],
			[  87,  85, [ [99,'A'], [101,'B'], [103,'C'], [105,'D'], [107,'E'], [109,'F'], [111,'G'] ] ],
			[  92,  90, [ [104,'A'], [106,'B'], [108,'C'], [110,'D'], [112,'E'], [114,'F'], [116,'G'] ] ],
			[  97,  95, [ [109,'A'], [111,'B'], [113,'C'], [115,'D'], [117,'E'], [119,'F'], [121,'G'] ] ],
			[ 102, 100, [ [114,'A'], [116,'B'], [118,'C'], [120,'D'], [122,'E'], [124,'F'], [126,'G'] ] ],
			[ 107, 105, [ [119,'A'], [121,'B'], [123,'C'], [125,'D'], [127,'E'], [129,'F'], [131,'G'] ] ],
			[ 112, 110, [            [126,'B'], [128,'C'], [130,'D'], [132,'E'], [134,'F'], [136,'G'] ] ],
			[ 117, 115, [            [131,'B'], [133,'C'], [135,'D'], [137,'E'], [139,'F'], [141,'G'] ] ],
			[ 122, 120, [            [136,'B'], [138,'C'], [140,'D'], [142,'E'], [144,'F'], [146,'G'] ] ]
		];

		var value2=parseInt(this.size2.val());
		var value3=parseInt(this.size3.val());
		var table2;
		var row2;
		var row3;

		if (isNaN(value2) || isNaN(value3))
		{
			row2=table[0];
			table2=row2[2];
			row3=table2[0];
		}
		else
		{
			for (var i=1; i<table.length; i++) 
			{
				row2=table[i];
				if (value2 <= row2[0]) break;
			}

			table2=row2[2];

			for (var i=0; i<table2.length; i++) 
			{
				row3=table2[i];
				if (value3 <= row3[0]) break;
			}
		}

		$("#size2main").text(row2[1]);
		this.rv2.val(row2[1]);

		$("#size3main").text(row3[1]);
		this.rv3.val(row3[1]);
	}

	this.getCount=function ()
	{
		var rv1=this.rv1.val();
		var rv2=this.rv2.val();
		var rv3=this.rv3.val();

		if (rv1=="" && rv2=="" && rv3=="")
		{
			self.goods_count.text('');
			self.resultCalcInfo.html('');
			$('#calcbutton').css('cursor','default');
			$('#calcbutton').unbind('click');
			return;
		}

		$.ajax({
			 'type': 'POST'
			,'url': '/a0/ru/calc/get_total.thtml'
			,'data': 'size1='+rv1+ '&size2='+rv2 + '&size3='+rv3
			,'success': function ( data ) {
				eval( 'var data=' + data );
				var total=parseInt(data.total);
				if ( !data.total )
				{
					self.goods_count.text('');
					self.resultCalcInfo.html( 'В каталоге нет товаров, соответствующих вашему размеру. <br/>Вы можете посмотреть <a href="/catalog/13/0/">товары смежных размеров</a>.' );
					$('#calcbutton').css('cursor','default');
					$('#calcbutton').unbind('click');
				}
				else
				{
					self.goods_count.text(' ('+total+')');
					self.resultCalcInfo.html('');
					$('#calcbutton').css('cursor','pointer');
					$('#calcbutton').bind('click',function(){ self.form2.submit(); });
				}
			}
		});
	};

	/*this.debug=function (str)
	{
		$("#test").text( $("#test").text() + str );
	}*/
}


$(document).ready(function(){

	var objSizeCalc=new SizeCalc();

});
