// THE VALIDATION SCRIPT FOR CHECKBOXES jakub 2009/02/20, updated 2009/03/06 works with matching other checkbox with textarea value check
function removeDuplicateElement(arrayName){var newArray=new Array();label:for(var i=0; i<arrayName.length;i++ ){for(var j=0; j<newArray.length;j++ ){if(newArray[j]==arrayName[i])continue label;}newArray[newArray.length] = arrayName[i];}return newArray;}
function howMany(arr) {var holdStr = "";var joinArr = "|" + arr.join() + "|";for (var t=0,mtch; mtch=arr[t]; t++) {if (holdStr.indexOf("|" + mtch + "|")== -1) {var re = new RegExp("|" + mtch + "|","g");holdStr += "|" + mtch + "|:" + joinArr.match(re).length + ", "}}holdStr = holdStr.replace(/\|/g,"");holdStr = holdStr.substr(0,holdStr.length-2);alert(holdStr);}
function checkTheBox() {var checkboxesGroupsNames = new Array();var pi;pi = 0;for(i=0; i<document.frmCurrent.elements.length; i++){if(document.frmCurrent.elements[i].type=="checkbox"){pi++;for (var w = 0; w < checkboxesGroupsNames.length; w++){if(document.frmCurrent.elements[i].name == checkboxesGroupsNames[w]){} else {checkboxesGroupsNames[pi] = document.frmCurrent.elements[i].name;}}if (checkboxesGroupsNames[pi] != document.frmCurrent.elements[i].name) {checkboxesGroupsNames[pi] = document.frmCurrent.elements[i].name;	}else {}}}var results = new Array();for (var w=0; w<checkboxesGroupsNames.length; w++) {var key = checkboxesGroupsNames[w]; if (!results[key]) {results[key] = 1;} else {results[key] = results[key] + 1;}}var resCounter = 0;for (var w in results) {resCounter++;}var str = ""; var frog=0;var boolOk = false;for(var w in results) {if (w != "undefined") {var boolInGroupOk = false;var myCheckboxName = w.toString();var myCheckboxNumber = results[w];var localCount = 0;for(var h=0;h<myCheckboxNumber;h++){if(document.frmCurrent[myCheckboxName][h].checked){localCount++;boolInGroupOk = true;} else {boolOk = false;}}if (localCount >= 1) {frog++;}if (boolInGroupOk == false) {str += "" + document.frmCurrent[myCheckboxName][0].title + " ";boolOk = false;}var strLastChkBoxName = document.frmCurrent[myCheckboxName][0].name; var textareaNameArray = new Array();for (i = 0; i < document.frmCurrent.elements.length; i++) {if (document.frmCurrent.elements[i].type == "textarea") {var tempTextAreaTitle = document.frmCurrent.elements[i].title; var tempTextAreaName = document.frmCurrent.elements[i].name;var tempTextAreaValue = document.frmCurrent.elements[i].value;if (tempTextAreaName.search(strLastChkBoxName) >= 0) {var lastCheckboxChecked = document.frmCurrent[myCheckboxName][myCheckboxNumber - 1].id;var lastCheckboxCheckedTrue = document.frmCurrent[myCheckboxName][myCheckboxNumber - 1].checked;if (lastCheckboxCheckedTrue) {
	if (tempTextAreaValue == "") {str = " " + tempTextAreaTitle +"     ";alert(str);return false;} } else {}}}}/*build error message*/if (boolOk == false) {str = " " + str;}}}var foo = (resCounter - 1);if (frog < foo) {alert ("You must fill in all required fields! " + str);return false;} else {}var duplicateFreeArray = new Array();duplicateFreeArray = removeDuplicateElement(checkboxesGroupsNames);var lengthOfDuplicateArray = duplicateFreeArray.length;var flag = 0;return true;}
