var BukkenSearch = Class.create();
BukkenSearch.prototype = {
    initialize: function() {
        for(var i=1;i<4;i++) {
            if($('searchRegist'+i)) {
                Event.observe($('searchRegist'+i),'click',this.confirmSearchRegist.bindAsEventListener(this));
            }
        }
        if($('changeShowNumTop')) {
            Event.observe($('changeShowNumTop'),'change',this.changeShowNum.bindAsEventListener(this));
        }
        if($('changeShowNumButtom')) {
            Event.observe($('changeShowNumButtom'),'change',this.changeShowNum.bindAsEventListener(this));
        }
        
        var compareLinks = document.getElementsByAttribute('detail_link', 'add_miku');
        for(var i= 0;i<compareLinks.length;i++) {
            Event.observe(compareLinks[i],'click',this.insert.bindAsEventListener(this,compareLinks[i]));
        }
    },
    switchButton: function() {
        if($('display').style.display == 'none') {
            $('display').style.display = "";
            $('hide').hide();
        } else {
            $('display').hide();
            $('hide').style.display = "";
        }
    },
    changeTab: function(onId, offId) {
        
        var onChildNode = this.findFirstChild($(onId));
        
        if(onChildNode && onChildNode.tagName.eqi('a')) {
            var ImgNode = this.findFirstChild(onChildNode);
            var onSrc = ImgNode.src.replace('\.gif','_on\.gif');
            ImgNode.src = onSrc;
            $(onId).removeChild(onChildNode);
            $(onId).appendChild(ImgNode);
            
            var offChildNode = this.findFirstChild($(offId));
            var offSrc = offChildNode.src.replace('_on\.gif','\.gif');
            offChildNode.src = offSrc;
            var anchor = document.createElement('a');
            anchor.href = "#";
            anchor.title = offChildNode.alt;
            anchor.appendChild(offChildNode);
            $(offId).appendChild(anchor);
        }
    },
    findFirstChild: function(node)
    {
        nodes = node.childNodes;
        var ret = null;
        for(var i=0;i<nodes.length;i++) {
            if(nodes[i].tagName) {
                var ret = nodes[i];
                break;
            }
        }
        return ret;
    },
    registCookie: function(name, value, delFlg) {
        if(!name || !value) return false;
        var str = name + '=' + escape(value) +';path = /;';
        if(delFlg) {
            date = new Date();
            date.setTime(date.getTime()-100000);
            str += "expires = "+ date.toGMTString() + ';';
        }
        document.cookie = str;   
    },
    registCondBoxCookie: function() {
        if(!$('display').visible()) {
            if($('cond').visible()) {
                this.registCookie('c_inv_cond_box',2,0);
            } else {
                this.registCookie('c_inv_cond_box',3,0);
            }
        } else {
            this.registCookie('c_inv_cond_box',1,0);
        }
    },
    confirmSearchRegist : function(e){
        var node = Event.findElement(e,'a');
        if(node.getAttribute('registerd')) {
            var ans = confirm('すでに検索条件が保存されています。\n上書きしますか?');
        } else {
            var ans = confirm('現在の検索条件を保存します。よろしいですか?');
        }
        if(!ans) {
            Event.stop(e);
            return ;
        }
        location.href = Event.element(e).href;
    },
    /**
     * 表示件数の切り替え
     * @param {int} num 表示件数
      */
    changeShowNum: function(e) {
        var num = Event.element(e).value;
        // URLのqueryString以前のみ取得して、件数を付加する
        var refUrl = location.protocol+'//'+location.host+location.pathname;
        location.href=refUrl+'?showNum='+num;
    },
    compare: function(bukken_id,image_name, mode){
        
        if($('compare'+bukken_id).className == 'compareAdd') {
            this.insert(bukken_id,image_name);
        } else {
            if(mode == 1) return (false);
            this.update(bukken_id,image_name);
        }
        return (false);
    },
    /**
    * 見比べリストへの追加
    */
    insert: function(bukken_id,image_name)
    {
        count = new Number($('compare_count').value);
        if((count + 1) > 40){
            alert('40件以上選択は出来ません');
            Event.stop(e);
            return;
        }
        var dt = new Date();
        var url = '/Bukkensearch/compare' + '/compare_bid/' + bukken_id + '/compare_status/' + 1 + '/compare_mode/' + 0 + '/salt/' + dt.getTime();
        var beacon = new Ozein.Beacon(null,{"url":url,"salt":""});
        beacon.send();

        $('compare_count').value = count + 1;
        TGNavi.incrementMuller(1);
        $('rightImg'+bukken_id).show();
        $('centerImg'+bukken_id).title = image_name;
        $('compare'+bukken_id).className = 'compareOut';
        $('compareButton'+bukken_id).src = '/img/btn_compare_out.gif';
        $('compareButton'+bukken_id).width = 65;
        $('compareButton'+bukken_id).height = 74;
        $('compareButton'+bukken_id).alt = "削除";
        
        $('em'+bukken_id).innerHTML = new Number($('em'+bukken_id).innerHTML) + 1;
        new Ozein.Suspender($('rightImg'+bukken_id), {entity:'image',image:'/img/alert_listin.gif',offsetX:-25,offsetY:0,duration:1.5});
    },
    /**
    * 見比べリストから削除
    */
    update: function(bukken_id,image_name)
    {
        count = new Number($('compare_count').value);
        var dt = new Date();
        var url = '/Bukkensearch/compare' + '/compare_bid/' + bukken_id + '/compare_status/' + 0 + '/compare_mode/' + 1 + '/salt/' + dt.getTime();
        var beacon = new Ozein.Beacon(null,{"url":url,"salt":""});
        beacon.send();

        $('compare_count').value = count - 1;
        TGNavi.decrementMuller(1);
        $('rightImg'+bukken_id).hide();
        $('centerImg'+bukken_id).title = image_name+'を見比べリストに入れる';
        $('compare'+bukken_id).className = 'compareAdd';
        $('compareButton'+bukken_id).src = '/img/btn_compare_in.gif';
        $('compareButton'+bukken_id).width = 90;
        $('compareButton'+bukken_id).height = 74;
        $('compareButton'+bukken_id).alt = "見比べリストに入れる";
        $('em'+bukken_id).innerHTML = new Number($('em'+bukken_id).innerHTML) - 1;
    },
    /**
    * 現在の見比べリストの件数をチェックし、問合せ画面への遷移を制御
    */
    checkMuler: function()
    {
    	count = new Number($('compare_count').value);
    	if(count == 0){
    		alert('見比べリストが登録されていません。');
    		return false;
    	}
    	document.forms[1].submit();
    }
}
