var productCounter;

function moreFields() {
	$('moreFields').value = "Add Another Product";
	productCounter++;
	var newFields = $('productselect_0').cloneNode(true);
	newFields.setStyle('display', 'block');
	newFields.id = 'productselect_' + productCounter;
	nodes(newFields);

	var insertHere = $('moreFields');
	insertHere.parentNode.insertBefore(newFields,insertHere);
	
	$('category_' + productCounter).addEvent('click', function() {
		checkCategory(this);
	});
	$('subcategory_' + productCounter).addEvent('click', function() {
		checkSubCategory(this);
	});
	$('product_' + productCounter).addEvent('click', function() {
		checkProduct(this);
	});	
	$('product-delete_' + productCounter).addEvent('click', function() {
		deleteProduct(this);
	});
	
	checkCategory($('category_' + productCounter));
	$('numberofProducts').value = productCounter;
}

function deleteProduct(obj) {
	var theID = obj.id.split("_")[1];
	obj.getParent().dispose();
	if (theID == productCounter) {
		$('moreFields').setStyle('display', 'inline');
	}
}

function nodes(parentfield) {
	var newField = parentfield.childNodes;
	for (var i=0;i<newField.length;i++) {
		if (newField[i].type == 'select-one') {
			newField[i].selectedIndex = 0;
		}
		
		var theName = newField[i].name
		if (theName) {
			newField[i].name = theName.split("_")[0] + "_" + productCounter;
		}	
			
		var theId = newField[i].id
		if (theId) {
			newField[i].id = theId.split("_")[0] + "_" + productCounter;
		}	
			
		if (newField[i].childNodes) {
			nodes(newField[i]);
		}	
	}
}

function checkCategory(obj) {
	var theID = obj.id.split("_")[1];
	if (obj.value != "0") {
		//alert('insert javascript here to call AJAX to populate subcategory list');
		
		var myHTMLRequest = new Request.HTML({url:'/form_selects', update: $('subcategory_'+theID), onComplete: function(){	
				//obj.setStyle('display', 'none');
				$('category-text_'+theID).setStyle('display', 'inline');
				$('category-text_'+theID).set('text', obj[obj.selectedIndex].text+" > ");
				$('productselect-subcategory_'+theID).setStyle('display', 'block');	
				
				checkSubCategory($('subcategory_'+theID));
				
			} }).get({'type' : 1, 'category' : obj.value});
		
	} else {
	
		obj.setStyle('display', 'inline');
		$('category-text_'+theID).setStyle('display', 'none');	
	
		$('productselect-subcategory_'+theID).setStyle('display', 'none');
		$('subcategory_'+theID).selectedIndex = 0;
		$('productselect-product_'+theID).setStyle('display', 'none');
		$('product_'+theID).selectedIndex = 0;
		if (theID == productCounter) {
			$('moreFields').setStyle('display', 'none');
		}
		
		$('productselect-category_'+theID).setStyle('display', 'block');
		$('productselect-note_'+theID).set('text', 'Step 1 - Select Category');
	}
}

function checkSubCategory(obj) {
	var theID = obj.id.split("_")[1];
	if (obj.value != "0") {	
		//alert('insert javascript here to call AJAX to populate product list');
		
		var myHTMLRequest = new Request.HTML({url:'/form_selects', update: $('product_'+theID), onComplete: function(){
				//obj.setStyle('display', 'none');
				$('subcategory-text_'+theID).setStyle('display', 'inline');
				$('subcategory-text_'+theID).set('text', obj[obj.selectedIndex].text+" > ");
				$('productselect-product_'+theID).setStyle('display', 'block');
				
				checkProduct($('product_'+theID));
				
			} }).get({'type' : 2, 'category' : obj.value});		
		
		
		
	} else {
		
		obj.setStyle('display', 'inline');
		$('subcategory-text_'+theID).setStyle('display', 'none');	
			
		$('productselect-product_'+theID).setStyle('display', 'none');
		$('product_'+theID).selectedIndex = 0;
		if (theID == productCounter) {
			$('moreFields').setStyle('display', 'none');
		}
		
		$('productselect-note_'+theID).set('text', 'Step 2 - Select Sub-Category');
	}
}

function checkProduct(obj) {
	var theID = obj.id.split("_")[1];
	if (obj.value != "0") {	
		obj.setStyle('display', 'none');
		$('product-text_'+theID).setStyle('display', 'inline');
		$('product-text_'+theID).set('text', obj[obj.selectedIndex].text);
		
		$('productselect-subcategory_'+theID).setStyle('display', 'none');
		$('productselect-category_'+theID).setStyle('display', 'none');
		
		if (theID == productCounter) {
			$('moreFields').setStyle('display', 'inline');
		}
		
		$('productselect-note_'+theID).set('text', '');
	
	} else {
	
		obj.setStyle('display', 'inline');
		$('product-text_'+theID).setStyle('display', 'none');
		
		if (theID == productCounter) {
			$('moreFields').setStyle('display', 'none');
		}
		
		$('productselect-note_'+theID).set('text', 'Step 3 - Select Product');
	
	}

}


window.addEvent('domready', function() {
	$('productselect_0').setStyle('display' , 'none');
	$('moreFields').addEvent('click', function() {
		moreFields();
	});
	productCounter = $('numberofProducts').value;
});