/***************************************** (c) Copyright Phi Tran 2005 ***************/

document.getElementsByTagName('head')[0].removeChild(ascript);
script = document.createElement('script');script.type = 'text/javascript';script.src = 'SvgPage.js';script.id='sript6'
document.getElementsByTagName('head')[0].appendChild(script);

script = document.createElement('script');script.type = 'text/javascript';script.src = 'XTMLparse.js';script.id='sript5'
document.getElementsByTagName('head')[0].appendChild(script);

script = document.createElement('script');script.type = 'text/javascript';script.src = 'fGradient.js';script.id='sript4'
document.getElementsByTagName('head')[0].appendChild(script);
script = document.createElement('script');script.type = 'text/javascript';script.src = 'fSvg2Str.js';script.id='sript3'
document.getElementsByTagName('head')[0].appendChild(script);

script = document.createElement('script');script.type = 'text/javascript';script.src = 'SgvMenu.js';script.id='sript2'
document.getElementsByTagName('head')[0].appendChild(script);
script = document.createElement('script');script.type = 'text/javascript';script.src = 'SvgGraphic.js';script.id='sript1'
document.getElementsByTagName('head')[0].appendChild(script);
var edit_mode=0;



var ANCHORDIV="<div id='XX1' class='XX2' style='top:0px;left:0px;' onmousedown='AnchorMouseDown(this.id)' onmouseup='AnchorMouseUp(this.id)'></div>";
function MakeAnchorStr(idd,clssn){	var a=ANCHORDIV.replace("XX1",idd);	a=a.replace("XX2",clssn);	return(a);	}

var ie5 = (document.getElementById && document.all);
var ns6 = (document.getElementById && !document.all);
var Xpos,Ypos;
/***************************************** (c) Copyright Phi Tran 2005 ***************/
/*
<script>
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'snip.js';
document.getElementsByTagName('head')[0].appendChild(script); 
</script> 
*/
function _STOPPOINT(x,RR,GG,BB)
	{
	this.offset		=x;
	this.opacity	=1;
	this.colorR		=RR;
	this.colorB		=BB;
	this.colorG		=GG;
	}	
function _LinearGradient(x1,x2,y1,y2)
	{
	this.x1		=x1;
	this.y1		=y1;
	this.x2		=x2;
	this.y2		=y2;
	this.stop   =new Array();
	this.stop[0]=new _STOPPOINT(0,		255,128,128);
	this.stop[1]=new _STOPPOINT(0.25,	255,128,0);
	this.stop[2]=new _STOPPOINT(0.75,	255,255,128);
	this.stop[3]=new _STOPPOINT(1,		128,128,255);
	} 
	
function _RadialGradient(x1,x2,y1,y2)
	{
	this.fx		= (x1+x2)/2;
	this.fy		= (y1+y2)/2;
	this.r		= 0;
	this.stop   = new Array();
	if(y2-y1 >x2-x1)this.r=y2-y1;
	else this.r=x2-x1;
	this.r=Math.round(Math.abs(this.r)/2);
	this.stop[0]=new _STOPPOINT(0,		255,128,128);
	this.stop[1]=new _STOPPOINT(0.25,	255,128,0);
	this.stop[2]=new _STOPPOINT(0.75,	255,255,128);
	this.stop[3]=new _STOPPOINT(1,		128,128,255);
	}	
	
function _BoundRect() // circle
	{
	this.x1 =00;
	this.y1 =00;
	this.x2 =60;
	this.y2 =40;  // two dots (X1 Y1) (X2 Y2)
	}
function _BoundRoundRect()
	{
	this.x1 =00;
	this.y1 =00;
	this.x2 =60;
	this.y2 =40;  // two dots (X1 Y1) (X2 Y2)
	this.rx =7;
	this.ry =5;// Four dots (X1, Y1) (X2, Y2) (X1+cx,Y1) (X1,Y1+Cy)
	}		
function _PPPOINT(z,x,y)// moveto line to
	{
	this.type	=z;// 0=move to 1 = line to
	this.x		=x;
	this.y		=y;
	}
function _Curve(x1,y1,x2,y2,x3,y3)// moveto line to
	{
	this.type	=2;// 2= curve
	this.x1		=x1;
	this.y1		=y1;	
	this.x2		=x2;
	this.y2		=y2;
	this.x		=x3;
	this.y		=y3;
	}




function _elementRect()
	{
	this.type			= 2;
	this.BRect			= new _BoundRect()
	this.strokeWidth	= 1;
	this.stroke			= new Array(0,0,0)
	this.strokeType		= 1; // 0 is none 1 is solid color 2 is linear 3 is radial
	this.fillType		= 1;
	this.fill			= new Array(255,255,0)
	this.style			= new Array();
	this.id				= new String();
	this.skewX			= 0;
	this.skewY			= 0;
	this.rotate			= 0;
	this.maxX			= 0;
	this.minX			= 0;
	this.maxY			= 0;
	this.minY			= 0;
	this.zIndex			= 0;
	this.translateY		= 0;
	this.translateX		= 0;
	this.outline		= 0;
	this.draw			= 0;
	}

function _elementEllipse()
	{
	this.type			= 1;
	this.BRect			= new _BoundRect()
	this.strokeWidth	= 1;
	this.stroke			= new Array(0,0,0)
	this.strokeType		= 1; // 0 is none 1 is solid color 1 is linear 2 is radial
	this.fillType		= 1;
	this.fill			= new Array(255,255,0)
	this.style			= new Array();
	this.id				= new String();
	this.skewX			= 0;//Math.PI/2 ;
	this.skewY			= 0;//Math.PI/2 ;
	this.rotate			= 0;
	this.maxX			= 0;
	this.minX			= 0;
	this.maxY			= 0;
	this.minY			= 0;
	this.zIndex			= 0;
	this.translateY		= 0;
	this.translateX		= 0;	
	this.outline		= 0;
	this.draw			= 0;
	}

function _elementRoundRect()
	{
	this.type			= 3;
	this.BRect			= new _BoundRoundRect()
	this.strokeWidth	= 1;
	this.stroke			= new Array(0,0,0)
	this.strokeType		= 1; // 0 is none 1 is solid color 1 is linear 2 is radial
	this.fillType		= 1;
	this.fill			= new Array(255,255,0)
	this.style			= new Array();
	this.id				= new String();
	this.maxX			= 0;
	this.minX			= 0;
	this.maxY			= 0;
	this.minY			= 0;
	this.zIndex			= 0;
	this.skewX			= 0;
	this.skewY			= 0;
	this.rotate			= 0;
	this.translateY		= 0;
	this.translateX		= 0;
	this.outline		= 0;
	this.draw			= 0;
	}
