function strictInput(event) {
    var code   = window.event ? event.keyCode : event.which; 
    var is_ie  = false;
    if ((navigator.userAgent.indexOf("MSIE") != -1) && (parseInt(navigator.appVersion) >= 4)) is_ie = true;
    if((code < 48 || code > 57) && code != 88 && code != 120 && code != 8 && code != 0) { 
        if (is_ie) {
            event.returnValue = false;
        }
        else {
            event.preventDefault(); 
        }
    }
}

function SpecialCharInput(event) {
    var code   = window.event ? event.keyCode : event.which; 
    var is_ie  = false;
    if ((navigator.userAgent.indexOf("MSIE") != -1) && (parseInt(navigator.appVersion) >= 4)) is_ie = true;
    if(code == 39 || code == 32) { 
        if (is_ie) {
            event.returnValue = false;
        }
        else {
            event.preventDefault(); 
        }
    }
}

/**
 * realname
 * @param str
 * @return boolean
 */
function isRealname(str) {
  return (-1 !== str.search(/^[\u4e00-\u9fa5]{2,8}$/)) ? true : false;
}

/**
 * email
 * @param str
 * @return boolean
 */
function isEmail(str) {
  return (-1 !== str.search(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) ? true : false;
}

/**
 * 数字
 * @param str
 * @param len
 * @return boolean
 */
function isNumberByLength(str, len) {
  return (-1 !== str.search(eval("/^\\d{" + len + "}$/"))) ? true : false;
}

/**
 * 验证码
 * @param str
 * @return boolean
 */
function isImgAuth(str) {
  return (-1 !== str.search(/^\d{4}$/)) ? true : false;
}

/**
 * 密保卡的序列号
 * @param str
 * @return boolean
 */
function isMatrixSN(str) {
  return (-1 !== str.search(/^\d{12}$/)) ? true : false;
}

/**
 * 密保卡的验证数据
 * @param str
 * @return
 */
function isMatrixAuthdata(str) {
  return (-1 !== str.search(/^[a-h]\d{3}[a-h]\d{3}[a-h]\d{3}$/i)) ? true : false;
}

/**
 * 身份证
 * @param str
 * @return
 */
function isIDNum(str) {
  return 	(-1 !== str.search(/^(\d{15}|\d{18}|\d{17}x)$/i)) ? true : false;
}

/**
 * 身份证(严格)
 * @param str
 * @return
 */
function isIDNumStrict(str) {
  if(-1 !== str.search(/^\d{15}$/)) {
    return true;
  }
  if(-1 !== str.search(/^\d{18}$|^\d{17}x$/i)) {
    var weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    var checkCode = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
    var s = 0;
    for(i=0; i<17; i++) {
      s += str.substr(i, 1) * weight[i];
    }
    if(checkCode[s%11] == str.substr(17, 1)) return true;
  }
  return false;
}

/**
 * 验证码载入事件
 * @return
 */
var reloadImg = function(){
	$("imgauthcode").src = "./?t=img&r=" + Math.random();
};

/**
 * 显示错误信息---登录
 * data数组元素顺序为：obj, msg, uid, password
 */
function showLoginFail(){
  var data = $A(arguments);
  $('uid').value = data[2];
  $('password').value = data[3];
  alert(data[1]);
}

function renderAuthPwds(pwds) {
  //更换动态密码指示符的值
  $('authdata_tag').value = pwds;
  
  //更换动态密码指示符
  var pwsArr = pwds.split('-');
  $('authdatatag_0').innerHTML = pwsArr[0];
  $('authdatatag_1').innerHTML = pwsArr[1];
  $('authdatatag_2').innerHTML = pwsArr[2];

  //更换二维表样式 
  clearCurrentGrid();
  pwsArr.each(function(o){
	setCurrentGrid(o);
  });
}

function setCurrentGrid(flag) {
  if(-1 !== flag.search(/^[a-z]\d$/i)) {
    var rows = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'];
    var cols = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
    
    var rowIndex = rows.indexOf(flag.substr(0, 1));
    var colIndex = cols.indexOf(flag.substr(1, 1));
    var obj = $('matrixMap').down(0);
    
    if(rowIndex > 0) {
      obj = obj.next(rowIndex-1);
    }
    
    obj = obj.down().next(colIndex);
    obj.className = 'current';
    obj.innerHTML = flag;
  }
}

/**
 * 去除二维表现有指示区
 * @return
 */
function clearCurrentGrid() {
  $('matrixMap').descendants().each(function(o){
    if('current' == o.className) {
    	o.className = '';
    	o.innerHTML = '';
    }
  });
}

/**
 * 显示弹窗信息，并跳转页面
 * data数组元素顺序为：obj, msg, url
 * url: ''表示不做跳转；'./'表示跳转到首页 etc..
 * @return
 */
function showAlert(){
  var data = $A(arguments);
  alert(data[1]);
  if(data[2]) {
    location.href = data[2];
  }
}

/**
 * 显示错误信息---免费申请
 * data数组元素顺序为：obj, msg, email
 */
function showApplyFail(){
  var data = $A(arguments);
  $('email').value = data[2];
  $('emailInput').style.display = '';
  $('hasEmail').checked = true;
  alert(data[1]);
}

/**
 * 显示错误信息---绑定
 * data数组元素顺序为：obj, msg, sn, idnum, authdata_tag, authdata_val_0, authdata_val_1, authdata_val_2
 */
function showBindFail(){
  var data = $A(arguments);
  $('sn').value = data[2];
  $('idnum').value = data[3];
  $('authdata_tag').value = data[4];
  $('authdata_val_0').value = data[5];
  $('authdata_val_1').value = data[6];
  $('authdata_val_2').value = data[7];

  renderAuthPwds(data[4]);
  showErrorWrap(data[1]);
}

/**
 * 显示错误信息---解绑
 */
var showUnBindFail = showBindFail;

/**
 * 显示错误信息---换卡第一步
 * data数组元素顺序为：obj, msg, sn_old, authdata_tag, authdata_val_0, authdata_val_1, authdata_val_2, idnum
 */
function showChangeFail(){
  var data = $A(arguments);
  $('sn_old').value = data[2];
  $('authdata_tag').value = data[3];
  $('authdata_val_0').value = data[4];
  $('authdata_val_1').value = data[5];
  $('authdata_val_2').value = data[6];
  $('idnum').value = data[7];

  renderAuthPwds(data[3]);
  showErrorWrap(data[1]);
}

/**
 * 显示错误信息---换卡第二步
 * data数组元素顺序为：obj, msg, sn_new, authdata_tag, authdata_val_0, authdata_val_1, authdata_val_2, sn_old, authdata_old
 */
function showChangenewFail(){
  var data = $A(arguments);
  $('sn_new').value = data[2];
  $('authdata_tag').value = data[3];
  $('authdata_val_0').value = data[4];
  $('authdata_val_1').value = data[5];
  $('authdata_val_2').value = data[6];
  $('sn_old').value = data[7];
  $('authdata_old').value = data[8];

  renderAuthPwds(data[3]);
  showErrorWrap(data[1]);
}

/**
 * 显示错误信息---完善身份信息
 * data数组元素顺序为：obj, msg, realname, idnum, email, tagtype
 */
function showIdinfoFail(){
  var data = $A(arguments);
  $('realname').value = data[2];
  $('id_num').value = data[3];
  $('email').value = data[4];
  
  $('error_' + data[5]).style.display = '';
  $('error_' + data[5]).innerHTML = data[1];
}

function showErrorWrap(msg) {
	if($('errorMsg')) {
	  $('errorMsg').className = 'error_warp';
	  $('errorMsg').style.display = '';
	  $('errorMsg').innerHTML = msg;
	}
}

/**
 * 显示错误信息---解除游戏服务
 * data数组元素顺序为：obj, msg, sn_old, authdata_tag, authdata_val_0, authdata_val_1, authdata_val_2, idnum, acgamelist
 */
function showReleaseFail(){
  var data = $A(arguments);
  $('sn').value = data[2];
  $('authdata_tag').value = data[3];
  $('authdata_val_0').value = data[4];
  $('authdata_val_1').value = data[5];
  $('authdata_val_2').value = data[6];
  $('idnum').value = data[7];
  $('acgamelist').value = data[8];

  renderAuthPwds(data[3]);
  showErrorWrap(data[1]);
}