﻿function $(oid){return document.getElementById(oid);} 
function trim(str){return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, '');}

function getElementLeft(obj){var x = 0;var elm = obj;while (elm != null){x+= elm.offsetLeft;elm = elm.offsetParent;}return parseInt(x);}
function getElementTop(obj){var y = 0;var elm = obj;while (elm != null){y+= elm.offsetTop;elm = elm.offsetParent;}return parseInt(y);}

function GetXMLHttpReqObj()
{
    var xmlHttpReq;
    if (window.XMLHttpRequest)
    {// Mozilla, Safari, ...
        xmlHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {// IE
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xmlHttpReq;
}

var objmsg = $("objmsg");
var operationType = 0;
var pageIndex = 1;
var pageSize = 30;
var pageCount = 0;
var pageLength = 32;

function ClearContainer()
{
    var pNode = $("resultItems");
    while(pNode.firstChild!=null)
        pNode.removeChild(pNode.firstChild);
        
    pNode = $("pageItems");
    while(pNode.firstChild!=null)
        pNode.removeChild(pNode.firstChild);
}

function keySearch(e)
{
    if(e.keyCode==13)
        return Search();
}
function Search()
{                    
    var keywords = escape(trim($("skeywords").value));
    if(keywords=="")
    {
        alert("关键字不可以为空！");return;
    }
    //operationType = $("stype").value;
    
    // Clear old datas.
    ClearContainer();    
    objmsg.innerHTML = "正在搜索，请稍后......";
        
    var strURL = "ajax.aspx?operation=search&operationtype="+operationType+"&keywords="+keywords+"&pageindex="+pageIndex+"&pagesize="+pageSize;
    var xmlHttp = GetXMLHttpReqObj();
    xmlHttp.open('POST', strURL, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
        {
            filledResults(xmlHttp.responseText);
        }
    }
    xmlHttp.send(strURL);
    return false;
}
function filledResults(response)
{
    var container = $("resultItems");
    var items = response.split(';');
    for(var i=0;i<items.length-1;i++)
    {
        var properties = items[i].split(',');
        container.appendChild(GetPageObject({id:properties[0],title:properties[1]}));
    }
    // 最后一段为 搜索总页数
    pageCount = parseInt(items[items.length-1]);
    filledPageButtons(pageCount);
    container.parentNode.style.display = "block";
    objmsg.innerHTML = "搜索完成！";
    
}
function filledPageButtons(pageCount)
{
    var container = $("pageItems");
    container.parentNode.parentNode.style.display = "block";
        
    var sIndex = getSIndex();
    var eIndex = getEIndex();

    var totalPages = document.createElement("SPAN");
    totalPages.innerHTML = "第" + pageIndex + "/" + pageCount + "页";
    container.appendChild(totalPages);
    for(var i=sIndex;i<=eIndex;i++)
    {
        var pgObj = null;
        pgObj = document.createElement("A");
        pgObj.innerHTML = i;
        if(pageIndex != i)
            pgObj.onclick = function(){pageIndex = (parseInt(this.innerHTML));Search();};
        else
        {
            pgObj.style.color = "red";pgObj.style.cursor = "default";
        }
        container.appendChild(pgObj);
    } 
}
function getSIndex()
{
    if (pageIndex <= (pageLength / 2) || pageCount<=pageLength)
        return 1;

    return pageIndex - (pageLength / 2);
}
function getEIndex()
{
    if (pageIndex < (pageLength / 2) && pageCount > pageLength)
        return pageLength;

    if ((pageIndex + (pageLength / 2)) >= pageCount || pageCount <= pageLength)
        return pageCount;

    return pageIndex + (pageLength / 2);
}
function GetPageObject(obj)
{   
    var link = document.createElement("A");
    link.innerHTML = obj.title;
    link.onclick = function(){loadItem(obj.id,this);};
    
    return link;
}
function CheckStartDate(strdate)
{
    var re = /\d{4}-\d{1,2}-\d{1,2}/g;
    var strtemp = strdate.replace(re,"");
    if(strtemp!="")
        return false;
    
    return true;
}
function CheckNumber(strvalue)
{
    if(strvalue!="" && !parseInt(strvalue))
        return false;
    return true;
}

function loadItem(itemid,srcObj)
{                       
    objmsg.innerHTML = "正在加载,请稍候...";
    var strURL = "ajax.aspx?operation=loadItem&operationtype="+operationType+"&itemid="+itemid;
    var xmlHttp = GetXMLHttpReqObj();
    xmlHttp.open('POST', strURL, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
        {
            loadedItem(xmlHttp.responseText,srcObj);
        }
    }
    xmlHttp.send(strURL);
}
function loadedItem(response,srcObj)
{                                     
    var container = $("objContainer"); 
    var x = getElementLeft(container);
    var y = getElementTop(container); 
    var div = document.createElement("DIV");
    div.className = "popupDetail";
    div.style.left = x+"px";
    div.style.top = y+"px";    
    
    
    var divtop = document.createElement("DIV");
    var asave = document.createElement("A");
    asave.innerHTML = "[保存]";
    asave.onclick = function(){saveItem(this,srcObj);};
    divtop.appendChild(asave);
    var aclose = document.createElement("A");
    aclose.innerHTML = "[关闭]";
    aclose.onclick = function(){closeItem(this);};
    divtop.appendChild(aclose);
    var adelete = document.createElement("A");
    adelete.innerHTML = "[删除]";
    adelete.onclick = function(){deleteItem(this,srcObj);};
    divtop.appendChild(adelete);
    
    var divbtm = document.createElement("DIV");
    divbtm.innerHTML = response;
    
    div.appendChild(divtop);
    div.appendChild(divbtm);
    container.appendChild(div);
    objmsg.innerHTML = "加载完成！";
}

function closeItem(srcObj)
{
    $("objContainer").removeChild(srcObj.parentNode.parentNode);
}
function saveItem(srcObj,itemObj)
{
    closeItem(srcObj);    
    itemObj.parentNode.removeChild(itemObj);
    $("myItems").appendChild(itemObj);
    $("myItems").parentNode.style.display = "block";
}
function deleteItem(srcObj,itemObj)
{
    closeItem(srcObj);
    itemObj.parentNode.removeChild(itemObj);
}