//
function app0(opPara) {
	var op = opPara;
	// 包括: InfoCatId , DocInfo
	var mCatDoc = {}
	var catLiTmpl = new Ext.Template("<li><a href='javascript:void(0)' id='{id}'  href='#'>{name}</a></li>");
	var julCatList = $('#ulCatList');
	var jCatName = $("#catName");
	var jCatName2 = $("#catName2");
	// <li><a href="javascript:void(0)" onclick="test1();">中山大学附属第三医院活体肝移植手术再获成功
	// </a></li>
	function buildCatList() { // 从后台获取当前信息分类下的所有信息列表
		if (op.childCat) {
			julCatList.empty();
			for (var c in op.childCat) {
				var jCat = $(catLiTmpl.apply({
							id : c,
							name : op.childCat[c].substr(0, 10)
						}));
				julCatList.append(jCat);
				$('a', jCat).click(buildInfoList);
			}
			$('a:first', julCatList).click();
		}
	}

	var InfoLiTmpl = new Ext.Template("<li><a href='javascript:void(0)' infoId={infoId} infoTitle={infoTitle} >{infoTitle}</a>{pubTime}</li>");
	var jUlInfoList = $('#ulInfoList');
	var jInfoBox = $("#infoBox");
	// <li><a href="javascript:void(0)" onclick="test1();">中山大学附属第三医院活体肝移植手术再获成功
	// </a></li>
	function buildInfoList() { // 从后台获取当前信息分类下的所有信息列表
		toggleCss(this);
		jCatName.html("> " + $(this).text());
		jCatName2.text($(this).text());
		var DocInfo = getInfoDoc(this.id)
		jUlInfoList.empty();
		var havaAttach = false;
		$(XP_Row, DocInfo).each(function(i, el) {
					var jEl = $(el);
					var jInfo = $(InfoLiTmpl.apply({
								infoId : jEl.attr('ID'),
								infoTitle : jEl.attr('TITLE'),
								pubTime : ''
							}));
					jUlInfoList.append(jInfo);
					$('a', jInfo).click(showInfoById);
					havaAttach = true;
				})
		havaAttach ? jInfoBox.show() : jInfoBox.hide();
		FirstloadShow();

		function getTime(time) {
			return "<span>(" + time.substr(0, 10) + ")</span>";
		}
	}

	var oldTarget
	function toggleCss(t) {
		if (oldTarget)
			oldTarget.removeClass('active');
		oldTarget = $(t).addClass('active');
	}

	function getInfoDoc(objId) {
		if (!mCatDoc[objId]) {
			$.ajax({
						url : getActionUrl('getInfoByObjId'),
						data : {
							ObjId : objId
						},
						async : false,
						success : function(doc) {
							mCatDoc[objId] = doc
						}
					});
		}
		return mCatDoc[objId]
	}

	var isFirstLoad = 1;
	function FirstloadShow() {
		if (!isFirstLoad)
			return;
		$('a:first', jUlInfoList).click();
		isFirstLoad = 0;
	}

	var jContFrame = $('#contFrame');
	var jAttachBox = $('#attachBox');
	var jInfoTitle = $('#infoTitle');
	var jTime = $("#time");
	var attachItemTmpl = new Ext.Template("<li><a href='{url}'>{indexfile}</a></li>");
	function showInfoById(e) {
		var jA = $(e.target || e.srcElement);
    
		var infoId = jA.attr('infoId');
		jContFrame.attr('src', BasePath
						+ 'doAction?Action=getInfoZWHTMLByInfoId&InfoId='
						+ infoId);
		jInfoTitle.html(jA.attr('infoTitle'));
		jTime.text(getTimesByID(infoId));
		// http://localhost/zssy/doAction?Action=getInfoZWHTMLByInfoId&InfoId=1046'

		$.ajax({
					url : getActionUrl('getInfoByInfoId'),
					dataType : 'json',
					data : {
						InfoId : infoId
					},
					success : function(j) {
						var havaAttach = false;
						var jAttachList = $('#attachList').empty();
						$(j.InfoD).each(function(i, n) {
							if ("0" == n.iszw) {
								var url = getActionUrl('getInfoAttachByInfoId')
										+ '&InfoId=' + infoId + '&DocId='
										+ n.id;
								jAttachList.append(attachItemTmpl.apply({
											url : url,
											indexfile : n.indexfile
										}));
								havaAttach = true;
							}
						});
						havaAttach ? jAttachBox.show() : jAttachBox.hide();
					}
				})
	}

  function showInfoByIdIndex(nid) {
    jContFrame.attr('src',BasePath+'doAction?Action=getInfoZWHTMLByInfoId&InfoId='+nid);
    var uptProxy = new upd(op);
    uptProxy.toggleInfo(true);

    //http://localhost/zssy/doAction?Action=getInfoZWHTMLByInfoId&InfoId=1046'
    
    $.ajax({
      url:getActionUrl('getInfoByInfoId'),dataType:'json',data:{InfoId:nid},
      success:function(j){
        var havaAttach=false;
        var jAttachList = $('#attachList').empty();
        $(j.InfoM).each(function(i,n){
        var title = n.title;
        jInfoTitle.html(title);
        });
        $(j.InfoD).each(function(i,n){
          var time = (n.moditime).split('.')[0];
          jTime.text(time);
          if ("0"==n.iszw){
            var url = getActionUrl('getInfoAttachByInfoId')+'&InfoId='+nid+'&DocId='+n.id ;
            jAttachList.append(attachItemTmpl.apply({url : url,indexfile:n.indexfile }));
            havaAttach=true;
          }
        });
        havaAttach? jAttachBox.show(): jAttachBox.hide();
      }
    })
    uptProxy.bulidRightInfoList();
  }
  
	var mTime = {}
	function getTimesByID(ID) {
		mTime[ID] = mTime[ID]
				|| $(XP_Row + "[ID='" + ID + "']",
						mCatDoc[oldTarget.attr("id")]).attr('PUBTIME');
		return mTime[ID];
	}

	function getTime(time) {
		return "<span>(" + time.substr(0, 10) + ")</span>";
	}
	
function main() {
	// buildCatList();
	var uptProxy = new upd(op);
	uptProxy.initInfoAllList()
}
return {
	main : main,
  showInfoByIdIndex:showInfoByIdIndex
}
}


