//--------------------------------------
//  初期化処理
//--------------------------------------
function Main_Initialize (){
    
    //初期ウインドウサイズの取得
    Main_Resize();
    
    //トップ右上の表示
    var _setLastUpDate = '';
    _setLastUpDate += 'Last Up Date ';
    _setLastUpDate += C_LastUpDateTime;
    _setLastUpDate += '<BR>　<BR>';
    _setLastUpDate += 'Sorry, this page is JAPANESE only.';
    _setLastUpDate += '<BR>　';
    
    Main_SetH('D_LastUpdate',_setLastUpDate);
    
    //Google +1
    //var _GoogleSetTime = setTimeout('gapi.plusone.go();',0);
    
    //ロゴのイベント追加
    var _setEventAct = '';
    _setEventAct = 'Act_ChangeMenu(C_TabNo_Home,C_PageNo_Home);';
    Main_SetE('D_toplogo','OnClick',_setEventAct);
    
    _setEventAct = 'Main_SetS(\'D_toplogo\',\'cursor\',\'pointer\'); Act_OverMenu(C_TabNo_Home,0);';
    Main_SetE('D_toplogo','OnMouseOver',_setEventAct);
    
    _setEventAct = 'Main_SetS(\'D_toplogo\',\'cursor\',\'auto\');';
    Main_SetE('D_toplogo','OnMouseOut',_setEventAct);
    
    
    _setEventAct = 'Act_OverMenu(C_TabNo_Home,0);';
    Main_SetE('D_LastUpdate','OnMouseOver',_setEventAct);
    
    Main_SetE('D_Counter','OnMouseOver',_setEventAct);
    
    Main_SetE('D_Counter_br','OnMouseOver',_setEventAct);
    
    
    //メインページのイベント追加
    //_setEventAct = 'Act_OverMenu(C_TabNo_Home,0);';
    Main_SetE('D_mainPagespace','OnMouseOver',_setEventAct);
    
    //_setEventAct = 'Act_OverMenu(C_TabNo_Home,0);';
    Main_SetE('D_mainPage','OnMouseOver',_setEventAct);
    
    
    //各フレームの設定
    document.getElementById('cgiflame').src = '';
    
    var _iframe = document.getElementById('savepage').contentWindow.document;
    _iframe.title = 'スーパーノービス情報サイト らぶスパノヴィ';
    
    
    //フレームページのイベント追加
    //_setEventAct = 'G_NewLoad=1; Main_LH();';
    _setEventAct = 'Main_LH();';
    Main_SetE('savepage','OnLoad',_setEventAct);
    
    //ベースページの読み込み
    Page_Base();
    
    //初期ページの読み込み
    Act_ChangeMenu(C_TabNo_Home,C_PageNo_Home);
    
    //ハッシュの読み込み
    Page_Hash();
}


//------------------------------------------------------------
// ページのリサイズ
//------------------------------------------------------------
function Main_Resize(){
    var _setSizeWidth = '';
    var _setBodyWidth = '';
    
    var _setSizeInWidth = '';
    
    // BODYのサイズを取得
    if(C_isMSIE){
        _setBodyWidth  = document.documentElement.offsetWidth;
        //_setBodyHeight = document.documentElement.offsetHeight;
    }else{
        _setBodyWidth  = window.innerWidth;
        //_setBodyHeight = window.innerHeight;
    }
    
    // 画面サイズ最低ラインに調整
    if(_setBodyWidth  < C_MinBodyWidth){
        _setBodyWidth  = C_MinBodyWidth;
        _setSizeWidth += _setBodyWidth;
        _setSizeWidth += 'px';
        var _InSize = C_MinBodyWidth - 320;
        _setSizeInWidth += _InSize;
        _setSizeInWidth += 'px';
    }else{
        _setSizeWidth += '100%';
        _setSizeInWidth += '100%';
    }
    
    //if(_setBodyHeight < C_MinBodyHeight){
    //    _setBodyHeight = C_MinBodyHeight;
    //}
    
    
    // ページ内のサイズをBODYのサイズに合わせる
    Main_SetS('D_DispPage','width',_setSizeWidth);
    G_bodyWidth = document.getElementById('D_DispPage').offsetWidth;
    
    if(document.getElementById('D_Page_Home')){
        Main_SetS('D_Page_Home','width',_setSizeInWidth);
        Main_SetS('D_Page_Basic','width',_setSizeInWidth);
        Main_SetS('D_Page_Skill','width',_setSizeInWidth);
        Main_SetS('D_Page_Item','width',_setSizeInWidth);
        Main_SetS('D_Page_Map','width',_setSizeInWidth);
        Main_SetS('D_Page_Mob','width',_setSizeInWidth);
        Main_SetS('D_Page_Comic','width',_setSizeInWidth);
        Main_SetS('D_Page_Game','width',_setSizeInWidth);
        Main_SetS('D_Page_Contest','width',_setSizeInWidth);
        Main_SetS('D_Page_Bbs','width',_setSizeInWidth);
        Main_SetS('D_Page_Link','width',_setSizeInWidth);
        Main_SetS('D_Page_Support','width',_setSizeInWidth);
        Main_SetS('D_Page_Mypage','width',_setSizeInWidth);
        Main_SetS('D_Page_UpdAcc','width',_setSizeInWidth);
    }
    
    G_ResizePageFunction();
}


