/***************************************************************************
 *                                functions.js
 *
 *   Begin date           	: Wednesday, Aug 3, 2005
 *   Copyright            	: (C) 2005 K&G Software Company
 *   Email                	: sales@kng-vn.com
 ***************************************************************************/
 
function homepage(t){
	document.body.style.behavior="url(#default#homepage)";
	document.body.setHomePage("http://www.kgc.vn");
}

function bookmark(){
	try{
		var title = "kgc.vn Website";   
		var url = "http://www.kgc.vn";
	
		if (window.sidebar) { // Mozilla Firefox Bookmark
			window.sidebar.addPanel(title, url, "");
		} else if( window.external ) { // IE Favorite
			window.external.AddFavorite( url, title); }
		else if(window.opera && window.print) { // Opera Hotlist
			return true; 
		}
	}
	catch(e){}
}

function isRequiredCheckedRadio(obj) {
	var isChecked = false;
	for (i=0; i<obj.length; i++) {
		if (obj[i].checked) {
			isChecked = true;
		}
	}     

	if (isChecked) {
		return true;
	} 
	return false;
}

function fun_check_all(t){
	for(var i=0; i<t.form.elements.length; i++){
		var e=t.form.chk_all.checked;		
		if(t.form.elements[i].name=="id[]"){
			t.form.elements[i].checked=e;
		}
	}
}

function checkAll( n, fldName ) {
  	if (!fldName) {
    	fldName = 'cb';
  	}
	var f = document.mainForm;
	var c = f.checkedAll.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i );

		if (cb && !cb.disabled) {
			cb.checked = c;
			n2++;
		}
	}
	if (c) {
		f.boxchecked.value = n2;
	} else {
		f.boxchecked.value = 0;
	}
}
////////////////////////////////////check all search
function checkAllSearch( n, fldName, f, ex , ch, ch1) {
  	if (!fldName) {
    	fldName = 'cb';
  	}
	//var f = document.mainForm;
	var c = ch.checked;
	var n2 = 0;
	for (i=0; i < n; i++) {
		cb = eval( 'f.' + fldName + '' + i + ex );
		cb1 = eval( 'f.' + fldName + '' + i);

		if (cb && !cb.disabled) {
			cb.checked = c;
			cb1.checked = c;
			ch1.checked = c;
			n2++;
		}
	}
	if (c) {
		f.boxchecked.value = n2;
	} else {
		f.boxchecked.value = 0;
	}
}

function isCheckedSearch(isitchecked, f, ch){
	if (isitchecked == true){
		f.boxchecked.value++;
		ch.checked = true;
	}
	else {
		f.boxchecked.value--;
		ch.checked = false;
	}
}

function isChecked(isitchecked){
	if (isitchecked == true){
		document.mainForm.boxchecked.value++;
	}
	else {
		document.mainForm.boxchecked.value--;
	}
}

function listItemTask( id, task ) {
    var f = document.mainForm;
    cb = eval( 'f.' + id );
    if (cb) {
        for (i = 0; true; i++) {
            cbx = eval('f.cb'+i);
            if (!cbx) break;
            cbx.checked = false;
        } // for
        cb.checked = true;
        f.boxchecked.value = 1;
        submitButton(task);
    }
    return false;
}

function checkSelectedItem(msg){
	if(document.mainForm.boxchecked.value == 0){
		alert(msg);
		return false;
	}
	return true;
}

function submitForm(frm, task){	
	try {
		frm.task.value = task;
		frm.onsubmit();
	}
	catch(e){}	
	frm.submit();
}

function IsValidDate(day, month, year){
	var DateVal = year + "/" + month + "/" + day;
    var dt = new Date(DateVal);

	//var pattern = new RegExp([0-3][0-9]-0|1[0-9]-19|20[0-9]{2});
    if(dt.getDate()!=day){
        return false;
	}else if(dt.getMonth() != month-1){
        return false;
    }else if(dt.getFullYear()!=year){
        return false;
	}
        
    return true;		
}

function checkWeb(web)
{
	if (web=="")
	{
		return false;
	}
	if(!isWebChar(web))
    	return false;
	if (web.indexOf("www")!=0  && web.indexOf("http://")!=0)
	{
		return false;
	}
	if (web.indexOf("www")==0  && web.indexOf("http://")>0)
	{
		return false;
	}
	if (web.indexOf(".")<0 ||(web.lastIndexOf(".")==web.length- 1))
	{
		return false;
	}
	return true;

}

