/*
javascript used by oodle form classes

*/

var makesArr = new Array();
var modelsArr = new Array();
var obj;
var obj2;
var makeId
var modelId

var categoriesArray = new Array();
var categoryNames = new Array();

function populateMakes()
{
	var i=0;
	for(var make in make_model)
	{
		makesArr[i++] = make;
	}

	var makeInput = document.getElementById(makeId);

	obj  = new actb(makeInput, makesArr);
	obj2 = new actb(document.getElementById(modelId),modelsArr);

	if (makeInput.value != null)
	{
		populateModels();
	}

}

function populateModels()
{
	var make = document.getElementById(makeId).value;

	var modelsArr = make_model[make];

	if (modelsArr == null)
	{ modelsArr = new Array(); }
	
	obj2.actb_keywords = modelsArr;
	
}

function showHideSubmittedListingParams()
{
	var cbPost = document.getElementById('isPost0');
	var cbSubm = document.getElementById('isPost1');

	var lUrl = document.getElementById('external_url');
	var site = document.getElementById('secondary_source');
	
	if (cbPost.checked)
	{
		lUrl.parentNode.style.display = 'none';
		site.parentNode.style.display = 'none';

		for (var i=1; i<4;i++)
		{
			var img = document.getElementById('image'+i);
			if (document.getElementById('imgimages'+i) == null)
			{
				img.parentNode.style.display = 'block';
			}
		}

	}
	else
	{
		lUrl.parentNode.style.display = 'block';
		site.parentNode.style.display = 'block';

		for (var i=1; i<4;i++)
		{
			var img = document.getElementById('image'+i);
			img.parentNode.style.display = 'none';
		}
	}
}

function deleteImage(image, input, i)
{
	if (confirm('Are you sure you want to remove this image?'))
	{
		var divImage = image.parentNode;
		var divInput = input.parentNode;
		
		divImage.style.display = "none";
		divInput.style.display = "block";

		//expects image srcs in the following format:
		//'http://img.oodledemo.com/item/443447663_1s.jpg?nc'
		var reg = /\d{4}(t)?_(\d)\w/;
		var match = reg.exec(image.src);

		var m = (typeof match[1] == 'string') ? match[1] : '';
		var msg = match[2] + m +  '|';
		var log = document.getElementById('delete_image_log');
		if (log.value == null)
		{
			log.value = msg;
		}
		else
		{
			log.value+=msg;
		}
		
	}
}

function showSubCategories(catUrl, catContainerId, nextCatIds)
{
	var changed = false;
	var topCategory = null;
	var changed = false;
	var topCategory = null;
	if (categoriesArray[catUrl] == null)
	{
		var url = "/ajax/category?category=" + catUrl + "&catContainerId="+catContainerId;
		var xmlHttp = new XMLHttpRequestObject(null, null, parseCategoryResponse);

		//send new request. kill in flight request
		xmlHttp.send(url, null, true);

	}
	else
	{
		topCategory = populateSubCategories(catUrl, catContainerId);
		changed = true;
	}
	
	//hide other containers
	for(var i=0; i<nextCatIds.length;i++)
	{
		var nextCont = document.getElementById(nextCatIds[i]);
		nextCont.style.display = 'none';
	}
	if (changed && topCategory)
	{
		showSubCategories(topCategory, nextCatIds.pop(), nextCatIds)
	}
}

function populateSubCategories(parent, catContainerId)
{
	var contDiv = document.getElementById(catContainerId);
	if (!contDiv)
		return false;
	var selects = contDiv.getElementsByTagName("select");
	var select = selects[0];
	
	select.options.length = 0;

	var topCategory = null;
	for(var i=0; i<categoriesArray[parent].length; i++)
	{
		var catUrl = categoriesArray[parent][i];
		select.options[i] = new Option(categoryNames[catUrl], catUrl);
		if (!topCategory)
			topCategory = catUrl;
	}

	//display container if has sub categories
	if (categoriesArray[parent].length)
	{ contDiv.style.display = ''; }
	else
	{
		contDiv.style.display = 'none'; 
	}
	return topCategory;
}

function parseCategoryResponse(input)
{
	var cats = input.getElementsByTagName("category");
	var parent = input.getElementsByTagName("parentcategory")[0];
	parent = parent.firstChild.nodeValue;
	var catContainerId = input.getElementsByTagName("catContainerId")[0];
	catContainerId= catContainerId.firstChild.nodeValue;
	categoriesArray[parent] = new Array();
	topCategory = null;
	if (cats != null)
	{
		for(var i=0; i< cats.length;i++)
		{
			var name = cats[i].getAttribute('name');
			var url  = cats[i].firstChild.nodeValue;
			categoriesArray[parent][i] = url;
			categoryNames[url] = name;
			if (!topCategory)
				topCategory = url;
		}
	}
	if (topCategory)
	{
		var rootName = catContainerId.substring(0, catContainerId.length - 1);
		var extension = parseInt(catContainerId.substring(catContainerId.length - 1, catContainerId.length + 1)) + 1;
		var newContainerId = rootName + extension;
		showSubCategories(topCategory, newContainerId, new Array());
	}

	populateSubCategories(parent, catContainerId);
}