//------------------------------------------------------------
// IFRAMEでcgiを実行させる
//------------------------------------------------------------
function Main_SetCgi(_setCgi,_sendValue,_sendOption,_sendOption2){
    var _cgiForm = 'cgi/';
    _cgiForm += _setCgi;
    _cgiForm += '.cgi';
    
    var _masterDiv = document.getElementById('D_cgiflame');
    
    var _clocation = '';
    if(_sendValue){
        //_clocation = EscapeSJIS(_sendValue);
        _clocation = _sendValue;
        
        var _element_replyto = document.createElement('input');
        _element_replyto.type = 'hidden';
        _element_replyto.name = 'replyto';
        _element_replyto.value = _clocation;
        
        var _form = document.createElement('form');
        
        _form.target = 'cgiflame';
        //_form.target = '_blank';
        
        if(_setCgi == 'filemake'){
            var _element_filename = document.createElement('input');
            _element_filename.type = 'hidden';
            _element_filename.name = 'filename';
            _element_filename.value = _sendOption;
            _form.appendChild(_element_filename);
            var _element_filedata = document.createElement('input');
            _element_filedata.type = 'hidden';
            _element_filedata.name = 'filedata';
            _element_filedata.value = _sendOption2;
            _form.appendChild(_element_filedata);
        }else if(_setCgi == 'dirmake'){
            var _element_dirname = document.createElement('input');
            _element_dirname.type = 'hidden';
            _element_dirname.name = 'dirname';
            _element_dirname.value = _sendOption;
            _form.appendChild(_element_dirname);
            //var _element_dirpath = document.createElement('input');
            //_element_dirpath.type = 'hidden';
            //_element_dirpath.name = 'dirpath';
            //_element_dirpath.value = _sendOption2;
            //_form.appendChild(_element_dirpath);
        }else if(_setCgi == 'sendmail'){
            _masterDiv = document.getElementById('D_cgiflamemail');
            _form.target = 'cgiflamemail';
            
            _cgiForm = _cgiForm.replace('sendmail','kisomail3rd/sendmail');
            
            var _element_name = document.createElement('input');
            _element_name.type = 'hidden';
            _element_name.name = 'name';
            _element_name.value = _sendOption;
            _form.appendChild(_element_name);
            
            var _element_mail = document.createElement('input');
            _element_mail.type = 'hidden';
            _element_mail.name = 'mail';
            _element_mail.value = 'notmail@form.co.jp';
            _form.appendChild(_element_mail);
            
            _form.enctype = 'multipart/form-data';
        }
        
        _form.appendChild(_element_replyto);
        
        _form.method = 'POST';
        _form.action = _cgiForm;
        
        for (var i =_masterDiv.childNodes.length - 1; i >= 0; i--){
            _masterDiv.removeChild(_masterDiv.childNodes[i]);
        }
        _masterDiv.appendChild(_form);
        
        _form.submit();
    }else{
        
    }
}

