﻿function Moveovermain(that)
{
that.className='TopMenuItemHover';
}
function Moveoutmain(that)
{
that.className='TopMenuItem';
}

function TDOvermain(that)
{
that.className='TDItemOver';
}
function TDOutmain(that)
{
that.className='TDtemOut';
}

function GoUrl(url)
{
 location.href=url;
}

function GetCounter(str)
{
var begin = "<img src=\"Image/Number/dg";
var middle = ".gif\"  alt=\"";
var last = "\">";
    for(x = 0;x < str.length; x++) 
   {
    str1 = str.charAt(x);
    document.write(begin + str1 + middle + last)
   }
}


function getObj(objID) {
	if (document.getElementById){return document.getElementById(objID);}
	else if (document.all){return document.all[objID];}
	else if (document.layers){return document.layers[objID];}
}


function CreateBookmarkLink(url,title)
 { 
   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; 
     }
}

/*function shadowText() {
    if (parseInt(navigator.appVersion)>=4) {
      var textcolor = "color: " + ((arguments[0]==null) ? "black" : arguments[0]) + ";"
      var shadowcolor = "color: " + ((arguments[1]==null) ? "gray" : arguments[1]) + ";"
      var fontInfo = (arguments[2]==null) ? "" : "font:" + arguments[2] + ";"
      var offx = "left: " + ((arguments[3]==null) ? 1 : arguments[3]) + ";"
      var offy = "top: " + ((arguments[4]==null) ? 1 : arguments[4]) + ";"

      var str = "<DIV STYLE=\"position: relative;" + fontInfo + "\">"
      str += "<SPAN STYLE=\"position: absolute; " + fontInfo + offx + offy + shadowcolor + "\">" + this.toString() + "</SPAN>"
      str += "<SPAN STYLE=\"position: relative;" + fontInfo + textcolor + "\">" + this.toString() + "</SPAN>"
      str += "</DIV>"
    }
    else // not a 4.0 browser
      str = "<DIV>" + this.toString() + "</DIV>"

    return str
  }

  String.prototype.shadow = shadowText;
*/


function FormatCurrency(num,currencyCode,isReplace,justFormat)
{    
    if (num == null)
        return "";
    var num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
        num = "0";
    var sign = (num == (num = Math.abs(num)));    
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    {
        switch(Trim(currencyCode.toLowerCase()))
        {
            case 'en-us':
            {
                num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
                break;
            }
            case 'vi-vn':
            {                
                num = num.substring(0,num.length-(4*i+3))+ '.' + num.substring(num.length-(4*i+3));
                break;
            }
        }
    }    
    var res='0';
    switch(Trim(currencyCode.toLowerCase()))
    {
        case 'en-us':
        {   
            if(justFormat!=null && justFormat==true)
            {
                if(isReplace==false)
                    res=(((sign)?'':'-') + num + '.' + cents);
                else
                    res=(((sign)?'':'-') + num);
            }
            else
            {
                if(isReplace==false)
                    res=(((sign)?'':'-') + '$' + num + '.' + cents);
                else
                    res=(((sign)?'':'-') + '$' + num);
            }
            break;
        }
        case 'vi-vn':
        {           
            if(justFormat!=null && justFormat==true)
            { 
                if(isReplace==false)
                    res=(((sign)?'':'-') + num + ',' + cents);
                else
                    res=(((sign)?'':'-') + num);
            }
            else
            {
                if(isReplace==false)
                    res=(((sign)?'':'-') + num + ',' + cents + '<u>đ</u>');
                else
                    res=(((sign)?'':'-') + num + '<u>đ</u>');
            }
            break;
        }
    }
    return res;
}
//
function numberOnly(controlCheckCorrectID)
{
    var input=Trim(filterElement(controlCheckCorrectID).value.toString());
    
    if(input!=''&& !IsAlphabet(input))
    {
        var priceFor=Trim(Money2Long(input));                
        if(FormatCurrency(priceFor,'vi-vn',true,true)=="0")
        {
           filterElement(controlCheckCorrectID).value='0';
        }
        else
        {
            filterElement(controlCheckCorrectID).value=FormatCurrency(priceFor,'vi-vn',true,true);
        }        
    }
    else
    {        
        filterElement(controlCheckCorrectID).value=input.substring(0,input.length-1);
    }
} 
function filterElement(elem)
{
    return document.getElementById(elem);
}


