var pageBodyElement=null;
var bodyStr=null;
var delObj=new Array();
var operation="";
var saveCss="";
var saveCurrFrame="";
var saveCurrTemplate="";
var saveUserModulesTmp="";
var saveFrameCssTmp="";
var saveCurrFrameTmp="";
var saveTemplateCssTmp="";
var saveCurrTemplateTmp="";
var listNode=null;
var saveCurrXML="";
function canelTemplate(){
    if(!isIE){
         Element.hide('alert');
         window.location.reload(false);
         return false;
    }
    closeMPlayer('all');
    Module.initModule();
    var oldXml = stringToXmlDoc(makeCookieStrToXml(saveCurrXML));
    
    addRssNewsModuleBySave(oldXml);
    var container=$('container');
    var pageBody=$('pageBody');
    container.removeChild(pageBody);
    container.insertBefore(pageBodyElement.cloneNode(false),$('pageFooter'));
    $("pageBody").innerHTML=bodyStr;
    $('myTitle').innerText = "今天的心情好吗？：）";
    initModule(saveUserModules);
    SkinConfig.currFrame=saveCurrFrame;
    SkinConfig.currTemplate=saveTemplateCss;
    SkinConfig.init();
    Skin.initFrames();
    Skin.initTemplates();
    Element.hide('alert');
    objDiv=$("pageBody");
    reloadPage(oldXml);
    initDndMgr();
    container=null;
    pageBody=null;
    operation="";
    Module.setMenuModuleStr();

};

function saveAllTmpVariable(){
    if(saveFrameCssTmp !=null &&  saveFrameCssTmp!=""){
       saveFrameCss = saveFrameCssTmp;
    }
    if(saveCurrFrameTmp !=null &&  saveCurrFrameTmp!=""){
       saveCurrFrame = saveCurrFrameTmp;
    }
    if(saveTemplateCssTmp !=null &&  saveTemplateCssTmp!=""){
       saveTemplateCss = saveTemplateCssTmp;
    }
    if(saveCurrTemplateTmp !=null &&  saveCurrTemplateTmp!=""){
       saveCurrTemplate = saveCurrTemplateTmp;
    }
    saveCss = saveCurrFrame+"@"+saveCurrTemplate;
    resetAllDivStyle("operation");
    bodyStr=$("pageBody").innerHTML;
};

function setSaveUserModules(xmlDoc){
    saveUserModules = Module.getXMLModulesList(xmlDoc);
};

function rollBackTemplateTmpVariable(){
    saveTemplateCssTmp=saveTemplateCss;
    saveCurrTemplateTmp=saveCurrTemplate;
};

function rollBackFrameTmpVariable(){
    saveFrameCssTmp=saveFrameCss;
    saveCurrFrameTmp=saveCurrFrame;
};

function getDivPosById(id){
    var num;
    switch(id){
		case 'leftDiv':
            num=0;
            break;
		case 'centerDiv':
            num=1;
            break;
		case 'rightDiv':
            num=2;
            break;
        default:
            num=0;
            break;
    }
    return num;
};

function getModelListByDiv(xmlDoc,posNum){
    if(xmlDoc == null){
       return null;
    }
    var modelList = new Array();
    var root = xmlDoc.getElementsByTagName('elements')[posNum];
    for (var iNode = 0; iNode < root.childNodes.length; iNode++) {
       var node = root.childNodes.item(iNode);
       var tmpId = node.getAttribute("id");
       var index = modelList.length;
       modelList[index] = new Object();
       modelList[index] = Module.getModuleObjById(tmpId);
    }
    return modelList;
};

function getModelListBySaveDiv(xmlDoc){
		try{
			if(xmlDoc == null || xmlDoc == ""){
       return null;
    	}
		}catch(e){}
    
    
    var modelList = new Array();
    
    var root = xmlDoc.getElementsByTagName('element');
    for (var iNode = 0; iNode < root.length; iNode++) {
       var tmpId = root[iNode].getAttribute("id");
       var index = modelList.length;
       modelList[index] = new Object();
       modelList[index].id = tmpId;
    }
    return modelList;
};

