var selectedValues = new Array();

/**
 * Update the contents of a field
 */
function updateField(boxToUpdateId, newValue, box) {
	if ( !document.getElementById || !document.createElement )
		return false;

	if ( !box.checked ) {
		var tempValues = selectedValues;
		var n = 0;
		selectedValues = new Array();

		for ( var i = 0; i < tempValues.length; i++ ) {
			if ( tempValues[i] != newValue )
				selectedValues[n++] = tempValues[i];
		}
	} else {
		selectedValues[selectedValues.length] = newValue;
	}

	var textValue = '';
	for ( var i = 0; i < selectedValues.length; i++ ) {
		textValue += selectedValues[i];

		if ( i < selectedValues.length-1 )
			textValue += ', ';
	}

	var boxToUpdate = document.getElementById( boxToUpdateId );
	boxToUpdate.value = textValue;
}

// Make sure $ function doesn't conflict with other libraries 
jQuery.noConflict();
(function($){
    $(document).ready(function(){
        $('#ordercatalogform').each(function(){
            var form = $(this);
            var downloadField = $('#downloadField');
            
            form.find('input#Download').click(function(){
                downloadField.attr('value','Ja');
            });

            form.find('input#SendMail').click(function(){
                downloadField.attr('value','Nei');
            });
        });
        $('form#appform').validate({
            rules: {
                // Firstname
                ContentObjectAttribute_ezstring_data_text_2234: {
                    required: true
                },
                // Lastname
                ContentObjectAttribute_ezstring_data_text_2235: {
                    required: true
                },
                // Address
                ContentObjectAttribute_ezstring_data_text_2236: {
                    required: true
                },
                // Zip
                ContentObjectAttribute_ezstring_data_text_2237: {
                    required: true
                },
                // Area
                ContentObjectAttribute_ezstring_data_text_2238: {
                    required: true
                },
                // Phone
                ContentObjectAttribute_ezstring_data_text_2239: {
                    required: true
                },
                // Birthdate
                ContentObjectAttribute_ezstring_data_text_2240: {
                    required: true
                },
                // Email
                ContentObjectAttribute_ezstring_data_text_2241: {
                    required: true,
                    email: true
                },
                // Study place
                ContentObjectAttribute_ezstring_data_text_2244: {
                    required: true
                },
                agreement: {
                    required: true
                }
            },
            messages: {
                // Firstname
                ContentObjectAttribute_ezstring_data_text_2234: {
                    required: 'Fornavn mangler'
                },
                // Lastname
                ContentObjectAttribute_ezstring_data_text_2235: {
                    required: 'Etternavn mangler'
                },
                // Address
                ContentObjectAttribute_ezstring_data_text_2236: {
                    required: 'Adresse mangler'
                },
                // Zip
                ContentObjectAttribute_ezstring_data_text_2237: {
                    required: 'Postnummer mangler'
                },
                // Area
                ContentObjectAttribute_ezstring_data_text_2238: {
                    required: 'Sted mangler'
                },
                // Phone
                ContentObjectAttribute_ezstring_data_text_2239: {
                    required: 'Telefon mangler'
                },
                // Birthdate
                ContentObjectAttribute_ezstring_data_text_2240: {
                    required: 'Fødselsdato mangler'
                },
                // Study place
                ContentObjectAttribute_ezstring_data_text_2244: {
                    required: 'Du må velge studie, studieby og oppstartstid'
                },
                // Email
                ContentObjectAttribute_ezstring_data_text_2241: {
                    required: 'Epost mangler',
                    email: 'Du må skrive en gyldig epostadresse'
                },
                agreement: {
                    required: 'Du må lese og godta Utdanningshusets betingelser'
                }
            },
            errorPlacement: function(error, element) {
                element.parent().prepend(error);
            }
        });

        $('form#ordercatalogform').validate({
            rules: {
                // Firstname
                ContentObjectAttribute_ezstring_data_text_2132: {
                    required: true
                },
                // Lastname
                ContentObjectAttribute_ezstring_data_text_8636: {
                    required: true
                },
                // Address
                ContentObjectAttribute_ezstring_data_text_2133: {
                    required: function(){
                        return $('input#downloadField').val() === 'Nei'
                    }
                },
                // Zip
                ContentObjectAttribute_data_integer_7198: {
                    required: function(){
                        return $('input#downloadField').val() === 'Nei'
                    },
                    range: [0,9999]
                },
                // Area
                ContentObjectAttribute_ezstring_data_text_2135: {
                    required: function(){
                        return $('input#downloadField').val() === 'Nei'
                    }
                },
                // Phone
                ContentObjectAttribute_ezstring_data_text_5001: {
                    required: true
                },
                // Email
                ContentObjectAttribute_ezstring_data_text_7422: {
                    required: true,
                    email: true
                },
                // Study place 
                ContentObjectAttribute_ezstring_data_text_2458: {
                    required: true
                },
                // Study 
                ContentObjectAttribute_ezstring_data_text_2478: {
                    required: true
                }
            },
            messages: {
                // Firstname
                ContentObjectAttribute_ezstring_data_text_2132: {
                    required: 'Fornavn mangler'
                },
                // Lastname
                ContentObjectAttribute_ezstring_data_text_8636: {
                    required: 'Etternavn mangler'
                },
                // Address
                ContentObjectAttribute_ezstring_data_text_2133: {
                    required: 'Adresse mangler'
                },
                // Zip
                ContentObjectAttribute_data_integer_7198: {
                    required: 'Postnummer mangler',
                    range: 'Postnummer må være et tall mellom 0 og 9999'
                },
                // Area
                ContentObjectAttribute_ezstring_data_text_2135: {
                    required: 'Sted mangler'
                },
                // Phone
                ContentObjectAttribute_ezstring_data_text_5001: {
                    required: 'Telefon mangler'
                },
                // Email
                ContentObjectAttribute_ezstring_data_text_7422: {
                    required: 'Epost mangler',
                    email: 'Du må skrive en gyldig epostadresse'
                },
                // Study place
                ContentObjectAttribute_ezstring_data_text_2458: {
                    required: 'Du må velge studiested'
                },
                // Study
                ContentObjectAttribute_ezstring_data_text_2478: {
                    required: 'Du må velge minst ett studie'
                }
            },
            errorPlacement: function(error, element) {
                element.parent().prepend(error);
            }
        });        

        $('form.oppringt_form').validate({
            rules: {
                // Phone
                ContentObjectAttribute_data_integer_7366: {
                    required: true
                }
            },
            messages: {
                // Phone
                ContentObjectAttribute_data_integer_7366: {
                    required: 'Telefonnummer mangler'
                }
            },
            errorPlacement: function(error, element) {
                element.parent().prepend(error);
            }
        });          
        
        var directLinks = $('#direct_links');

        $('#direct_link_button').bind('click', function(){
            directLinks.toggle();
        });

        $('.direct_links_close').bind('click', function(){
            directLinks.hide();
        });
        
        var selectedStudy = '';
        var selectedCity  = '';
    
        var studySelect   = $('#studies_selection');
        var citySelect    = $('#cities_selection');
        var startSelect   = $('#start_selection'); 
        
        // Populate the city select box when you select a study 
        studySelect.bind('change', function(e){
            var study = e.target.value;
            selectedStudy = study;
    
            // A study was selected, populate list
            if( study ) {
                // Get list of cities for the selected study
                var cities = studyCities[study];
                
                // Sort cities alphabetically
                cities.sort();
                
                // Remove duplicate cities
                cities = jQuery.grep( cities, function(n, i) {
                    next = i + 1;
                    return( n != cities[next] );
                });
    
                // Clear previous values
                citySelect.html('');
                startSelect.html('');
                
                // Loop through each city and add an option element to the select box
                var options = '<option value="" selected="selected">-- Velg studieby --</option>';
                jQuery.each( cities, function(){
                    options += '<option value="' + this + '">' + this + '</option>';
                });
                citySelect.html(options);
                
                // Set selected item by value
                citySelect.val('');
            }
            // Remove all options from the city and start select boxes
            else {
                citySelect.html('');
                startSelect.html('');
            }
        });
        
        // Populate the start select box when you select a city 
        citySelect.bind('change', function(e){
            var city = e.target.value;
            selectedCity = city;
            
            // A study and city has been selected, populate list
            if ( selectedStudy && selectedCity ) {
                var studyStartTimes = startTimes[selectedStudy + selectedCity];
    
                // Loop through each study and add an option element to the select box
                var options = '<option value="" selected="selected">-- Velg oppstartstid --</option>';
                jQuery.each( studyStartTimes, function(){
                    options += '<option value="' + this + '">' + this + '</option>';
                });
                startSelect.html(options);
    
                // Set selected item by value
                startSelect.val('');
            }
            // Remove all options from the start select box
            else {
                startSelect.html('');
            }
        });
    });    
})(jQuery);

