function microblogcasting(site, link, message)
{
	switch(site)
	{
		case 'fb':
		case 'facebook':
			window.open('http://www.facebook.com/sharer.php?u=' + encodeURIComponent(link) + '&t=' + encodeURIComponent(message), 'facebook_sharer', 'toolbar=0,status=0,width=626,height=436');
		break;
		
		case 'twitter':
			window.open('http://twitter.com/home?status=' + encodeURIComponent(message + ' :::: ' + link), 'twitter_sharer', '');
		break;
	}						
}

function bracket_scroller(height)
{
	$('body').scrollTo($('#main-bar'), 500);
	$('.bracket_wrapper:eq(0)').scrollTo({top: parseInt(height) +'px', left:'0px'}, 500);
	$('.bracket_lable:eq(0)').scrollTo($('.bracket_lable:eq(0) .round:first'), 500);
}

//a dummy function 
imggroup = new Array();
function thumbImg(obj) {
	if(!obj) {
		return;
	}
	obj.onload = null;
	file = obj.src;
	zw = obj.offsetWidth;
	zh = obj.offsetHeight;
	if(zw < 2) {
		if(!obj.id) {
			obj.id = 'img_' + Math.random();
		}
		setTimeout("thumbImg($('" + obj.id + "'), " + method + ")", 100);
		return;
	}
	zr = zw / zh;
	var widthary = imagemaxwidth.split('%');
	if(widthary.length > 1) {
		fixw = $('wrap').clientWidth - 200;
		if(widthary[0]) {				
			fixw = fixw * widthary[0] / 100;				
		} else if(widthary[1]) {
			fixw = fixw < widthary[1] ? fixw : widthary[1];					
		}
	} else {
		fixw = widthary[0];
	}
	if(zw > fixw) {
		zw = fixw;
		zh = zw / zr;
		obj.style.cursor = 'pointer';
		if(!obj.onclick) {
			obj.onclick = function() {
				zoom(obj, obj.src);
			}
		}
	}
	obj.width = zw;
	obj.height = zh;
}