//------------------------------------------------------------
// 外部JSONファイルの読み込み
//------------------------------------------------------------
function Main_GetJsonFile(_getFile){
    var _NwDt = new Date();
    var _DtSt = Str_DateToString(_NwDt);
    var _TiSt = Str_TimeToString(_NwDt);
    var _getJsonDatalist = new Array();
    
    //キャッシュをさせない
    var _FileUrl = '';
    _FileUrl += 'json/';
    _FileUrl += _getFile;
    _FileUrl += '?';
    _FileUrl += _DtSt;
    _FileUrl += _TiSt;
    
    //ファイルを読み込む
    var _fileObj = new JKL.ParseXML.JSON(_FileUrl);
    _getJsonDatalist = _fileObj.parse();
    
    return _getJsonDatalist;
}

//------------------------------------------------------------
// HTMLファイルの読み込み
//------------------------------------------------------------
function Main_GetHtmlFile(_setId,_getFile){
    var _NwDt = new Date();
    var _DtSt = Str_DateToString(_NwDt);
    var _TiSt = Str_TimeToString(_NwDt);
    
    //キャッシュをさせない
    var _FileUrl = '';
    _FileUrl += 'htmj/';
    _FileUrl += _getFile;
    _FileUrl += '?';
    _FileUrl += _DtSt;
    _FileUrl += _TiSt;
    
    var _fileObj = new JKL.ParseXML.Text(_FileUrl);
    var _fileDat = _fileObj.parse();
    Main_SetH(_setId,_fileDat);
}

//------------------------------------------------------------
// TEXTファイルの読み込み
//------------------------------------------------------------
function Main_GetTextFile(_getFile){
    var _NwDt = new Date();
    var _DtSt = Str_DateToString(_NwDt);
    var _TiSt = Str_TimeToString(_NwDt);
    var _getTextData = '';
    
    //キャッシュをさせない
    var _FileUrl = '';
    _FileUrl += 'txt/';
    _FileUrl += _getFile;
    _FileUrl += '?';
    _FileUrl += _DtSt;
    _FileUrl += _TiSt;
    
    //ファイルを読み込む
    var _fileObj = new JKL.ParseXML.Text(_FileUrl);
    
    try {
        _getTextData = _fileObj.parse();
    } catch(e) {
        _getTextData = 'Error';
    }
    
    if(_getTextData.indexOf("Not Found") > (-1)){
        _getTextData = 'Error';
    }
    
    if(_getTextData.indexOf("Error") > (-1)){
        _getTextData = 'Error';
    }
    
    return _getTextData;
}

//------------------------------------------------------------
// TEXTファイルの読み込み2
//------------------------------------------------------------
function Main_GetTextFile2(_getFile){
    var _NwDt = new Date();
    var _DtSt = Str_DateToString(_NwDt);
    var _TiSt = Str_TimeToString(_NwDt);
    var _getTextData = '';
    
    //キャッシュをさせない
    var _FileUrl = '';
    //_FileUrl += 'txt/';
    _FileUrl += _getFile;
    _FileUrl += '?';
    _FileUrl += _DtSt;
    _FileUrl += _TiSt;
    
    //ファイルを読み込む
    var _fileObj = new JKL.ParseXML.Text(_FileUrl);
    
    try {
        _getTextData = _fileObj.parse();
    } catch(e) {
        _getTextData = 'Error';
    }
    
    if(_getTextData.indexOf("Not Found") > (-1)){
        _getTextData = 'Error';
    }
    
    return _getTextData;
}

//------------------------------------------------------------
// XMLファイルの読み込み
//------------------------------------------------------------
function Main_GetXmlFile(_getFile){
    var _NwDt = new Date();
    var _DtSt = Str_DateToString(_NwDt);
    var _TiSt = Str_TimeToString(_NwDt);
    var _getXmlDataList = new Array();
    
    //キャッシュをさせない
    var _FileUrl = '';
    //_FileUrl += 'xml/';
    _FileUrl += _getFile;
    _FileUrl += '?';
    _FileUrl += _DtSt;
    _FileUrl += _TiSt;
    
    //ファイルを読み込む
    var _fileObj = new JKL.ParseXML(_FileUrl);
    
    try {
        _getXmlDataList = _fileObj.parse();
    } catch(e) {
        _getXmlDataList[0] = 'Error';
    }
    
    //if(_getTextData.indexOf("Not Found") > (-1)){
    //    _getXmlDataList[0] = 'Error';
    //}
    
    return _getXmlDataList;
}


