$(function(){
	var elem = '#dynamicContent',
	config = {
		'url': 			'/page/default.asp?pid=437',
		'typeField':		'#pageType',
		'addressField':	'#pageLink',
		'titleField':		'#blockTitle'
	};
	function loadData(itemType,dataFile,blockTitle,iteration){
		switch(itemType){
			case 'poll':
				var realURL = dataFile.split('?')[1];
				loadDataFile(elem, '/form/ajaxform.asp?'+realURL, null, blockTitle);
			break;
			default: // pages & catchall
				loadDataFile(elem, dataFile, '#content', blockTitle);
			break;
		}
	}
	function loadDataFile(elem, uri, selector, blockTitle){
		$.ajax({
			url:uri,
			complete: function(res, status){
				if ( status == "success" || status == "notmodified" )
				jQuery(elem).html( selector !== null ?
					jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g, "")).find(selector).html() :
					res.responseText
				);
				if(blockTitle !== '') $(elem).prepend('<h2>'+blockTitle+'</h2>');
			}
		});
	}
	function loadConfig(){
		var interation = arguments[0] || 0;
		$.ajax({
			url: config['url'],
			success: function(data){
				// parse data into memory for searching
				var $dataObj = data,
				// determine what type of item to display
				itemType = $(config['typeField'], $dataObj).val(),
				// get url of dataFile
				dataFile = $(config['addressField'], $dataObj).val(),
				// get title of block
				blockTitle = $(config['titleField'], $dataObj).val();
				// remove from memory
				delete $dataObj;
				// perform final ajax call
				loadData(itemType,dataFile,blockTitle,0);
			},
			error:function(){
				iteration++;
				if(iteration > 3) loadConfig(iteration);
			}
		});
	}
	loadConfig();
});

