// JavaScript library ，用于校验表单数据
// 唐志坚 提供
// 高学军 整理修改于 2002.12.26 ，添加了注释，修正了一些BUG，删除了没用的代码，并增加了几个function
// 简要目录：
// 1.是否为空或全是空字符 
// 2.字符串是否只包含0到9的数字
// 3.是否整数(允许带正负号)
// 4.是否数字
// 5.小数（m,n），忽略小数首尾的0，不允许正负号
// 6.字符串是否全是字母
// 7.字符串是否全是字母和数字
// 8.日期
// 9.居民身份证号码
// 10.电话号码
// 11.邮政编码
// 12.是否合法的email
// 13.一列checkbox中是否至少有一个checked 14.一列checkbox中是否只有一个checked
// 15.一列checkbox中是否全部checked 16.多个下拉框不能一样
// 其它未编号的function为辅助，也可以单独使用

// 注意：除固定格式的输入项如日期，邮政编码和居民身份证号码外，其余均未判断长度和是否为空。

var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace = " \t\n\r";
var defaultEmptyOK = true
String.prototype.trim=function(){
        return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim=function(){
        return this.replace(/(^\s*)/g,"");
}
String.prototype.rtrim=function(){
        return this.replace(/(\s*$)/g,"");
} 
//判断是否为年份和月份
function isDate(y,m){
   if(isEmpty(y)&&isEmpty(m)){
    return true;
   }else{
     if(isEmpty(y)||isEmpty(m)){
		 if(isEmpty(y)){
			alert("请输入年份：");
           return false;
		 }else{
		 
		  if(!isFloat (y)||y.length!=4){
			  alert("请正确输入年份");
		      return false;
		  }
		 }
		return true; 
	 }else{
          if(!isFloat (y)||y.length!=4){
			  alert("请正确输入年份");
		      return false;
		  }
		  return true;
	 }
   }
}

//是否 null 或者 空
function isEmpty(s)
{
   return ((s == null) || (s.length == 0) )
}

//1.是否为空或全是空字符
function isWhitespace (s)

{   var i;

    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    return true;
}

//从s里去掉包含在bag中的字符，s="abcd" bag="ace" return "bd"
function stripCharsInBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}
//从s里去掉不包含在bag中的字符 s="abcd" bag="ace" return "ac"
function stripCharsNotInBag (s, bag)

{   var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }

    return returnString;
}
//从s里去掉空字符，s="ab c d " return "abcd"
function stripWhitespace (s)

{   return stripCharsInBag (s, whitespace)
}

//字符c是否在字符串s中
function charInString (c, s)
{   for (i = 0; i < s.length; i++)
    {   if (s.charAt(i) == c) return true;
    }
    return false
}

//去掉字符串前面的空字符
function stripInitialWhitespace (s)

{   var i = 0;

    while ((i < s.length) && charInString (s.charAt(i), whitespace))
       i++;

    return s.substring (i, s.length);
}
//字符是否为字母
function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

//字符是否为0-9
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

//字符是否为字母或数字
function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}
//字符是否为数字或"-"
function isTel(c)
{   return (((c >= "0") && (c <= "9"))|| (c=="-"))
}

//2.字符串是否只包含0到9的数字
function isInteger (s)

{   var i;

    if (isEmpty(s))
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);


    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}


//3.是否整数(允许带正负号)
function isSignedInteger (s)

{   if (isEmpty(s))
       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedInteger.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];

        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;
        return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}

//是否为大于零的整数（允许正负号）
function isPositiveInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isPositiveInteger.arguments.length > 1)
        secondArg = isPositiveInteger.arguments[1];

    return (isSignedInteger(s, secondArg)&& ( (isEmpty(s) && secondArg)  || (parseInt (s,10) > 0) ) );
}

//是否为大于等于零的整数（允许正负号）
function isNonnegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s,10) >= 0) ) );
}

//是否为小于零的整数（允许正负号）
function isNegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNegativeInteger.arguments.length > 1)
        secondArg = isNegativeInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s,10) < 0) ) );
}

//是否为小于等于零的整数（允许正负号）
function isNonpositiveInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonpositiveInteger.arguments.length > 1)
        secondArg = isNonpositiveInteger.arguments[1];

    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s,10) <= 0) ) );
}


//4.是否数字
function isFloat (s)
{   
    var i;
    var seenDecimalPoint = false;
    if (isEmpty(s))
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);
    if (s == ".") return false;
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);
        if ((c == ".") && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }
    return true;
}

