var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
    -1,　0,　 1,　2,　3,  4,　5,　6,　7,　8,　9,  10,  11,  12,  13, 14,
    15,  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
    -1,  26,  27, 28, 29,  30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
    41,  42,  43, 44, 45,  46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
function base64encode(str){
    var out, i, len;
    var c1, c2, c3;
    len = str.length;
    i = 0;
    out = "";
    while(i < len){
        c1 = str.charCodeAt(i++)&0xff;   
        if(i==len){   
            out += base64EncodeChars.charAt(c1>>2);   
            out += base64EncodeChars.charAt((c1&0x3)<<4);   
            out += "==";   
            break;   
        }   
        c2 = str.charCodeAt(i++);   
        if(i==len){   
            out += base64EncodeChars.charAt(c1>> 2);   
            out += base64EncodeChars.charAt(((c1 & 0x3)<< 4)|((c2 & 0xF0) >> 4));   
            out += base64EncodeChars.charAt((c2 & 0xF) << 2);   
            out += "=";
            break;   
        }   
        c3   =   str.charCodeAt(i++);   
        out   +=   base64EncodeChars.charAt(c1   >>   2);   
        out   +=   base64EncodeChars.charAt(((c1   &   0x3)<<   4)   |   ((c2   &   0xF0)   >>   4));   
        out   +=   base64EncodeChars.charAt(((c2   &   0xF)   <<   2)   |   ((c3   &   0xC0)   >>6));   
        out   +=   base64EncodeChars.charAt(c3   &   0x3F);   
    }
    return   out;   
}  
function   base64decode(str)
{
    var   c1,   c2,   c3,   c4;
    var   i,   len,   out;
    len   =   str.length;
    i   =   0;
    out   =   "";
    while(i < len) 
    {
        /*   c1   */   
        do {
            c1 = base64DecodeChars[str.charCodeAt(i++)&0xff];
        }   
        while(i < len && c1 == -1);
        if(c1 == -1)
            break;
        /*   c2   */ 
        do {
            c2 =  base64DecodeChars[str.charCodeAt(i++) &0xff];
        }   
        while(i   <   len   &&   c2   ==   -1);   
        if(c2   ==   -1)
            break;
        out += String.fromCharCode((c1   <<   2)   |   ((c2   &   0x30)   >>   4));   
        /*   c3   */
        do {
            c3   =   str.charCodeAt(i++)   &   0xff;   
            if(c3  ==  61)   
                return   out;   
            c3   =   base64DecodeChars[c3];   
        }while(i   <   len   &&   c3   ==   -1);
        if(c3   ==   -1)
            break;   
        out   +=   String.fromCharCode(((c2   &   0XF)   <<   4)   |   ((c3   &   0x3C)   >>   2));
        /*   c4   */
        do{
            c4 =  str.charCodeAt(i++) & 0xff;   
            if(c4 == 61)
                return   out; 
            c4 = base64DecodeChars[c4];   
        } while(i<len && c4 == -1);
        if(c4 == -1)
            break;   
        out   +=   String.fromCharCode(((c3 & 0x03)<< 6) |c4);
    }   
    return   out;   
}  
function utf16to8(str)   
{
    var   out,   i,   len,   c;   
    out   =   "";   
    len   =   str.length;   
    for(i = 0; i < len; i++)
    {
        c   =   str.charCodeAt(i);   
        if ((c >= 0x0001) && (c <= 0x007F))
        {   
            out   +=   str.charAt(i);   
        }
        else   if   (c   >   0x07FF)  
        {   
            out   +=   String.fromCharCode(0xE0   |   ((c   >>   12)   &   0x0F));   
            out   +=   String.fromCharCode(0x80   |   ((c   >>　6)   &   0x3F));   
            out   +=   String.fromCharCode(0x80   |   ((c   >>　0)   &   0x3F));   
        }
        else  
        {   
            out   +=   String.fromCharCode(0xC0   |   ((c   >>　6)   &   0x1F));   
            out   +=   String.fromCharCode(0x80   |   ((c   >>　0)   &   0x3F));   
        }
    }   
    return   out;   
} 
function   utf8to16(str) 
{
    var   out,   i,   len,   c; 
    var   char2,   char3; 
    out   =   "";
    len   =   str.length;
    i   =   0; 
    while(i   <   len)   
    {
        c   =   str.charCodeAt(i++); 
        switch(c   >>   4)
        {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
                // 0xxxxxxx
                out   +=   str.charAt(i-1);
                break;
            case 12:
            case 13:
                // 110x   xxxx　   10xx   xxxx
                char2 = str.charCodeAt(i++);
                out += String.fromCharCode(((c&0x1F)<< 6) | (char2 & 0x3F));
                break;
            case   14:
                //   1110   xxxx　10xx   xxxx　10xx   xxxx
                char2 = str.charCodeAt(i++);
                char3 = str.charCodeAt(i++);
                out  += String.fromCharCode(((c & 0x0F) << 12) |
                    ((char2 & 0x3F) << 6) |
                    ((char3 & 0x3F) << 0));
                break;
        }
    }
    return   out;
}  
function _E(s){
    return base64encode(utf16to8(s));
}
function _D(s){
    return utf8to16(base64decode(s))
}
function _getUrl(s1,s2,s3){
	var url;
	url='index.php?m='+_E(s1)+"&c="+_E(s2)+"&d="+_E(s3);
	return url;
}
function S(s)
{
	try{
		var o = document.getElementById(s);
		return o.value;
	}catch(e){
		return '';
	}
}

