/*
==================================================================
LTrim(string):remove space from left
==================================================================
*/
function lTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
}

/*
==================================================================
RTrim(string):remove space from right
==================================================================
*/
function rTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}

/*
==================================================================
Trim(string):remove space both front and behind
==================================================================
*/
function trim(str)
{
    return rTrim(lTrim(str));
}

/*
==================================================================
getFileName(string):get filename
==================================================================
*/
function getFileName(fileName)
{
		slash="/";
		bname=navigator.appName;
		if (bname.match(/Microsoft/))
			slash="\\";
		tmp=fileName;
		idx=tmp.lastIndexOf(slash,tmp.length)+1;
		return tmp.substr(idx);
}

/*
==================================================================
setSEL_CTRL(select_control, array, string):set Select option value
==================================================================
*/
function setSEL_CTRL(sel_obj , optarr, sel_opt_val) {
	var i;
	for (i =sel_obj.length; i>=0; i--) {
			sel_obj.remove(i);
	}

	var selidx = 0;
	var val = trim(sel_opt_val);
	for (i=0; i<optarr.length; i++) {
	  if (val==optarr[i])
	  		selidx = i;

		 sel_obj.add(new Option(optarr[i],optarr[i]));
	}
	sel_obj.selectedIndex = selidx;
}

/*
==================================================================
setSEL_CTRL(select_control, array, array, string):set Select option value
==================================================================
*/
function setSEL_VAL_CTRL(sel_obj , optarr, optvalarr, sel_opt_val) {
	if (optarr.length!=optvalarr.length)
	   return;

	var i;
	for (i =sel_obj.length; i>=0; i--) {
			sel_obj.remove(i);
	}

	var selidx = 0;
	var val = trim(sel_opt_val);

	for (i=0; i<optarr.length; i++) {
	  if (val==optvalarr[i])
	  		selidx = i;
		 sel_obj.add(new Option(optarr[i],optvalarr[i]));
	}
	sel_obj.selectedIndex = selidx;
}

/*
==================================================================

==================================================================
*/
function setCHKBOX_VAL(chk_obj, true_val, false_val) {
  if (chk_obj.checked==true) {
     chk_obj.value=true_val;
  } else {
     chk_obj.value=false_val;
  }
}

/*
==================================================================

==================================================================
*/
function hilite(obj) {
	//obj.style.border = '1px solid #ccffcc';
	obj.style.border = '1px solid #5a869c';
}

/*
==================================================================

==================================================================
*/
function delite(obj) {
	obj.style.border = '1px solid #ffffff';
}

/*
==================================================================

==================================================================
*/
function findSEL_NAM_IDX(sel_obj, option) {
	option = trim(option).toLowerCase();
	if (sel_obj==null)
		return -1;
	var selval;
	for (i =sel_obj.length-1; i>=0; i--) {
		selval="";
		if (sel_obj.options[i]!=null) {
			selval= trim(sel_obj.options[i].value.toLowerCase());
		}
		if (selval.length == option.length && selval.match(option))
			return i;
	}
	return -1;
}

/*
==================================================================

==================================================================
*/
function delSEL_OPT(sel_obj)
{
	if (sel_obj==null)
		return;
	var option = (sel_obj.selectedIndex < 0  || sel_obj.selectedIndex >= sel_obj.length) ? "" : trim(sel_obj.options[sel_obj.selectedIndex].value);
	var idx = findSEL_NAM_IDX(sel_obj,option);
	if (idx!=-1)
		sel_obj.remove(idx);
	sel_obj.selectedIndex = (idx > (sel_obj.length-1)) ? (sel_obj.length-1) : idx;
	alertErr("");
}

/*
==================================================================

==================================================================
*/
function addSEL_OPT(sel_obj, option)
{
	if (sel_obj==null)
		return;
	var idx = findSEL_NAM_IDX(sel_obj, option);
	if (idx!=-1) {
		alertErr("option already exist !");
		return;
	}
	sel_obj.add(new Option(option,option));
	sel_obj.selectedIndex = sel_obj.length-1;
}