function resetDivByXml(xmlDoc){
   if(xmlDoc == null){
       return false;
   }
   clearHtmlModule();
   var leftDivNum = getDivPosById("leftDiv");
   var centerDivNum = getDivPosById("centerDiv");
   var rightDivNum = getDivPosById("rightDiv");
   for (var i = 0; i < 3; i++) {
       if(i==0){
            var modelList = getModelListByDiv(xmlDoc,leftDivNum);
            for (var j = modelList.length-1; j >= 0; j--) {
                 add(modelList[j].id,modelList[j].name,"leftDiv");
            }
       }else if(i==1){
            var modelList = getModelListByDiv(xmlDoc,centerDivNum);
            for (var j = modelList.length-1; j >= 0; j--) {
                 add(modelList[j].id,modelList[j].name,"centerDiv");
            }
       }else if(i==2){
            var modelList = getModelListByDiv(xmlDoc,rightDivNum);
            for (var j = modelList.length-1; j >= 0; j--) {
                 add(modelList[j].id,modelList[j].name,"rightDiv");
            }
       }
   }
   resetAllDivStyle("operation");
   modelList = null;
};

function clearHtmlModule(){
    if(saveUserModules == ""){
        return false;
    }
    /*alert(saveUserModules);*/
    var modelIdList = saveUserModules.split("#");
    for (var i = 0; i < modelIdList.length; i++) {
         $(modelIdList[i]).removeNode(-1);
    }
    return true;
};

function createXML(){
  var str="<?xml version=\"1.0\" encoding=\"GBK\" ?>\n<root id=\""+channelId+"\" is-main-site=\""+isMainSite+"\" channel-type=\""+channelType+"\">\n";
  var nodes=$('pageBody').childNodes;
  for(var i=0;i<nodes.length;i++){
    if(nodes[i].tagName=='DIV'||nodes[i].tagName=='div'){
      str+=createContainerXML(nodes[i]);
     }
  }
  nodes=null;
  str+="<operation>"+operation+"</operation>\n";
  str+="<style>"+saveCurrFrame+"@"+saveCurrTemplate+"</style>\n";
  str+="<public>"+ public +"</public>\n";
  str+="<title>"+escape(document.getElementById("myTitle").innerText)+"</title>\n";
  str+="</root>";
  return str;
  
};

function createContainerXML(element){
   var nodes=element.childNodes;
   var str="<container id=\""+element.id+"\">\n";
   str+="<elements>\n";
   for(var i=0;i<nodes.length;i++){
     if(nodes[i].tagName=='DIV'){
        str+=createElementXML(nodes[i]);
      }
   }
   nodes=null;
   str+="</elements>\n";
   return str+="</container>\n";
};
function createElementXML(element){
   if(element.id=='leftDivFooter'||element.id=='centerDivFooter'||element.id=='rightDivFooter'||element.id=='tempDivID'){
       return "";
   }
   var str="<element id=\""+element.id+"\" />\n";
   return str;
};
var currPosi = "leftDiv";
function add(id,name,parentNodeName){
    var element=null;
    var flag=false;
    var newObj=new Array();
    if(id.search("news_") != -1){
        var tmpXml = stringToXmlDoc(createXML());
        var tmpSaveUserModulesStr = Module.getXMLModulesList(tmpXml);
        /*alert(id+":\n\r"+tmpSaveUserModulesStr);*/
        if(tmpSaveUserModulesStr.search(id) != -1){
            alert("您已经添加了:“"+name+"”！");
            return false;
        }
    }
    for(var i=0,j=0;i<delObj.length;i++){
       if(delObj[i].id==id){
          element=delObj[i].cloneNode(false);
          element.innerHTML=delObj[i].innerHTML;
          flag=true;
          var tmpNode = element.childNodes[1].firstChild.parentNode;
          tmpNode.style.display = "";
       }else{
          newObj[j++]=delObj[i];
       }
    }
    var module=new Object();
    var tmpIdd;
    var tmpFileIdd;
    module.id=id;
    module.flag=true;
    if(id.search("news_") != -1 && Module.getModuleObjById(id) == null){
       tmpIdd = id.split(".")[0];
       tmpFileIdd = id.split(".")[1];
       module.type="news";
       module.name=name;
       module.style="operation";
       Module.addModule(module);
       openLastList(tmpIdd,tmpFileIdd);
    }else if(id.search("news_") != -1 && Module.getModuleObjById(id) != null){
       tmpIdd = id.split(".")[0];
       tmpFileIdd = id.split(".")[1];
       openLastList(tmpIdd,tmpFileIdd);
       name=Module.getModuleObjById(id).name;
       /*setTimeout("openLastList('"+tmpIdd+"','"+tmpFileIdd+"')",1000);*/
       Module.editModule(module);
    }else{
       Module.editModule(module);
    }
    if(flag==false){
     element=document.createElement("DIV");
     element.id=id;
     element.className="operation";
     element.style.marginBottom="5px";
     element.innerHTML="<h3 class='select' ondblclick =\"minContent(this)\"><p class='left_Img'></p><p class='right_Img'></p><p class='conter_Text'><p class='conter_Text01'><span class='figure' onclick='minModule(this,0)' title='最小化'>6</span></p>"
                      +"<p class='conter_Text02'>"+name
                      +"</p><p class='conter_Text03'>"+ Module.getModuleToolsBarStr(id) +"<span class='figure' id='"+ id +"_mini' onclick ='minModule(this,1)'>0</span>&nbsp;<span class='figure' onclick='del(this)' title='删除'>r</span></p></p></h3>"
                      +"<div class='Disportbody'>"
        							+"<div class='Disportbody01'>"+Module.getModuleStrById(id)+"</div></div>";
    }else{
    		delObj=newObj;
    }
    var parentNode=null;
    
    if(parentNodeName != null){
        parentNode = $(parentNodeName);
    }else{
      if(SkinConfig.currFrame=='11'){
         parentNode=$('centerDiv');
      }else if(SkinConfig.currFrame=='21' || SkinConfig.currFrame=='22' || SkinConfig.currFrame=='23'){
          if(currPosi=="rightDiv"){
              parentNode=$("centerDiv");
          }else{
              parentNode=$(currPosi);
          }
          if(currPosi == "leftDiv"){
              currPosi = "centerDiv";
          }else{
              currPosi = "leftDiv";
          }
      }else if(SkinConfig.currFrame=='31'){
          parentNode=$(currPosi);
          if(currPosi == "leftDiv"){
              currPosi = "centerDiv";
          }else if(currPosi == "centerDiv"){
              currPosi = "rightDiv";
          }else{
             currPosi = "leftDiv"
          }
      }
    }
    
    parentNode.insertBefore(element,parentNode.firstChild);
    initDndMgr();
    Module.setMenuModuleStr();
    if(parentNodeName == null){
        /*Element.show('alert');*/
        saveAllNow();
    }
};

