
$(document).ready(formInit);

function formInit() {
  window.theform = $('form:first');

  $('#number1').click(switch_friends_info);
  $('#number2').click(switch_friends_info);

  //set_form_cfg(theform, get_form_cfgtype());
  switch_friends_info();
}


/**
 * 提交时的处理
 */
function sent(form){
  reset_form_style();
  if ( CheckForm(form) ){
    return check_form_data();
  }else{
    return false;
  };
}

/**
 * 检测数据重复
 */
function check_form_data() {
  var cpnumbers = ['phone','friends[0][phone]','friends[1][phone]','friends[2][phone]','friends[3][phone]'];
  var tmparr = [];
  for (var i = 0; i < cpnumbers.length; i++) {
    if (typeof window.theform.chkcfg[cpnumbers[i]] != 'undefined') {
      tmparr.push(cpnumbers[i]);
    }
  }
  cpnumbers = tmparr;
  for (var i = 0; i < cpnumbers.length; i++) {
    //alert($('#'+cpnumbers[i]).val())
    for (var j=i+1; j<cpnumbers.length; j++) {
      var obj1 = $('#'+cpnumbers[i].replace(/([\[\]])/g,'\\$1'), window.theform);
      var obj2 = $('#'+cpnumbers[j].replace(/([\[\]])/g,'\\$1'), window.theform);
      var val1 = obj1.val().replace(' ','');
      var val2 = obj2.val().replace(' ','');
      if(!!val1.length && !!val2.length && val1==val2){
        alert('对不起，电话号码不可重复！');
        obj1.get(0).warning(obj1.get(0));
        obj2.get(0).warning(obj2.get(0));
        return false;
      }
    }
  }

  return true;
}

/**
 * 提醒
 */
function warn(str) {
  $('#remind_'+str.replace(/([\[\]])/g,'\\$1'), window.theform).addClass('form_remind');
}

/**
 * 重设表单样式
 */
function reset_form_style() {
  var formcfg = window.theform.chkcfg;
  //var tmp=''
  for (e in formcfg) {
    //tmp += e+',';
    $(e).append($('body'));
    $('#remind_'+formcfg[e]['warningparam'].replace(/([\[\]])/g,'\\$1'), window.theform).removeClass('form_remind');
  }
  //alert(tmp);
}




function g(o){return document.getElementById(o);}
/**
 * 切换表单朋友信息区
 */
function switch_friends_info(){
  if (g("number1").checked != false) {
    set_form_cfg('leader')
    g("div_friend").className='undis';
    g("chkbox_friend1").checked = false
    //g("div_friend1").className='undis';
    //g("div_friend2").className='undis';
    //g("div_friend3").className='undis';
  }else{
    if ((typeof window.theform['chkcfg']['friends[0][name]'] == 'undefined') && !sent(window.theform[0])) return false;//只在当前仅1个朋友时判断

    set_form_cfg('friend')
    g("div_friend").className='dis';
    g("div_tixing1").className='form2 dis';
    g("div_tixing2").className='form2 dis';
    g("div_tixing3").className='form2 dis';
  }
  switch_friend_info();
}

/**
 * 切换某个朋友信息区
 */
function switch_friend_info(){
  //alert(110);
  var low=1, high=3;
  for (var i = low; i <= high; i++) {
    //alert(g("chkbox_friend"+i).checked);
    if (g("chkbox_friend"+i).checked) {
      set_form_cfg('friend'+i);
      g("div_friend"+i).className='dis';
      g("div_tixing"+i).className='undis';
    }else{
      for (var j = i; j <= high; j++) {
        g("chkbox_friend"+j).checked = false;
      }
      g("div_friend"+i).className='undis';
      g("div_tixing"+i).className='form2 dis';
    }
  }
}

/**
 * for ie
 * 隐藏某个朋友信息区
 */
function show_chkbox(i){
  if (!sent(window.theform[0])) return false;

  g("div_friend"+i).className='dis';
  g("chkbox_friend"+i).checked = true;
  switch_friend_info();
}


/**
 * 设置表单的检查配置
 */
function set_form_cfg(cfgtype) {
  var cfg = make_form_cfg(cfgtype);
  window.theform.chkcfg = cfg;
  //加载到表单
  for (var e in cfg) {
    var attrs = cfg[e];
    e = e.replace(/([\[\]])/g,'\\$1');
    var element = $('#'+e, window.theform);
    if(! element.length ) element = $('input[@name='+e+']', window.theform);
    for (var attr in attrs) {
      element[0][attr] = attrs[attr];
    }
    element[0].warning=function(el){warn(el.warningparam)};
  }
  var els = (window.theform.get(0).elements);
  for (var i=0;i<els.length;i++) {
    if(typeof cfg[els[i].name] == 'undefined'){
      els[i]['check'] = null;
    };
  }
}


/**
 * 生成表单的检测配置
 */
function make_form_cfg(cfgtype) {
  var formcfg = {
    'name':     {'check':'Require',       'warningparam':'name'},
    'phone':    {'check':'Phone_Mobile',  'warningparam':'phone'},
    'shop':     {'check':'Require',       'warningparam':'shop'},
    //'channel' : {'check':'Require',       'warningparam':'channel'},
    'read'    : {'check':'Require',       'warningparam':'read'}
  };

  var friends={ 'friend':1,'friend1':2,'friend2':3,'friend3':4 };
  if (friends[cfgtype]>0) {
    for (var i = 0; i<friends[cfgtype]; i++) {
      formcfg['friends['+i+'][name]']   = {'check':'Require',       'warningparam':'friends['+i+'][name]'};
      formcfg['friends['+i+'][phone]']  = {'check':'Phone_Mobile',  'warningparam':'friends['+i+'][phone]'};
    }
  }

  return formcfg;
}