function _elementPath()
	{
	this.type			= 4;
	this.closed			= 1; // 1= close 0 =open
	this.points			= new Array();
	this.strokeWidth	= new Number(1);
	this.stroke			= new Array(0,0,0)
	this.strokeType		= 1; // 0 is none 1 is solid color 1 is linear 2 is radial
	this.fillType		= 1;
	this.fill			= new Array(255,255,0)
	this.style			= new Array();
	this.id				= new String();
	this.skewX			= 0;
	this.skewY			= 0;
	this.rotate			= 0;
	this.maxX			= 0;
	this.minX			= 0;
	this.maxY			= 0;
	this.zIndex			= 0;
	this.minY			= 0;
	this.translateY		= 0;
	this.translateX		= 0;
	this.outline		= 0;
	this.draw			= 0;
	this.points[0]= new _PPPOINT(0,24,12);
	this.points[1]= new _PPPOINT(1,70,110);
	this.points[2]= new _PPPOINT(1,86,12);
	this.points[3]= new _PPPOINT(1,5,90);
	this.points[4]= new _PPPOINT(1,100,60);
	}

var current_move_object;
var CurrentItem=-1;
var ItemCount=0;
var ItemArray=new Array();
var current_move_function="";

var downX=-10000;
var downY=-10000;


function GetMoveVal()
			{
			var x=Math.abs(document.getElementById("MoveItem").value)
			if(isNaN(x)) return(5);
			if(x==0)x=5;
			return(x);
			}
function GetOtherVal(y)
			{
			switch(y)
				{
				case 1:y="ZoomItem";break;
				case 2:y="StretchItem";break;
				case 3:y="SkewItem";break;
				case 4:y="RotateItem";break;
				default:return(0.01);
				}
			var x=Math.abs(document.getElementById(y).value)
			if(isNaN(x)) return(0.01);
			if(x==0) x=0.01;
			return(x);
			}
function ItemScale(x,y)
		{
		var a=ItemArray[CurrentItem];
		switch(a.type)
			{
			case 3:a.BRect.rx=Math.round(a.BRect.rx*x);a.BRect.ry=Math.round(a.BRect.ry*y);// round Rect
			case 2:
			case 1:
					a.BRect.x1=Math.round(a.BRect.x1*x);
					a.BRect.y1=Math.round(a.BRect.y1*y);
					a.BRect.x2=Math.round(a.BRect.x2*x);
					a.BRect.y2=Math.round(a.BRect.y2*y);
					break;
			case 4:// path
					var b=ItemArray[CurrentItem].points;
					for(var m=0;m<b.length;m++)
						{
						a=b[m];
						if(a.type==2)
							{
							a.x1=Math.round(a.x1*x);
							a.y1=Math.round(a.y1*y);
							a.x2=Math.round(a.x2*x);
							a.y2=Math.round(a.y2*y);
							}
						a.x=Math.round(a.x*x);
						a.y=Math.round(a.y*y);
						}
					break;
			default:return;
			}
		}
function VerifySkew()
	{
	var x=40*0.017453293;
	if(ItemArray[CurrentItem].skewX<=(-x))ItemArray[CurrentItem].skewX=-x;
	if(ItemArray[CurrentItem].skewX>=( x))ItemArray[CurrentItem].skewX=x;
	if(ItemArray[CurrentItem].skewY<=(-x))ItemArray[CurrentItem].skewY=-x;
	if(ItemArray[CurrentItem].skewY>=( x))ItemArray[CurrentItem].skewY=x;
	}		
function ToolDown(x)
			{
			if (x!=50 && CurrentItem<0)
				if(x<16) return;
			AnyDown=1;	
			
			switch(x)
				{
				case 50:
					current_move_object="Tool1";
					downX=Xpos-parseInt(document.getElementById("Tool1").style.left,10);
					downY=Ypos-parseInt(document.getElementById("Tool1").style.top,10);
					current_move_function="";	return;

				case 0: x=parseInt(document.getElementById("item"+CurrentItem).style.left,10)-GetMoveVal();document.getElementById("item"+CurrentItem).style.left=x+"px";	return;//left
				case 1: x=parseInt(document.getElementById("item"+CurrentItem).style.left,10)+GetMoveVal();document.getElementById("item"+CurrentItem).style.left=x+"px";	return;// move right
				case 2: x=parseInt(document.getElementById("item"+CurrentItem).style.top,10) -GetMoveVal();document.getElementById("item"+CurrentItem).style.top=x+"px";	return;;// move up
				case 3: x=parseInt(document.getElementById("item"+CurrentItem).style.top,10) +GetMoveVal();document.getElementById("item"+CurrentItem).style.top=x+"px";	return;;// move down
							
				case 4: ItemScale(1-GetOtherVal(2),1);break;// Stretch left
				case 5: ItemScale(1+GetOtherVal(2),1);break;// Stretch right
				case 6: ItemScale(1,1+GetOtherVal(2));break;// Stretch up
				case 7: ItemScale(1,1-GetOtherVal(2));break;// Stretch down
				
				case 8: ItemArray[CurrentItem].skewX-=GetOtherVal(3)*0.017453293; VerifySkew();ItemArray[CurrentItem].skewY =0;break;// Skew left
				case 9: ItemArray[CurrentItem].skewX+=GetOtherVal(3)*0.017453293; VerifySkew();ItemArray[CurrentItem].skewY =0;break;// Skew right
				case 10:ItemArray[CurrentItem].skewY-=GetOtherVal(3)*0.017453293; VerifySkew();ItemArray[CurrentItem].skewX =0;break;// Skew up
				case 11:ItemArray[CurrentItem].skewY+=GetOtherVal(3)*0.017453293; VerifySkew();ItemArray[CurrentItem].skewX =0;break;// Skew down
							
				case 12:ItemScale(1+GetOtherVal(1),1+GetOtherVal(1));break;// Scale up
				case 13:ItemScale(1-GetOtherVal(1),1-GetOtherVal(1));break;// Scale down
							
				case 14:ItemArray[CurrentItem].rotate+=GetOtherVal(4)*0.017453293; break;// Rotate Up
				case 15:ItemArray[CurrentItem].rotate-=GetOtherVal(4)*0.017453293; break;// Rotate down
							
				case 16:ClearCurThumb();CurrentItem=GetFreeItem();ItemArray[CurrentItem]= new _elementEllipse()	 ;SetUpNewItem(CurrentItem);break;// Circle
				case 17:ClearCurThumb();CurrentItem=GetFreeItem();ItemArray[CurrentItem]= new _elementRect()	 ;SetUpNewItem(CurrentItem);break;// Rect
				case 18:ClearCurThumb();CurrentItem=GetFreeItem();ItemArray[CurrentItem]= new _elementRoundRect();SetUpNewItem(CurrentItem);break;// Round rect
				case 19:ClearCurThumb();CurrentItem=GetFreeItem();ItemArray[CurrentItem]= new _elementPath()	 ;SetUpNewItem(CurrentItem);break;// Path
				default: return;//continue;
				}
			
			Draw_Anhore(CurrentItem);
			RefreshItem(CurrentItem);
			return;
		}
			
		
