var global_advice_error = null;
function get_advice_error() {
	
	if(global_advice_error != null) {
		return global_advice_error;
	}
	return "advice_error";
}

function callback(result1,flag) {
	eval("var result = " + result1); 
	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);
			if(error_list[i].error_item == null || error_list[i].error_item == ''){
				li.innerHTML = error_list[i].error_msg;
			}else{
				li.innerHTML = error_list[i].error_item + ":" + error_list[i].error_msg;
			}
			ul.appendChild(li);
		}
		if(document.getElementById(advice_id) != null) {
			$(advice_id).appendChild(ul);
			$(advice_id).style.display = "block";
			if(flag == null || flag == "") {
				resizeFrame("mainFrame",$(advice_id).offsetHeight);
			}
		} else {
			alert('there is no advice_error div define.');			
		}
		
	} else if(result.result == "redirect") {
		
		location = result.redirect;
 	} else if(result.result == "alert") {
		eval("var msg = " + result.msgCode);
		alert(msg);
 	} else if(result.result == "alert_redirect") {
		eval("var msg = " + result.msgCode);
		alert(msg);
		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 == ''){
		advice_id = "advice_error";
	}
	if($(advice_id) != null) {
	
		$(advice_id).innerHTML = "";
		$(advice_id).style.display = "none";
	}
	global_advice_error = advice_id;
}

function call(url, param) {
	
	call2(url, param, 'advice_error');
}

function call3(url, param) {
//	new Ajax.Request(
//		url,
//		{
//			method : 'post',
//			parameters : param,
//			onComplete : function(req, result)
//						{
//							//alert(result);
//							callback(result);
//						}
//		}
//	);
        var myAjax = new Ajax.Updater( 
                    {success: 'advice_error'}, 
                    url, 
                    {method: 'post', parameters: param, onFailure: reportError,evalScripts:true}); 
}

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);
//						}
//		}
//	);
        var myAjax = new Ajax.Updater( 
                    {success: global_advice_error}, 
                    url, 
                    {method: 'post', parameters: param, onFailure: reportError,evalScripts:true}); 

}

function callForm(url, formID) {
	callForm2(url, formID, 'advice_error');
}

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);
//						}
//		}
//	);
        var myAjax = new Ajax.Updater( 
                    {success: global_advice_error}, 
                    url, 
                    {method: 'post', parameters: Form.serialize($(formID)), onFailure: reportError,evalScripts:true}); 

}

function callForm3(url, formID) {
//	new Ajax.Request(
//		url,
//		{
//			method : 'post',
//			parameters : Form.serialize($(formID)),
//			onComplete : function(req, result) {
//								alert(result);
//
//							callback(result);
//						}
//		}
//	);
        var myAjax = new Ajax.Updater( 
                    {success: 'advice_error'}, 
                    url, 
                    {method: 'post', parameters: Form.serialize($(formID)), onFailure: reportError,evalScripts:true}); 

}
function reportError(request) 
{ 
    alert('Sorry. There was an error.'); 
} 


function appendErrorString(error) {
	error = "[{error_item:'', error_msg:'" + error + "'}]";
	appendError(error);
}

function appendError(error,divId) {
	
	eval("var error_msg_list = " + error);
	appendErrorObj(error_msg_list);
}

function appendErrorObj(error_list){
		var advice_id = get_advice_error();
		clearError(advice_id);
		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);
			if(error_list[i].error_item == null || error_list[i].error_item == ''){
				li.innerHTML = error_list[i].error_msg;
			}else{
				li.innerHTML = error_list[i].error_item + ':' + 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.');			
		}

}

function getSelectedCheckBox(checkBoxName)    
{    
    var nodes = $A(document.getElementsByName(checkBoxName));    
    var sltNodes = nodes.select(function(node)    
    {    
    	return node.checked;    
    });
    return sltNodes;   
}

function getSelectedCheckBoxValues(checkBoxName)    
{    
    var nodes = $A(document.getElementsByName(checkBoxName));    
    var sltNodes=[];
    nodes.each(function(node)    
    {    
    	if(node.checked){
    		sltNodes.push(node.value);
    	}
    });
    return sltNodes;   
}

function showDialog(iframeSrc,iframeName,width,height,title,closeBtnFun) {
	ScreenConvert();
	var ShowDiv = getShowDiv(iframeSrc, iframeName, width, height, title, closeBtnFun);
	DialogShow(ShowDiv,width,height,width,height);
}

function getCheckedText(tree,node){ 

	var checked = [], i; 
	var root = false; 
	if( typeof node == 'undefined' ) { 
		node = tree.getRootNode(); 
		root = true; 
	} 
	if (!root && node.attributes.checked) {
		var text = node.text.split('　');
		checked.push(text[1]);
	}
	 
	if ( !node.isLeaf() ) { 
		for( i = 0; i < node.childNodes.length; i++ ) { 
			checked = checked.concat( getCheckedText(tree,node.childNodes[i]) ); 
		}
	}
	return checked; 
} 


/* チェックされたラジオボタンを取得する*/
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 getCheckedRadio(radioName){ 
    var targetArrays = $A(document.getElementsByName(radioName));
    var obj = null;

    targetArrays.find(
        function(item) {
            if(item.checked == true) {
              obj = item;
              return true;
            }
        }
    );
    return obj;
}

function resizeFrame(iframeId,adjHeight){
	var ifrm = 	parent.document.getElementById(iframeId);
	if(ifrm != null){
		ifrm.height = document.body.scrollHeight+adjHeight;
	}
}

/* 指定の画面オブジェクトの表示・非表示を切り替える */
function switchVisible(obj){
	if(!obj){
		return;
	}
	if(obj.style.display == "none"){
		obj.style.display = "block";
	}else{
		obj.style.display = "none";
	}
}

function roundNumber(Dight,How)       
{       
    return Math.round(Dight*Math.pow(10,How))/Math.pow(10,How);
}       

function isEmail(strEmail) {
	if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}

/* 数字チェック */
function isNum(keyCode){
	
	return ((keyCode.ctrlKey && keyCode == 97) || (keyCode.ctrlKey && keyCode == 99) ||(keyCode.ctrlKey && keyCode == 118) ||(keyCode.ctrlKey && keyCode == 120) || keyCode == 0 || keyCode == 8 || (keyCode >= 48) && (keyCode <= 57));
}

function numberOnly(evt){
	evt = evt || window.event;
	var iKeyCode = window.event?evt.keyCode:evt.which;
	if(!evt.ctrlKey && !isNum(iKeyCode)){
		if(window.event){
			evt.returnValue = false;
		}else{
			evt.preventDefault();
		}
	}
}

