//
//	QRコード作成 TOPページ用 JavaScript 
//	http://www.cman.jp/QRcode
//

// --------------------------------------
//	グローバル変数
// --------------------------------------
var gObjPopStr;
var gObjPopStrP;
var gObjPopPho;
var gObjPopPhoP;

// cookieに設定する項目名
var tblName = new Array('inStr','inVersion','inCellSize','inLevel','inFcol','inBcol','inOverStr','inOverStrColor','inOverStrForm','inOverStrSize','inOverStrPos','inOverPhotoSrc','inOverPhotoPos','inOverPhotoId','inFileForm');
 
// cookieのキー 
var cookieInValue	= "QRcodeInValue";
var cookieInSave	= "QRcodeInSave";


// --------------------------------------
//	オンロード
// --------------------------------------
function init(){

	cookieGet();

	setVersion();
	setColor();
	setCellSize();
	setLevel();
	setFileForm();
	setOverStr();
	setOverPhoto();

	focus();
	document.getElementById('STR_TXT').focus();
	gObjPopStr =document.getElementById('popupMsgStr');
	gObjPopStrP=document.getElementById('popupMsgStrP');
	gObjPopPho =document.getElementById('popupMsgPho');
	gObjPopPhoP=document.getElementById('popupMsgPhoP');
}


// --------------------------------------
//	アンロード
// --------------------------------------
function WinUnload(){
	cookiePut();
}


// --------------------------------------
// 選択欄のカーソルイン
// --------------------------------------
function mIn(argObj){
	var wOutMsg="";
	var wNowObj=argObj;		// 現在のオブジェクト

	// オブジェクトの背景入れ替え
	wNowObj.className="nai1on";

	// ボタンの画像入れ替え
	if(document.getElementById(argObj.id+'_BT')){
		document.getElementById(argObj.id+'_BT').src=document.getElementById(argObj.id+'_BT').src.replace("_of", "_on");
	}
}


// --------------------------------------
// 選択欄のカーソルアウト
// --------------------------------------
function mOut(argObj){
	argObj.className="nai1";
	var wImgSrc=document.getElementById(argObj.id+'_BT').src.replace("_on", "_of");
	document.getElementById(argObj.id+'_BT').src=wImgSrc;
}


// --------------------------------------
// QR色のカーソルイン
// --------------------------------------
function colorIn(argObj){
	argObj.className="nai1on";
	document.getElementById("COL_BT").src=document.getElementById("COL_BT").src.replace("_of", "_on");

}


// --------------------------------------
// QR色のカーソルアウト
// --------------------------------------
function colorOut(argObj){
	argObj.className="nai1";
	document.getElementById("COL_BT").src=document.getElementById("COL_BT").src.replace("_on", "_of");
}


// --------------------------------------
// 文字重ねのカーソルイン
// --------------------------------------
function overstrIn(argObj){
	var wOutMsg="";
	var wOutMsg2="";
	var wNowObj=argObj;		// 現在のオブジェクト

	// オブジェクトの背景入れ替え
	wNowObj.className="nai1on";

	// ボタンの画像入れ替え
	document.getElementById("OVERSTR_BT").src=document.getElementById("OVERSTR_BT").src.replace("_of", "_on");

	// 吹き出しのテキスト書き換え
	switch ( argObj.id ) {
	case "OVERSTRG":
		wOutMsg ="QRに文字を重ねる事ができます";
		wOutMsg2="指定しなくてもQRは作成できます";
		break;
	case "OVERSTR":
//		wOutMsg ="重ねる文字を指定";
//		wOutMsg2="英数字、記号、日本語を指定可能";
		break;
	case "OVERSTRC":
//		wOutMsg="重ね文字色を指定可能！";
//		wOutMsg2="フルカラーで指定できます。";
		break;
	case "OVERSTRF":
//		wOutMsg="重ね文字フォントを指定可能！";
//		wOutMsg2="書体、サイズを指定";
		break;
	case "OVERSTRP":
//		wOutMsg="重ね文字位置を指定可能！";
//		wOutMsg2="上下左右など位置を指定";
		break;
	}
	if (wOutMsg != ""){
		gObjPopStrP.innerHTML="<b>"+wOutMsg+"</b><br>"+wOutMsg2+"<br>クリックで選択と説明を表示";

		// ポップアップ表示
		gObjPopStr.style.left=GetObjLeft(document.getElementById("POPBASE"));
		gObjPopStr.style.top=GetObjTop(wNowObj)-80;
		gObjPopStr.style.visibility="visible";
	}
}


