﻿// 搜索输入框中可以显示文本的最大长度，大于此长度将截断，附加...。
// 此变量的值可以在各个页面调整，此处默认为9。
var g_maxTextLength = 9;

var L_UNDEFINED = 'undefined';
var L_EMPTY = '不限';
var L_ALL = '全部';

if(typeof($get) == L_UNDEFINED)
  var $get = function(id)
  {
    return document.getElementById(id);
  }

if(typeof($gets) == L_UNDEFINED)
  var $gets = function(name)
  {
    return document.getElementsByName(name);
  }
  
if(typeof($tags) == L_UNDEFINED)
  var $tags = function(name)
  {
    return document.getElementsByTagName(name);
  }
  
function GetCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

//导航
function navTop(id)
{
  $get("li1").className = "Font10";
  $get("li4").className = "Font10";
  $get("li" + id).className = "Font02";

  $get("div1").style.display = "none";
  $get("div4").style.display = "none";
  $get("div" + id).style.display = "";
}

//更多的搜索选项
function searchText(id)
{
  if ($get("BotText" + id).style.display == "none")
  {
    $get("BotText" + id).style.display = "";
    $get("BotBtn" + id).className = "btnStretchDown";
  }
  else
  {
    $get("BotText" + id).style.display = "none";
    $get("BotBtn" + id).className = "btnStretch";
  }
}

function ChangeDiv(divId, divName, zDivCount, divstyle)
{
  for (i = 0; i <= zDivCount; i++)
  {
    $get(divName + i).style.display = "none";
    if (divstyle == 'hotArea' || divstyle == 'meal' || divstyle == 'par')
    {
      $get(divstyle + i).className = 'serch05';
    }
    else
    {
      $get(divstyle + i).className = '';
    }
  }
  $get(divName + divId).style.display = "";

  //人气css
  if (divstyle == 'hotArea' || divstyle == 'meal' || divstyle == 'par')
  {
    $get(divstyle + divId).className = 'serch05_1';
  }
  else
  {
    $get(divstyle + divId).className = 'search_box';
  }
}


//菜系全选
function selectAll(itemName)
{
  var items = $gets(itemName);
  var selectedText = "";
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = true;
    selectedText += items[i].id + " ";
  }

  var txt = $get("selectProduct");
  txt.title = selectedText;
  
  if (selectedText.length < g_maxTextLength)
  {
  }
  else
  {
    selectedText = selectedText.substring(0, g_maxTextLength - 1) + "...";
  }
  txt.value = selectedText;
}

//地区全选
function areaAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = true;
  }
  var strAreaValue = "";
  var items = $gets("checkArea");
  for (var i = 0; i < items.length; i++)
  {
    if (items[i].checked)
    {
      strAreaValue += items[i].id + " ";
    }
  }

  var txt = $get("selectArea");
  txt.title = strAreaValue;
  
  if (strAreaValue.length < g_maxTextLength)
  {
  }
  else
  {
    strAreaValue = strAreaValue.substring(0, g_maxTextLength - 1) + "...";
  }
  txt.value = strAreaValue;
}


//用餐主题全选
function subjectAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = true;
  }
  var strSubjectValue = "";
  var items = $gets("checkSubject");
  for (var i = 0; i < items.length; i++)
  {
    if (items[i].checked)
    {
      strSubjectValue += items[i].id + " ";
    }
  }

  var txt = $get("selectSubject");
  txt.title = strSubjectValue;
  
  if (strSubjectValue.length < g_maxTextLength)
  {
  }
  else
  {
    strSubjectValue = strSubjectValue.substring(0, g_maxTextLength - 1) + "...";
  }
  txt.value = strSubjectValue;
}


//人均消费全选
function perAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = true;
  }
  var strPerValue = "";
  var items = $gets("checkPer");
  for (var i = 0; i < items.length; i++)
  {
    if (items[i].checked)
    {
      strPerValue += items[i].id + " ";
    }
  }

  var txt = $get("selectPer");
  txt.title = strPerValue;
  
  if (strPerValue.length < g_maxTextLength)
  {
  }
  else
  {
    strPerValue = strPerValue.substring(0, g_maxTextLength - 1) + "...";
  }
  txt.value = strPerValue;
}

//外卖类型全选
function OutAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = true;
  }
  var txt = $get("selectOut");
  txt.value = L_ALL;
}

// 服务
function serviceAll()
{
  checkAllItems('checkService', 'selectService');
}

function serviceAllNot()
{
  uncheckAllItems('checkService', 'selectService');
}

function documentService()
{
  showSelectedItems('checkService', 'selectService');
}

//外卖价格全选
function PriceAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = true;
  }
  var strPriceValue = "";
  var items = $gets("checkPrice");
  for (var i = 0; i < items.length; i++)
  {
    if (items[i].checked)
    {
      strPriceValue += items[i].id + " ";
    }
  }

  var txt = $get("selectPrice");
  txt.title = strPriceValue;
  
  if (strPriceValue.length < g_maxTextLength)
  {
  }
  else
  {
    strPriceValue = strPriceValue.substring(0, g_maxTextLength - 1) + "...";
  }
  txt.value = strPriceValue;
}


