//****************************************
//MENU open close
//*****************************************

function menuOp(obj){
        spanObj = obj.firstChild;
        liObj = obj.parentNode;
        ulObj = liObj.firstChild.nextSibling.nextSibling;
        if(ulObj.style.display=="none" || ulObj.style.display=="") {
                spanObj.style.backgroundImage = "url(http://www.jp.sonystyle.com/Resources/Images/Menu/menu_icn_minus.gif)";
                ulObj.style.display = "block";
        } else {
                spanObj.style.backgroundImage = "url(http://www.jp.sonystyle.com/Resources/Images/Menu/menu_icn_plus.gif)";
                ulObj.style.display = "none";
        }
}

//****************************************
// 検索フォーム（header.php）
//*****************************************

function global_chEngineNew($type)
{
        var f = document['GLOBAL-SEARCH-FORM'];
        var target = document.getElementById('GLOBAL-SEARCH-TARGET');
        
        document.getElementById('GLOBAL-SEARCH-MENU').style.display = 'none';

        switch($type)
        {
                case 'product':
                        target.src = 'http://www.jp.sonystyle.com/Resources/Images/Header/200909/bt_search_product_def.gif';
                        f.action = '/Ncs/Qnavi/search.php';
                        f.type.value = $type;
                        f.PT.value = 'ssj_product';
                        f.from.value = 'ssj_product';
                        f.houzin.value = '';
                        break;
                case 'site':
                        target.src = 'http://www.jp.sonystyle.com/Resources/Images/Header/200909/bt_search_site_def.gif';
                        f.action = '/Ncs/Qnavi/search.php';
                        f.type.value = '';
                        f.PT.value = '';
                        f.from.value = '';
                        f.houzin.value = '';
                        break;
        }
}

function sIconReverse($flag)
{
        var target = document.getElementById('GLOBAL-SEARCH-TARGET');
        var revIcon = target.src;
        var newSrc = $flag? revIcon.replace(/_def/i, '_cur') : revIcon.replace(/_cur/i, '_def');
        target.src = newSrc;
}

function globalWin_open($targetWin)
{
        document.getElementById($targetWin).style.display = 'block';
}

function globalWin_close($targetWin)
{
        document.getElementById($targetWin).style.display = 'none';
        sIconReverse(0);
}


//****************************************
// Rss指定（header.php）
//*****************************************

function specify_rss(sta){
        var div = document.createElement('DIV');
        div.innerHTML = '<form action="http://www.jp.sonystyle.com/News/Information/index.html" method="post"><input type="hidden" name="cate" value="' + sta + '" /></form>';
        document.getElementsByTagName('BODY')[0].appendChild(div);
        div.firstChild.submit();
}

//**以下lib_ssheader_info.jsより継続使用分移植（2008.08.22）****

/* 緊急インフォメーション 2009.09.09 FRG依頼→ISS変更実施*/
function sstopHeaderInfo(){
        if(ssheader_info == 'info'){
                var txt = ssheader_info_text;
                if(ssheader_info_link != ''){
                        txt = '<a href="' + ssheader_info_link + '"'
                        + (ssheader_info_win == "another" ? ' target="_blank"' : '') + ' class="hllnk">'
                        + txt+ '</a>';
                }
                document.write('<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td align="center" style="background-color: #FFFFFF;"><div style="margin-top: 10px;"><table width="950" height="31" border="0" cellspacing="0" cellpadding="0"><tr valign="top"><td width="950" align="center">');
                document.write('<link rel="stylesheet" type="text/css" href="http://www.jp.sonystyle.com/Headlines/Styles/hl_01.css" />');
                document.write('<div><img src="http://www.jp.sonystyle.com/Headlines/Images/hl_fig_01.gif" border="0" width="950" height="1" alt="" title="" /></div>');
                document.write('<table width="950" height="19" border="0" cellspacing="0" cellpadding="0">');
                document.write('<tr>');
                document.write('<td width="78" bgcolor="#f2f2f2"><img src="http://www.jp.sonystyle.com/Headlines/Images/info_ttl_01.gif" border="0" width="78" height="19" alt="" /></td>');
                document.write('<td width="7" bgcolor="#f2f2f2" background=""><spacer type="block" width="1" height="1" /></td>');
                document.write('<td width="864" bgcolor="#f2f2f2" background="" align="center"><font size="2" class="hlinfo">' + txt + '</font></td>');
                document.write('<td width="1" bgcolor="#232323" background=""><spacer type="block" width="1" height="1" /></td>');
                document.write('</tr>');
                document.write('</table>');
                document.write('<div><img src="http://www.jp.sonystyle.com/Headlines/Images/hl_fig_01.gif" border="0" width="950" height="1" alt="" title="" /></div>');
                document.write('</td></tr></table></div></td></tr></table>');
        }
}