// --------------------------------------
// 文字重ねのカーソルアウト
// --------------------------------------
function overstrOut(argObj){
	argObj.className="nai1";
	document.getElementById("OVERSTR_BT").src=document.getElementById("OVERSTR_BT").src.replace("_on", "_of");

	// ポップアップ非表示
	gObjPopStr.style.visibility="hidden";
}


// --------------------------------------
// 画像重ねのカーソルイン
// --------------------------------------
function overphoIn(argObj){
	var wOutMsg="";
	var wOutMsg2="";
	var wNowObj=argObj;		// 現在のオブジェクト

	// オブジェクトの背景入れ替え
	wNowObj.className="nai1on";

	// ボタンの画像入れ替え
	document.getElementById("OVERPHO_BT").src=document.getElementById("OVERPHO_BT").src.replace("_of", "_on");

	// 吹き出しのテキスト書き換え
	switch ( argObj.id ) {
	case "OVERPHOG":
		wOutMsg ="QRに画像を重ねる事ができます";
		wOutMsg2="指定しなくてもQRは作成できます";
		break;
	case "OVERPHO":
//		wOutMsg="重ね画像を選択可能！";
//		wOutMsg2="多くの画像から選択できます";
		break;
	case "OVERPHOP":
//		wOutMsg="重ね画像位置を変更可能！";
//		wOutMsg2="上下左右など位置を指定";
		break;
	}
	if (wOutMsg != ""){
		gObjPopPhoP.innerHTML="<b>"+wOutMsg+"</b><br>"+wOutMsg2+"<br>クリックで選択と説明を表示";

		// ポップアップ表示
		gObjPopPho.style.left=GetObjLeft(document.getElementById("POPBASE"));
		gObjPopPho.style.top=GetObjTop(wNowObj)-80;
		gObjPopPho.style.visibility="visible";
	}
}


// --------------------------------------
// 画像重ねのカーソルアウト
// --------------------------------------
function overphoOut(argObj){
	argObj.className="nai1";
	document.getElementById("OVERPHO_BT").src=document.getElementById("OVERPHO_BT").src.replace("_on", "_of");

	// ポップアップ非表示
	gObjPopPho.style.visibility="hidden";
}


// --------------------------------------
// テキスト入力欄のカーソルイン
// --------------------------------------
function sIn(argObj){
	argObj.className="txt1on";
}


// --------------------------------------
// テキスト入力欄のカーソルアウト
// --------------------------------------
function sOut(argObj){
	argObj.className="txt1";
//	popTxtClose();
}


// --------------------------------------
// ボタンのカーソルイン
// --------------------------------------
function bIn(argObj){
	var wImgSrc=argObj.src.replace("_of", "_on");
	argObj.src=wImgSrc;
}


// --------------------------------------
// ボタンのカーソルアウト
// --------------------------------------
function bOut(argObj){
	var wImgSrc=argObj.src.replace("_on", "_of");
	argObj.src=wImgSrc;
}


// --------------------------------------
// クリアボタン
// --------------------------------------
function clsClick(){

	document.f1.inStr.value			="";
	document.f1.inVersion.value		="00";
	document.f1.inCellSize.value	="03";
	document.f1.inLevel.value		="H";
	document.f1.inFcol.value		="#000000";
	document.f1.inBcol.value		="#FFFFFF";
	document.f1.inOverStr.value		="";
	document.f1.inOverStrColor.value="#FF0000";
	document.f1.inOverStrForm.value	="G";
	document.f1.inOverStrSize.value	="8";
	document.f1.inOverStrPos.value	="MM";
	document.f1.inOverPhotoSrc.value="";
	document.f1.inOverPhotoPos.value="RB";
	document.f1.inOverPhotoId.value	="DUMMY";
	document.f1.inFileForm.value	="gif";

	setVersion();
	setColor();
	setCellSize();
	setLevel();
	setFileForm();
	setOverStr();
	setOverPhoto();
}


