function menubs_formChecking(object){
    var intMenuType = $('#cmbidentity').val();
    var strMenuType = $('#cmbidentity option:selected').text();

	// Bespoke Validation for
	var elem = object.elements;
	var errors = "";
	var validate = false;
	// CREATE ARRAY TO STORE COUNTED CHECK BOX SELECTIONS INTO GROUPS
	var groupsCounted = new Array();
	if(! (typeof(groups) == 'undefined')){
		for (var ii in groups) {
			groupsCounted[ii] = 0;
		}

	}
	
	
	// NOW COUNT UP WHAT HAS BEEN TICKED AND ADD TO GROUPS
	for(var i = 0; i < elem.length; i++)
	{
		if(elem[i].type == 'checkbox'){
			if(elem[i].checked){

				// Now Store Count Of Number Entered
				for (var ii in groups) {

					for(x = 0;x<groups[ii].length;x++){
						if(groups[ii][x] == elem[i].name)
						{
							validate = true;
							if(groupsCounted[ii] == undefined){
								groupsCounted[ii] = 1;
								
							}
							else{
								groupsCounted[ii]++;
							}
						}
					}
				}

			}
		}
		/*
		if(elem[i].type == 'text'){
			if(!isNaN(elem[i].value)){
				if(! (typeof(minimums) == "undefined")){
					if(elem[i].value < minimums[elem[i].name]){
						errors += 'Minimum quantity of '+minimums[elem[i].name]+" required.\n";
						validate = true;
					}
				}
			}
		}
		*/
	}

	switch (strMenuType)
	{
        case 'Platinum Hot and Cold Buffet':
            if(!(typeof(groups) == 'undefined'))
            {
                var intHot = groupsCounted['item_222'];
                var intCold = groupsCounted['item_229'];
                var intSalad = groupsCounted['item_234'];
                var intDessert = groupsCounted['item_241'];
                var intCheese = groupsCounted['item_248'];
                var intMain = intHot + intCold;
                var intAfters = intDessert + (intCheese*2); /* short hand rules check for cheese as only one required but makes checking quicker*/
                var intMinQuantity = minimums['menu_221'];
                var intQuantityRequested = parseInt( $('input[name=menu_221]').val(), 10); 
                if ( isNaN(intQuantityRequested) ) { intQuantityRequested = 0; }
                
                // BESPOKE VALIDATION - WHERE TO STORE THIS?
                if(intMain != 3)
                {
                    errors += 'Please select 3 main courses.\n';
                }

                if(intSalad != 3 )
                {
                    errors += 'Please select 3 salads.\n';
                }

                if( intAfters != 2 )
                {
                    errors += 'Please select 2 dessert or 1 cheese.\n';
                }
                if ( intMinQuantity > intQuantityRequested )
                {
                    errors += 'Minimum quantity of ' + intMinQuantity + ' required.\n';
                }
            }
            break;
        case 'Savoury Canapés':
            if(!(typeof(groups) == 'undefined'))
            {
                var intCanapy = groupsCounted['item_251'];
                var intMinQuantity = minimums['menu_250'];
                var intQuantityRequested = parseInt( $('input[name=menu_250]').val(), 10); 
                if ( isNaN(intQuantityRequested) ) { intQuantityRequested = 0; }

                if( intCanapy != 4 )
                {
                    errors += 'Please select 4 Canapés.\n';
                }
                if ( intMinQuantity > intQuantityRequested )
                {
                    errors += 'Minimum quantity of ' + intMinQuantity + ' required.\n';
                }
            }
            break;
        case 'Sweet Canapés':
            if(!(typeof(groups) == 'undefined'))
            {
                var intCanapy = groupsCounted['item_263'];
                var intMinQuantity = minimums['menu_262'];
                var intQuantityRequested = parseInt( $('input[name=menu_262]').val(), 10); 
                if ( isNaN(intQuantityRequested) ) { intQuantityRequested = 0; }

                if( intCanapy != 4 )
                {
                    errors += 'Please select 4 Canapés.\n';
                }
                if ( intMinQuantity > intQuantityRequested )
                {
                    errors += 'Minimum quantity of ' + intMinQuantity + ' required.\n';
                }
            }
            break;
        default:
            break;
	}
	if(errors.length > 0 ){
		alert("\n"+errors);
		return(false);
	}
	else{
		return(true);
	}

}

