			function nextNode (element) {
				do {
					element = element.nextSibling;
				} while ( element && element.nodeType != 1 );
				return element;
			}		

			function checkform() {
			
				var nErrors = 0;
				var errorMsg = "<ul>";
			
				var requiredNodes = YAHOO.util.Dom.getElementsByClassName('required', 'span')
				
				if(requiredNodes.length>0){
					for (var i=0;i<requiredNodes.length;i++){
						var targetNode = nextNode(requiredNodes[i].parentNode);

						if (targetNode.type == null){
							do {
								if (targetNode.className=="formgroup") {
									console.log(targetNode);
									targetNode = targetNode.firstChild;
								} else {					
									targetNode = targetNode.nextSibling;
								}
							} while (targetNode.type == null);
						}

						switch (targetNode.type){
						case "text":
							if (targetNode.value.length==0){
								var tempMsg = requiredNodes[i].parentNode.innerHTML;
								tempMsg = tempMsg.split("<")[0];
								
								YAHOO.util.Dom.addClass(targetNode,'inputerror');
								
								errorMsg += "<li>"+tempMsg+"</li>";

								nErrors += 1;

							} else {
								YAHOO.util.Dom.removeClass(targetNode,'inputerror');
							}
						  break;
						case "select-one":
						
							var tempMsg = requiredNodes[i].parentNode.innerHTML;
							tempMsg = tempMsg.split("<")[0];

							if (targetNode.value.length==0){
								YAHOO.util.Dom.addClass(targetNode,'inputerror');
								
								nErrors += 1;
								
								errorMsg += "<li>"+tempMsg+"</li>";
							} else {
								YAHOO.util.Dom.removeClass(targetNode,'inputerror');
							}
							
							targetNode = nextNode(targetNode);
							if (targetNode!=null){
								do {
									if (targetNode.value.length==0){
										YAHOO.util.Dom.addClass(targetNode,'inputerror');
										nErrors += 1;
										errorMsg += "<li>"+tempMsg+"</li>";
									} else {
										YAHOO.util.Dom.removeClass(targetNode,'inputerror');
									}
									targetNode = nextNode(targetNode);
								} while (targetNode.type !=null);
								
								
							}
							
						  break;
						default:
						}
					}
				}
				
				if (nErrors>0){
					var errorMsgDiv = document.getElementById("errormessages");

					if (errorMsgDiv!=null){
						if (nErrors>1){
							errorMsg = l10n('javascript.fieldsempty') + " : <br/>" + errorMsg + "</ul>";
						} else {
							errorMsg = l10n('javascript.fieldempty') + " : <br/>" + errorMsg + "</ul>";
						}					
			
						errorMsgDiv.style.display="block";
						errorMsgDiv.innerHTML = errorMsg;			
					}
				}

				if (nErrors>0){
					return false;
				} else {
					return true;
				}
				return false;
			}
		