function GetFreeItem()
		{
		var x;
		var m;
		for(x=0;x<ItemCount;x++)
			{
			if(ItemArray[x]==undefined) return(x);
			}
		return(ItemCount++);
		}			
			
function ToolUp(x)
			{
			downY=downX=-10000;
			}

var refresh_needed;	
var AnyDown=0;
function MasterMouseDown(e)
			{
			AnyDown=0;
			var mystring="MasterPause();";
			setTimeout(mystring,20);
			return;
			}
function MasterPause()
			{
			if(AnyDown) return;
			AnyDown=1;
			if(CurrentItem>=0)
				{
				if(ItemArray[CurrentItem].fillType>1)
					{
					var kk=IsDown(CurrentItem)
					if(kk) 
						{
						if(kk<0) return;
						FloodMouseDown(CurrentItem);
						return;
						}
					}
				}	
			for(var x=ItemCount-1;x>=0;x--)
				{
				if(ItemArray[x]==undefined)  continue;
				if(ItemArray[x].fillType<=1) continue;
				if(x==CurrentItem) continue;
				var kk=IsDown(x)
				if(kk) 
					{
					if(kk<0) return;
					FloodMouseDown(x);
					return;
					}
				}
			return;
			function IsDown(cc)
					{
					var a=document.getElementById("item"+cc).style;
					var x1,x2,y1,y2;
					x1=parseInt(a.left,10)
					y1=parseInt(a.top,10)
					x2=x1+ItemArray[cc].maxX;
					y2=y1+ItemArray[cc].maxY;
					x1+=ItemArray[cc].minX;
					y1+=ItemArray[cc].minY;
					if(Xpos>x1 && Xpos<x2 && Ypos>y1 && Ypos<y2) 
						{
						x1-=ItemArray[cc].minX;
						y1-=ItemArray[cc].minY;
						var tt=ItemArray[cc].fillGradient.stop;
						for(var hh=0;hh<tt.length;hh++)
							{
							x2=parseInt(document.getElementById("T"+cc+"I"+hh).style.left,10)-1;
							y2=parseInt(document.getElementById("T"+cc+"I"+hh).style.top,10)-1;
							if(Xpos>=x2+x1 &&Xpos<=x2+x1+9 &&Ypos>=y2+y1 &&Ypos<=y2+y1+9)
								return(-1);
							}
						
						var tt=document.getElementById("itemDR"+cc);
						for(var m=0;tt.childNodes[m];m++)
							{
							if(parseInt(tt.childNodes[m].style.top,10)+y1!=Ypos) continue;
							y2=parseInt(tt.childNodes[m].style.left,10)+x1;
							if(Xpos<y2) continue;
							x2=parseInt(tt.childNodes[m].style.width,10)+y2;
							if(Xpos<x2) return(1);
							}
						return(0);
						}
					return(0);
					}
			
			}
			
function MasterMouseMove(e)
			{
   		Xpos=
			(ie5)?event.x+window.document.body.scrollLeft:(ns6)?clientX=e.clientX+window.pageXOffset:e.pageX;
		Ypos=
			(ie5)?event.y+window.document.body.scrollTop:(ns6)?clientY=e.clientY+window.pageYOffset:e.pageY;						
			AnyDown=1;
			if(downX>-10000 &&  downY>-10000)
				{
				var m=document.getElementById(current_move_object).style;
				if(current_move_object=="RedBut" ||current_move_object=="GreenBut" ||current_move_object=="BlueBut")
					{
					if(Number(Number(Xpos)-Number(downX)) >=256 || Number(Number(Xpos)-Number(downX)) <0)
						return;
					m["left"]=Number(Number(Xpos)-Number(downX))+"px";
					SetColorDiv();
					return;
					}
				
				m["left"]=Number(Number(Xpos)-Number(downX))+"px";
				m["top"] =Number(Number(Ypos)-Number(downY))+"px";
				refresh_needed=1;
				}
			}
			

function parsing_itemID()
		{
		var pp=new Array();
		var a=current_move_object.substring(1);
		
		pp.a=parseInt(a,10);
		a=a.substring(a.indexOf("@")+1);
		pp.b=parseInt(a,10);
		if(a.indexOf("#")>=1)
			{
			a=a.substring(a.indexOf("#")+1);
			pp.c=parseInt(a,10);
			}
		return(pp);
		}
		

function AchchorMove()
		{
		var m=document.getElementById(current_move_object).style;
		var x1=parseInt(m.left,10)+1;
		var y1=parseInt(m.top,10)+1;
		var pp=SVGReverseTransform(x1,y1);
		x1=pp.x;
		y1=pp.y;
		pp=parsing_itemID();
		switch(ItemArray[CurrentItem].type)
			{
			case 4:
				switch(pp.c)
					{
					case 1:
						ItemArray[CurrentItem].points[pp.b].x=x1;
						ItemArray[CurrentItem].points[pp.b].y=y1;break;
					case 2:
						ItemArray[CurrentItem].points[pp.b].x1=x1;
						ItemArray[CurrentItem].points[pp.b].y1=y1;break;
					case 3:
						ItemArray[CurrentItem].points[pp.b].x2=x1;
						ItemArray[CurrentItem].points[pp.b].y2=y1;break;
					}
					break;
			case 3:	
					m=document.getElementById("p"+pp.a+"@"+1).style;
					var pp2=SVGReverseTransform(parseInt(m.left,10),parseInt(m.top,10));			
					if(pp.b==3)
						{
						x1=x1-pp2.x;//parseInt(m.left,10);
						if(x1<0 ) break;
						//if(x1<parseInt(m.width,10)/2) 
						ItemArray[CurrentItem].BRect.rx=x1;
						break;
						}
					else if(pp.b==4)
				   		{
				   		y1=y1-pp2.y;//parseInt(m.top,10);
				   		if(y1<0) break;
				   		//if(x1<parseInt(m.height,10)/2) 	
						ItemArray[CurrentItem].BRect.ry=y1;
						break;
						}	
			case 1://"p"+cur+"@"+1
			case 2:if(pp.b==1)
					{
					ItemArray[CurrentItem].BRect.x1=x1;
					ItemArray[CurrentItem].BRect.y1=y1;
					break;
					}
				   else if(pp.b==2)
				   	{
					ItemArray[CurrentItem].BRect.x2=x1;
					ItemArray[CurrentItem].BRect.y2=y1;
					break;
					}
				break;	
			}
		}
			