function trim(str){
   return str.replace(/^\s*|\s*$/g,"");
}

function isWebChar(str){
  for (i=0; i<str.length; i++){
    c = str.charAt(i);          
    if("~!#$%^&*(),\'`\;<>=+\n\t \\\"".indexOf(c,0) > 0)
      return false;        
  }
  return true;
}

function isValidEmail(obj){
	var str = obj.value;
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if(filter.test(str)){
    	return 0;
	}else{
	    return 1;
	}	
}

function isPhoneNumber(str) {
	var stringCharacter="1234567890-()+";
	var c = '';
	for (var i=0; i<str.length; i++)
	{
		c = str.charAt(i);          
		if (stringCharacter.indexOf(c,0)==-1)
			{return false;}
	}  
	return true;
}

function isNumber(str) {
	var filter = new RegExp("^\\d{1,15}$"); 
	if (filter.test(str)) {
		return true;
	} else {
		return false; 	
	}
}

function isFloat(str) {
	var stringCharacter="1234567890,.";
	var c = '';
	for (var i=0; i<str.length; i++)
	{
		c = str.charAt(i);          
		if (stringCharacter.indexOf(c,0)==-1)
			{return false;}
	}  
	return true;
}
function isEmptyField(field) {
   if ((field.value==null)||(field.value.replace(/(^\s*)|(\s*$)/g, "").length==0)) {
      return true;
   } else { 
      return false; 
   }
}

function isEmpty(s)
{   
	return ((s == null) || (s.length == 0))
}

function validateMobile(obj){
	var str = obj.value;
	var filter = /^13\d{9}$/;
	if(filter.test(str)) return 0;
	return 1; 	
}

function compareDate(d1, m1, y1, d2, m2, y2)
{
	if (y1 > y2)
		return -1;
	if (y1 == y2 && m1 > m2)
		return -1;
	if (y1 == y1 && m1 == m2 && d1 > d2)
		return -1;
	if (y1 == y1 && m1 == m2 && d1 == d2)
		return 0;
	return 1;
}

function validateCheckCode(obj){
	var str = obj.value;
	var filter = /^[0-9a-zA-Z]{4}$/;
	if(filter.test(str)) return 0;
	return 1;
}

function checkByteLength(str, minlen, maxlen) {
	if (str == null) return false;
	var l = str.length;
	var blen = 0;
	for(i=0; i<l; i++) {
		if ((str.charCodeAt(i) & 0xff00) != 0) {
			blen ++;
		}
		blen ++;
	}
	if (blen > maxlen || blen < minlen) {
		return false;
	}
	return true;
}

function validateYear(obj){
	var str = obj.value;

	if(isNumber(str)) {
	   if(parseInt(str)>0 && parseInt(str)<9999)
	     return true;
	} 	
	return false;
}

function validateSameAs(obj){


	var v1,v2;
	if(!getAttrValueByName(obj,"sameas")) return true;
	v1=obj.value;
	v2=document.getElementById(getAttrValueByName(obj,"sameas")).value;
	if(v1 == v2) return true;
	return false;
}

function getAttrName(str){
	var s=str.split("=");
	return s[0];
}

function getAttrValue(str){
	var s=str.split("=");
	return s[1];
}

function getAttrValueByName(obj,str){
	var para;
	if(obj.id){
		if(eval(obj.id).p) para=eval(obj.id).p;
		else return;
	}else{
		return;
	}
	var s = para.split(",");
	for(var i=0;i<s.length;i++){
		if(getAttrName(s[i]) == str){
			if(getAttrValue(s[i]))
				return getAttrValue(s[i]);
			else
				return;
		}
	}
	return;
}

function SetUnicode(iStr){
	for (i=0, oStr=''; i < iStr.length; ){
		if (iStr.charCodeAt(i)==38){
			if (iStr.charCodeAt(i + 1)==35){
				p=iStr.indexOf(';', i  + 2);
				if (p!=-1){
					if (p - i <= 7){
						if (isFinite(iStr.substr(i + 2, p - i - 2))){
							oStr = oStr.concat(String.fromCharCode(iStr.substr(i + 2, p - i - 2)));
							i = p + 1;
							continue;
						}
					}
				}
			}

		}	
		oStr=oStr.concat(iStr.charAt(i));
		i++;
	}	
	return oStr;
}

