var formCheck = null;
var spinner = null;
var lang_arr = new Array();
if( lang == '' ) // polish
	lang_arr = [{
	    'file'				: 'Plik',
	    'wrong_lp'			: 'Zły login lub hasło',
	    'del'			: 'Usuń',
	    'question_send'		: 'Zapytanie zostało wysłane, dziękujemy!',
	    'choice'			: 'Wybierz...',
	    'add_to_continue'	: 'Dodaj produkty do zamówienia aby kontunować.',
	    'order_done'		: 'Dziękujemy za złożenie zamówienia, szczegóły zamówienia zostały wysłane na twój adres e-mail.<br /><a href="strefa-klienta.html">Powrót do strefy klienta</a>'
	}];
else // english
	lang_arr = [{
		'file'				: 'File',
		'wrong_lp'			: 'Wrong login or password',
		'del'			: 'Delete',
	    'question_send'		: 'Your request has been sent, thank you!',
	    'choice'			: 'Choose...',
	    'add_to_continue'	: 'Add products to Your order to continue.',
	    'order_done'		: 'Thank you for Your order, details of the orders were sent to your e-mail.<br /><a href="strefa-klienta.html">Back to Customer Zone</a>'
	}];

function finish_upload( file, data ) {
	var data = JSON.decode(data);
	var attachments = $('attachments');
	if( !data.success ) {
		var msg = new Element('div', {
			'class': 'rows-attach',
			'html': data.msg
		});
		attachments.adopt( msg );
		msg.blink();
		(function() { msg.destroy() }).delay(4000);
		return;
	}
	var file = new Element('div', {
		'class': 'rows-attach',
		'id': 'row' + data.id,
		'html': '<span class="delete_attach" id="delete' + data.id + '">' + lang_arr[0].del + '</span>' + lang_arr[0].file + ': ' + data.name
	});
	
	file.setStyle('opacity', 0);
	attachments.adopt( file );
	file.tween('opacity', 1);
	
	$('delete' + data.id).addEvent('click',function() {
		new Request.JSON({
			url: 'users/delete_attachment/' + data.id,
			onSuccess: function(res) {
				$('row' + data.id).tween('opacity', 0);
				(function(){$('row' + data.id).destroy()}).delay(1000);
			}
		}).send();
	});
}

function blink(element, className, count, time) {
	element = $(element) || this;
	className = className || 'blink';
	count = count || 5;
	time = time || 220;
	
	if (!(count % 2 == 0)) ++count;
	
	function tc(cls) { this.toggleClass(cls); }
	
	for (var i = 1; i <= count; i++) {
		tc.delay(time * i, element, className);
	}
}

Element.implement('blink', function(element){
	blink.delay(0, this, element);
	return this;
});

var formCheckConfig = {
	submit: false,
	submitByAjax: true,
	flashTips: 1,
	display: {
		errorLocation: 1, 
		indicateErrors: 1, 
		showErrors: 1,
		addClassErrorToField: 1,
		titlesInsteadNames: true,
		fadeDuration: 0,
		scrollToFirst: true
	},
	onAjaxRequest: function() {
		spinner = new Spinner('content');
		spinner.show();
	},
	onAjaxSuccess: function( res ) {
		spinner.hide();
		var response = JSON.decode( res );
		switch( response.type ) {
			case 'question':
				if( response.success ) {
					$('content').set('html', '<div class="center-text">Zapytanie zostało wysłane, dziękujemy!</div>');
				} else {
					(function() {
						if( response.data == 'error_msg' ) {
							var rnd_id = $random(1,1000);
							var msg = new Element('div', {
								'id': 'message' + rnd_id,
								'class': 'center-text',
								'style': 'padding: 10px;border: 1px solid #D7B4A4',
								'html': response.msg
							});
							$('content').grab(msg,'top');
							(function(){$('message' + rnd_id).morph('.no-height-no-opacity')}).delay(2000);
							(function(){$('message' + rnd_id).destroy()}).delay(3000);
						} else {
							var ref = $(response.data[0]);
							ref.errors.push(response.msg);
							formCheck.addError(ref);
						}
					}).delay(600);
				}
				break;
			case 'register':
				if( !response.success ) {
					spinner.hide();
					var ref = $(response.data[0]);
					ref.errors.push(response.msg);
					formCheck.addError(ref);
				} else {
					location.href = response.href;
				}
				break;
			case 'login':
				if( !response.success ) {
					spinner.hide();
					var ref = $('login');
					ref.errors.push(lang_arr[0].wrong_lp);
					formCheck.addError(ref);
				} else {
					if( response.msg ) {
						spinner.hide();
						var ref = $('login');
						ref.errors.push(response.msg);
						formCheck.addError(ref);
					} else {
						location.href = response.href;
					}
				}
				break;
		}
	}
};