function AnchorMouseDown(itemID) //DOWN
		{
		var x=document.getElementById(itemID).style;
		AnyDown=1;
		if(downY==-20000)
			{
			downY=downX=-10000;
			return;
			}
		//if(CurrentItem>=0)
		//	{
		//	document.getElementById('itemAC'+ CurrentItem).style.visibility=0;
		//	}
		//var y =itemID.indexOf("@");
		//alert(itemID.substring( 1, y));
		current_move_object=itemID;
		downX=Xpos-parseInt(x.left,10);
		downY=Ypos-parseInt(x.top,10);
		
		if(itemID=="RedBut" || itemID=="GreenBut" ||itemID=="BlueBut")
			{
			//alert(itemID);
			refresh_needed=0;
			return;
			}
		if(itemID.indexOf("T")!=0)
			document.getElementById("AutoColor").checked=0;
		current_move_function=AchchorMove;
		refresh_needed=0;
		}
function AnchorMouseUp(itemID)
		{
		downY=downX=-10000;
		current_move_function="";
		if(refresh_needed)
			{
			if(itemID.indexOf("T")==0)
				{
				var cur=parseInt(itemID.substring(1));
				var m=parseInt(itemID.substring(1+itemID.indexOf("I")));
				//alert(m+ " " + cur);
				var b=ItemArray[cur].fillGradient;
				var x=document.getElementById(itemID).style;
				var y=parseInt(x.top,10)+4;
					x=parseInt(x.left,10)+4;
				if(m==0)
					{
					if(ItemArray[cur].fillType==2)
						{b.x1=x;b.y1=y;	}
					else
						{b.fx=x;b.fy=y;	}
					}
				else if(m==b.stop.length-1)	
					{
					if(ItemArray[cur].fillType==2)
						{b.x2=x;b.y2=y;}
					else
						{b.r=Math.abs(x-b.fx);}
					}
				else
					{
					if(ItemArray[cur].fillType==2)
						{
						var w=Math.abs (b.x2-b.x1);
						var h=Math.abs (b.y2-b.y1);
						if(h>w) 
							w=Math.abs (y-b.y1);
						else { h=w; w=Math.abs (x-b.x1);}
						h=w/h;
						if(h>=1) h=0.9;
						else { h*=1000; h=Math.round (h); h/=1000;}
						b.stop[m].offset=h;
						}
					
					else
						{
						var a=Math.abs(x-b.fx);
							a/=b.r; a*=1000; a=Math.round(a); a/=1000;
						b.stop[m].offset=a;
						}
						
					}
				//AchchorMove();
				Draw_Anhore(CurrentItem);
				return;
				}
			AchchorMove();
			RefreshItem(CurrentItem);
			Draw_Anhore(CurrentItem);
			}
		refresh_needed=0;	
		}

var CurveAddlevel;
var PathOrient =new Array();

var StrokeColor;

function RefreshItem(x)
		{
		var m=x;
		DrawingLevel=0;
		CurveAddlevel=0;
		HHTML="";
		Ppoints= new Array();
		StrokeColor=RgbToString(ItemArray[x].stroke[0],ItemArray[x].stroke[1],ItemArray[x].stroke[2]);
		ItemMaxX=ItemMaxY=-20000;
		ItemMinX=ItemMinY=20000;
		if(ItemArray[x].fillType>1)
			ProcessGradient(x);
		else
			SwapNeeded=0;
			
		switch(ItemArray[x].type)
			{
			case 1: 
				m=ItemArray[x].BRect
				CirleAddBot=0;
				CirleAddRight=0;
				DrawEllipse( (m.x1+m.x2)/2 ,  (m.y1+m.y2)/2 , (m.x2- m.x1)/2 ,  (m.y2- m.y1)/2 ,0);
				//MakeOval(m.x1, m.y1,m.x2- m.x1, m.y2- m.y1);
				break;
			case 2: 
				m=ItemArray[x].BRect;
				MakeLine(m.x1, m.y1,m.x2, m.y1);
				MakeLine(m.x2, m.y1,m.x2, m.y2);
				MakeLine(m.x2, m.y2,m.x1, m.y2);
				MakeLine(m.x1, m.y2,m.x1, m.y1);
				break;
			case 3: 
				m=ItemArray[x].BRect;
				MakeLine(m.x1+m.rx, m.y1,						m.x2-m.rx, m.y1);
				MakeLine(m.x2, m.y1+m.ry,						m.x2, m.y2-m.ry);
				MakeLine(m.x2-m.rx, m.y2,						m.x1+m.rx, m.y2);
				MakeLine(m.x1, m.y2-m.ry,						m.x1, m.y1+m.ry);
				CirleAddBot=m.y2-m.y1-m.ry-m.ry;
				CirleAddRight=m.x2-m.x1-m.rx-m.rx;
				DrawEllipse( (m.x1+m.rx) , (m.y1+m.ry) , m.rx , m.ry, 0);
				//MakeOval(m.x1,m.y1,m.rx<<1,m.ry<<1);
				break;
			case 4:
				m=ItemArray[m].points;
				var cur_x,cur_y;
				var save_x,save_y;
				
				for(var c=0;c<m.length;c++)
					{
					var a=m[c];
					if(m.length==92 && c==76)
						cur_x=cur_x;
					switch(a.type)
						{
						case 0:
							save_x=cur_x=a.x;save_y=cur_y=a.y;break;
						case 1:
							if(a.y>cur_y) PathOrient[CurveAddlevel]=2;
							else if(a.y<cur_y) PathOrient[CurveAddlevel]=1;
								else 
									PathOrient[CurveAddlevel]=0;
							
							MakeLine(cur_x, cur_y, a.x, a.y);
							cur_x=a.x;cur_y=a.y;
							
							DrawingLevel++;
							CurveAddlevel++;

							break;
						case 2:
							if(cur_x==a.x && cur_y==a.y) continue;
							PathOrient[CurveAddlevel]=0;
							MakeCurve(cur_x,cur_y,a.x1,a.y1,a.x2,a.y2,a.x,a.y);
							cur_x=a.x;cur_y=a.y;
							
							DrawingLevel++;
							CurveAddlevel++;
							break;
						}
					}
				if(m.length>2 && ItemArray[x].closed)
						{
						MakeLine(cur_x, cur_y, save_x, save_y);
						if(save_y>cur_y) PathOrient[CurveAddlevel]=2;
							else if(save_y<cur_y) PathOrient[CurveAddlevel]=1;
								else PathOrient[CurveAddlevel]=0;
						DrawingLevel++;
						CurveAddlevel++;
						}
				break;
			default:return;
			}
		CurveAddlevel++;
		if(CurveAddlevel==10)
			CurveAddlevel=CurveAddlevel;
		
		
		
		cur_x=OutlineDraw(ItemArray[x].strokeType,ItemArray[x].fillType);
		if(ItemArray[x].strokeType>=1)
			document.getElementById("itemOL"+x).innerHTML=cur_x;
		else	
			document.getElementById("itemOL"+x).innerHTML="";

		ItemArray[x].maxY=ItemMaxY;
		ItemArray[x].maxX=ItemMaxX;
		ItemArray[x].minY=ItemMinY;
		ItemArray[x].minX=ItemMinX;
		}
