////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//      裏2ch用のチェックスクリプト
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//概要：
//		トップページ(下部)の画像の切り替え
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//var normal = "url(../object/ura2ch_youkoso.gif)";
//var hover = "url(../object/ura2ch_tubo.gif)";


/// <summary>
/// 対象オブジェクトの画像を切り替える。
/// </summary>
/// <param name="obj">対象オブジェクト(div)</param>
/// <param name="img_name">切り替え対象の画像名</param>
/// <returns>
/// 無し
/// </returns>
function mouseOverOutEvent(obj,img_name) {
    //パスの作成
    var setFilePath = "url(../object/" + img_name + ")";
    obj.style.backgroundImage = setFilePath;
}

    
/// <summary>
/// 対象オブジェクトの画像を切り替える。
/// ※各画面から見た相対パスで直接指定する
/// </summary>
/// <param name="obj">対象オブジェクト(div)</param>
/// <param name="img_name">切り替え対象の画像までの相対パス</param>
/// <returns>
/// 無し
/// </returns>
function mouseOverOutEventForScreen(obj,img_name) {
    //パスの作成
    var setFilePath = "url(" + img_name + ")";
    obj.style.backgroundImage = setFilePath;
}




/// <summary>
/// 指定されたIDを持つ要素の表示・非表示を切り替える。
/// </summary>
/// <param name="CheckID">判定対象のID(URL)</param>
/// <param name="dispFlag">
/// 0:非表示
/// 1:　表示
/// </param>
/// <returns>
/// 0:画像へのリンク
/// 1:通常ページへのリンク
/// </returns>
function ChangeDisplayImageStyle(targetID,dispFlag) {
    var status = document.getElementById(targetID).style.display;
    
    //if (status == "" || status == "block")
    if (dispFlag == "1")
    {
        //(対象オブジェクトを表示)
        document.getElementById(targetID).style.display = "block";
    }
    else
    {
        //(対象オブジェクトを非表示)
        document.getElementById(targetID).style.display = "none";
    }  
}


/// <summary>
/// ブラウザを判定する。
/// </summary>
/// <param name="">なし</param>
/// <returns>
/// browserName:ブラウザ名
/// </returns>
function GetBrowserName() {
    //ブラウザ名
    var browserName = "";
    if (navigator.userAgent.indexOf("Opera") != -1) {
        browserName = "Opera";
    }
    else if (navigator.userAgent.indexOf("MSIE") != -1) {
        browserName = "MSIE";
    }
    else if (navigator.userAgent.indexOf("Firefox") != -1) {
        browserName = "Firefox";
    }
    else if (Netscape.userAgent.indexOf("Netscape") != -1) {
        browserName = "Opera";

    }
    else if (navigator.userAgent.indexOf("Safari") != -1) {
        browserName = "Safari";

    }
    else {
        browserName = "other";
    }
    return browserName;
}

/**************************************************************** 
* 全角/半角文字判定 
* 
* 引数 ： str チェックする文字列 
* flg 0:半角文字、1:全角文字 
* 戻り値： true:含まれている、false:含まれていない 
* 
****************************************************************/ 
function CheckLength(str,flg)
{ 
	for (var i = 0; i < str.length; i++)
	{ 
		var c = str.charCodeAt(i); 
		// Shift_JIS: 0x0 〜 0x80, 0xa0 , 0xa1 〜 0xdf , 0xfd 〜 0xff 
		// Unicode : 0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3 
		if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) ||
		 (c >= 0xff61 && c < 0xffa0) ||(c >= 0xf8f1 && c < 0xf8f4))
		{ 
			if(!flg) return true;
		}
		else
		{
			if(flg) return true;
		}
	} 
	return false; 
}

/**************************************************************** 
* バイト数を数える 
* 
* 引数 ： str 文字列 
* 戻り値： バイト数 
* 
****************************************************************/ 
function CountLength(str)
{
    var r = 0; 
    for (var i = 0; i < str.length; i++)
    {
        var c = str.charCodeAt(i); 
        // Shift_JIS: 0x0 〜 0x80, 0xa0 , 0xa1 〜 0xdf , 0xfd 〜 0xff 
        // Unicode : 0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3 
        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4))
        { 
            r += 1; 
        }
        else
        { 
            r += 2; 
        } 
    } 
    return r; 
} 



/**************************************************************** 
* 不正文字を削除する。
* '%
* 引数 ： str チェックする文字列 
* flg 0:半角文字、1:全角文字 
* 戻り値： true:含まれている、false:含まれていない 
* 
****************************************************************/ 
function DeleteNgValue(strChange)
{
	var strBack = strChange;
	var strWork = "";
	strWork = strChange;
	
	//【'】の排除
	strWork = strWork.replace("'", "");
	
	//【_】の排除
	//strWork = strWork.replace("_", "");

	//【%】の排除
	strWork = strWork.replace("%", "");

	//alert("置換前：" + strBack + "\r\n" +
	//	"置換後：" + strWork);

	//Trim処理(前後のスペースを削除する。）
	strWork = Trim(strWork);	
	

	return strWork;
}

function Trim(s)
{
    //文字列の左側のTrim、文字列の右側のTrim
	return s.replace(/^[ 　]+/,"").replace(/[ 　]+$/,"");
}


