easyWeb = {};
easyWeb.request = {};
easyWeb.request.currentAnchor = '';
easyWeb.request.goManually = false;
easyWeb.request.callback = {};
easyWeb.request.callback.oa = {};

easyWeb.request.entryTimeout = null;
/**
 * Pseudo-Event-Handler for anchors
 */

easyWeb.request.init = function() {
	
	var waitFornewAnchor = function() {
		if (easyWeb.request.currentAnchor != document.location.hash.replace(/#/, '')) {
			easyWeb.request.currentAnchor = document.location.hash.replace(/#/, '');

			if (!easyWeb.request.goManually) {
				easyWeb.request.doRequest({uri: easyWeb.request.currentAnchor});
			} else {
				easyWeb.request.goManually = false;
			}
		}
		easyWeb.request.entryTimeout = window.setTimeout(waitFornewAnchor, 100);
	};
	
	//waitFornewAnchor();
}

easyWeb.request.go = function(settings) {
	easyWeb.request.goManually = true;
	easyWeb.request.doRequest(settings);
}

easyWeb.request.doRequest = function(settings) {
	if (settings.uri && settings.uri.length > 1 && settings.uri.lastIndexOf('#') != settings.uri.length-1) {
		document.location.hash = '#' + settings.uri;
	} else {
		document.location.hash = '';
		settings.uri = '/';
	}
	
	var tmpMethod = null;
	if (settings.method == 'post') {
		tmpMethod = $.post;
	} else {
		tmpMethod = $.get;
	}
	
	if (!settings.fields) {
		settings.fields = {};
	}
	
	

	toggleLoader(true, true);
	tmpMethod(settings.uri, settings.fields, function(result, status, req) {
		toggleLoader(false, true);
		if (settings.callback && eval("easyWeb.request.callback." + settings.callback) == "function") {
			eval(settings.callback).apply(null, result, status, req);
		} else if (result.callback && eval("easyWeb.request.callback." + result.callback) == "function") {
			eval(result.callback).apply(null, result, status, req);
		} else {
			easyWeb.request.callback.defaultCallback(result, status, req);
		}
		
	}, "json");
};

easyWeb.request.callback.defaultCallback = function(result, status, req) {
	facebookInit();
	window.scrollTo(0, 0);
	if (typeof result.html != 'undefined' && result.html != null) {
		var tmp = '';
		for (i in result.html) {
			tmp = $(i).html();
			if (i == 'title') {
				document.title = result.html[i];
			} else {
				$(i).html('' + result.html[i]);
			}
		}
		
	}
};

$(document).ready(function() {
	//easyWeb.request.init();
	//easyWeb.request.currentAnchor = document.location.hash.replace(/#/, '');
	//easyWeb.request.doRequest({uri: document.location.hash.replace(/#/, '')});
	//$("rel")
});