//菜系不全选
function noSelectAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = false;
  }
  $get("selectProduct").value = "全部菜系";
  $get("selectProduct").title = '';
}


//地区不全选
function noAreaAll(itemName)
{
  $get("selectArea").value = "不限";
  $get("selectArea").title = '';
  $get("checkArea").value = "";
  $get("selectAreaBox").style.display = 'none';
}


//用餐主题不全选
function noSubjectAll(itemName)
{
  var items = $gets("checkSubject");
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = false;
  }
  documentSubject();
}


//人均消费不全选
function noPerAll(itemName)
{
  $get("selectPer").value = "不限";
  $get("selectPer").title = "";
  $get("checkPer").value = "";
  $get("selectPerBox").style.display = 'none';
}

//人均茶消费不全选
function noTeaPerAll(itemName)
{
  $get("selectPrice").value = "不限";
  $get("selectPrice").title = "";
  $get("checkPrice").value = "";
  $get("selectPriceBox").style.display = 'none';
}

//茶餐厅主题不全选
function noTeaAll(itemName)
{
  $get("selectTeaStyle").value = "不限";
  $get("selectTeaStyle").title = "";
  $get("checkTeaSubject").value = "";
  $get("infoSelectStyle").style.display = 'none';
}

//外卖类型不全选
function noOutAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = false;
  }
  $get("selectOut").value = "全部";
  $get("selectOut").title = "";
}


//外卖价格不全选
function noPriceAll(itemName)
{
  $get("selectPrice").value = "不限价格";
  $get("selectPrice").title = "";
  $get("checkPrice").value = "";
  $get("selectPriceBox").style.display = 'none';
}

//外卖地区不全选
function noPosiAll(itemName)
{
  $get("selectPosi").value = "选择地区";
  $get("selectPosi").title = "";
  $get("checkPosi").value = "";
  $get("selectPosiBox").style.display = 'none';
}


//菜系按钮显示
function documentSelect()
{
  var selectedText = "";
  var items = $gets("checkCook");
  for (var i = 0; i < items.length; i++)
  {
    if (items[i].checked)
    {
      selectedText += items[i].id + " ";
    }
  }
  
  var txt = $get("selectProduct");
  txt.title = selectedText;
  
  if (selectedText.length < g_maxTextLength)
  {
  }
  else
  {
    selectedText = selectedText.substring(0, g_maxTextLength - 1) + "...";
  }

  if (selectedText == "")
  {
    $get("selectProduct").value = "全部菜系";
  }
  else
  {
    txt.value = selectedText;
  }
}

//道路按钮显示
function documentArea(text, value)
{
  $get("selectArea").value = text;
  $get("checkArea").value = value;
  $get("selectAreaBox").style.display = 'none';
}

//人均消费按钮显示
function documentPer(text, value)
{
  $get("selectPer").value = text;
  $get("checkPer").value = value;
  $get("selectPerBox").style.display = 'none';
}

//外卖类型按钮显示
function documentOut()
{
    showSelectedItems("checkOut", "selectOut", "不限");
}

//外卖价格按钮显示
function documentPrice(text, value)
{
  $get("selectPrice").value = text;
  $get("checkPrice").value = value;
  $get("selectPriceBox").style.display = 'none';
}

//外卖地区按钮显示
function documentPosi(text, value)
{
  $get("selectPosi").value = text;
  $get("checkPosi").value = value;
  $get("selectPosiBox").style.display = 'none';
}

// 优惠券
function documentCoupon()
{
  showSelectedItems("checkCoupon", "selectCoupon", "不限");
}

// 宴会
function documentBanquet()
{
  showSelectedItems("checkBanquet", "selectBanquet", "不限");
}

//茶餐厅主题按钮显示
function clickTeaSubject()
{
  showSelectedItems("checkTeaSubject", "selectTeaSubject", "不限");
}


//茶餐厅主题不全选
function noTeaSubjectAll(itemName)
{
  var items = $gets(itemName);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = false;
  }
  $get("selectTeaStyle").value = "不限";
  $get("selectTeaStyle").title = "";
}

//人均消费按钮显示
function documentPer(text, value)
{
  var t = $get('checkPer');
  t.value = value;
  t = $get('selectPer');
  t.value = text;
  $get('selectPerBox').style.display = 'none';
}


//菜系按钮显示
function documentSelect(obj)
{
  var selectedText = "";
  var items = $gets("checkCook");
  for (var i = 0; i < items.length; i++)
  {
    if (items[i].checked)
    {
      selectedText += items[i].id + " ";
    }
  }
  
  var txt = $get("ctl00_PlaceHolderMain_selectProduct");
  if (txt == null) txt = $get('selectProduct');
  txt.title = selectedText;
  
  if (selectedText.length < g_maxTextLength)
  {
  }
  else
  {
    selectedText = selectedText.substring(0, g_maxTextLength - 1) + "...";
  }
  
  if (selectedText == "")
  {
    txt.value = "全部菜系";
  }
  else
  {
    txt.value = selectedText;
  }
}

