//HAM XOA NOI DUNG TOAN BO TEXTBOX TRONG FORM, TRUYEN VAO FORM OBJECT
function fncDeleteTextbox(form) {
	var i;
	for (i=0; i<form.length; i++) {
		if (form.elements[i].type == "text") {
			form.elements[i].value = "";
		}
	}	
}

//HAM XET MOT DOI TUONG CO TON TAI TRONG FORM HAY KHONG, TRUYEN VAO FORM OBJECT
function isExistObject(formName, ObjName) {
	for (var i=0; i<formName.length; i++) {
		if (formName.elements[i].name == ObjName) return true;
	}
	return false;
}

function isTelNo(str) {
	var pattern = "0123456789-+() ";
	if (str.length > 0) {
		if (str.length < 5) {
			return false;
		} else {
			for (var a=0; a<pattern.length; a++) {
				if (pattern.indexOf(str.charAt(a),0) == -1) return false;
			}
		}
	}
	return true;	
}

function isNick(str) {
	var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_0123456789";
	if (str.length > 0) {
		if (str.length < 1) {
			return false;
		} else {
			for (var a=0; a<pattern.length; a++) {
				if (pattern.indexOf(str.charAt(a),0) == -1) return false;
			}
		}
	}
	return true;	
}

function isFileName(str) {
	var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_0123456789. ";
	if (str.length > 0) {
		if (str.length < 4) {
			return false;
		} else {
			for (var a=0; a<pattern.length; a++) {
				if (pattern.indexOf(str.charAt(a),0) == -1) return false;
			}
		}
	}
	return true;	
}

function isEmailAddr(email) {
	var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.0123456789@~";
	var theStr = new String(email)
	var index = theStr.indexOf("@");

	for (var a=0; a<pattern.length; a++) {
		if (pattern.indexOf(email.charAt(a),0) == -1) return false;
	}
	if (theStr.indexOf(" ",0) != -1) return false;
	if (index > 0) {
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+1)) return true;
	}
	return false;
}

function decimal_format(num, sep) {
	var str = new String(parseInt(num, 10));
	var result = new String('');

	while (str.length >= 3) {
		result = sep + str.substr (str.length - 3, 3) + result;
		str = str.substr(0, str.length - 3);
	}
	if (str.length > 0) result = str + result ;
	else result = result.substr(1, result.length);
	return result;
}

// Ham xet mot chuoi co phai la url hay khong
// type = 1: url binh thuong (chi la duong dan)
// type = 2: dia chi website (cho phep sub domain nhung khong duoc la sub directory)
// type = 3: dia chi website (khong sub domain, khong sub directory)
function isURL(str) {
	var pattern = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.0123456789/~:";
	if (str.length > 0) {
		if (str.length < 5 ) {
			return false;
		} else {
			if (str.lastIndexOf(".") == -1) { 											// khong tim thay dau cham
				return false;
			} else {
				if (str.lastIndexOf(".") == (str.length - 1)) return false;				// dau cham nam o cuoi cung
//				if (!isAlpha(str.charCodeAt(str.lastIndexOf(".") + 1))) return false;	// sau dau cham khong phai ki tu Alphabet
			}
			for (var c=0; c<pattern.length; c++) {
				if (pattern.indexOf(str.charAt(c),0) == -1) return false;				// ki tu khong hop le
			}
		}
	}
	return true;	
}

function isUserName(str) {
	var samplestr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.0123456789";
	if (str.length > 0) {
		for (var c=0; c<samplestr.length; c++) {
			if (samplestr.indexOf(str.charAt(c),0) == -1) return false;
		}
	}
	return true;	
}

function isAccountNumber(str) {
	var samplestr = "0123456789. ";
	if (str.length > 0) {
		for (var c=0; c<samplestr.length; c++) {
			if (samplestr.indexOf(str.charAt(c),0) == -1) return false;
		}
	}
	return true;	
}

//KIEM TRA NGAY THANG

function isLeafYear(intYear) { 										/*Ham kiem tra nam nhuan*/
	var bleReturn = false;
	
	intYear += 2000;	
	if (((intYear % 4) == 0) && !((intYear % 100) == 0)) bleReturn = true;
	else bleReturn = ((intYear % 400) == 0);
	return bleReturn;
}
function isValidDate(d, m, y) { 									/*Ham kiem tra ngay hop le*/
	var bleReturn = false;
	
	if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) {
		bleReturn = (d >= 1 && d <= 31);
	} else if (m == 4 || m == 6 || m == 9 || m == 11) {
		bleReturn = (d >= 1 && d <= 30);
	} else if (m == 2) {
		if (isLeafYear(y)) bleReturn = (d >= 1 && d <= 29);
		else bleReturn = (d >= 1 && d <= 28);
	}
	return bleReturn;
}