//是否数字（允许正负号）
function isSignedFloat (s)

{   if (isEmpty(s))
       if (isSignedFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedFloat.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedFloat.arguments.length > 1)
            secondArg = isSignedFloat.arguments[1];

        // skip leading + or -
        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;
        return (isFloat(s.substring(startPos, s.length), secondArg))
    }
}

//5.小数（m,n），忽略小数首尾的0，不允许正负号
function isDecimal(s,m,n){
	if(!isFloat(s)) return false;
	if(String(parseInt(s,10)).length > m-n) return false;
	var ss = String(parseFloat(s));
	if(ss.indexOf(".")>=0 && ss.substring( ss.indexOf(".") + 1, ss.length).length > n ) return false;
	return true;
}


//6.字符串是否全是字母
function isAlphabetic (s)
{   var i;

    if (isEmpty(s))
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is letter.
        var c = s.charAt(i);
        if (!isLetter(c))
        return false;
    }
    // All characters are letters.
    return true;
}
//7.字符串是否全是字母和数字
function isAlphanumeric (s)

{   var i;

    if (isEmpty(s))
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}


//8.日期，format 可设定为 "yyyy-MM-dd"（注意大小写），分隔符可变
function toValidateDate(str,format) {
	if(str.length != format.length) return false;

	var year = 2000;
	var month = 1;
	var day = 1;
	var hour = 0;
	var minute = 0;
	var second = 0;

	if(format.indexOf("yyyy") != -1) {
		if(isNaNEx(year = SearchEx(str,format,"yyyy"))) return false;
		format = format.replace(/yyyy/,year);
	}

	if(format.indexOf("MM") != -1) {
		if(isNaNEx(month = SearchEx(str,format,"MM"))) return false;
		format = format.replace(/MM/,month);
	}

	if(format.indexOf("dd") != -1) {
		if(isNaNEx(day = SearchEx(str,format,"dd"))) return false;
		format = format.replace(/dd/,day);
	}

	if(format.indexOf("HH") != -1) {
		if(isNaNEx(hour = SearchEx(str,format,"HH"))) return false;
		if(parseInt(hour,10) < 0 || parseInt(hour,10) > 23) return false;
		format = format.replace(/HH/,hour);
	}

	if(format.indexOf("mm") != -1) {
		if(isNaNEx(minute = SearchEx(str,format,"mm"))) return false;
		if(parseInt(minute,10) < 0 || parseInt(minute,10) > 59) return false;
		format = format.replace(/mm/,minute);
	}

	if(format.indexOf("ss") != -1) {
		if(isNaNEx(second = SearchEx(str,format,"ss"))) return false;
		if(parseInt(second,10) < 0 || parseInt(second,10) > 59) return false;
		format = format.replace(/ss/,second);
	}

	if(format != str) return false;

	return isValidDate(year,month,day);
}
//日期
function isNaNEx(str) {
	if(str == "") return true;
	if(isNaN(str)) return true;
	if(str.indexOf(".") != -1) return true;
	return false;
}
//日期
function SearchEx(source,pattern,str) {
	var index = pattern.indexOf(str);
	if(index == -1) return "error";
	return source.substring(index,index + str.length);
}
//日期
function isValidDate(year,month,day) {
	month = parseInt(month,10);
	day = parseInt(day,10);

	if(month < 1 || month > 12) return false;
	if(day < 1 || day > 31) return false;
	if((month == 4 || month == 6 || month == 9 || month == 11) && (day == 31)) return false;
	if (month == 2) {
		var leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day == 29 && !leap)) return false;
	}
	return true;
}


//9.居民身份证号码(15或18位，最后一位数字或字母，其余数字，生日合法)
function isResidentID (s){
	if(s.length!=15 && s.length!=18) return false;
	if(!isAlphanumeric(s)) return false;
	var birthday;
	if(s.length==18){
		if( !isInteger(s.substring(0,s.length-1)) ) return false;
		birthday = s.substring(6,14);
	}
	if(s.length==15){
		if( !isInteger(s) ) return false;
		birthday = "19"+s.substring(6,12);
	}
	if(!isValidDate(  birthday.substring(0,4), birthday.substring(4,6), birthday.substring(6,8)  )) return false;
	return true;
	
}

//字符串按格式重组(reformat("20021213","",4,"-",2,"-",2),会返回2002-12-13)
function reformat (s)

{   var arg;
    var sPos = 0;
    var resultString = "";

    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}

//10.电话号码( 数字和+,-,() )
function isPhoneNumber(s){
	if(stripCharsInBag(s,"0123456789-()+")!="") return false;
	return true;
}

