function RefreshLink()
{
	var url=window.location.href;
	var hash=window.location.hash;
	if(hash.length>2&&hash.indexOf("#")!=-1)
	{
		arrU=url.split("?");
		arrQ=arrU[1].split("#");
		strP=arrQ[0];
		strH=arrQ[1];
		var strUrl='';
		var listAdd='';
		var arrP_P=Array();
		var arrP_V=Array();
		arrP=strP.split("&");
		for(i=0;i<arrP.length;i++)
		{
			arrTemp1=arrP[i].split("=");
			arrP_P[i]=arrTemp1[0];
			arrP_V[i]=arrTemp1[1];
		}
		arrH=strH.split("&");
		for(j=0;j<arrH.length;j++)
		{
			arrTemp=arrH[j].split("=");
			bAdd=true;
			for(i=0;i<arrP.length;i++)
			{
				if(arrTemp[0]==arrP_P[i])
				{
					arrP_V[i]=arrTemp[1];
					bAdd=false;
				}
			}
			if(bAdd) listAdd+='&'+arrTemp[0]+"="+arrTemp[1];
		}
		for(i=0;i<arrP.length;i++) strUrl+='&'+arrP_P[i]+'='+arrP_V[i];
		strUrl='?'+strUrl.substring(1)+listAdd;
		window.location.href=strUrl;
	}
}
RefreshLink();

function isEmail(s)
{
  if (s=="") return false;
  if(s.indexOf(" ")>0) return false;
  if(s.indexOf("@")==-1) return false;
  var i = 1;
  var sLength = s.length;
  if (s.indexOf(".")==-1) return false;
  if (s.indexOf("..")!=-1) return false;
  if (s.indexOf("@")!=s.lastIndexOf("@")) return false;
  if (s.lastIndexOf(".")==s.length-1) return false;
  var str="abcdefghikjlmnopqrstuvwxyz-@._1234567890"; 
  for(var j=0;j<s.length;j++)
	if(str.indexOf(s.charAt(j))==-1)
		return false;
   return true;
}
function GoUrl(url){window.location.href=url;}

function OpenViewImgs(form_,obj,folder)
{
	var strUrl="viewimgs.php?form="+form_+"&obj="+obj+"&fder="+folder;
	window.status="Open";
	window.open(strUrl,"View","scrollbars=yes,width=650,height=400");
}
/*function OpenFileManager(ctl)
{
	var folder=document.getElementById(ctl).value;
	var subpar="";
	if(folder!=""&&folder.lastIndexOf("/")!=-1)
	{
		folder=folder.substr(0,folder.lastIndexOf("/"));
		subpar="&dir="+folder;
	}
	var strUrl="filemanager.php?ctl="+ctl+subpar+"&wopen=1";
	window.status="Open";
	window.open(strUrl,"View","width=800,height=600,toolbar=yes,scrollbars=yes");
}*/

function OpenFileManager(id)
{
	window.SetUrl=function(val)
	{
		val=val.replace(/[a-z]*:\/\/[^\/]*/,'');
		$("#"+id).val(val);
	};
	window.open('editor/plugins/kfm/?lang=vi','kfm','width=700,height=500');
}

function ViewImage(file)
{
	var strUrl="viewimage.php?f="+file;
	window.status="Open";
	window.open(strUrl,"View","scrollbars=no,width=400,height=400");
}

function SelectChange(obj)
{if(obj.options[obj.selectedIndex].value != 0) window.location.href=obj.options[obj.selectedIndex].value;}

function CheckDel(){if (confirm('Bạn chắc chắn muốn xoá không?')){return true;}else{return false;}}

function OpenWin(strUrl,Name,Boder){window.open(strUrl,Name,Boder)}
function changeto(obj,strClass){
	if(strClass!=""){
		obj.className = strClass;
	}
	obj.style.cursor = 'hand';
}

function ObjectExist(id){return ($("#"+id)==undefined)?false:true;}

