// JavaScript Document

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

// 文字カウント
var d$ = function (element) {
	  if (typeof element == 'string')
	    element = document.getElementById(element);
	  return element;
	}
var getStringCount = (function() {
	if(navigator.appName!="Microsoft Internet Explorer"){
		return function(str1) {
			var i=0;
			var cntn=0;
			while((i=str1.indexOf("\n",i)) != -1){
				i ++; 
				cntn++;
			}
			return str1.length + cntn;
		}
	} else {
		return function (str1) {
			return str1.length
		}
	}
})()
var charCount = function (textElement, setElement, maxCount) {
	var cnt = this.getStringCount(d$(textElement).value);
	if (maxCount != null && maxCount>0) {
		cnt = maxCount - cnt
	}
	var element = d$(setElement);
	if(typeof element.value != 'undefined') {
		element.value = cnt;
	}else {
		var wholeWordSt = maxCount + '字以内 （残り';
		var wholeWordEnd= '字）';
		if (cnt <= 0) {
			wholeWordSt = maxCount + '字以内 （残り<span class="countAnswerMessageWarning">';
			wholeWordEnd = '</span>字）';
		}
		element.innerHTML = wholeWordSt + cnt + wholeWordEnd;
	}

}
var charCountEvent = function (textElement, setElement, maxCount) {
	charCount(textElement, setElement, maxCount)
	dsolAjax.addListener2(textElement, "keyup", function () {charCount(textElement, setElement, maxCount)})
	dsolAjax.addListener2(textElement, "blur", function () {charCount(textElement, setElement, maxCount)})
}