/**
 * FAQ SYSTEM COMMON JavaScript
 */

/**
 * 回答画面を開く(拡張ウインドウ)
 */
function jsComAnswerSimple( vUrl, vWinName ) {
	//var width = "733";
	var width = "749"; //領域は733で横スクロールバーが表示されないよう
	jsComOpenExWinFocus( vUrl, jsComReplace(vWinName, "-", "_"), width,null,null,null,"yes","yes","yes");
}


/**
 * 用語解説ウインドウを開く(拡張ウインドウ)
 */
function jsComGlossary(vWinName) {
	var width = "420";
	var height= "430";
	var left = screen.width - width;
	var top = 0;
	
	jsComOpenExWinFocus( "", jsComReplace(vWinName, "-", "_"), width,height,left,top,"no","no","no");
}

/**
 * アンケート完了ウインドウを開く(拡張ウインドウ)
 */
function jsComEnqThanks(vWinName) {
	var width = "450";
	var height= "180";
	var left = (screen.width  - width) / 2;
	var top = (screen.height - height) / 2;
	
	jsComOpenExWinFocus( "", jsComReplace(vWinName, "-", "_"), width,height,left,top,"no","no","no");
}

/**
 * ウインドウを開きフォーカスを与える
 */
function jsComOpenWinFocus( vUrl, vWinName ) {
	var win = window.open( vUrl, jsComReplace(vWinName, "-", "_") );
	win.focus();
}

/**
 * ウインドウを開きフォーカスを与える(拡張版)
 */
function jsComOpenExWinFocus(url,winname,width,height,left,top,menubar,resizable,scrollbars){

var addparam  = "  location=no";
    if( width != null ) { addparam += ", width=" + width; }
    if( height != null ) { addparam += ", height=" + height; }
    if( left != null ) { addparam += ", left=" + left; }
    if( top != null ) { addparam += ", top=" + top; }
    if( menubar != null ) { addparam += ", menubar=" + menubar; }
    if( resizable != null ) { addparam += ", resizable=" + resizable; }
    if( scrollbars != null ) { addparam += ", scrollbars=" + scrollbars; }
    addparam += ", status=no";
    addparam += ", titlebar=no";
    addparam += ", toolbar=no";
    addparam += ", channelmode=no";
    addparam += ", directories=no";
    addparam += ", fullscreen=no";

	var win = window.open( url, winname, addparam );
	win.focus();
	return win;
}

/**
 * 置換
 */
function jsComReplace( vValue, vBefore, vAfter ){
	var vTemp = vValue;
	vTemp = vTemp.split(vBefore);
	vTemp = vTemp.join(vAfter);
	return vTemp;
}

/**
 * Enterキー が押された場合は true を返す。
 * Shiftキーが押されてる場合は false を返す。
 * ex:jsIsEnter(event);"
 * @param event
 */
function jsComIsEnter(event){
    if ( event.type == 'keydown' && event.keyCode ) {
        if ( event.keyCode == '13') {
            if ( ! event.shiftKey ) {
                return true;
            } else {
                return false;
            }
        }
    }
    return false;
}

/**
 * ウインドウを閉じる。(標準)
 */
function jsComWindowClose(){
    window.close();
}

/**
 * ウインドウを閉じる。(強制：アラートなし)
 */
function jsComWindowCloseForce(){
    var window_opener = window.opener;
    if ( window_opener == null || window_opener.closed == true ) {
        window.opener = window;
    }
    window.close();
}

/**
 * フレーム親ウインドウを閉じる。(標準)
 */
function jsComPWindowClose(){
    window.parent.close();
}

/**
 * フレーム親ウインドウを閉じる。(強制：アラートなし)
 */
function jsComPWindowCloseForce(){
    var window_opener = window.parent.opener;
    if ( window_opener == null || window_opener.closed == true ) {
        window.parent.opener = window;
    }
    window.parent.close();
}

/**
 * 印刷ダイアログを表示する。
 */
function jsComPrint() {
    window.print();
}

/**
 オブジェクトの表示/非表示を設定します。
 @param id1 オブジェクトID
 @param mode true:表示 false:非表示
*/
function jsComDispSetByid(id,mode){
    var o1 = document.getElementById(id);
    if ( o1 != null ) {
		if( mode ){
			o1.style.display = "block";
		} else {
			o1.style.display = "none";
		}
    }
}

/**
 オブジェクトの表示/非表示を変更します。
 現在表示されている場合は非表示に、非表示の場合は表示します。２つまで指定可能です。
 予め一方を表示(style="display:block;")、もう一方を非表示(style="display:none;")にして
 その切替をする場合に使用します。
 @param id1 オブジェクトID1
 @param id2 オブジェクトID2(不要な場合は null を指定してください)
*/
function jsComDispChageByid(id1,id2){
    var o1 = document.getElementById(id1);
    var o2 = document.getElementById(id2);
    
    if ( o1 != null ) {
		o1.style.display = jsComGetNextDispStyle(o1);
    }
    
    if ( o2 != null ) {
		o2.style.display = jsComGetNextDispStyle(o2);
    }
}

/**
 現在の表示状態の逆を返します。(表示/非表示切替え等で使用)
 @param obj オブジェクト
*/
function jsComGetNextDispStyle(obj){
	if( obj != null ){
		if( obj.style.display == "none" ){
			return "block";
		} else {
			return "none";
		}
	}
}

/**
 指定されたオブジェクトの背景画像を変更する。（スタイル指定）
*/
function jsComStyleBGImage(obj,img){
	if( obj != null ){
		obj.style.backgroundImage = 'url('+img+')';
	}
}

/**
 履歴があるか否かを返す
*/
function jsComIsHistory(){
	//firefoxのみ例外
	var isHistory = false;
	var VarUsrAgt = navigator.userAgent.toLowerCase();
	isFF = VarUsrAgt.indexOf("firefox/") != -1;
	isSF = VarUsrAgt.indexOf("safari/") != -1;
	var vHistory= window.history.length;
	if ( isFF ) {
		if ( vHistory > 1 ) {
			isHistory = true;
		}
	} else if ( isSF ) {
		if ( vHistory > 1 ) {
			isHistory = true;
		}
	} else {
		if ( vHistory > 0 ) {
			isHistory = true;
		}
	}
	return isHistory;
}

