$(document).ready(function(){
							   
	var UDTopContent = $('.top-content');
	var UDField = $('#decode-field');
	var UDForm = $('#decode-form');
	var UDExampleLink = $('#example-link');
	
	var UDContainers = {
		fullstring: $('#decode-fullstring'),
		urlParsed: $('#url-parsed'),
		queryParsed: $('#decode-query-parsed')
	};
	
	var UDRowTemplate = '<tr><td><strong>{=$key}</strong></td><td><div>{=$value}</div></td>';
	var UDParsedObj = {};
	var UDParsedStr = '';
	var UDUsedUrlElements = ['protocol','user','password','host','port','path','query','anchor'];
	
	
	UDExampleLink.click(function(){
		UDField.val($(this).text());
		return false;
	});

	UDForm.submit(function(e){
		e.preventDefault();
		
		UDTopContent.show();
		var height = UDTopContent.height();
		$('#loader-pic').css('margin-top', Math.round((parseInt(height)-48) / 2) + 'px');
		$('#loader').css({
			height:height,
			width: UDTopContent.width()
		}).show();
		UDTopContent.hide();
		jQuery.fx.off = true;
		$('#loader').delay(300).hide(function() {
			UDTopContent.show();
		});

		var originalString = UDField.val()
		UDParsedObj = $.url.parse(originalString);
		UDParsedStr = $.url.decode(originalString);
	
		showParsed();
		
		return false;
	});
	
	function showParsed(){
		// Decoded URL
		UDContainers.fullstring.text(UDParsedStr);
		
		// Parsed URL
		var parsedUrlArr = ['<h2>Parsed URL</h2><table>'];
		for (var i=0,l=UDUsedUrlElements.length; i<l; i++){
			if(UDParsedObj[UDUsedUrlElements[i]]){
				parsedUrlArr.push(
					UDRowTemplate
						.replace('{=$key}', UDUsedUrlElements[i])
						.replace('{=$value}', UDParsedObj[UDUsedUrlElements[i]])
				)
			}
		}
		parsedUrlArr.push('</table>');
		UDContainers.urlParsed.html(parsedUrlArr.join('\n'));
		
		// Query Params
		
		if(!$.isEmptyObject(UDParsedObj.params)){
			var queryParsedArr = ['<h2>Query Params</h2><table>'];
			for(var i in UDParsedObj.params){
				queryParsedArr.push(
					UDRowTemplate
						.replace('{=$key}', i)
						.replace('{=$value}', UDParsedObj.params[i])
				)
			}
			
			queryParsedArr.push('</table>');
			UDContainers.queryParsed.html(queryParsedArr.join('\n'));
			
		}
	}

	$('#idea-form').submit(function(e){
		e.preventDefault();
		var action = $(this).attr('action');
		var data = $(this).serialize();
		
		$.post (action, data, function(data,status){
			alert(removeHTMLTags(data));
		});
		
		
		return false;
	});


});

function removeHTMLTags(s){
	s = s.replace(/&(lt|gt);/g, function (strMatch, p1){
		return (p1 == "lt")? "<" : ">";
	});
	
	return s.replace(/<\/?[^>]+(>|$)/g, "");
}