//------------------------------------------------------------
// GetPosL
//------------------------------------------------------------
function Main_GetPosL(_getId){
    
    //Main_SetS(_getId,'display','block');
    
    var _ret = 0;
    var _obj = document.getElementById(_getId);
    
    if(C_isMSIE){
        while(_obj){
            _ret += _obj.offsetLeft;
            _obj = _obj.offsetParent;
        }
    }else{
        while(_obj.tagName != 'BODY'){
            if(_obj.tagName != 'TBODY'){
                _ret += _obj.offsetLeft;
            }
            _obj = _obj.parentNode;
        }
    }
    
    //Main_SetS(_getId,'display','none');
    
    return _ret;
}

//------------------------------------------------------------
// GetPosT
//------------------------------------------------------------
function Main_GetPosT(_getId){
    
    //Main_SetS(_getId,'display','block');
    
    var _ret = 0;
    var _obj = document.getElementById(_getId);
    
    if(C_isMSIE){
        while(_obj){
            _ret += _obj.offsetTop;
            _obj = _obj.offsetParent;
        }
    }else{
        while(_obj.tagName != 'BODY'){
            if(_obj.tagName != 'TBODY'){
                _ret += _obj.offsetTop;
            }
            _obj = _obj.parentNode;
        }
        _ret = _ret / 2;
    }
    
    //Main_SetS(_getId,'display','none');
    
    return _ret;
}

//------------------------------------------------------------
// SetValue
//------------------------------------------------------------
function Main_SetV(_setId,_setStr){
    document.getElementById(_setId).value=_setStr;
}

//------------------------------------------------------------
// GetValue
//------------------------------------------------------------
function Main_GetV(_getId){
    var _retStr=document.getElementById(_getId).value;
    return _retStr;
}

//------------------------------------------------------------
// SetHTML
//------------------------------------------------------------
function Main_SetH(_setId,_setStr){
    document.getElementById(_setId).innerHTML=_setStr;
}

//------------------------------------------------------------
// GetHTML
//------------------------------------------------------------
function Main_GetH(_getId){
    var _retStr=document.getElementById(_getId).innerHTML;
    return _retStr;
}

//------------------------------------------------------------
// CopyHTML
//------------------------------------------------------------
function Main_CopyH(_setId,_getId){
    Main_SetH(_setId,Main_GetH(_getId));
}

//------------------------------------------------------------
// GetSelection
//------------------------------------------------------------
function Main_GetSel(_getId){
    var _retVal = '';
    var _retObj=document.getElementById(_getId);
    var _selectedIndex = _retObj.selectedIndex;
    if (_selectedIndex > (-1)){
        _retVal = _retObj.options[_selectedIndex].value;
    }
    return _retVal;
}

//------------------------------------------------------------
// SetSelection
//------------------------------------------------------------
function Main_SetSel(_getId,_setCode){
    var _setObj=document.getElementById(_getId);
    var _selectedIndex = -1;
    var _ilen = _setObj.length;
    for(var _i=0; _i<_ilen; _i++){
        if(_setObj.options[_i].value == _setCode){
            _selectedIndex = _i;
            break;
        }
    }
    _setObj.selectedIndex = _selectedIndex;
}

//------------------------------------------------------------
// SetCheack
//------------------------------------------------------------
function Main_SetChk(_getId){
    var _retVal = 0;
    var _retObj=document.getElementById(_getId);
    document.getElementById(_getId).checked = !_retObj.checked;
}

//------------------------------------------------------------
// GetCheack
//------------------------------------------------------------
function Main_GetChk(_getId){
    var _retVal = 0;
    var _retObj=document.getElementById(_getId);
    if(!_retObj.checked){
        _retVal = 1;
    }
    return !_retVal;
}

