/************************************************
 * 
 * 画像フォルダ・旧エディタ画面で使用するJS群
 * 
 * DEPENDENCIES
 *  - /ucs/js/common.js
 *  - /ucs/js/layerutil.js
 * 
 * Author        : $Author: watanabe $
 * Last Modified : $Date: 2008/08/26 03:05:33 $
 * Version       : $Revision: 1.7 $
 * 
 * (c) CYBER AGENT.LTD
 * 
 ************************************************/
function initScreen() {
    w = 800;
    h = 640;
    x = (screen.width  - w) / 2;
    y = (screen.height - h) / 2;
    resizeTo(w,h);
    moveTo(x,y);
    window.focus();
}
function selectImageProfile(image_id, image_path, image_url, image_url_s, image_title, image_width, image_height, thumbnail_width, thumbnail_height, image_tag) {
    var pDoc = window.opener.document;

    pDoc.forms[0].profile_image_id.value = image_id;
    pDoc.forms[0].profile_image_path.value = image_path;
    pDoc.forms[0].profile_image_url.value = image_url;
    pDoc.forms[0].profile_image_title.value = image_title;
    pDoc.forms[0].profile_image_width.value = image_width;
    pDoc.forms[0].profile_image_height.value = image_height;
    pDoc.forms[0].profile_thumbnail_width.value = thumbnail_width;
    pDoc.forms[0].profile_thumbnail_height.value = thumbnail_height;
    pDoc.forms[0].addImage.value = "画像の削除";
    pDoc.getElementById('imageTag').innerHTML = image_tag;

    window.close();
}
function selectImageHeader(image_id, image_url, image_url_s, image_title, image_width, image_height, thumbnail_width, thumbnail_height, image_tag) {
    var pDoc = window.opener.document;

    pDoc.forms[0].header_image_id.value = image_id;
    pDoc.forms[0].header_image_url.value = image_url;
    pDoc.forms[0].header_image_title.value = image_title;
    pDoc.forms[0].header_image_width.value = image_width;
    pDoc.forms[0].header_image_height.value = image_height;
    pDoc.forms[0].header_thumbnail_width.value = thumbnail_width;
    pDoc.forms[0].header_thumbnail_height.value = thumbnail_height;
    pDoc.forms[0].addImage.value = "画像の削除";
    pDoc.getElementById('imageTag').innerHTML = image_tag;

    window.close();
}


/**
 * 旧エディタ用1画像追加処理
 * 
 * @param String image_id    画像ID
 * @param String image_path  画像パス
 * @param String image_url   元画像パス
 * @param String image_url_s 縮小画像パス
 * @param String image_title タイトル
 * @param String image_title 画像配置
 * @param String image_tag   画像タグ
 */
function selectImageEntry(image_id, image_path, image_url, image_url_s, image_title, image_align, image_tag) {
    var pDoc = window.opener.document;
    var c = 0;
    var length = pDoc.forms[0].image_layout.length || 0;
    var count = 0;
    for(c = 0; c < length; c++){
        if(pDoc.forms[0].image_layout[c].value == image_align){
            pDoc.forms[0].image_layout[c].checked = true;
            ++count;
            break;
        }
    }

    if (count == 0) {
        pDoc.forms[0].image_layout[0].checked = true;
    }

//alert("image_id="+image_id+"\nimage_path="+image_path);

    pDoc.forms[0].image_id.value = image_id;
    pDoc.forms[0].image_path.value = image_path;
    pDoc.forms[0].image_url.value = image_url;
    pDoc.forms[0].image_title.value = image_title;
    pDoc.forms[0].addImage.value = "画像の削除";
    pDoc.getElementById('imageTag').innerHTML = image_tag;

    window.close();
}


/*
    align属性は非推奨:(style属性で代替記述)
      top     vertical-align:top;     上揃え
      middle  vertical-align:middle;  中央揃え
      bottom  vertical-align:bottom;  下揃え(初期値)
      left    float:left;clear:both;  左寄せ
      right   float:right;clear:both; 右寄せ
*/
var imgAlignAttribute = new Array();
imgAlignAttribute['center'] = null;
imgAlignAttribute['top']    = 'style="vertical-align:top;" ';
imgAlignAttribute['middle'] = 'style="vertical-align:middle;" ';
imgAlignAttribute['bottom'] = 'style="vertical-align:bottom;" ';
imgAlignAttribute['left']   = 'style="clear:both;float:left;" ';
imgAlignAttribute['right']  = 'style="clear:both;float:right;" ';

