
/*
¶ó¿îµå¹Ú½º
*/

function jjArrayMap(arr, tab) {
	
	if(!tab) tab = 0;
	var t='';
	for(var i=0; i<tab; i++) t+="\t";
	
	var Str = "array(\n";
	
	for(var key in arr) 
		Str += t + "\t["+key+"] => "+ (typeof arr[key] == 'object' ? 
												jjArrayMap(arr[key], tab+1) : 
												arr[key])+"          \n";
	
	Str += t + ")";
	return Str;
}

function jjArcDraw(ratio, border, arcSet)
{
	var x, y, thres;

	if( ratio == 0 ) return [0,0];
	
	if(!arcSet) {
		var i,j;
		arcSet = [];
		for(i=0,j=(ratio+border-2); i<=j; i++) {
			arcSet[i] = [0,0,0,0];
		}
	}
	
	y = ratio -1;
	thres = 3 - (ratio + ratio);

	for(x=0; x < y; x++) {
		if( thres < 0 ) thres += 6 + (x << 2);
		else {
			thres += -10 + ((x - y) << 2);
			y--;
		}
		
		arcSet = jjArcMemory(arcSet, x, ratio + border - y - 2);
		arcSet = jjArcMemory(arcSet, y, ratio + border - x - 2);
	}
	
	border--;
	if(border > 0) arcSet = jjArcDraw(ratio+border,1,arcSet);
	
	return arcSet;
}

function jjArcMemory(arcSet, x, y)
{
	if(!arcSet[y][0] || arcSet[y][0] > x) arcSet[y][0] = x;
	if(!arcSet[y][0] || arcSet[y][1] < x) arcSet[y][1] = x;
	
	return arcSet;
}

function jjArcAntiAliasing(arcSet) {
	alert('¾ÆÁ÷ ±¸ÇöµÇÁö ¾Ê½À´Ï´Ù.');
	return arcSet;
}

var isFunction = function(wh) 
{ 
            return (wh instanceof Function || typeof wh == "function"); 
} 

var jjArcWidth;
function jjArcInit(Obj, objRound, objBorder, objBorderColor, objFill, objAntiAliasing)
{	
	var ori_wid=0;
	objRound = parseInt(objRound);
	objBorder = parseInt(objBorder);
	
	var margin = jjArcDraw(objRound,objBorder);
	
	//if(objAntiAliasing) margin = jjArcAntiAliasing(margin);
	var piece;
	//Aprint(margin);
	var topSet = document.createElement('DIV');
	topSet.title="topSet";
	for(var key in margin) {
		//alert(margin );
		if(isFunction(margin[key])) continue; 

		if(key < objBorder) margin[key][0] = 0;
		piece = document.createElement('DIV');
		
		var marginLeft = objRound + objBorder - margin[key][1] -2;
		piece.style.margin = '0px '+ marginLeft +'px';
		
		var borderWidth = margin[key][1] - margin[key][0] +1;
		
		piece.style.borderLeft  = borderWidth +'px solid';
		piece.style.borderRight = borderWidth +'px solid';
		
		piece.style.borderColor = objBorderColor;
		piece.style.backgroundColor = (margin[key][0] == 0 ? objBorderColor : objFill);
		piece.style.height = '1px';
		piece.style.overflow = 'hidden';
		
		topSet.appendChild(piece);
	}
	
	var botSet = document.createElement('DIV');
	botSet.title="botSet";
	for(var i=topSet.childNodes.length - 1; i>=0; i--) {
		botSet.appendChild(topSet.childNodes[i].cloneNode(true));
	}
	
	
	var content = document.createElement('DIV');
	content.id = Obj.id;
	content.title="content";
	content.style.borderLeft  = objBorderColor +' '+ borderWidth +'px solid';
	content.style.borderRight = objBorderColor +' '+ borderWidth +'px solid';
	content.style.backgroundColor = objFill;
	content.style.padding = '0px '+objRound+'px';
	
	content.innerHTML = Obj.innerHTML;


	ori_wid = Obj.offsetWidth;



	Obj.id = '';
	Obj.innerHTML = ''           
	Obj.appendChild(topSet);
	Obj.appendChild(content);
	Obj.appendChild(botSet);
	
	
	if(IE) { 
		content.style.width=topSet.offsetWidth-objBorder*2-objRound*2+'px';
	}else{
		content.style.width=topSet.offsetWidth-objBorder*2-objRound*2+1+'px';
	}

	
	
}

function jjArcresize2(tarObj ,objRound, objBorder){
	var topObj = tarObj.parentNode.childNodes[0];
	var contentObj = tarObj.parentNode.childNodes[1];
	if(IE) { 
		contentObj.style.width = topObj.offsetWidth - objBorder*2 - objRound*2+'px';
	}else{
		contentObj.style.width = topObj.offsetWidth - objBorder*2 - objRound*2+1+'px';
	}
}

function jjArcresize(Obj, objRound, objBorder){
			if(IE) { 
				
				Obj.style.width = Obj.offsetWidth - objBorder*2 - objRound*2+'px';
				document.title ="IE action";
			}else{
				Obj.style.width = Obj.offsetWidth - objBorder*2 - objRound*2+1+'px';
				document.title ="FF action";
			}
}

function jjArcRemove(Obj) {
	if(Obj != '[object]') return;
	var toObj = Obj.parentElement;
	toObj.innerHTML = Obj.innerHTML;
	toObj.id = Obj.id;
}

	function  jjArcClass(classname,Round,border,borderColor,backgroundColor){
		var classnames = document.getElementsByClassName(classname);
		for(var i=0;i<classnames.length;i++){

			jjArcInit(classnames[i], Round, border, borderColor, backgroundColor);

		}
	}
