//align.js
canvas_width=eval(ocxName).width;
canvas_height=eval(ocxName).height;
align2canvas=false;
//
var canvas={};
canvas.x=0;
canvas.y=0;
canvas.left=0;
canvas.top=0;
canvas.right=canvas_width;
canvas.bottom=canvas_height;
//
function setalign(aligntype){
	Objs=GetObjs();
	if(Objs.length<2){
		alert("至少选中一个以上的元素才能使用本设置！")
		return;
	}
	switch(aligntype){
		case "al_h_left":
			var leftvalue
			if (align2canvas)
			{
				leftvalue=0;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(leftvalue==undefined){
						leftvalue=Objs[a].left;
					}else{
						leftvalue=Math.min(Objs[a].left,leftvalue);
					}
				}
			}
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemX(Objs[a].index,leftvalue);
			}
			break;
		case "al_h_center":
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				Middlevalue=canvas_width/2;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].left;
					}else{
						MinValue=Math.min(Objs[a].left,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].right;
					}else{
						MaxValue=Math.max(Objs[a].right,MaxValue);
					}
				}
				Middlevalue=(MaxValue+MinValue)/2;
			}
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemX(Objs[a].index,Middlevalue-Objs[a].width/2);
			}
			break;
		case "al_h_right":
			var rightvalue
			if (align2canvas)
			{
				rightvalue=canvas_width;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(rightvalue==undefined){
						rightvalue=Objs[a].right;
					}else{
						rightvalue=Math.max(Objs[a].right,rightvalue);
					}
				}
			}
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemX(Objs[a].index,rightvalue-Objs[a].width);
			}
			break;
		case "al_v_top":
			var topvalue
			if (align2canvas)
			{
				topvalue=0;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(topvalue==undefined){
						topvalue=Objs[a].top;
					}else{
						topvalue=Math.min(Objs[a].top,topvalue);
					}
				}
			}
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemY(Objs[a].index,topvalue);
			}
			break;
		case "al_v_center":			
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				Middlevalue=canvas_height/2;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].top;
					}else{
						MinValue=Math.min(Objs[a].top,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].bottom;
					}else{
						MaxValue=Math.max(Objs[a].bottom,MaxValue);
					}
				}
				Middlevalue=(MaxValue+MinValue)/2;
			}
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemY(Objs[a].index,Middlevalue-Objs[a].height/2);
			}
			break;
		case "al_v_bot":
			var botvalue
			if (align2canvas)
			{
				botvalue=canvas_height;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(botvalue==undefined){
						botvalue=Objs[a].bottom;
					}else{
						botvalue=Math.max(Objs[a].bottom,botvalue);
					}
				}
			}
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemY(Objs[a].index,botvalue-Objs[a].height);
			}
			break;
			///////////////////////////////////
		case "lay_h_left":
			Objs=Objs.sort(Compare_left);
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_width;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].left;
					}else{
						MinValue=Math.min(Objs[a].left,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].left;
					}else{
						MaxValue=Math.max(Objs[a].left,MaxValue);
					}
				}
			}
			step=(MaxValue-MinValue)/(Objs.length-1);
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemX(Objs[a].index,MinValue+step*a);
			}
			break;
		case "lay_h_center":
			Objs=Objs.sort(Compare_center_h);
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_width;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].center_h;
					}else{
						MinValue=Math.min(Objs[a].center_h,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].center_h;
					}else{
						MaxValue=Math.max(Objs[a].center_h,MaxValue);
					}
				}
			}
			step=(MaxValue-MinValue)/(Objs.length-1);
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemX(Objs[a].index,MinValue+step*a-Objs[a].width/2);
			}
			break;
		case "lay_h_right":	
			Objs=Objs.sort(Compare_right);
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_width;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].right;
					}else{
						MinValue=Math.min(Objs[a].right,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].right;
					}else{
						MaxValue=Math.max(Objs[a].right,MaxValue);
					}
				}
			}
			step=(MaxValue-MinValue)/(Objs.length-1);
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemX(Objs[a].index,MinValue+step*a-Objs[a].width);
			}
			break;
		case "lay_v_top":		
			Objs=Objs.sort(Compare_top);
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_height;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].top;
					}else{
						MinValue=Math.min(Objs[a].top,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].bottom;
					}else{
						MaxValue=Math.max(Objs[a].bottom,MaxValue);
					}
				}
			}
			step=(MaxValue-MinValue)/(Objs.length-1);
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemY(Objs[a].index,MinValue+step*a);
			}
			break;
		case "lay_v_center":
			Objs=Objs.sort(Compare_center_v);
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_height;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].bottom-Objs[a].height/2;
					}else{
						MinValue=Math.min(Objs[a].bottom-Objs[a].height/2,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].bottom-Objs[a].height/2;
					}else{
						MaxValue=Math.max(Objs[a].bottom-Objs[a].height/2,MaxValue);
					}
				}
			}
			step=(MaxValue-MinValue)/(Objs.length-1);
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemY(Objs[a].index,MinValue+step*a-Objs[a].height/2);
			}
			break;
		case "lay_v_bot":		
			Objs=Objs.sort(Compare_bottom);
			var MaxValue
			var MinValue
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_height;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].bottom;
					}else{
						MinValue=Math.min(Objs[a].bottom,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].bottom;
					}else{
						MaxValue=Math.max(Objs[a].bottom,MaxValue);
					}
				}
			}
			step=(MaxValue-MinValue)/(Objs.length-1);
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemY(Objs[a].index,MinValue+step*a-Objs[a].height);
			}
			break;
		case "size_width":
			var widthvalue
			if (align2canvas)
			{
				widthvalue=canvas_width;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(widthvalue==undefined){
						widthvalue=Objs[a].width;
					}else{
						widthvalue=Math.max(Objs[a].width,widthvalue);
					}
				}
			}
			for(var a=0;a<Objs.length;a++){
				if (align2canvas)
				{
					eval(ocxName).SetItemX(Objs[a].index,0);
				}
				eval(ocxName).SetItemWidth(Objs[a].x,Objs[a].y,Objs[a].index,widthvalue);
			}
			break;
		case "size_height":			
			var heightvalue
			if (align2canvas)
			{
				heightvalue=canvas_height;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(heightvalue==undefined){
						heightvalue=Objs[a].height;
					}else{
						heightvalue=Math.max(Objs[a].height,heightvalue);
					}
				}
			}
			for(var a=0;a<Objs.length;a++){
				if (align2canvas)
				{
					eval(ocxName).SetItemY(Objs[a].index,0);
				}
				eval(ocxName).SetItemHeight(Objs[a].x,Objs[a].y,Objs[a].index,heightvalue);
			}
			break;
		case "size_h_w":		
			var heightvalue	
			var widthvalue
			if (align2canvas)
			{
				heightvalue=canvas_height;
				widthvalue=canvas_width;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(heightvalue==undefined){
						heightvalue=Objs[a].height;
					}else{
						heightvalue=Math.max(Objs[a].height,heightvalue);
					}
					if(widthvalue==undefined){
						widthvalue=Objs[a].width;
					}else{
						widthvalue=Math.max(Objs[a].width,widthvalue);
					}
				}
			}
			for(var a=0;a<Objs.length;a++){
				if (align2canvas)
				{
					eval(ocxName).SetItemX(Objs[a].index,0);
					eval(ocxName).SetItemY(Objs[a].index,0);
				}
				eval(ocxName).SetItemHeight(Objs[a].x,Objs[a].y,Objs[a].index,heightvalue);
				eval(ocxName).SetItemWidth(Objs[a].x,Objs[a].y,Objs[a].index,widthvalue);
			}
			break;
		case "inter_h":
			Objs=Objs.sort(Compare_left);
			var MaxValue
			var MinValue
			var toltalValue=0;
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_width;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].left;
					}else{
						MinValue=Math.min(Objs[a].left,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].right;
					}else{
						MaxValue=Math.max(Objs[a].right,MaxValue);
					}
					toltalValue+=Objs[a].width;
				}
			}
			step=(MaxValue-MinValue-toltalValue)/(Objs.length-1);
			widthnow=0;
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemX(Objs[a].index,MinValue+widthnow+step*a);
				widthnow+=Objs[a].width;
			}
			break;
		case "inter_v":
			Objs=Objs.sort(Compare_top);
			var MaxValue
			var MinValue
			var toltalValue=0;
			if (align2canvas)
			{
				MinValue=0;
				MaxValue=canvas_height;
			}else{
				for(var a=0;a<Objs.length;a++){
					if(MinValue==undefined){
						MinValue=Objs[a].top;
					}else{
						MinValue=Math.min(Objs[a].top,MinValue);
					}
					if(MaxValue==undefined){
						MaxValue=Objs[a].bottom;
					}else{
						MaxValue=Math.max(Objs[a].bottom,MaxValue);
					}
					toltalValue+=Objs[a].height;
				}
			}
			step=(MaxValue-MinValue-toltalValue)/(Objs.length-1);
			var heightnow=0;
			for(var a=0;a<Objs.length;a++){
				eval(ocxName).SetItemY(Objs[a].index,MinValue+heightnow+step*a);
				heightnow=heightnow+Objs[a].height;
			}
			break;
	}
}
function setalign2canvas(bool){
	align2canvas=bool;
}
function GetObjs(){
	var selects = eval(ocxName).GetSelectItemIndex().split("|");
	//
	var RetArray = [];	
	if( selects.length > 0 )
	{
		for(var m=0;m<selects.length;m++){
			var Item = dump(eval(ocxName).GetItem(Number(selects[m])));	
			RetArray.push(Item);
		}
	}
	return RetArray;
}
function dump(itempros){
	var returnObj={};
	var propArray = itempros.split("|");
	var mCount=propArray.length;
	for(var m=0;m<mCount;m++) {
		var prop = propArray[m].split(":");	
		prop[1]=Number(prop[1]);
		if(prop[0]==IK_INDEX){
			returnObj.index=prop[1];
		}else if(prop[0]==IK_X){
			returnObj.x=prop[1];
			returnObj.left=prop[1];
		}else if(prop[0]==IK_Y){
			returnObj.y=prop[1];
			returnObj.top=prop[1];
		}else if(prop[0]==IK_WIDTH){
			returnObj.width=prop[1];
		}else if(prop[0]==IK_HEIGHT){
			returnObj.height=prop[1];
		}
	}
	returnObj.right=returnObj.x+returnObj.width;
	returnObj.bottom=returnObj.y+returnObj.height;
	returnObj.center_h=returnObj.x+returnObj.width/2;
	returnObj.center_v=returnObj.y+returnObj.height/2;
	return returnObj;
}
function Compare_left(item1,item2){return item1.left-item2.left;}
function Compare_right(item1,item2){return item1.right-item2.right;}
function Compare_top(item1,item2){return item1.top-item2.top;}
function Compare_bottom(item1,item2){return item1.bottom-item2.bottom;}
function Compare_center_h(item1,item2){return item1.center_h-item2.center_h;}
function Compare_center_v(item1,item2){return item1.center_v-item2.center_v;}