function getXHR()
{
	if (window.XMLHttpRequest)
	{
	  return new XMLHttpRequest();
	}
	else // Internet Explorer 5/6
	{
	  return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function api_send_request( method, path, onsuccess, onfail )
{
	var xhr = getXHR();
	xhr.open( method, "/api" + path, false );
	xhr.send();
	if( xhr.status == 200 )
	{
		return xhr.responseText;
	}
	else
	{
		return null;
	}
}

/*************BLOG***************/
function api_blog_get_all_posts( limit, offset )
{
	posts = [];
	var method = "GET";
	var path = "/blog/get-posts";
	var responseText = api_send_request( method, path );
	if( responseText != undefined )
	{
    	var responseObject = jsonParse( responseText );
    	posts = responseObject;
	}
	return posts;
}

function api_blog_get_published_posts( limit, offset )
{
	posts = [];
	var method = "GET";
	var path = "/blog/get-posts";
	var responseText = api_send_request( method, path );
	if( responseText != null )
	{
    	var responseObject = jsonParse( responseText );
		if(null != responseObject)
		{
	    	posts = responseObject.posts.published;
		}
	}
	return posts;
}

function api_blog_get_post(id)
{
	post = null;
	var method = "GET";
	var path = "/blog/get-post?id=" + id;
	var responseText = api_send_request( method, path );
	if( responseText != null )
	{
    	var responseObject = jsonParse( responseText );
		if(null != responseObject)
		{
			return responseObject.status;
		}
	}
	return post;
}

// Pass in 0 for id if new post
// Pass in 0 for date if draft
function api_blog_save_post(id, title, body, date, onSuccess, onError, onComplete)
{
	var method = "POST";
	var path = "/api/blog/save-post";
	var params = {'id':id, 'title':title, 'body':body, 'date':date};
	$.ajax({
		url: path,
		type: method,
		dataType: "text",
		cache: false,
		data: params,
		success: onSuccess,
		error: onError,
		complete: onComplete
	});
	
//	var responseFrame = $('<iframe id="ajaxResponse"></iframe>');
//	var form = $('<form method="' + method + '" action="' + path + '" target="ajaxResponse"></form>');
//
//    for(var key in params) {
//        var hiddenField = $('<input type="hidden" name="' + key + '" value="' + params[key] + '"/>');
//        form.append(hiddenField);
//    }
//    
//    document.body.appendChild(form);
//    form.submit();
}

function api_blog_delete_post(id)
{
	var method = "GET";
	var path = "/blog/delete-post?id=" + id;
	var responseText = api_send_request(method, path);
	if(responseText != null)
	{
		var responseObject = jsonParse(responseText);
		if(null != responseObject)
		{
			return responseObject.status;
		}
	}
	return false;
}

/*************MUSIC***************/
function api_music_getPlaylist(id)
{
	var method = "GET";
	var path = "/music/get-playlist";
	if(undefined != id)
	{
		path += "?id=" + id;
	}
	var responseText = api_send_request(method, path);
	if(responseText != null)
	{
		var responseObject = jsonParse(responseText);
		if(null != responseObject)
		{
			return responseObject.playlist;
		}
	}
	return null;
}