function isDate(strDate, type, separate) {								// type = 1: dd/mm/yyyy
	var arrDate;														// type = 2: mm/dd/yyyy
																		// separete: dau cach giua ngay thang nam
	arrDate = strDate.split(separate);	
	if (arrDate.length != 3) return false;
	else
		for (var i=0; i<arrDate.length; i++) {
			if (isNaN(arrDate[i])) return false;
		}
		if (type == 1) return isValidDate(parseInt(arrDate[0]), parseInt(arrDate[1]), parseInt(arrDate[2]));
		else if (type == 2) return isValidDate(parseInt(arrDate[1]), parseInt(arrDate[0]), parseInt(arrDate[2]));
}

//TAO HIGHLIGHT CHO DONG TRONG TABLE

var ns4 = document.layers?true:false; 
var ie = document.all?true:false; 
var dom = document.getElementById && !document.all?true:false;
//stores currently highlighted row id 

//gets dom object 
function getObject(nameStr) {
	if (dom) return document.getElementById(nameStr); 
	else if (ie) return document.all[nameStr]; 
	else if (ns4) return document.layers[nameStr]; 
} 

function Highlight(rowID,highLightClass) {
	rowObj = getObject(rowID); 
	rowObj.className = highLightClass; 
}

function unHighlight(rowID,normalClass) { 
	rowObj = getObject(rowID); 
	rowObj.className = normalClass; 
}

function selectRow(checkBox,rowID,highLightClass,normalClass) {
	if (checkBox.checked) {
		Highlight(rowID,highLightClass);
	} else {
		unHighlight(rowID,normalClass);
	}
}

function openWindow(filename,winname,width,height) {
	var features, top, left;
	
	left = (window.screen.width - width) / 2;
	top = (window.screen.height - height) / 2;	
	features = "width=" + width + ",height=" + height + ",top=" + top + ",left=" + left;
	void(window.open(filename,winname,features));
}

function s_ex(sMsg, seed) {
	var str = hex_md5(sMsg + seed);
	return str.substr(8, 6);
}

function log_out() {
	ht = document.getElementsByTagName("html");
	ht[0].style.filter = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)";
	if (confirm('Are you sure to exit ?')) {
		return true;
	} else {
		ht[0].style.filter = "";
		return false;
	}
}
var lastkey = -1;
function forceNumber(_textobj, _event, type) {
	//.->46; 0->48; 9->57
	//type = 1: real number, type = 2: interger number
	var char;
	if (window.event) char = _event.keyCode;				// IE
	else if (_event.which) char = _event.which;				// Netscape/Firefox/Opera
	
	if (type == 1) {
		if (lastkey == 46 || lastkey == -1) {
			if (!(char >= 48 && char <= 57)) {
				if (window.event) _event.returnValue = false;
				else _event.preventDefault();
			}
		} else {
			if (!(char == 46 || (char >= 48 && char <= 57))) {
				if (window.event) _event.returnValue = false;
				else _event.preventDefault();
			}
		}
	} else if (type == 2) {
		if (!(char >= 48 && char <= 57)) {
			if (window.event) _event.returnValue = false;
			else _event.preventDefault();
		}	
	}
	lastkey = char;
}

function m_over(obj,modname) {
	var content_obj = document.getElementById('content_' + modname);

	if (content_obj.style.display == 'none') obj.className = 'ECBut ECBut_plus';
	else obj.className = 'ECBut ECBut_minus';
}

function m_dosh(modname) {
	$("#content_" + modname).slideToggle();
}

function pwd_encode(str, key) {
	var len, temp;
	len = str.length;
	temp = hex_md5(hex_md5(str) + key);
	return temp.substring(0,len);
}
// Ham nap hinh anh ngay khi onload 
function MM_preloadImages() { //v3.0
	var d=document;
	if (d.images) {
		if (!d.MM_p) d.MM_p = new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
		for (i=0; i<a.length; i++)
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image;
				d.MM_p[j++].src=a[i];
			}
	}
}