function upd(op) {
    var InfoLiTmpl = new Ext.Template("<li><a href='javascript:void(0)' infoId={infoId} infoTitle={infoTitle} >{infoTitle}</a>{pubTime}</li>");
    function buildInfoList(jUl, DocInfo, hasTime, count) { // 从后台获取当前信息分类下的所有信息列表
      if (DocInfo) {
        jUl.empty();
        var row = $(XP_Row, DocInfo)
        for (var i = 0; i < row.length; i++) {
          if (i == count)
            return;
          var jEl = row.eq(i);
          var jInfo = $(InfoLiTmpl.apply({
                infoId : jEl.attr('ID'),
                infoTitle : jEl.attr('TITLE'),
                pubTime : hasTime ? getTime(jEl.attr('PUBTIME')) : ''
              }));
          jUl.append(jInfo);
          jInfo.find('a').click(showInfobyId2);
        }
      }
    }

    function getTime(time) {
      return "<span>(" + time.substr(0, 10) + ")</span>";
    }

    function showInfobyId2(e) {
      var jA = $(e.target || e.srcElement);
      showInfoById(jA.attr('infoId'), jA.attr('infoTitle'));
    }
    
      var jContFrame = $('#contFrame');
  var jInfoTitle = $('#infoTitle');
  var jAttachBox = $('.box10');
  var jTime =$("#time");
  var attachItemTmpl = new Ext.Template("<li><a href='{url}'>{indexfile}</a></li>" );
  function showInfoById(nid,title){
    jContFrame.attr('src',BasePath+'doAction?Action=getInfoZWHTMLByInfoId&InfoId='+nid);
    jInfoTitle.html(title);
    jTime.text(getTimesByID(nid))
    toggleInfo(true);

    //http://localhost/zssy/doAction?Action=getInfoZWHTMLByInfoId&InfoId=1046'
    
    $.ajax({
      url:getActionUrl('getInfoByInfoId'),dataType:'json',data:{InfoId:nid},
      success:function(j){
        var havaAttach=false;
        var jAttachList = $('#attachList').empty();
        $(j.InfoD).each(function(i,n){
          if ("0"==n.iszw){
            var url = getActionUrl('getInfoAttachByInfoId')+'&InfoId='+nid+'&DocId='+n.id ;
            jAttachList.append(attachItemTmpl.apply({url : url,indexfile:n.indexfile }));
            havaAttach=true;
          }
        });
        havaAttach? jAttachBox.show(): jAttachBox.hide();
      }
    })
  }
  
    
  var mTime={}
  function getTimesByID(ID){
    mTime[ID] = mTime[ID] || $(XP_Row+"[ID='"+ID+"']",op.DocInfo).attr('PUBTIME');
    return mTime[ID]; 
  } 
  
  var jlnews =$('.lnews'); 
  var jArticle=$('.Article');
  var jInfohBox=$('.box8');
  function toggleInfo(bool){
    !bool?jlnews.show():jlnews.hide();
    bool?jArticle.show():jArticle.hide();
    bool?jInfohBox.show():jInfohBox.hide();
  }
  
  function bulidRightInfoList(){
    buildInfoList($('#ulInfoList'),op.DocInfo,false,5);
  }
  

    function initInfoAllList() {
      buildInfoList($('#ulInfoAllList'), op.DocInfo, true);
      bulidRightInfoList();
    }
    return {
      initInfoAllList : initInfoAllList,
      toggleInfo:toggleInfo,
      bulidRightInfoList:bulidRightInfoList
    }
  }