function getjson( url , container, vars, bookmark )
{

	var containers = container.split("/");
	
	if (bookmark != false) {
		// SET URL HASH FOR BOOKMARKS
		var requestUri = get_request_uri(url);
		window.location = '#' + requestUri; // + '/container/' + container;
	}
	
	if( vars == null )
	{
		var vars = '';
	}
		
	$('.ajax_loader').fadeIn('fast');
	
	try{
		$.post( url , vars , function( data ){
			
			var json = data;
			
			for( var i = 0 ; i < json.response.length; i++ )
			{
				
				switch( json.response[i].type )
				{
					case 'HTML':
						if (containers[i].length > 0) {
							$(containers[i]).html(json.response[i].data);
						}
						break;
					case 'SUCCESS':
						success( json.response[i].data );
						break;
					case 'WARNING':
						warn( json.response[i].data );
						break;
					case 'JSCRIPT':
						eval( json.response[i].data );
						break;
				}
				
			}
					
			$('.ajax_loader').hide();
			
		},'json');
	}
	catch(e){
		warn(e);
		$('.ajax_loader').hide();
	}
	
	return false;
	
}

function aj(url,container)
{
	$(".ajax_loader").show();
	
	$.get(url, function(data){
		$(container).html(data);
		$(".ajax_loader").hide();
	});
	return false;
}

function clearfield(elem){
	if(elem.value==elem.defaultValue){
		$(elem).val('');
		$(elem).removeClass('empty');
	}
}

function get_ajax_request_uri( url )
{
	url = url.replace("http://","");
	requestUriArray = url.split('/');
	requestUriArray.shift();
		
	return requestUriArray.join('/');
}

function get_request_uri( url )
{
	var requestUri = '';
	var elementPosition = -1;
	var qstring_array = url.split('?');
	var qstring = '';
	
	if (qstring_array.length > 1) {
		qstring = qstring_array[1];
	}
	
	url = url.replace("http://","");
			
	requestUriArray = url.split('/');
	requestUriArray.shift();
	
	for( var i = 0; i < requestUriArray.length; i++ )
	{
		if( requestUriArray[i] == 'element' || requestUriArray[i] == 'container' )
		{
			elementPosition = i + 1;
		}
		else
		{
			if( elementPosition != i )
			{
				requestUri += '/' + requestUriArray[i];
			}	
		}
	}
	
	return requestUri + ( qstring != '' ? '?' + qstring : '' );
}

function getContainers( url )
{
	var containerArray = url.split('/container/');
	return containerArray[1];
}

function getAjaxUrl( url )
{
	var containerArray = url.split('/container/');
	return containerArray[0];
}

function ajax_bookmark()
{
	var requestUrlArray = window.location.href.split('#');
	
	if (requestUrlArray.length > 1) {
		
		if (requestUrlArray[1].indexOf('/') == 0) {
			var requestUri = get_request_uri(requestUrlArray[0]);
			
			requestUrlArray.shift();
			
			var ajaxBookmark = requestUrlArray.join('#');
			var bookmark = get_request_uri(ajaxBookmark);
			
			var ajaxBookmarkUrl = get_request_uri(ajaxBookmark)
			var containers = getContainers(ajaxBookmark);
			
			if (requestUri != bookmark) {
				window.location = ajaxBookmark;
			}
		}
	}
	return false;
}

$(document).ready(function(){
	ajax_bookmark();
});