function CheckBoxAll(_form,chkBox,type)
{
	/*
	type=0: Check All
	type=1: Uncheck All
	*/
	var els = $("form :checkbox");
	for(i=0; i<els.length; i++)
	{ 
		if(els[i].name.substr(0,chkBox.length)==chkBox&&!els[i].disabled)
		{
			if(type==0) els[i].checked=true;
			else els[i].checked=false;
		}
	}
}


function GetListCheckboxValue(_form,chkBox)
{
	var list='';
	var els = $("form :checkbox");
	j=0;
	for(i=0; i<els.length; i++)
	{ 
		if(els[i].name.substr(0,chkBox.length)==chkBox&&els[i].checked)
		{
			if(j==0) list+=els[i].value; else list+=","+els[i].value;
			j++;
		}
	}
	return list;
}

function calculatechon(_form)
{
	var list="";
	var els = $("form :checkbox");
	j=0;
	for(i=0; i<els.length; i++)
	{ 
		if(els[i].checked)
		{
			if(j==0) list+=els[i].value; else list+=","+els[i].value;
			}
			j++;
		}
	list+=",";
	return list;
}

function flashWrite(url,w,h,vars,id,bg){
	 var flashStr=
	"<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' width='"+w+"' height='"+h+"' id='"+id+"' align='middle'>"+
	"<param name='allowScriptAccess' value='always' />"+
	"<param name='movie' value='"+url+"' />"+
	"<param name='FlashVars' value='"+vars+"' />"+
	"<param name='wmode' value='transparent' />"+
	"<param name='menu' value='false' />"+
	"<param name='quality' value='high' />"+
	"<embed src='"+url+"' FlashVars='"+vars+"' wmode='transparent' menu='false' quality='high' width='"+w+"' height='"+h+"' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />"+
	"</object>";
	document.write(flashStr);
}

// NDK Loading

var timershow=false;
var curx=-200;
var cury=350;
var win_w=window.innerWidth ? window.innerWidth : document.body.offsetWidth;
var win_h=window.screenHeight? window.innerHeight: document.body.offsetHeight;
var mid_w=win_w/2-100;
var mid_h=win_h/2+20;

function show_Loading() {
	obj = $("#LoadingDiv");
	//alert(obj.left);
	obj.css("left",mid_w + "px");
	obj.css("top",mid_h+ "px");
}

function hide_Loading() {
	obj = $("#LoadingDiv");
	obj.css("left",curx + "px");
	obj.css("top",cury+ "px");
}
// End

function AddHref(param)
{
	window.location.hash=param;
}

function CheckField(_form,listfiled,strAlert)
{
	arrTmp=listfiled.split(',');
	for(i=0;i<arrTmp.length;i=i+2)
	{
		if($('#'+_form+' input[name='+arrTmp[i]+']').val()==arrTmp[i+1])
		{
			alert(strAlert);
			$('#'+_form+' input[name='+arrTmp[i]+']').focus();
			return false;
		}
		if($('#'+_form+' select[name='+arrTmp[i]+']').val()==arrTmp[i+1])
		{
			alert(strAlert);
			$('#'+_form+' select[name='+arrTmp[i]+']').focus();
			return false;
		}
	}
	return true;
}

function CheckFieldNumber(_form,listfiled,strAlert)
{
	arrTmp=listfiled.split(',');
	for(i=0;i<arrTmp.length;i++)
	{
		if(isNaN($('#'+_form+' input[name='+arrTmp[i]+']').val()))
		{
			alert(strAlert);
			$('#'+_form+' input[name='+arrTmp[i]+']').focus();
			return false;
		}
	}
	return true;
}
function ShowTabClick(path)
{
	var ctl=$('#ShowTabLeft');
	var ConfigTab;
	if(ctl.attr('class')=='Show')
	{
		ctl.attr({'class':'Hide'})
		$('#ImageTabShow').attr("src",path+"images/bar_open.gif");
		ConfigTab=1;
	}else
	{
		ctl.attr({'class':'Show'})
		$('#ImageTabShow').attr("src",path+"images/bar_close.gif");
		ConfigTab=0;
	}
	$.ajax({type: "GET",url:"admin_ajax.php",data:'modul=main&sub=ajax&method=tab&cfg='+ConfigTab});
}

