var validForm = false;

var validImg = new Image();
	validImg.src = '/Images/form_ok.png';
var invalidImg = new Image();
	invalidImg.src = '/Images/form_invalid.png';

function showError(msg) {
	var d = $('#errorDiv');
	d.text(msg);
	d.fadeIn('fast');
}


function hideError() {
	$('#errorDiv').fadeOut('fast');
}

function validateFile(field, is_rq) {

	var suppext = new Array('jpg','jpeg','jpe','gif','png');

	if(field.value == '' && !is_rq) return true;

	if(field.disabled) return true;

	suppext.findIndex = function(needle) {
		for(var i = 0; i < this.length; i++) {
			if(this[i] == needle) return i;
		}
		return -1;
	}

	var ind = field.value.lastIndexOf('.');
	if(ind) {
		var ext = field.value.substr(ind+1).toLowerCase();
		if(suppext.findIndex(ext) > -1) {
			field.className = '';
			hideError();
			return true;
		}
	}

	field.className = 'invalid';
	showError('Wybrany plik jest nieprawidłowy');

	return false;

}

function validateEmail(field) {
	var emailRegxp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	if(field.value.match(emailRegxp)) {
		field.className = '';
		hideError();
		return true;
	} else {

		field.className = 'invalid';
		showError('Wprowadzony adres e-mail jest nieprawidłowy');

		return false;
	}

}

var fid = 0;

function addFileField() {

	if(!validateFile(this,true) || !$('#typeMulti').attr('checked')) return;

	if(fid < 4) {
		var tr = $(document.createElement('tr'));
		var tdf = $(document.createElement('td'));
		var tdi = $(document.createElement('td'));
		var fi = $(document.createElement('input'));
			fid++;
			fi.attr('id', 'file'+fid);
			fi.attr('name', 'file'+fid);
			fi.attr('type', 'file');
			fi.attr('size', 40);
		
		tdf.appendTo(tr);
		tdi.appendTo(tr);
		fi.appendTo(tdf);
		
		tr.appendTo($('#uploadMulti table'));

		fi.bind('change',addFileField);

		return true;
	}
}

function validateUrl(field) {
	if(field.disabled) return true;

	var urlRegexp = /^(http):\/\/(\w+:{0,1}\w*@)?(\S+)(\.[a-zA-Z]{1,4})+(:[0-9]+)?(([?]+)|([\/]+)|([\/]+)([?]+))+([\w#!:.?+=&%@\-\/])+?$/

	if(field.value.toLowerCase().match(urlRegexp)) {
		hideError();
		field.className = '';
		return true;
	} else {

		field.className = 'invalid';
		showError('Wprowadzony adres URL jest nieprawidłowy');

		return false;
	}
}

$(function() {
	$("#uploader input[@type='radio']").bind('click',function() {
		var t = this.id.substr(4);
		
		$.each($('#uploadTypes div'),function(k,ob) {

			if(t == 'Multi') {
				$('#titleRow').hide();
			} else $('#titleRow').show();

			if(ob.id != 'upload'+t) {
				$(ob).hide('fast');
				$('input',ob).attr('disabled',true);
			} else {
				$('input',ob).attr('disabled',false);
				$(ob).show('fast');
			}
		});
	});

	$("#uploader input[@type='file']").bind('change', addFileField);

	$('#resample').bind('click',function() {
		$('#resampleRatio').attr('disabled',!this.checked);
	});


	$('#uploader').bind('submit',function() {
		if($('#typePhoto').attr('checked')) {

			if(!validateFile($('#file').get(0),true)) {

				return false;
			}

		} else if($('#typeMulti').attr('checked')) {

			var r = true;

			$("#uploadMulti input[@type='file']").each(function(i, el) {
				if(!validateFile(el, i == 0)) {
					r = false;
				}
			});

			if(!r) return r;

		} else if($('#typeUrl').attr('checked')) {

			if(!validateUrl($('#url').get(0))) {

				return false;
			}

		} else return false;

		if(!validateEmail($('#email').get(0))) {

			return false;
		}

		if(!$('#accept').attr('checked')) {

			showError('Musisz zaakceptować regulamin!');
			return false;
		}

		hideError();

		$('#uploader').hide();
		$('#progress').show();

		$("#uploadMulti input[@type='file']").each(function(i,el) {
			if(el.value == '') $(el).remove();
		});

		return true;

	});

});

