// helper to convert params hash to query string
function myfeedz_serialize_request(params) {
	// construct API call params
	var query = "";
	for (var i in params) {
		query +=  "&" + i + "=" + escape(params[i]);
	}
	return query.substring(1);
}
// calls JS api; includes callback function for jseval output method
function myfeedz_api_request(url, params, callback) {
	var mfc_prefix = 'myfeedz_callbacks_';
	// only JSEVAL and JSWRITE(default) are valid in this context
	if (!params['output'] || params['output'] != "jseval") { params['output'] = "jswrite"; }
	// set-up callback
	if (params['output'] == "jseval" && typeof callback == "function") {
		// generate unique callback name
		do {var id=Math.floor(Math.random() * 1000);} while (typeof window[mfc_prefix+id] == "function");
		window[mfc_prefix+id] = callback;
		// send temp callback to API
		params['callback'] = 'window.'+mfc_prefix+id;
	}
	// "call" API
	document.write('<script type="text/javascript" src="'+url+'?'+myfeedz_serialize_request(params)+'"></script>');
}
function myfeedz_tags_request(params, callback) {
	myfeedz_api_request(get_api_server_path() +  "/tags/", params, callback);
}
function myfeedz_posts_request(params, callback) {
	myfeedz_api_request(get_api_server_path() + "/posts/", params, callback);
}

function get_api_server_path(){
	return "http://www.myfeedz.com/api/v1";
}	