jQuery.QapTcha = {
	build : function(options)
	{
		var defaults = {
			disabledSubmit: true,
			txtLock : 'Ochrona AntySpam - przesuń suwak',
			txtUnlock : 'Ochrona aktywna'
		};

		if(this.length>0)
		return jQuery(this).each(function(i) {
			var 
				opts = $.extend(defaults, options),
				$this = $(this),
				form = $('form').has($this),
				Bar = jQuery('<div>',{'class':'bar'}),
				Clr = jQuery('<div>',{'class':'clr'}),
				bgSlider = jQuery('<div>',{'class':'bgSlider'}),
				Slider = jQuery('<div>',{'class':'Slider'}),
				Icons = jQuery('<div>',{'class':'IconLock'}),
				TxtStatus = jQuery('<div>',{'class':'TxtStatus',text:opts.txtLock}),
				inputQapTcha = jQuery('<input>',{name:'iQaptcha',value:generatePass(),type:'hidden'});
			
			/** Disabled submit button **/
			if(opts.disabledSubmit) form.find('input[type="submit"]').attr('disabled','disabled').addClass('ui-state-disabled');
			
			/** Construct DOM **/
			$(this).html('');
			TxtStatus.appendTo($this);
			Bar.appendTo($this);
			bgSlider.appendTo(Bar);
			Icons.insertAfter(bgSlider);
			Clr.appendTo($this);
			inputQapTcha.appendTo($this);
			Slider.appendTo(bgSlider);
			$this.show();
			
			Slider.draggable({
				containment: bgSlider,
				axis:'x',
				stop: function(event,ui){
					if(ui.position.left > 90)
					{
						Icons.removeClass('IconLock').addClass('IconLoad');
						$.ajax({
							url: 'ajax/qaptcha.php',
							data: {
								'qaptcha': inputQapTcha.val()
							},
							type: 'POST',
							dataType: 'json',
							success: function(data){
								if(data.error){
									message({msg: 'Autoryzacja odrzucona!<br /><br />Proszę spróbować ponownie.'});
								} else {
									//window.iQaptcha = inputQapTcha.val();
									//inputQapTcha.val("");
									Slider.draggable('disable').css('cursor','default');
									TxtStatus.text(opts.txtUnlock);
									Icons.removeClass('IconLoad').addClass('IconOpen');
									form.find('input[type="submit"]').removeAttr('disabled').removeClass('ui-state-disabled');
								}
							},
							error: function(data){
								message({msg: 'Błąd komunikacji! ('+data.status+')<br /><br />Proszę spróbować później lub skontaktować się z administracją systemu.', location: window.location, button: true});
							}
						});
					}
				}
			});
			
			function generatePass() {
				var chars = 'azertyupqsdfghjkmwxcvbn23456789AZERTYUPQSDFGHJKMWXCVBN';
				var pass = '';
				for(i=0;i<10;i++){
					var wpos = Math.round(Math.random()*chars.length);
					pass += chars.substring(wpos,wpos+1);
				}
				return pass;
			}
			
		});
	}
};
jQuery.fn.QapTcha = jQuery.QapTcha.build;