function ShowHideById(ShowId,HideId)
{
	Element.show(ShowId);
	Element.hide(HideId);
}

function ShowContentById(id,ctlID)
{
	var IdHide=$("#"+ctlID).val();
	$("#"+ctlID).val(id);
	if(IdHide!=id) 
	{
		$("#"+id).show();
		if(IdHide!='') $("#"+IdHide).hide();
	}
	else ($("#"+id).css("display")=='block')?$("#"+id).hide():$("#"+id).show();
}
function LoadAjaxPage(method,url,param,id,bRedirect,ulrRedirect)
{
	var RedirectUrl=document.location.href;
	param=param.replace("?","");
	if(bRedirect==true&&ulrRedirect!="") RedirectUrl=ulrRedirect;
	show_Loading();
	//alert(url);
	$.ajax(
	{
		type: method, 
		url: url,
		data: param, 
		success: function(transport)
		{
			textValue=$.trim(transport);
			//alert(textValue);
			hide_Loading();
			if(textValue=="OK"&&bRedirect==true)
			{
				document.location.href=RedirectUrl;
			}else
			{
				if(textValue.substring(0,6)=="ALERT!")
				{
					alert(textValue.substring(6));
				}else
				{
					if(textValue.substring(0,3)=="OK!"&&bRedirect==true)
					{
						alert(textValue.substring(3));
						document.location.href=RedirectUrl;
					}else
					{
						$("#"+id).html(textValue);
					}
				}
			}
		}
	});
}

function AjaxLoad(url,param,id)
{
	LoadAjaxPage('GET',url,param,id,false,'');
}
function AjaxLoad1(url,param,id,bRedirect)
{
	LoadAjaxPage('GET',url,param,id,bRedirect,'');
}
function AjaxLoad2(url,param,id,bRedirect,ulrRedirect)
{
	LoadAjaxPage('GET',url,param,id,bRedirect,ulrRedirect);
}

/*function GetAjaxDataPost(_form,param)
{
	var els =$(_form).elements; 
	query='rand='+parseInt(Math.random()*99999999)+'&'+param;
	for(i=0; i<els.length; i++)
	{
		if(els[i].type=="checkbox"&&(!(els[i].checked)||els[i].disabled))
			query+='&'+els[i].name+'=';
		else
		{
			if(els[i].type!="radio")
			{
				value=els[i].value;
				value=value.replace(/#/g,"[0023;]");
				value=value.replace(/&/g,"[0026;]");
				value=value.replace(/\?/g,"[003F;]");
				//value=value.replace("\\","[+005C;]");
				query+='&'+els[i].name+'='+encodeURI(value);
			}else
			if(els[i].type=="radio"&&els[i].checked&&!els[i].disabled)
				query+='&'+els[i].name+'='+encodeURI(els[i].value);
		}
	}
	return query;
}
*/function AjaxPost(_form,url,param,id,bRedirect,ulrRedirect)
{
	var query =$.param($("#"+_form).serializeArray())+"&"+param; 
	//alert(query);
	LoadAjaxPage('POST',url,query,id,bRedirect,ulrRedirect);
}
function AjaxPostWithLoad(_form,url,param,id,url1,param1,id1)
{
	show_Loading();
	var query =GetAjaxDataPost(_form,param); 
	var Load=false;
	var myAjax = new Ajax.Request(
	url, 
	{
		method: 'post', 
		parameters: query, 
		onComplete: function(transport)
		{
			textValue=trim(transport.responseText);
			hide_Loading();
			if(textValue=="OK")
			{
				$(id).innerHTML='';
				Load=true;
			}else
			{
				if(textValue.substring(0,6)=="ALERT!")
				{
					alert(textValue.substring(6));
				}else
				{
					if(textValue.substring(0,3)=="OK!")
					{
						Load=true;
						$(id).innerHTML='';
						alert(textValue.substring(3));
					}else
					{
						$(id).innerHTML=textValue;
					}
				}
			}
			if(Load)
			{
				$(_form).disable();
				AjaxLoad(url1,param1,id1);
			}
		}
	});
}

