/**
 * 半角文字のみで入力されているかチェックする。
 *
 * @param string text チェックしたい文字列
 * @return bool チェック結果
 */
function checkHalfString(text)
{
	var ch;
	var len = text.length;
	for (var i = 0; i < len; i++)
	{
		ch = text.charCodeAt(i);
        if ( ch < 0 || ch > 255)
			return false;
    }

    return true;
}

/**
 * 全角文字のみで入力されているかチェックする。
 *
 * @param string text チェックしたい文字列
 * @return bool チェック結果
 */
function checkFullString(text)
{
	var ch;
	var len = text.length;
	for (var i = 0; i < len; i++)
	{
		ch = text.charCodeAt(i);
        if ( ch > 0 && ch < 256){
			if (ch==10)
			{
				continue;
			}
			return false;
		}
    }

	return true;
}

/**
 * 全角「カタカナ」文字のみで入力されているかチェックする。
 *
 * @param string text チェックしたい文字列
 * @return bool チェック結果
 */
function checkKataganaString(text)
{
	var st = "ア";
	var ed = "ン";
	var ch;

	for (var i = 0; i < text.length; i++) {
		ch = text.charAt(i);
		n = escape(ch);
		if (n.length < 4)
			return false;
		if (ch < st || ch > ed){
			if(ch=="ー") return true;
			else return false;
		}
	}

	return true;
}

/**
 * 全角「ひらがな」文字のみで入力されているかチェックする。
 *
 * @param string text チェックしたい文字列
 * @return bool チェック結果
 */
function checkHiraganaString(text)
{
	var st = "あ";
	var ed = "ん";
	var ch;

	for (var i = 0; i < text.length; i++) {
		ch = text.charAt(i);
		n = escape(ch);
		alert(ch);
		if (n.length < 4)
			return false;
		if (ch < st || ch > ed){
			if(ch=="ー") return true;
			else return false;
		}
	}

	return true;
}

/**
 * 入力された文字列のバイト数が長さを超過しないのかチェックする。
 *
 * @param string str 長さを制限したい文字列
 * @param integer len 制限の長さ値
 * @return bool チェック結果
 */ 
function checkLengthInBytes( str, len )
{
    var fullChars = 0;
    var halfChars = 0;

	for (var i = 0; i < str.length; i++)
	{
		ch = str.charCodeAt(i);
        if ( ch < 0 || ch > 255)
			fullChars ++;
		else
		    halfChars ++;
		
		if( fullChars * CHARBYTERATE + halfChars > len )
		    return false;
    }
    
    return true;
}

function checkLengthInChar( str, len )
{
    var fullChars = 0;
    var halfChars = 0;

	for (var i = 0; i < str.length; i++)
	{
		ch = str.charCodeAt(i);
        if ( ch < 0 || ch > 255)
			fullChars ++;
		else
		    halfChars ++;
		
		if( fullChars * 2 + halfChars > len )
		    return false;
    }
    
    return true;
}

/**
 * 入力された文字列の毎の文字が指定された文字セットに含まれているかチェックする。
 *
 * @param string text チェックしたい文字列
 * @param string char_set 文字セット
 * @return bool チェック結果
 */
function checkTextInChars(text, char_set)
{
	var len = text.length;
	var chr = ' ';

	for (var i = 0; i < len; i++)
	{
		chr=text.charAt(i);

		if(char_set.indexOf(chr) ==-1)
			return false;
	}

	return true;
}

/**
 * 全角文字のチェックを厳密な条件で行う。
 *
 * @param string text チェックしたい文字列
 * @param bool kana カタガナ文字で入力可能
 * @param bool hira 「ひらがな」文字で入力可能
 * @param bool kanji 漢字で入力可能
 * @param bool other その他の全角文字で入力可能
 * @return bool チェック結果
 */
