/*
 * FusionCharts Free v2
 * http://www.fusioncharts.com/free
 *
 * Copyright (c) 2009 InfoSoft Global (P) Ltd.
 * Dual licensed under the MIT (X11) and GNU GPL licenses.
 * http://www.fusioncharts.com/free/license
 *
 * MIT License: http://www.opensource.org/licenses/mit-license.php
 * GPL License: http://www.gnu.org/copyleft/gpl.html
 *
 * Date: 2009-08-21
 */
//--------------------------------------------------------------------------------
/*
Extended function definitions

This file contains extensions to the base MovieClip Object.
All the functions contained in this file can be used with any other Flash MX/+ movie for common procedures
*/
/*-------------------------------------------------------------
	mc.drawPoly is a method for creating regular
	polygons. Negative values for sides will draw the
	polygon in the reverse direction, which allows for
	creating knock-outs in masks.
-------------------------------------------------------------*/
MovieClip.prototype.drawPoly = function(x, y, sides, radius, angle) {
	// ==============
	// mc.drawPoly() - by Ric Ewing (ric@formequalsfunction.com) - version 1.4 - 4.7.2002
	// 
	// x, y = center of polygon
	// sides = number of sides (Math.abs(sides) must be > 2)
	// radius = radius of the points of the polygon from the center
	// angle = [optional] starting angle in degrees. (defaults to 0)
	// ==============
	if (arguments.length<4) {
		return;
	}
	// convert sides to positive value
	var count = Math.abs(sides);
	// check that count is sufficient to build polygon
	if (count>2) {
		// init vars
		var step, start, n, dx, dy;
		// calculate span of sides
		step = (Math.PI*2)/sides;
		// calculate starting angle in radians
		start = (angle/180)*Math.PI;
		this.moveTo(x+(Math.cos(start)*radius), y-(Math.sin(start)*radius));
		// draw the polygon
		for (n=1; n<=count; n++) {
			dx = x+Math.cos(start+(step*n))*radius;
			dy = y-Math.sin(start+(step*n))*radius;
			this.lineTo(dx, dy);
		}
	}
};
