function submitForm(){
	document.forms["questionnaire"].submit();
}


//used to build the form after back button pressed.
function buildForm(){
	var styleTypeFlavourRadio = document.getElementById("styleTypeFlavour");
	var styleTypeTypeRadio = document.getElementById("styleTypeType");
	//present if questionnaire form
	if(styleTypeFlavourRadio!=null){



		var colourSelected  = getColour();

		if(colourSelected!=""){

			var colour= (colourSelected=="0")?"Red":"White";
			showStyle(colour);
			setActiveHL('color'+colour,'colorTable');

			if(styleTypeFlavourRadio.checked){
				activateStyleFlavour();
				ReLoadStyleHighlights(colour+"styleFlavour",colour,"Flavour");
			}
			if(styleTypeTypeRadio.checked){
				activateStyleType();
				ReLoadStyleHighlights(colour+"styleType",colour,"Type");
			}

		}
		ReLoadPrice();
	}

}

function ReLoadPrice(){
	var priceTable = document.getElementById( "priceTable" );
	var cells = priceTable.getElementsByTagName('INPUT');

	for(i=0;i<cells.length;i++){

		if(cells[i].checked){
			var valueSelected = cells[i].value;
			setActiveHL('priceOption'+valueSelected,'priceTable');
			setText('priceChosen',prices[valueSelected]);
			showFoodOptions();
		}
	}




		var type = document.getElementById("dinner_type");
		var flavour = document.getElementById("dinner_flavour");

		if(type.checked){
			dinnerFoodTypeChosen();
			var r = document.getElementById( "dinnerFoodType" );
			var rA = r.getElementsByTagName('INPUT');
			for(i=0;i<rA.length;i++){
				if(rA[i].checked){
					var valueselected = rA[i].value;
					setActiveHL('foodTypeOption'+valueselected,'dinnerFlavour');
					setText('foodChosen',foodTypeOptions[valueselected]);
				}
			}


		}
		if(flavour.checked){
			dinnerFoodFlavourChosen();

			var r = document.getElementById( "dinnerFlavour" );
			var rA = r.getElementsByTagName('INPUT');
			for(i=0;i<rA.length;i++){
				if(rA[i].checked){
					var valueselected = rA[i].value;
					setActiveHL('flavourOption'+valueselected,'dinnerFoodType');
					setText('foodChosen',foodFlavourOptions[valueselected]);
				}
			}



		}

}


function ReLoadStyleHighlights(elements,colour,type){
	var r = document.getElementById( elements );
	var rA = r.getElementsByTagName('INPUT');

	for(i=0;i<rA.length;i++){
		if(rA[i].checked){
			var selectedval = rA[i].value;
			setActiveHL(colour.toLowerCase()+"style"+type+"Option"+selectedval,"style"+type+colour.toLowerCase());
			if(colour=="Red"){
				if(type=="Flavour"){
					setText('styleChosen',redFlavourOptions[selectedval]);
				}else{
					setText('styleChosen',redTypeOptions[selectedval]);
				}
			}else{
				if(type=="Flavour"){
				setText('styleChosen',whiteFlavourOptions[selectedval]);
				}else{
				setText('styleChosen',whiteTypeOptions[selectedval]);
				}
			}
		}
	}
}




function dinnerFoodTypeChosen(){

	objs = getAllElements("dinnerFlavour");
	hideElements(objs);
	//objs = getAllElements("dinnerFoodType");
	//hideElements(objs);
	showElements("dinnerFoodType");
}

function dinnerFoodFlavourChosen(){
	objs = getAllElements("dinnerFoodType");
	hideElements(objs);

	//objs = getAllElements("dinnerFlavour");
	//hideElements(objs);
	showElements("dinnerFlavour");
}

function wineStyleFlavourChosen(){
	objs = getAllElements("styleType");
	d = getAllElements("styleFlavour");
	hideElements(objs);
	hideElements(d);
	showElements("styleFlavour");
}

function wineStyleTypeChosen(){
	objs = getAllElements("styleFlavour");
	hideElements(objs);
	d = getAllElements("styleType");
	hideElements(d);
	showElements("styleType");
}

function showElements(elems){
	elems = getAllElements(elems);
		for(i=0;i<elems.length;i++){
			elems[i].disabled="";
			//elems[i].className='active';
			AddClassName(elems[i],'active',false);
			RemoveClassName(elems[i],'disabled');
		}
}

function hideElements(elems){
		for(i=0;i<elems.length;i++){
			elems[i].disabled="disabled";
			//elems[i].className='disabled';
			RemoveClassName(elems[i],'active');
			RemoveClassName(elems[i],'activehighlight');
			AddClassName(elems[i],'disabled',false);

			if(elems[i].checked){
				elems[i].checked = false;
			}
		}
}