//11.邮政编码
function isPostCode(s){
	return(isInteger(s) && s.length==6);
}

//是否只包含合法的email字符
function isvalidEmailChar (s)
{   var i;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) || (c=='@') || (c=='.') || (c=='_') || (c=='-') || (c=='+')) ) {
       	return false;
		}
    }

    return true;
}

//12.是否合法的email
function isEmail (s)
{   if (isEmpty(s))
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);

    if (isWhitespace(s)) return false;
    if (!isvalidEmailChar(s)) return false;

    atOffset = s.lastIndexOf('@');

    if ( atOffset < 1 )
        return false;
    else {
 	dotOffset = s.indexOf('.', atOffset);

      if ( dotOffset < atOffset + 2 ||
         dotOffset > s.length - 2 ) {
         return false;
      }
   }
   return true;
}



//13.一列checkbox中是否至少有一个checked，输入checkbox对象，输出 t or f
function isChecked(checkbox_name)
  {
      var items=checkbox_name.length;
      if(items>1){
         for(i=0;i<items;i++)
           {
           if(checkbox_name[i].checked==true) return true;
           }
         }       
      else 
         if(checkbox_name.checked==true) return true;      
      return false;
  }

//14.一列checkbox中是否只有一个checked，输入checkbox对象，输出 t or f  
function isCheckedOne(checkbox_name)
{
      var items=checkbox_name.length;
      var count=0;
      if(items>1){
         for(i=0;i<items;i++)
           {
           if(checkbox_name[i].checked==true) count++;
           }
         if(count==1) return true;
         else 
      	    return false;      	   
       }       
      else 
        {
         if(checkbox_name.checked==true) return true;
         else          
      	    return false;      	   
        }            
} 

//15.一列checkbox中是否全部checked，输入checkbox对象，输出 t or f
 function checkAll(checkbox_names,checkbox_select)
     {      
      var items=checkbox_names.length;
      if(items>1)
       {
        for(i=0;i<items;i++) checkbox_names[i].checked=checkbox_select.checked;      
       }
      else
       checkbox_names.checked=checkbox_select.checked;
     }   
 



//16.多个下拉框不能一样
function selectUnique(theForm)
{
  for (i=0; i<theForm.elements.length; i++) 
  {
    e = theForm.elements[i];
    if ( e.type=="select-one" && !e.isDisabled) 
    {
      for(j=0; j<theForm.elements.length; j++) 
      {
        e2 = theForm.elements[j];
        if ( e2.type=="select-one" && !e2.isDisabled)
        {
          if(e!=e2 && e.options[e.selectedIndex].value==e2.options[e2.selectedIndex].value)
          {
            e.focus();
            return false;
          }
        }
      }
    }
  }
  return true;
}

//////信用卡号码（注意，原程序为美国使用，未修改）

function isCreditCard(st) {
  // Encoding only works on cards with less than 19 digits
  if (st.length > 19)
    return (false);

  sum = 0; mul = 1; l = st.length;
  for (i = 0; i < l; i++) {
    digit = st.substring(l-i-1,l-i);
    tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10)
      sum += (tproduct % 10) + 1;
    else
      sum += tproduct;
    if (mul == 1)
      mul++;
    else
      mul--;
  }

  if ((sum % 10) == 0)
    return (true);
  else
    return (false);

}


function isVisa(cc)
{
  if (((cc.length == 16) || (cc.length == 13)) &&
      (cc.substring(0,1) == 4))
    return isCreditCard(cc);
  return false;
}


function isMasterCard(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 16) && (firstdig == 5) &&
      ((seconddig >= 1) && (seconddig <= 5)))
    return isCreditCard(cc);
  return false;

}

function isAmericanExpress(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 15) && (firstdig == 3) &&
      ((seconddig == 4) || (seconddig == 7)))
    return isCreditCard(cc);
  return false;

}

function isDinersClub(cc)
{
  firstdig = cc.substring(0,1);
  seconddig = cc.substring(1,2);
  if ((cc.length == 14) && (firstdig == 3) &&
      ((seconddig == 0) || (seconddig == 6) || (seconddig == 8)))
    return isCreditCard(cc);
  return false;
}

function isCarteBlanche(cc)
{
  return isDinersClub(cc);
}


function isDiscover(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 16) && (first4digs == "6011"))
    return isCreditCard(cc);
  return false;

}


function isEnRoute(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 15) &&
      ((first4digs == "2014") ||
       (first4digs == "2149")))
    return isCreditCard(cc);
  return false;
}

