window.addEvent('domready', function() {
	// Activating
	$('mats').setStyle('display','block');
	
	// Listen to radion buttons to determine input fields
	$$('#mats input[type=radio]').each(function(element){
		element.addEvent('click', function(event) {
			toggleAddress();
		});
	});
	$$('#mats input[type=radio]').each(function(element){
		element.addEvent('change', function(event) {
			toggleAddress();
		});
	});
	var toggleAddress = function() {
		var needAddress = false;
		var checkboxes = $$('#mats .snailmail');
		checkboxes.each(function(element){
			if (element.checked) {
				needAddress = true;
			}
		});
    if(needAddress) {
      $$('#street, #city').addClass('required');
      $$('#mats .needAddress').each(function(element){
        if (element.getStyle('display') == 'none') {
          if (Browser.Engine.name == 'trident' && Browser.Engine.version <= 5) {
            element.setStyle('display', 'block');
          } else {
            element.setStyle('display', 'table-row');
          }
        }
      });
    } else {
      $$('#street, #city').removeClass('required');
      $$('#mats .needAddress').each(function(element){
        element.setStyle('display', 'none');
      });
    }
    return needAddress;
	}
	
	// Language
	var errorLang = []
	if (typeof errorMessages != "undefined") {
		errorLang = errorMessages;
	} else { 
		errorLang[0] = "Du skal udfylde dette felt.";
		errorLang[1] = "Denne e-mail adresse blev ikke godkendt.";
		errorLang[2] = "Du har ikke afkrydset denne tjek-boks.";
		errorLang[3] = "Du har ikke valgt noget.";
		errorLang[4] = "Dette er et unormalt telefonnummer - er du sikker?";
		errorLang[5] = "henter...";
		errorLang[6] = "Advarsel: ";
	}
	
	// Graphics
	/*var inputFields = $$('#'+formid+' input[type=text], #'+formid+' select, #'+formid+' input[type=checkbox], #'+formid+' input[type=radio]');
	inputFields.each(function(element) {
		element.addEvent('focus', function(event){			
			element.getParent('tr').tween('background-color', '#E0E8EF');
		});
		element.addEvent('blur', function(event){
			element.getParent('tr').tween('background-color', '#fff');
		});
	});
	var textFields = $$('#'+formid+' textarea');
	textFields.each(function(element) {
		element.addEvent('focus', function(event){
			element.getParent('tr').tween('background-color', '#E0E8EF');
			element.tween('height', 100);
		});
		element.addEvent('blur', function(event){
			element.getParent('tr').tween('background-color', '#fff');
			
		});
	});*/
	
	// Validation
	validator = new Form.Validator.Inline(formid);
	validator.errorPrefix = errorLang[6];
	validator.warningPrefix = "";
	validator.add('required', {
		errorMsg: errorLang[0],
		test: function(element){
			if(element.value.length ==0) return false;
			else return true;
		}
	});
	validator.add('valEmail', {
		errorMsg: errorLang[1],
		test: function(element){
			email = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
			val = element.value;
			if(!email.test(val)) return false;
			else return true;
		}
	});
	validator.add('valCheckbox', {
		errorMsg: errorLang[2],
		test: function(element){
			if(!element.checked) return false;
			else return true;
		}
	});
	validator.add('valSelect', {
		errorMsg: errorLang[3],
		test: function(element){
			val = element.value;
			if(val == "0") return false;
			else return true;
		}
	});
	validator.add('valPhone', {
		errorMsg: errorLang[4],
		test: function(element){
			phone = /^\+?[0-9 ()-]+[0-9]$/;
			val = element.value.replace(' ', '');
			var numdigits = 0;
			for (var j=0; j<val.length; j++)
				if (val.charAt(j)>='0' && val.charAt(j)<='9') numdigits++;

			if(!phone.test(val) || 8>numdigits) return false;
			if(numdigits>12) return false;
			else return true;
		}
	});
	
	// Ajax	
	if (pageViewName != "") {
		pageViewName = pageViewName + "/";
	} 
	$(formid).addEvent('submit', function(e) {
		e.stop();
		if(validator.validate()) {
			$('iframe').value = "true";
			validator.reset();
			
			var log = $('log_res');
			log.setStyle('display', 'block');
			log.addClass('ajax-loading');
			log.morph({opacity:[0,1]});
			
			this.set('send', {onComplete: function(response) { 
				log.removeClass('ajax-loading');
				log.set('html', response);
				if ($('eventUpdateSuccess')) {
					$$('#'+formid+' input, #'+formid+' textarea').each(function(element){
						element.setProperty('disabled','disabled');
						element.addClass('disabled');
					});
                    pageTracker._trackPageview("/ajax/form/mats/"+pageViewName+"success");
                	//pageTracker._trackEvent('Form-Materials', 'Success', pageViewName, 10);
				} else {
                    pageTracker._trackPageview("/ajax/form/mats/"+pageViewName+"failure");
                	//pageTracker._trackEvent('Form-Materials', 'Failure', pageViewName, 0);
				}
			}});
			//Send the form.
			this.send();
		} else {
			log.set('html', '');
			log.morph({height:0});
		}
	});
	
	// Tooltips
		var genTip = new Tips('.thisisatooltip',{className:"tooltip"});
		
	// Toggle stars in address if needed
	toggleAddress();
});
