icon_ok = '<img src="images/ok.gif">';
icon_ng = '<img src="images/ng.gif">';
icon_caution = '<img src="images/caution.gif">';
name_ok = 0;
age_ok = 0;
address_ok = 0;
tel_ok = 0;
email_ok = 0;

Validator.register(
{
	"#inquiryname" : {
    "/^([^@\\s])/": icon_ok+"OK",
    "/^$/": icon_caution+"必ず入力してください",
    "/.*/": icon_ng+"正しく入力してください"
    },
	"#inquirytel" : {
    "/^[0-9]+$/": icon_ok+"OK",
    "/^$/": icon_caution+"必ず入力してください",
    "/.*/": icon_ng+"正しく入力してください"
    },
    "#inquiryemail" : {
    "/^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$/": icon_ok+"OK",
    "/^$/": icon_caution+"必ず入力してください",
    "/.*/": icon_ng+"正しいメールアドレスを入力してください" 
    },



	"#staffname" : {
    "/^([^@\\s])/": icon_ok+"OK",
    "/^$/": icon_caution+"必ず入力してください",
    "/.*/": icon_ng+"正しく入力してください"
    },
	"#stafftime" : {
    "/^([0-9]{4})\\/([0-9]{1,2})\\/([0-9]{1,2})$/": icon_ok+"OK",
    "/^([0-9]{5,})\\/([0-9]{1,2})\\/([0-9]{1,2})$/": icon_caution+"年数を正確に入力してください",
    "/^([0-9]{4})\\/([0-9]{3,})\\/([0-9]{1,2})$/": icon_caution+"月を正確に入力してください",
    "/^([0-9]{4})\\/([0-9]{1,2})\\/([0-9]{3,})$/": icon_caution+"日を正確に入力してください",
    "/[a-z|A-Z|]/": icon_ng+"英文字は使えません",
    "/^$/": icon_caution+"yyyy/mm/dd形式で入力してください"
	},
	"#staffaddress" : {
    "/^([^@\\s])/": icon_ok+"OK",
    "/^$/": icon_caution+"必ず入力してください",
    "/.*/": icon_ng+"正しく入力してください"
    },
	"#stafftel" : {
    "/^[0-9]+$/": icon_ok+"OK",
    "/^$/": icon_caution+"必ず入力してください",
    "/.*/": icon_ng+"正しく入力してください"
    },
    "#staffemail" : {
    "/^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$/": icon_ok+"OK",
    "/^$/": icon_caution+"必ず入力してください",
    "/.*/": icon_ng+"正しいメールアドレスを入力してください" 
    },

	
	
	
    "#name" : {
        "/^([^@\\s])/": function(element) {name_ok=1;return icon_ok+"OK";},
        "/^$/": function(element) {name_ok=0; return icon_caution+"必ず入力してください";},
        "/.*/": function(element) {name_ok=0; return icon_ng+"正しく入力してください";}
    },
	"#age" : {
        "/^[0-9]+$/": function(element) {age_ok=1;return icon_ok+"OK";},
        "/^$/": function(element) {age_ok=0; return icon_caution+"必ず入力してください";},
        "/.*/": function(element) {age_ok=0; return icon_ng+"半角数字で入力してください";}
    },
    "#address" : {
        "/^([^@\\s])/": function(element) {address_ok=1;return icon_ok+"OK";},
        "/^$/": function(element) {address_ok=0; return icon_caution+"必ず入力してください";},
        "/.*/": function(element) {address_ok=0; return icon_ng+"正しく入力してください";}
    },
	"#tel" : {
        "/^[0-9]+$/": function(element) {tel_ok=1;return icon_ok+"OK";},
        "/^$/": function(element) {tel_ok=0; return icon_caution+"必ず入力してください";},
        "/.*/": function(element) {tel_ok=0; return icon_ng+"半角数字で入力してください";}
    },
    "#email" : {
        "/^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$/": function(element) {email_ok=1; return icon_ok+"OK"},
        "/^$/": function(element) {email_ok=0; return icon_caution+"必ず入力して下さい"},
        "/.*/": function(element) {email_ok=0; return icon_ng+"正しいアドレスを入力"}
    }
}
);

function checkForm(){
    ok = name_ok + age_ok + address_ok + tel_ok + email_ok;
    if(ok >= 5){
        return true;
    }
    alert("すべてOKにならないと送信できません");
    return false;
}






/*フォーカスした時に背景変更*/
window.onload = function() {
   var colorful = new ColorfulInput;
   colorful.skip = ['submit','reset'];
   colorful.color['focus'] = '#F6F6CC';
   colorful.set();
}

function ColorfulInput() {
   this.skip  = [];
   this.color = { 'blur': '', 'focus': '#EEEEEE' };

   this.set = function() {
      for (var i = 0; i < document.forms.length; i++) {
         for (var f = 0; f < document.forms[i].length; f++) {
            var elm = document.forms[i][f];
            if(!this._checkSkip(elm)) continue;

            this._setColor(elm, 'focus');
            this._setColor(elm, 'blur');
         }       
      }
   }

   this._checkSkip = function(elm) {
      for(var i in this.skip) {
         if(elm.type == this.skip[i]) return false;
      }
      return true;
   }

   this._setColor = function(elm, type) { 
      var color = this.color[type];
      var event = function() { elm.style.backgroundColor = color; };

      if(elm.addEventListener) {
         elm.addEventListener(type, event, false); 
      } else if(elm.attachEvent) {
         elm.attachEvent('on'+type, event); 
      } else {
         elm['on'+type] = event;
      }
   }
}





/*フォーカスした時に内容消去*/
var target_ids = [
	'staffothers',
    'inquirycomment',
	'career',
    'skill',
    'others'
];