function Money2Long(input)
{
    //input = Trim(input);
    return parseInt(input.replace(/\./ig,""));
}


//------------------------------------------------------------------------------
function IsAlphabet(Digit) 
{
	return /^[a-zA-Z]$/.test(Digit);
}
//------------------------------------------------
// Function Name : Trim 
// Actions : Remove left&right space.
//------------------------------------------------
function Trim(temp) 
{
    if(temp=='')
        return temp;
        
    temp = temp + '';
    
	return RTrim(LTrim(temp));
}
//------------------------------------------------
// Function Name : LTrim 
// Actions : Remove left string.
//------------------------------------------------
function LTrim(temp) 
{    
    if(temp=='')
        return temp;
    
	return temp.replace(/^\s+/, '');
}

//------------------------------------------------
// Function Name : RTrim 
// Actions : Remove right space.
//------------------------------------------------
function RTrim(temp) 
{
    if(temp=='')
        return temp;
	return temp.replace(/\s+$/, '');
}
//

function DatePosition(dateString,dateType) 
{
/*
   function DatePosition 
   parameters: dateString dateType
   returns: integer (-1, 0, 1)
   
   dateString is a date passed as a string in the following
   formats:

   type 1 : 19970529
   type 2 : 970529
   type 3 : 29/05/1997
   type 4 : 29/05/97
   type 5 : 05/29/1997
   type 6 : 05291997
   type 7 : 052997
   
   dateType is a numeric integer from 1 to 7, representing
   the type of dateString passed, as defined above.

   Returns -1 if the date passed is behind todays date
   Returns 0 if the date passed is equal to todays date
   or if dateType is not 1 to 7
   Returns 1 if the date passed is ahead of todays date
   
   Added Y2K checking.  (Works for any century cross over)
*/


    var now = new Date();
    var today = new Date(now.getYear(),now.getMonth(),now.getDate());
    var century = parseInt(now.getYear()/100)*100;
        
    if (dateType == 1)
        var date = new Date(dateString.substring(0,4),
                            dateString.substring(4,6)-1,
                            dateString.substring(6,8));
    else if (dateType == 2)
    {
        if ((now.getYear()%100)>=parseInt(dateString.substring(0,2)))
        {
            var date = new Date(century+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(2,4)-1),
                            dateString.substring(4,6));
        }
        else
        {
            var date = new Date(century-100+parseInt(dateString.substring(0,2)),
                            parseInt(dateString.substring(2,4)-1),
                            dateString.substring(4,6));
        }
        
    }
    else if (dateType == 3)
        var date = new Date(dateString.substring(6,10),
                            dateString.substring(3,5)-1,
                            dateString.substring(0,2));
    else if (dateType == 4)
    {
        if ((now.getYear()%100)>=parseInt(dateString.substring(6,8)))
        {
            document.write(century+parseInt(dateString.substring(6,8)),'<P>');
            var date = new Date(century+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(3,5)-1),
                            dateString.substring(0,2));
        }
        else
        {
            document.write(century-100+parseInt(dateString.substring(6,8)),'<P>');
            var date = new Date(century-100+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(3,5)-1),
                            dateString.substring(0,2));
        }
        
    }
    else if (dateType == 5)
        var date = new Date(dateString.substring(6,10),
                            dateString.substring(0,2)-1,
                            dateString.substring(3,5));
    else if (dateType == 6)
        var date = new Date(dateString.substring(4,8),
                            dateString.substring(0,2)-1,
                            dateString.substring(2,4));
    else if (dateType == 7)
    {
        if ((now.getYear()%100)>=parseInt(dateString.substring(4,6)))
        {
            document.write('datestring Century:',century+parseInt(dateString.substring(4,6)),'<P>');
            var date = new Date(century+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(0,2)-1),
                            dateString.substring(2,4));
        }
        else
        {
            document.write('datestring Century:',century-100+parseInt(dateString.substring(4,6)),'<P>');
            var date = new Date(century-100+parseInt(dateString.substring(4,6)),
                            parseInt(dateString.substring(0,2)-1),
                            dateString.substring(2,4));
        }
        
    }
    else
        return false;

    if (date < today)
    {
        //document.write(date.toString(),' is behind ',today.toString(),'<P>');
        return -1;
    }
    else if (date > today)
    {
        //document.write(date.toString(),' is ahead of ',today.toString(),'<P>');
        return 1;
        
    }
    else
    {
        //document.write(date.toString(),' is the same as ',today.toString(),'<P>');
        return 0;
    }
}