function trim(str, chars) {
	if(typeof str == 'undefined') return '';
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

$(
	function()
	{
		$('#setlanguage').find('select[name=lang]').change(
			function()
			{
				$('#setlanguage').trigger('submit');
			}
		);
	
		$('#overlay').hide();
		
		$('#advanced_search_off').hide();
	
		$('#advanced_search_on').click(
			function()
			{
				$('#simple_search_box').hide();
				$('#advanced_search_box').slideDown();
				//$('#advanced_search_box').removeClass('off').addClass('on');
				$('#advanced_search_off').show();
				$('#advanced_search_on').hide();
			}
		);
		
		$('#advanced_search_off').click(
			function()
			{
				//$('#advanced_search_box').removeClass('on').addClass('off');
				$('#advanced_search_box').slideUp();
				$('#simple_search_box').slideDown();
				$('#advanced_search_on').show();
				$('#advanced_search_off').hide();
			}
		);
		
		$('#baseA a').click(
			function(){
				switch($(this).attr('id'))
				{
					case 'gameslink':
						$('#baseA li').removeClass('current');
						$(this).parent().addClass('current');
						$('#baseB').addClass('activated');
						return false;
				}
			}
		);
				
		$('.addplayersbox li').data('originated_from', 'team');
		$('.removedplayersbox li').data('originated_from', 'clan');
		
		// $('div.conTeam').each(
			// function()
			// {
				// if($(this).find('.removedplayersbox li').length == 0)
				// {
					// $(this).find('input[type=button][name=removeplayers]').hide();
				// }
			// }
		// );
		
		$('.playerfield').click(
			function(){
				var target = $(this);

				if(target.hasClass('highlighted'))
				{
					target.removeClass('highlighted');
				}
				else
				{
					target.addClass('highlighted');
				}
			}
		);
		
		function handleAddRemovePlayers(element, action)
		{
			var animated_objs = new Array();
			var index = 0;
			var from, to;
			var container = $(element).parents('div[class*=conTeam]');
			var addplayersbox = $('<ul class="playerdetail addplayersbox"></ul>');
			var removedplayersbox = $('<ul class="playerdetail removedplayersbox"></ul>');
			
			container.find('.addplayersbox').children().appendTo(addplayersbox);
			container.find('.removedplayersbox').children().appendTo(removedplayersbox);
			container.find('.addplayersbox').remove();
			container.find('.removedplayersbox').remove();
			
			if(action == 'addplayers')
			{
				from = removedplayersbox;
				to = addplayersbox;
			}
			else if(action == 'removeplayers')
			{
				from = addplayersbox;
				to = removedplayersbox;
			}
			
			$(from).find('.playerfield').each(
				function()
				{
					if($(this).hasClass('highlighted'))
					{
						$(this)
							.appendTo(to)
							.removeClass('highlighted');

						animated_objs[index++] = $(this);
							
						if(action == 'addplayers')
						{
							$(this)
								.find('input[type=checkbox]')
								.attr('checked', true);
						}
						else if(action == 'removeplayers')
						{									
							$(this)
								.find('input[type=checkbox]')
								.removeAttr('checked');
						}
					}
				}
			);
			
			container.find('.removedplayerswrapper').append(removedplayersbox);
			container.find('.addplayerswrapper').append(addplayersbox);
			
			jQuery.each(animated_objs, 
				function()
				{
					if($(this).data('originated_from') == 'team')
					{
						if(action == 'addplayers')
						$(this).children().fadeTo('slow', 1);
						else
						$(this).children().fadeTo('slow', 0.5);
					}
					else
					{
						if(action == 'addplayers')
						$(this).children().fadeTo('slow', 0.5);
						else
						$(this).children().fadeTo('slow', 1);
					}
				}
			);
		}
		
		$("input[type=button][name=addplayers]").click(
			function()
			{
				handleAddRemovePlayers(this, 'addplayers');
			}
		);
		
		$("input[type=button][name=removeplayers]").click(
			function()
			{
				handleAddRemovePlayers(this, 'removeplayers');
			}
		);
		
		contentOption = $(".contentOption");
		
		if(contentOption.get(0))
		{
			$(contentOption).find("input[type=button][name=pbtn]").click(
				function()
				{
					$(this).fadeTo(
						250, 0, function()
						{
							$(this).hide();
							$('#pconfirm:not(:animated)').fadeTo(1, 0).fadeTo(250, 1).show();
						}
					);
				}
			);
			
			$(contentOption).find("input[type=button][name=pno]").click
			(
				function()
				{
					$('#pconfirm:not(:animated)').fadeTo(
						250, 0, function()
						{
							$('#pconfirm').hide();
							$("input[type=button][name=pbtn]").fadeTo(1, 0).fadeTo(250, 1).show();
						}
					);
				}
			);
			
			$(contentOption).find("input[type=button][name=showeditorbtn]").click
			(
				function()
				{
					btn = this;
					is_hidden = false;
					
					$('#editor_box:hidden:not(:animated)').show().fadeTo(
						250, 1, function()
						{
							$(btn).val('Hide Editor');
							is_hidden = true;
						}
					);
					
					if(!is_hidden)
					$('#editor_box:not(:animated)').fadeTo(
						250, 0, function()
						{
							$(this).hide();
							$(btn).val('Show Editor');
						}
					);
				}
			);
			
			now = new Date();
			today_date = now.getDate() + '/' + ((now.getMonth()) + 1) + '/' + (now.getYear() + 1900);
			$(contentOption).find('.mydatepicker').each(
				function()
				{
					current_date = $(this).find('input[type=hidden].datebox').val();
					$(this).DatePicker({
						flat: true,
						date: current_date ? current_date : today_date,
						current: current_date ? current_date : today_date,
						format: 'd/m/Y',
						calendars: 1,
						starts: 0,
						onChange: function(formated, dates){
							$(this).parents('.mydatepicker').find('input[type=hidden].datebox').val(formated);
						}
					});
				}
			);
			
			$(contentOption).find('input[type=radio][name=tnm_type]').change(
				function()
				{
					//convert val to element id
					var id = '';
					switch($(this).val() * 1)
					{
						case 1:
						id = '#online_wrapper';
						break;
						
						case 2:
						id = '#lan_wrapper';
						break;
					}
					
					$('.tnm_type_wrapper').hide();
					$(id).fadeTo(1, 0).fadeTo(500, 1).show();
				}
			);
		}
		
		lb = $('#lightbox');
		
		if(lb.get(0))
		{
			$('#albumlinks ul li').click(
				function ()
				{
					var img = $(this).find('img');
					var imgclass = $(img).attr('class');
					
					$('#albumname').empty().text(img.attr('alt'));
				
					var re = new RegExp('aid_([0-9]+)');
					var matches = re.exec(imgclass);
					
					if(matches != null && matches.length)
					{
						albumid = matches[1];
						
						$('#thumblist').find('.thumblist').hide();
						$('.albumid_' + albumid).fadeTo(1, 0).fadeTo(500, 1).show(
							250);
						
						loadthumb($('.albumid_' + albumid).find('img').get(0));
					}
				}
			);
			
			$('#thumblist li').click(
				function ()
				{
					loadthumb($(this).find('img').get(0));
				}
			);
			
			function loadthumb(thumbimg)
			{
				thumbimgsrc = $(thumbimg).attr('src');
				thumbimgtitle = $(thumbimg).attr('alt');
				imgsrc = thumbimgsrc.replace('.thumb.jpg', '');
				lb.find('img').attr('src', imgsrc).fadeTo(1, 0).fadeTo(500, 1);
				lb.find('span').empty().text(thumbimgtitle);
			}
		}
		
		
		//my flags list handler
		$dropdownlist_options = $('#dropdownlist_options');
		var dropdownlist_options_showed = false;
		
		triggerFlagsList = function(e)
		{
			$wrapper = $(this);
			var offset = $wrapper.offset();
			var totalHeight = $wrapper.height() + 2;
			
			var y = offset.top + totalHeight;
			var x = offset.left;
			
			$dropdownlist_options.css(
				{
					'position': "absolute",
					'marginLeft': 0, 
					'marginTop': 0,
					'top': y, 'left': x
				}
			).show().data('triggerBy', $wrapper);
			
			dropdownlist_options_showed = true;
		}
		
		$dropdownlist_options.find('li').click(
			function(e)
			{
				$dropdownlist_options.find('li').removeClass('dropdownlist_selected');
				$(this).addClass('dropdownlist_selected');
					
				var classstr = $(this).find('.flag').attr('class');
				var re = new RegExp('flag-([a-z]{2})');
				var matches = re.exec(classstr);

				if(matches != null && matches.length >= 1)
				{
					$trigger = $dropdownlist_options.data('triggerBy');
					$trigger.find('input[type=hidden]').val(matches[1]);
					$trigger.find('.dropdownlist_content .flag').attr('class', '').addClass('flag flag-' + matches[1]);
				}				
			}
		);
				
		$(document).click(
			function(e)
			{
				if(!dropdownlist_options_showed) return true;
				
				var dropdownlist_classes = new Array(
												'dropdownlist_options',
												'dropdownlist_content'
											);
				var classes = $(e.target).attr('class').split(' ');
				var climit = classes.length;
				var dlimit = dropdownlist_classes.length;
				var found = false;
				
				for(i=0; i < climit; i++)
				{
					for(x=0; x < dlimit; x++ )
					{	
						if(classes[i] == dropdownlist_classes[x])
						{
							found = true;
							break;
						}
					}
				}
				
				if(!found)
				{
					$dropdownlist_options.hide();
					dropdownlist_options_showed = false;
				}
			}
		);
		
		$(document).keydown(
				function(e)
				{

					if(dropdownlist_options_showed)
					{
						if(e.keyCode == 27)
						{
							$dropdownlist_options.hide();
							dropdownlist_options_showed = false;
							e.preventDefault();
						}
						
						if(e.keyCode == 38)
						{
							$selected = $dropdownlist_options.find('.dropdownlist_selected');
							
							if(!$selected.get(0))
							{
								$selected = $dropdownlist_options.find('li:last');
								$selected.addClass('dropdownlist_selected');
							}
							else
							{
								if($selected.removeClass('dropdownlist_selected').prev().get(0))
								{
									$selected.prev().addClass('dropdownlist_selected');
								}
								else
								{
									$selected = $dropdownlist_options.find('li:last');
									$selected.addClass('dropdownlist_selected');
								}
							}
							
							$dropdownlist_options.scrollTo($dropdownlist_options.find('.dropdownlist_selected'), 50);
							
							e.preventDefault();
						}
						
						if(e.keyCode == 40)
						{
							$selected = $dropdownlist_options.find('.dropdownlist_selected');
							
							if(!$selected.get(0))
							{
								$selected = $dropdownlist_options.find('li:first');
								$selected.addClass('dropdownlist_selected');
							}
							else
							{
								if($selected.removeClass('dropdownlist_selected').next().get(0))
								{
									$selected
									.next().addClass('dropdownlist_selected');
								}
								else
								{
									$selected = $dropdownlist_options.find('li:first');
									$selected.addClass('dropdownlist_selected');
								}
								
							}
							
							$dropdownlist_options.scrollTo($dropdownlist_options.find('.dropdownlist_selected'), 50);
							
							e.preventDefault();
						}
						
						if(e.keyCode >= 65 && e.keyCode <= 90)
						{
							thekey = String.fromCharCode(e.keyCode).toLowerCase();
							$selected = $dropdownlist_options.find('.dropdownlist_selected');
							
							if($selected.get(0))
							{
								if($selected.removeClass('dropdownlist_selected').next().get(0) && $selected.next().attr('accesskey') == thekey)
								{
									$selected
									.next().addClass('dropdownlist_selected');
								}
								else
								{
									$dropdownlist_options
									.find('li[accesskey=' + thekey +']:first')
									.addClass('dropdownlist_selected');
								}
							}
							else
							{
								$dropdownlist_options
									.find('li[accesskey=' + thekey +']:first')
									.addClass('dropdownlist_selected');
							}
							
							$dropdownlist_options.scrollTo($dropdownlist_options.find('.dropdownlist_selected'), 50);
							
							e.preventDefault();
						}
					}
				}
			);
		
		lite_generator = $('.generator_wrapper');
		
		$('.dropdownlist_wrapper').click(triggerFlagsList);
		
		if(lite_generator.get(0))
		{
			backet_size_field = lite_generator.find('input[name=bracket_size]');
			teamseeding = $('.bracket_teams_list_wrapper');
			table = $(lite_generator).find('#teamlist_table');
			lastrow = $(table).find('.table_last_row');
			firstrow = $(table).find('.table_first_row');
			
			lite_generator.find('form').submit(
				function(e)
				{
					error = false;
					errormsg = '';
					
					if(backet_size_field.val() < 2)
					{
						error = true;
						errormsg += "2 or more teams required. Please insert some teams.\n";
					}
					
					if(parseInt($('#backet_sort_type').val()) == -1)
					{
						error = true;
						errormsg += "Sorting method not selected. Please pick a sorting method.\n";
					}
					
					if(error)
					{
						alert('Additonal inputs required:\n' + errormsg);
						e.preventDefault();
						return false;
					}
				}
			);
			
			$(lite_generator).find('input[name=removeall]').click(
				function()
				{
					confirmed = confirm('Are you sure you want to clear all teams?');
				
					if(confirmed)
					{
						table.find('tr:has(".id_field"):not(.table_first_row):not(.table_last_row)').remove();
						update_bracket_size(0);
					}
				}
			);
			
			$(lite_generator).find('input[name=delete]').click(
				function(){
					table.find('.selected_row').remove();
					update_bracket_size(table.find('.team_row').length);
					reset_team_order();
				}
			);
			
			$(lite_generator).find('input[name=movetop]').click(
				function(){
					firstrow.after(table.find('.selected_row'));
					reset_team_order();
				}
			);
			
			$(lite_generator).find('input[name=movebottom]').click(
				function(){
					lastrow.before(table.find('.selected_row'));
					reset_team_order();
				}
			);
			
			$(lite_generator).find('input[name=moveup]').click(
				function(){
					table.find('.selected_row').each(
						function()
						{
							$(this)
							.prev('tr:not(.selected_row):not(.table_first_row)')
							.before(this);
						}
					);
					
					reset_team_order();
				}
			);
			
			$(lite_generator).find('input[name=movedown]').click(
					function()
					{
						targetrows = table.find('.selected_row');
						for(i=targetrows.length - 1; i >= 0; i--)
						{
							$(targetrows.get(i)).next('tr:not(.selected_row):not(.table_last_row)').after(targetrows.get(i));
						}
						reset_team_order();
					}
			);

			insert_team = function(teamname, flagcode){
				total_teams = 0;
				
				if(lastrow.get(0))
				{
					var ctcode = $('#bracket_defaultflag').val().length == 2 ? $('#bracket_defaultflag').val() : flagcode;
					var defaultflag = 'flag-' + ctcode;
					
					var htmlcode = 	'<tr class="team_row">'+
										'<td class="table_field flag_field">' +
											'<div class="dropdownlist_wrapper">' +
												'<div class="dropdownlist_content">' +
													'<div class="flag ' + defaultflag + '"></div>' + 
													'<input type="hidden" name="bracket_teamflags[]" value="' + ctcode + '"/>' +
												'</div>' +
											'</div>' +
											'<input type="hidden" name="bracket_teams[]" value=""/>' +
										'</td>' +
										'<td class="table_field team_field"></td>'+
										'<td class="table_field_right"></td>' +
										'<td class="table_field_left id_field">&nbsp;</td>' +
									'</tr>';
					total_teams = table.find('tr:has(.id_field)').length + 1;
					newteamrow = $(htmlcode);
					newteamrow.find('.dropdownlist_wrapper').click(triggerFlagsList);
					newteamrow.find('.id_field').text(total_teams);
					newteamrow.find('.team_field').text(teamname);
					newteamrow.find('input[name="bracket_teams[]"]').val(teamname);
					
					newteamrow.click(
						function()
						{
							if($(this).hasClass('selected_row'))
							{
								$(this).removeClass('selected_row');
							}
							else
							{
								$(this).addClass('selected_row');
							}
						}
					);
					
					$(lastrow).before(newteamrow);
				}
				
				return total_teams;
			};
			
			update_bracket_size = function(size)
			{
				if(size == 0)
				{
					backet_size_field.attr('disabled', 'disabled');
					backet_size_field.val(0);
				}
				else
				{
					backet_size_field.attr('disabled', 'disabled');
					backet_size_field.val(size);
				}
			}
			
			reset_team_order = function()
			{
				table.find('tr:has(".id_field"):not(.table_first_row):not(.table_last_row)').each(
					function(index)
					{
						$(this).find(".id_field").empty().text(index+1);
					}
				);
			}
						
			process_team_input = function(e){
				
				//if it is a keyup event and not enter key being pressed
				if(e.keyCode && e.keyCode != 13) {
					return true;
				}
			
				if($(this).val().length > 0)
				{
					teams = $(this).val().split("\n");
					total_teams = 0;
										
					for(i=0; i < teams.length; i++)
					{
						trimmed = trim(teams[i]);
						if(trimmed.length > 0)
						{
							total_teams = insert_team(trimmed);
						}
					}
					
					if(total_teams)
					update_bracket_size(total_teams);
					$(this).val('');
				}
			};
			
			if(lite_generator.find('input[name=parseflags]').val() == 1)
			{
				$teamlist = lite_generator.find('textarea[name=bracket_teams_input]');
			
				if($teamlist.val().length > 0)
				{
					values = $teamlist.val().split("\n");
					total_teams = 0;
										
					for(i=0; i < values.length; i+= 2)
					{
						teamname = trim(values[i]);
						flagcode = trim(values[i+1]);
						if(teamname.length > 0)
						{
							total_teams = insert_team(teamname, flagcode);
						}
					}
					
					if(total_teams)
					update_bracket_size(total_teams);
					$teamlist.val('');
				}
			}
			
			lite_generator.find('textarea[name=bracket_teams_input]').change(process_team_input).keyup(process_team_input);
			
		}
		
		
		$bracket_wrapper = $('.bracket_wrapper');
		$bracket_lable = $('.bracket_lable');
		
		if($bracket_wrapper.get(0))
		{
			$bracket_wrapper.bind('scrollx', 
				function(e)
				{
					if($bracket_wrapper.hasClass('dragged'))
					$bracket_lable.scrollLeft($bracket_wrapper.scrollLeft());
				}
			);
			
			$bracket_lable.bind('scrollx', 
				function(e)
				{
					if($bracket_lable.hasClass('dragged'))
					$bracket_wrapper.scrollLeft($bracket_lable.scrollLeft());
				}
			); 
					
			//generate minimap for bracket(s)
			total_height = $('.bracket_wrapper:eq(0) .round:eq(0)').height();
			matchup_height = $('.bracket_wrapper:eq(0) .matchup_wrapper:eq(0)').height();
			group_height = matchup_height * 8;
				
			for(tx_i = 0, count = 0; tx_i < total_height; tx_i += group_height, count++)
			{
				$a = $('<a href="javascript:bracket_scroller(' + tx_i + ');">' + (count + 1) + '</a>');
				
				$container = $('<div class="bracketnav_group"></div>').append($a);
				
				$('#bracket_navigator_wrapper').find('.bracketnav_1').append($container);
			}

			for(i = 0; i < count/2; i ++)
			$('#bracket_navigator_wrapper').find('.bracketnav_3').append('<div class="bracketnav_spacer"></div>');
			 
			$temp = $('<div class="bracketnav_final"></div>').append(
				$('<a href="javascript:;">Final</a>').click(
					function()
					{
						$('body').scrollTo($('#main-bar'), 500);
						$('.bracket_wrapper:eq(0)').scrollTo($('.bracket_wrapper:eq(0) .round:last .matchup_wrapper:last'), 500);
						$('.bracket_lable:eq(0)').scrollTo($('.bracket_lable:eq(0) .round:last'), 500);
					}
				)
			);
			
			$('#bracket_navigator_wrapper').find('.bracketnav_3').append($temp);
		
			var matchup_highlighted = false;
			var unhover = function()
			{
				$bracket_wrapper
				.find('.matchup_top_highlight,.matchup_top_winner_highlight,.matchup_bottom_highlight,.matchup_bottom_winner_highlight')
				.each(
					function()
					{
						var $this = $(this);
						
						if ($this.hasClass('matchup_top_winner_highlight'))
						{
							$this.removeClass('matchup_top_winner_highlight');
						}
						else if($this.hasClass('matchup_top_highlight'))
						{		
							$this.removeClass('matchup_top_highlight');
						}
						else if ($this.hasClass('matchup_bottom_winner_highlight'))
						{
							$this.removeClass('matchup_bottom_winner_highlight');
						}
						else if($this.hasClass('matchup_bottom_highlight'))
						{
							$this.removeClass('matchup_bottom_highlight');
						}
					}
				);
			}
			
			$bracket_wrapper.mouseover(
				function(e)
				{
					var $parents = $(e.target).parents('.matchup_top', '.matchup_bottom');
					var $target = $parents.length == 0 ? $(e.target) : $parents;
					var target_class = $target.attr('class');
					var re = new RegExp('teamid_([0-9]+)');
					var matches = re.exec(target_class);

					if(matches != null && matches.length >= 1)
					{
						var teamid = matches[1];
						
						if(matchup_highlighted)
						{
							unhover();
						}
						
						var $highlight_team = $bracket_wrapper.find('.teamid_' + teamid);
						
						$highlight_team.each(
							function()
							{								
								$this = $(this);
								if ($this.hasClass('matchup_top_winner'))
								{
									$this
										.addClass('matchup_top_winner_highlight');
								}
								else if($this.hasClass('matchup_top'))
								{
									$this
										.addClass('matchup_top_highlight');
								}
								else if ($this.hasClass('matchup_bottom_winner'))
								{
									$this
										.addClass('matchup_bottom_winner_highlight');
								}
								else if($this.hasClass('matchup_bottom'))
								{
									$this
										.addClass('matchup_bottom_highlight');
								}
							}
						);
	
						matchup_highlighted = true;
					}
					else 
					{
						if (matchup_highlighted)
						unhover();
					}
				}
			);
			
			var bindevents = false;
			$('.vtoolbar, .htoolbar').find('.icon').click(
				function()
				{
					var re = new RegExp('([a-z]+)_icon');
					var matches = re.exec($(this).attr('class'));

					if(matches != null && matches.length)
					{
						switch(matches[1])
						{
							case 'navigate':
								$('body').scrollTo($('#bracket_navigator_wrapper'), 500);
							break;
							
							case 'fullscreen':
								window.open( $(this).attr('href'), 'twitter_sharer', '');
							break;
						
							case 'copy':
								$('#overlay').show().fadeTo(250, 0.4);
								$('#copy').show();
								$('#toolbox_wrapper').show().centerElement();
								overlayed = true;
							break;
							
							case 'banner':
								$('#overlay').show().fadeTo(250, 0.4);
								$('#banner').show();
								$('#toolbox_wrapper').show().centerElement();
								overlayed = true;
							break;
							
							case 'edit':
								$('#overlay').show().fadeTo(250, 0.4);
								$('#edit').show();
								$('#toolbox_wrapper').show().centerElement();
								overlayed = true;
							break;
							
							case 'emb':
								$('#overlay').show().fadeTo(250, 0.4);
								$('#embcode').show();
								$('#toolbox_wrapper').show().centerElement();
								$('#cfgcolor').colorPicker();
								overlayed = true;
							break;
							
							case 'img':
								$('#overlay').show().fadeTo(250, 0.4);
								$('#snapshot').show();
								$('#toolbox_wrapper').show().centerElement();
								overlayed = true;
							break;
							
							case 'link':
								$('#overlay').show().fadeTo(250, 0.4);
								$('#directlink').show();
								$('#toolbox_wrapper').show().centerElement();
								overlayed = true;
							break;
							
							case 'fb':
								return true;
							break;
							
							case 'twitter':
								return true;
							break;
						
							default:
							alert('Sorry this feature is not available yet...');
						}
					}
					
					if(!bindevents)
					{
						$('select[name=cfgsize]').change(cfgupdate);
						$('#cfgcolor').change(cfgupdate);
						$('#cfgurl').change(cfgupdate);
						bindevents = true;
					}
				}
			);
			
			var updateteam_overlay  = $('#overlay');
			$teamupdate_form = $('#teamupdate_wrapper');
			
			var overlayed = false;
			var teamcentered = false;

			$bracket_wrapper.find('.matchup_wrapper .updateteam').click(
				function(e)
				{
					var tid = $(this).attr('rel');
					$teamupdate_form.show().find('input[type=hidden][name=tid]').val(tid);
					
					updateteam_overlay.show().fadeTo(250, 0.4);
					
					if(!teamcentered)
					{
						$teamupdate_form.centerElement();
						teamcentered = true;
					}
					
					overlayed = true;
					e.preventDefault();
				}
			);
			
			var updatescore_overlay  = $('#overlay');

			$update_form = $('#update_wrapper');
			
			var overlayed = false;
			var centered = false;

			$bracket_wrapper.find('.matchup_wrapper .updatescore').click(
				function(e)
				{
					$matchup_left = $(this).parents('div[class*=matchup_left]');
					
					var ttid = $matchup_left.find('.matchup_top .teamID').text();
					var ttname = $matchup_left.find('.matchup_top .teamName').text();
					var btid = $matchup_left.find('.matchup_bottom .teamID').text();
					var btname = $matchup_left.find('.matchup_bottom .teamName').text();
					
					var $matchup_text_data = $(this).parents('div[class*=matchup_wrapper]').find('.matchup_text_data');
					var score_regex = new RegExp('\{score:([^\}^\{]*)');
					var score_matches = score_regex.exec($matchup_text_data.val());
					var link_regex = new RegExp('\{link:([^\}^\{]*)');

					var link_matches = link_regex.exec($matchup_text_data.val());
					
					$('#update_wrapper').find('select[name=winner]').empty()
						.append('<option value="">Please select a winner</option>')						
						.append('<option value="' + ttid + '">' + ttname + '</option>')
						.append('<option value="' + btid + '">' + btname + '</option>');
					
					$('#update_wrapper').find('#score_table .game_row').remove();
					
					if(score_matches != null && score_matches.length)
					{
						var games = score_matches[1].split('|');
						var totalgames = games.length;

						for(i=0; i < totalgames; i++)
						{
							var $tr = $('<tr class="game_row"></tr>');
							scores = games[i].split(',');
							$tr.append('<td class="game_field">Game ' + (i+1) + '</td>');
							$tr.append('<td><span class="txtScore">' + scores[0] + '</span></td>');
							$tr.append('<td><span class="txtScore">' + scores[1] + '</span></td>');
							$('#update_wrapper').find('#score_table').show().append($tr);
						}	
						
					}
					else
					{
						$('#update_wrapper').find('#score_table').hide();
					}
					
					if(link_matches != null && link_matches.length)
					{
						$('#update_wrapper').find('#reportlink').empty().text(link_matches[1]).attr('href', link_matches[1]);
					}
						
					$('#update_wrapper').find('.top_team').empty().text(ttname);
					$('#update_wrapper').find('.bottom_team').empty().text(btname);
					
					$('#update_wrapper').find('input[name=matchup_id]').val($(this).attr('rel'));
					
					updatescore_overlay.show().fadeTo(250, 0.4);
					$update_form.show();
					
					if(!centered)
					{
						$update_form.centerElement();
						centered = true;
						
						var scoreindex = 2;
						$('input[name=addscore]').click(
							function()
							{
								$('#updatescore_table').append('<tr class="game_row">'
												+	'<td class="game_field">Game ' + (scoreindex++) + '</td>'
												+	'<td><input type="textbox" name="top_team_scores[]" class="txtScore" /></td>'
												+	'<td><input type="textbox" name="bottom_team_scores[]" class="txtScore"/></td>'
												+'</tr>');
							}
						);
					}
					
					overlayed = true;
					//e.preventDefault();
				}
			);
			
			$(document).keydown(
				function(e)
				{
					if(e.keyCode == 27)
					{
						if(overlayed)
						{
							overlayed = false;
							$('#overlay').hide();
							updatescore_overlay.hide();
							$update_form.hide();
							updateteam_overlay.hide();
							$teamupdate_form.hide();
							$('#toolbox_wrapper').hide();
							$('#embcode').hide();
							$('#snapshot').hide();
							$('#directlink').hide();
							$('#edit').hide();
							$('#copy').hide();
							$('#banner').hide();
							$('#color_selector').remove();
							$('.color_picker').remove();
							e.preventDefault();
						}
					}
				}
			);
		}
		
		cfgupdate = function()
		{
			var cfgsize = $('select[name=cfgsize]').val();
			var cfgurl = $('input[name=cfgurl]').val();
			var cfgcolor = $('input[name=cfgcolor]').val();
			var height = 0;
			var width = 0;
			var template = $('textarea[name=cfgtemplate]').val();
			var background = '?background=%s;';
			var bgcolor = '&bgc=%s;';
			
			switch(cfgsize * 1)
			{																
				case 1:
					width = 650;
					height = 433;
				break;
				
				case 2:
					width = 940;
					height = 626;
				break;

				case 0:
				default:
					width = 400;
					height = 266;
			}
		
			background = background.replace('%s', $('#cfgurl').val().replace(';','').replace('{', '').replace('}', ''));
			bgcolor = bgcolor.replace('%s', $('#cfgcolor').val().replace('#', '').replace(';','').replace('{', '').replace('}', ''));
			
			template = template.replace("%h", height);
			template = template.replace("%w", width);
			template = template.replace("%background", background + bgcolor);
			$('textarea[name=cfgoutput]').val(template);
		}
						
		//delayed google analytics page tracker loader
		// var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		// $.getScript(unescape(gaJsHost + "google-analytics.com/ga.js"), 
		// function(){
			// try 
			// {
				// var pageTracker = _gat._getTracker("UA-9778579-2");
				// pageTracker._trackPageview();
			// }
			// catch(err) {}
		// });
	}
);


function triggerKey($key)
{
	e=jQuery.Event('keydown');
	e.keyCode=$key;
	e.which=$key;
	$(document).trigger(e);
}

//jQuery plugin centerElement
(function($)
{
	$.fn.centerElement = function() {
        return this.each(function() 
        {
			var el = this;
			var left = el.offsetWidth / -2;
			var top = el.offsetHeight / -2;
			
			$(el).remove().appendTo("body")
					.wrap("<div style='position:fixed;top:50%;left:50%;width:1px;height:1px;z-index:1002'></div>")
					.css({position: 'relative', left: left + "px", top:  top + "px"});
		});
	};
})(jQuery);

//jQuery.ScrollTo Plugin
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);