var imgStyleVerticalAlign = new Array();
imgStyleVerticalAlign['none']   = '';
imgStyleVerticalAlign['center'] = '';
imgStyleVerticalAlign['top']    = 'top';
imgStyleVerticalAlign['middle'] = 'middle';
imgStyleVerticalAlign['bottom'] = 'bottom';
imgStyleVerticalAlign['left']   = '';
imgStyleVerticalAlign['right']  = '';
var imgStyleFloat = new Array();
imgStyleFloat['none']     = '';
imgStyleFloat['center']   = '';
imgStyleFloat['top']      = '';
imgStyleFloat['middle']   = '';
imgStyleFloat['bottom']   = '';
imgStyleFloat['left']     = 'left';
imgStyleFloat['right']    = 'right';
var imgStyleClear = new Array();
imgStyleClear['none']     = '';
imgStyleClear['center']   = '';
imgStyleClear['top']      = '';
imgStyleClear['middle']   = '';
imgStyleClear['bottom']   = '';
imgStyleClear['left']     = 'both';
imgStyleClear['right']    = 'both';


/**
 * image情報セット(HtmlArea用)
 * 
 * @param String image_id    画像ID
 * @param String image_url   元画像パス
 * @param String image_url_s 縮小画像パス
 * @param String image_title タイトル
 * @param String image_align 配置
 */
function selectImageForHtmlArea(image_id, image_url, image_url_s, image_title, image_align) {
    var param = new Object();

    if (image_align == "center") {
        param["f_div_align"] = image_align;
        if (!window.external) {
            image_align = "none";
        }
        param["f_div"] = getImageTag(image_title, image_url, image_url_s, image_align);
    }
    param["f_surl"] = image_url_s;
    param["f_url"] = image_url;
    param["f_border"] = "0";
    param["f_alt"] = image_title;
    param["f_align"] = image_align;
    param["f_style_vertical_align"] = imgStyleVerticalAlign[image_align];
    param["f_style_float"] = imgStyleFloat[image_align];
    param["f_style_clear"] = imgStyleClear[image_align];

    __dlg_return(param);
//  __dlg_close(param);
    return false;
}


/**
 * selectImageIdに対応する画像情報を取得
 * 
 * @param String imageId  画像ID
 * @param boolean classicFlag true=旧エディタ用処理
 * @param boolean openFlag true=クローズしない
 */
function setImageInfo(imageId, classicFlag, openFlag) {
	var locationSearch = location.search;
	var imageObject = document.forms[0];

	var i = 0;
	var length = 0;
	// 設定情報取得
	var imageAlign = getRadioSelectValue(imageObject.imageAlign);
	var imageSizeType = getRadioSelectValue(imageObject.imageSizeType);
	// 代入項目
	var imageUrl_s = "";
	var imageTitle = "";
	var imageUrl = "";
	var imagePath = "";

//alert("imageObject.selectImageId.length="+imageObject.selectImageId.length+"\nimageObject.selectImageUrl.length="+imageObject.selectImageUrl.length+"\nimageObject.selectImageUrl_s.length="+imageObject.selectImageUrl_s.length+"\nimageObject.selectImageTitle.length="+imageObject.selectImageTitle.length);
//alert("imageObject.selectImageId.value="+imageObject.selectImageId.value+"\nimageObject.selectImageUrl.value="+imageObject.selectImageUrl.value+"\nimageObject.selectImageUrl_s.value="+imageObject.selectImageUrl_s.value+"\nimageObject.selectImageTitle.value="+imageObject.selectImageTitle.value);
	// 画像情報取得
	length = imageObject.selectImageId.length || 0;
	if (!length) {
		if (imageId == imageObject.selectImageId.value) {
			imageUrl = imageObject.selectImageUrl.value;
			if (imageSizeType == 'original') {
				imageUrl_s = imageUrl;
			} else {
				imageUrl_s = imageObject.selectImageUrl_s.value;
			}
			imageTitle = imageObject.selectImageTitle.value;
			imagePath = imageObject.selectImagePath.value;
		}
	} else if (length > 1) {
		for (i=0; i<length; i++) {
			if (imageId == imageObject.selectImageId[i].value) {
				imageUrl = imageObject.selectImageUrl[i].value;
				if (imageSizeType == 'original') {
					imageUrl_s = imageUrl;
				} else {
					imageUrl_s = imageObject.selectImageUrl_s[i].value;
				}
				imageTitle = imageObject.selectImageTitle[i].value;
				imagePath = imageObject.selectImagePath[i].value;
				break;
			}
		}
	}

//	alert("imageAlign="+imageAlign+"\n\nimageTitle="+imageTitle+"\nimageUrl="+imageUrl+"\nimageUrl_s="+imageUrl_s);
	if (locationSearch.search("classic=1") > -1) {
		// 旧エディタ用処理(一画像のみ)
		selectImageEntry(imageId, imagePath, imageUrl, imageUrl_s, imageTitle, imageAlign, 
						getImageTag(imageTitle, imageUrl, imageUrl_s, imageAlign, true));
	} else if (classicFlag) {
		// 旧エディタ用処理
		setImageTag(imageTitle, imageUrl, imageUrl_s, imageAlign);
	} else {
		// htmlAreaエディタ用処理
		selectImageForHtmlArea(imageId, imageUrl, imageUrl_s, imageTitle, imageAlign);
	}

	closeImageWindow(openFlag);

}