/*
==================================================================

==================================================================
*/
function getSEL_OPTS(sel_obj,delimiter) {
	if (sel_obj==null)
		return "";
	var options="";
	for (i=0; i<sel_obj.length; i++) {
			if (options.length>0)
				options += delimiter;
	 		options += trim(sel_obj.options[i].value);
	}
	return options
}
/*
==================================================================

==================================================================
Language*/
function languageGrep(arrObj) {
	for (var i=0; i<arrObj.length; i++) {
		if(trim(arrObj[i]) == "en") {
		arrObj[i] = arrObj[i].replace('en', 'English');
		continue; }
		if(trim(arrObj[i]) == "jp") {
		arrObj[i] = arrObj[i].replace('jp', 'Japanese');
		continue; }
		if(trim(arrObj[i]) == "tw") {
		arrObj[i] = arrObj[i].replace('tw', 'Mandarin(Taiwan)');
		continue; }
		if(trim(arrObj[i]) == "cn") {
		arrObj[i] = arrObj[i].replace('cn', 'Mandarin(China)');
		continue; }
		if(trim(arrObj[i]) == "kr") {
		arrObj[i] = arrObj[i].replace('kr', 'Korean');
		continue; }
		if(trim(arrObj[i]) == "es") {
		arrObj[i] = arrObj[i].replace('es', 'Spanish');
		continue; }
		if(trim(arrObj[i]) == "de") {
		arrObj[i] = arrObj[i].replace('de', 'German');
		continue; }
		if(trim(arrObj[i]) == "fr") {
		arrObj[i] = arrObj[i].replace('fr', 'French');
		continue; }
		if(trim(arrObj[i]) == "it") {
		arrObj[i] = arrObj[i].replace('it', 'Italian');
		continue; }
		if(trim(arrObj[i]) == "pt") {
		arrObj[i] = arrObj[i].replace('pt', 'Portuguese');
		continue; }
	}
	return arrObj;
}

/*
==================================================================
jumpPage(pg_current):set jump page, use on GUI sort pages(By Danny.)
==================================================================
*/
function jumpPage(pg_current){
	var pg_start = parseInt(pg_current)*pg_size-pg_size;
	if(pg_start <0)
		pg_start = 0;
	var pg_end = parseInt(pg_current)*pg_size;
	if(pg_end > pg_all)
		pg_end = parseInt(pg_all);
	if(pg_end>0){
		for(var j=0 ; j<pg_all ; j++){
			document.getElementById('tr_arr'+j).style.display = "none";
		}
		for(var i=pg_start ; i<pg_end ; i++){
			document.getElementById('tr_arr'+i).style.display = "";
		}
	}
}

/*
==================================================================
setPage(pg_point):set now page number, use on GUI sort pages(By Danny.)
==================================================================
*/
function setPage(pg_point){
	if(pg_point>=1)
		var setpg_s = ((Math.floor((parseInt(pg_point)-1)/parseInt(pg_size))*parseInt(pg_size))+1);
	if((parseInt(setpg_s)+pg_size)<=pg_count.length){
		var setpg_e = parseInt(setpg_s)+pg_size ;
	}else{
		var setpg_e = (pg_count.length+1) ;
	}
	
	for(var i = setpg_s ; i<setpg_e ; i++){
		if(i==pg_point){
			document.getElementById('pg_'+i).style.fontSize = "14pt";
			document.getElementById('pg_'+i).style.color = "blue";
			//document.getElementById('pg_'+i).style.fontWeight = "bold";
			document.getElementById('pg_'+i).style.textDecoration = "none";		
		} else{
			document.getElementById('pg_'+i).style.color = "";
			document.getElementById('pg_'+i).style.fontSize = "12px";
			//document.getElementById('pg_'+i).style.fontWeight = "";
			document.getElementById('pg_'+i).style.textDecoration = "";		
		}
	}
}

/*
==================================================================
retSplitPage(pg_s):List all split pages, use on GUI sort pages(By Danny.)
==================================================================
*/
	function retSplitPage(pg_s){
		if(!isNaN(pg_s))
			jumpPage(parseInt(pg_s)+1);
		else
			pg_s =0;	
		var pg_e = pg_count.length;
		var PageTemp = "";
		if(pg_e>=(pg_s+pg_size)){
			if(pg_s>0)
				PageTemp+=" <a href='#' onClick='retSplitPage("+(parseInt(pg_s)-parseInt(pg_size))+");'>Prev 10<</a> &nbsp;";
			for(var i = pg_s; i<(parseInt(pg_s)+parseInt(pg_size)) ; i++){
				PageTemp+=pg_count[i];
			}
			if(pg_e>(pg_s+pg_size))
				PageTemp+=" <a href='#' onClick='retSplitPage("+(parseInt(pg_s)+parseInt(pg_size))+");'>>Next 10</a>";
		}else{
			if(pg_e<(pg_s+pg_size) && pg_e>pg_size)
				PageTemp+=" <a href='#' onClick='retSplitPage("+(parseInt(pg_s)-parseInt(pg_size))+");'>Prev 10<</a> &nbsp;";
			for(var i = pg_s; i<pg_count.length ; i++){
				PageTemp+=pg_count[i];
			}
		}
		PageTable.innerHTML=PageTemp;
		setPage((pg_s+1));
	}