function NumericalSort(a,b){return(a-b)}
function SetCurThumb()
		{
		document.getElementById("item"+CurrentItem).style["zIndex"]=ItemCount+150;
		}
function ClearCurThumb()
		{
		if(CurrentItem>=0)
			{
			document.getElementById("itemAC"+CurrentItem).style.visibility="hidden";
			document.getElementById("item"+CurrentItem).style["zIndex"]=ItemArray[CurrentItem].zIndex;
			}
		}

function FloodMouseDown(cur)
		{
		ClearCurThumb()
		AnyDown=1;
		//if(CurrentItem>=0)
		//document.getElementById("itemAC"+CurrentItem).style.visibility="hidden";
		CurrentItem=cur;
		document.getElementById("itemAC"+CurrentItem).style.visibility="visible";
		ShowItemMenu(Xpos,Ypos);
		SetCurThumb();
		}
var LastBkColor=-1;
function SetItemBkColor(cur)
		{
		var ThisColor=RgbToString(ItemArray[cur].fill[0],ItemArray[cur].fill[1],ItemArray[cur].fill[2]);
		var x=document.getElementById("itemDR"+cur);
		LastBkColor=cur;
		for(var m=0;x.childNodes[m];m++)
			{
			x.childNodes[m].style.backgroundColor=ThisColor;
			}
		}
var FloodCount;
var FloodDiv;
var DrawCount;
function MkDrawDiv(x,y,w,h,c,o)
		{
		var fl="";
		if(FloodCount<DrawCount)
			{
			var ff=FloodDiv.childNodes[FloodCount].style;
			ff.left=x+"px";
			ff.top=y+"px";
			ff.width=w+"px";
			ff.height=h+"px"
			ff.backgroundColor=c;
			ff.visibility="visible";
			ff.opacity= o;
			ff.filter="alpha(opacity=" +(o*100)+")";
			}
		else
			{
			var mouseevent="onmousedown='FloodMouseDown("+CurrentItem+")'"
			var thiscolor=c+=";opacity:"  +o+  ";filter:alpha(opacity=" +(o*100)+ ")"
			fl="<div style='overflow:hidden;visibility:visible;position:absolute;left:"+x+"px;top:"+y+"px;width:"+w+"px;height:"+h+"px;background-color:"+thiscolor+";border-style:none;' "+mouseevent+"></div>";
			}
		FloodCount++;
		return(fl);
		}
function MkDrawDivRework()
		{
		var a=FloodCount;
		if(FloodCount>DrawCount)
			ItemArray[CurrentItem].draw=FloodCount;
		while(FloodCount<DrawCount)
			{
			FloodDiv.childNodes[FloodCount].style.visibility="hidden";
			FloodCount++;
			}
		return(a>DrawCount);
		}
		