function isJCB(cc)
{
  first4digs = cc.substring(0,4);
  if ((cc.length == 16) &&
      ((first4digs == "3088") ||
       (first4digs == "3096") ||
       (first4digs == "3112") ||
       (first4digs == "3158") ||
       (first4digs == "3337") ||
       (first4digs == "3528")))
    return isCreditCard(cc);
  return false;

}

function isAnyCard(cc)
{
  if (!isCreditCard(cc))
    return false;
  if (!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc) && !isDinersClub(cc) &&
      !isDiscover(cc) && !isEnRoute(cc) && !isJCB(cc)) {
    return false;
  }
  return true;

}

function isCardMatch (cardType, cardNumber)
{

	cardType = cardType.toUpperCase();
	var doesMatch = true;

	if ((cardType == "VISA") && (!isVisa(cardNumber)))
		doesMatch = false;
	if ((cardType == "MASTERCARD") && (!isMasterCard(cardNumber)))
		doesMatch = false;
	if ( ( (cardType == "AMERICANEXPRESS") || (cardType == "AMEX") )
                && (!isAmericanExpress(cardNumber))) doesMatch = false;
	if ((cardType == "DISCOVER") && (!isDiscover(cardNumber)))
		doesMatch = false;
	if ((cardType == "JCB") && (!isJCB(cardNumber)))
		doesMatch = false;
	if ((cardType == "DINERS") && (!isDinersClub(cardNumber)))
		doesMatch = false;
	if ((cardType == "CARTEBLANCHE") && (!isCarteBlanche(cardNumber)))
		doesMatch = false;
	if ((cardType == "ENROUTE") && (!isEnRoute(cardNumber)))
		doesMatch = false;
	return doesMatch;

}

function IsCC (st) {
    return isCreditCard(st);
}

function IsVisa (cc)  {
  return isVisa(cc);
}

function IsVISA (cc)  {
  return isVisa(cc);
}

function IsMasterCard (cc)  {
  return isMasterCard(cc);
}

function IsMastercard (cc)  {
  return isMasterCard(cc);
}

function IsMC (cc)  {
  return isMasterCard(cc);
}

function IsAmericanExpress (cc)  {
  return isAmericanExpress(cc);
}

function IsAmEx (cc)  {
  return isAmericanExpress(cc);
}

function IsDinersClub (cc)  {
  return isDinersClub(cc);
}

function IsDC (cc)  {
  return isDinersClub(cc);
}

function IsDiners (cc)  {
  return isDinersClub(cc);
}

function IsCarteBlanche (cc)  {
  return isCarteBlanche(cc);
}

function IsCB (cc)  {
  return isCarteBlanche(cc);
}

function IsDiscover (cc)  {
  return isDiscover(cc);
}

function IsEnRoute (cc)  {
  return isEnRoute(cc);
}

function IsenRoute (cc)  {
  return isEnRoute(cc);
}

function IsJCB (cc)  {
  return isJCB(cc);
}

function IsAnyCard(cc)  {
  return isAnyCard(cc);
}

function IsCardMatch (cardType, cardNumber)  {
  return isCardMatch (cardType, cardNumber);
}

//阿拉伯数字与中文转换
var UPPER_NUMBER= "壹贰叁肆伍陆柒捌玖零";
var UPPER_BIT = "分角圆拾佰仟万拾佰仟亿拾佰仟";

/**
 * Convert lower money to upper money(chinese)
 * Note: Max money = 1232131.123
 * @param lowerMoney
 * @return upper money
 */
function clipMoney(lowerMoney){
	var integer,deci;

    if (isFloat(lowerMoney) == false){
    	return "false";
    }

	if (lowerMoney.indexOf(".") == -1){
		integer = lowerMoney+"00";
		integer = convertLowerMoney(integer);
		if (integer == "false")
			return "false";
		if (integer.indexOf("圆") == -1)
			return integer + "圆整";
		else
			return integer;
	}else{
		integer = lowerMoney.substring(0,lowerMoney.indexOf("."))+"00";
		if (integer == "false")
			return "false";
		integer = convertLowerMoney(integer);
		if (integer.indexOf("圆") == -1)
			integer = integer + "圆零";
		deci = "0."+lowerMoney.substring(lowerMoney.indexOf(".")+1,lowerMoney.length);
		if (deci == "false")
			return "false";
		deci = convertLowerMoney(deci);
		if (deci.indexOf("分") == -1)
			return integer+deci+"整";
		return integer+deci;
	}		
}
 
