/*
JavaScript validate function
Author: Peter Tornstrand <peter[at]tornstrand.com>
Date: 2001-02-09
Version: 1.1
*/

function validateForm(frm, bolAlert) {
  var elem = frm.elements;
  // Loop all elements
  for (var i = 0; i < elem.length; ++i) {
    // If element is required see if it's filled in
    
    // Check for special condition
    
		var tagName = elem[i].tagName;
		if  (tagName != 'FIELDSET' && tagName != 'LEGEND') {
	    if (elem[i].name.indexOf("*") > 1) {
	    // Text
	      if (elem[i].type=="text") {
	        if (elem[i].value==""&&elem[i].style.display!="none") {
	          elem[i].className = "validate_text_err";
	          //if(bolAlert) alert("Fields with asterisks are required: "+elem[i].name);
	          if(bolAlert) alert("Fields with asterisks are required to be filled!");
	          elem[i].focus();
	          return false;
	        } else {
	          elem[i].className = "validate_text";
	        }
	      }
	      else if (elem[i].type=="radio") {
	      // Radio
	        var radiogroup = elem[elem[i].name];
	        var itemchecked = false;
	        for(var j = 0 ; j < radiogroup.length ; ++j) {
	          if(radiogroup[j].checked) {
	            itemchecked = true;
	            break;
	          }
	        }
	      
	        if(!itemchecked) { 
	          if(bolAlert) alert("You have to choose only one option "+elem[i].name);
	          if(elem[i].focus) elem[i].focus();
	          return false;
	        }
	      }
	      else if (elem[i].type=="checkbox") {
	      // Checkbox
	        var itemchecked = false;
	        var elems = document.getElementsByTagName("input");
	        for(var j = 0; j < elems.length; ++j) {
	        	if(elems[j].type=="checkbox"&&elems[j].id==elem[i].id) {
	        		if(elems[j].checked) {
	        			itemchecked = true;
	        			break;
	        		}
	        	}
	        }
	      
	        if(!itemchecked) { 
	          if(bolAlert) alert("You have to choose at least one option "+elem[i].name);
	          if(elem[i].focus) elem[i].focus();
	          return false;
	        }
	      }
	      else if (elem[i].type=="textarea") {
	      // Textarea
	        if (elem[i].value=="") {
	          elem[i].className = "validate_textarea_err";
	          if(bolAlert) alert("Please fill the field "+elem[i].name);
	          elem[i].focus();
	          return false;
	        } else {
	          elem[i].className = "validate_textarea";
	        }
	      }
	      else if (elem[i].type=="select-one") {
	      // Select-one
	        if (elem[i].selectedIndex==0) {
	          elem[i].className = "validate_select_err";
	          if(bolAlert) alert("You have to choose "+elem[i].name);
	          elem[i].focus();
	          return false;
	        } else {
	        	elem[i].className = "validate_select";
	        }
	      }
	      else if (elem[i].type=="select-multiple") {
	      // Select-multiple
	      	var optionselected = false;
	      	for(var j=0;j<elem[i].options.length; ++j) {
	      		if (elem[i].options[j].selected) {
	      			optionselected = true;
	      			break;
	      		}
	      	}
	      	if (!optionselected) {
	          elem[i].className = "validate_select_err";
	          if(bolAlert) alert("You have to choose at least one option "+elem[i].name);
	          elem[i].focus();
	          return false;
	        } else {
	        	elem[i].className = "validate_select";
	        }
	      }
	    }
		}
  }
  return true;
}

function gotFocus(elem) {
	if (elem.className.indexOf("_err") < 0) {
		if (elem.type=="text") {
			elem.className = "validate_text_focus";
		} else if (elem.type=="textarea") {
			elem.className = "validate_textarea_focus";
		} else if (elem.type=="select-one") {
			elem.className = "validate_select_focus";
		} else if (elem.type=="select-multiple") {
			elem.className = "validate_select_focus";
		}
	}
}

function lostFocus(elem) {
	if (elem.className.indexOf("_err") < 0) {
		if (elem.type=="text") {
			elem.className = "validate_text";
		} else if (elem.type=="textarea") {
			elem.className = "validate_textarea";
		} else if (elem.type=="select-one") {
			elem.className = "validate_select";
		} else if (elem.type=="select-multiple") {
			elem.className = "validate_select";
		}
	}
}

function elemCond(elem, val, id, req) {
	var justDoIt = false;
	
	if (elem.type=="select-one") {
		if (elem[elem.selectedIndex].value==val) justDoIt = true;
	}
	else if (elem.type=="select-multiple") {
		for(var j=0;j<elem.options.length; ++j) {
      		if (elem.options[j].selected) {
      			if (elem.options[j].value==val) justDoIt = true;
      		}
      	}
	}
	else if(elem.type=="radio"||elem.type=="text"||elem.type=="textarea"||elem.type=="checkbox") {
		if (elem.value==val) justDoIt = true;
	}
	
	if (justDoIt) {
		var frm = document.forms;
		for (var i=0;i<frm.length; i++) {
			for (var j=0;j<frm[i].length; j++) {
				var ele = frm[i].elements[j];
				if (ele.id==id) {
					if (req) { ele.name = id+'*'; } else { ele.name = id; }
				}
			}
		}
	}
}
