function jsonSet(id, field, value, callback){
	var url = '/json/set/'+id+'/1';
	var params = '{"'+field+'":"'+value+'"}';
    jQuery.ajax({
                    url: url,
                    data: params,
                    complete:function(request) {
                        var res = request.responseText;
                        if (res == "false") refresh();
                        else eval(callback);
                    }
                });
	//var aj = new Ajax.Request(url,
	//	{
	//		method:'post',
	//		parameters:params,
	//		onComplete:function(request) {
	//			var res = request.responseText;
	//			if(res=="false"){
	//				errorDialog('Unable to change "'+field+'" to "'+value+'"','Error!');
	//				refresh();
	//			}else{
	//				eval(callback);
	//			}
	//		}//..function
	//	}//..property list
	//);//.. ajax request
}

function jsonNonImmixSet(id, idfld, table, field, value, callback){
	var url = '/json/nonimmix_set/'+id+'/'+idfld+'/'+table;
	var params = '{"'+field+'":"'+value+'"}';
    jQuery.ajax({
                    url: url,
                    data: params,
                    complete:function(request) {
                        var res = request.responseText;
                        if (res == "false") refresh();
                        else eval(callback);
                    }
                });
	//var aj = new Ajax.Request(url,
	//	{
	//		method:'post',
	//		parameters:params,
	//		onComplete:function(request){
	//			var res = request.responseText;
	//			if(res=="false"){
	//				errorDialog('Unable to change "'+field+'" to "'+value+'"', 'Error!');
	//				refresh();
	//			}else{
	//					eval(callback);
	//			}
	//		}
	//	}
	//);
}

/**
 * Requires: Prototype.js
 */
function jsonQsave(type, id2, id1, rel, reltype, grp, subgrp, field, value, callback){
	var url = '/json/qsave/'+type+'/'+id2+'/'+id1+'/'+rel+'/'+reltype+'/'+grp+'/'+subgrp;
    if(is_array(field)){
        var params = '{';
        for(var i = 0; i < field.length; i++){
            params += '"'+field[i]+'":"'+value[i];
        }
        params += '}';
    }else{
	    var params = '{"'+field+'":"'+value+'"}';
    }
    jQuery.ajax({
                    url: url,
                    data: params,
                    complete: function(request) {
                        var res = request.responseText;
                        if (res == "false") refresh();
                        else eval(callback);
                    }
                });
	//var aj = new Ajax.Request(url,
	//	{
	//		method:'post',
	//		parameters:params,
	//		onComplete:function(request) {
	//			var res = request.responseText;
	//			if(res=="false"){
	//				errorDialog('Unable to save "'+field+'" as "'+value+'"','Error!');
	//				refresh();
	//			}else{
	//				eval(callback);
	//			}
	//		}//..function
	//	}//..property list
	//);//.. ajax request
}
function jsonSet(id, field, value, callback){
    console.log("jsonSet");
	var url = '/json/set/'+id+'/1';
	var params = '{"'+field+'":"'+value+'"}';
    jQuery.ajax({
                    url:url,
                    data: data,
                    complete:function(request) {
                        var res = request.responseText;
                        if (res == "false") {}
                    }
                });
	//var aj = new Ajax.Request(url,
	//	{
	//		method:'post',
	//		parameters:params,
	//		onComplete:function(request) {
	//			var res = request.responseText;
	//			if(res=="false"){
	//				errorDialog('Unable to change "'+field+'" to "'+value+'"','Error!');
	//				refresh();
	//			}else{
	//				eval(callback);
	//			}
	//		}//..function
	//	}//..property list
	//);//.. ajax request
}

function jsonNonImmixSet(id, idfld, table, field, value, callback){
    console.log("jsonNonImmixSet");
	var url = '/json/nonimmix_set/'+id+'/'+idfld+'/'+table;
	var params = '{"'+field+'":"'+value+'"}';
	//var aj = new Ajax.Request(url,
	//	{
	//		method:'post',
	//		parameters:params,
	//		onComplete:function(request){
	//			var res = request.responseText;
	//			if(res=="false"){
	//				errorDialog('Unable to change "'+field+'" to "'+value+'"', 'Error!');
	//				refresh();
	//			}else{
	//					eval(callback);
	//			}
	//		}
	//	}
	//);
}

/**
 * Requires: Prototype.js
 */
function jsonQsave(type, id2, id1, rel, reltype, grp, subgrp, field, value, callback){
    console.log("jsonQsave");
	var url = '/json/qsave/'+type+'/'+id2+'/'+id1+'/'+rel+'/'+reltype+'/'+grp+'/'+subgrp;
    if(is_array(field)){
        var params = '{';
        for(var i = 0; i < field.length; i++){
            params += '"'+field[i]+'":"'+value[i];
        }
        params += '}';
    }else{
	    var params = '{"'+field+'":"'+value+'"}';
    }
	var aj = new Ajax.Request(url,
		{
			method:'post',
			parameters:params,
			onComplete:function(request) {
				var res = request.responseText;
				if(res=="false"){
					errorDialog('Unable to save "'+field+'" as "'+value+'"','Error!');
					refresh();
				}else{
					eval(callback);
				}
			}//..function
		}//..property list
	);//.. ajax request
}