// --------------------------------------
// オブジェクトのX座標取得（px）
// --------------------------------------
function GetObjLeft(oj){
	var px = 0;
	while(oj){
		px += oj.offsetLeft;
		oj = oj.offsetParent;
	}
	return px;
}


// --------------------------------------
// オブジェクトのY座標取得（px）
// --------------------------------------
function GetObjTop(oj){
	var px = 0;
	while(oj){
		px += oj.offsetTop;
		oj = oj.offsetParent;
	}
	return px;
}


// --------------------------------------
// サブウインドウ　オープン
// --------------------------------------
function selWinOpen(argSel){
	var Win_H = (screen.height - 120);
	if (Win_H == 0){Win_H = 650;}

	document.f1.selKbn.value=argSel;

	if(document.activeElement.type){
		if((document.activeElement.type=="textarea")||(document.activeElement.type=="input")){
			return false;
		}
	}

	var wNextHtml='';
	switch ( argSel ) {
	case 'STR' :		wNextHtml='qrstring.html';	break;
	case 'VER' :		wNextHtml='qrversion.html';	break;
	case 'CSIZE':		wNextHtml='qrsize.html';	break;
	case 'LVL' :		wNextHtml='qrlevel.html';	break;
	case 'FCOL':		wNextHtml='qrcolor.html';	break;
	case 'BCOL':		wNextHtml='qrcolor.html';	break;
	case 'FILEFORM':	wNextHtml='qrfileform.html';	break;
	case 'OVERSTR':		wNextHtml='qroverstring.html';	break;
	case 'OVERPHOTO':	wNextHtml='qroverphoto.html';	break;
	}

	if(wNextHtml==""){
		return false;
	}else{
		var Parm = 'toolbar=1,location=1,directories=1,status=1,menubar=1,resizable=1,scrollbars=1,dependent=1,width=830,top=1,left=1,height='+Win_H;

		var wWin=window.open('sub/'+wNextHtml,'cmanQRsub',Parm);
		if( navigator.userAgent.indexOf('AppleWebKit/') > -1 ) {	// SafariとChromeだけ
			wWin.blur();
		}
		wWin.focus();
	}
}


// --------------------------------------
// 「バージョン」表示設定
// --------------------------------------
function setVersion(){
	document.getElementById('VER_DT').innerHTML=nameVersion(document.f1.inVersion.value);
}

// --------------------------------------
// 「誤り訂正レベル」表示設定
// --------------------------------------
function setLevel(){
	document.getElementById('LVL_DT').innerHTML=nameLevel(document.f1.inLevel.value);
}

// --------------------------------------
// 「QRカラー」表示設定
// --------------------------------------
function setColor(){

	var wFcol=document.f1.inFcol.value;
	var wBcol=document.f1.inBcol.value;

	document.getElementById("FCOL_DT").innerHTML=wFcol;
	document.getElementById("FCOL_COL").style.backgroundColor=wFcol;
	document.getElementById("BCOL_DT").innerHTML=wBcol;
	document.getElementById("BCOL_COL").style.backgroundColor=wBcol;

	document.getElementById("F01").style.backgroundColor=wFcol;
	document.getElementById("F02").style.backgroundColor=wFcol;
	document.getElementById("F03").style.backgroundColor=wFcol;
	document.getElementById("F04").style.backgroundColor=wFcol;
	document.getElementById("F05").style.backgroundColor=wFcol;
	document.getElementById("F06").style.backgroundColor=wFcol;
	document.getElementById("F07").style.backgroundColor=wFcol;
	document.getElementById("F08").style.backgroundColor=wFcol;
	document.getElementById("F09").style.backgroundColor=wFcol;
	document.getElementById("F10").style.backgroundColor=wFcol;
	document.getElementById("F11").style.backgroundColor=wFcol;
	document.getElementById("F12").style.backgroundColor=wFcol;
	document.getElementById("F13").style.backgroundColor=wFcol;
	document.getElementById("BGCB").style.backgroundColor=wBcol;

}


