var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

window.addEvent('domready', function() {
	
	/* Pop-under function */
  MAPPER = {
	  'body' : $('reg_half'),
	  'freetest' : null, 
	  'gender' :  $('genderbox'),
	  'gender_male' : $('male'),
	  'gender_female' : $('female'),
	  'firstname': $('firstname'),
	  'halfreg': $('submit_halfreg'),
	  'fulreg': $('submit_fullreg'),
	  'street': $('street'),
	  'country': $('landselect'),
	  'extra' : $('no_thanks')
  }
	map_elements();
	
	/* General */
	dateandtime();
	
	if($('reg_half')) {
		/* Moolidator */
		var mooli = new moolidator('form_master', { 
			onSubmitDo:'enableFields()',
			submitButton: 'submit'
		});	
	
		/* Color Chooser */
		$('color_chooser').setStyle('background-position','0px 0px'); // sets red als default color for the color chooser - change color by using '0px -198px', '0px -396px', etc
		var curColor = 0; 											  // defines red color as default
		$('car_image2').addClass('inactiveColor');					  // sets CSS class 'inactiveColor' for the DIV box, that is currently invisible (faded out).
		$('car_image2').fade('hide');
		
		$$('area').each(function(el,ndx){
			el.addEvent('mouseover', function(){
				bgPos = '0px ' + (-1 * ndx * 198) + 'px';
				$('color_chooser').setStyle('background-position',bgPos);
			});
			
			el.addEvent('mouseout', function(){
				bgPos = '0px ' + (-1 * curColor * 198) + 'px';
				$('color_chooser').setStyle('background-position',bgPos);
			});
			
			el.addEvent('click', function(){
				$('color_chooser').setStyle('background-position',bgPos);
				switch(ndx){
					case 0	: var carColor = 'Volcano Red';
							  break;
					case 1	: var carColor = 'Monza Silver';
							  break;
					case 2	: var carColor = 'Ice Silver';
							  break;
					case 3	: var carColor = 'Dakota Grey';
							  break;
					case 4	: var carColor = 'Scuba Blue';
							  break;
					case 5	: var carColor = 'Condor Grey';
	}
				$('color_text').set('html',carColor);
				swapImage(carColor);
				curColor = ndx.toInt();
				//Cookie.write('myColor',carColor);
				$('special_wish').setProperty('value',carColor);
			});
		});
		
		function swapImage(imgName){
			bgStyle = 'transparent url(/wingame/45/images/audia3_' + (imgName.toLowerCase()).replace(/\s/g,'') + '.jpg) left top no-repeat';
			if($('car_image2').hasClass('inactiveColor')){
				$('car_image2').setStyle('background',bgStyle);
				$('car_image2').fade('in');
				$('car_image2').removeClass('inactiveColor');
				$('car_image1').addClass('inactiveColor');
			}else{
				$('car_image1').setStyle('background',bgStyle);
				$('car_image2').fade('out');
				$('car_image2').addClass('inactiveColor');
				$('car_image1').removeClass('inactiveColor');
	}
	}
	} else {
		/* change Audi image to chosen color */
		if($('special_wish')){
			chosenColor = $('special_wish').getProperty('value');
		} else {
			chosenColor = 'Volcano Red';
	}
		bgStyle = 'transparent url(/wingame/45/images/audia3_' + (chosenColor.toLowerCase()).replace(/\s/g,'') + '.jpg) left top no-repeat';
		$('car_image2').setStyle('background',bgStyle);	
	}
	
	if($('reg_full')) {
		/* Moolidator */
		var mooli = new moolidator('form_master', { 
			onSubmitDo:'enableFields()',
			submitButton: 'submit'
		});

		/* change form depending on chosen country */
		var ff_zipcode = [];
		ff_zipcode['trigger'] = 'zipcode';
		ff_zipcode['regex'] = /\d{4}/i;
		ff_zipcode['target'] = ['city','province'];
		ff_zipcode['url'] = '/cgi-bin/australia_get_str.pl?postcode=';
		ff_zipcode['moolidator_rules'] = ['digit','length[4,4]','group[city]'];
		ff_zipcode['moolidator_rules_invalid'] = ['invalid','length[4,4]','group[city]'];
		var ff_mapping = [ff_zipcode];
		var ff_city = [];
		ff_city['target'] = 'city';
		ff_city['caption'] = 'Please select a suburb';
		ff_city['value'] = '';
		var ff_pre_option = [ff_city];
		
		ff = new fill_form(ff_mapping, ff_pre_option, {
			moolidator: mooli,
			form: 'form_master'
		});
		
		$('landselect').addEvent('change', function() {
			if($('landselect').get('value') == '1') {
				mooli.setClass('tel_number',['digit','length[8,8]','group[tel_areacode]']);
				mooli.removeClass('city');
				$$('#tel_areacode option[value=09]')[0].set('html', '08');
				$$('#tel_areacode option[value=09]')[0].set('value', '08');
				ff.fill = true;
				toggle_city('select');
				mooli.setClass('city',['required','group[zipcode]']);
				$('zipcode').focus();
				$('zipcode').blur();
			} else {
				mooli.setClass('tel_number',['digit','length[6,8]','group[tel_areacode]']);
				mooli.removeClass('city');
				$$('#tel_areacode option[value=08]')[0].set('html', '09');
				$$('#tel_areacode option[value=08]')[0].set('value', '09');
				$('tel_areacode').style.height = '20px';
				ff.fill = false;
				toggle_city('input');
				mooli.setClass('city',['wingame_city','wingame_negate_city','group[zipcode]']);
				mooli.setClass('zipcode',['digit','length[4,4]','group[city]']);
			}
		});
		
		if($('landselect').get('value') == '2') {
			mooli.setClass('tel_number',['digit','length[6,8]','group[tel_areacode]']);
			mooli.removeClass('city');
			$$('#tel_areacode option[value=08]')[0].set('html', '09');
			$$('#tel_areacode option[value=08]')[0].set('value', '09');
			ff.fill = false;
			toggle_city('input');
			mooli.setClass('city',['required','group[zipcode]']);
		}
		
		if($('zipcode').get('value') != '') {
			$('zipcode').focus();
			$('zipcode').blur();
		}

		/* Audi details animation */
		var myFx = new Fx.Tween('car_details', {
			duration: 'long',
    		transition: Fx.Transitions.Sine.easeOut,
    		property: 'left'
		});
		
		myFx.start(281, 0);
	}

	$(document.body).addEvents({
		'mouseenter': function(){
			nolink = false;
		},
		'mouseleave': function(){
			nolink = true;
		}
	});
});

