﻿//阻止浏览器的默认行为
function stopDefault(e) {
    //阻止默认浏览器动作(W3C)
    if ( e && e.preventDefault )
        e.preventDefault();
    //IE中阻止函数器默认动作的方式
    else
        window.event.returnValue = false;
    return false;
} 

//function cleanPX(num){
//	var str1=num.toLowerCase();	
//	var reg = new RegExp(/px/gm);
//	str2 = str1.replace(reg,"");
//	return str2;
//}


//三栏转自由时候的字符串转换
//===========================
var redLayoutStr = function (){
    var father = document.getElementById("page1");
    var column = cleanWhitespaces(father);
    var divArray = new Array;
    
    if (Browser.ie){
        var divArr=leftArr=centerArr=rightArr="";
        var zIndex = 1;
        for (var i=0; i<column.length; i++){
            //alert(column[i].offsetLeft);
            var col = cleanWhitespaces(column[i]);
            for (var c=0;c<col.length;c++){
                var obj = CurrentStyle(col[c]);
                //var zIndex=obj.zIndex=="auto"?0:obj.zIndex;
                switch (column[i].id){
                    case "left":
//                        if (c==col.length)
//                            var divH=parseInt(col[c].offsetHeight-5)<0?0:parseInt(col[c].offsetHeight-5);
//                        else
//                            var divH=parseInt(col[c].offsetHeight-33)<0?0:parseInt(col[c].offsetHeight-33);
                          if (col[c].id != "" && col[c].id != "NaN" && col[c].id != "undefined"){
                            var objWidth,objHeight,marTop;
                            if (col[c].style.display=="none"){
                                objWidth = 250;
                                objHeight = 150;
                                marTop = 0;
                            }else{
                                objWidth = col[c].offsetWidth;
                                objHeight = col[c].offsetHeight;
                                marTop = col[c].offsetTop;
                            }
                            leftArr+="[\""+col[c].id+"\","+objWidth+","+objHeight+","+column[i].offsetLeft+","+marTop+","+zIndex+"],";
                            zIndex++;
                          }
                    break;
                    case "center":
//                        if (c==col.length)
//                            var divH=parseInt(col[c].offsetHeight-5)<0?0:parseInt(col[c].offsetHeight-5);
//                        else
//                            var divH=parseInt(col[c].offsetHeight-33)<0?0:parseInt(col[c].offsetHeight-33);
                    //alert(col[i].offsetWidth);
                          if (col[c].id != "" && col[c].id != "NaN" && col[c].id != "undefined"){
                            var objWidth,objHeight,marTop;
                            if (col[c].style.display=="none"){
                                objWidth = 250;
                                objHeight = 150;
                                marTop = 0;
                            }else{
                                objWidth = col[c].offsetWidth;
                                objHeight = col[c].offsetHeight;
                                marTop = col[c].offsetTop;
                            }
                            centerArr+="[\""+col[c].id+"\","+objWidth+","+objHeight+","+column[i].offsetLeft+","+marTop+","+zIndex+"],";
                            zIndex++;
                          }
                    break;
                    case "right":
//                        if (c==col.length)
//                            var divH=parseInt(col[c].offsetHeight-5)<0?0:parseInt(col[c].offsetHeight-5);
//                        else
//                            var divH=parseInt(col[c].offsetHeight-33)<0?0:parseInt(col[c].offsetHeight-33);
                    //alert(col[i].offsetWidth);
                          if (col[c].id != "" && col[c].id != "NaN" && col[c].id != "undefined"){
                            var objWidth,objHeight,marTop;
                            if (col[c].style.display=="none"){
                                objWidth = 250;
                                objHeight = 150;
                                marTop = 0;
                            }else{
                                objWidth = col[c].offsetWidth;
                                objHeight = col[c].offsetHeight;
                                marTop = col[c].offsetTop;
                            }
                            rightArr+="[\""+col[c].id+"\","+objWidth+","+objHeight+","+column[i].offsetLeft+","+marTop+","+zIndex+"],";
                            zIndex++;
                          }
                    break;
                }
            }
        }
        divArr=leftArr+centerArr+rightArr;
    }else{
        //FF字符串处理
        for (var i=0; i<column.length; i++){
            var col = cleanWhitespaces(column[i]);
            for (var c=0; c<col.length; c++){
                divArray.push(col[c]);
            }
        }
        if (divArray!=null || divArray!=undefined){
            var divArr="";
            var zIndex = 1;
            for (var s=0; s<divArray.length; s++){
                var obj = CurrentStyle(divArray[s]);
                //var zIndex=obj.zIndex=="auto"?0:obj.zIndex;
                    if (divArray[s].id != "" && divArray[s].id != "NaN" && divArray[s].id != "undefined"){
                        var objWidth,objHeight;
                        if (divArray[s].style.display=="none"){
                            objWidth = 250;
                            objHeight = 150;
                        }else{
                            objWidth = divArray[s].clientWidth;
                            objHeight = divArray[s].clientHeight;
                        }
                        divArr += "[\""+divArray[s].id+"\","+objWidth+","+objHeight+","+divArray[s].offsetLeft+","+divArray[s].offsetTop+","+zIndex+"],";
                        zIndex++;
                    }
            }
        }
    }
    divArr = "{\"pages\":["+divArr.substring(0,divArr.length-1)+"]}";
    document.getElementById("hidLayOut").value = divArr;
}