function Flood_fill(cur)
		{
		var Flood="";
		var y,y1,m;
		var x2;
		var fillType=ItemArray[cur].fillType;
		FloodCount=0;
		FloodDiv=document.getElementById("itemDR"+cur);
		DrawCount=ItemArray[cur].draw;
		if(fillType>1)
			ProcessGradient(cur)
			
		//opacity:+0;filter:alpha(opacity=0")
		
		ThisColor=RgbToString(ItemArray[cur].fill[0],ItemArray[cur].fill[1],ItemArray[cur].fill[2]);
		var mopaci=1;
		if(ItemArray[cur].style.fillOpacity!=undefined)
			{
			mopaci=ItemArray[cur].style.fillOpacity;
			//if(mopaci>=0 && mopaci<=1)
			//	ThisColor+=";opacity:"  +mopaci+  ";filter:alpha(opacity=" +(mopaci*100)+ ")"
			}
			
		if(CurveAddlevel==1)
			{
			m=Ppoints[0];
			var y3;
			//y1=Ppoints[0].length;
			y3=ItemArray[cur].minY;
			y1=ItemArray[cur].maxY;
			for(y=y3;y<=y1;y++)
			//for(y=0;y<y1;y++)
				{
				if(!isArray(m[y])) 
					{
					if(y>y3)
						{
						if(isArray(m[y-1]) && isArray(m[y+1]))
							{
							x2=m[y-1][m[y-1].length-1]-m[y-1][0];
							if(fillType>1)
								Flood+=ProcessOneLine(cur,m[y-1][0],y,x2)
							else if(fillType)
								Flood+=MkDrawDiv(m[y-1][0],y,x2,1,ThisColor,mopaci)
								//Flood+="<div style='overflow:hidden;position:absolute;left:"+m[y-1][0]+"px;top:"+y+"px;width:"+x2+"px;height:1px;background-color:"+ThisColor+";border-style:none;' onmousedown='FloodMouseDown("+cur+")'></div>";
							}
						}
					continue;
					}
				m[y].sort(NumericalSort);
				x2=m[y][m[y].length-1]-m[y][0];
				if(x2<1) x2=1;
				if(fillType>1)
					Flood+=ProcessOneLine(cur,m[y][0],y,x2)
				else
					Flood+=MkDrawDiv(m[y][0],y,x2,1,ThisColor,mopaci)
					//Flood+="<div style='overflow:hidden;position:absolute;left:"+m[y][0]+"px;top:"+y+"px;width:"+x2+"px;height:1px;background-color:"+ThisColor+";border-style:none;' onmousedown='FloodMouseDown("+cur+")'></div>";;
				}
			//if(MkDrawDivRework())
			document.getElementById("itemDR"+cur).innerHTML=Flood;
			return;
			//var y=Ppoints[0].length; // this is the vertical line
			}
		if(ItemArray[cur].closed !=undefined)
			if(ItemArray[cur].closed==0) 
				{
				document.getElementById("itemDR"+cur).innerHTML="";
				return;
				}
		
		var MinArray = new Array();
		var MaxArray = new Array();
//		var MAX=0;
//		var MIN=10000;
		var MAX=ItemArray[cur].maxY;
		var MIN=ItemArray[cur].minY;
		for(x=0;x<Ppoints.length ;x++)
			{
			MaxArray[x]=Number(StokeMouseEvent[x].PathMaxY);
			MinArray[x]=Number(StokeMouseEvent[x].PathMinY);
			if(MaxArray[x]==MinArray[x])
				PathOrient[x]=0;
			}
		for(x=0;x<Ppoints.length;x++)
			{
			if(PathOrient[x]==0)
				{
				var ff;
				if(x<Ppoints.length-1)
					ff=x+1;
				else 
					ff=x-1;
				if(!isArray(Ppoints[ff][MinArray[x]])) 	
					Ppoints[ff][MinArray[x]]=new Array();
				Ppoints[ff][MinArray[x]]=Ppoints[ff][MinArray[x]].concat(Ppoints[x][MinArray[x]]);
				Ppoints.splice(x,1); 
				MinArray.splice(x,1); 
				MaxArray.splice(x,1); 
				PathOrient.splice(x,1); 
				x--;
				continue;
				}
			}
		for(x=0;x<Ppoints.length;x++)
			{
			if(x==0) m=Ppoints.length-1; else m=x-1;
			if(PathOrient[x]==PathOrient[m])
				{
				if(PathOrient[x]==2)
					MaxArray[m]=MinArray[x]-1;
				else
					MinArray[m]=MaxArray[x]+1;
					
				}
			}
		for(x=0;x<Ppoints.length;x++)
			for(y=MinArray[x]+1;y<=MaxArray[x];y++)
			  if(!isArray(Ppoints[x][y])) 
				{Ppoints[x][y]=Ppoints[x][y-1];}
				
		for(x=0;x<Ppoints.length;x++)
			for(y=MinArray[x];y<=MaxArray[x];y++)
				Ppoints[x][y].sort(NumericalSort);
			
		for(y=MIN;y<MAX;y++)
			{
			var countt=0;
			for(x=0;x<Ppoints.length;x++)
				{
				if(y>=MinArray[x] && y<=MaxArray[x])
					{
					PathOrient[countt]=x;
					countt++;
					}
				}
			if((countt%2)==0)
				{
				for(x=0;x<countt;x++)
					{
					for(m=x+1;m<countt;m++)
						{
						if(Ppoints[PathOrient[x]][y][0]>Ppoints[PathOrient[m]][y][0])
							{
							var a=PathOrient[x];PathOrient[x]=PathOrient[m];PathOrient[m]=a;
							}
						}
					}
				for(x=0;x<countt;x+=2)
					{
					x2=Ppoints[PathOrient[x+1]][y][Ppoints[PathOrient[x+1]][y].length-1]-Ppoints[PathOrient[x]][y][0];
					if(x2<=0) x2=1;
					if(fillType>1)
						Flood+=ProcessOneLine(cur,Ppoints[PathOrient[x]][y][0],y,x2)
					else
					if(fillType)
						Flood+=MkDrawDiv(Ppoints[PathOrient[x]][y][0],y,x2,1,ThisColor,mopaci)
						//Flood+="<div style='overflow:hidden;position:absolute;left:"+Ppoints[PathOrient[x]][y][0]+"px;top:"+y+"px;width:"+x2+"px;height:1px; background-color:"+ThisColor+";border-style:none;' onmousedown='FloodMouseDown("+cur+")'></div>";
					//alert(Flood);	
					}
				}
			countt=countt;		
			}
		//if(MkDrawDivRework())
		document.getElementById("itemDR"+cur).innerHTML=Flood;
		}
		
function SetUpNewItem(cur)
		{
		var y = document.getElementById("PAPA").appendChild(document.createElement('div'));
		y.id = 'item'+ cur;	y.className='Items';y.style.top="10px";y.style.left="10px";
		//y.style.width="0px";y.style.height="0px";
		//y.style.backgroundColor="#FFF";
		//y.onmousedown="'FloodMouseDown("+cur+")'";
		y.style["zIndex"]=cur+100;
		y.style.top=ItemArray[cur].translateY+"px";
		y.style.left=ItemArray[cur].translateX+"px";
		var yy = y.appendChild(document.createElement('div'));
		yy.id = 'itemDR'+ cur;	yy.className='Items'; yy.style.top="0px";yy.style.left="0px"; // for fill
		
		
		yy = y.appendChild(document.createElement('div'));
		yy.id = 'itemOL'+ cur;	yy.className='Items'; yy.style.top="0px";yy.style.left="0px";// outline
		
		
		yy = y.appendChild(document.createElement('div'));
		yy.id = 'itemAC'+ cur;	yy.className='Items'; yy.style.top="0px";yy.style.left="0px";//anchor
		
		var a=ItemArray[cur];
		a.zIndex= cur+100;
		var b="";
		switch(a.type)
				{
				case 3:
					   b =MakeAnchorStr("p"+cur+"@"+3,'RountPoint');
					   b+=MakeAnchorStr("p"+cur+"@"+4,'RountPoint');
				case 2:
				case 1:// create 4 new div
						b+=MakeAnchorStr("p"+cur+"@"+1,'Anchor');
					    b+=MakeAnchorStr("p"+cur+"@"+2,'Anchor');
						yy.innerHTML=b;
					break;
				case 4:
					CreatePathOL(cur);
					break;
				}
		
		}
		