//------------------------------------------------------------
// SetEvent
//------------------------------------------------------------
function Main_SetE(_setId,_setEve,_setAct){
    _setEve = _setEve.toLowerCase();
    var _wrk = _setEve.substring(0,2);
    if(_wrk == 'on'){
        _setEve = _setEve.substring(2,_setEve.length);
    }
    var _funcNo = G_setFunction.length;
    if(_setId == 'window'){
        G_setFunction[_funcNo] = function(event){
            eval(_setAct);
        }
    }else{
        G_setFunction[_funcNo] = function(){
            eval(_setAct);
        }
    }
    var _funcName = _setId;
    _funcName += _setEve;
    G_setFunctionName[_funcNo] = _funcName;
    if(_setId == 'window'){
        Main_addListener(window,_setEve,G_setFunction[_funcNo],true);
    }else{
        Main_addListener(document.getElementById(_setId),_setEve,G_setFunction[_funcNo],false);
    }
}

function Main_addListener(_elem,_eventType,_func,_cap){
    if(_elem.addEventListener){
        _elem.addEventListener(_eventType,_func,_cap);
    }else if(_elem.attachEvent){
        _elem.attachEvent('on' + _eventType,_func);
    }else{
        _elem['on' + _eventType]=null;
    }
}

//------------------------------------------------------------
// DelEvent
//------------------------------------------------------------
function Main_DelE(_setId,_setEve){
    _setEve = _setEve.toLowerCase();
    var _wrk = _setEve.substring(0,2);
    if(_wrk == 'on'){
        _setEve = _setEve.substring(2,_setEve.length);
    }
    var _funcName = _setId;
    _funcName += _setEve;
    var _funcNo = Calc_Dsearch(G_setFunctionName,_funcName);
    if(_funcNo > (-1)){
        if(_setId == 'window'){
            Main_clearListener(window,_setEve,G_setFunction[_funcNo],true);
        }else{
            Main_clearListener(document.getElementById(_setId),_setEve,G_setFunction[_funcNo],false);
        }
        G_setFunction[_funcNo] = null;
        G_setFunctionName[_funcNo] = '';
    }
}

function Main_clearListener(_elem,_eventType,_func,_cap){
    if(_elem.removeEventListener){
        _elem.removeEventListener(_eventType,_func,_cap);
    }else if(_elem.detachEvent){
        _elem.detachEvent('on' + _eventType,_func);
    }else{
        _elem['on' + _eventType]=null;
    }
}


//------------------------------------------------------------
// SetStyle
//------------------------------------------------------------
function Main_SetS(_setId,_styleName,_setValue){
    _styleName = _styleName.toLowerCase();
    if(_styleName == 'display'){
        document.getElementById(_setId).style.display = _setValue;
    }else if(_styleName == 'width'){
        document.getElementById(_setId).style.width   = _setValue;
    }else if(_styleName == 'height'){
        document.getElementById(_setId).style.height  = _setValue;
    }else if(_styleName == 'left'){
        document.getElementById(_setId).style.left    = _setValue;
    }else if(_styleName == 'top'){
        document.getElementById(_setId).style.top     = _setValue;
    }else if(_styleName == 'cursor'){
        document.getElementById(_setId).style.cursor  = _setValue;
    }else if(_styleName == 'color'){
        document.getElementById(_setId).style.color   = _setValue;
    }else if(_styleName == 'font'){
        document.getElementById(_setId).style.font    = _setValue;
    }else if(_styleName == 'font-weight'){
        document.getElementById(_setId).style.fontWeight = _setValue;
    }else if(_styleName == 'font-size'){
        document.getElementById(_setId).style.fontSize   = _setValue;
    }else if(_styleName == 'background-color'){
        document.getElementById(_setId).style.backgroundColor = _setValue;
    }else if(_styleName == 'background-image'){
        var _FileUrl = '';
        _FileUrl += 'url(';
        _FileUrl += _setValue;
        _FileUrl += ')';
        document.getElementById(_setId).style.backgroundImage = _FileUrl;
    }else if(_styleName == 'src'){
        document.getElementById(_setId).src           = _setValue;
    }else if(_styleName == 'overflow'){
        document.getElementById(_setId).style.overflow = _setValue;
    }
    
    
}

