/*
 * <div class="tagSelector tagSelector-mygallery tagSelectorOpenFirst tagSelectorActivateFirstTarget">
 * 	<ul>
 * 		<li class="riTag riTagAbc"><span>Abc</span></li>
 * 		<li class="riTag riTagDef"><span>Abc</span></li>
 * 		<li class="riTag riTagGhj"><span>Abc</span></li>
 * 		<li class="riTag riTagKlm"><span>Abc</span></li>  
 * 	</ul>  
 * </div> 
 * 
 * <div id="mygallery">
 * 	<img src=... class="riTagAbc riTagDef">
 * 	<img src=... class="riTagDef riTagKlm">
 * 	<img src=... class="riTagAbc">
 * </div>   
 */
jQuery(function($)
{
	$('.tagSelector .riTag > span, .tagSelector .riTag > a').live('click', function(e)
	{
		var className, rs, source, parent, targetClass, elms, targetContainer, a, first, link;
		source = $(this).parent();
		className = source.attr('class');
		
		if (!className)
			return true; // true = do not cancel
		rs = /\b(riTag\S+)/.exec(className);
		if (!rs)
			return true;
		targetClass = rs[1];
		
		e.preventDefault();
		
		parent = source.parents('.tagSelector');
		className = parent.attr('class');
		rs = /\btagSelector-(\S+)/.exec(className);
		if (!rs)
			return false;
		
		source.parents('.tagSelector').find('.riTag').removeClass('tagSelected');
		source.addClass('tagSelected');
		
		
		targetContainer = $('#'+rs[1]);
		targetContainer.addClass('someTagSelected');
		
		$('.tagSelected', targetContainer).removeClass('tagSelected');
		elms = targetContainer.get(0).getElementsByTagName('*');
		
		first = true;
		
		targetClass = ' '+ targetClass + ' ';
		for (a = 0; a < elms.length; a++)
		{
			if ( (' ' + elms[a].className + ' ').indexOf(targetClass) > -1 )
			{
				$(elms[a]).addClass('tagSelected');
				if (first)
				{
					link = $(elms[a]).children('a').eq(0);
					if (link.length)
						first = false;
					
					if (parent.hasClass('tagSelectorActivateFirstTarget'))
					{
						link.click();
					}
				}
			}
		}
	}).css('cursor', 'pointer');
	
	$('.tagSelector.tagSelectorOpenFirst .riTag:eq(0) > span, .tagSelector.tagSelectorOpenFirst .riTag:eq(0) > a').click();
	

});