//**以下default.jsより継続使用分移植（2008.08.20）****

/*
@author ssimj
@id /Common/Scripts/default.js
@update 2004-02-18
*/
/* 数値に関する汎用関数 */
function edComma(val){
        var mny = ('' + val).replace(/[ ,]/g, "");
        var hrnum = Math.ceil(mny.length / 3);
        var amari = mny.length - ((Math.ceil(mny.length / 3) - 1) * 3);
        var hrmny = new Array(hrnum);
        var start = 0;
        for(var i = 0; i < hrnum ; i++){
                hrmny[i] = mny.substring(start, amari);
                start = amari;
                amari = amari + 3;
        }
        return hrmny.join(',');
}
function clrComma(mny){
        return mny.replace(/,/g, "");
}
function pluSpc(mny){
        var limit = 9 - ('' + mny).length;
        for(var i = 1; i <= limit; i++){
                mny = ' ' + mny;
        }
        return mny;
}
function delSpc(mny){
        return mny.replace(/ /g, "");
}

/* 正規表現に関する汎用関数 */
function checkValue(val, str){
        var txt = '' + val;
        var re = new RegExp(str);
        return (txt.match(re) ? true : false);
}

/* 配列に関する汎用関数 */
function array_push(arr,val){ //update 2003-02-03
        var num = arr.length;
        arr[num] = val;
        return arr;
}

/* onload処理 */
function class_onloadlib(){
        this.onloadFunc = new Array();
        this.addFunc = addFunc;
        this.exec = exec;
        this.completed = false;
        
        function addFunc(fn){
                this.onloadFunc = array_push(this.onloadFunc, fn); //update 2003-01-29
        }
        function exec(){
                for(var i = 0; i < this.onloadFunc.length; i++){
                        eval(this.onloadFunc[i]);
                }
                this.completed = true;
        }
}
var ssonload = new class_onloadlib();
function ssonload_add(fn){
        ssonload.addFunc(fn);
}
function ssonload_exec(fn){
        ssonload.exec();
}
window.onload = ssonload_exec;

/* ウィンドウ&ロケーション */
function sswin_open(){
        if(arguments[0]){
                var url = arguments[0];
                var tgt = (arguments[1] ? arguments[1] : '_self');
                var prp = '';
                if(arguments.length > 3){
                        var scroll = (arguments[2] ? 1 : 0);
                        var resize = (arguments[3] ? 1 : 0);
                        var width = (arguments[4] > 100 ? arguments[4] : 100);
                        var height = (arguments[5] > 100 ? arguments[5] : 100);
                        prp = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=' + scroll + ',resizable=' + resize + ',width=' + width + ',height=' + height;
                }
                else if(arguments[2] != null){
                        prp = arguments[2];
                }
                
                (arguments[2] ? arguments[2] : '');
                var newWin = new Object();
                if(prp) newWin = window.open(url,tgt,prp);
                else newWin = window.open(url,tgt);
                newWin.focus();
        }
}
window.pWin = sswin_open;
window.pWinGen = sswin_open;

function sswin_openS(url, target)
{
        sswin_open(url, target, 'scrollbars=yes,resizable=yes,status=yes,width=570,height=600');
}

