	function array2json(arr) {
	    var parts = [];
	    var is_list = (Object.prototype.toString.apply(arr) === '[object Array]');

	    for(var key in arr) {
	    	var value = arr[key];
			if(typeof value == 'object') { //Custom handling for arrays
				if(is_list) parts.push(array2json(value)); /* :RECURSION: */
				else parts[key] = array2json(value); /* :RECURSION: */
			} else {
				var str = '';
				if(!is_list) str = '"' + key + ':';

				//Custom handling for multiple data types
				if(typeof value == 'number') str += value; //Numbers
				else if(value === false) str += 'false'; //The booleans
				else if(value === true) str += 'true';
				else str += '"' + value + '"'; //All other things
				// :TODO: Is there any more datatype we should be in the lookout for? (Functions?)

				parts.push(str);
			}
	    }
	    var json = parts.join(",");
	    
	    if(is_list) return '[' + json + ']';//Return numerical JSON
	    return '{' + json + '}';//Return associative JSON
	} 

	function do_box_bottom(box) {
		$(box).each(function (i) { $(this).children('div:last').siblings().removeClass('lower'); });
		$(box).each(function (i) { $(this).children('div:last').addClass('lower'); });
	}

$(document).ready(function() {

	$('.box').each(function (i) { $(this).children('div:last').addClass('lower'); });

	$('div.override-5 div.close').click(function() {
		if ($(this).parent().siblings('.override-6').hasClass('hidden')) {
			$(this).parent().removeClass('lower');
			$(this).parent().next().addClass('lower');
		}
		$(this).parent().siblings('.notify_cream').show("fast");
	});
	$('input#wid_but_no').click(function() {
		$(this).parent().hide("fast");
		if ($(this).parent().siblings().first().children().first().hasClass('shaded')) {
			$(this).parent().addClass('lower');
			$(this).parent().next().addClass('hidden');
			if ($(this).parent().siblings('.override-6').hasClass('hidden')) {
			//	alert('I run');
				$(this).parent().removeClass('lower');
				$(this).parent().siblings('.override-5').addClass('lower');
			} else {
				alert('Oops! An error occurred. Please contact system maintenence representitive.');
			}
		}
	})
	$('input#wid_but_yes').click(function() {
		$(this).parent().parent().remove();
	})
		$('div.override-1').sortable();
		$('.draggable div.override-5 div.shaded, .draggable div.override-5 div.unshaded').click(function() {
			if (!$(this).parent().parent().parent().parent().hasClass('in-transit')) {
				do_box_bottom($(this).parent().parent());
				$(this).parent().siblings('.notify_cream').hide("slow");

				if ($(this).parent().siblings('.override-6').hasClass('hidden')) {
					$(this).parent().removeClass('lower');
					$(this).removeClass('shaded');
					$(this).addClass('unshaded');
					$(this).parent().siblings('.override-6').removeClass('hidden');
				} else {
					$(this).removeClass('unshaded');
					$(this).addClass('shaded');
					$(this).parent().addClass('lower');
					$(this).parent().siblings('.override-6').addClass('hidden');
				}
			} 
		}); 
});