/** 
* Formats the number according to the ‘format' string; 
* adherses to the american number standard where a comma 
* is inserted after every 3 digits. 
*  note: there should be only 1 contiguous number in the format, 
* where a number consists of digits, period, and commas 
*        any other characters can be wrapped around this number, including ‘$', ‘%', or text 
*        examples (123456.789): 
*          ‘0′ - (123456) show only digits, no precision 
*          ‘0.00′ - (123456.78) show only digits, 2 precision 
*          ‘0.0000′ - (123456.7890) show only digits, 4 precision 
*          ‘0,000′ - (123,456) show comma and digits, no precision 
*          ‘0,000.00′ - (123,456.78) show comma and digits, 2 precision 
*          ‘0,0.00′ - (123,456.78) shortcut method, show comma and digits, 2 precision 
* 
* @method format 
* @param format {string} the way you would like to format this text 
* @return {string} the formatted number 
* @public 
*/  
  
Number.prototype.format = function(format) { 
  if (! isType(format, 'string')) {return '';} // sanity check 
  
  var hasComma = -1 < format.indexOf(','), 
    psplit = format.stripNonNumeric().split('.'), 
    that = this; 
  
  // compute precision 
  if (1 < psplit.length) { 
    // fix number precision 
    that = that.toFixed(psplit[1].length); 
  } 
  // error: too many periods 
  else if (2 < psplit.length) { 
    throw('NumberFormatException: invalid format, formats should have no more than 1 period:'  + format); 
  } 
  // remove precision 
  else { 
    that = that.toFixed(0); 
  }  
  
  // get the string now that precision is correct 
  var fnum = that.toString(); 
  
  // format has comma, then compute commas 
  if (hasComma) { 
    // remove precision for computation 
    psplit = fnum.split('.'); 
  
    var cnum = psplit[0], 
      parr = [], 
      j = cnum.length, 
      m = Math.floor(j / 3), 
      n = cnum.length % 3 || 3; // n cannot be ZERO or causes infinite loop 
  
    // break the number into chunks of 3 digits; first chunk may be less than 3 
    for (var i = 0; i < j; i += n) { 
      if (i != 0) {n = 3;} 
      parr[parr.length] = cnum.substr(i, n); 
      m -= 1; 
    } 
  
    // put chunks back together, separated by comma 
    fnum = parr.join(','); 
  
    // add the precision back in 
    if (psplit[1]) {fnum += '.' + psplit[1];} 
  }  
  
  // replace the number portion of the format with fnum 
  return format.replace(/[\d,?\.?]+/, fnum); 
};



function addCommas(nStr) 
{ 
  nStr += ''; 
  x = nStr.split('.'); 
  x1 = x[0]; 
  x2 = x.length > 1 ? '.' + x[1] : ''; 
  var rgx = /(\d+)(\d{3})/; 
  while (rgx.test(x1)) { 
    x1 = x1.replace(rgx, '$1' + ',' + '$2'); 
  } 
  return x1 + x2; 
}

function stripNonNumeric( str ) 
{ 
  str += ''; 
  var rgx = /^\d|\.|-$/; 
  var out = ''; 
  for( var i = 0; i < str.length; i++ ) 
  { 
    if( rgx.test( str.charAt(i) ) ){ 
      if( !( ( str.charAt(i) == '.' && out.indexOf( '.' ) != -1 ) || 
             ( str.charAt(i) == '-' && out.length != 0 ) ) ){ 
        out += str.charAt(i); 
      } 
    } 
  } 
  return out; 
}