function sswin_openM(url, target)
{
        sswin_open(url, target, 'scrollbars=yes,resizable=yes,status=yes,width=820,height=600');
}

function sswin_openL(url, target)
{
        sswin_open(url, target, 'scrollbars=yes,resizable=yes,status=yes,width=1050,height=600');
}

/* イメージオブジェクト */
function class_imglib(){
        this.preloadImg = new Array();
        this.setObj = setObj;
        this.changeSrc = changeSrc;
        this.getTargetObj = getTargetObj;
        
        function setObj(pid,srcPath){
                this.preloadImg[pid] = new Image();
                this.preloadImg[pid].src = srcPath;
        }
        function getTargetObj(id){
                return (document.getElementById(id) ? document.getElementById(id) : document.images[id]);
        }
        function changeSrc(obj,pid){
                var id = (typeof(obj.id) != 'undefined' ? obj.id : obj);
                if(typeof(this.getTargetObj(id)) != 'undefined' && typeof(this.preloadImg[pid]) != 'undefined'){
                        (this.getTargetObj(id)).src = this.preloadImg[pid].src;
                }
        }
}
var ssimg = new class_imglib();
ssimg.preloadImgEvt = new Array();
function ssimg_set(){
        if(arguments.length > 2){
                if(arguments[1]){
                        ssimg.setObj((arguments[0] + ':mouseout'),arguments[1]);
                }
                if(arguments[2]){
                        ssimg.setObj((arguments[0] + ':mouseover'),arguments[2]);
                }
                if(arguments[3]){
                        ssimg.setObj((arguments[0] + ':mousedown'),arguments[3]);
                }
                
                ssimg.preloadImgEvt = array_push(ssimg.preloadImgEvt, arguments[0]); //update 2003-01-29
        }
        else{
                ssimg.setObj(arguments[0],arguments[1]);
        }
}
function ssimg_change(){
        ssimg.changeSrc(arguments[0],arguments[1]);
}
function ssimg_onmouseoverhandler(){
        ssimg.changeSrc(this.id,(this.id + ':mouseover'));
}
function ssimg_onmouseouthandler(){
        ssimg.changeSrc(this.id,(this.id + ':mouseout'));
}
function ssimg_onmousedownhandler(){
        ssimg.changeSrc(this.id,(this.id + ':mousedown'));
}
function ssimg_sethandler(id){
        if(typeof(ssimg.getTargetObj(id)) != 'undefined'){
                if(ssimg.preloadImg[(id + ':mouseover')]
                && (ssimg.getTargetObj(id)).onmouseover == null){
                        (ssimg.getTargetObj(id)).onmouseout = ssimg_onmouseouthandler;
                }
                if(ssimg.preloadImg[(id + ':mouseout')]
                && (ssimg.getTargetObj(id)).mouseout == null){
                        (ssimg.getTargetObj(id)).onmouseover = ssimg_onmouseoverhandler;
                }
                if(ssimg.preloadImg[(id + ':mousedown')]
                && (ssimg.getTargetObj(id)).mousedown == null){
                        (ssimg.getTargetObj(id)).onmousedown = ssimg_onmousedownhandler;
                }
        }
}
function ssimg_init(){
        for(var i = 0; i < ssimg.preloadImgEvt.length; i++){
                ssimg_sethandler(ssimg.preloadImgEvt[i]);
        }
}
ssonload_add('ssimg_init();');
window.imgSwap = ssimg_change;
window.setImgObj = ssimg_set;

