//Regular expression to check e-mail address validity
var emailRegExp = new RegExp("[\.\-_a-zA-Z]+@[\.\-_a-zA-Z]+\.[a-zA-Z]{2,4}");
var zipRegExp = new RegExp("[0-9]{3,6}");


function validateRegistrationForm(aForm) {
	if(aForm.elements['user_firstname'].value == "") {
		alert('Please fill in the First Name');
		return false;
	}
	if(aForm.elements['user_lastname'].value == "") {
		alert('Please fill in the Last Name');
		return false;
	}
	if(aForm.elements['user_company'].value == "") {
		alert('Please fill in the Company');
		return false;
	}
	if(aForm.elements['user_zip'].value == "") {
		alert('Please fill in the Zip code');
		return false;
	} else {

		if (!aForm.elements['user_zip'].value.match(zipRegExp)) {
			alert("Please enter a valid Zip code");
			return false;
		}		
	}
	if(aForm.elements['user_city'].value == "") {
		alert('Please fill in the City');
		return false;
	}
	if(aForm.elements['user_country'].value == "") {
		alert('Please fill in the Country');
		return false;
	}
	if(aForm.elements['user_email'].value == "") {
		alert('Please fill in the E-Mail Address');
		return false;
	} else {

		if (!aForm.elements['user_email'].value.match(emailRegExp)) {
			alert("Please enter a valid E-Mail Address");
			return false;
		}		
	}

	//Check Group Requests	
	if(aForm.elements['groups_femtoldv'].checked && aForm.elements['groups_femtoldv_serial'].value == "") {
		alert('Please fill in the Femto_LDV Serialnumber');	
		return false;
	}
	if(aForm.elements['groups_pascal'].checked && aForm.elements['groups_pascal_serial'].value == "") {
		alert('Please fill in the Pascal Serialnumber');	
		return false;
	}
	if(aForm.elements['groups_amadeus'].checked && aForm.elements['groups_amadeus_serial'].value == "") {
		alert('Please fill in the Amadeus Serialnumber');	
		return false;
	}
	if(aForm.elements['groups_galilei'].checked && aForm.elements['groups_galilei_serial'].value == "") {
		alert('Please fill in the Galilei Serialnumber');	
		return false;
	}
	if(aForm.elements['groups_maxwell'].checked && aForm.elements['groups_maxwell_serial'].value == "") {
		alert('Please fill in the Maxwell Serialnumber');	
		return false;
	}
	if(aForm.elements['groups_ziemercust'].checked && aForm.elements['groups_ziemercust_contact'].value == "") {
		alert('Please fill in the your Contact (Ziemer)');	
		return false;
	}
	if(aForm.elements['groups_distributor'].checked && aForm.elements['groups_distributor_contact'].value == "") {
		alert('Please fill in the your Contact (Distributor)');	
		return false;
	}


	// Everything fine, proceed
	return true;
}

function clearTextArea(aTextArea) {
	if(aTextArea.value == "enter comments here...") {
		aTextArea.value = "";
	}
}

function toggleFields_Return(aCheckBox) {
	var bElements=new Array("billing_name","billing_contact","billing_country","billing_address","billing_city","billing_phone");
	var bgColor;
		
	if(aCheckBox.checked) {
		bgColor = "#eaeaea";
	} else {
		bgColor = "white";
	}
	
	for(i=0;i<bElements.length;i++) {
		aCheckBox.form.elements[bElements[i]].disabled = aCheckBox.checked;
		aCheckBox.form.elements[bElements[i]].style.backgroundColor = bgColor;
	}
}

/**
 * This function sets the disabled state to the state of another element (currently only checkboxes)
 */
function toggleDisableState(anElement,elementToDisable) {
	var state, type;
	
	//Get the state
	if(anElement.type == "checkbox") {
		state = !anElement.checked;
	}
	
	//Set the state
	type = anElement.form.elements[elementToDisable].type;
	
	if(type == "select-one" || type == "select-multiple") {
		element = anElement.form.elements[elementToDisable];
		element.disabled = !anElement.checked;
	}
	else {
		for(i = 0; i < anElement.form.elements[elementToDisable].length; i++) {
			element = anElement.form.elements[elementToDisable][i];
			element.disabled = !anElement.checked;
		}
	}
	
}

function openLinkInNewWindow(aLink, windowName) {
	window.open(aLink,windowName,'width='+screen.width *0.99+',height='+screen.height*0.9+',left=0,top=0');
}

function setDisabledState(elementToDisable,state) {
	elements = document.getElementsByName(elementToDisable);
	for (i = 0; i < elements.length; i++) {
		elements[i].disabled = state;
	}
}