function checkFullString2( text, kana, hira, kanji, other )
{
    var len = text.length;
    var chr = "";
	var ch_code = 0;
    var isKana = false;
    var isHira = false;
    var isKanji = false;
    var isOther = false;
    
    for( var i=0; i < len; i++ )
    {
        chr = text.charAt(i);
		ch_code = text.charCodeAt(i);
        
		if ( ch_code > 0 && ch_code < 256 && ch_code!=10)
			return false;

        isKana  = checkKataganaString( chr );
        isHira  = checkHiraganaString( chr );
        isKanji = checkTextInChars( chr, KANJI );
        isOther = ( isKana == false ) && ( isHira == false ) && ( isKanji == false );
        
        if( ( kana == isKana ) && ( hira == isHira ) && ( kanji == isKanji ) && ( other == isOther ) == false )
        {
            return false;
        }
    }
    
    return true;
}

/**
 * 漢字のチェックを厳密な条件で行う。
 *
 * @param string text チェックしたい文字列
 * @return bool チェック結果
 */
function checkFullString3( text )
{
    var len = text.length;
    var chr = "";
	var ch_code = 0,isKanji=false;
    
    for( var i=0; i < len; i++ )
    {
        chr = text.charAt(i);
        isKanji = checkTextInChars( chr, KANJI );
		if ( isKanji == true)
			return true;
		
    }
    
    return isKanji;
}

/**
 * 漢字のチェックを厳密な条件で行う。
 *
 * @param string text チェックしたい文字列
 * @return bool チェック結果
 */
function checkFullString4( text )
{
   var len = text.length;
    var chr = "";
	var ch_code = 0,isKanji=true;
    
    for( var i=0; i < len; i++ )
    {
        chr = text.charAt(i);
        isKanji = checkTextInChars( chr, KANJI );
		if ( isKanji == false)
			return false;		
    }
    
    return isKanji;
}

/**
 * ラジオグループのラジオボタンが選択されているかをチェックする。
 *
 * @param string obj_id ラジオボタンのID
 * @param integer count ラジオボタンの数
 *
 * @return チェック結果
 */
function isRadioSelected( obj_id, count )
{
    var i = 0;
    for( i = 0; i < count; i++ )
    {
        if( document.getElementById( obj_id + i ).checked )
            return true;
    }
    
    return false;
}

/**
 * アップロードしたいファイルの拡張子をチェックする。
 *
 * @param string pathname ファイルのパス（拡張子を含む）
 * @param string ext 許される拡張子 （例：jpg|gif|png ）
 * @return チェック結果
 */
 
function checkFileExtention( pathname, ext )
{
    if( pathname == "" )
        return true;
        
    if( ext == "" )
        return true;
        
    pathname = pathname.toLowerCase();
    ext = ext.toLowerCase();
    
    var tmpArray = pathname.split( "[\\|/]" );
    var extArray = ext.split( "|" );
    
    var fileName = tmpArray[tmpArray.length-1];
    
    if( fileName == "" )
        return false;

    tmpArray = fileName.split( "." );
    
    for( var i=0; i < extArray.length; i ++ )
    {
        if( tmpArray[tmpArray.length-1] == extArray[i] )
            return true;
    }

    return false;
}

/**
 * メールアドレスの文字列が正確に入力されているかをチェックする。
 *
 * @param string address メールアドレス
 * @return bool チェック結果
 */
function checkMailAddress( address )
{
    var regexp = /^([\w-\.]+)@([\w-\.]+)\.([\w-\.]+)$/;//((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var result = regexp.test( address );

    return result;    
}

/**
 * HTTPアドレスが正確に入力されているかをチェックする。
 *
 * @param string address HTTPアドレス
 * @return bool チェック結果
 */
function checkHrefAddress( address )
{
    var regexp = /(http|https):\/\/([^\"\'/:]+)(:\d*)?([^\"<>|*#:; ]*)$/;
    var result = regexp.test( address );
    
    return result;    
}

/**
 * 電話番号の文字列が正確に入力されているかをチェックする。
 *
 * @param string tel 電話番号
 * @return bool チェック結果
 */
function checkTel( tel )
{
    var regexp = /^[0-9]{2,5}\-?[0-9]{1,4}\-?[0-9]{4}$/
    var result = regexp.test( tel );

    return result;    
}

function checkReg( text,reg )
{
    var result = text.match( reg );
	if(result){
		return true;
	}
    return false;  
}