function _LB(s)
{
	try{
		var o = document.getElementById(s);
		return o.selectedIndex > -1 ? o.options[o.selectedIndex].value : '';
	}catch(e){
		return '';
	}
}

function lbtext(o){	return o.selectedIndex > -1 ? o.options[o.selectedIndex].value : '';}

function is_extel(s)
{
	if(/^[0-9]{3,8}$/.test(s)) return true;
	return false;
}

function is_extel_any(s)
{
	var re=/,|P|\+/;
	var n = s.replace(re, '');
	return is_extel(n);
}
function is_phone(s)
{
	if(/^[0-9]{5,20}$/.test(s)) return true;
	return false;
}

function is_phone_extel(s)
{
	if(/^[0-9]{5,20}[,\+P]{1,5}[0-9]{3,8}$/.test(s)) return true;
	return false;
}

function is_phone_any(s)
{
	if(is_extel(s) || is_phone(s) || is_phone_extel(s)) return true;
	return false;
}
function test_multiline_phone_any(src)
{
	var re=/\r|\n| |&/;
	var ss = src.split(re);
	if(ss.length==0) return false;
	var i =0;
	for(i=0; i < ss.length; i++){
		if(!is_phone_any(ss[i])) return false;
	}
	return true;
}

function $I(s){return document.getElementById(s);}
function _ID(s){return document.getElementById(s);}
function __S(id){var o = document.getElementById(id);if(o != null && typeof(o)=='object'){return o.value.toString();} return "";}

function turn(s){
	if($I(s).style.display != 'none')
		$I(s).style.display = 'none';
	else
		$I(s).style.display = 'block';
}
function __innerHTML(id,v)
{
	var o = document.getElementById(id);
	if(o != null && typeof(o)=='object'){
		if(o.innerHTML != null){
			o.innerHTML = v;
		}
	}
}
function __setAttr(id,name,val)
{
	var o = document.getElementById(id);
	if(o != null && typeof(o)=='object'){
		if(o.setAttribute != null){
			o.setAttribute(name,val);
		}
	}
}

function __getArrtInt(id,name,defval)
{
	var o = document.getElementById(id);
	if( o == null || typeof(o)!='object') return defval;
	var v = o.getAttribute(name);
	if(v == null || typeof(v)=='undefined') return defval;
	return parseInt(v.toString());
}
function __getArrtStr(id,name,defval)
{
	var o = document.getElementById(id);
	if( o == null || typeof(o)!='object') return defval;
	var v = o.getAttribute(name);
	if(v == null || typeof(v)=='undefined') return defval;
	return v.toString();
}
function o_getArrtStr(o,name,defval)
{
	if( o == null || typeof(o)!='object') return defval;
	var v = o.getAttribute(name);
	if(v == null || typeof(v)=='undefined') return defval;
	return v.toString();
}
function itoa(n, totalDigits) 
{ 
	var pd = ''; 
	n = n.toString(); 
	if (totalDigits > n.length){ 
		for (i=0; i < (totalDigits-n.length); i++){ 
			pd += '0'; 
		}
	}
	return pd + n.toString(); 
} 

function __secondsToHMS(dur)
{
	if(dur <= 0) return "0:0:0";
	var h = 0;
	var m = 0;
	var s = 0;
	var t = 0;
	h = parseInt(dur / 3600);
	t = parseInt(dur %3600);
	m = parseInt(dur / 60);
	s = parseInt(dur % 60);
	return itoa(h,2)+":"+itoa(m,2)+":"+itoa(s,2);
}
function __BKRGB(id,c)
{
	var o = document.getElementById(id);
	if(o != null && typeof(o)=='object'){
		if(o.style != null){
			o.style.backgroundColor = c ;
		}
	}
}

function __Show(id,b)
{
	var o = document.getElementById(id);
	if(o && o.style ){
		o.style.display = b ? "block":"none";
	}
}
function __backPos(id,v)
{
	var o = document.getElementById(id);
	if(o && o.style ){
		o.style.backgroundPosition = v;
	}
}
function __setImgSrc(id,s){	var o = document.getElementById(id);if(o ){ o.src = s;}}