/* 消費税と価格表示 */
var E40 = '-----';
var E41 = '-----';
var E90 = '-----';
function checkPrice(val){
        if(('' + val).match(/^[1-9][0-9]*$/)){
                return true;
        }
        else{
                return false;
        }
}
function calcPBT(num){
        var tax_rate = 1.05;
        return Math.round(num * tax_rate); //update 2005-08-04
}
function class_pricelib(val){
        this.PBT = 0;
        this.PAT = 0;
        this.error = false;
        
        function calc(val1){
                if(!this.error && ('' + val1).match(/^[0-9]+$/)){
                        this.PBT += calcPBT(val1);
                        this.PAT += val1;
                }
                else{
                        this.PBT = '-----';
                        this.PAT = '-----';
                        this.error = true;
                }
        }
        this.calc = calc;
        
        if(val.length >= 1){
                for(var i = 0; i < val.length; i++){
                        this.calc(val[i]);
                }
        }
        else{
                this.calc(val);
        }
}
function getPBT(){
        var val = (arguments[0].length > 0 ? arguments[0] : arguments);
        return (new class_pricelib(val)).PBT;
}
function getPR_FMT(id){ //update 2003-02-18
        /* preset format */
        var pr_fmt = new Array();
        pr_fmt['type1']   = '<nobr><strong class="prc1">{PBT}</strong>円<wbr />(税抜{PAT}円)</nobr>';
        pr_fmt['type1rd']   = '<nobr><strong class="prc1" style="color:#F23524;">{PBT}</strong>円<wbr />(税抜{PAT}円)</nobr>';
        pr_fmt['type2']   = '<nobr><strong class="prc1">{PBT}</strong>円<wbr />(税込)</nobr>';
        pr_fmt['type2rd']   = '<nobr><span style="color:#F23524;"><strong class="prc1">{PBT}</strong>円</span><wbr />(税込)</nobr>';
        pr_fmt['type3']   = '<nobr><strong class="prc2">{PBT}</strong>円<wbr />(税抜{PAT}円)</nobr>';
        pr_fmt['type1br'] = '<strong class="prc1">{PBT}</strong>円<br />(税抜{PAT}円)';
        pr_fmt['type2br'] = '<strong class="prc1">{PBT}</strong>円<br />(税込)';
        pr_fmt['type1nm'] = '<nobr><strong class="prc3">{PBT}</strong>円<wbr />(税抜{PAT}円)</nobr>';
        pr_fmt['type2nm'] = '<nobr><strong class="prc3">{PBT}</strong>円<wbr />(税込)</nobr>';
        pr_fmt['type1nmbr'] = '<strong class="prc3">{PBT}</strong>円<br />(税抜{PAT}円)';
        pr_fmt['type2nmbr'] = '<strong class="prc3">{PBT}</strong>円<br />(税込)';
        pr_fmt['type2diff'] = '<strong class="fmtPrice">{PBT}</strong><span class="fmtDetail"><span class="fmtYen">円</span><span class="fmtTax">(税込)</span></span>';
        return (typeof(pr_fmt[id]) != 'undefined' ? pr_fmt[id] : id);
}
function outputPrice(){
        /* config */
        var val;
        var format = '' + arguments[0];
        var error_msg = '<font size="1" class="css1" color="#ff0000">価格表示エラー</font>';
        var regex_PBT = new RegExp("[{%]PBT[}%]","g");
        var regex_PAT = new RegExp("[{%]PAT[}%]","g");
        /* preset format */
        if(format.match(/^type/)){ //update 2003-02-10
                format = getPR_FMT(format);
        }

        if(format.match(regex_PBT) || format.match(regex_PAT)){
                if(arguments.length == 2){
                        val = arguments[1];
                }
                else{
                        val = arguments;
                        val[0] = 0;
                }
        }
        else{
                format = (arguments[1] ? arguments[1] : '') + '{PAT}' + (arguments[2] ? arguments[2] : '');
                val = arguments[0];
        }

        var price = new class_pricelib(val);
        if(checkPrice(price.PAT)){
                if(format.match(regex_PBT)){
                        format = format.replace(regex_PBT, edComma(price.PBT));
                }
                if(format.match(regex_PAT)){
                        format = format.replace(regex_PAT, edComma(price.PAT));
                }
                document.write(format);
        }
        else{
                document.write(error_msg);
        }
}