function create_arr(str, aa) {
	st = 0;
	kk = 0;
	arr = new Array(aa + 1);
	for(ii = 0; ii < str.length; ii++) {
		if(str.charAt(ii) == '|') {
			arr[kk] = SetUnicode(str.substring(st, ii));
			st = ii + 1;
			kk++;
		}
	}
	arr[kk] = SetUnicode(str.substring(st, str.length));
	return arr;
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n);
	return x;
}
function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments;
	document.MM_sr=new Array;
	for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;
	if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr;
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

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];}}
}

function RefreshCity(listCountry, listCity, listCityHidden)
{	
	var countryID = listCountry.options[listCountry.selectedIndex].value;	
	var arrChildren;
	var arrTemp	;
	var i;
	var x = 0;
	
	listCity.length = 0 ;				
	var strChildCityList =listCityHidden.value;
	arrChildren = strChildCityList.split("|");
	
	for (i = 0; i< arrChildren.length; i++)
	{
		arrTemp = arrChildren[i].split("~");
		if (countryID == parseInt(arrTemp[0])) 
		{
			listCity.options[x] = new Option(arrTemp[2], arrTemp[1]);
			x++;
		}
		
	}
}

function beginLoading(divid, msg){
	echoLayer(divid, "<div class=\"loading\"><img src=\"images/loading.gif\" border=\"0\" align=\"absmiddle\" />&nbsp;" + msg + "</div>");
}

function endLoading(divid){
	echoLayer(divid, "");
}

function echoLayer(layerID, txt){ 
	//txt = encodeHtml(txt);
	if(document.getElementById){ 
		document.getElementById(layerID).innerHTML=txt; 
	}else if(document.all){ 
		document.all[layerID].innerHTML=txt; 
	}else if(document.layers){ 
		with(document.layers[layerID].document){ 
			open(); 
			write(txt); 
			close(); 
		} 
	} 
}

//check day
function stringToInt(str) {
	if(!stringIsNum(str))
		return 0;
	if(str.charAt(0) == '0')
		return stringToInt(str.substring(1, str.length));
	else
		if(str.length > 0)
			return parseInt(str);
		else
			return (0);
}

function getDateToInt(strDate) {
	k = strDate.indexOf("/");
	strDay = strDate.substring(0, k);
	return stringToInt(strDay);
}

function getMonthToInt(strDate) {
	i = strDate.lastIndexOf("/");
	j = strDate.lastIndexOf("/", i - 1) ;
	strMonth = strDate.substring(j + 1, i);
	return stringToInt(strMonth);
}

function getYearToInt(strDate) {
	i = strDate.lastIndexOf("/");
	strYear = strDate.substring(i + 1, strDate.length);
	return stringToInt(strYear);
}

// Format (dd/mm/yyyy)
function checkIntVal(val, low, high) {
	if (val <= high && val >= low)
		return true;
	return false;
}

function stringIsNum(val) {
	var str = new String(val);
	for (i = 0; i < str.length; i++)
		if (isNaN(parseInt(str.charAt(i))))
			return false;
	return true;
}

function checkExistVal(str, mark) {
	for(i = 0; i < str.length; i++)
		if (mark.indexOf(str.charAt(i)) < 0)
			return false;
	return 	true;
}

function countChar(str, mark) {
	var Count = 0;
	for(i = 0; i < str.length; i++)
		if (str.charAt(i) == mark)
			Count++;
	return 	Count;
}

function checkFormatDate(strDate, sb_year, se_year) {
	if(!checkExistVal(strDate, '1234567890/') || countChar(strDate, '/') != 2)
		return false;
	var Year = getYearToInt(strDate);
	var Month = getMonthToInt(strDate);
	var Day = getDateToInt(strDate);
	var objDate = new Date();
	var currYear = objDate.getYear();
	if(typeof(sb_year) == 'undefined')
		sb_year = currYear - 1;
	if(typeof(se_year) == 'undefined')
		se_year = currYear + 222;
	if(!checkIntVal(Year, sb_year, se_year))
		return false;
	if(!checkIntVal(Month, 1, 12))
		return false;
	if(!checkIntVal(Day, 1, 31))
		return false;
	if (Month == 4 || Month == 6 || Month == 9 || Month == 11 )
		if(Day > 30)
			return false;
	if(((Year % 4 == 0) && (Year %100 != 0)) || Year % 400 == 0) {
		if((Month == 2 ) && ( Day > 29))
			return false;
	} else
		if((Month == 2 ) && ( Day > 28))
			return false;
	return 	true;
}