function CreatePathOL(cur)
		{
		var m=ItemArray[cur].points;
		var html="";
		var yy=document.getElementById('itemAC'+cur);
		yy.innerHTML="";
		var a="";
		for(var x=0;x<m.length;x++)
			{
			if(m[x].type==2)
				{
				a+=MakeAnchorStr("p"+cur+"@"+x+"#"+2,'Curve');
				a+=MakeAnchorStr("p"+cur+"@"+x+"#"+3,'Curve');
				}
			a+=MakeAnchorStr("p"+cur+"@"+x+"#"+1,'Anchor');
			}
		yy.innerHTML=a;
		}
function DrawOutlinePoint(x,y,cur,childname,flag)
	{
	var yy;
	var pp=SVGTransform(x, y);
	
	if(flag==-1)
		yy="p"+cur+"@"+childname;
	else
		yy="p"+cur+"@"+childname+"#"+flag;
	pp.y--;
	pp.x--;
	flag=document.getElementById(yy).style;
	flag.top=pp.y+"px";
	flag.left=pp.x+"px";;
	}
	
function Draw_Anhore(cur)
		{
		var a=ItemArray[cur];
		switch(a.type)
			{
			case 3:DrawOutlinePoint(a.BRect.x1+a.BRect.rx,a.BRect.y1,cur,3,-1);DrawOutlinePoint(a.BRect.x1,a.BRect.y1+a.BRect.ry,cur,4,-1);
			case 2:
			case 1:DrawOutlinePoint(a.BRect.x1,a.BRect.y1,cur,1,-1);DrawOutlinePoint(a.BRect.x2,a.BRect.y2,cur,2,-1);
				   //refresh(cur);
				   break;
			case 4:
					var m=ItemArray[cur].points;
					for(var x=0;x<m.length;x++)
						{
						DrawOutlinePoint(m[x].x,m[x].y,cur,x,1);
						if(m[x].type==2)
							{
							DrawOutlinePoint(m[x].x1,m[x].y1,cur,x,2);
							DrawOutlinePoint(m[x].x2,m[x].y2,cur,x,3);
							}
						}
					break;
			}
		
		DrawGradient(cur);
		}
		
function DrawGradient(cur)
		{
		var a;
		if(ItemArray[cur].fillType<=1)
			{
			try	{
				a=document.getElementById("T"+cur+"I0").style; // not defined
				}
			catch(e) {return;}
			}
		
		var aa="";
		var b=ItemArray[cur].fillGradient;
		var x1,x2,y1,y2;
		if(ItemArray[cur].fillType==2)
			{
			x1=b.x1;		x2=b.x2;		y1=b.y1;		y2=b.y2;
			}
		if(ItemArray[cur].fillType==3)
			{
			x1=b.fx;
			x2=b.fx+b.r;
			y1=b.fy;
			y2=b.fy;
			}
		//draw all stop	
		b=b.stop;
		x2-=x1;
		y2-=y1;
		
		for(var x=0;x<b.length;x++)
			{
			if(ItemArray[cur].fillType<=1)
				{
				try
					{
					a=document.getElementById("T"+cur+"I"+x);
					document.getElementById('itemAC'+cur).removeChild(a);
					} catch(e) {;}
				continue;
				}
			try {
			    a=document.getElementById("T"+cur+"I"+x).style;
				} catch(e)
					{
					var kk="<div class='Radient1' onmousedown='CThumbDn("+cur+","+x+")' style='background-color:#FFF;'> </div></div>"
					aa=MakeAnchorStr("T"+cur+"I"+x,"Radient3");
					aa=aa.replace("</div>",kk);
					document.getElementById('itemAC'+cur).innerHTML+=aa;
					a=document.getElementById("T"+cur+"I"+x).style;
					}
					
			try
				{
				if(x) { if(b[x].offset<b[x-1].offset) b[x].offset=b[x-1].offset+0.05;}
				b[x].left=a.left				=Math.round ((x1-4)+x2*b[x].offset)+"px";
				b[x].top =a.top 				=Math.round ((y1-4)+y2*b[x].offset)+"px";
				a.backgroundColor	=RgbToString(b[x].colorR,b[x].colorG,b[x].colorB);
				var vv=RgbToString(~b[x].colorR,~b[x].colorG,~b[x].colorB);
				document.getElementById("T"+cur+"I"+x).childNodes[0].style.backgroundColor=vv;
				a["borderColor"]=vv;
				}catch(e){;}
			}

			
		x=b.length;
		try {
			a=document.getElementById("T"+cur+"I"+x).style;
			document.getElementById('itemAC'+cur).removeChild(document.getElementById("T"+cur+"I"+x));
			}catch(e){;}
		return;	
		}

var GradientIndex1=0;
var GradientIndex2=0;
function CThumbDn(cur,index)
		{
		GradientIndex1=cur;
		GradientIndex2=index;
		downY=downX=-20000;
		AnyDown=1;
		if(index==0 ||index== ItemArray[GradientIndex1].fillGradient.stop.length-1)
			ShowOneMenu(Xpos,Ypos,document.getElementById("Gradient1"),300,GradientTemplate1.ParamPass)
		else
			ShowOneMenu(Xpos,Ypos,document.getElementById("Gradient2"),400,GradientTemplate2.ParamPass)
		}

function RgbToString(RR,GG,BB)
		{
		var x = "#" + IntToHex(RR) + IntToHex(GG) + IntToHex(BB);
		return(x);
		}
		
function AlphaRgbToString(OO,RR,GG,BB)
		{
		var x = "#" +IntToHex(OO)+ IntToHex(RR) + IntToHex(GG) + IntToHex(BB);
		return(x);
		}		
function IntToHex(n) {n &=0xff; var result = n.toString(16);if (result.length==1) result = "0"+result;return result;}

function SetColorDiv()
		{
		var RR=document.getElementById("RedVal").value=parseInt(document.getElementById("RedBut").style.left,10);
		var GG=document.getElementById("GreenVal").value=parseInt(document.getElementById("GreenBut").style.left,10);
		var BB=document.getElementById("BlueVal").value=parseInt(document.getElementById("BlueBut").style.left,10);
		document.getElementById("RGBColor").style.backgroundColor=RgbToString(RR,GG,BB);
		return;
		}