/**
 * IMGタグを生成
 * 
 * @param String title タイトル
 * @param String url   元画像パス
 * @param String url_s 縮小画像パス
 * @param String align 配置
 * @param boolean classicFlag true=旧エディタ用処理
 */
function getImageTag(title, url, url_s, align, classicFlag){
    var locationHost = window.location.host;
    var locationSearch = location.search;
//  alert("locationHost="+locationHost+"\nlocationSearch="+locationSearch);

    if (classicFlag && locationHost && locationHost != ""
     && url.search("http://") == -1) {
        url = "http://" + locationHost + url;
        url_s = "http://" + locationHost + url_s;
    }
    var getImage = new Image();
    getImage.src = url_s;
    var imageTag = '<a href="' + url + '">';
    imageTag += '<img src="' + url_s + '"  alt="' + title + '"';
//    alert("\ntitle="+title+"\nurl="+url+"\nurl_s="+url_s+"\nheight="+getImage.width+"\nheight="+getImage.height);
    if (getImage.width && getImage.width > 0) {
        imageTag += ' width="' + getImage.width + '"';
    }
    if (getImage.height && getImage.height > 0) {
        imageTag += ' height="' + getImage.height + '"';
    }
    if (imgAlignAttribute[align] != null && imgAlignAttribute[align] != "") {
        imageTag += imgAlignAttribute[align];
    }
    imageTag += ' border="0" /></a>';

    if (align == "center") {
        imageTag = '<div align="center">' + imageTag + '</div>';
    } else if (classicFlag) {
        imageTag += "\n";
    }

    return imageTag;
}

/**
 * IMGタグをセット(旧エディタ用)
 * 
 * @param String title タイトル
 * @param String url   元画像パス
 * @param String url_s 縮小画像パス
 * @param String align 配置
 */
function setImageTag(title, url, url_s, align){
	var entryObject;
	if (window.opener && !window.opener.closed) {
		if (window.opener.inputSupport._targetInput) {
			entryObject = window.opener.inputSupport._targetInput;
		}

		if (entryObject) {
			entryObject.value += getImageTag(title, url, url_s, align, true);
			window.opener.inputSupport.preview();
		}
	}
}

/**
 * 選択されている画像全てのIMGタグを挿入
 * 
 * @param boolean classicFlag true=旧エディタ用処理
 */