var MooTools={version:"1.2.0",build:""};var Native=function(J){J=J||{};var F=J.afterImplement||function(){};var G=J.generics;G=(G!==false);var H=J.legacy;
var E=J.initialize;var B=J.protect;var A=J.name;var C=E||H;C.constructor=Native;C.$family={name:"native"};if(H&&E){C.prototype=H.prototype;}C.prototype.constructor=C;
if(A){var D=A.toLowerCase();C.prototype.$family={name:D};Native.typize(C,D);}var I=function(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=N;}if(G){Native.genericize(M,K,B);
}F.call(M,K,N);return M;};C.implement=function(L,K,N){if(typeof L=="string"){return I(this,L,K,N);}for(var M in L){I(this,M,L[M],K);}return this;};C.alias=function(M,K,N){if(typeof M=="string"){M=this.prototype[M];
if(M){I(this,K,M,N);}}else{for(var L in M){this.alias(L,M[L],K);}}return this;};return C;};Native.implement=function(D,C){for(var B=0,A=D.length;B<A;B++){D[B].implement(C);
}};Native.genericize=function(B,C,A){if((!A||!B[C])&&typeof B.prototype[C]=="function"){B[C]=function(){var D=Array.prototype.slice.call(arguments);return B.prototype[C].apply(D.shift(),D);
};}};Native.typize=function(A,B){if(!A.type){A.type=function(C){return($type(C)===B);};}};Native.alias=function(E,B,A,F){for(var D=0,C=E.length;D<C;D++){E[D].alias(B,A,F);
}};(function(B){for(var A in B){Native.typize(B[A],A);}})({"boolean":Boolean,"native":Native,object:Object});(function(B){for(var A in B){new Native({name:A,initialize:B[A],protect:true});
}})({String:String,Function:Function,Number:Number,Array:Array,RegExp:RegExp,Date:Date});(function(B,A){for(var C=A.length;C--;C){Native.genericize(B,A[C],true);
}return arguments.callee;})(Array,["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice","toString","valueOf","indexOf","lastIndexOf"])(String,["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]);
function $chk(A){return !!(A||A===0);}function $clear(A){clearTimeout(A);clearInterval(A);return null;}function $defined(A){return(A!=undefined);}function $empty(){}function $arguments(A){return function(){return arguments[A];
};}function $lambda(A){return(typeof A=="function")?A:function(){return A;};}function $extend(C,A){for(var B in (A||{})){C[B]=A[B];}return C;}function $unlink(C){var B;
switch($type(C)){case"object":B={};for(var E in C){B[E]=$unlink(C[E]);}break;case"hash":B=$unlink(C.getClean());break;case"array":B=[];for(var D=0,A=C.length;
D<A;D++){B[D]=$unlink(C[D]);}break;default:return C;}return B;}function $merge(){var E={};for(var D=0,A=arguments.length;D<A;D++){var B=arguments[D];if($type(B)!="object"){continue;
}for(var C in B){var G=B[C],F=E[C];E[C]=(F&&$type(G)=="object"&&$type(F)=="object")?$merge(F,G):$unlink(G);}}return E;}function $pick(){for(var B=0,A=arguments.length;
B<A;B++){if(arguments[B]!=undefined){return arguments[B];}}return null;}function $random(B,A){return Math.floor(Math.random()*(A-B+1)+B);}function $splat(B){var A=$type(B);
return(A)?((A!="array"&&A!="arguments")?[B]:B):[];}var $time=Date.now||function(){return new Date().getTime();};function $try(){for(var B=0,A=arguments.length;
B<A;B++){try{return arguments[B]();}catch(C){}}return null;}function $type(A){if(A==undefined){return false;}if(A.$family){return(A.$family.name=="number"&&!isFinite(A))?false:A.$family.name;
}if(A.nodeName){switch(A.nodeType){case 1:return"element";case 3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace";}}else{if(typeof A.length=="number"){if(A.callee){return"arguments";
}else{if(A.item){return"collection";}}}}return typeof A;}var Hash=new Native({name:"Hash",initialize:function(A){if($type(A)=="hash"){A=$unlink(A.getClean());
}for(var B in A){this[B]=A[B];}return this;}});Hash.implement({getLength:function(){var B=0;for(var A in this){if(this.hasOwnProperty(A)){B++;}}return B;
},forEach:function(B,C){for(var A in this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this);}}},getClean:function(){var B={};for(var A in this){if(this.hasOwnProperty(A)){B[A]=this[A];
}}return B;}});Hash.alias("forEach","each");function $H(A){return new Hash(A);}Array.implement({forEach:function(C,D){for(var B=0,A=this.length;B<A;B++){C.call(D,this[B],B,this);
}}});Array.alias("forEach","each");function $A(C){if(C.item){var D=[];for(var B=0,A=C.length;B<A;B++){D[B]=C[B];}return D;}return Array.prototype.slice.call(C);
}function $each(C,B,D){var A=$type(C);((A=="arguments"||A=="collection"||A=="array")?Array:Hash).each(C,B,D);}Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(B){for(var A in this){if(this.hasOwnProperty(A)&&this[A]===B){return A;
}}return null;},hasValue:function(A){return(Hash.keyOf(this,A)!==null);},extend:function(A){Hash.each(A,function(C,B){Hash.set(this,B,C);},this);return this;
},combine:function(A){Hash.each(A,function(C,B){Hash.include(this,B,C);},this);return this;},erase:function(A){if(this.hasOwnProperty(A)){delete this[A];
}return this;},get:function(A){return(this.hasOwnProperty(A))?this[A]:null;},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=B;}return this;
},empty:function(){Hash.each(this,function(B,A){delete this[A];},this);return this;},include:function(B,C){var A=this[B];if(A==undefined){this[B]=C;}return this;
},map:function(B,C){var A=new Hash;Hash.each(this,function(E,D){A.set(D,B.call(C,E,D,this));},this);return A;},filter:function(B,C){var A=new Hash;Hash.each(this,function(E,D){if(B.call(C,E,D,this)){A.set(D,E);
}},this);return A;},every:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&!B.call(C,this[A],A)){return false;}}return true;},some:function(B,C){for(var A in this){if(this.hasOwnProperty(A)&&B.call(C,this[A],A)){return true;
}}return false;},getKeys:function(){var A=[];Hash.each(this,function(C,B){A.push(B);});return A;},getValues:function(){var A=[];Hash.each(this,function(B){A.push(B);
});return A;},toQueryString:function(A){var B=[];Hash.each(this,function(F,E){if(A){E=A+"["+E+"]";}var D;switch($type(F)){case"object":D=Hash.toQueryString(F,E);
break;case"array":var C={};F.each(function(H,G){C[G]=H;});D=Hash.toQueryString(C,E);break;default:D=E+"="+encodeURIComponent(F);}if(F!=undefined){B.push(D);
}});return B.join("&");}});Hash.alias({keyOf:"indexOf",hasValue:"contains"});