//------------------------------------------------------------
// HTMLファイルの履歴読み込み
//------------------------------------------------------------
function Main_LH(){
    if(G_NewLoad == 1){
        var _location = savepage.location.search;
        var _clocation = _location.substring(0,6);
        
        if(_clocation == '?pgact'){
            
            _location = _location.substring(6,_location.length);
            //alert(_location);
            var _pageAct = eval(_location);
            _pageAct;
        }else{
            Act_ChangeMenu(C_TabNo_Home,C_PageNo_Home);
        }
    }else{
        G_NewLoad = 1;
    }
    
    //読み込んだページがログイン画面の場合
    //if(document.getElementById('D_LoginForm')){
    //    location.reload();
    //}
}

//------------------------------------------------------------
// ダミーページへの複製
//------------------------------------------------------------
function Main_SH(_pageAct){
    //if(_pageAct == 'Act_Logout();'){
    //    //次のページがログアウトの場合
    //    location.reload();
    //}else{
    
    G_NewLoad = 0;
    
    //alert("Set:" + G_NewLoad + "\n" + _pageAct);
    
    if(G_DummySw==2){
        G_DummySw = 0;
    }else{
        G_DummySw += 1;
    }
    
    var _strURL = 'html/dummy/dummy';
    _strURL += G_DummySw;
    _strURL += '.html?pgact';
    _strURL += _pageAct;
    
    savepage.location.href = _strURL;
    
    //G_NewLoad = 1;
    //}
}

//--------------------------------------
//  クッキーに情報を書き込む
//--------------------------------------
function Main_SetCookie(_Name,_Value){
    var _setStr = _Name;
    var _setDate = new Date();
    
    //365日後に加算
    _setDate.setTime(_setDate.getTime() + (1000 * 60 * 60 * 24 * 7));
    
    _setStr += '=';
    _setStr += escape(_Value);
    _setStr += '; expires=';
    _setStr += _setDate.toGMTString();
    _setStr += ';';
    
    document.cookie = _setStr;
}

//--------------------------------------
//  クッキーから情報を読み込む
//--------------------------------------
function Main_GetCookie(_Name){
    var _retStr = '';
    
    if(typeof(_Name) == "undefined"){
        return _retStr;
    }
    
    var _getStr = document.cookie;
    _getStr += ';';
    
    //alert(_getStr);
    
    var _KeyStr = _Name;
    _KeyStr += '=';
    
    var _StPos = _getStr.indexOf(_KeyStr);
    if(_StPos != -1){
        var _EdPos = _getStr.indexOf(';',_StPos);
        var _getData = unescape(_getStr.substring((_StPos + _KeyStr.length), _EdPos));
        _retStr += _getData;
    }
    
    return _retStr;
}

//--------------------------------------
//  XMLHttpRequestの生成
//--------------------------------------
function createXMLHttpRequest(){
    var _XMLhttpObject = null;  
    try{
        _XMLhttpObject = new XMLHttpRequest();  
    }catch(e){
        try{
            _XMLhttpObject = new ActionXObject("MsXML2.XMLHTTP");
        }catch(e){
            try{
                _XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
            }catch(e){
                return null;
            }
        }
    }
    return _XMLhttpObject;
}

//--------------------------------------
//  新しいページでリンクを開く
//--------------------------------------
function Main_OpenNewPage(_Addr){
    window.open(_Addr, '', '');
}

//--------------------------------------
//  禁止ワードチェック
//--------------------------------------
function Main_ChkFwords(_ChkStr){
    var _ret = true;
    if(G_JDB_fwords){
        
    }else{
        G_JDB_fwords = Main_GetJsonFile('fwords.json');
    }
    var _Index = Calc_Dsearch(G_JDB_fwords,_ChkStr);
    if(_Index > -1){
        _ret = false;
    }
    return _ret;
}

