
function addBookmark(title, url) { 
    if (window.sidebar) { 
        window.sidebar.addPanel(title, url,""); 
    } else if( document.all ) { 
        window.external.AddFavorite( url, title); 
    } else if( window.opera && window.print ) { 
        return true; 
    } 
}

/**
 * @name     sterilizeQueryString
 * @type     function
 * @param     {String} input
 * @desc     Turns a query string into an object
 * @return     Object b
 */
function sterilizeQueryString(input,splitter,pair){
    try{
        if(typeof input != 'string') return null;
        if(!splitter){
            splitter = "&";
        }
        if(!pair) pair ="=";
        var a = input.split(splitter), b = Array();
        for(var i=0; i < a.length; i++)    a[i] = a[i].split(pair);

        for(var i = 0; i < a.length; i++) b[a[i][0]] = a[i][1];

        return b;
    }
    catch(e){
        $.iLogger.log(e.name + ': ' + e.message, 'error',
'sterilizeQueryString();');
    };
};

function objectToQueryString(a , joiner, pair) {
    try{
        var s = [];
        if(!pair) pair ="=";
        if((typeof a == "object")){
            for(var j in a){
                if(typeof a[j] == "object" && a[j]){
                    s.push(encodeURIComponent(j) + pair + "__" +
objectToQueryString(a[j],"**","##") +"__");
                }
                else{
                    s.push( encodeURIComponent(j) + pair +
encodeURIComponent( a[j] ) );
                }
            };
            return s.join(joiner);
        }
        else{
            return a;
        };
    }
    catch(e){
        $.iLogger.log(e.name + ': ' + e.message, 'error',
'objectToQueryString();');
    };
};

function queryStringToObject(s){
    try{
        if(s && typeof s == "string"){
            s = sterilizeQueryString(s);
            for(var j in s){
                if(/__(.*)__/.test(s[j])){
                    s[j] = s[j].replace(/__/g,"");
                    s[j] = sterilizeQueryString(s[j],"**","##")
                };
            };
            return s;
        }
        else{
            return s;
        };
    }
    catch(e){
        $.iLogger.log(e.name + ': ' + e.message, 'error',
'queryStringToObject();');
    };
}

function z2h_word(src) {
  return src.replace(/([Ａ-Ｚａ-ｚ０-９＿])/g,
    function ($0) {
      return String.fromCharCode($0.charCodeAt(0) - 65248);
    });
}

function h2z_word(src) {
  return src.replace(/(\w)/g,
    function ($0) {
      return String.fromCharCode($0.charCodeAt(0) + 65248);
    });
}