/* change form depending on chosen country */
function toggle_city(tag) {
	if($('city').get('tag') != tag) {
		var city = $('city');
		var city_alt = $('city_alt');
		city.setStyle('display','none');
		city_alt.setStyle('display','inline');
		city.set('id','city_alt');
		city_alt.set('id','city');
		city.set('name','city_alt');
		city_alt.set('name','city');
		city_alt.addClass('w5');
		if(tag == 'select') $('state_territory').setStyle('visibility','visible');
		else $('state_territory').setStyle('visibility','hidden');
}
	} 

/* date and time function */
function dateandtime() {
	var jetzt = new Date();
	
	var Tag = jetzt.getDate();
	if (Tag < 10) Tag = '0' + Tag;
	
	var Monat = jetzt.getMonth() + 1;
	if (Monat < 10) Monat = '0' + Monat;
	var MonatText = months[jetzt.getMonth()];
	
	var Jahr = jetzt.getFullYear();

	var Stunden = jetzt.getHours();
	if (Stunden < 10) Stunden = '0' + Stunden;

	var Minuten = jetzt.getMinutes();
	if (Minuten < 10) Minuten = '0' + Minuten;

	var Sekunden = jetzt.getSeconds();
	if (Sekunden < 10) Sekunden = '0' + Sekunden;
	
	var tageszeit = '';
	if (Stunden > 11) { tageszeit = ' pm'; }
	else { tageszeit = ' am'; }
	
	if($('datetime')) $('datetime').innerHTML = 'You are still within the deadline: ' +Tag+ '/'+Monat+'/'+Jahr+' at '+Stunden+':'+Minuten+' today.';
	if($('dateonly')) $('dateonly').innerHTML = Tag+ ', ' + MonatText;
}

function enableFields(){
	$$('#form_master :disabled').each(function(element) {
		element.removeProperty('disabled');
	});
}		