function convertLowerMoney(lowerMoney,dotlength) {
    var upperMoney = "";
    
    if (lowerMoney.indexOf(".") != -1){
		lowerMoney = lowerMoney.substring(0,lowerMoney.indexOf(".")+3);
		var str = lowerMoney * 100+"";
		if (str.indexOf('.') != -1)
			str = str.substring(0,str.indexOf('.'));
	}else{
		var str = lowerMoney;
	}
    var len = str.length;

    // Check lowerMoney
    // max money: 999999999999.99
    if (len > 14) return "false";
    var j,k;
    for (var i = 1; i <= len; i++) {

        j = len - i;

        //zjzh=mid(dxnr1,2*j -1,2)
        //生成大写位，即 "仟佰拾...."
        var bit = UPPER_BIT.substring(j,j+1);
        k = parseInt(str.substring(i-1,i));
        if (k == 0)
            k = 10;
        //生成大写汉字
        var number = UPPER_NUMBER.substring(k-1,k);
        if ("零" == (number)) {
            if  ( bit == "亿" || bit == "万" )
                upperMoney = upperMoney + bit;
            else
                upperMoney = upperMoney + number;
        } else {
            upperMoney = upperMoney + number + bit;
        }
    }
    upperMoney = removeZero(upperMoney);
    upperMoney = dealYiWan(upperMoney);
    upperMoney = removeZero(upperMoney);
    if (upperMoney.substring(upperMoney.length-1,upperMoney.length)=="零")
        upperMoney = upperMoney.substring(0, upperMoney.length-1);
    return upperMoney;
}
/*

    
		upperMoney = upperMoney.substring(0,upperMoney.length-1);
*/
function removeZero(str) {
	var sb="";
    var old = "a";
    for (var i = 0; i < str.length; i++) {
        if ((str.charAt(i) == old) && (old=='零')) {
            //do nothing
        } else {
            old = str.charAt(i);
            sb = sb + old;
        }
    }
    //alert(sb);
    return sb;
}

function dealYiWan(str) {
	var sb ="";
    var old = 'a';
    for (var i = 0; i < str.length; i++) {
        if ((str.charAt(i) == '亿') && (old=='零')) {
            sb.deleteCharAt(sb.length-1);
            sb = sb + str.charAt(i)+"零";
        } else if ((str.charAt(i) == '万') && (old=='零')) {
        	sb = sb.substring(0,sb.length-1);
        	if (sb.charAt(sb.length-1) == "亿")
        		sb = sb + '零';
        	else
        		sb = sb + str.charAt(i)+'零';
        } else {
            old = str.charAt(i);
            sb = sb + old;
        }
    }
	//alert(sb);
    return sb;
}

//日期转中文
function changeDate(date,s){
	var formatType = "YYYY-MM-DD";
	var type,j,month,day,year;
	s = s+"";
	if (s != "undefined"){
		formatType = s;
	}
	if (formatType.length != date.length)
		return false;
	type = formatType.charAt(0);
	c = -1;
	for (var i = 0; i<formatType.length;i++){
		c = c + 1;
		if (type != formatType.charAt(i)){
			if (type == "M"){
				month = date.substring(i-c,i);
				c=0;
			}
			else if (type == "D"){
				day = date.substring(i-c,i);
				c=0;
			}
			else if (type == "Y"){
				year = date.substring(i-c,i);
				c=0;
			}else
				c=0;
		}else{
			if (i == formatType.length-1){
				if (type == "M")
					month = date.substring(i-c,i+1);
				if (type == "D")
					day = date.substring(i-c,i+1);
				if (type == "Y")
					year = date.substring(i-c,i+1);			
			}			
		}
		type = formatType.charAt(i);
	}
	year = figureChange(year) 
	month = figureChange(month)
	day = figureChange(day)
	return year+"年"+month+"月"+day+"日";
}

function figureChange(fig){
	var UPPER_NUMBER= "○一二三四五六七八九";
	var sb="";
	var re="";
	if (fig.length == 2){
		re = fig.charAt(0);
		if (re == "0")
			sb = ""
		else if (re == "1")
			sb = "十"
		else
			sb = UPPER_NUMBER.charAt(re)+"十";
		re = fig.charAt(1);
		if (re != "0")
			sb = sb + UPPER_NUMBER.charAt(re);
		
	}else{
		for (var i=0; i<fig.length; i++){
			sb = sb + UPPER_NUMBER.charAt(fig.charAt(i));
		}
	}
	return sb;
}