function setSelectImageTags(classicFlag){
	var imageObject = document.forms[0];
	var tempImagesForHtmlArea = "";
	var length = 0;
	var lengthDesc = 0;
	var i = 0;
	var checkedCount = 0;
	var count = 0;
	// 代入項目
	var imageAlign = getRadioSelectValue(imageObject.imageAlign);
	var imageSort = getRadioSelectValue(imageObject.imageSort);
	var imageSizeType = getRadioSelectValue(imageObject.imageSizeType);
	var imageUrl_s = "";
	length = imageObject.selectImageId.length || 0;
	lengthDesc = length-1;
	var param = new Object();

	if (!length) {
		if (imageObject.selectImageId.checked == true
		 && imageObject.selectImageId.value != "") {
			++checkedCount;
			// 旧エディタ or HtmlAreaでブラウザIEの時
			if (classicFlag || 
			((navigator.userAgent.toLowerCase().indexOf("msie") != -1)
			  && (navigator.userAgent.toLowerCase().indexOf("opera") == -1)))
			{
				setImageInfo(imageObject.selectImageId.value, classicFlag, true);
			} else {
				++count;
			}
		}

		if (count > 0) {
			if (imageAlign == "center" && count <= 1) {
				param["f_div_align"] = imageAlign;
				imageAlign = "";
			}

			if (imageObject.selectImageId.checked == true
			 && imageObject.selectImageId.value != "") {
				if (imageSizeType == 'original') {
					imageUrl_s = imageObject.selectImageUrl.value;
				} else {
					imageUrl_s = imageObject.selectImageUrl_s.value;
				}
				// HtmlAreaでブラウザIE以外の時
				tempImagesForHtmlArea += getImageTag(imageObject.selectImageTitle.value, 
										 imageObject.selectImageUrl.value, 
										 imageUrl_s, 
										 imageAlign);
			}
		}
	} else if (length > 1) {
		if (imageSort == 'old') {
			for (i=lengthDesc; i>=0; i--) {
				if (imageObject.selectImageId[i].checked == true
				 && imageObject.selectImageId[i].value != "") {
					++checkedCount;
					// 旧エディタ or HtmlAreaでブラウザIEの時
					if (classicFlag || 
					((navigator.userAgent.toLowerCase().indexOf("msie") != -1)
					  && (navigator.userAgent.toLowerCase().indexOf("opera") == -1)))
					{
						setImageInfo(imageObject.selectImageId[i].value, classicFlag, true);
					} else {
						++count;
					}
				}
			}
		} else {
			for (i=0; i<length; i++) {
				if (imageObject.selectImageId[i].checked == true
				 && imageObject.selectImageId[i].value != "") {
					++checkedCount;
					// 旧エディタ or HtmlAreaでブラウザIEの時
					if (classicFlag || 
					((navigator.userAgent.toLowerCase().indexOf("msie") != -1)
					  && (navigator.userAgent.toLowerCase().indexOf("opera") == -1)))
					{
						setImageInfo(imageObject.selectImageId[i].value, classicFlag, true);
					} else {
						++count;
					}
				}
			}
		}

		if (count > 0) {
			if (imageAlign == "center" && count <= 1) {
				param["f_div_align"] = imageAlign;
				imageAlign = "";
			}
			if (imageSort == 'old') {
				for (i=lengthDesc; i>=0; i--) {
					if (imageObject.selectImageId[i].checked == true
					 && imageObject.selectImageId[i].value != "") {
						if (imageSizeType == 'original') {
							imageUrl_s = imageObject.selectImageUrl[i].value;
						} else {
							imageUrl_s = imageObject.selectImageUrl_s[i].value;
						}
						// HtmlAreaでブラウザIE以外の時
						tempImagesForHtmlArea += getImageTag(imageObject.selectImageTitle[i].value, 
												 imageObject.selectImageUrl[i].value, 
												 imageUrl_s, 
												 imageAlign);
					}
				}
			} else {
				for (i=0; i<length; i++) {
					if (imageObject.selectImageId[i].checked == true
					 && imageObject.selectImageId[i].value != "") {
						if (imageSizeType == 'original') {
							imageUrl_s = imageObject.selectImageUrl[i].value;
						} else {
							imageUrl_s = imageObject.selectImageUrl_s[i].value;
						}
						// HtmlAreaでブラウザIE以外の時
						tempImagesForHtmlArea += getImageTag(imageObject.selectImageTitle[i].value, 
												 imageObject.selectImageUrl[i].value, 
												 imageUrl_s, 
												 imageAlign);
					}
				}
			}
		}
	}

	if (tempImagesForHtmlArea != "") {
//alert("tempImagesForHtmlArea : \n"+tempImagesForHtmlArea);
		param["f_div"] = tempImagesForHtmlArea;
		__dlg_return(param);
	}

	if (checkedCount > 0) {
		closeImageWindow();
	} else {
		alert("１つ以上の画像を選択してください");
	}
}



/**
 * 選択されているラジオボタンの値を取得
 * 
 * @param Object radioObject 取得するラジオボタンObject
 */
function getRadioSelectValue(radioObject) {
    var length = radioObject.length || 0;
    var radioSelectValue = "";
    var c = 0;

    for(c = 0; c < length; c++){
        if(radioObject[c].checked == true){
            radioSelectValue = radioObject[c].value;
        }
    }
    return radioSelectValue;
}

/**
 * 画像フォルダ用 クローズ処理
 * 
 * @param boolean openFlag true=クローズしない
 */
function closeImageWindow(openFlag) {
    if (!openFlag) {
        window.close();
    }
}



//----------------------------------------------- 追加
/**
 * 表示切替
 */