function RefreshCaptcha(id)
{
	var src=$("#"+id).attr('src');
	$("#"+id).attr('src',src+'?rnd='+Math.random());
}

function ChangeNumberPerPage(ctl,from,url,param,id,drect,urldrect)
{
	param=param+"&"+ctl.name+"="+ctl.value;
	AjaxPost(from,url,param,id,drect,urldrect);
}
function LoadCheckValueExist(method,url,param,id)
{
	show_Loading();
	$.ajax(
	{
		type: method, 
		url: url,
		data: param, 
		success: function(transport)
		{
			textValue=$.trim(transport);
			hide_Loading();
			if(textValue=="TRUE") text='<img src="images/true.gif" width="16px" height="16px">';
			else if(textValue=="FALSE") text='<img src="images/false.gif" width="16px" height="16px">';
			$("#"+id).html(text);
		}
	});
}

function CheckValueExist(form,field,url,param,id,defcheck,defshow)
{
	valueCheck=$("#"+form+" input[name="+field+"]").val();
	if(trim(valueCheck)!=defcheck)
	{
		param+="&"+field+"="+encodeURI(valueCheck);
		LoadCheckValueExist('get',url,param,id);
	}else $("#"+id).html(defshow);
}

function ajaxSelect2Select(selectbox1,selectbox2,url,param)
{
	var selbox1=$("#"+selectbox1);
	var sel=selbox1.val();
	$("#"+selectbox2).html('<option value=""></option>');
	$("#"+selectbox2).attr({"disabled":"disabled"});
	$.ajax(
	{
		type: 'GET', 
		url: url,
		data:  param+'&'+selectbox1+'='+sel,
		success: function(transport)
		{
			var textValue=$.trim(transport);
			var arr = new Array();
			arr = textValue.split(",");
			var options = '';
			for (var i = 0; i < arr.length-1; i=i+2) 
			{
				options += '<option value="' + arr[i] + '">' + arr[i+1] + '</option>';
			}
			$("#"+selectbox2).html(options);
			$("#"+selectbox2).attr({"disabled":""});
		}
	});
}
function addOption(selectbox,value,text)
{
	for (var i = 0; i < j.length; i++) 
	{
		options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
	}
	$("#"+selectbox).html(options);
}
/*function removeAllOptions(selectbox)
{
	var selbox=$("#"+selectbox);
    for(i=selbox.options.length-1;i>=0;i--){selbox.remove(i);}
}*/

function CompareString(str1,str2,lowcase)
{
	if(lowcase=true)
	{
		str1=str1.toLowerCase();
		str2=str2.toLowerCase();
	}
	if(str1==str2) return true;
	else return false;
}

function CheckValue2Field(form,field1,field2,id,defcheck,defshow)
{
	var val1=$("#"+form+" input[name="+field1+"]").val();
	var val2=$("#"+form+" input[name="+field2+"]").val();
	if(!(val1==defcheck&&val2==defcheck))
	{
		if(CompareString(val1,val2,false))
			text='<img src="images/true.gif" width="16px" height="16px">';
		else text='<img src="images/false.gif" width="16px" height="16px">';
		$("#"+id).html(text);
	}else $("#"+id).html(defshow);
}

function CheckFieldValue(form,field,idshow,defcheck,defshow)
{
	if($("#"+form+" input[name="+field+"]").val()==defcheck) $("#"+idshow).html(defshow);
	else $("#"+idshow).html('<img src="images/true.gif" width="16px" height="16px">');
}