function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2)  
{ 
  var x = Math.round(num * Math.pow(10,dec)); 
  if (x >= 0) n1=n2=''; 
  
  var y = (''+Math.abs(x)).split(''); 
  var z = y.length - dec; 
  
  if (z<0) z--; 
  
  for(var i = z; i < 0; i++)  
    y.unshift('0'); 
  
  y.splice(z, 0, pnt); 
  if(y[0] == pnt) y.unshift('0'); 
  
  while (z > 3)  
  { 
    z-=3; 
    y.splice(z,0,thou); 
  }  
  
  var r = curr1+n1+y.join('')+n2+curr2; 
  return r; 
}

function format_number(pnumber,decimals){ 
    if (isNaN(pnumber)) { return 0}; 
    if (pnumber=='') { return 0}; 
    var snum = new String(pnumber); 
    var sec = snum.split('.'); 
    var whole = parseFloat(sec[0]); 
    var result = ''; 
    if(sec.length > 1){ 
        var dec = new String(sec[1]); 
        dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals))); 
        dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals)); 
        var dot = dec.indexOf('.'); 
        if(dot == -1){ 
            dec += '.'; 
            dot = dec.indexOf('.'); 
        } 
        while(dec.length <= dot + decimals) { dec += '0'; } 
        result = dec; 
    } else{ 
        var dot; 
        var dec = new String(whole); 
        dec += '.'; 
        dot = dec.indexOf('.');        
        while(dec.length <= dot + decimals) { dec += '0'; } 
        result = dec; 
    }    
    return result; 
}


function formatNumber (obj, decimal) { 
     //decimal  - the number of decimals after the digit from 0 to 3 
     //-- Returns the passed number as a string in the xxx,xxx.xx format. 
       anynum=eval(obj.value); 
       divider =10; 
       switch(decimal){ 
            case 0: 
                divider =1; 
                break; 
            case 1: 
                divider =10; 
                break; 
            case 2: 
                divider =100; 
                break; 
            default:       //for 3 decimal places 
                divider =1000; 
        }  
  
       workNum=Math.abs((Math.round(anynum*divider)/divider)); 
  
       workStr=""+workNum 
  
       if (workStr.indexOf(".")==-1){workStr+="."} 
  
       dStr=workStr.substr(0,workStr.indexOf("."));dNum=dStr-0 
       pStr=workStr.substr(workStr.indexOf(".")) 
  
       while (pStr.length-1< decimal){pStr+="0"} 
  
       if(pStr =='.') pStr =''; 
  
       //--- Adds a comma in the thousands place.    
       if (dNum>=1000) { 
          dLen=dStr.length 
          dStr=parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen) 
       }  
  
       //-- Adds a comma in the millions place. 
       if (dNum>=1000000) { 
          dLen=dStr.length 
          dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen) 
       } 
       retval = dStr + pStr 
       //-- Put numbers in parentheses if negative. 
       if (anynum<0) {retval="("+retval+")";} 
  
    //You could include a dollar sign in the return value. 
      //retval =  "$"+retval 
      obj.value = retval; 
}

