/** 
	when a user selects an option on a booking form, these functions check to see if the
	quantity needs to be updated, and vice versa
	
**/

/** for checkboxes **/
function UpdateQuantity_Checkbox(selObj,quanObj){
	var isChecked = false;
	if(selObj.length){
		for(var i=0;i < selObj.length;i++){
			if(selObj[i].checked){
				isChecked=true;
				break;
			}
		}
	}
	else
	 isChecked = selObj.checked;
	if(isChecked && ! quanObj.value.length){
		quanObj.value = 1;
	}
	else if(! isChecked){
		quanObj.value = "";
	}
}

/** for checkboxes **/
function UpdateCheckbox_Quantity(quanObj,selObj){
	if(isNaN(quanObj.value)){
		quanObj.value = "";
		if(selObj.length){
			for(var i=0;i < selObj.length;i++){
				selObj[i].checked = false;
			}
		}
		else
			selObj.checked = false;
		return true;
	}
	
	if(! quanObj.value.length || quanObj.value < 1){
		if(selObj.length){
			for(var i=0;i < selObj.length;i++){
				selObj[i].checked = false;
			}
		}
		else{
			selObj.checked = false;
		}
		quanObj.value = "";
	}
	else{
		var isChecked = false;
		if(selObj.length){
			for(var i=0;i < selObj.length;i++){
				if(selObj[i].checked){
					isChecked = true;
					break;
				}
			}
		}
		else
			isChecked = selObj.checked;
		if(! isChecked)
			selObj.checked = true;
	}
}


/** for select boxes **/
function UpdateQuantity_Select(selObj,quanObj){
	var isSelected = false;
	for(var i=0;i < selObj.options.length;i++){
		if(selObj.options[i].selected && selObj.options[i].value.length){
			isSelected=true;
			break;
		}
	}
	
	if(isSelected && ! quanObj.value.length){
		quanObj.value = 1;
	}
	else if(! isSelected){
		quanObj.value = "";
	}
	
	/** Added by Stephen (May 2009) **/
	/* -- Not finished -- Too complicated to be worthwhile
	var baseName=selObj.name.replace(/_\d+$/,"_");
	var allSelects=document.getElementsByTagName("select");
	var valueToRemove=selObj.value;
	
	for (var i=0;i<allSelects.length;i++) {
		if (allSelects[i].name.indexOf(baseName)==0 && allSelects[i].name!=selObj.name) {
			for(var j=0;j<allSelects[i].options.length;j++) {
				if (allSelects[i].options[j].value==valueToRemove) {
					if (!allSelects[i].removedOptions) allSelects[i].removedOptions=new Array();
					allSelects[i].removedOptions=allSelects[i].options[j].parentNode.removeChild(allSelects[i].options[j]);
				}
			}
		}
	}
	*/
	
}

/** for select boxes **/
function UpdateSelect_Quantity(quanObj,selObj){
	if(isNaN(quanObj.value)){
		quanObj.value = "";
		for(var i=0;i < selObj.options.length;i++){
			selObj.options[i].selected = false;
		}
		selObj.selectedIndex = null;
		return true;
	}
	
	if(! quanObj.value.length || quanObj.value < 1){
		for(var i=0;i < selObj.options.length;i++){
			selObj.options[i].selected = false;
		}
		selObj.selectedIndex = null;
		quanObj.value = "";
		return true;
		
	}
	else{
		var isSelected = false;
		for(var i=0;i < selObj.length;i++){
			if(selObj.options[i].selected){
				isSelected = true;
				break;
			}
		}
		
		if(! isSelected){
			for(var i=0;i < selObj.length;i++){
				if(selObj.options[i].value.length){
					selObj.options[i].selected = true;
					break;
				}
			}
		}
			
	}
}


/** for text boxes **/
function UpdateQuantity_Textbox(textObj,quanObj){
	if(textObj.value.length && ! quanObj.value.length){
		quanObj.value = 1;
	}
	else if(! textObj.value.length){
		quanObj.value = "";
	}
}
/** for text boxes **/
function UpdateTextbox_Quantity(quanObj,textObj){
	if(isNaN(quanObj.value)){
		quanObj.value = "";
		textObj.value = "";
		return true;
	}
	if(! quanObj.value.length || quanObj.value <= 0){
		quanObj.value = "";
		textObj.value = "";
	}
}