function AddClassName(objElement, strClass, blnMayAlreadyExist)
   {

   // if there is a class
   if ( objElement.className )
      {
      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');
      // if the new class name may already exist in list
      if ( blnMayAlreadyExist )
         {
         // get uppercase class for comparison purposes
         var strClassUpper = strClass.toUpperCase();
         // find all instances and remove them
         for ( var i = 0; i < arrList.length; i++ )
            {
            // if class found
            if ( arrList[i].toUpperCase() == strClassUpper )
               {
               // remove array item
               arrList.splice(i, 1);
               // decrement loop counter as we have adjusted the array's contents
               i--;
               }
            }
         }
      // add the new class to end of list
      arrList[arrList.length] = strClass;
      // add the new class to beginning of list
      //arrList.splice(0, 0, strClass);
      // assign modified class name attribute
      objElement.className = arrList.join(' ');
      }
   // if there was no class
   else
      {
      // assign modified class name attribute
      objElement.className = strClass;
      }
   }


function RemoveClassName(objElement, strClass)
   {
   // if there is a class
   if ( objElement.className )
      {
      // the classes are just a space separated list, so first get the list
      var arrList = objElement.className.split(' ');
      // get uppercase class for comparison purposes
      var strClassUpper = strClass.toUpperCase();
      // find all instances and remove them
      for ( var i = 0; i < arrList.length; i++ )
         {
         // if class found
         if ( arrList[i].toUpperCase() == strClassUpper )
            {
            // remove array item
            arrList.splice(i, 1);
            // decrement loop counter as we have adjusted the array's contents
            i--;
            }
         }
      // assign modified class name attribute
      objElement.className = arrList.join(' ');
      }
   // if there was no class
   // there is nothing to remove
}

///provide the highlight to an obj after removing highkights on td, divs, inputs
function setActiveHL(objToHightlight,containerObj){

	var r = document.getElementById( containerObj );
	var objHighlight = document.getElementById( objToHightlight );
	var elems =r.getElementsByTagName('TD');
		for(i=0;i<elems.length;i++){
			RemoveClassName(elems[i],'activehighlight');
		}
	var divelems =r.getElementsByTagName('DIV');
		for(i=0;i<divelems.length;i++){

			RemoveClassName(divelems[i],'activehighlight');
		}

	var inputelems =r.getElementsByTagName('INPUT');
		for(i=0;i<inputelems.length;i++){

			RemoveClassName(inputelems[i],'activehighlight');
		}
	AddClassName(objHighlight,'activehighlight',false);

}

function showStyle(colour){
	setText('colourChosen',colour);
	var styleDiv = document.getElementById("StyleOptions");
	styleDiv.className="display";

	var redTypeDiv = document.getElementById("RedstyleType");
	var redFlavourDiv = document.getElementById("RedstyleFlavour");
	var whiteTypeDiv = document.getElementById("WhitestyleType");
	var whiteFlavourDiv = document.getElementById("WhitestyleFlavour");

	if(colour=="Red"){
		redTypeDiv.className="display";
		redFlavourDiv.className="display";
		whiteTypeDiv.className="hidden";
		whiteFlavourDiv.className="hidden";
	}else{
		redTypeDiv.className="hidden";
		redFlavourDiv.className="hidden";
		whiteTypeDiv.className="display";
		whiteFlavourDiv.className="display";
	}

}

function getColour(){
	for (var i=0; i < document.questionnaire.colour.length; i++)
	   {
	   if (document.questionnaire.colour[i].checked)
	      {
	      return document.questionnaire.colour[i].value;
	      }
	   }
	   return "";
}

function activateStyleType(){
//activate the type div
var colour = getColour();
var wst = getAllElements("WhitestyleType");
var wsf = getAllElements("WhitestyleFlavour");
var rst = getAllElements("RedstyleType");
var rsf = getAllElements("RedstyleFlavour");

		if(colour=="0"){
			showElements("RedstyleType");
			hideElements(wst);
		}else{
			showElements("WhitestyleType");
			hideElements(rst);
		}
	hideElements(rsf);
	hideElements(wsf);

}


function activateStyleFlavour(){
//activate the flavour div
var colour = getColour();
var wst = getAllElements("WhitestyleType");
var wsf = getAllElements("WhitestyleFlavour");
var rst = getAllElements("RedstyleType");
var rsf = getAllElements("RedstyleFlavour");

		if(colour=="0"){
			showElements("RedstyleFlavour");
			hideElements(wsf);
		}else{
			showElements("WhitestyleFlavour");
			hideElements(rsf);
		}
	hideElements(wst);
	hideElements(rst);
}


function setText(obj,text){
	var optionDiv = document.getElementById(obj);
	optionDiv.innerHTML=text;
}

function showFoodOptions(){
	var optionDiv = document.getElementById("FoodOptions");
	optionDiv.className="display";
}



function getAllElements(location){
	var r = document.getElementById( location );
	var rA = r.getElementsByTagName('*');
	return rA;
}

