;

function _wlfapi_make_params_str (params) {
	var paramlist = [];
	if ( params != null ) {
		for ( i in params ) {
			paramlist[paramlist.length] = encodeURIComponent(i) + '=' + encodeURIComponent(params[i]);
		}
	}
	
	return paramlist.join('&');
}

function _wlfapi_make_url (module, funcname, params) {
	var url = 'http://www.wolford.com/api/';
	url += '?module=' + module;
	url += '&function=' + funcname;
	paramstr =  _wlfapi_make_params_str(params);
	if ( paramstr !== '' ) {
		url += '&' + paramstr;
	}
	return url;
}

function wlfapi_json2obj (jsontext) {
	return eval('(' + jsontext + ')');
}

function wlfapi_call ( module, funcname, params ) {
	var url = _wlfapi_make_url(module, funcname, params);
	
	var jsontext = xhr_sync(url);
	return wlfapi_json2obj(jsontext);
}

function wlfapi_callasync ( module, funcname, params, callback ) {
	var url = _wlfapi_make_url(module, funcname, params);
	xhr_async(url, null, callback);
}

function wlfapi_callasync_post ( module, funcname, getparams, postparams, callback ) {
	var url = _wlfapi_make_url(module, funcname, getparams);
	var post = _wlfapi_make_params_str(postparams);
	xhr_async(url, post, callback);
}

if ( typeof gup === 'undefined') {
	function gup (name) {
		name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		var regexS = "[\\?&]"+name+"=([^&#]*)";
		var regex = new RegExp( regexS );
		var results = regex.exec( window.location.href );
		if( results == null ) {
			return "";
		} else {
			return results[1];
		}
	}
}

if ( typeof dump === 'undefined') {
	/**
	 * Function : dump()
	 * Arguments: The data - array,hash(associative array),object
	 *    The level - OPTIONAL
	 * Returns  : The textual representation of the array.
	 * This function was inspired by the print_r function of PHP.
	 * This will accept some data as the argument and return a
	 * text that will be a more readable version of the
	 * array/hash/object that is given.
	 * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php
	 */
	function dump(arr,level) {
		var dumped_text = "";
		if(!level) level = 0;
		
		//The padding given at the beginning of the line.
		var level_padding = "";
		for(var j=0;j<level+1;j++) level_padding += "    ";
		
		if(typeof(arr) == 'object') { //Array/Hashes/Objects 
			for(var item in arr) {
				var value = arr[item];
				
				if(typeof(value) == 'object') { //If it is an array,
					dumped_text += level_padding + "'" + item + "' ...\n";
					dumped_text += dump(value,level+1);
				} else {
					dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
				}
			}
		} else { //Stings/Chars/Numbers etc.
			dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
			}
		return dumped_text;
	}
}

function wlfapi_dump (data) {
	alert(dump(data));
}