function changeDispaly(id, defaultDisplay){
	if (document.getElementById(id)) {
		if (document.getElementById(id).style.display == "") {
			if (defaultDisplay != null) {
				LayerUtil.switchDispaly(id, defaultDisplay);
			} else {
				LayerUtil.switchDispaly(id, 'none');
			}
		}

		if(document.getElementById(id).style.display != 'block'){
			LayerUtil.switchDispaly(id, 'block');
		}else{
			LayerUtil.switchDispaly(id, 'none');
		}
	}
}
// 画像チェックボックス選択時に背景色変動
function selectCheckboxImage(target) {
	var checkStr = ' checkBox';
	var targetParent = target.parentNode.parentNode.parentNode;
	if (targetParent != null && target.type == "checkbox") {
		if (target.checked == true) {
			if (targetParent.className.indexOf(checkStr) == -1) {
				setClassName = targetParent.className+checkStr;
				targetParent.className = setClassName;
			}
		} else {
			if (targetParent.className.indexOf(checkStr) > -1) {
				setClassName = targetParent.className.replace(checkStr, '');
				targetParent.className = setClassName;
			}
		}
	}
}

/**
 * チェックボックス全選択(/ucs/js/common.js : オーバーライド)
 * 
 * @param Object confirmCheckbox   確認するチェックボックス
 * @param Object changeCheckbox    選択変動させるチェックボックス
 * @param Object changeOneCheckbox 選択変動させる1チェックボックス(1つの場合を考慮)
 */
function controlCheckboxAll(confirmCheckbox, changeCheckbox, changeOneCheckbox) {
	var i = 0;
	var length = 0;

	if (confirmCheckbox.type == "checkbox") {
		if (changeCheckbox) {
			length = changeCheckbox.length || 0;

			for (i=0; i<length; i++) {
				if (changeCheckbox[i].type == "checkbox") {
					if (confirmCheckbox.checked == true) {
						changeCheckbox[i].checked = true;
					} else {
						changeCheckbox[i].checked = false;
					}
					selectCheckboxImage(changeCheckbox[i]);
				}
			}
		}

		if (changeOneCheckbox) {
			if (changeOneCheckbox.type == "checkbox") {
				if (confirmCheckbox.checked == true) {
					changeOneCheckbox.checked = true;
				} else {
					changeOneCheckbox.checked = false;
				}
				selectCheckboxImage(changeOneCheckbox);
			}
		}
	}
}

// 親ウィンドウの指定画像タイトル変更
function parentEditTitle(id, title){
	var imageObject = document.forms[0];
	var length = null;
	var i = 0;
	var titleId = 'imgTitle_'+id;
	var thumbnailId = 'thumbnail_'+id;
	var viewTitle = title;
	if (title == null || title == '') {
		viewTitle = 'タイトル未設定';
		title = '';
	}
	if (document.getElementById(titleId) && document.getElementById(thumbnailId)) {
		document.getElementById(titleId).innerHTML = viewTitle;
		document.getElementById(titleId).title = title;
		document.getElementById(thumbnailId).title = title;
		var thumbnail = DomUtil.getFirstChildElement(document.getElementById(thumbnailId));
		if (thumbnail) {
			if (thumbnail.tagName == 'IMG') {
				thumbnail.alt = title;
			}
		}

		// ポップアップ画像フォルダ用処理
		if(imageObject.selectImageId) {
			length = imageObject.selectImageId.length || 0;
		}
//		alert(length);
		if (length != null) {
			if (length > 1) {
				for (i=0; i<length; i++) {
					if (imageObject.selectImageId[i].value == id) {
						imageObject.selectImageTitle[i].value = title;
//						alert(imageObject.selectImageTitle[i].value);
					}
				}
			} else {
				if (imageObject.selectImageId.value == id) {
					imageObject.selectImageTitle.value = title;
//					alert(imageObject.selectImageTitle.value);
				}
			}
		}
	}
}

// iframeから親ウィンドウの指定画像タイトル変更
function iframeEditTitle(id, title){
	top.parentEditTitle(id, title);
}

/**
 * 画像フォルダonload処理
 * 
 * @param boolean popupFlag ポップアップ画像フォルダの場合true,それ以外false
 * @param boolean moreAreaFlag 複数画像入力エリア表示する場合true
 */
function initializeUpload(popupFlag, moreAreaFlag) {
	if (popupFlag) {
		initScreen();
	}

	TB_init();
	initializeOfUpload();
	changeAction(document.forms[0], '/ucs/upload/popupimageuploadend.do', 'actionIframe', true);

	if (moreAreaFlag) {
		changeDispaly('moreUploadImageForm', 'none');
	}
}
