
/*
	JQuery Circlemenu plugin
	Copyright (c) 2011 Korea Digital Media High School 8th Hacking Defense - Namjun Jo
	E-mail : namjun.jo@gmail.com
	
	How to use
	
	Use to <ul> (unordered list)
	-> Make your <li> children to circle menu  
	
	$.circlemenu( circle's center X coordinate, center Y coordinate, circle's radius, start angle, end angle )
	* angle uses 'general angle'
	
	ex)
	$.circlemenu( 400, 400, 100, 90, -90 );
	->  circle's center coordinate = (400px, 400px)
		circle's radius = 100px
		angle = 90 degree ~ -90 degree
*/

(function( $ ){

  $.fn.circlemenu = function(centerX, centerY, radius, startAngle, endAngle) {
  	centerX = parseFloat(centerX);
  	centerY = parseFloat(centerY);
  	radius = parseFloat(radius);
  	startAngle = parseFloat(startAngle);
  	endAngle = parseFloat(endAngle);
 	var AngleDistance;
 	var selector = '#'+this.attr('id')+' > li';
 	var ChildrenCount = this.children(selector).size();
 	var x, y;
 	if( ChildrenCount < 2 ) {
 		AngleDistance = 0;
 		if( ChildrenCount < 1 ) {
 			return;
 		}
 	}
 	else {
 		AngleDistance = (startAngle - endAngle) / (ChildrenCount-1);
 	}
 	$(this).css('list-style', 'none');
  	this.children(selector).each(function(index) {
  		x = centerX + radius * Math.cos((startAngle - AngleDistance * index) * Math.PI / 180 );
  		y = centerY + (-1) * radius * Math.sin((startAngle - AngleDistance * index) * Math.PI / 180 );
 		$(this).css('position', 'absolute');
 		$(this).css('left', x+'px');
 		$(this).css('top', y+'px');
  	});

  }
})( jQuery );
