jQuery.fn.complectCreator = function(){
	var _instance = this;
	var error_AddSmallBlock = 'в этот комплект Вы можете добавить малый блок';
	var error_RemoveSmallBlock = 'в этом комплекте Вы можете убрать малый блок';
	var error_AddRemoveSmallBlock = 'в этот комплект Вы можете добавить или убрать малый блок';
	var error_AddBigOrTwoSmallBlock = 'в этот комплект Вы можете добавить один большой или два малых блока';
	var error_EnoughBlocks = 'слишком много блоков для комплекта';
	
	_instance.countBig = 0;
	_instance.countSmall = 0;
	_instance.additionalBlocksPrice = 0;
	_instance.typeVersion = "";
	_instance.updateTime = "";
	_instance.preComplectName = 'ГАРАНТ-';
	_instance.complectName = [];
	_instance.isRightCombination = true;
	
	_instance.countBigToSmall = function(){
		return _instance.countBig*2;
	};
	
	_instance.countSmallToBig = function(){
		return _instance.countSmall / 2;
	};
	
	
	_instance.getComplectCost = function(callBackFunction){
		var sumBig = _instance.countBig + _instance.countSmallToBig(_instance.countSmall);
		jQuery.get('/garant/cost', {'c': sumBig, 'b': _instance.countBig, 's': _instance.countSmall, 't': _instance.updateTime}, function(resultData){
			callBackFunction(resultData);
		});
	};
	
	
	_instance.getComplectNameByBlocksCount = function(){
		var countBigOfSmall = _instance.countSmallToBig(_instance.countSmall);
		var sumBig = _instance.countBig + countBigOfSmall;
		var errName = [];
		var isNext = false;
		_instance.complectName = [];
		

		if(sumBig % 1 && sumBig != 1.5){
			_instance.isRightCombination = false;
			if(sumBig > 12)
				errName.push(error_RemoveSmallBlock);
			else
				errName.push(error_AddRemoveSmallBlock);
		}
		else if(sumBig > 0){
			//if(sumBig > 12){
			if(sumBig > 25){
				_instance.isRightCombination = false;
				errName.push(error_EnoughBlocks);
			}
			else{
				_instance.isRightCombination = true;
			}
		}
		

		if(sumBig < 2 && sumBig > 0){
			_instance.complectName.push(_instance.preComplectName + 'Классик+');
			if(!_instance.isRightCombination || sumBig!=1.5){
				errName = [];
				if(_instance.countSmall > 1 || _instance.countBig == 1) errName.push(error_AddSmallBlock);
				else errName.push(error_AddBigOrTwoSmallBlock);
				_instance.isRightCombination = false;
			}
		}
		if(sumBig >= 2 && sumBig < 3){
			_instance.complectName.push(_instance.preComplectName + 'Универсал');
			if(!_instance.isRightCombination || sumBig!=2){
				//errName = error_AddRemoveSmallBlock;
				isNext = !isNext;
			}
		}
		if((sumBig >= 3 && sumBig < 4) || isNext ){
			_instance.complectName.push(_instance.preComplectName + 'Универсал+');
			if(!_instance.isRightCombination || sumBig!=3){
				//errName = error_AddRemoveSmallBlock;
				isNext = !isNext;
			}
		}
		if((sumBig >= 4 && sumBig < 6) || isNext){
			_instance.complectName.push(_instance.preComplectName + 'Профессионал');
			if(!_instance.isRightCombination || sumBig!=4){
				//errName = error_AddRemoveSmallBlock;
				isNext = !isNext;
			}
		}
		if((sumBig >= 6 && sumBig < 9) || isNext){
			_instance.complectName.push(_instance.preComplectName + 'Мастер');
			if(!_instance.isRightCombination || sumBig!=6){
				//errName = error_AddRemoveSmallBlock;
				isNext = !isNext;
			}
		}
		if((sumBig >= 9 && sumBig < 12) || isNext){
			_instance.complectName.push(_instance.preComplectName + 'Аналитик');
			if(!_instance.isRightCombination || sumBig!=9){
				//errName = error_AddRemoveSmallBlock;
				isNext = !isNext;
			}
		}
		if((sumBig >= 12 && sumBig < 24) || isNext){
			_instance.complectName.push(_instance.preComplectName + 'Аналитик+');
			if(!_instance.isRightCombination || sumBig!=12){
				//errName = error_AddRemoveSmallBlock;
				isNext = !isNext;
			}
		}
		if(sumBig >= 24 || isNext){
			_instance.complectName.push(_instance.preComplectName + 'Максимум');
			if(!_instance.isRightCombination){
				//errName = error_AddRemoveSmallBlock;
				isNext = false;
			}
		}
		/*if(sumBig >= 12 || isNext){
			_instance.complectName.push(_instance.preComplectName + 'Аналитик+');
			if(!_instance.isRightCombination){
				//errName = error_AddRemoveSmallBlock;
				isNext = false;
			}
		}*/
		
		
		
		
		
		
		/*if(sumBig > 12){
			_instance.complectName = [];
			_instance.isRightCombination = true;
			errName = [];
		}
		else*/
		if(errName.length < 1 && _instance.isRightCombination && _instance.complectName.length > 1){
			errName.push("слишком много блоков для комплекта \""+_instance.complectName[0]+"\", слишком мало для \""+_instance.complectName[1]+"\"");
		}
		
		
		return errName;
	};
	
	
}