Event.observe(window, 'load', function() {
    new focusClearValue(target_ids);
},false);

var focusClearValue = Class.create();

focusClearValue.prototype = {
	initialize: function(id_Array) {
		this.elms = id_Array.findAll( function(setting_id) {
			return $(setting_id);
		});
		this.elms.each( this.addingEvent.bindAsEventListener(this) );
	},
	
	addingEvent: function(target_id) {
		var elm = $(target_id);
		Event.observe(elm, 'focus', this.ifDefaultValue.bindAsEventListener(this), false);
		Event.observe(elm, 'blur', this.ifValueNone.bindAsEventListener(this), false);
	},
	
	ifDefaultValue: function(event) {
		var elm = Event.element(event);
		if ($F(elm) == elm.defaultValue) {
			Field.clear(elm);
		} else {
			return;
		}
	},
	
	ifValueNone: function(event) {
		var elm = Event.element(event);
		if ($F(elm) == '') {
			elm.value = elm.defaultValue;
		} else {
			return;
		}
	}
}





/*フォーム復活*/
var DisableSubmit = {
   init: function() {
      this.addEvent(window, 'load', this.set());
   },

   set: function() {
      var self = this;
      return function() {
         for (var i = 0; i < document.forms.length; ++i) {
            if(document.forms[i].onsubmit) continue;
            document.forms[i].onsubmit = function() {
               self.setDisable(this.getElementsByTagName('input'));
            };
         }
      }
   },

   setDisable: function(elms) {
      for (var i = 0, elm; elm = elms[i]; i++) {
         if ((elm.type == 'submit' || elm.type == 'image') && !elm.disabled) {
            Set(elm);
            unSet(elm);
         }
      }

      function Set(button) {
         window.setTimeout(function() { button.disabled = true; }, 1);
      }
      function unSet(button) {
         window.setTimeout(function() { button.disabled = false; }, 1000);
      }
   },

   addEvent: function(elm, type, event) {
      if(elm.addEventListener) {
         elm.addEventListener(type, event, false);
      } else if(elm.attachEvent) {
         elm.attachEvent('on'+type, event);
      } else {
         elm['on'+type] = event;
      }
   }
}

DisableSubmit.init();





/*テキストエリアリサイズ*/
var ElementResizer = {
   moveNode: false,

   add: function(elm) {
      var obj = new this._ChildElement(this, elm);

      addEvent(elm, 'mousedown', function (e) {
         if(obj.resizePoint(e)) {
            ElementResizer.moveNode = obj;
         }
      });

      return obj;
   },

   start: function() {
      var self = this;
      addEvent(document.body, 'mouseup', function (e) {
         if(self.moveNode) self.moveNode = false;
      });

      addEvent(document.body, 'mousemove', function (e) {
         if(self.moveNode) self.moveNode.doResize(e);
      });
   },

   resizePoint: function(e, elm) {
      var offset = Position.offset(elm);
      var page   = Position.page(e);

      offset.y += elm.offsetHeight;
      offset.x += elm.offsetWidth;

      if(offset.y - 32 < page.y && page.y < offset.y &&
         offset.x - 32 < page.x && page.x < offset.x - 8) {
         return true;
      }
   },

   doResize: function(e, elm) {
      var offset = Position.offset(elm);
      var page   = Position.page(e);

      var width  = page.x - offset.x + 24;
      var height = page.y - offset.y + 16;
      if (width  < 50) width  = 50;
      if (height < 50) height = 50;

      elm.style.height = height + 'px';
      elm.style.width  = width  + 'px';
   }
}

ElementResizer._ChildElement = function() {
   this.initialize.apply(this, arguments);
}

ElementResizer._ChildElement.prototype = {
   initialize: function(base, elm) {
      this.base = base;
      this.elm  = elm;
   },

   resizePoint: function(e) {
      return this.base.resizePoint(e, this.elm);
   },

   doResize: function(e) {
      return this.base.doResize(e, this.elm);
   }
}

var Position = {
   offset: function(elm) {
      var pos = {};
      pos.x = this.getOffset('Left', elm);
      pos.y = this.getOffset('Top', elm);
      return pos;
   },

   getOffset: function(prop, el) {
      if(el.offsetParent.tagName.toLowerCase() == "body")
         return el['offset'+prop];
      else
         return el['offset'+prop]+ this.getOffset(prop, el.offsetParent);
   },

   page: (document.all) ?
      (function() {
         var pos = {};
         pos.x = event.x + document.body.scrollLeft;
         pos.y = event.y + document.body.scrollTop;
         return pos;
      })
      :
      (function(e) {
         var pos = {};
         pos.x = e.pageX;
         pos.y = e.pageY;
         return pos;
      })
}

var addEvent = (window.addEventListener) ?
   (function(elm, type, event) {
      elm.addEventListener(type, event, false);
   }) : (window.attachEvent) ?
   (function(elm, type, event) {
      elm.attachEvent('on'+type, event);
   }) :
   (function(elm, type, event) {
      elm['on'+type] = event;
   }) ;


addEvent(window, 'load', function() {
   var textareas = document.getElementsByTagName('textarea');

   for(var i = 0;elm = textareas[i];i++) {
      (function(elm) {
         var obj = ElementResizer.add(elm);
         var cursor = false;

         addEvent(elm, 'mousemove', function (e) {
            if(!cursor && obj.resizePoint(e)) {
               elm.style.cursor = 'se-resize';
               cursor = true;
            } else if(cursor && !obj.resizePoint(e)) {
               elm.style.cursor = 'default';
               cursor = false;
            }
         });
      })(elm);
   }

   ElementResizer.start();
});