// --------------------------------------
// 「ファイル形式」表示設定
// --------------------------------------
function setFileForm(){
	document.getElementById('FILEFORM_DT').innerHTML=nameFileForm(document.f1.inFileForm.value);
}


// --------------------------------------
// 「重ね文字」表示設定
// --------------------------------------
function setOverStr(){

	var wFontName=""

	document.getElementById("OVERSTR_DT").innerHTML		= document.f1.inOverStr.value;
	document.getElementById("OVERSTR_DT").style.color	= document.f1.inOverStrColor.value;
	document.getElementById("OVERSTRC_DT").innerHTML	= document.f1.inOverStrColor.value;
	document.getElementById("OVERSTRC_COL").style.backgroundColor=document.f1.inOverStrColor.value;

	wFontName		= nameFont(document.f1.inOverStrForm.value)+"　";
	if (document.f1.inOverStrForm.value.toUpperCase() == 'O'){
		wFontName += 'サイズ' + document.f1.inOverStrSize.value;
	}else{
		wFontName += document.f1.inOverStrSize.value + 'pt';
	}
	document.getElementById("OVERSTRF_DT").innerHTML	= wFontName;

	document.getElementById("OVERSTRP_DT").innerHTML	= namePos(document.f1.inOverStrPos.value);
}


// --------------------------------------
// 「セルサイズ」表示設定
// --------------------------------------
function setCellSize(){
	document.getElementById('CSIZE_DT').innerHTML=nameCellSize(document.f1.inCellSize.value);
}


// --------------------------------------
// 「重ね画像」表示設定
// --------------------------------------
function setOverPhoto(){

	if (document.f1.inOverPhotoSrc.value == ""){
		document.getElementById("OVERPHOTO_DT").src="over_image/dummy.gif";
	}else{
		document.getElementById("OVERPHOTO_DT").src="over_image/"+document.f1.inOverPhotoSrc.value;
	}

	document.getElementById("OVERPHOTOP_DT").innerHTML=namePos(document.f1.inOverPhotoPos.value);
}


// --------------------------------------
//	説明セレクト操作
// --------------------------------------
function opeSelect(){
	var wObj = document.getElementById('OPESELECT');
	var wSel = wObj.options[wObj.selectedIndex].value;

	var wLineOn		='solid 3px #0000FF';
	var wLineOff	='none';
	var wDispOn		='block';
	var wDispOff	='none';

	document.getElementById('STR').style.border			= wLineOn;
	document.getElementById('STRMSG').style.display		= wDispOn;
	document.getElementById('CREBTN').style.border		= wLineOn;
	document.getElementById('CREBTNMSG').style.display	= wDispOn;

	document.getElementById('COLWAK').style.border		= wLineOff;
	document.getElementById('COLWAKMSG').style.display	= wDispOff;
	document.getElementById('OVSTR').style.border		= wLineOff;
	document.getElementById('OVSTRMSG').style.display	= wDispOff;
	document.getElementById('OVPHO').style.border		= wLineOff;
	document.getElementById('OVPHOMSG').style.display	= wDispOff;
	document.getElementById('ALLMSG').style.display		= wDispOff;


	switch ( wSel ) {
	case '00' :
		document.getElementById('STR').style.border			= wLineOff;
		document.getElementById('STRMSG').style.display		= wDispOff;
		document.getElementById('CREBTN').style.border		= wLineOff;
		document.getElementById('CREBTNMSG').style.display	= wDispOff;
		break;

	case '01' :
		break;

	case '02' :
		document.getElementById('COLWAK').style.border		= wLineOn;
		document.getElementById('COLWAKMSG').style.display	= wDispOn;
		break;

	case '03' :
		document.getElementById('OVSTR').style.border		= wLineOn;
		document.getElementById('OVSTRMSG').style.display	= wDispOn;
		break;

	case '04' :
		document.getElementById('OVPHO').style.border		= wLineOn;
		document.getElementById('OVPHOMSG').style.display	= wDispOn;
		break;

	case '05' :
		document.getElementById('STR').style.border			= wLineOff;
		document.getElementById('STRMSG').style.display		= wDispOff;
		document.getElementById('CREBTN').style.border		= wLineOff;
		document.getElementById('CREBTNMSG').style.display	= wDispOff;
		document.getElementById('ALLMSG').style.display		= wDispOn;
		break;

	}
}