/**
 * Really Simple Color Picker in jQuery
 * 
 * Copyright (c) 2008 Lakshan Perera (www.laktek.com)
 * Licensed under the MIT (MIT-LICENSE.txt)  licenses.
 * 
 */
//jQuery.colorPicker Plugin
(function($){
  $.fn.colorPicker = function(){    
    if(this.length > 0) buildSelector();
    return this.each(function(i) { buildPicker(this)}); 
  };
  
  var selectorOwner;
  var selectorShowing = false;
  
  buildPicker = function(element){
    //build color picker
    control = $("<div class='color_picker'>&nbsp;</div>")
    control.css('background-color', $(element).val());
    
    //bind click event to color picker
    control.bind("click", toggleSelector);
    
    //add the color picker section
    $(element).after(control);
    
    //hide the input box
    $(element).hide();
  };
  
  buildSelector = function(){
    selector = $("<div id='color_selector'></div>");

     //add color pallete
     $.each($.fn.colorPicker.defaultColors, function(i){
      swatch = $("<div class='color_swatch'>&nbsp;</div>")
      swatch.css("background-color", "#" + this);
      swatch.bind("click", function(e){ changeColor($(this).css("background-color")) });
      swatch.bind("mouseover", function(e){ 
        $(this).css("border-color", "#598FEF"); 
        $("input#color_value").val(toHex($(this).css("background-color")));    
        }); 
      swatch.bind("mouseout", function(e){ 
        $(this).css("border-color", "#000");
        $("input#color_value").val(toHex($(selectorOwner).css("background-color")));
        });
      
     swatch.appendTo(selector);
     });
  
     //add HEX value field
     hex_field = $("<label for='color_value'>Hex</label><input type='text' size='8' id='color_value'/>");
     hex_field.bind("keydown", function(event){
      if(event.keyCode == 13) {changeColor($(this).val());}
      if(event.keyCode == 27) {toggleSelector()}
     });
     
     $("<div id='color_custom'></div>").append(hex_field).appendTo(selector);

     $("body").append(selector); 
     selector.hide();

  };
  
  checkMouse = function(event){
    //check the click was on selector itself or on selectorOwner
    var selector = "div#color_selector";
    var selectorParent = $(event.target).parents(selector).length;
    if(event.target == $(selector)[0] || event.target == selectorOwner || selectorParent > 0) return
    
    hideSelector();   
  }
  
  hideSelector = function(){
    var selector = $("div#color_selector");
    
    $(document).unbind("mousedown", checkMouse);
    selector.hide();
    selectorShowing = false
  }
  
  showSelector = function(){
    var selector = $("div#color_selector");
    
    //alert($(selectorOwner).offset().top);
    
    selector.css({
      top: $(selectorOwner).offset().top + ($(selectorOwner).outerHeight()),
      left: $(selectorOwner).offset().left,
	  'z-index' : 1003
    }); 
    hexColor = $(selectorOwner).prev("input").val();
    $("input#color_value").val(hexColor);
    selector.show();
    
    //bind close event handler
    $(document).bind("mousedown", checkMouse);
    selectorShowing = true 
   }
  
  toggleSelector = function(event){
    selectorOwner = this; 
    selectorShowing ? hideSelector() : showSelector();
  }
  
  changeColor = function(value){
    if(selectedValue = toHex(value)){
      $(selectorOwner).css("background-color", selectedValue);
      $(selectorOwner).prev("input").val(selectedValue).change();
    
      //close the selector
      hideSelector();    
    }
  };
  
  //converts RGB string to HEX - inspired by http://code.google.com/p/jquery-color-utils
  toHex = function(color){
    //valid HEX code is entered
    if(color.match(/[0-9a-fA-F]{3}$/) || color.match(/[0-9a-fA-F]{6}$/)){
      color = (color.charAt(0) == "#") ? color : ("#" + color);
    }
    //rgb color value is entered (by selecting a swatch)
    else if(color.match(/^rgb\(([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])\)$/)){
      var c = ([parseInt(RegExp.$1),parseInt(RegExp.$2),parseInt(RegExp.$3)]);
      
      var pad = function(str){
            if(str.length < 2){
              for(var i = 0,len = 2 - str.length ; i<len ; i++){
                str = '0'+str;
              }
            }
            return str;
      }

      if(c.length == 3){
        var r = pad(c[0].toString(16)),g = pad(c[1].toString(16)),b= pad(c[2].toString(16));
        color = '#' + r + g + b;
      }
    }
    else color = false;
    
    return color
  }

  
  //public methods
  $.fn.colorPicker.addColors = function(colorArray){
    $.fn.colorPicker.defaultColors = $.fn.colorPicker.defaultColors.concat(colorArray);
  };
  
  $.fn.colorPicker.defaultColors = 
	[ '000000', '993300','333300', '000080', '333399', '333333', '800000', 'FF6600', '808000', '008000', '008080', '0000FF', '666699', '808080', 'FF0000', 'FF9900', '99CC00', '339966', '33CCCC', '3366FF', '800080', '999999', 'FF00FF', 'FFCC00', 'FFFF00', '00FF00', '00FFFF', '00CCFF', '993366', 'C0C0C0', 'FF99CC', 'FFCC99', 'FFFF99' , 'CCFFFF', '99CCFF', 'FFFFFF'];
  
})(jQuery);


/**
 * Requirements:
 * - jQuery (John Resig, http://www.jquery.com/)
 **/
//jQuery.enableTextSelect / .disableTextSelect Plugin
(function($) {
    if ($.browser.mozilla) {
        $.fn.disableTextSelect = function() {
            return this.each(function() {
                $(this).css({
                    'MozUserSelect' : 'none'
                });
            });
        };
        $.fn.enableTextSelect = function() {
            return this.each(function() {
                $(this).css({
                    'MozUserSelect' : ''
                });
            });
        };
    } else if ($.browser.msie) {
        $.fn.disableTextSelect = function() {
            return this.each(function() {
                $(this).bind('selectstart.disableTextSelect', function() {
                    return false;
                });
            });
        };
        $.fn.enableTextSelect = function() {
            return this.each(function() {
                $(this).unbind('selectstart.disableTextSelect');
            });
        };
    } else {
        $.fn.disableTextSelect = function() {
            return this.each(function() {
                $(this).bind('mousedown.disableTextSelect', function() {
                    return false;
                });
            });
        };
        $.fn.enableTextSelect = function() {
            return this.each(function() {
                $(this).unbind('mousedown.disableTextSelect');
            });
        };
    }
})(jQuery);