function getElementTextNS(prefix, local, parentElem, index) {
	var result = "";
	if (prefix && isIE) {
		result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
	} else {
		result = parentElem.getElementsByTagName(local)[index];
	}

	if (result) {
		if (result.childNodes.length > 1) {
			return result.childNodes[1].nodeValue;
		} else {
			return result.firstChild.nodeValue;
		}
	} else {
		return "n/a";
	}
}

function showAlert(msg){
	showDialog("Thong bao", msg, ["Dong|hideDialog()"], false);
}

function showDialog(title, content, buttons, isShowIcon){
	var dg = "";
    dg +=	"<div id=\"dgh\" style=\"visibility: visible; top: 190px; left: 334px; width: auto; height: auto;\" role=\"wairole:alert\" class=\"dDialog\">";
    dg +=      	"<div><table style=\"width: 362px;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
    dg +=          	"<thead>";
    dg +=              	"<tr>";
	dg +=					"<td class=\"dialogLeft\">&nbsp;</td>";
    dg +=                  	"<td class=\"content\" width=\"100%\"><div class=\"calendarStripDialogTitleContainer\">";
	
	if ( isShowIcon ){
		dg += "<div id=\"titleIcon\" class=\"warningIcon\"></div>";
	}
    
	dg +=                      	"<h1 id=\"calendarStripDialogTitle\">" + title + "</h1>";
    dg +=                  	"</div></td>";
    dg +=                  	"<td class=\"closeBtnContainer\" align=\"right\"><div id=\"dialogCloseBtn\" class=\"close\" overclass=\"close over\" downclass=\"close down\" normalclass=\"close\"></div></td>";
    dg +=                  	"<td class=\"dialogRight\">&nbsp;</td>";
    dg +=              	"</tr>";
    dg +=          	"</thead>";
	
    dg +=          	"<tbody>";
    dg +=        		"<tr>";
    dg +=              		"<td class=\"dialogLeft\">&nbsp;</td>";
    dg +=                   "<td style=\"padding-right: 15px; padding-left: 15px;\" class=\"content\" colspan=\"2\">";
	dg += 					content;
	dg +=					"</td>"
    dg +=                   "<td class=\"dialogRight\">&nbsp;</td>";
    dg +=                "</tr>";
    dg +=            "</tbody>";
	
    dg +=            "<tfoot>";
    dg +=              	"<tr style=\"height: 1px;\">";
    dg +=                  	"<td class=\"dialogLeft\">&nbsp;</td>";
    dg +=                  	"<td class=\"content\" colspan=\"2\"><div class=\"buttons\">";
	for(b = 0; b < buttons.length; b++){
		var button = buttons[b];
		var a = button.split("|");
		if( a.length == 2 ){
			if( a[1].length > 1 ){
				dg += "<button onClick=\"" + a[1] + "\"><div class=\"btnContent\">" + a[0] + "</div></button>";
			}
			else{
				dg += "<button><div class=\"btnContent\">" + a[0] + "</div></button>";
			}			
		}		
	}
    //dg +=                       	"<button id=\"btnSave"\ onClick="alert('Save');"><div class="btnContent">Save</div></button>"
    //dg +=                        	"<button onClick="alert('Cancel');"><div class="btnContent">Cancel</div></button>"
    dg +=                  	"</div></td>";
    dg +=                  	"<td class=\"dialogRight\">&nbsp;</td>";
    dg +=              	"</tr>";
    dg +=              	"<tr>";
    dg +=                  	"<td class=\"dialogFooterLeft\"></td>";
    dg +=                  	"<td colspan=\"2\"><div class=\"dialogFooterCenter\">&nbsp;</div></td>";
    dg +=                  	"<td class=\"dialogFooterRight\"></td>";
    dg +=           	"</tr>";
    dg +=       	"</tfoot>";
    dg +=       "</table></div>";
    dg +=   	"<img src=\"images/shadow.png\" class=\"shadow\">";
    dg +=	"</div>";
	
	var div = document.createElement("div");
	div.className = "dDialogCover transparentEvents";
	div.setAttribute("id", "coverDg");
	document.body.appendChild(div);
	echoLayer("coverDg", dg);
	new Draggable('dgh', {revert:false});
	//removeChild
}

function hideDialog(){
	document.body.removeChild($("coverDg"));
}