function paramsToObject(params) {
	var i;
	var temp1 = new Array();
	temp1 = params.split('&');
	var result = new Hash();
	for (i=0; i<temp1.length; i++) {		
		var temp2 = temp1[i].split('=');
		result.set(temp2[0], temp2[1]);
	}
	return result;	
}

function getAjaxPage(block, page, method, params, rpath) {
	var url = rpath + 'execajax.php';
	var kvc = 'kvc=';
	var fmt = (method == 'g') ? 'GET' : 'POST';
	var prs, block_content;
	
	kvc += document.getElementById('kv_path_' + page).value;
	
	if (params != '' && params.substring(0,1) != '&') kvc += '&';
	
	prs = kvc + params;
	
	block_content = document.getElementById(block);
	if (block_content == null) block_content = parent.document.getElementById(block);

	AjaxRequest.doRequest(fmt,
		{
		'url':url
		,'parameters':paramsToObject(prs)
		,'onSuccess':function(req){block_content.innerHTML = req.responseText;}
		,'onLoading':function(req){block_content.innerHTML = '<img src="' + rpath + 'images/loading.gif" border="0">';}
		,'onError':function(req){block_content.innerHTML = req.statusText;}
		}
	)
}

fncSetAction = function(action,rid) {
	document.getElementById('kv_act').value = action;
	document.getElementById('kv_recordid').value = rid;
}

set_notify = function(obj, action, cssclass, message) {
	var notify = document.getElementById(obj + '_notify');
	if (action == 'show') {
		notify.className = cssclass;
		notify.innerHTML = message;
		notify.style.display = 'block';
	} else {
		notify.style.display = 'none';
	}
}

check_validate = function() {
	for (var i=0; i<arguments.length; i++) {
		if (document.getElementById(arguments[i] + '_notify').style.display == 'block') return false;
	}
	return true;
}


function getGrossOffsetLeft(elem) {
    var offset = 0
    while (elem.offsetParent) {
        // correct for IE/Mac discrepancy between offset and style coordinates,
        // but not if the parent is HTML element (NN6)
        offset += (elem.offsetParent.tagName != "HTML") ? 
            parseInt(elem.style.left) - parseInt(elem.offsetLeft) : 0
        elem = elem.offsetParent
        offset += elem.offsetLeft
    }
    return offset
}

var to;
function navi_show(nid,type) {
	$("li[@name=d_d]").css("z-index",99);
	$("#"+nid).css("z-index",100);

	$("li[@name=d_d]").removeClass("current");
	$("#"+nid).addClass("current");
	if (type != 'public') {
		$("li[@name=d_d]").children("div").hide();
		$("#"+nid).children("div").html($("#"+$("#"+nid).attr("id")+"_c").html()); 
		var left_sub = - document.getElementById(nid).offsetLeft; 
		$("#"+nid).children("div").css("left",left_sub);
		$("#"+nid).children("div").show();
	}
}

