
function ArrayInit(arr, initVal)
{
	if(arr==null || arr[0]==null)
	{
	//alert('about to init');
	arr = new Array()
	arr[0]=initVal;
	//alert(arr[0]);
	}
	else
	{
//		alert('not null');
		arr[0]=initVal;
	}
	return arr;
}

function merge_array(arr1, arr2)
{
//	alert("About to merge 2 arrays");
	if(arr1!=null)
	{
	//	alert("MERGING, First Array Len: " + arr1.length + " Second Array Len: " + arr2.length);
		//create a new array
		var newCount = arr1.length + arr2.length;
//		alert("NEW COUNT: " + newCount);
		arr3 = new Array(newCount)
		
		for(var totalCount =0; totalCount < newCount; totalCount++)
		{
			if(totalCount > (arr1.length-1))
			{	//on second array
				//alert("arr2 value that is added to new array: " + arr2[totalCount - arr1.length ]);
				arr3[totalCount] = arr2[totalCount - arr1.length];
			}
			else	//on first array still
			{
				//alert("arr1 value that is added to new array (" + totalCount + "): " + arr1[totalCount]);
				arr3[totalCount] = arr1[totalCount];			
			}
		}		
	}
	else {
//		alert("is null");
		arr3=new Array(0)
		arr3[0]=''; }
		
		return arr3; //arr1.concat(arr2);
}

function addItem(arr, item)
{
	if(arr==null)
	{
		return ArrayInit(arr, item);	//initiates array only if it is null, calling array init becomes unecessary
	}
	else
	{
		if(arr.length==0)
		{
			return ArrayInit(arr, item);
		}
		else
		{
	
		//	alert("ABOUT TO ADD AN ITEM: " + item);
			var aaa= new Array(0)
			aaa[0]=item;
		//	alert("LEN OF NEW ARRAY TO SOON BE MERGED: " + aaa.length);
			merge_array(arr,aaa);
		//	alert("MERGE SUCCESSFULL");
			return merge_array(arr, aaa);
		}
	}
}

function removeItem(arr, itemNum)
{
	if(arr!=null)
	{
		if(itemNum!=null)
		{
			if(itemNum<arr.length)
			{
				//loop through, rebuild array without removed item
				var newLen=arr.length-1;
				var newArr= new Array(newLen)
				var aCount=0;
				for (var tmpCount =0; tmpCount<arr.length; tmpCount++)
				{
					//add item if it is not the removed item
					if(tmpCount!=itemNum)
					{
						newArr[aCount]=arr[tmpCount];				
						aCount+=1;
					}			
				}

				arr=newArr;
			}
			
		}
	return arr;
	}
	else
	return arr;
}

function debugArray_string(arr)
{
	//alert('output array: '+arr.length);
	if(arr!=null)
	{
		var testO = "";
		for(var j = 0; j< arr.length; j++)
		{
			if(j>0)
			{
			testO = testO + ", " + arr[j];
			}
			else
			{
				testO = "Array Values: " + arr[j];
			}
		}
		return testO;
	}
	else return "TestArray object is null or not an array";
}

function debugArray_alert(arr)
{
	alert(debugArray_string(arr));
}

function testArray(arr)
{
	return debugArray_alert(arr);
}
