/**
 *  & Clark
 * 输入框js 配合输入框标签使用
 * 需要载入 string.js, number.js,
 */
var Input = {
  /**
   * 创建email输入框
   * @param name 输入框名称
   * @param blurFunction 焦点离开事件句柄
   */
  createEmail:function(name, blurFunction) {
    var element=document.createElement("<input name=\""+name+"\"/>");

    element.type="text";
    var doBlur=function(){
      Input.checkEmail(element);
      if(blurFunction) blurFunction();
    }
    element.attachEvent("onblur",doBlur);
    return element;
  },

  /**
   * 检查email输入框的内容
   * @param input 输入框对象
   */
  checkEmail:function(input) {
    if (!StringUtil.isEmail(input.value)) input.value = "";
  },


  /**
   * 创建整形输入框
   * @param name 输入框名称
   * @param minValue 最小值
   * @param maxValue 最大值
   * @param blurFunction 焦点离开事件句柄
   */
  createInt:function(name, minValue, maxValue, blurFunction) {
    if(minValue==null) minValue=-99999999;
    if(maxValue==null) maxValue=99999999;
    var element=document.createElement("<input name=\""+name+"\"/>");
    element.type="text";
    var doBlur=function(){
      Input.checkInt(element, minValue, maxValue);
      if(blurFunction) blurFunction();
    }
    element.attachEvent("onblur",doBlur);
    return element;
  },


  /**
   * 检查int型输入框的内容
   * @param input 输入框对象
   * @param minValue 最小值
   * @param maxValue 最大值
   */
  checkInt:function(input, minValue, maxValue) {
    if (!NumberUtil.isInt(input.value)) {
      input.value = "";
    }
    else {
      var intValue = NumberUtil.toInt(input.value);
      if (intValue < minValue) intValue = minValue;
      if (intValue > maxValue) intValue = maxValue;
      input.value = intValue;
    }
  },

  /**
   * 创建double型输入框
   * @param name  输入框名称
   * @param minValue  最小值
   * @param maxValue  最大值
   * @param fixDigit  小数位数
   * @param blurFunction 焦点离开事件句柄
   */
  createDouble:function(name, minValue, maxValue, fixDigit, blurFunction) {
    if(minValue==null) minValue=-999999999999.000000;
    if(maxValue==null) maxValue=999999999999.000000;
    if(fixDigit==null) fixDigit=0;
    var element=document.createElement("<input name=\""+name+"\"/>");
    element.type="text";
    var doBlur=function(){
      Input.checkDouble(element, minValue, maxValue, fixDigit);
      if(blurFunction) blurFunction();
    }
    element.attachEvent("onblur",doBlur);
    return element;

  },

  /**
   * 检查Double型输入框的内容
   * @param input 输入框对象
   * @param minValue 最小值
   * @param maxValue 最大值
   * @param fixDigit 小数位数
   */
  checkDouble:function(input, minValue, maxValue, fixDigit) {
    if (!NumberUtil.isDouble(input.value)) {
      input.value = "";
    }
    else {
      var doubleValue = NumberUtil.toDouble(input.value);
      if (doubleValue < minValue) doubleValue = minValue;
      if (doubleValue > maxValue) doubleValue = maxValue;
      input.value = (fixDigit != null && fixDigit > 0) ? doubleValue.toFixed(fixDigit) : doubleValue;
    }
  },

  /**
   * 创建文本域
   * @param name 输入框名称
   * @param maxlength  最大长度
   * @param blurFunction  焦点离开事件句柄
   */
  createTextarea:function(name, length, blurFunction) {
    var element=document.createElement("<textarea name=\""+name+"\"></textarea>");
    var doBlur=function(){
      if(length>0) Input.checkTextareaLength(element,length);
      if(blurFunction) blurFunction();
    }
    element.attachEvent("onblur",doBlur);
    return element;
  },

  /**
   * 控制textarea文本域的长度
   * @param input textarea对象
   * @param length 长度
   */
  checkTextareaLength:function(input, length) {
    var charLen = input.value.length;
    if (charLen > length)
      input.value = input.value.substr(0, length);

  },


  /**
   * 创建date输入框
   * @param name 对象名称
   * @param types 类型 false或空:是日期型（yyyy-MM-dd）||true 日期带时间（yyyy-MM-dd HH:mm:ss）
   */
  createDate:function(name,hastime){
    var element = document.createElement("<input name='"+name+"'>");
    element.type = 'text';
    element.className = "Wdate";
    var pattern = "%Y-%M-%D";
    if(hastime) pattern += " %h:%m:%s";
    element.onfocus = function(){
      new WdatePicker(this,pattern,hastime);
    }
    return element;
  },
  /**
   * 创建Time输入框
   * @param name 对象名称 HH:mm:ss
   */
  createTime:function(name){
    var element = document.createElement("<input name='"+name+"'>");
    element.type = 'text';
    element.className = "Wdate";
    var pattern = "%h:%m:%s";
    element.onfocus = function(){
      new WdatePicker(this,pattern,true);
    }
    return element;
  },
  /**
   * 创建month输入框
   * @param name 对象名称 %Y-%M
   */
  createMonth:function(name){
    var element = document.createElement("<input name='"+name+"'>");
    element.type = 'text';
    element.className = "Wdate";
    var pattern = "%Y-%M";
    element.onfocus = function(){
      new WdatePicker(this,pattern);
    }
    return element;
  },
  /**
   * 创建select菜单
   * @param name 名称
   * @param items options
   * @param width 宽度
   * @param selectedValue 默认选中值
   */
  createSelect:function(name,items,width,selectedValue){
    var selectBox1 = document.createElement("<SPAN>")
    selectBox1.className = "selectbox1";
    var selectBox2 = document.createElement("<SPAN>");
    selectBox2.className = "selectbox2";
    var select = document.createElement("<select name='"+name+"'>");
    select.className = "select";
    var widthThis = 152;
    if(NumberUtil.isInt(width)){
	    widthThis = width;
	    selectBox1.style.width = widthThis + "px";
	    selectBox2.style.width = (widthThis - 2) + "px";
	    select.style.width = (widthThis + 1) + "px";
    }else{
    	if(width.length>0){
    		selectBox1.style.width = width;
	    	selectBox2.style.width = width;
	    	select.style.width = width;
	    }
    }

    for(var i=0;i<items.length;i++){
      var option = document.createElement("<OPTION>");
      option.value = items[i][0];
      option.innerHTML = items[i][1];
      select.appendChild(option);
    }
    if(selectedValue!=null)select.value=selectedValue;
    selectBox2.appendChild(select);
    selectBox1.appendChild(selectBox2);
    return selectBox1;
//    document.body.appendChild(selectBox1);
  } ,

  /**
   * 鼠标移动到button
   * @param button
   */
  buttonOver:function(button){
    button.children[0].style.backgroundColor="#D7EEFF"
  },

  /**
   * 鼠标移开button
   * @param button
   */
  buttonOut:function(button){
     button.children[0].style.backgroundColor="#C3DAF9";
  },

  /**
   * 鼠标点击下button
   * @param button
   */
  buttonDown:function(button){
     button.children[0].style.backgroundColor="#C3DAF9";
  }



}

