//******************************************//
//             全局公共函数及成员           //
//******************************************//

//当前路径
var ApplicationPath = '';
//获取当前文档指定ID的HTML控件
function GetControl(id)
{
    return document.getElementById(id);
}

//替换字符串
function ReplaceString(s, oldStr, newStr)
{
    while(s.indexOf(oldStr) >= 0)
    {
        s = s.replace(oldStr, newStr);
    }
    return s;
}

//映射目标路径
function MapPath(path)
{
    var val = ApplicationPath + path;
    return val;
}

//判断一个值是否在一个数组里
function Contains(ary, val)
{
    var i;
    for(i = 0; i < ary.length; i++)
    {
        if(ary[i] == val)
        {
            return true;
        }
    }
    
    return false;
}

//******************************************//
//              控制地区                //
//******************************************//
//地区Div名称
var AreaLayerDivName = 'divAreaLayer';
//地区Layer表格名称
var AreaLayerTableName = 'tableAreaLayer';
//已选择地区表格名称
var SelectedAreaLayerTableName = 'tableSelectedAreaLayer';
//地区底层表格名称
var AreaBottomTable = 'tableAreaBottomTable';
//地区底层Iframe名称
var AreaLayerIframeName = 'ifrmArea';
//地区Layer表格列数
var AreaLayerTableColumnCount = 3;
//地区选择数量限制
var SelectedAreaLimit = 5;
//地区ID字符串存储隐藏TextBox
var SelectedAreaIDsInputID;
//地区Div是否已经初始化
var AreaIsInit = false;
//所选地区DivID
var SelectedAreaDivID = 'divSelectedArea';
//地区大类下拉框ID
var ParentAreaSelectorID = 'selParentArea';
//地区大类CheckBox的ID
var ParentAreaCheckBoxID = 'chkParentArea';
//包含地区大类CheckBox的Div的ID
var ParentAreaCheckBoxDivID = 'divCheckParentArea';
//显示地区最大数量Span的ID
var AreaMaxCountSpanID = 'spAreaMaxCount';
//已选地区临时存储数组
var TempSelectedAreaList = new Array();
//用于保存客户端控件ID的InputID
var AreaClientControlInputID;
//地区是否是单选(0=不是,1=是)
var IsAreaSelectSingle = 0;
//地区最大选择项提示Lable的ID(多选)
var AreaMaxLableID = 'h3AreaMaxLable';
//地区最大选择项提示Lable的ID(单选)
var AreaMaxLableSingleID = 'h3AreaMaxLableSingle';

//初始化临时保存AreaID数组
function InitTempSelectedAreaList()
{
    TempSelectedAreaList = new Array();
    var selectedIDs = GetControl(SelectedAreaIDsInputID).value.split(',');
    var i;
    for(i = 0; i < selectedIDs.length; i++)
    {
        if( selectedIDs[i] != '')
        {
            AddTempSelectedAreaList(selectedIDs[i]);
        }
    }
}

//插入临时地区数组
function AddTempSelectedAreaList(id)
{
    //确认临时数组内没有要插入的ID
    var i;
    var flag = false;
    for(i = 0; i < TempSelectedAreaList.length; i++)
    {
        if(TempSelectedAreaList[i] == id)
        {
            flag = true;
            break;
        }
    }
    
    if(flag == false)
    {
        TempSelectedAreaList[TempSelectedAreaList.length] = id;
    }
}

//从临时地区数组删除目标ID
function RemoveTempSelectedAreaList(id)
{
    var list = new Array();
    var i;
    var n = 0;
    for(i = 0; i<TempSelectedAreaList.length; i++)
    {
        if(TempSelectedAreaList[i] != id)
        {
            list[n] = TempSelectedAreaList[i];
            n++;
        }
    }
    
    TempSelectedAreaList = list;
}

//获取所选择的地区ID数组
function GetSelectedAreaIDs()
{
    return TempSelectedAreaList;
}

//从CheckBox组刷新地区选择
function RefreshSelectedArea()
{
    //刷新已选择的ID字符串TextBox
    var i;
    var tbIds = GetControl(SelectedAreaIDsInputID);
    tbIds.value = '';
    
    var ids = GetSelectedAreaIDs();
    for(i = 0; i < ids.length; i++)
    {
        tbIds.value += ids[i];
        if( i < ids.length - 1 )
        {
            tbIds.value += ',';
        }
    }
}

//根据所选地区ID数组刷新,所选地区列表
function RefreshAreaSelectedDiv(innerHtml)
{
    var OccDiv = GetControl(SelectedAreaDivID);
    OccDiv.innerHTML = innerHtml;
}

//删除地区
function DeleleArea(selDivID, ClientControlInputID)
{
    RecoverAreaClientControlID(ClientControlInputID);

    //删除所选项
    var divId = selDivID;
    var divSelected = GetControl(divId);
    var OccDiv = divSelected.parentNode;
    
    OccDiv.removeChild(divSelected);
    
    InitTempSelectedAreaList();     
    var id = selDivID.split('_')[2];    
    RemoveTempSelectedAreaList(id);    
    //刷新Hidden
    RefreshSelectedArea()
}

//恢复客户端控件ID
function RecoverAreaClientControlID(ClientControlInputID)
{
    var clientID = GetControl(ClientControlInputID);
    var ids = clientID.value.split(',');
    
    SelectedAreaIDsInputID = ids[0];
    SelectedAreaDivID = ids[1];
    SelectedAreaLimit = ids[2];
    IsAreaSelectSingle = ids[3];
    
    if(GetControl(SelectedAreaIDsInputID).value != '')
    {
        TempSelectedAreaList = GetControl(SelectedAreaIDsInputID).value.split(',');
    }
    else
    {
        TempSelectedAreaList = new Array();
    }
}

//保存客户端控件ID
function SaveAreaClientControlID(ClientControlInputID)
{
    var clientID = GetControl(ClientControlInputID);
    clientID.value = '';
    clientID.value += SelectedAreaIDsInputID;
    clientID.value += ',';
    clientID.value += SelectedAreaDivID;
    clientID.value += ',';
    clientID.value += SelectedAreaLimit;
    clientID.value += ',';
    clientID.value += IsAreaSelectSingle;
}

//从客户端调用获取所选地区
function GetAreaIDs(layerID)
{
    var clientInputID = layerID + '_tbSelectedArea';
    clientInputID = ReplaceString(clientInputID, '$', '_');
    var input = GetControl(clientInputID);
    return input.value;
}

//打开地区弹出层，用浮动层，不用再用窗体，解决FF问题
function OpenAreaLayerWindow(clientInputID,showUnlimited,parentID,ValueID)
{
    var url = MapPath('../Common/AreaPop.htm?clientInputID=' + clientInputID+'&locklayer=' + parentID +'&datalayer=' + ValueID);
    OpenDataLayer(url,parentID,ValueID);
}