//*自由布局层级排序*
//===========================
//function magic(str,temp,status){
//	var Arr1 =  str;// || [8,13,5,14,3]
//	var Arr2 = temp;// || [8,13,5,14,3]
//		Arr2.sort(function(x,y){return x-y});	
//	var stat = status || 0;
//	for(var x=0;x<Arr1.length;x++){
//		if(stat>Arr1.length){
//		    //console.log(Arr1);
//			return Arr1;
//		}
//		var flag = Arr1[x] - Arr2[stat] + (stat+1);
//		//Arr2.splice(x,1,flag);
//		if(Arr1[x] < stat+1){
//			continue;
//		}
//		if (flag > 0){
//			Arr1.splice(x,1,flag);
//		}
//	}
//	Arr2 = Arr1.slice(0);
//	stat = stat + 1;
//	return magic(Arr1,Arr2,stat);
//}
function magic(str,status){
	var Arr1 = str;// || [8,13,5,14,3]
	var Arr2 = Arr1.slice(0);
		Arr2.sort(function(x,y){return x-y});	
		//console.log(Arr2);
	var stat = status || 0;
	for(var x=0;x<Arr1.length;x++){
		if(Arr1[x] == Arr2[stat]){
			var flag = Arr1[x] - Arr2[stat] + (stat+1);
			Arr1.splice(x,1,flag);
			Arr2 = Arr1.slice(0);
			stat = stat + 1;
			return magic(Arr1,stat);
		}
	}
	return Arr1;	
}
//*获取自由布局字符串*
//===========================
function getValue(){
	var father = cleanWhitespaces($getObj("father"))
	//处理层级
	var newzIndex = [];
	for(var m=0;m<father.length;m++){
	    newzIndex.push(parseInt(father[m].style.zIndex=="auto"?0:father[m].style.zIndex));
	}
	//var tempZ = newzIndex.slice(0);
	newzIndex = magic(newzIndex);//,tempZ
	var stopArr = "{\"pages\":[";
	for (var i=0;i<father.length; i++){
		//alert(father[i].id);
		stopArr+="[\""+father[i].id+"\","+
					father[i].style.width+","+
					father[i].style.height+","+
					father[i].style.left+","+
					father[i].style.top+","+
					newzIndex[i]
					//father[i].style.zIndex
					+"],";
	}
	$getObj("hidLayOut").value=cleanPX(stopArr).substring(0,cleanPX(stopArr).length-1)+"]}";
}
//*即时调整father层高度*
//===========================
var changeFatherCurrentStyle = function (){
	var father = cleanWhitespaces($getObj("father"));
	var fatherH = parseInt(CurrentStyle($getObj("father")).height) || 0;
	var childH = new Array;
		//childH.push(fatherH)
	for (var i=0;i<father.length; i++){
	    if(father[i].style.display!="none"){
		    childH.push(father[i].offsetTop + father[i].offsetHeight + father[i].style.marginTop||0 + father[i].style.marginBottom||0);
	    }
	}
	var newH = Math.max.apply(fatherH,childH) || 0;
	$getObj("fatherH").value = $getObj("father").style.height = (newH*1 + 10) + "px";
	//$getObj("father").style.height;
}
//*即时调整缩放盒子模型的大小*
//===========================
var changeBoxH = function (obj){
    var box = $getObj(obj.id.replace('div','show'));
    var warp = parseInt(obj.style.height);
    var h3 = obj.getElementsByTagName("h3")[0];
    var h3h = h3.offsetHeight + h3.style.marginTop + h3.style.marginBottom;
    var pad = parseInt(CurrentStyle(box).paddingTop);
        pad += parseInt(CurrentStyle(box).paddingBottom);
        pad += parseInt(CurrentStyle(box).marginBottom)||0 + parseInt(CurrentStyle(box).marginTop)||0;
    box.style.height = (warp-h3h-pad)<0?0:(warp-h3h-pad) + "px";
}
//*开始自由布局*
//===========================
var startFree = function (){
    var value = $getObj("hidLayOut").value;
    //alert(value);
    if (value == "") return false;
	var obj = eval('(' + value + ')');
	var divArr = obj;
	//读取父层高度
	var fatherW = parseInt(CurrentStyle($getObj("Container")).width) || $getObj("father").offsetWidth;
	if($getObj("hidIsMove").value=="true"){
	    var lock = false;
	}else{
	    var lock = true;
	}
	for (var i=0; i<divArr["pages"].length; i++){
		//缩放
		var divStr=divArr["pages"][i][0]+"_Handler";
		var rs = new Resize(divArr["pages"][i][0],{
									  			Max:		true,
												mxContainer:"father",
												mxRight:	fatherW,
									  			onResize:	function(){
																changeFatherCurrentStyle();
																changeBoxH(this._obj);
															},
									  			onStop:		function(){
																getValue();
															}
									  		});
		rs.Set(divStr, "right-down");
		//拖动	
		new xDrag(divArr["pages"][i][0],{
						   		Limit: true,
								mxContainer: "father", 
								Width: 		divArr["pages"][i][1]||100, 
								Height: 	divArr["pages"][i][2]||100, 
								marginLeft: divArr["pages"][i][3]||0,
								marginTop:	divArr["pages"][i][4]||0, 
								zIndex: 	divArr["pages"][i][5],
								Lock:       lock,
								onMove:		function(){
												changeFatherCurrentStyle();
											},
								onStop:		function(){
												getValue();
											}
								});
	}
	//执行一次父层高度设置
	changeFatherCurrentStyle();
}
//window.onload=startFree;

var saveLayoutStr = function (){
    if(!(confirm("确认保存吗?")))
    {
        return;
    }
    getLogoStatus();
    SavePicIndex();
    var status=$getObj("hidLayOutTag").value;
    if (status=='1'){
        
        XDrag.save();
    }else{
       
        getValue();
        if($getObj("hidLayOut").value !=""){
            alert("保存成功!");
        }else{
            alert("保存失败.")
            return false;
        }
    }
}

