$j = jQuery.noConflict();
var initbox = [];
var Osamushi = {
    init: function(){
        var self = this;

        $j(this.SELECTOR_TITLE).disableSelection().css({
            'cursor': 'move'
        });
      
        $j(this.SELECTOR_COLLAPSE).hover(function(){
            $j('a', $j(this)).css('background-position', '0px -11px');
	        }, function(){
	            $j('a', $j(this)).css('background-position', '0px 0px');
        })
		.mousedown(function(e){
            e.stopPropagation();
        })
		.click(this.collapsedHandler);
        
        $j(this.SELECTOR_REMOVE).mousedown(function(e){
            e.stopPropagation();
        }).click(this.removeHandler);
        
        $j(this.SELECTOR_SORTABLE).sortable({
            handle: 'li.tit_txt',
            connectWith: 'ul#dragArea li',
            placeholder: 'placeholder',
            forcePlaceholderSize: true,
			tolerance:'pointer',
            dropOnEmpty: true,
            update: function(e, ui){
                self.saveCookie();
            }
        });
        this.initBoxies();
        this.restoreCookie();
        this.createWidget();
        
    },
    createWidget: function(){
        $j('#dialog').dialog({
            autoOpen: false,
            width: 280,
            modal: true,
            resizable: false,
            
            buttons: {
                "OK": function(){
                    $j(this).dialog("close");
                    Osamushi.executeRemove($j(this).data('removeid'));
                },
                "CANCEL": function(){
                    $j(this).dialog("close");
                }
            }
        });
    },
    initBoxies: function(){
	
        var boxes = this.boxes = {};
        for (var i = 1; i <= 15; i++) {
            var nStr = i < 10 ? "0" + i.toString : i.toString();
            boxes['box_' + nStr] = false;
        }
        $j('.box').each(function(){
            boxes[this.id] = true;
        })
        
    },
    restoreCookie: function(){
		
		var noCookie = true;
        var columnNames = ['box_conts_left', 'box_conts_center', 'box_conts_right'];
	
		for(var j=0; j<columnNames.length; j++){
			if($j.cookie(columnNames[j])){
				noCookie = false;
				break;
			}
		}
		
		if (noCookie) {
			Osamushi.saveCookie();
		}
		else {
			$j('div.box').hide();
			
			for (var i = 0; i < columnNames.length; i++) {
				var columnName = columnNames[i];
				var box_container = $j("#" + columnName);
				
				try {
					var str = $j.cookie(columnName);
					// var rowsarr = [];
					if (str) {
						noCookie = false;
						var rows = str.split(',');
						for (var j = 0; j < rows.length; j++) {
							var items = rows[j].split('@');
							var box = $j("#" + items[0]);
							box_container.append(box);
							box.show();
							if (items[1] == '1') {
								$j('.box-content', box).slideUp(0);
								$j('.btn_01 > a', box).css('background', Osamushi.ICON_COLLAPSE_CLOSE);
							}
						}
					}
				}catch (e) {
					 alert(e);
				}	
			}
		}
		
		
    },
    executeRemove: function(boxid){
        var box = $j('#'+boxid);
        Osamushi.boxes[boxid] = false;
        box.animate({
            opacity: 0
        }, function(){
            $j(this).wrap('<div/>').slideUp(function(){
                $j(this).remove();
                Osamushi.saveCookie();
            });
        });
    },
    removeHandler: function(e){
       var pos = $j(e.target).position();
	   var st = $j(document).scrollTop();
	 
        $j('#dialog').data('removeid', $j(e.target).parents('.box').attr('id'))
		.dialog('option','position',[pos.left-270,pos.top+20-st])
		.dialog('open')
		.css({
			'min-height': 15,
			color: '#000'
		})
		
        return false;
        
    },
    collapsedHandler: function(e){
        var a = $j('a', $j(this));
        $j('.box-content', $j(this).parents('.box')).slideToggle('fast', function(){
            if ($j(this).is(":hidden")) {
                a.css({
                    'background': Osamushi.ICON_COLLAPSE_CLOSE
                });
                
            } else {
                a.css({
                    'background': Osamushi.ICON_COLLAPSE_OPEN
                });
            }
            
            Osamushi.saveCookie();
        });
        
        return false;
    },
    saveCookie: function(){
        $j('#box_conts > ul > li').each(function(){
            var s = $j(this).attr('id') + "=";
            var cols = [];
            $j('.box', $j(this)).each(function(){
				if (!$j(this).is(":hidden")) {
					var collapsed = $j('.box-content', $j(this)).is(":hidden") ? "1" : "0";
					cols.push($j(this).attr('id') + '@' + collapsed);
				}
            });
            s += cols.join(',');
			
            $j.cookie($j(this).attr('id'), cols.join(','),{expires:1000});
        })

    },
    
    createBox: function(columnid, boxid){
        if (this.boxes[boxid] == true) return;
        this.boxes[boxid] = true;
        
        var divBox = $j('<div class="box" id="' + boxid + '">').prependTo("#" + columnid);
        divBox.hide();
        var xmlpath = boxid + ".xml";
        var self = this;
        $j.ajax({
            url: xmlpath,
            success: function(res){
                var node = self.getCText(res);
                if (!node) return;
                divBox.append(node);
                //titlebar
                $j(self.SELECTOR_TITLE, divBox).disableSelection().css("cursor", "move");
                $j(self.SELECTOR_COLLAPSE).hover(function(){
		           		$j('a', $j(this)).css('background-position', '0px -11px');
			        }, function(){
			            $j('a', $j(this)).css('background-position', '0px 0px');
		        })
				.mousedown(function(e){
                    e.stopPropagation();
                })
				.click(self.collapsedHandler);
				
                
                $j(self.SELECTOR_REMOVE).mousedown(function(e){
                    e.stopPropagation();
                }).click(self.removeHandler);
                
                //$j('#'+columnid).sortable('refresh');
                $j(self.SELECTOR_SORTABLE).sortable('refresh');
                divBox.show();
                Osamushi.saveCookie();
                
            }
        });
    },
    
    load: function(selector, url, data){
        var element = $j(selector);
        var opt = {
            url: url,
            success: function(data){
                var content = Osamushi.getCText(data);
                if (!content) return;
				element.html(content);
               // element.append(content);
            }
        }
        if (data) {
            opt.data = data;
        }
        $j.ajax(opt);
    },
    getCText: function(element){
        var node = element.getElementsByTagName('Content')[0].firstChild;
        while (node) {
            if (node.nodeType == 4) {
                return node.nodeValue;
            }
            node = node.nextSibling;
        }
        return null;
    },
    //
    //----------------------------------------------------------
    //SELECTOR TAG
    //----------------------------------------------------------
    SELECTOR_TITLE: 'li.tit_txt',
    SELECTOR_COLLAPSE: 'li.btn_01',
    SELECTOR_REMOVE: 'li.btn_02',
    SELECTOR_BOX: '.box',
    SELECTOR_CONTENT: 'div.box-content',
    SELECTOR_SORTABLE: '#box_conts_left,#box_conts_center,#box_conts_right',
    SELECTOR_ALL_BOXIES: '#box_conts > ul > li',
    ICON_COLLAPSE_CLOSE: 'url(../../images/top_200906/btn_01+.gif)',
    ICON_COLLAPSE_OPEN: 'url(../../images/top_200906/btn_01.gif)',
	
    boxes: {}
}




$j(function(){

    Osamushi.init();
	$j("#box_conts").css('visibility','visible');
	$j.ajax( { 
		url:'/en/tezuka_cms/',
		type:'GET',
		async:true,

		success:function(data){
			$j('#news_list_content').html(data);
		
		}
	}
	);
	
	
    $j('p.txt_add a').click(function(){
		//$j("<iframe src='add.html' />").appendTo($('#news_list_content'));
	   window.open('add.html','addwindow');
	
        return false;
    })
	//$j('p.txt_add a').attr('class','tickbox').attr('href','add.html');
	//$j('#box_20').load('boxes/box_20.html');
	//$j('div.box').hide();
	//$j('#box_20').appendTo($j('#box_conts_left')).show();
	
	
    
})