function minModule(node,type){
    var s = node.innerHTML;
    var pNode = node.parentNode.parentNode.parentNode;
    var nextNode = node.parentNode.parentNode.nextSibling;
    var leftNode = node.parentNode.previousSibling.previousSibling.childNodes[0];
    var rightNode ;
    
    switch(pNode.id){
    	case "myFavorite":
    	case "fastLogin":
    	case "wMediaPlayer":
    	case "wMusicPlayer":
    		rightNode = document.getElementById(pNode.id+"_mini");
    		break;
    	default:
    		rightNode = document.getElementById(pNode.id+"_mini");
    }
    if(nextNode.style.display == ""){
        if(type==0){
        	  nextNode.style.display = "none";
            node.innerHTML="4";
            rightNode.innerHTML = "2";
        }else if(type == 2){
            /*node.innerHTML="?";*/
            nextNode.style.display = "";
            leftNode.innerHTML="6";
            rightNode.innerHTML = "0";
        }else if(type == 3){
            /*node.innerHTML="?";*/
            nextNode.style.display = "none";
            rightNode.innerHTML = "2";
            leftNode.innerHTML="4";
        }else if(type == 4){
            /*node.innerHTML="?";*/
           nextNode.style.display = "none";
           rightNode.innerHTML = "2";
           leftNode.innerHTML="4";
        }else{
            node.innerHTML="2";
            nextNode.style.display = "none";
            leftNode.innerHTML="4";
        }
    }else{        
        if(type==0){
           nextNode.style.display = "";
           node.innerHTML="6";
           rightNode.innerHTML = "0";
           //leftNode.innerHTML="6";
        }else if(type == 2){
            nextNode.style.display = "";
            rightNode.innerHTML = "0";
            leftNode.innerHTML="6";
        }else if(type == 3){
            nextNode.style.display = "none";
            rightNode.innerHTML = "2";
            leftNode.innerHTML="4";
        }else{
            node.innerHTML="0";
            nextNode.style.display = "";
            leftNode.innerHTML="6";
            
        }
    }
};

function minContent(node,element){
	var nextNode = node.nextSibling;
	var pNode = node.parentNode;
	var leftNode = node.childNodes[3].childNodes[0];

	 var rightNode ;
    switch(pNode.id){
    	case "myFavorite":
    	case "fastLogin":
    	case "wMediaPlayer":
    	case "wMusicPlayer":
    		rightNode = document.getElementById(pNode.id+"_mini");
    		break;
    	default:
    		rightNode = document.getElementById(pNode.id+"_mini");
    }
    
   if(element==0){
   		nextNode.style.display = "none";
			leftNode.innerHTML="4";
			rightNode.innerHTML = "2";
   }else if(element==1){
   		nextNode.style.display = "";
			leftNode.innerHTML="6";
			rightNode.innerHTML = "0";
   }else{
   	if(nextNode.style.display == ""){
			nextNode.style.display = "none";
			leftNode.innerHTML="4";
			rightNode.innerHTML = "2";
		}else{
			nextNode.style.display = "";
			leftNode.innerHTML="6";
			rightNode.innerHTML = "0";
		}
   } 
	
}