function TestHello()
{
    alert("呼ばれた");
}




//有効期限日数を入れる。
var limit = 100; 
exp = new Date();

//有効日数を設定する。
exp.setTime(exp.getTime() + 1000 * 60 * 60 * 24 * limit);

/**************************************************************** 
* cookieから値を取得する。
* にセットする。
* 引数@ ： name        Cookieの名前
* 戻り値：  取得したcookieの値
* 
****************************************************************/
function GetCookie(name)
{
    var cookie = document.cookie;

    if(cookie && cookie.length > 0)
    {
        var offset = cookie.indexOf(name + '=');
        var end;
        if(offset != -1)
        {
            offset += name.length + 1;
            end     = cookie.indexOf(';',offset);
            if(end == -1)
            {
                end = cookie.length;
            }
            return unescape(cookie.substring(offset,end));
        }
    }
    return "";
}

/**************************************************************** 
* cookieに値をセットする。 
* 
* 引数@ ： name        Cookieの名前
* 引数A ： value       セットする値
* 引数B ： expire      有効期限
* 引数C ： path        cookieのパス
* 戻り値：  無し
* 
****************************************************************/ 
function SetCookie(name, value, expire, path)
{
    var cookie = name + '=' + escape(value);
    if(expire)
    {
        cookie += '; expires=' + expire.toGMTString();
    }
    //サイト内でクッキーを有効にする場合には「/」を指定する必要がある。
    //※但し、なぜかlocalhostでは確認が出来ない。
    if(path)
    {
        cookie += '; path=' + path;
    }
    document.cookie = cookie;
}


/**************************************************************** 
* 取得したcookieの値を「名前」欄に設定する。
* 引数@ ： 無し
* 戻り値：  無し
* 
****************************************************************/
function SetNameItemFromCookie()
{
    var cookie_name = GetCookie("Ura2chName");   

    if( cookie_name != "")
    {
        //cookieから値が取得出来たら名前欄に自動で設定する。
        var element=document.getElementById("id_name_ura2ch");   
        element.value = cookie_name;
    }
    
}

/**************************************************************** 
* 「書き込む」ボタンが押されたタイミングで
* 名前項目に入力された値を取得し、cookieに格納する。
* 戻り値：  常に true;
****************************************************************/
function WriteDownToCookie()
{
    var element = document.getElementById("id_name_ura2ch");

    //名前欄に1文字以上入力されている場合にはcookieに値を設定する。    
    if ( element.value.length > 0 )
    {
        //cookieに値を設定する。
        SetCookie("Ura2chName",element.value,exp,"");
    }
}




/// <summary>
/// 除外リストを生成する。
/// </summary>
/// <param name="obj">チェックされたチェックボックス</param>
/// <returns>
/// 無し
/// </returns>
function CreateExcludeList(obj)
{

	//選択された除外リストの値を取得
	var exclueValue = obj.value;
	
	//hidden項目に設定する値
	var hiddenExclude = "";

    var CheckCount = 0;
    var group = document.getElementById('id_Search').getElementsByTagName('input');

    for (var i = 0; i < group.length; i++)
    {
        if (group[i].type != 'checkbox')
        {
            continue;
        }
        else
        {
			//チェックが外れている場合には、除外リストに追加
            if(group[i].checked == false)
            {
				hiddenExclude += group[i].value + ",";
            }
        }
    }
	//末尾の「,」を削除
	hiddenExclude = hiddenExclude.substr(0, hiddenExclude.length - 1);
	
	//作成した除外リストをhiddenに設定
	document.getElementById('id_except_list').value = hiddenExclude 

	//作成した除外リストをcookieに設定
    SetCookie("Ura2ch_ExcludeList",hiddenExclude ,exp,"/");
	
}



/// <summary>
/// Cookieより除外リストを復元する。
/// </summary>
/// <param name=""></param>
/// <returns>
/// 無し
/// </returns>
function RestoreSearchPlace()
{

	//クッキーの値を取得
    var cookieExclude = GetCookie("Ura2ch_ExcludeList");

	//除外リストを配列に設定
	var ary = cookieExclude.split(",");
			
	if(cookieExclude != "")
	{
		//クッキーに値が設定されている場合	
		
		var CheckCount = 0;
		var group = document.getElementById('id_Search').getElementsByTagName('input');
		for (var i = 0; i < group.length; i++)
		{
			if (group[i].type != 'checkbox')
			{
				continue;
			}
			else
			{
				//除外リストと値が一致している場合にはチェックを外す
				for( var j = 0 ; j < ary.length ; j++)
				{
					//除外リストの場合
					if (group[i].value == String(ary[j]))
					{
						group[i].checked = false;
					}
				}
			}
		}	
	}
}


/// <summary>
/// バイト数を取得する。
/// </summary>
/// <param name="str">バイト数の取得対象となる文字列</param>
/// <returns>
/// 無し
/// </returns>
function getByte(str)
{
	count = 0;
	for (i=0; i<str.length; i++)
	{
		n = escape(str.charAt(i));
		if (n.length < 4) count++;
		else count += 2;
	}
	return count;
}