window.addEvent('domready',function() {
	$$('a').setProperty('onfocus','blur()');
	$$('.form').each(function(form){
		form.getElements('input[type=password]').addEvent('keypress', function(event){
			if (event.key == 'enter') form.fireEvent('submit');
		});
	});
	
	if( $('question-form') ) {
		formCheck = new FormCheck('question-form', formCheckConfig);
	}
	
	if( $('supplier-form') ) {
		formCheck = new FormCheck('supplier-form', formCheckConfig);
	}
	
	if( $('login-form') ) {
		formCheck = new FormCheck('login-form', formCheckConfig);
	}
	
	if( $('register-form') ) {
		formCheck = new FormCheck('register-form', formCheckConfig);
	}
	
	if( $('products') ) {
		myCal = new Calendar({ date: 'd/m/Y' });
		$$('.add').each(function(item,i) {
			item.addEvent('click',function() {
				var id = this.getProperty('id').replace('add', '');
				if( $('package' + id).value == 'Wybierz...' ) {
					$('package' + id).blink();
					return false;
				}
				if( $('count' + id).value == '' || $('count' + id).value < 1 ) {
					$('count' + id).blink();
					return false;
				}
				new Request.JSON({
					url: 'carts/add/' + id,
					onRequest: function() {
						spinner = new Spinner('content');
						spinner.show();
					},
					onSuccess: function(res) {
						spinner.hide();
				    	if( res.success ) {
				    		var a = $('package' + id).getSelected().get('html');
					    	if( $('c-name' + id + '-' + $('package' + id).value) && $('c-size' + id + '-' +  $('package' + id).value).getElement('span').get('html') == res.pack ) {
					    		$('c-count' + id + '-' + $('package' + id).value).set('html', $('count' + id).value.toInt() + $('c-count' + id + '-' + $('package' + id).value).get('html').toInt() );
					    		$('c-sum' + id + '-' + $('package' + id).value).set('html', res.sum + 'zł' );
					    		$('cart-row-' + res.success ).blink();
					    	} else {
						    	var div = new Element('div', {
						    		id: 'cart-row-' + res.success
						    	});
						    	div.adopt(
						    		new Element('div', {
						    			'class': 'ctb-01',
						    			'id': 'c-name' + id + '-' + $('package' + id).value,
						    			'html': res.name
						    		})
						    	);
						    	div.adopt(
						    		new Element('div', {
						    			'class': 'ctb-02',
						    			'id': 'c-size' + id + '-' + $('package' + id).value,
						    			'html': '<span>' + res.pack + '</span>kg'
						    		})
						    	);
						    	div.adopt(
						    		new Element('div', {
						    			'class': 'ctb-03',
						    			'id': 'c-count' + id + '-' + $('package' + id).value,
						    			'html': $('count' + id).value
						    		})
						    	);
						    	div.adopt(
						    		new Element('div', {
						    			'class': 'ctb-05',
						    			'id': 'c-price' + id + '-' + $('package' + id).value,
						    			'html': res.price + 'zł'
						    		})
						    	);
						    	div.adopt(
						    		new Element('div', {
						    			'class': 'ctb-05',
						    			'id': 'c-sum' + id + '-' + $('package' + id).value,
						    			'html': res.sum + 'zł'
						    		})
						    	);
						    	div.adopt(
						    		new Element('div', {
						    			'class': 'ctb-04',
						    			'id': 'c-delete' + res.success,
						    			'html': '<img src="media/images/delete.png" alt="Usuń" title="Usuń" />'
						    		})
						    	);
						    	div.adopt(
						    		new Element('span', {
						    			'class': 'clear'
						    		})
						    	);
						    	$('cart').adopt( div );
						    	$('c-delete' + res.success).addEvent('click', function() {
						    		delete_row( this );
						    	});
					    	}
					    	$('sum').set('html', $('sum').get('html').toInt() + ( $('count' + id).value.toInt() * res.pack.toInt() ) );
					    	$('price_sum').set('html', $('price_sum').get('html').toInt() + ( $('count' + id).value.toInt() * res.price.toInt() * res.pack.toInt() ) );
				    	}
				    }
				}).post({
					'count': $('count' + id).value,
					'package': $('package' + id).value
				});
			});
		});
		$$('.delete').addEvent('click',function() {
			delete_row( this );
		});
		
		$('order-button').addEvent('click',function() {
			new Request.JSON({
				url: 'carts/isEmpty',
				onSuccess: function( res ) {
					if( res.success ) {
						if( $('date').value != '' )
							new Request.JSON({
								url: 'carts/saveDate',
								onSuccess: function( res ) {
									spinner = new Spinner('content');
									spinner.show();
									location.href = 'potwierdzenie-zamowienia.html';
								},
								onFailure: function() {
									console.log('failure');
								}
							}).post({
								date: $('date').value
							});
						else
							$('date').blink();
					} else {
						var div = new Element('div', {
							'class': 'center-text',
							'style': 'padding: 10px;margin-top:0px;',
							'id': 'message',
							'html': 'Dodaj produkty do zamówienia aby kontunować.'
						});
						$('cart').adopt(div);
						$('message').blink();
						(function(){$('message').destroy()}).delay(3000);
					}
				}
			}).send();
		});
	}
	
	function delete_row( obj ) {
		var id = obj.getProperty('id').replace('c-delete', '');
		new Request.JSON({
			url: 'carts/delete/' + id,
			onSuccess: function(res) {
				$('cart-row-' + id).tween('opacity', 0);
				$('sum').set('html', res.sum );
				$('price_sum').set('html', res.price_sum );
		    	(function() {$('cart-row-' + id).destroy();}).delay(1000);
		    }
		}).send();
	}
	if( $$('.packages') ) {
		$$('.packages').addEvent('change', function() {
			var id = this.getProperty('id').replace('package', '');
			new Request.JSON({
				url: 'users/getUserPrice/',
				onSuccess: function( response ) {
					if( response.success )
						$('price' + response.data[0].pid).set('html', response.data[0].price + 'zł');
			    }
			}).post({
				'id': id,
				'size': this.value
			});
		})
	}
	
	if( $('finish-order') ) {
		$('finish-order').addEvent('click',function() {
			spinner = new Spinner('content');
			spinner.show();
			new Request.JSON({
				url: 'carts/finish_order/',
				onSuccess: function(res) {
					if( res.success ) {
						var div = new Element('div', {
							'class': 'center-text',
							'html': 'Dziękujemy za złożenie zamówienia, szczegóły zamówienia zostały wysłane na twój adres e-mail.<br /><a href="strefa-klienta.html">Powrót do strefy klienta</a>'
						});
						(function() { $('content').set('html', ''); $('content').adopt(div); spinner.hide(); }).delay(300);
					}
			    }
			}).send();
		});
	}
	
	if( $('form1') ) {
		
		if( $$('.delete_attach') ) {
			$$('.delete_attach').each(function(item,i) {
				item.addEvent('click', function() {
					var id = item.getProperty('id').replace('delete', '');
					new Request.JSON({
						url: 'users/delete_attachment/' + id,
						onSuccess: function(res) {
							$('row' + id).tween('opacity', 0);
							(function(){$('row' + id).destroy()}).delay(1000);
						}
					}).send();
				});
			});
		}
		
		var upload2 = new SWFUpload({
				// Backend Settings
				upload_url: "upload",
				post_params: {
					'ssid': $('ssid').value
				},
		
				// File Upload Settings
				file_size_limit : "5000",
				file_types : "*.jpeg;*.jpg;*.gif;*.png,*.pdf,*.doc,*.odt",
				file_types_description : "Image Files",
				file_upload_limit : "4",
				file_queue_limit : "4",
		
				// Event Handler Settings (all my handlers are in the Handler.js file)
				file_dialog_start_handler : fileDialogStart,
				file_queued_handler : fileQueued,
				file_queue_error_handler : fileQueueError,
				file_dialog_complete_handler : fileDialogComplete,
				upload_start_handler : uploadStart,
				upload_progress_handler : uploadProgress,
				upload_error_handler : uploadError,
				upload_success_handler : uploadSuccess,
				upload_complete_handler : uploadComplete,
		
				// Button Settings
				button_image_url : "media/images/XPButtonUploadText_61x22.png",
				button_placeholder_id : "spanButtonPlaceholder2",
				button_width: 61,
				button_height: 22,
				
				// Flash Settings
				flash_url : "media/swfupload/swfupload/swfupload.swf",
		
				swfupload_element_id : "flashUI2",		// Setting from graceful degradation plugin
				degraded_element_id : "degradedUI2",	// Setting from graceful degradation plugin
		
				custom_settings : {
					progressTarget : "fsUploadProgress2",
					cancelButtonId : "btnCancel2"
				},
				debug: false
			});
		}
	
	if( $('bokses') ) {
		
		var step = 292;
		var now = 0;
		var bokses = new Fx.Scroll('bokses', {duration: 1000, wait: false});
		bokses.start(0,0);
		
		$('turn-left').addEvent('click',function() {
			if (now > 0) {
				bokses.start(now - step, 0);
				now -= step;
			}
		});
		
		$('turn-right').addEvent('click',function() {
			if( now >= 1740 ) return;
			bokses.start(now + step,0);
			now += step;
		});
		
	}
	
});