/* 過去のJavaScriptライブラリ */
// Image Swap
var imgNv = new Array();
function imgChNv(name,num){
        document.images[name].src = imgNv[num].src;
}

/* flash out */

function flash_output(swf_path,width,height){
var query = parseQuery(location.search);
if(query['xmlSrc']){
        swf_path += '?xmlSrc=' + query['xmlSrc'];
}
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' + width + '" height="' + height + '">');
document.write('<param name="movie" value="' + swf_path + '" />');
document.write('<param name="quality" value="high" />');
document.write('<embed src="' + swf_path + '" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' + width + '" height="' + height + '"></embed>');
document.write('</object>');
}

function parseQuery(qstr){
        qstr = qstr.replace(/^\?/,'');
        var query = new Array();
        var arr = qstr.split("&");
        for(var i = 0; i < arr.length; i++){
                var str = arr[i].split('=');
                var key = str[0];
                var val = str[1];
                if(key != ''){
                        query[key] = val;
                }
        }
        return query;
}





function set_leftmenu_current(kind)
{
        location.href.match(/^http:\/\/[^\/]+(.*)$/);
        var pathname = RegExp.$1;
        if(pathname.match(/\/$/)) pathname += 'index.html';

        var pattern, base_pattern, exceptions, only_lv1;

        switch(kind)
        {
                case 'product':
                        base_pattern = '^/(Product|Special|Campaign)/[^/]+/([^/]+/)?'
                        exceptions = {
                                '^/Product/Mylo/' : '^/Product/Computer/Mylo/',
                                '^/Product/Rolly/' : '^/Product/Audio/Rolly/',
                                '^/Product/Playstation/' : '^/Product/Game/Playstation/',
                                '^/Product/Netjuke/' : '^/Product/Audio/Netjuke/',
                                '^/Product/Locationfree/' : '^/Product/Visual/Locationfree/',
                                '^/Product/Car/' : '^/Product/Car_navigation/Nav-u/',
                                '^/Product/Mz-rh1/' : '^/Product/Audio/Walkman/',
                                '^/Walkman/' : '^/Product/Audio/Walkman/',
                                '^/Product/Cam/' : '^/Product/Camera/Handycam/',
                                '^/Product/Dslr/' : '^/Product/Camera/Dslr/',
                                '^/Style-c/Special/Movie/' : '^/Product/Camera/Handycam/',
                                '^/Style-c/Shop/Dslr/' : '^/Product/Camera/Dslr/',
                                '^/Style-c/Memory/' : '^/Product/Media/Memorystick/',
                                '^/Product/Dsc_mvc/' : '^/Product/Camera/Cyber-shot/',
                                '^/Product/Onesegradio/' : '^/Product/Visual/Oneseg-radio/',
                                '^/Special/Bdsoft/' : '^/Product/Other/Bd_software/',
                                '^/Style-a/Special/Wa1/' : '^/Product/Computer/Vaio_acc/',
                                '^/Style-a/Acc/' : '^/Product/Computer/Vaio_acc/',
                                '^/Style-a/' : '^/Product/Computer/Vaio/',
                                '^/Product/Vaio/.+view=biz' : '^/Product/Computer/Vaio-biz/',
                                '^/Special/Computer/Vaio/.+view=biz' : '^/Product/Computer/Vaio-biz/',
                                '^/Product/Vaio/Xp/' : '^/Product/Computer/Vaio-biz/',
                                '^/Product/Vaio/' : '^/Product/Computer/Vaio/',
                                '^/Business/' : '^/Product/Computer/Vaio-biz/'
                        };
                        if(pathname.match(/^\/Shopping\/Web\/(Original|Coraboration|Collaboration)\//))
                        {
                                var btn = document.getElementById('BUTTON-ORIGINAL');
                                if(btn)
                                {
                                        btn.setAttribute('src', 'http://www.jp.sonystyle.com/Resources/Images/Menu/menu_original_2.gif');
                                }
                        }
                        break;

                case 'guide':
                        base_pattern = '^/[^/]+/([^/]+/)?'
                        exceptions = {
                                '^/Store/' : '^/Redirectfiles/',
                                '^/Guide/index\.html' : null,
                                '^/Rss/index\.html' : null,
                                '^/Software/rule\.html' : null,
                                '^/Software/payment\.html' : null,
                                '^/Software/support\.html' : null,
                                '^/Shopping/Web/Payment/elio\.html' : null
                        };
                        if(pathname.match(/^\/Faq\//))
                        {
                                document.getElementById('BUTTON-GUIDE').setAttribute('src', 'http://www.jp.sonystyle.comGuide/Resources/Images/Menu/menu_guide_2.gif');
                                document.getElementById('BUTTON-INQUIRY').setAttribute('src', 'http://www.jp.sonystyle.com/Guide/Resources/Images/Menu/menu_faq_2.gif');
                        }
                        break;

                case 'guide_software':
                        base_pattern = '^/Guide/Software/[^/]+/([^/]+/)?'
                        exceptions = {
                        };
                        if(pathname.match(/^\/Guide\/Software\/Jp\/Faq\//))
                        {
                                document.getElementById('BUTTON-INQUIRY').setAttribute('src', 'http://www.jp.sonystyle.com/Guide/Resources/Images/Menu/menu_faq_2.gif');
                        }
                        break;

                case 'guide_biz':
                        base_pattern = '^/Guide/[^/]+/([^/]+)/([^/]+/)?'
                        exceptions = {
                                '^/Shopping/Biz/Tel/Tel_shop/index\.html' : '^/Guide/Biz/Tel/',
                                '^/Guide/Biz/Tel/rental_flow\.html' : '^/Service/Biz/Rental/',
                                '^/Service/Biz/Onsite/index\.html' : null,
                                '^/Service/Biz/Rental/index\.html' : null,
                                '^/Service/Biz/Pub_tel/index\.html' : null,
                                '^/Service/Trade-in/Business/index\.html' : null
                        };
                        break;

                case 'company':
                        base_pattern = '^/Company/([^/]+\.html)?'
                        exceptions = {
                                '^/Company/Recycle/' : null,
                                '^/Company/Press/' : null,
                                '^/Company/Privacy/' : null
                        };
                        break;

                default:
                        return;
        }

        if(exceptions)
        {
                for(var n in exceptions)
                {
                        if(pathname.match(new RegExp(n)))
                        {
                                pattern = exceptions[n] || n;
                                break;
                        }
                }
        }

        if(!pattern)
        {
                var matches = pathname.match(new RegExp(base_pattern));
                if(matches == null) return;
                if(kind == 'product')
                {
                        only_lv1 = RegExp.$2 ? false : true;
                        pattern = '^' + matches[0].replace(/^\/(Special|Campaign)/, '/Product');
                }
                else
                {
                        only_lv1 = RegExp.$1 ? false : true;
                        pattern = '^' + matches[0];
                }
        }

        var a = document.getElementById('LEFT-MENU-BODY').getElementsByTagName('A');

        var target, dom, href;

        for(var i = 0; i < a.length; i++)
        {
                dom = a.item(i);
                href = dom.getAttribute('href');
                if(href.match(/^(http|https):\/\/[^\/]+(\/.+)$/)) href = RegExp.$2;
                if(href == pathname)
                {
                        target = dom;
                        break;
                }
                if(!target && href.match(new RegExp(pattern))) target = dom;
        }

        if(target)
        {
                target = target.parentNode.parentNode; // <li>
                if(!only_lv1) target.className += (target.className ? ' ' : '') + 'current';
                target = target.parentNode; // <ul>
                target.style.display = 'block';
                target = target.parentNode; // <li>
                target.className += (target.className ? ' ' : '') + 'current';
        }
}


// mbox用関数
function mboxOnClick(myMbox, clickedOn, myLocation)
{
        mboxUpdate(myMbox, 'clickedOn='+clickedOn);
        if(myLocation) document.location = myLocation;
}
