//$().ready(function(){
	
	$.fn.POrder = function(options){
		var options = this.options = {
			eventName: 'click',
			container: $('.bl_part_order .part_order_steps'),
			id: null,
			steps: []
		};
		$.extend(this.options, options);
		var step = 1;
		context = {options: options, step: step};
		obj = this;
		var open = function(){
			options.container.choiceDialog({width:750, cls:'style1 round'}, function(item){  });
			options.container.makeControls();
			options.container.bind('next', function(event, args){ 
				//if (args.step == 1)
					$.fn.validate = function(){ return validate(args); }
			});
			
			$('.actions .do_prev', options.container).addClass('btn_prev_');
			
			$('.actions .do_prev', options.container).live('click', prev);
			$('.actions .do_next', options.container).live('click', next);
			
			options.id = $(this).attr('id');
			
			for (i in options.steps){
				if (callback = options.steps[i]){
					callback(context);
				}
			}
			
			return false;
		}
		var prev = function(){
			if (step > 1)
				step--;
			
			if (step < 1)
				return false;
			
			$.fn.validate = null;
			options.container.trigger('prev');
			if (typeof $().validate == 'function'){
				if (!$().validate()){
					step++;
					return false;
				}
			}
			
			if (step < options.steps.length)
				$('.actions .do_next', options.container).removeClass('btn_next_');
				
			if (step == 1)
				$('.actions .do_prev', options.container).removeClass('btn_prev_').addClass('btn_prev_');
			
			/*for (var i = step; i < steps.length; i++)
				$('.part_order_steps .step' + i).removeClass('hidden').addClass('hidden');*/
			
			$('.step' + (step + 1), options.container).removeClass('hidden').addClass('hidden');
			$('.step' + step, options.container).removeClass('hidden');
			
			options.container.trigger('on_step' + step);
			options.container.trigger('change');
			
			return false;
		}
		var next = function(){
			if (step < options.steps.length)
				step++;
			
			if (step > options.steps.length)
				return false;
			
			$.fn.validate = null;
			options.container.trigger('next', {step:step - 1});
			if (typeof $().validate == 'function'){
				if (!$().validate()){
					step--;
					return false;
				}
			}
			
			if (step == options.steps.length){
				submit();
				$('.actions .do_next', options.container).removeClass('btn_next_').addClass('btn_next_');
			}
			
			if (step > 1)
				$('.actions .do_prev', options.container).removeClass('btn_prev_');
			
			$('.step' + (step - 1), options.container).removeClass('hidden').addClass('hidden');
			$('.step' + step, options.container).removeClass('hidden');
			
			options.container.trigger('on_step' + step);
			options.container.trigger('change');
			
			return false;
		}
		var validate = function(args){
			var val = true;
			
			$('.form .step .message', options.container).remove();
			
			$('.form .step' + args.step + ' .require', options.container).each(function(i){
				if (!$(this).hasValue() && val){
					$('.form .message', options.container).showMessage($(this));
					val = false;
				}
			});
			
			return val;
		}
		var submit = function(){
			//validate();
			
			$('.actions .do_next', options.container).hide();
			$('.actions .do_prev', options.container).hide();
			
			$('.form .textbox', options.container).each(function(i){
				if ($(this).val() == $(this).attr('ovalue') && !$(this).attr('custom'))
					$(this).val('');
			});
			
			setTimeout(function(){ options.container.trigger('close', {callback: function(){ $('.form', options.container).submit(); }}); }, 2000);
		}
		
		$(this).live(this.options.eventName, open);
		
		this.addStep = function(callback){
			options.steps[options.steps.length] = callback;
			
			return obj;
		}
		
		this.getStep = function(){
			return step;
		}
		
		$.fn.getPOrder = function(){ return obj; }
		
		return obj;
	}
	
//});