// --------------------------------------
//	入力内容などcookie書き出し
// --------------------------------------
function cookiePut(){
	var i=0;
	var cookieStr="";
	var cookieItem="";


	// 記憶するを選択するとき
//	if (document.getElementById('DATASAVE').checked){

		// 入力項目でcookie文字列を作成
		for (i = 0; i < tblName.length; i++) {
			cookieItem = tblName[i] + '_' + document.f1.elements[tblName[i]].value;

			// 入力項目を"%00"で区切る
			cookieStr += "%00" + escape(cookieItem);
		}

		// cookie期限を作成
		var dt = new Date();					// 現在の日時
		dt.setTime(dt.getTime() + 1800000);		// 30分後の日時

		// 入力情報をcookieに書き出し
		cookieStr = cookieInValue + "=" + cookieStr + ";" + "expires=" + dt.toGMTString() + ";";
		document.cookie = cookieStr;

//		// 入力保存をcookieに貸し出し
//		cookieStr = cookieInSave + "=ON;" + "expires=" + dt.toGMTString() + ";";
//		document.cookie = cookieStr;

//	}else{

		// 入力情報をcookieの削除
//		deleteCookie();

		// cookie期限を作成
//		var dt = new Date();				// 現在の日時
//		dt.setDate(dt.getYear() + 1);		// 1年後の日時

		// 入力保存をcookieに貸し出し
//		cookieStr = cookieInSave + "=" + escape('OFF') + ";" + "expires=" + dt.toGMTString() + ";";
//		document.cookie = cookieStr;

//	}
}


// --------------------------------------
//	入力内容などcookie取り出し
// --------------------------------------
function cookieGet(){
	var i=0;
	var j=0;
	var cookieStr="";
	var cookieItem = new Array();

	if(document.f1.elements['inStr'].value != ''){return;}

	// cookieをキーで読み込み
//	cookieStr = ReadCookie(cookieInSave);

//	if (cookieStr == 'ON'){

		// cookieをキーで読み込み
		cookieStr=ReadCookie(cookieInValue);

		// 項目単位に区切る
		cookieItem = cookieStr.split("%00");

		for (i = 0; i < cookieItem.length; i++) {

			// 項目単位にアンエスケープ
			cookieItem[i]=unescape(cookieItem[i]);


			// 項目の先頭が入力項目名と同じ時に戻し入れる
			for (j = 0; j < tblName.length; j++) {

				if ( cookieItem[i].substr(0,tblName[j].length + 1) == tblName[j] + '_' ){
					document.f1.elements[tblName[j]].value=cookieItem[i].substr(tblName[j].length + 1);
					break;
				}
			}
		}
//	}else{
//		document.getElementById('DATASAVE').checked = false;
//	}
}


// --------------------------------------
// 入力内容などcookieの削除
// --------------------------------------
function deleteCookie() {
	dTime = new Date();
	dTime.setYear(dTime.getYear() - 1);
	document.cookie = cookieInValue + "=;expires=" + dTime.toGMTString();
}


// --------------------------------------
//	汎用cookie取り出し(キー指定)
// --------------------------------------
function ReadCookie(key) {
	var sCookie = document.cookie;					// Cookie文字列
	var aData = sCookie.split(";");					// ";"で区切って"キー=値"の配列にする
	var oExp = new RegExp(" ", "g");				// すべての半角スペースを表す正規表現
	key = key.replace(oExp, "");					// 引数keyから半角スペースを除去

	var i = 0;
	while (aData[i]) {								// 語句ごとの処理 : マッチする要素を探す
		var aWord = aData[i].split("=");			// さらに"="で区切る
		aWord[0] = aWord[0].replace(oExp, "");		// 半角スペース除去

		if (key == aWord[0]){
			if (aWord[1]){
				return aWord[1];					// マッチしたら値を返す
			}else{
				return "";							// 見つからない時は空文字を返す
			}
		}
		if (++i >= aData.length) break;				// 要素数を超えたら抜ける
	}
	return "";										// 見つからない時は空文字を返す
}