function del(element){
      var node,node1;
      node=element.parentNode.parentNode;
      if(node){
         node1=node.parentNode;
         if(node1.id =="wMediaPlayer"){
         	closeMPlayer(node1.id);
         }
      }
      if(node1){
            node1.parentNode.removeChild(node1);
            var n=node1.cloneNode(false);
            n.innerHTML=node1.innerHTML;
            delObj[delObj.length]=n;
            var module=new Object();
            module.id=node1.id;
            module.flag=false;
            Module.editModule(module);
            /*Element.show('alert');*/
            saveAllNow();
       }
       node=null;
       node1=null;
   /*}*/
   objDiv=$("pageBody");
   initDndMgr();
   Module.setMenuModuleStr();
};

function onloadComplete(ajax){
	/*if(ajax.readyState==4&&ajax.status==200){var xml=ajax.responseXML;createTemplateByXML(xml);Element.hide('loadDiv');Element.show('container');setCalendar();objDiv=$("pageBody");initDndMgr();}*/
};

function saveTemplate(){
		//alert("save:"+public);
    saveAllTmpVariable();
    var xmlStr = createXML();
    saveAsToCookie(xmlStr);
   
    if(userId != "guest"){
       var sUrl = serverRoot+"saveLayout?channelTypeId="+channelType+"&xmlPath="+xmlPath;
       postAjaxXML(sUrl,xmlStr,onChangeTemplateComplete);
    }
    Element.hide('alert');
	if(!isIE){
		Element.hide('container');
		Element.show('loadDiv');
	}
};

function saveAllNow(){
    setTimeout("doSaveAll()",500);
}

function doSaveAll(){
    if(userId == "guest"){
        saveAllTmpVariable();
        var xmlStr = createXML();
        saveAsToCookie(xmlStr);
     }else{
        Element.show('alert');
    }
}

function onChangeTemplateComplete(ajax){
	if(ajax.readyState==4&&ajax.status==200){
		window.scrollTo(0,0);
		var xml=ajax.responseXML;
		if(isSuccess(xml)){
            //alert('??????????!');
		}else{
			alert('保存失败，将重新刷新页面!');
			window.location.reload();
        }
	}
};

function hideMenu(){
	Element.hide('menu');
};

function selectPage(i){
	SkinConfig.currpage=i;
	Skin.clearTemplate();
	Skin.initTemplates();
	$('menu').innerHTML=getCSSMenuStr();
};


function moveFrame(frame){
	var center=$('centerDiv');
	var left=$('leftDiv');
	var right=$('rightDiv');
    /*alert("SkinConfig.currFrame="+SkinConfig.currFrame+"\n\rframe="+frame);*/
    switch(SkinConfig.currFrame){
		case '11':
            break;
		case '21':
		case '23':
		case '22':
            if(frame=='11'){
			   moveElement(left,center);
			 }
			 break;
		case '31':
            if(frame=='11'){
			    moveElement(left,center);
			    moveElement(right,center);
		     }else if(frame!='three'){
			    moveElement(right,center);
            }
		    break;
	}
};

function moveElement(obja,objb){
	var nodes=obja.childNodes;
	for(i=0;i<nodes.length;i++){
		if(nodes[i].tagName=='DIV'){
			if(nodes[i].id=='leftDivFooter'||nodes[i].id=='centerDivFooter'||nodes[i].id=='rightDivFooter'){
				var temp=nodes[i].cloneNode(false);
				temp.innerHTML=nodes[i].innerHTML;
				obja.innerHTML='';
				obja.appendChild(temp);
                temp=null;
			}else{
				var temp=nodes[i].cloneNode(false);
                if(isIE){
					temp.innerHTML=nodes[i].innerHTML;
				}else{
					if(nodes[i].id=='renark'||nodes[i].id=='guestBook'||nodes[i].id=='updated-blogs'||nodes[i].id=='friends'){
						var title=nodes[i].firstChild.cloneNode(true);
						temp.style.height="100px";
						temp.appendChild(title);
						temp.style.height=nodes[i].style.height;
					}else{
						temp.innerHTML=nodes[i].innerHTML;
					}
				}
				objb.insertBefore(temp,objb.lastChild);
				temp=null;
			}
        }
	}
	nodes=null;
};

function removeTitle(){
	$("styleTitle").style.display = "none";	
	$("titleFunctionTa").className = "";
}

function showTitle(){
	$("styleTitle").style.display = "";	
	$("titleFunctionTa").className = "functionTa";
}