var productCounter = 0;

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');
	}
	productCounter--;
	if(productCounter == 0)
		$('moreFields').value = "Click here";
}

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 != "") {
		//alert(obj.value)
		xajax_doSubCategorySelect(theID, obj.value);
		
		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));	
		
	} 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 != "") {	
		xajax_doProductSelect(theID, obj.value);
		
		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));
		
	} 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 != "") {	
		obj.setStyle('display', 'none');
		$('product-text_'+theID).setStyle('display', 'inline');
		$('product-text_'+theID).set('text', obj[obj.selectedIndex].text);
		
		var category = $('category_'+theID);
		category= category[category.selectedIndex].value;
		var subcategory = $('subcategory_'+theID);
		subcategory= subcategory[subcategory.selectedIndex].value;
		
		$('productselect-subcategory_'+theID).setStyle('display', 'none');
		$('productselect-category_'+theID).setStyle('display', 'none');
		
		if (theID == productCounter) {
			$('moreFields').setStyle('display', 'inline');
		}
		
		var name = "items["+category+"]["+subcategory+"]";
		var value = obj[obj.selectedIndex].value;
		$('productselect-note_'+theID).innerHTML = '<input type="hidden" name="'+name+'" value="'+value+'" />';
		
	} 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');
	
	}

}

function add_again()
{
	var product = $('products').value;
	if(product == '')
	{
		alert('You must select a product');
		return;
	}
	var serial = $('serial').value;
	if(serial == '')
	{
		alert('You must enter a serial number');
		return;
	}
	var fault = $('fault').value;
	var warranty = $('warranty').checked;

	span = '<span id="'+serial+'" style="width: 100%; display: block; float: left; clear: left; border-bottom: 1px solid black;">';
	span += '<input type="hidden" name="returned_products['+serial+'][product]" value="'+product+'" />';
	span += '<input type="hidden" name="returned_products['+serial+'][serial]" value="'+serial+'" />';
	span += '<input type="hidden" name="returned_products['+serial+'][fault]" value="'+fault+'" />';
	span += '<input type="hidden" name="returned_products['+serial+'][warranty]" value="'+warranty+'" />';
	
	span +=product;
	
	span += '<span style="position: absolute; right: 25px;">';
	span += '<a href="javascript:void(0);" onclick="deleteItem(\''+serial+'\');" class="error productSelectDelete">Delete</a></span>';
	span +='</span>';
	
	$('products').value = '';
	$('serial').value = '';
	$('fault').value = '';
	$('warranty').checked = false;

	$('rma_products').innerHTML += span;
}

function deleteItem(id)
{
	$(id).dispose();
}

function addOption(theID, key, value)
{
	var option = new Option(value, key);
	$(theID).options.add(option);
	
}


window.addEvent('domready', function() {
	if($('productselect_0') != null)
	{
		$('productselect_0').setStyle('display' , 'none');
		$('moreFields').addEvent('click', function() {
			moreFields();
		});
	}
});
