/*
 * Validation functions
 * Glenn De Backer <glenn@frucon.net>
 */
 
// global
var validated_correctly = true;

/*
 * retrieves value of radio buttons
 *
 */
function getRadioValue(id){
	var elem = document.forms[0].elements[id];
	
	for(i = 0;i<elem.length;i++){
		if(elem[i].checked){
			return elem[i].value;
		}
	}
	return -1;
}

/*
 * hides an element
 */
function hideElement(id){
	if (document.getElementById(id).style.visibility=="visible"){
		document.getElementById(id).style.visibility="hidden"; 
	};
}

/*
 * shows an element
 */
function showElement(id){
	if(document.getElementById(id).style.visibility != "visible"){	
		document.getElementById(id).style.visibility="visible";	
	}
}


/*
 * check if emailadress has correct form
 * @param object to check
 * @returns true if adress has the correct form
 */
function checkEmailAdressForm(obj){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(obj.value))
		return true;
	else{
		return false;
	}
}

/*
 * flag an element
 */
function flagElement(id){
	// flag the element
	document.getElementById(id).className="flagged";
}

/*
 *	resets all the flags
 *
 */
function resetFlags(){
	
	/* retrieve all td's */
	var nodeList = document.getElementsByTagName("td"); 
	
	/* make sure something was found */
	if(!nodeList ) return;

	/* iterate through the list */
	for( var i = 0; i < nodeList.length; i++ )
	{
		/* get an individual node */
		var Node = nodeList.item(i);
		
		/* if there was a field flagged reset it */
		if(Node.className =="flagged"){
			Node.className ="field";
		}
	} 
}

/*
 * check if obj is empty
 * @param object to check
 * @returns true if object is empty
 */
function isEmpty(obj){
	if(obj.value.length == 0){
		return true;
	}else{
		return false;
	}
}


function doJoin(){
	/* set validated correctly bool */
	 validated_correctly = true;	
	
	// reset flags
	resetFlags();
	
	// hides the error message (if visible)
	hideElement('error_msg');
	
	/*
	 * check if email was empty
	 */
	if(isEmpty(document.getElementById("txtEmail"))){
		validated_correctly = false;
		flagElement("fld_email");
		showElement("error_msg");
	}

	/*
	 * check if email was correct
	 */
	if(!checkEmailAdressForm(document.getElementById("txtEmail"))){
		validated_correctly = false;
		flagElement("fld_email");
		showElement("error_msg");
	}
	
	/*
	 * check if lastname was empty
	 */
	if(isEmpty(document.getElementById("txtLastName"))){
		validated_correctly = false;
		flagElement("fld_lastname");
		showElement("error_msg");
	}	
	
	/*
	 * check if firstname was empty
	 */
	if(isEmpty(document.getElementById("txtFirstName"))){
		validated_correctly = false;
		flagElement("fld_firstname");
		showElement("error_msg");
	}		

	/*
	 * check if company was empty
	 */
	if(isEmpty(document.getElementById("txtCompany"))){
		validated_correctly = false;
		flagElement("fld_company");
		showElement("error_msg");
	}
	
	/*
	 * check if address was empty
	 */
	if(isEmpty(document.getElementById("txtAddress"))){
		validated_correctly = false;
		flagElement("fld_address");
		showElement("error_msg");
	}	
	
	/*
	 * check if zipcode was empty
	 */
	if(isEmpty(document.getElementById("txtZipCode"))){
		validated_correctly = false;
		flagElement("fld_zipcode");
		showElement("error_msg");
	}		
	
	/*
	 * check if city was empty
	 */
	if(isEmpty(document.getElementById("txtCity"))){
		validated_correctly = false;
		flagElement("fld_city");
		showElement("error_msg");
	}		
	
	/*
	 * check if state was empty
	 */
	if(isEmpty(document.getElementById("txtState"))){
		validated_correctly = false;
		flagElement("fld_state");
		showElement("error_msg");
	}	
	
	/*
	 * check if country was empty
	 */
	if(isEmpty(document.getElementById("txtCountry"))){
		validated_correctly = false;
		flagElement("fld_country");
		showElement("error_msg");
	}		
	
	
	/*
	 * check if phone was empty
	 */
	if(isEmpty(document.getElementById("txtPhone"))){
		validated_correctly = false;
		flagElement("fld_phone");
		showElement("error_msg");
	}		
	
	/*
	 * check if fax empty
	 */
	if(isEmpty(document.getElementById("txtFax"))){
		validated_correctly = false;
		flagElement("fld_fax");
		showElement("error_msg");
	}			
	

	if(validated_correctly){
		document.forms[0].submit();
	}else{
		scroll(0,0);
		showElement("error_msg");
	}
}