//Start ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Check Password Strenght

function checkPassword(strPassword)
{
	var bCheckNumbers = true;
	var bCheckUpperCase = true;
	var bCheckLowerCase = true;
	var bCheckPunctuation = true;
	var nPasswordLifetime = 365;
	// Reset combination count
	nCombinations = 0;
	
	// Check numbers
	if (bCheckNumbers)
	{
		strCheck = "0123456789";
		if (doesContain(strPassword, strCheck) > 0) nCombinations += strCheck.length; 
	}
	
	// Check upper case
	if (bCheckUpperCase)
	{
		strCheck = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		if (doesContain(strPassword, strCheck) > 0) nCombinations += strCheck.length; 
	}
	
	// Check lower case
	if (bCheckLowerCase)
	{
		strCheck = "abcdefghijklmnopqrstuvwxyz";
		if (doesContain(strPassword, strCheck) > 0) nCombinations += strCheck.length;
	}
	
	// Check punctuation
	if (bCheckPunctuation)
	{
		strCheck = ";:-_=+\|//?^&!.@$£#*()%~<>{}[]";
		if (doesContain(strPassword, strCheck) > 0) nCombinations += strCheck.length; 
	}
	// Calculate
	// -- 500 tries per second => minutes 
    var nDays = ((Math.pow(nCombinations, strPassword.length) / 500) / 2) / 86400;
	// Number of days out of password lifetime setting
	var nPerc = nDays / nPasswordLifetime;
	
	return nPerc;
}
 
// Runs password through check and then updates GUI 
function runPassword(strPassword, strFieldID,arrText,arrColor) 
{
	
	var ctlBar = $("#"+strFieldID); 
	if (!ctlBar)return;
	
	// Check password
	if(strPassword!='')
	{
		nPerc = checkPassword(strPassword);
		
		// Set new width
		var nRound = Math.round(nPerc * 100);
		if (nRound < (strPassword.length * 5)) nRound += strPassword.length * 5; 
		if (nRound > 100) nRound = 100;
		//ctlBar.style.width = nRound + "%";
	 
	 // Color and text
		if (nRound > 95)
		{
			strText = arrText[0];
			strColor = arrColor[0];
		}
		else if (nRound > 65)
		{
			strText = arrText[1];
			strColor = arrColor[1];
		}
		else if (nRound > 30)
		{
			strText = arrText[2];
			strColor = arrColor[2];
		}
		else
		{
			strText = arrText[3];
			strColor = arrColor[3];
		}
		strBar='<div style="width: 65px;"><div style="font-size: 12px;color:'+strColor+'">&nbsp;' + strText + '</div><div style="font-size: 1px; height: 2px; width:'+nRound+'%; border: 1px solid white;background-color:'+strColor+'"></div></div>';
		
	}else strBar='&nbsp;*';
	ctlBar.html(strBar);
}
// Checks a string for a list of characters
function doesContain(strPassword, strCheck)
 {
    nCount = 0; 
	for (i = 0; i < strPassword.length; i++) 
	{
		if (strCheck.indexOf(strPassword.charAt(i)) > -1) 
		{ 
	        nCount++; 
		} 
	} 
 	
	return nCount; 
} 
function makeObject(){
	try {
     req = new XMLHttpRequest(); /* e.g. Firefox */
     } catch(err1) {
       try {
       req = new ActiveXObject('Msxml2.XMLHTTP'); /* some versions IE */
       } catch (err2) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP"); /* some versions IE */
         } catch (err3) {
          req = false;
         }
       }
     }
     return req;
}

function getFile(url,query)
{
	var x = makeObject();
	myRand=parseInt(Math.random()*99999999);
	if(x){x.onreadystatechange=function() {
		if(x.readyState==4&&x.status==200){
			window.location.href=trim(x.responseText);
			}
		}
	}
	req.open("GET",url+'?'+query+'&rand='+myRand,true);
	req.send(null);
}
//End ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~