(function() {
	var jQuery;
	
	/******** Load jQuery if not present *********/
	if (window.jQuery === undefined || window.jQuery.fn.jquery < '1.4.2') {
		var script_tag = document.createElement ('script');
		script_tag.setAttribute ("type","text/javascript");
		script_tag.setAttribute ("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
		script_tag.onload = loadJQueryCorner;
		script_tag.onreadystatechange = function () { // Same thing but for IE
			if (this.readyState == 'complete' || this.readyState == 'loaded') {
				loadJQueryCorner();
			}
		};
		
		// Try to find the head, otherwise default to the documentElement
		(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
	} else {
		// The jQuery version on the window is the one we want to use
		jQuery = window.jQuery;
		loadJQueryCorner();
	}
	
	function loadJQueryCorner()
	{
		if (window.jQuery.fn.corner === undefined) {
			var script_tag = document.createElement ('script');
			script_tag.setAttribute ("type","text/javascript");
			script_tag.setAttribute ("src", "http://www.tourradar.com/include/js/jquery-corner.js");
			script_tag.onload = scriptLoadHandler;
			script_tag.onreadystatechange = function () { // Same thing but for IE
				if (this.readyState == 'complete' || this.readyState == 'loaded') {
					scriptLoadHandler();
				}
			};
			
			// Try to find the head, otherwise default to the documentElement
			(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
		} else {
			// The jQuery version on the window is the one we want to use
			jQuery.fn.corner = window.jQuery.fn.corner;
			main();
		}
	}
	
	/******** Called once jQuery has loaded ******/
	function scriptLoadHandler() {
		// Restore $ and window.jQuery to their previous values and store the
		// new jQuery in our local jQuery variable
		jQuery = window.jQuery.noConflict(true);
		// Call our main function
		main(); 
	}
	
	/******** Our main function ********/
	function main() { 
		jQuery(document).ready (function ($) {
			var scripts = document.getElementsByTagName ('script');
			for (var i = 0; i < scripts.length; i ++) {
				if (scripts[i].src.indexOf ('include/js/iframes/your_site.js') >= 0) {
					var params = scripts[i].src.split ('?');
					var url = params[0].split ('/');
					url = 'http://' + url[2];
					params = params[1].split ('&');
					var user = params[0].split ('=')[1];
					var code = params[1].split ('=')[1];
					
					$.getJSON (url + '/index.php?c=iframes&m=your_site&user=' + user + '&code=' + code + '&callback=?', function (data) {
						if (data.status == 'OK') {
							$('#trys_code_' + user + '_' + code).append ('<link rel="stylesheet" type="text/css" href="' + url + '/include/css/your_site.css" />');
							//$('#trys_code_' + user + '_' + code).append ('<script type="text/javascript" src="' + url + '/include/js/jquery-corner.js"></script>');
							$('#trys_code_' + user + '_' + code).append ('<div id="trys_plugin"><div id="trys_header"><table width="100%"><tr><td><div id="trys_title"><a href="' + url + '/profile/' + data.oper.seo_name + '/" target="_blank">Reviews</a></div></td><td align="right">' + (data.oper.logo ? '<a href="' + url + '/profile/' + data.oper.seo_name + '/" target="_blank"><img src="' + url + data.oper.logo + '" alt="' + data.oper.name + ' logo" align="right" border="0" /></a>' : '') + '</td></tr></table></div><div id="trys_content"></div><div id="trys_footer"><div id="trys_profile"><a href="' + url + '/reviews/add/' + data.oper.seo_name + '/" target="_blank">Write a review!</a></div></div></div>');
							for (var i = 0; i < data.reviews.length; i ++) {
								var review = data.reviews[i];
								$('#trys_code_' + user + '_' + code + ' #trys_content').append ('<div class="trys_review ' + (i < (parseInt (data.params.count) - 1) ? '' : 'trys_last') + '">' + review.reviewer + ': ' + review.comments + ' <a href="' + url + '/profile/' + data.oper.seo_name + '/" target="_blank">more</a><div class="trys_distance">' + review.distance + '</div></div>');
							}
							
							$('#trys_code_' + user + '_' + code).css ('display', 'none');
							$('#trys_code_' + user + '_' + code + ' #trys_plugin').corner ('round 5px');
							$('#trys_code_' + user + '_' + code + ' #trys_content').corner ('round 5px');
							
							$('#trys_code_' + user + '_' + code + ' #trys_plugin').width (data.params.width);
							$('#trys_code_' + user + '_' + code + ' #trys_plugin').css ('background', data.params.shell_bg);
							$('#trys_code_' + user + '_' + code + ' #trys_content').css ('background', data.params.tweet_bg);
							$('#trys_code_' + user + '_' + code + ' #trys_plugin *').css ('font-family', data.params.font);
							$('#trys_code_' + user + '_' + code + ' #trys_title a').css ('color', data.params.shell_text);
							$('#trys_code_' + user + '_' + code + ' #trys_profile a').css ('color', data.params.shell_text);
							$('#trys_code_' + user + '_' + code + ' .trys_review').css ('color', data.params.tweet_text)
							$('#trys_code_' + user + '_' + code + ' .trys_review').css ('border-bottom', data.params.tweet_text + ' 1px dotted');
							$('#trys_code_' + user + '_' + code + ' .trys_last').css ('border-bottom', 'none');
							$('#trys_code_' + user + '_' + code + ' .trys_review a').css ('color', data.params.links);
							$('#trys_code_' + user + '_' + code).css ('display', 'block');
						} else {
							alert ('TourRadar widget cannot be loaded.');
						}
					});
					return false;
				}
			}
		});
	}

})(); // We call our anonymous function immediately