var global_advice_error = null;
var CONST_HTML_BLANK = "about:blank";
function getHTMLText(text) {
	text = text.replace(/&/g, "&amp;");
	text = text.replace(/"/g, "&quot;");
	text = text.replace(/</g, "&lt;");
	text = text.replace(/>/g, "&gt;");
	text = text.replace(/'/g, "&#146;");
	text = text.replace(/ /g, "&nbsp;");
	return text ;
}
function myDebug(msg) {
	try{
	//window.status = msg;
	}catch(ex){}
}
function imgError(objImg) {
	if (objImg != null) {
		objImg.style.display='none';
	}
}
// common
String.prototype.trim=function() {
	return this.replace(/(^\s*)|(\s*$)/g,"");
}

function checkObjValueIsEmpty(obj) {
	if (obj == null || obj.value == null | obj.value.trim() == "") {
		return true;
	}
	else {
		return false;
	}
}

// common
function clearMsg() {
	var objTd = $('tdMsg');
	if (objTd != null && objTd.innerHTML != "") {
		if (objTd.className == "error") {
			return;
		}
		objTd.innerHTML = "";
	}
	else {
		myDebug('debug(common.clearMsg()): haven\'t tdMsg');
	}
}

// common
function formatNumber(objSelf) {
	if (objSelf != null && objSelf.value != null && objSelf.value.trim() != "") {
		objSelf.value = objSelf.value.replace(/[^\d]/g,'');
	}
}

// common
function formatTelNo(objSelf) {
	if (objSelf != null && objSelf.value != null && objSelf.value.trim() != "") {
		objSelf.value = objSelf.value.replace(/[^\d-]/g,'');
	}
}

// common
function setMsg(msg) {
	try {
		clearError();
		var ul = document.createElement("ul");
	    var li = document.createElement("li");
	    li.innerHTML = msg;
	    ul.appendChild(li);
	     var div = document.getElementById('tdMsg');
	     div.appendChild(ul);
	     div.style.display = "block";
	     div.className="info";
	        
		var objTd = $('tdMsg');	
		if (objTd != null && objTd.innerHTML != msg) {
			objTd.className = 'info';
			objTd.innerHTML = msg;
		}
		else {
			myDebug('debug(common.setMsg()): haven\'t tdMsg\n\r msg:\n\r ' + msg);
		}
	}
	catch(ex) {
		
	}
}

function showWarning(errorlist) {
   if (errorlist.length > 0) {
        var ul = document.createElement("ul");
        for(var i = 0; i < errorlist.length; i++) {
            var li = document.createElement("li");
            li.innerHTML = errorlist[i];
            ul.appendChild(li);
        }
        var div = document.getElementById('tdMsg');
        div.appendChild(ul);
        div.style.display = "block";
        div.className="error";
    }
}

function showWarning2(errorlist) {
   if (errorlist.length > 0) {
        var ul = document.createElement("ul");
        for(var i = 0; i < errorlist.length; i++) {
            var li = document.createElement("li");
            li.innerHTML = errorlist[i];
            ul.appendChild(li);
        }
        var div = document.getElementById('tdMsgUserLogin');
        div.appendChild(ul);
        div.style.display = "block";
        div.className="error";
    }
}

function clearError() {
	var objMsg = $('tdMsg');
	if (objMsg != null) {
		objMsg.innerHTML = "";
		objMsg.style.display = "none";
	}
}

function clearError2(){
	var objMsg = $('tdMsgUserLogin');
	if (objMsg != null) {
		objMsg.innerHTML = "";
		objMsg.style.display = "none";
	}
}

// common display msg 20090513
function displayMsg(msg) {
	var objTd = $('tdMsg');
	if (objTd != null) {
		if (objTd.innerHTML != msg) {
			objTd.innerHTML = msg;
		}
	}
	else {
		myDebug('debug(common.displayMsg()): haven\'t tdMsg');
	}
}

// common setFormUploadTarget 20090513
function setFormUploadTarget(objForm) {
	if (objForm != null) {
		if (objForm.target != 'ifrmImg') {
			objForm.target = 'ifrmImg';
		}
	}
	else {
		myDebug('debug(common.setFormTarget()): objForm is null');
	}
}

// common setFormDefaultTarget 20090513
function setFormDefaultTarget(objForm) {
	if (objForm != null) {
		if (objForm.target != '_self') {
			objForm.target = '_self';
		}
	}
	else {
		myDebug('debug(common.backFormTarget()): objForm is null');
	}
}

// common setFormDefaultTarget 20090513
function setFormDefaultTarget2(formId) {
	var objForm = $(formId);
	setFormDefaultTarget(objForm);
}

// common set hidden input value 20090513
function setHiddenValue(hidName, hidValue) {
	if (hidName == null || hidName.trim() == "") {
		myDebug('debug(common.setHiddenValue()): hidName is null or empty');
		return false;
	}
	if (hidValue == null) {
		myDebug('debug(common.setHiddenValue()): hidValue is null');
		return false;
	}
	var objHidden = $(hidName);
	if (objHidden != null) {
		if (objHidden.value != hidValue) {
			objHidden.value = hidValue;
		}
	}
	else {
		myDebug('debug(common.setHiddenValue()): objHidden is null');
	}
}

// common set display state of control by id
function setInputDisplay(inputId, isDisplay) {
	var objInput = $(inputId);
	if (objInput == null) {
		myDebug('debug(common.setInputDisplay()): objInput is null');
		return false;
	}
	if(isDisplay && objInput.style.display != "") {
		objInput.style.display = "";
	}
	else if(isDisplay == false && objInput.style.display != "none") {
		objInput.style.display = "none";
	}
	return true;
}

function isImage(file){
 var ext = file.substr(file.lastIndexOf('.')).toLowerCase();
 return '.gif,.jpg,.png,.jpeg,.bmp,'.indexOf(ext+',') >= 0;
}

// common upload file 20090513
function sUploadFile(fleId, imgId, submitUrl, deleteUrl, displayDivId, uploadDivId, delBtnId, itmId) {
	if (fleId == null || fleId.trim() == "") {
		myDebug('sUploadFile  -> fleId is null');
		return false;
	}
	else {
		var objFle = $(fleId);
		if (objFle == null) {
			myDebug('sUploadFile  -> objFle is null');
			return false;
		}
		else if (objFle.value.trim() == '') {
			clearError();
			showWarning(new Array('画像はお選びしてください。'));
			return false;
		}
		else if (isImage(objFle.value) == false) {
			clearError();
			showWarning(new Array('画像のタイプが不正です。'));
			return false;
		}
	}
	
	setHiddenValue('hidInputFileName', fleId);
	setHiddenValue('hidDDivId', displayDivId);
	setHiddenValue('hidUDivId', uploadDivId);
	setHiddenValue('hidDelUrl', deleteUrl);
	setHiddenValue('hidInputImgName', imgId);
	myDebug('itmId:' + itmId);
	setHiddenValue('hidOpItemId', itmId);
	setHiddenValue('hidDelBtnId', delBtnId);
	var objForm = $('viewForm');
	setFormUploadTarget(objForm);
	objForm.method = 'post';
	objForm.action = submitUrl;
	objForm.submit();
}

// common do something after upload file 20090513
// result[0]->is successful
// result[1]->fleId (need clear)
// result[2]->itemid
// result[3]->image input id
// result[4]->the src of img
// result[5]->displayDivId
// result[6]->uploadDivId
// result[7]->deleteUrl
// result[8]->DelBtnId
// result[9]->img name
function rUploadFile(result) {
	try {
		setFormDefaultTarget2("viewForm");
		if (result[0]) {
			var objFile = $(result[1]);
			myDebug(objFile.outerHTML);
			objFile.outerHTML = objFile.outerHTML;
			myDebug(objFile.outerHTML);

			var objImg = $(result[3]);
			objImg.src = result[4];
			
			setInputDisplay(result[5], true);
			setInputDisplay(result[6], false);
			
			var objDelBtn = $(result[8]);
			var strClick = "sDeleteFile('" + result[3] + "', '" + result[7] + "', '" + result[5] + "', '" + result[6] + "', '" + result[2] + "')";
			objDelBtn.onclick = new Function(strClick);
			
			setHiddenValue('hidUploadImgName', result[9]);
			setMsg('画像は正常にアップロードしました。');
		}
		else {
			setMsg('画像はアップロードしませんでした。');
		}
	}
	catch(ex) {
		myDebug('rUploadFile ' + ex.description);
	}
}

// common set onclick event of deleteButton after successful upload img 20090514
function sDeleteFile(imgId, deleteUrl, displayDivId, uploadDivId, itmId) {
	try {
		setFormDefaultTarget2("viewForm");
		if (confirm(MSG_DEL_ALERT) == false) {
			return false;
		}
		setHiddenValue('hidDDivId', displayDivId);
		setHiddenValue('hidUDivId', uploadDivId);
		setHiddenValue('hidInputImgName', imgId);
		setHiddenValue('hidOpItemId', itmId);
		callForm3(deleteUrl, "viewForm");
	}
	catch(ex) {
		myDebug('sDeleteFile ' + ex.description);
		return false;
	}
}

// common set do display after successful delete img 20090514
// result[0]->is successful
// result[1]->imgId
// result[2]->displayDivId
// result[3]->uploadDivId
function rDeleteFile(result) {
	if (result[0]) {
		var objImg = $(result[1]);
		objImg.src = CONST_HTML_BLANK;
		
		setInputDisplay(result[2], false);
		setInputDisplay(result[3], true);
		
		setHiddenValue('hidUploadImgName', '');
		
		setMsg('画像は正常に削除しました。');
	}
	else {
		setMsg('画像は削除しませんでした。');
	}
}

function get_advice_error() {
	
	if(global_advice_error != null) {
		return global_advice_error;
	}
	return "tdMsg";
}
function callback(result) {

	if(result.result == "error") {
		
		var advice_id = get_advice_error();
		var error_list = result.error;
		var ul = document.createElement("ul");
		for(var i = 0; i < error_list.length; i++) {
			var li = document.createElement("li");
			//alert(error_list[i].error_msg);
			li.innerHTML = error_list[i].error_msg;
			ul.appendChild(li);
		}
		if($(advice_id) != null) {
			$(advice_id).appendChild(ul);
			$(advice_id).style.display = "block";
		} else {
			alert('there is no advice_error div define.');			
		}
		
	} else if(result.result == "redirect") {
		
		location = result.redirect;
	} else {
		
		if(result.params != null) {
			
			eval(result.result)(result.params);
			
		} else {
			
			eval(result.result)();
			
		}
	}
}
/*
function clearError() {
	clearError('advice_error');
}

function clearError(advice_id) {
	if($(advice_id) != null) {
	
		$(advice_id).innerHTML = "";
		$(advice_id).style.display = "none";
	}
	global_advice_error = advice_id;
}
*/
function call(url, param) {
	
	call2(url, param, 'tdMsg');
}

function call3(url, param) {
	new Ajax.Request(
		url,
		{
			method : 'post',
			parameters : param,
			onComplete : function(req, result)
						{
							//alert(result);
							callback(result);
						}
		}
	);
}

function call2(url, param, advice_id) {

	clearError(advice_id);
	new Ajax.Request(
		url,
		{
			method : 'post',
			parameters : param,
			onComplete : function(req, result)
						{
							//alert(result);
							callback(result);
						}
		}
	);
}

function callForm(url, formID) {
	callForm2(url, formID, 'tdMsg');
}

function callForm2(url, formID, advice_id) {
	
	clearError(advice_id);

	new Ajax.Request(
		url,
		{
			method : 'post',
			parameters : Form.serialize($(formID)),
			onComplete : function(req, result) {
							callback(result);
						}
		}
	);
}

function callForm3(url, formID) {
	new Ajax.Request(
		url,
		{
			method : 'post',
			parameters : Form.serialize($(formID)),
			onComplete : function(req, result) {
							callback(result);
						}
		}
	);
}

function getRadioValue(radioName){
    
	var targetArrays = $A(document.getElementsByName(radioName));
	var value = null;
	
	targetArrays.find(
		function(item) {
			if(item.checked == true) {				
				value = item.value;
				return true;
			}
		}
	);
	return value;
}

function enterKeyCtrl(evt) {
	var e=(evt)?evt:window.event;
    if (e.keyCode == 13) {
        e.returnValue=false;
        e.cancel = true;
        document.viewForm.button.click();
    }
}