function ModelClicked(modelId) {
	// check if model already selected 
	// then unselect it and all its ranges
	if (ModelHasAnyRangesSelected(modelId)) {					
		for (j = 0; j < RangesArray[modelId].length; j++) {
			RangesArray[modelId][j] = false;
		}
	}
	else {// otherwise select it and all ranges
		for (j = 0; j < RangesArray[modelId].length; j++) {
			RangesArray[modelId][j] = true;
		}
	}
	UpdateModel(modelId);
}
function RangeClicked(modelId,rangeId) {
	// if currently selected then unselect
	if (RangesArray[modelId][rangeId]) {
		RangesArray[modelId][rangeId] = false;
	}
	else {
		RangesArray[modelId][rangeId] = true;
	}
	UpdateModel(modelId);
}

function UpdateModels() {
	for (i = 1; i < RangesArray.length; i++) {
		UpdateModel(i);
	}
}
function UpdateModel(modelId) {
	
	var hiddenModel = document.getElementsByName('Model_' + modelId)[0];
	var hiddenModelValue = "";
	
	if (ModelHasAnyRangesSelected(modelId)) {
		// change the image to checked
		document.images['mcb_'+modelId].src = 'images/m_on.gif';
		// change the modelimage to highlighted
		document.images['modelImage_'+modelId].src = 'images/homepage/'+modelId+'_on.jpg';
		// set cssclass to selected
		document.getElementById('m_'+modelId).className = 'modelSelected';
		
		// select the ranges and update the hidden field
		for (j = 0; j < RangesArray[modelId].length; j++) {
			document.getElementById('r_'+modelId+'_'+j).className = 'rangeSelectable';
			if (RangesArray[modelId][j] == true) {
				document.images['rcb_'+modelId+'_'+j].src = 'images/r_on.gif';
				hiddenModelValue = hiddenModelValue + 'true,';
			}
			else {
				document.images['rcb_'+modelId+'_'+j].src = 'images/r2_off.gif';
				hiddenModelValue = hiddenModelValue + 'false,';
			}
			
		}
	}
	else {
		// change the image to unchecked
		document.images['mcb_'+modelId].src = 'images/m_off.gif';
		// change the modelimage to normal
		document.images['modelImage_'+modelId].src = 'images/homepage/'+modelId+'_off.jpg';
		// set cssclass to unselected
		document.getElementById('m_'+modelId).className = 'modelUnSelected';
		// unselect the ranges
		for (j = 0; j < RangesArray[modelId].length; j++) {
			document.getElementById('r_'+modelId+'_'+j).className = 'rangeUnSelected';
			document.images['rcb_'+modelId+'_'+j].src = 'images/r_off.gif';
			hiddenModelValue = hiddenModelValue + 'false,';
		}
	}
	
	// remove the last comma
	if (hiddenModelValue.charAt(hiddenModelValue.length-1) == ",")
		hiddenModelValue = hiddenModelValue.substring(0,hiddenModelValue.length-1);
	// update the hidden field for this model
	hiddenModel.value = hiddenModelValue;
	//alert(hiddenModel.value);
			
}
function ModelHasAnyRangesSelected(model) {
	var anySelected = false;
	for (j = 0; j < RangesArray[model].length; j++) {
		if (RangesArray[model][j]) {
			anySelected = true;
			break;
		}
	}
	return anySelected;
}

function CheckModelSelected(sender, args) {
	for (i = 1; i < RangesArray.length; i++) {
		if (ModelHasAnyRangesSelected(i)) {
			args.IsValid = true;
			return;
		}
	}
	args.IsValid = false;
	return;
}