function jsonView(id){
    var title = arguments.length > 1 ? arguments[1] : "View Fraud Analysis Result";
    var w = arguments.length > 2 ? arguments[2] : 600;
    var h = arguments.length > 3 ? arguments[3] : 400;
    var rely = 50;
    overlib('<div id="jsonview" align="center" style="width:'+w+'px;height:'+h+'px">' +
                '<img src=\'/theme/default/image/icon_loading.gif\'>&nbsp;System is loading. Please wait...</div>',
                STICKY, CAPTION,title,CAPTIONFONTCLASS,'overlaycap',CLOSESIZE,'12px',MIDX,0,RELY,rely,CLOSETEXT,'',
                CLOSECLICK,WIDTH,w,HEIGHT,h,FGCOLOR,'#FFFFFF',
                CGBACKGROUND,'/theme/default/image/mi_gr_bg.jpg',BGCOLOR,'#999999');
    var theme = arguments.length > 4 ? arguments[4] : 'standard';
    var url         = '/json/view/'+id+'/'+theme;
    OLgetAJAX(url,function(){
        eval('var res ='+OLresponseAJAX);
        var overlayDiv = wd.getElementById('jsonview');
        overlayDiv.className = 'overlay';
        wd.getElementById('jsonview').innerHTML = res + '<p align="center"><a href="javascript:void(0)" onclick="cClick();" title="Close Window"><img src="/img/buttons/button_close.gif" border="0" /></a></p>';
    });
}

function overlibshow(url, caption){
    overlib('<div id="viewcontent" style="width:'+(arguments.length>2&&parseInt(arguments[2])>0?arguments[2]:'650')+'px;height:'+(arguments.length>3&&parseInt(arguments[3])>0?arguments[3]:'525')+'px;overflow:auto" align="left"><div id="loadingbox"><img src="/img/loading.gif" align="center" alt="loading"></div></div>',CAPTION,caption,CAPTIONFONT, "Arial, Verdana, sans-serif;", CLOSEFONT, WIDTH, (arguments.length>2&&parseInt(arguments[2])>0?arguments[2]:650), HEIGHT,(arguments.length>3&&parseInt(arguments[3])>0?arguments[3]:'525'),CLOSESIZE,"12px", CAPTIONSIZE,"12px", TEXTSIZE,"12px", MIDX,0,RELY,25,STICKY, CLOSECLICK,MODAL,WRAP,CLOSETEXT,'Đóng', FGCOLOR,'#FFFFFF',CGBACKGROUND,'/img/overlibcap_bg.jpg',BGCOLOR,'#999999');
    var arr = url.split('.');
    if(arr[arr.length-1]=="html") {
        var mode = 'static';
    }
    else{
        var mode = 'json';
        url = '/json/view/'+url;
        if(arguments.length > 2)
            url = url + '/' + arguments[2];
    }
    OLgetAJAX(url,function(){
        if(mode == 'static') var res = OLresponseAJAX;
        else eval('var res = '+ OLresponseAJAX);
        window.document.getElementById('viewcontent').innerHTML = res;
    }
    );
}
function overlibajaxload(url){
    wd.getElementById('viewcontent').innerHTML = '<div id="loadingbox"><img src="/img/loading.gif" align="center" alt="loading"></div>';
/*      var ajax = new Ajax.Updater('viewcontent', url, {method:'get',asynchronous:true,evalScripts:true}); */
    var ajax = jQuery('#viewcontent').load(url);
}
function getcheckedbox(cfm_msg){
    var dml     = document.forms[0];
    var len     = dml.elements.length;
    var patt    = /^check_([\d]+)$/i;
    var id_cnt  = 0;
    var id_arr  = new Array();
    for(var i=0; i<len;i++){
        var e=dml.elements[i];
        if(e.type=="checkbox") {
                        var matches = patt.exec(e.name);
            if((matches.length > 0) && (e.checked == true)){
                var arr                 = patt.exec(e.name);
                var id              = parseInt(arr[1]);
                id_arr[id_cnt]          = id;
                id_cnt++;
            }
        }
    }
    
    if(id_arr.length > 0){
        if(cfm_msg.length>0&&!confirm(cfm_msg)) return false;
    }else{
        var warning_msg = arguments.length > 1 ? arguments[1] : 'You did not select any item';
        alert(warning_msg);
        return false;
    }
    return id_arr;
}

function getallinput(type){
    var dml     = document.forms[0];
    var len     = dml.elements.length;
    var elm         = new Array();
    for(var i=0;i<len;i++){
        var e=dml.elements[i];
        if(e.type.toLowerCase()==type)
            elm[i] = e.getAttribute('id');
    }
    return elm;
}

function check_all() {
    var dml         = document.forms[0];
    var len         = dml.elements.length;
    var check_all   = dml.check_all;
    var regex       = /^check_([\d]+)$/i;
    for (var i = 0;i<len;i++) {
        var e = dml.elements[i];
        if(regex.exec(e.name))
            e.checked = dml.all.checked;
    }
}

function in_array(the_needle, the_haystack){
    var the_hay = the_haystack.toString();
    if(the_hay == ''){
        return false;
    }
    var the_pattern = new RegExp(the_needle, 'g');
    var matched = the_pattern.test(the_haystack);
    return matched;
}