//用餐主题按钮显示
function documentSubject()
{
  showSelectedItems("checkSubject", "selectSubject", "不限");
}


///////////////////////////////////////////////////////////////////////
// 餐厅管理专用
///////////////////////////////////////////////////////////////////////
function selectPayPer(text, value)
{
  $get(g_selectPerID).value = text;
  $get('checkPayPer').value = value;
  $get("selectPerBox").style.display = 'none';
}

function unselectPayPer()
{
  $get(g_selectPerID).value = L_EMPTY;
  $get('checkPayPer').value = '';
  $get("selectPerBox").style.display = 'none';
}

function selectCookStyle()
{
  showSelectedItems("checkCook", "selectCook", "不限");
}

function selectAllCookStyle()
{
  checkAllItems('checkCook', 'selectCook');
}

function unselectCookStyle()
{
  uncheckAllItems('checkCook', 'selectCook');
}

function selectEditRestTheme()
{
  showSelectedItems("checkTheme", "selectTheme", "不限");
}

function unselectTheme()
{
  uncheckAllItems("checkTheme", "selectTheme");
  $get("selectThemeBox").style.display = 'none';
}

///////////////////////////////////////////////////////////////////////
// 以下为通用函数
///////////////////////////////////////////////////////////////////////

function showSelectedItems(checkbox, textbox, emptyText, maxTextLen)
{
  if(emptyText == null) emptyText = L_EMPTY;
  if(maxTextLen == null) maxTextLen = g_maxTextLength;

  var s = "";
  var items = $gets(checkbox);

  for (var i = 0; i < items.length; i++)
  {
    if (items[i].checked)
    {
      var title = items[i].getAttribute('_title');
      // 不使用id，使用自定义的_title属性
      s += title + " ";
    }
  }

  var txt = $get(textbox);
  txt.title = s;
  
  if (s.length < maxTextLen)
  {
  }
  else
  {
    s = s.substring(0, maxTextLen - 1) + "...";
  }

  if (s.length == 0)
  {
    txt.value = emptyText;
  }
  else
  {
    txt.value = s;
  }
}

// 判断某个值是否在数组里
function valueInArray(a, v)
{
  for(var i = 0; i < a.length; i++)
  {
    if(a[i] == v) return true;
  }
  return -1;
}

// 根据values选中对应的checkbox。
// values是用逗号（,）分割的值,或者是数组。
function selectCheckBox(name, values)
{
  if(values == null) return;
  if(name == null) return;
  
  var items = $gets(name);
  var a = null;
  if(Object.prototype.toString.apply(values) === '[object Array]')
    a = values;
  else
    a = values.split(',');
  for(var i = 0; i < items.length; i++)
  {
    var chk = items[i];

    if(valueInArray(a, chk.value) >= 0)
      chk.checked = true;
  }
}


// 选中所有选项
function checkAllItems(checkbox, textbox, allText)
{
  if(allText == null) allText = L_ALL;
  var items = $gets(checkbox);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = true;
  }
  var txt = $get(textbox);
  txt.title = allText;
  txt.value = allText;
}

// 选中所有选项
function uncheckAllItems(checkbox, textbox, emptyText)
{
  if(emptyText == null) emptyText = L_EMPTY;
  var items = $gets(checkbox);
  for (var i = 0; i < items.length; i++)
  {
    items[i].checked = false;
  }
  var txt = $get(textbox);
  if(txt!=null)
  {
    txt.title = emptyText;
    txt.value = emptyText;
  }
}

function unselectItem(textbox, checkbox, box, emptyText)
{
  if(emptyText == null) emptyText = L_EMPTY;
  $get(textbox).value = emptyText;
  $get(checkbox).value = '';
  $get(box).style.display = 'none';
}

// 补丁：HTML标准中没有insertAfter
function DOM_insertAfter(newElement, targetElement)
{
  var parent = targetElement.parentNode;
  if(parent.lastChild == targetElement)
  {
    //如果targetElement是parent最后一个子元素，插入newElement
    parent.appendChild(newElement);
  }
  else
  {
    //如果不是，插入到targetElement下一个兄弟节点的前面
    parent.insertBefore(newElement, targetElement.nextSibling);
  }
}

// 补丁：很多checkbox没有对应的label，直接编辑HTML太麻烦，这里用js来动态添加。
// 要求：checkbox后面紧跟文本内容，如：<input type=checkbox value=1234>选项
function fixCheckboxLabel(name)
{
  var items = $gets(name);
  if(items == null) return;

  for(var i = 0; i < items.length; i++)
  {
    var c = items[i];
    var t = c.nextSibling;  // 应该是文本内容
    if(t.tagName == 'LABEL') continue;  // 如果有LABEL了就不用fix了
    if(t == null) continue;
    
    c.parentNode.removeChild(t);
    if(c.id != null && c.id != '')
    {
    }
    else
    {
      c.id = name + c.value;
    }
    var lbl = document.createElement('LABEL');
    lbl.htmlFor = c.id;
    lbl.appendChild(t);
    DOM_insertAfter(lbl, c);
  }
}