function toProperCase(str) {
      return str.toLowerCase().replace(
            /\w+/g,function(s){ return s.charAt(0).toUpperCase() + s.substr(1); }
      )
}
function toUpper(sInput){
	sInput=sInput.toUpperCase()
	var sOutput='',sTemp;
	var i=0, j=0;
	for (var i=0;i<sInput.length;i++){
		if (sInput.charAt(i)+sInput.charAt(i+1)=='&#'){
			sTemp=sInput.substring(i+2,sInput.length);
			j=sTemp.indexOf(';');
			if (j>4){
				sOutput+=sInput.charAt(i);					
			}
			else{
				sTemp=sTemp.substring(0,j)
				switch(sTemp){
					case '225': {sOutput+='&#193;';break;}		//a'
					case '224': {sOutput+='&#192;';break;}		//a`
					case '7843': {sOutput+='&#7842;';break;}	//a?
					case '227': {sOutput+='&#195;';break;}		//a~
					case '7841': {sOutput+='&#7840;';break;}	//a.
					case '226': {sOutput+='&#194;';break;}		//a^
					case '7845': {sOutput+='&#7844;';break;}	//a^'
					case '7847': {sOutput+='&#7846;';break;}	//a^`
					case '7849': {sOutput+='&#7848;';break;}	//a^?
					case '7851': {sOutput+='&#7850;';break;}	//a^~
					case '7853': {sOutput+='&#7852;';break;}	//a^.
					case '259': {sOutput+='&#258;';break;}		//a(
					case '7855': {sOutput+='&#7854;';break;}	//a('
					case '7857': {sOutput+='&#7856;';break;}	//a(`
					case '7859': {sOutput+='&#7858;';break;}	//a(?
					case '7861': {sOutput+='&#7860;';break;}	//a(~
					case '7863': {sOutput+='&#7862;';break;}	//a(.
					case '273': {sOutput+='&#272;';break;}		//dd
					case '233': {sOutput+='&#201;';break;}		//e'
					case '232': {sOutput+='&#200;';break;}		//e`
					case '7867': {sOutput+='&#7866;';break;}	//e?
					case '7869': {sOutput+='&#7868;';break;}	//e~
					case '7865': {sOutput+='&#7864;';break;}	//e.
					case '234': {sOutput+='&#202;';break;}		//e^
					case '7871': {sOutput+='&#7870;';break;}	//e^'
					case '7873': {sOutput+='&#7872;';break;}	//e^`
					case '7875': {sOutput+='&#7874;';break;}	//e^?
					case '7877': {sOutput+='&#7876;';break;}	//e^~
					case '7879': {sOutput+='&#7878;';break;}	//e^.
					case '237': {sOutput+='&#205;';break;}		//i'
					case '236': {sOutput+='&#204;';break;}		//i`
					case '7881': {sOutput+='&#7880;';break;}	//i?
					case '297': {sOutput+='&#296;';break;}		//i~
					case '7883': {sOutput+='&#7882;';break;}	//i.
					case '243': {sOutput+='&#211;';break;}		//o'
					case '242': {sOutput+='&#210;';break;}		//i`
					case '7887': {sOutput+='&#7886;';break;}	//o?
					case '245': {sOutput+='&#213;';break;}		//o~
					case '7885': {sOutput+='&#7884;';break;}	//o.
					case '244': {sOutput+='&#212;';break;}		//o^
					case '7889': {sOutput+='&#7888;';break;}	//o^'
					case '7891': {sOutput+='&#7890;';break;}	//o^`
					case '7893': {sOutput+='&#7892;';break;}	//o^?
					case '7895': {sOutput+='&#7894;';break;}	//o^~
					case '7897': {sOutput+='&#7896;';break;}	//o^.
					case '417': {sOutput+='&#416;';break;}		//o*
					case '7899': {sOutput+='&#7898;';break;}	//o*'
					case '7901': {sOutput+='&#7900;';break;}	//o*`
					case '7903': {sOutput+='&#7902;';break;}	//o*?
					case '7905': {sOutput+='&#7904;';break;}	//o*~
					case '7907': {sOutput+='&#7906;';break;}	//o*.
					case '250': {sOutput+='&#218;';break;}		//u'
					case '249': {sOutput+='&#217;';break;}		//u`
					case '7911': {sOutput+='&#7910;';break;}	//u?
					case '361': {sOutput+='&#360;';break;}		//u~
					case '7909': {sOutput+='&#7908;';break;}	//u.
					case '432': {sOutput+='&#431;';break;}		//u*
					case '7913': {sOutput+='&#7912;';break;}	//u*'
					case '7915': {sOutput+='&#7914;';break;}	//u*`
					case '7917': {sOutput+='&#7916;';break;}	//u*?
					case '7919': {sOutput+='&#7918;';break;}	//u*~
					case '7921': {sOutput+='&#7920;';break;}	//u*.
					case '253': {sOutput+='&#221;';break;}		//y'
					case '7923': {sOutput+='&#7922;';break;}	//y`
					case '7927': {sOutput+='&#7926;';break;}	//y?
					case '7929': {sOutput+='&#7928;';break;}	//y~
					case '7925': {sOutput+='&#7924;';break;}	//y.
					default: {sOutput+='&#'+sTemp+';';break;}
				}
				i+=j+2;
			}
		}
		else{
			sOutput+=sInput.charAt(i);
		}
	}
	return sOutput;
}


function getCheckedValue(radioObj)
{
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}