function GGBChange(RgbId)
		{
		var x;
		switch(RgbId)
			{
			case "RedVal": x="RedBut";break;
			case "GreenVal":x="GreenBut";break;
			case "BlueVal":x="BlueBut";break;
			default:return;
			}
		var y=document.getElementById(RgbId).value;
		if(isNaN(y)|| y<0) {y=0;document.getElementById(RgbId).value=0;}
		if( y>255) y=255;
		document.getElementById(x).style.left=y+"px";
		SetColorDiv();
		}
function DisableMove()
			{
			downY=downX=-10000;	
			if(current_move_object=="RedBut" ||current_move_object=="GreenBut" ||current_move_object=="BlueBut")
				{
				if(document.getElementById("AutoColor").checked && LastColorItem==CurrentItem)
					{
					MenuDown(-1,LastColorSet);
					if(LastColorSet!=201)
						{
						Draw_Anhore(CurrentItem);
						RefreshItem(CurrentItem);
						}
					}
				current_move_object="";
				}
			}

function ShowMainMenu()
		{
		var X=parseInt(document.getElementById("Tool1").style.left,10)+10;
		var Y=parseInt(document.getElementById("Tool1").style.top,10)+5;
		AnyDown=1;
		ShowOneMenu(X,Y,document.getElementById("MainMenu"),500,MainTemplate.ParamPass);
		}
var SVGList=new Array();
var SvgTopList=-1;
function IframeLoaded()
		{
		switch(window.frames["FrameIO"].document.forms["Form1"].elements["CMD"]["value"])
				{
				case "Savelog3":
				case "Savelog2":
					if (window.frames["FrameIO"].document.forms["Form1"].elements["USERID"]["value"]=="None")
						alert("Failed Open Account Please do it again");
					//else 	
					//	alert(window.frames["FrameIO"].document.forms["Form1"].elements["USERID"]["value"]);
					break;	
				case "GetProjectList":
					
					window.frames["FrameIO"].document.forms["Form1"].elements["CMD"]["value"]="GetSVGList"
					//window.frames["FrameIO"].document.forms["Form1"].elements["FIO"]["value"]=a;
					//window.frames["FrameIO"].document.forms["Form1"].elements["Fname"]["value"]=working_file;
					window.frames["FrameIO"].document.forms["Form1"].submit();
					break;
				
				case "GetSVG":
					
					var x2=window.frames["FrameIO"].document.forms["Form1"].elements["FIO"]["value"];
					LoadFile(x2);
					break;
				case "GetSVGList":
					onsetup();
					x2=window.frames["FrameIO"].document.forms["Form1"].elements["FIO"]["value"];
					SVGList=x2.split(",");
					document.getElementById("li"+502).innerHTML=SVGList[0];
					document.getElementById("li"+503).innerHTML=SVGList[1];
					document.getElementById("li"+504).innerHTML=SVGList[2];
					document.getElementById("li"+505).innerHTML=SVGList[3];
					SvgTopList=0;
					break;
				case "SaveSVG":
					//var x2=window.frames["FrameIO"].document.forms["Form1"].elements["FIO"]["value"];
					//alert(x2);
					break;
				
				}
		}
		
function ButtonClick(x)
	{
	var Password1=document.getElementById("Password1").value;
	var Password2=document.getElementById("Password2").value;
	var UserName =document.getElementById("UserName").value;
	switch(x)
		{
		case 1000:
				document.getElementById("ABOUTME").style.visibility="hidden";break;
		case 0:document.getElementById("Heldiv").style.visibility="hidden";break;
		case 1:document.getElementById("LOGGIN").style.visibility="hidden";
			if(checkPassword(Password1,Password2,UserName)) break;
			//if(Password1=="" || UserName=="") break;
			window.frames["FrameIO"].document.forms["Form1"].elements["CMD"]["value"]="Savelog2"
			window.frames["FrameIO"].document.forms["Form1"].elements["FIO"]["value"]=Password1;
			window.frames["FrameIO"].document.forms["Form1"].elements["Fname"]["value"]=UserName;
			window.frames["FrameIO"].document.forms["Form1"].submit();
			break;// login
		case 2:document.getElementById("LOGGIN").style.visibility="hidden";
			if(Password1 != Password2 || Password2=="" ||UserName=="")
				{
				alert("Retype not match Create New Account Failed");
				break;
				}
			window.frames["FrameIO"].document.forms["Form1"].elements["CMD"]["value"]="Savelog3"
			window.frames["FrameIO"].document.forms["Form1"].elements["FIO"]["value"]=Password1;
			window.frames["FrameIO"].document.forms["Form1"].elements["Fname"]["value"]=UserName;
			window.frames["FrameIO"].document.forms["Form1"].submit();
			break;// as new
		}
		
	}
function onsetup()
		{
		document.getElementById("PAPA").onmousemove=MasterMouseMove;
		document.getElementById("PAPA").onmousedown=MasterMouseDown;
		BuildMenu("PathMenu1",PathMenuTemplate,0,0,"MeYou1",10,0,"#8AA","#FFF","#FFA","#000",0,0,0);
		BuildMenu("PathMenu2",OtherPathMenuTemplate,0,0,"MeYou2",10,0,"#8AA","#FFF","#FFA","#000",0,0,100);
		BuildMenu("InsideItemMenu",ItemMenuTemplate,0,0,"MeYou3",10,0,"#576","#FFF","#FFA","#000",0,0,200);
		BuildMenu("Gradient1",GradientTemplate1,0,0,"MeYou4",10,0,"#7AB","#FFF","#FFA","#000",0,0,300);
		BuildMenu("Gradient2",GradientTemplate2,0,0,"MeYou5",10,0,"#7AB","#FFF","#FFA","#000",0,0,400);
		BuildMenu("MainMenu",MainTemplate,0,0,"MeYou6",10,0,"#48C","#FFF","#FFA","#000",0,0,500);
		}
function TravelingElement(xx)
		{
		var ff;
		var x;
		if(xx.childNodes.length)
			{
			x=xx.FirstChild;
			if(x!=undefined) 
			TravelingElement(x);
			if(x==null) return;
			for(y=1;y<xx.childNodes.length;y++)
				{
				if(x==null) break;
				x=x.nextSibling;
				if(x!=undefined) 
				TravelingElement(x);
				}
			}
		if(xx.tagName==undefined) return;	
		ff=xx.tagName;
		ff=ff;
		alert(xx.id);
		}
			
		


