if (!Innowise) var Innowise = {};

Innowise.lomake = {
	alustaLomake: function(lomake) {
		if (lomake) {
			lomake.oletusarvot = {};
			lomake.pakolliset = [];
			
			for (i=0; i < lomake.elements.length; i++) {
				var fieldName = lomake.elements[i].name;
				
				if (fieldName && lomake.elements[i].type.toLowerCase() != 'hidden') {
					lomake.oletusarvot[fieldName] = lomake.elements[i].value;
					var jqElement = jQuery(lomake.elements[i]);
					jqElement.focus(function(ev) {
						Innowise.lomake.nollaaLomakeKentta(this);
					});
					jqElement.blur(function(ev) {
						Innowise.lomake.palautaLomakeKentta(this);
					});
				} else if (fieldName == 'required') {
					lomake.pakolliset = lomake.elements[i].value.split(',');
					for (avain in lomake.pakolliset) {
						lomake.pakolliset[avain] = jQuery.trim(lomake.pakolliset[avain]); 
					}
				}
			}
		}
		jQuery(lomake).submit(function(ev) {
			var puuttuvat = new Array();

			//alert(this.toSource());
			
			Innowise.lomake.nollaaLomakeKentat(this);
			
			for (avain in this.pakolliset) {
				//alert('Checking: '+pakolliset[avain]);
				if (this[this.pakolliset[avain]] == 'undefined' || this[this.pakolliset[avain]].value == '') {
					puuttuvat.push(this.pakolliset[avain]);
					//alert(pakolliset[avain]+' is required.');
				}
			}

			//alert('Missing required fields: '+puuttuvat.toSource());

			if (puuttuvat.length != 0) {
				var virhe = '';
				for (avain in puuttuvat) {
					if (avain > 0) {
						virhe += "\n";
					}
					puuttuvat[avain] = puuttuvat[avain].charAt(0).toUpperCase()+puuttuvat[avain].substr(1);
					virhe += puuttuvat[avain]+' is required.';
				}

				for (avain in this) {
					Innowise.lomake.palautaLomakeKentta(this[avain]);
				}

				alert(virhe);

				return false;
			}
			
			//Muutetaan ennen lähettämistä utf8-kentät iso8859:ksi
			for (i=0; i < lomake.elements.length; i++) {
				if (lomake.elements[i].value) {
					lomake.elements[i].value = Innowise.utf8.utf8ToISO8859(lomake.elements[i].value);
				}
			}

			return true;
		});
	},

	nollaaLomakeKentat: function(lomake) {
		for (avain in lomake.oletusarvot) {
			var field = lomake[avain];
			if (field) {
				if (field.value == lomake.oletusarvot[avain]) {
					field.value = '';
				}
			}
		}
		return true;
	},

	nollaaLomakeKentta: function(el) {
		if (el) {
			if (el.form.oletusarvot[el.name] !== 'undefined' && el.value == el.form.oletusarvot[el.name]) {
				el.value = '';
			}
		}
	},

	palautaLomakeKentta: function(el) {
		if (el) {
			if (el.form.oletusarvot[el.name] !== 'undefined' && el.value == '') {
				el.value = el.form.oletusarvot[el.name];
			}
		}
	}
};

