	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, January 2006
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Version:	1.0	: January 16th - 2006
				1.1 : January 31th - 2006 - Added cookie support - remember rss sources
				1.2 : July 13th - 2006 - Fixed a problem in the createRSSBoxesFromCookie function
				
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/
	
	/* USER VARIABLES */

	var src_rightImage = '';
	var src_downImage = '';
	var src_refreshSource = '';
	var src_smallRightArrow = '';
	var transparencyWhenDragging = false;
	var autoScrollSpeed = 5;	
	var dragObjectBorderWidth = 2;

	/* END USER VARIABLES */

	var autoScrollActive = false;
	var parentContainers = new Array();
	var dragDropCounter = -1;
	var dragObject = false;
	var destinationObj = false;
	var mouseofs_x;
	var mouseofs_y;
	var rectangleDiv;
	var okToMove = true;
	var opera = navigator.userAgent.toLowerCase().indexOf('opera')>=0?true:false;
	
	
	function createHelpObjects()
	{
		rectangleDiv = document.createElement('DIV');
		rectangleDiv.id = 'rectangleDiv';
		rectangleDiv.style.display = 'none';
		document.body.appendChild(rectangleDiv);
	}
	
	function initDragableBoxes(containers)
	{

		console.log(containers.length);
		for (var cid = 0; cid < containers.length; cid++) {
			console.log('id:' + cid);
			var container = document.getElementById(containers[cid]);
			container.dragableBoxesArray = new Array();
			container.dragBoxParentsArray = new Array();
			parentContainers.push(container);

			var subDivs = container.getElementsByTagName('*');
			for (var no = 0; no < subDivs.length; no++) {

				//add
				if(subDivs[no].getAttribute('id') == 'df_cLeft' || subDivs[no].getAttribute('id') == 'df_cRight'){
					subDivs[no].setAttribute('dragParent', 'true');
					container.dragBoxParentsArray[subDivs[no].getAttribute('id')] = subDivs[no];
				}
				//add--->

				var dragHandle = subDivs[no].getAttribute('dragHandle');
				if (dragHandle == 'true') {
					subDivs[no].style.cursor = 'move';	
					subDivs[no].onmousedown = initDragDropBox;

					var dragObj = subDivs[no].parentNode.parentNode;
					var parentObj = dragObj.parentNode;
					var id = dragObj.id;
					dragObj.container = container;
					console.log('dragObj.id: ' + id);

					var parts = subDivs[no].getElementsByTagName('*');
					initBlockParts(dragObj, parts);

					container.dragableBoxesArray[id] = new Array();
					container.dragableBoxesArray[id]['obj'] = dragObj;
					container.dragableBoxesArray[id]['parentObj'] = parentObj;

					if (container.dragBoxParentsArray[parentObj.id] == null) {
						console.log('dragBoxParentsArray: ' + parentObj.id);
						container.dragBoxParentsArray[parentObj.id] = parentObj;
						parentObj.setAttribute('dragParent', 'true');
					}
				}
			}
		}

		showTabMessage();
	}


	function displayDragArea(containers)
	{
		for (var cid = 0; cid < containers.length; cid++) {
			console.log('id:' + cid);
			$('#'+containers[cid]).css('display','');
		}
	}
	

	
	
	function initEvents()
	{
		document.body.onmousemove = moveDragableElement;
		document.body.onmouseup = stop_dragDropElement;
		document.body.onselectstart = cancelSelectionEvent;

		document.body.ondragstart = cancelEvent;
	}

	function cancelSelectionEvent(e)
	{
		if (document.all)
			e = event;
		
		if (e.target)
			source = e.target;
		else if (e.srcElement)
			source = e.srcElement;
		if (source.nodeType == 3) 
			source = source.parentNode;
		if (source.tagName.toLowerCase()=='input')
			return true;

		if (source.trackSlider)
			return false;

		if (dragDropCounter>=0)
			return false;
		return true;	
	}
	
	function cancelEvent()
	{
		return false;
	}

	function closeDragableBox(e, dragObj)
	{
		if (!dragObj)
			dragObj = this.dragObj;
		//dragObj.style.display='none';	
		var idname = dragObj.getAttribute('id');
		var idname_same = dragObj.getAttribute('sameBox');
		var idname_alltab = null;

		var id = parseInt(idname.replace('df_Box',''));
		var id_same = parseInt(idname_same.replace('df_Box',''));

		if(id > id_same){
//console.log(idname + " > " + idname_same);
			idname_alltab = idname;
			idname = idname_same;
		}else{
//console.log(idname + " < " + idname_same);
			idname_alltab = idname_same;
		}

		var deleteAreaL = $('#df_dragArea_delete').find("#df_cLeft");
		var deleteAreaR = $('#df_dragArea_delete').find("#df_cRight");
		if(deleteAreaL.find(".df_drag_box").length <= deleteAreaR.find(".df_drag_box").length){
			var deleteArea = deleteAreaL;
		}else{
			var deleteArea = deleteAreaR;
		}
		var gadget = $('#'+idname).clone();

		changeUndoBtn(gadget);
		deleteArea.append(gadget);
		$('#'+idname).remove();
		$('#'+idname_alltab).remove();//remove from df_dragArea_all
		initDragableBoxes(boxContainer);
		saveCookies();

		setTimeout('dragDropCounter=-5', 5);
	}


	function changeUndoBtn(c){
		var img = c.find('.df_btn_closebox').find('img');
		img.attr('src','/shared/images/button_r.gif');
		img.hover(
			function(){
				$(this).attr("src","/shared/images/button_r_o.gif");
			},
			function(){
				$(this).attr("src","/shared/images/button_r.gif");
			}
		);
		img.attr('alt','undo');
		img.attr('title','undo');
		var c = c.find('.df_btn_closebox').removeAttr('class').attr('class','df_btn_undobox').removeAttr('closeBox').attr('undoBox','true');
	}


	
	function undoDragableBox(e, dragObj)
	{
		if (!dragObj)
			dragObj = this.dragObj;
		var idname = dragObj.getAttribute('id');
		var idname_alltab = dragObj.getAttribute('sameBox');

		var undoArea = dragObj.getAttribute('undoArea');
		var undoAreaL = $('#'+undoArea).find("#df_cLeft");
		var undoAreaR = $('#'+undoArea).find("#df_cRight");
		if(undoAreaL.find(".df_drag_box").length <= undoAreaR.find(".df_drag_box").length){
			var undoArea = undoAreaL;
		}else{
			var undoArea = undoAreaR;
		}
		var gadget = $('#'+idname).clone();
		changeDeleteBtn(gadget);

		var gadget_alltab = $('#'+idname).clone();
		var boxid_alltab = parseInt(idname.replace('df_Box',''))+GADGET_ALLTAB_BOX_START_ID;
		var listidname = idname + '_list';
		var listidname_alltab = 'df_Box' + boxid_alltab + '_list';
		gadget_alltab.find('#'+listidname).attr('id',listidname_alltab);
		gadget_alltab.attr('id',idname_alltab);
		gadget_alltab.attr('sameBox',idname);
		changeDeleteBtn(gadget_alltab);

		$('#'+idname).remove();
		undoArea.append(gadget);

		//undo df_dragArea_all
		var undoAreaAllL = $('#df_dragArea_all').find("#df_cLeft");
		var undoAreaAllR = $('#df_dragArea_all').find("#df_cRight");
		if(undoAreaAllL.find(".df_drag_box").length <= undoAreaAllR.find(".df_drag_box").length){
			undoAreaAll = undoAreaAllL;
		}else{
			undoAreaAll = undoAreaAllR;
		}

		undoAreaAll.append(gadget_alltab);


		initDragableBoxes(boxContainer);
		saveCookies();

		//setTimeout('dragDropCounter=-5', 5);
	}


	function changeDeleteBtn(c){
		var img = c.find('.df_btn_undobox').find('img');
		img.attr('src','/shared/images/button_d.gif');
		img.hover(
			function(){
				$(this).attr("src","/shared/images/button_d_o.gif");
			},
			function(){
				$(this).attr("src","/shared/images/button_d.gif");
			}
		);

		img.attr('alt','delete');
		img.attr('title','delete');
		var c = c.find('.df_btn_undobox').removeAttr('class').attr('class','df_btn_closebox').removeAttr('undoBox').attr('closeBox','true');

	}

	function getTopPos(inputObj)
	{
		var returnValue = inputObj.offsetTop;

		while ((inputObj = inputObj.offsetParent) != null) {
		if (inputObj.tagName != 'HTML')
			returnValue += inputObj.offsetTop;
		}
		return returnValue;
	}

	function getLeftPos(inputObj)
	{
		var returnValue = inputObj.offsetLeft;
		while ((inputObj = inputObj.offsetParent) != null) {
		if (inputObj.tagName != 'HTML')
			returnValue += inputObj.offsetLeft;
		}
		return returnValue;
	}


	function initDragDropBox(e)
	{
		dragDropCounter = 1;
		if (document.all)
			e = event;
		
		if (e.target)
			source = e.target;
		else if (e.srcElement)
			source = e.srcElement;
		if (source.nodeType == 3) 
			source = source.parentNode;
		
		var tagname = source.tagName.toLowerCase();
		if (tagname=='img' || tagname=='a' || tagname=='input' || tagname=='td' || tagname=='tr' || tagname=='table')
			return;
		
		dragObject = this.parentNode.parentNode;
		console.log('dragObject.nextSibling: ' + dragObject.nextSibling);
		var scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
		var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;
		mouseofs_x = getLeftPos(dragObject) - scrollLeft - e.clientX;
		mouseofs_y = getTopPos(dragObject) - scrollTop - e.clientY;
		console.log("## scrollTop: " + scrollTop + "  e.clientY:" + e.clientY + "  mouseofs_y:" + mouseofs_y);


		dragDropCounter = 0;
		initDragDropBoxTimer();	

		return false;
	}
	
	
	function initDragDropBoxTimer()
	{
		if(dragDropCounter >= 0 && dragDropCounter < 10){
			dragDropCounter++;
			setTimeout('initDragDropBoxTimer()', 10);
			return;
		}
	}

	function moveDragableElement(e){

		if (document.all)
			e = event;
		if (dragDropCounter < 10)
			return;
		
		if (document.all && e.button!=1 && !opera){
			stop_dragDropElement();
			return;
		}

		if (document.body != dragObject.parentNode){
			dragObject.style.width = (dragObject.offsetWidth - (dragObjectBorderWidth * 2)) + 'px';
			dragObject.style.position = 'absolute';	
			dragObject.style.zIndex = '100';//display foremost side
			dragObject.style.textAlign = 'left';
			if (transparencyWhenDragging){	
				dragObject.style.filter = 'alpha(opacity=70)';
				dragObject.style.opacity = '0.7';
			}
			dragObject.parentNode.insertBefore(rectangleDiv, dragObject);
			rectangleDiv.style.display='block';
			document.body.appendChild(dragObject);

			rectangleDiv.style.width = dragObject.style.width;
			rectangleDiv.style.height = (dragObject.offsetHeight - (dragObjectBorderWidth * 2)) + 'px'; 
			
		}

		var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;

	if (e.clientY < 50 || e.clientY > (clientHeight - 50)){
			if (e.clientY < 50 && !autoScrollActive){
				autoScrollActive = true;
				autoScroll(-autoScrollSpeed, e.clientY);
			}
			
			if (e.clientY > (clientHeight - 50) && !autoScrollActive){
				autoScrollActive = true;
				autoScroll(autoScrollSpeed, e.clientY);
			}
		} else {
			autoScrollActive = false;
		}

		
		var scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
		var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;
		var leftPos = e.clientX + scrollLeft;
		var topPos = e.clientY + scrollTop;
		
		dragObject.style.left = (mouseofs_x + e.clientX + scrollLeft) + 'px';
		dragObject.style.top = (mouseofs_y + e.clientY + scrollTop) + 'px';
		
		if (!okToMove)
			return;
		okToMove = false;

		destinationObj = null;
		rectangleDiv.style.display = 'none'; 
		
		var objFound = false;
		
		for (var id in dragObject.container.dragableBoxesArray){
			var dragableBoxObj = dragObject.container.dragableBoxesArray[id]['obj'];
			if (!dragableBoxObj || dragableBoxObj == dragObject)
				continue;

			var tmpX = getLeftPos(dragableBoxObj);
			var tmpY = getTopPos(dragableBoxObj);

			if (tmpX < leftPos && leftPos < (tmpX + dragableBoxObj.offsetWidth)) {
				if ((tmpY - 20) < topPos && topPos < (tmpY + (dragableBoxObj.offsetHeight / 2))) {
					destinationObj = dragableBoxObj;
					destinationObj.parentNode.insertBefore(rectangleDiv, dragableBoxObj);
					objFound = true;
				}
				else if ((tmpY + (dragableBoxObj.offsetHeight / 2)) <= topPos && topPos < (tmpY + dragableBoxObj.offsetHeight)){
					destinationObj = dragableBoxObj.nextSibling;
					while (destinationObj) {
						if (destinationObj.tagName)
							break;
						destinationObj = destinationObj.nextSibling;
					}

					if (destinationObj){
						if (destinationObj != rectangleDiv)
							dragableBoxObj.parentNode.insertBefore(rectangleDiv, destinationObj);
					} else {
						destinationObj = dragableBoxObj.parentNode;
						dragableBoxObj.parentNode.appendChild(rectangleDiv);
					}
					objFound = true;
				}
				else if (!dragableBoxObj.nextSibling && (tmpY + dragableBoxObj.offsetHeight) < topPos){
					destinationObj = dragableBoxObj.parentNode;
					dragableBoxObj.parentNode.appendChild(rectangleDiv);
					objFound = true;
				}
			}
			if (objFound)
				break;
		}
		if (!objFound){
			for (var pid in dragObject.container.dragBoxParentsArray) {
				var parentObj = dragObject.container.dragBoxParentsArray[pid];
				var left = getLeftPos(parentObj);
				if (left < leftPos && leftPos < (left + parentObj.offsetWidth)
					&& getTopPos(parentObj) < topPos) {
					destinationObj = parentObj;
					parentObj.appendChild(rectangleDiv);
					objFound = true;
					break;
				}
			}

			if (!destinationObj) {
				destinationObj = rectangleDiv;
				objFound = true;
			}
		}
		if (objFound) {
			rectangleDiv.style.display = 'block';
		}

		setTimeout('okToMove=true', 5);
	}


	function autoScroll(direction, yPos)
	{
		if (opera)
			return;
		window.scrollBy(0, direction);
		if (!dragObject)
			return;

		var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;
		var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
		if (direction < 0){
			if (scrollTop > 0) {
				dragObject.style.top = (mouseofs_y + yPos + scrollTop) + 'px';
			} else {
				autoScrollActive = false;
			}
		} else {
			if (yPos > (clientHeight - 50)){
				dragObject.style.top = (mouseofs_y + yPos + scrollTop) + 'px';
			} else {
				autoScrollActive = false;
			}
		}
		if (autoScrollActive)
			setTimeout('autoScroll('+direction+',' + yPos + ')', 5);
	}
	
	
	function stop_dragDropElement()
	{

		if (dragDropCounter < 10) {
			dragDropCounter = -1
			return;
		}
		dragDropCounter = -1;
		if (transparencyWhenDragging) {
			dragObject.style.filter = null;
			dragObject.style.opacity = null;
		}		
		dragObject.style.position = 'static';
		dragObject.style.width = null;
		var id = dragObject.id;
		if (destinationObj && destinationObj.id != dragObject.id) {
			if (destinationObj.getAttribute('dragParent') == 'true') {
				destinationObj.appendChild(dragObject);
				dragObject.container.dragableBoxesArray[id]['parentObj'] = destinationObj;
			} else {
				destinationObj.parentNode.insertBefore(dragObject, destinationObj);
				dragObject.container.dragableBoxesArray[id]['parentObj'] = destinationObj.parentNode;
			}
		} else {
			destinationObj = dragObject.nextSibling;
			while (destinationObj) {
				if (destinationObj.tagName)
					break;
				destinationObj = destinationObj.nextSibling;
			}
			var dragObjectParent = dragObject.container.dragableBoxesArray[id]['parentObj'];
			if (destinationObj) {
				dragObjectParent.insertBefore(dragObject, destinationObj);
			} else {
				dragObjectParent.appendChild(dragObject);
			}
		}

		autoScrollActive = false;
		rectangleDiv.style.display = 'none'; 
		dragObject = false;
		destinationObj = false;

		setTimeout('saveCookies()', 100);
	}




	ord_tile=Math.random()*10000000000000000;
	ord_txt=Math.random()*10000000000000000;

/*	var boxContainer = ['dragArea'];*/
	//var boxContainer = ['df_dragArea','df_dragArea2'];




	var g_normativeConfiguration;

	function openCustomizeLayer() {
		var layer = document.getElementById("customizeInnerLayer");
		var layerTopMargin = 100;

		var wndInformation = document.getElementById("SFusagePrototypeWindow");

		if (wndInformation) {
			wndInformation.show();
		} else {
			var win = new Window({ id:"SFusagePrototypeWindow", className: "alphacube", title: "", 
				 width:500, height:500, zIndex: 10000,
				resizable: true, draggable:true, wiredDrag:false, maximizable:false, recenterAuto:false, destroyOnClose:true,
				onBeforeShow: function() {
					var wnd = document.getElementById("SFusagePrototypeWindow");
					if (wnd.offsetTop < layerTopMargin) {
						wnd.style.top = layerTopMargin + "px";
					}
					wnd = null;
				},
				onEndMove: function() {
					var wnd = document.getElementById("SFusagePrototypeWindow");
					if (wnd.offsetTop < layerTopMargin) {
						wnd.style.top = layerTopMargin + "px";
					}
					wnd = null;
				}
			})
			wndInformation = win;

			win.getContent().innerHTML = layer.innerHTML;
			win.showCenter();
			win.toFront();
			win = null;
		}
	}

	function closeCustomizeLayer() {
	}


	function resetNewsBlock() {
		deserializeBoxes(g_normativeConfiguration);
		saveCookies();
	}

     function onCustomizeElement(obj) {
       dispSettingBlock('editNewsBlock');
     }

     function addNewsBlock() {
       dispSettingBlock('addNewsBlock');
     }




	function initBlockParts(dragObj, parts) {
		for (var idx = 0; idx < parts.length; idx++) {
			var cls = parts[idx].getAttribute('closeBox');
			if (cls == 'true') {
				parts[idx].style.cursor = 'pointer';
				parts[idx].style.display = '';
				parts[idx].dragObj = dragObj;
				parts[idx].onmousedown = closeDragableBox;

				initalIncDecBtnDisplay(parts[idx]);
			}

			var cls = parts[idx].getAttribute('undoBox');
			if (cls == 'true') {
				parts[idx].style.cursor = 'pointer';
				parts[idx].style.display = '';
				parts[idx].dragObj = dragObj;
				parts[idx].onmousedown = undoDragableBox;

				initalIncDecBtnDisplay(parts[idx]);
			}

			var trk = parts[idx].getAttribute('trackSlider');
			if (trk == 'true') {
				parts[idx].style.cursor = 'pointer';	
				parts[idx].style.display = 'none';
				parts[idx].dragObj = dragObj;
				parts[idx].onmousedown = trackArticleSlider;
			}

			var trk = parts[idx].getAttribute('doMinus');
			if (trk == 'true') {
				parts[idx].style.cursor = 'pointer';	
				parts[idx].style.display = '';
				parts[idx].dragObj = dragObj;
				parts[idx].onmousedown = incArticlesLines;

				initalIncDecBtnDisplay(parts[idx]);
			}

			var trk = parts[idx].getAttribute('doCollapse');
			if (trk == 'true' || trk=='false') {
				parts[idx].style.cursor = 'pointer';	
				parts[idx].style.display = '';
				parts[idx].dragObj = dragObj;
				parts[idx].onmousedown = doCollapse;

				initalIncDecBtnDisplay(parts[idx]);
			}

			var trk = parts[idx].getAttribute('doPlus');
			if (trk == 'true') {
				parts[idx].style.cursor = 'pointer';	
				parts[idx].style.display = '';
				parts[idx].dragObj = dragObj;
				parts[idx].onmousedown = decArticlesLines;

				initalIncDecBtnDisplay(parts[idx]);
			}
		}
	}

	function initalIncDecBtnDisplay(container) {
		var btns = container.getElementsByTagName('*');
		for (var i = 0; i < btns.length; i++) {
			var enabled = btns[i].getAttribute('clickable');
			if (enabled == 'true')
				btns[i].style.display = '';
			else if (enabled == 'false')
				btns[i].style.display = 'none';
		}
	}


     function dispSettingBlock(panelid) {
       var layerI = document.getElementById("customizeLayer");
       var layerO = document.getElementById("customizeOverLayer");
       layerO.style.display = '';
       layerO.style.top = 0;
       layerO.style.left = 0;
       layerO.style.height = layerI.clientHeight;
       layerO.style.width = layerI.clientWidth;

       var panel = document.getElementById(panelid);
       panel.style.display = '';
     }
     function cancelOverLayer() {
       var layerO = document.getElementById("customizeOverLayer");
       layerO.style.display = 'none';
       document.getElementById("addNewsBlock").style.display = 'none';
       document.getElementById("editNewsBlock").style.display = 'none';
     }



	var maxArticlesLines = 10;

     function trackArticleSlider(e) {
       if (document.all)
         e = event;

       var layer = $('dispLinesLayer');
       var trackerPanel = this;
       var dragObj = this.dragObj;
       var area = this.parentNode;
       layer.style.top = getTopPos(area) + 'px';
       layer.style.left = getLeftPos(area) + 'px';
       layer.style.display = '';
       console.log('trackArticleSlider');

       var selector = $('dispLinesSelector');
       console.log(dragObj.dfltLines);
       selector.selectedIndex = dragObj.dfltLines - 1;

       selector.onblur = function() {
         console.log('onblur');
         var layer = $('dispLinesLayer');
         layer.style.display = 'none';
         trackerPanel.style.display = '';
       };
       selector.onchange = function() {
         var selector = $('dispLinesSelector');
         console.log('onchange:' + dragObj.id + ' ->' + selector.value);
         setArticlesLines(dragObj.id, selector.value);
       };

       trackerPanel.style.display = 'none';
       console.log('setfocus');
       selector.focus();
       e.cancelBubble = "true";
       return false;
     }


	function incArticlesLines(e) {
		var dragObj = this.dragObj;
		console.log(dragObj);
		var lineValue = parseInt(dragObj.getAttribute('dfltLines'));
		setArticlesLines(dragObj.id, lineValue + 1);
		saveCookies();
	}

	function doCollapse(e) {
		var dragObj = this.dragObj;
		//console.log('doCollapse');
		console.log(dragObj);

		var parts = dragObj.getElementsByTagName('*');

		for (var idx = 0; idx < parts.length; idx++) {
			var trk = parts[idx].getAttribute('doCollapse');
			if (trk == 'true') {
				collapse(dragObj.id);
				var btns = parts[idx].getElementsByTagName('*');
				for (var i = 0; i < btns.length; i++) {
					var enabled = btns[i].getAttribute('clickable');
					if (enabled == 'true')
						//btns[i].style.display = 'none';
						btns[i].src = '/shared/images/button_o.gif';
						btns[i].setAttribute("onmouseover","this.src='/shared/images/button_o_o.gif'");
						btns[i].setAttribute("onmouseout","this.src='/shared/images/button_o.gif'");
						parts[idx].setAttribute('doCollapse','false');
						btns[i].setAttribute('alt','expand');
						btns[i].setAttribute('title','expand');
					
				}
			}else if(trk == 'false'){

				expand(dragObj.id);
				var btns = parts[idx].getElementsByTagName('*');
				for (var i = 0; i < btns.length; i++) {
					var enabled = btns[i].getAttribute('clickable');
					if (enabled == 'true')
						btns[i].src = '/shared/images/button_c.gif';
						btns[i].setAttribute("onmouseover","this.src='/shared/images/button_c_o.gif'");
						btns[i].setAttribute("onmouseout","this.src='/shared/images/button_c.gif'");
						parts[idx].setAttribute('doCollapse','true');
						btns[i].setAttribute('alt','collapse');
						btns[i].setAttribute('title','collapse');
					
				}
			}
		}

		saveCookies();

	}

	function decArticlesLines(e) {
		var dragObj = this.dragObj;
		var lineValue = parseInt(dragObj.getAttribute('dfltLines'));
		setArticlesLines(dragObj.id, lineValue - 1);
		saveCookies();
	}

	function ddxArticlesLines(dragObj, num, maxLine) {
		var parts = dragObj.getElementsByTagName('*');
		for (var idx = 0; idx < parts.length; idx++) {
			var trk = parts[idx].getAttribute('doMinus');
			if (trk == 'true') {
				var btns = parts[idx].getElementsByTagName('*');
				for (var i = 0; i < btns.length; i++) {
					var enabled = btns[i].getAttribute('clickable');
					if (enabled == 'true')
						btns[i].style.display = (num < maxLine) ? '' : 'none';
					else if (enabled == 'false')
						btns[i].style.display = (num < maxLine) ? 'none' : '';
				}
			}

			var trk = parts[idx].getAttribute('doPlus');
			if (trk == 'true') {
				var btns = parts[idx].getElementsByTagName('*');
				for (var i = 0; i < btns.length; i++) {
					var enabled = btns[i].getAttribute('clickable');
					if (enabled == 'true')
						btns[i].style.display = (num > 1) ? '' : 'none';
					else if (enabled == 'false')
						btns[i].style.display = (num > 1) ? 'none' : '';
				}
			}
		}
	}

	function setArticlesLines(id, num) {

		var container = document.getElementById(id + "_list");
		if (container) {
			var dragObj = document.getElementById(id);
			var dfltLines = dragObj.getAttribute('dfltLines');
			if (!dfltLines)
				//dfltLines = 3;
				return;//change
			if (!num)
				num = dfltLines;

			var items = container.getElementsByTagName('LI');


			if (num > items.length)
				num = items.length;
			if (num < 1)
				num = 1;
			console.log('dfltLines: ' + dfltLines + '  -> ' + num);
			for (var idx = 0; idx < items.length; idx++) {
				items[idx].style.display = idx < num ? "" : "none";
			}
			var maxLine = items.length > 1 ? items.length : 1;
			dragObj.setAttribute('dfltLines', num);
			ddxArticlesLines(dragObj, num, maxLine);
		}
	}

	function collapse(id){
		var con = $('#'+id + '_list');
		con.css('display','none');
	}

	function expand(id){
		var con = $('#'+id + '_list');
		con.css('display','');
	}

	function getNumOfArticles(id, tag) {
		var container = document.getElementById(id);
		if (container) {
			if (!tag)
				tag = 'LI';
			var items = container.getElementsByTagName(tag);
			var cntShow = 0; var cntHide = 0;
			for (var idx = 0; idx < items.length; idx++) {
				if (items[idx].style.display == "none")
					cntHide++;
				else
					cntShow++
			}
			console.log('cntShow: ' + cntShow + '  cntHide: ' + cntHide);

			return items.length;
		}
	}


	function viewAllArticles(id, vall, vmor, vles, tag) {
		viewMoreArticles(id, vall, vmor, vles, getNumOfArticles(id, tag), tag);
	}

	function viewMoreArticles(id, vall, vmor, vles, num, tag) {
		var container = document.getElementById(id);
		if (container) {
			if (!tag)
				tag = 'LI';
			var items = container.getElementsByTagName(tag);
			for (var idx = 0; idx < items.length; idx++) {
				if (items[idx].style.display == "none") {
					items[idx].style.display = (num-- > 0) ? "" : "none";
				}
			}
			if (num >= 0) {
				var elem = document.getElementById(vall);
				elem.style.textDecoration = "none";
				elem.style.color = "silver";
				elem = document.getElementById(vmor);
				elem.style.textDecoration = "none";
				elem.style.color = "silver";
			}
		}
	}


	var cyclicIndex = 0;
	function cyclicHeadlineInterval() {
		var container = document.getElementById("cyclicHeadline");
		if (container) {
			var items = container.getElementsByTagName('LI');

		for (var idx = 0; idx < items.length; idx++) {
				items[idx].style.display = (idx == cyclicIndex) ? "" : "none";
			}
			if (++cyclicIndex >= items.length)
				cyclicIndex = 0;
		}
		setTimeout(cyclicHeadlineInterval, 5 * 1000);
	}



	var topCaptionBar = "topCaptionBar";
	var topClientArea = "topClientArea";
	var topCaptionArticle = "topCaptionArticle";

	var topCaptionBarCollapse = "topCaptionBarCollapse";
	var topCaptionBarExpand = "topCaptionBarExpand";


	function initTopCaptionBar() {
		var container = document.getElementById(cncrg_area);
		if (container) {
			var subDivs = container.getElementsByTagName('*');
			for (var no = 0; no < subDivs.length; no++) {
				var elem = subDivs[no];
				if (elem.getAttribute('topCaptionBar') == 'true') {
					if (elem.id)
						topCaptionBar = elem.id;
					else
						elem.id = topCaptionBar;

					console.log("topCaptionBar: " + topCaptionBar);
				}
				if (elem.getAttribute('topClientArea') == 'true') {
					if (elem.id)
						topClientArea = elem.id;
					else
						elem.id = topClientArea;

					console.log("topClientArea: " + topClientArea);
				}
				if (elem.getAttribute('topCaptionArticle') == 'true') {
					if (elem.id)
						topCaptionArticle = elem.id;
					else
						elem.id = topCaptionArticle;

					console.log("topCaptionArticle: " + topCaptionArticle);
				}
			}

			var cap = document.getElementById(topCaptionArticle);
			cap.onclick = onTopCaptionClicked;
			cap.style.cursor = 'pointer';

			var col = document.getElementById(topCaptionBarCollapse);
			var exp = document.getElementById(topCaptionBarExpand);

			col.style.cursor = 'pointer';
			col.onmousedown = function() { dispCncrgArea(false); saveCookies(); };
			exp.style.cursor = 'pointer';
			exp.onmousedown = function() { dispCncrgArea(true); saveCookies(); };
		}
	}


	function onTopCaptionClicked(e) {
		console.log('onTopCaptionClicked:' + e);
		dispCncrgArea(true);
		saveCookies();
	}

	function onTopbarDblClicked(e) {
		console.log('onTopbarDblClicked  display: ' + isDispCncrgArea());
		dispCncrgArea(!isDispCncrgArea());
		saveCookies();
	}


	function isDispCncrgArea() {
		var container = document.getElementById(cncrg_area);
		if (container) {
			var layer = document.getElementById(topClientArea);
			return layer.style.display != 'none';
		}
		return false;
	}

	function dispCncrgArea(disp) {
		var container = document.getElementById(cncrg_area);
		if (container) {
			var layer = document.getElementById(topClientArea);
			var topart = document.getElementById(topCaptionArticle);
			var col = document.getElementById(topCaptionBarCollapse);
			var exp = document.getElementById(topCaptionBarExpand);
			if (disp) {
				layer.style.display = '';
				topart.style.display = 'none';
				col.style.display = '';
				exp.style.display = 'none';
			} else {
				layer.style.display = 'none';
				topart.style.display = '';
				col.style.display = 'none';
				exp.style.display = '';
			}
		}
	}



	var cookieId = 'boxSort';

	function getCookie(name)
	{ 
		var start = document.cookie.indexOf(name + "="); 
		var len = start + name.length + 1; 
		if ((!start) && (name != document.cookie.substring(0, name.length)))
			return null; 
		if (start == -1) return null; 
		var end = document.cookie.indexOf(";", len); 
		if (end == -1)
			end = document.cookie.length; 
		return unescape(document.cookie.substring(len, end));
	} 
	function setCookie(name, value, expires, path, domain, secure)
	{ 
		expires = expires * 60 * 60 * 24 * 1000;
		var today = new Date();
		var expires_date = new Date(today.getTime() + expires);
		var cookieString = name + "=" + escape(value) + 
			( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
			( (path) ? ";path=" + path : "") + 
			( (domain) ? ";domain=" + domain : "") + 
			( (secure) ? ";secure" : ""); 
		document.cookie = cookieString; 
	}
/*
	function getCookie(name)
	{ 
		var start = document.cookie.indexOf(name + "="); 
		var len = start + name.length + 1; 
		if ((!start) && (name != document.cookie.substring(0, name.length)))
			return null; 
		if (start == -1) return null; 
		var end = document.cookie.indexOf(";", len); 
		if (end == -1)
			end = document.cookie.length; 
		return unescape(document.cookie.substring(len, end)); 
	} 
	function setCookie(name, value, expires, path, domain, secure)
	{ 
		expires = expires * 60 * 60 * 24 * 1000;
		var today = new Date();
		var expires_date = new Date(today.getTime() + expires);
		var cookieString = name + "=" + escape(value) + 
			( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
			( (path) ? ";path=" + path : "") + 
			( (domain) ? ";domain=" + domain : "") + 
			( (secure) ? ";secure" : ""); 
		document.cookie = cookieString; 
	}
*/


	function setCustomizeLinkUrl(str) {
		var customizeLink = document.getElementById("customizeLink");
		if (customizeLink) {
			var baseurl = location.href.split('?', 2)[0];
			customizeLink.href = baseurl + '?' + str;
		}
	}

	function saveCookies()
	{
		var arg = serializeBoxes();
		console.log('saveCookies: ' + arg);
		//setCookie(cookieId, arg ,60000, "/", "www.htb.co.jp");
		setCookie(cookieId, arg ,60000, "/", null);
		setCustomizeLinkUrl(arg);
	}
/*df-mimura*/


	function sortSerializedParam(str) {
		if (!str)
			str = "";
		if (str.charAt(0) == '?')
			str = str.substring(1);

		var params = new Array();
		var cells = str.split('&');
		for (var idx = 0; idx < cells.length; idx++) {
			var cell = cells[idx];
			var cellparam = cell.split('=', 2);
			if (cellparam.length < 2)
				continue;
			var pid = cellparam[0];
			var data = cellparam[1];

			if (params[pid] == null) {
				params.push(pid);
				params[pid] = new Array();
			}
			params[pid].push(data);
		}

		return params;
	}

	function sortSerializedItems(str) {
		if (!str)
			str = "";
		var order = new Array();
		var items = str.split('+');

		for (var i = 0; i < items.length; i++) {
			var item = items[i];
			var disp = true;
			if (item.charAt(0) == '-') {
				disp = false;
				item = item.substring(1);
			}
			var arg = item.split('.');
			var id = arg[0];
			var obj = new Object();
			obj.id = id;
			obj.disp = disp;
			if (arg.length > 1)
				obj.dfltLines = arg[1];

			if (order[id] == null) {
				order.push(id);
				order[id] = obj;
			} else {
				if (order[id].dfltLines == null)
					order[id].dfltLines = obj.dfltLines;
			}
		}

		var res = new Array();
		for (var idx = 0; idx < order.length; idx++) {
			var item = order[order[idx]];
			var str = (item.disp ? '' : '-') + item.id;
			if (item.dfltLines)
				str += '.' + item.dfltLines;
			res.push(str);
		}

		return res.join('+');
	}

     function mergeSerializedParam() {
		var urlparam = location.search;
		console.log('urlparam: ' + urlparam);
		var param1 = sortSerializedParam(urlparam);

		var cookie = getCookie(cookieId);
		console.log('getCookie: ' + cookie);

		var param2 = sortSerializedParam(cookie);

		var order = new Array();
		var param = param1.concat(param2).sort();
		for (var idx = 0; idx < param.length; idx++) {
			var pid = param[idx];
			if (idx > 0 && pid == param[idx - 1])
				continue;

			if (order[pid] == null) {
				order.push(pid);
				order[pid] = new Array();
			}
			order[pid] = order[pid].concat(param1[pid] ? param1[pid] : [], param2[pid] ? param2[pid] : []);
		}


		var sym = { 'top': true };
		for (var idx = 0; idx < parentContainers.length; idx++) {
			var container = parentContainers[idx];
			var persistent = container.getAttribute('persistent');
			var dragArea = container.getAttribute('id');
			if (!persistent)
				continue;

			for (var pid in container.dragBoxParentsArray) {
				var parent = container.dragBoxParentsArray[pid];
				if (parent.getAttribute && parent.getAttribute('dragParent')) {
					//sym['_' + pid] = true;
					sym['_' + dragArea + ':' + pid] = true;
				}
			}
		}
		console.log('mergeSerializedParam parsing symbols: ' + sym);

		var res = new Array();
		for (var idx = 0; idx < order.length; idx++) {
			var pid = order[idx];

			if (sym[pid]) {
				console.log("pid: " + pid + " -> " + order[pid]);
				res.push(pid + '=' + sortSerializedItems(order[pid].join('+')));
			}
		}

		return res.join('&');
	}


	function serializeBoxes()
	{
		var cell = new Array();
		if (document.getElementById(cncrg_area)) {
			cell.push('top=' + (isDispCncrgArea() ? '' : '-') + cncrg_area);
		}
		for (var idx = 0; idx < parentContainers.length; idx++) {
			var container = parentContainers[idx];
			var persistent = container.getAttribute('persistent');
			var dragArea = container.getAttribute('id');
			console.log('id:' + idx + ' ->' + container + '   ' + persistent);
			if (!persistent)
				continue;

			for (var pid in container.dragBoxParentsArray) {
				var parent = container.dragBoxParentsArray[pid];
				if (parent.getAttribute && parent.getAttribute('dragParent')) {
					console.log('Parent: ' + pid + '  ->' + parent);

					var item = new Array();
					var divs = parent.getElementsByTagName('DIV');
					var div = (divs.length > 0) ? divs[0] : null;
					for ( ; div; div = div.nextSibling) {
						if (div.id && div.getAttribute('dragBox')) {
							var str = div.id;
							if (div.getAttribute('dfltLines'))
								str += '.' + div.getAttribute('dfltLines');
							if (div.style.display == 'none')
								str = '-' + str;
							item.push(str);
						}
					}
					//cell.push('_' + pid + '=' + item.join('+'));
					var itemdata = '_' + dragArea + ':' + pid + '=' + item.join('+');
					if(!inArray(itemdata,cell)){
						cell.push(itemdata);
					}
				}
			}
		}
		var result = cell.join('&');
		if (result.length > 1000)
			console.warn('JSON strings exceeds 1000 bytes: ' + result.length);
		return result;
	}

	function serializeBoxes_x(){

		var str = '';
		var all = new Array();
		for(var idx in boxContainer){
			var area = boxContainer[idx];
//console.log('area=' + area);
			var leftArea = $('#' + area + ' > #df_cLeft').find('.df_drag_box');
			var data = new Array();
			leftArea.each(function(){
				var boxid = $(this).attr('id');
				data.push(boxid);
			});
			str = '_' + area + ':' + 'df_cLeft=' + data.join('+');
//console.log('str='+str);
			all.push(str);

			var rightArea = $('#' + area + ' > #df_cRight').find('.df_drag_box');
			data = new Array();
			rightArea.each(function(){
				var boxid = $(this).attr('id');
				data.push(boxid);
			});
			str = '_' + area + ':' + 'df_cRight=' + data.join('+');
//console.log('str='+str);
			all.push(str);

		}
//console.log("return=" + all.join('&'));
return all.join('&');
//return "_df_dragArea_all:df_cLeft=df_Box1166+df_Box1161+df_Box1164+df_Box1163+df_Box1008+df_Box1004+df_Box1002&_df_dragArea_all:df_cRight=df_Box1164+df_Box1165+df_Box1163+df_Box1162+df_Box1008+df_Box1006+df_Box1004+df_Box1001+df_Box1002&_df_dragArea1:df_cLeft=df_Box161+df_Box163+df_Box8+df_Box4&_df_dragArea1:df_cRight=df_Box164+df_Box163+df_Box162+df_Box8+df_Box6+df_Box4&_df_dragArea2:df_cLeft=df_Box2&_df_dragArea2:df_cRight=&_df_dragArea3:df_cLeft=&_df_dragArea3:df_cRight=&_df_dragArea4:df_cLeft=df_Box166&_df_dragArea4:df_cRight=df_Box165&_df_dragArea5:df_cLeft=&_df_dragArea5:df_cRight=&_df_dragArea6:df_cLeft=df_Box1&_df_dragArea6:df_cRight=&_df_dragArea_delete:df_cLeft=&_df_dragArea_delete:df_cRight=";
	}

	function inArray(val,array){
		for(var i=0;i < array.length;i++){
			if(array[i]==val){
				return true;
			}
		}
		return false;
	}

	function deserializeBoxes(str)
	{
		if (!str || str.length == 0)
			return;

		cells = str.split('&');
		for (var idx = 0; idx < cells.length; idx++) {
			var cellparam = cells[idx].split('=', 2);
			if (cellparam.length < 2)
				continue;
			if (cellparam[0].charAt(0) == '_') {
				var pid = cellparam[0].substring(1);
				var pid_data = pid.split(':');
				pid = pid_data[1];
				var dragArea = pid_data[0];
				console.log('Parent: ' + pid);
				//var parent = document.getElementById(pid);
				var con = document.getElementById(dragArea);
				var parts = con.getElementsByTagName('*');
				var parent = null;
				for(var j =0;j<parts.length;j++){
					if(parts[j].getAttribute('id') == pid){
						parent = parts[j];
					}

				}
				if (parent) {
//console.log("### parent=" + parent.getAttribute("id") + ",dragArea=" + dragArea);
					var items = cellparam[1].split('+');
					for (var i = 0; i < items.length; i++) {
						var item = items[i];
						var disp = "";
						if (item.charAt(0) == '-') {
							disp = "none";
							item = item.substring(1);
						}
						var arg = item.split('.');
						var id = arg[0];
						var obj = document.getElementById(id);
						if (obj) {
//console.log("### append child=" + obj.getAttribute("id"));
							parent.appendChild(obj);
							if (arg.length > 1)
								setArticlesLines(id, arg[1]);
	
							obj.style.display = disp;
							if(dragArea == 'df_dragArea_delete'){
								changeUndoBtn($('#'+id));
							}
						}
					}
				}
			} else if (cellparam[0] == 'top') {
				var disp = true;
				if (cellparam[1].charAt(0) == '-')
					disp = false;

				console.log("dispCncrgArea: " + disp);
				dispCncrgArea(disp);
			}
		}
	}

	function initFirebug() {
		if (!window.console) {
			html = document.getElementsByTagName('HTML');
			if (html) {
				html = html[0];
				var debug = false;
				if (debug) {
					document.write('<scr' + 'ipt language="javascript" type="text/javascript" src="/firebug/firebug.js"><' +
									'/scr' + 'ipt>');
				} else {
					window.console = {
						log: function() {},
						debug: function() {},
						info: function() {},
						warn: function() {},
						error: function() {}
					}
				}
			}
		}
	}


	function prepareRoughAndReady() {
		if (typeof(boxContainer) == "undefined") {
			boxContainer = [];
		}
		if (typeof(parentContainers) == "undefined") {
			parentContainers = [];
		}
		if (typeof(cncrg_area) == "undefined") {
			cncrg_area = "ca";
		}
		if (typeof(cookieId) == "undefined") {
			cookieId = "drgBoxCookie";
		}
		if (typeof(initDragableBoxes) == "undefined") {
			initDragableBoxes = function (){};
		}
		if (typeof(createHelpObjects) == "undefined") {
			createHelpObjects = function (){};
		}
		if (typeof(initEvents) == "undefined") {
			initEvents = function (){};
		}
	}

	function initializeComponents() {
		initTopCaptionBar();

		if (typeof(initFontSizeByCookie) == "function") {
			var fontsize = initFontSizeByCookie();
			setFontSizePermanent(fontsize);
		}

		//initDragableBoxes(boxContainer);//delete

		g_normativeConfiguration = serializeBoxes();
		console.log('normativeConfiguration: ' + g_normativeConfiguration);


		//var str = mergeSerializedParam();//change
		var str = getCookie(cookieId);// change
		console.log('deserializeBoxes: ' + str);
		deserializeBoxes(str);
		initDragableBoxes(boxContainer);//add
		displayDragArea(boxContainer);//add
		if (g_normativeConfiguration != "") {
			saveCookies();
		}

		createHelpObjects();
		initEvents();

		cyclicHeadlineInterval();

		setVisibleArticles();
		setArticlesClickHandler();

		g_InitializeComponents = true;

		console.log("Initialize done.");
	}

	var g_InitializeComponents = false;


	function initializecncrgBox() {
		if (!g_InitializeComponents) {
			initializeComponents();
		}

		if (cncrgBox && cncrgBox.display) {
			cncrgBox.display(null);
		}

		remove_garbage();//add
		load_all_gadgets();//add

		console.log("cncrgBox arangement done.");
	}

	function remove_garbage_x(){
//console.log("### remove_garbage");
		var cookie = getCookie(cookieId);
		if(!cookie)return;

		var data = cookie.split('&');
		var boxdata = new Array();
		for(var i=0;i<data.length;i++){
			if( data[i].match(/df_dragArea_all/)){
				boxdata = boxdata.concat(data[i].match(/df_Box[0-9]+/g));
//console.log(data[i]);

			}
		}

		var parts = $('#df_dragArea_all').find('.df_drag_box');
//console.log("length=" + parts.length);
		for(var i=0;i<parts.length;i++){
				var boxid = parts[i].getAttribute('id');
//console.log("boxid=" + boxid);
				if(!inArray(boxid,boxdata)){
//console.log("remove");
					$('#'+boxid).remove();
				}
		}

	}

	function remove_garbage(){
//console.log("### remove_garbage");
		var cookie = getCookie(cookieId);
		if(!cookie)return;

		var data = cookie.split('&');
		var boxdata = new Array();
		for(var i=0;i<data.length;i++){
			if( data[i].match(/df_dragArea_delete/)){
				boxdata = boxdata.concat(data[i].match(/df_Box[0-9]+/g));
//console.log(data[i]);

			}
		}

		var parts = $('#df_dragArea_all').find('.df_drag_box');
//console.log("length=" + parts.length);
		for(var i=0;i<parts.length;i++){
				var boxid = parts[i].getAttribute('id');
				var sameboxid = parts[i].getAttribute('sameBox');
//console.log("boxid=" + boxid);
				if(inArray(sameboxid,boxdata)){
//console.log("remove boxid=" + boxid);
					$('#'+boxid).remove();
				}
		}

	}


	var cncrgBox = {
		adBlocks:	new Array()
		, begin:	function(adid, type) {
			document.write('<div id="'+adid+'" style="display:none;">\n');
			this.adBlocks.push(
				{adid:adid, cnid:null, type:type, disp:false});
		}
		, end:		function(adid, cnid, now) {
			document.write('</div>\n');
			if (!adid || !cnid) { return; };
			for (var i = 0; i < this.adBlocks.length; i++) {
				if (this.adBlocks[i].adid == adid) {
					this.adBlocks[i].cnid = cnid;
					if (now && this.adBlocks[i].disp == false) {
						var tmp = new Array();
						tmp.push(this.adBlocks[i]);
						this.display(tmp);
						this.adBlocks[i].disp = true;
					}
					break;
				}
			}
		}
		, display:  function(blocks) {
			if (!blocks) {
				blocks = this.adBlocks;
			}
			var isie = (window.navigator.userAgent.indexOf("MSIE") >= 0) ? true : false;
			for (var i = 0; i < blocks.length; i++) {
				if (blocks[i].disp) { continue; };
				var ae = document.getElementById(blocks[i].adid);
				var te = document.getElementById(blocks[i].cnid);
				if (!ae || !te) { return; }
				if (!isie) {
					te.appendChild(ae);
					ae.style["display"] = "";
				} else {
					var ch = ae.childNodes;
					for (var j = 0; j < ch.length; j++) {
						try {
							if (blocks[i].type == "text" 
									|| (ch[j].tagName
										&& ch[j].tagName != "SCRIPT"
										&& ch[j].tagName != "!")) {
								te.appendChild(ch[j]);
							}
						} catch(e) {
						}
					}
				}
			}
		}
	};

	var NVA_CLICK = setArticleClick;
	var NVA_COUNT = countVisibleArticles;
	var NVA_EID_SETS = [ "a", "b", "c", "d" ];
	var NVA_VID_SETS = [ ["e", "f"], ["g", "h"], ["i", "j"] ];

	function setArticlesClickHandler() {
		for (var i = 0; i < NVA_EID_SETS.length; i++) {
			forEachArticles(NVA_EID_SETS[i], NVA_CLICK
					, {func:NVA_COUNT, args:NVA_VID_SETS});
		}
	}

	function setVisibleArticles() {
		if (!document.referrer || !window.location.href) { return; };
		var furl = splitPathAndSearch(document.referrer);
		var fdir = furl[0].substr(0, furl[0].lastIndexOf("/"));
		var turl = splitPathAndSearch(window.location.href)
		var tdir = turl[0].substr(0, turl[0].lastIndexOf("/"));
		var tfil = turl[0].substr(turl[0].lastIndexOf("/"));
		if (fdir.indexOf("//") < 0 || tdir.indexOf("//") < 0
				|| (fdir.lastIndexOf("/") - fdir.indexOf("//")) < 3
				|| (tdir.lastIndexOf("/") - tdir.indexOf("//")) < 3) { return; };
		if (fdir && tdir && tfil != "/"
				&& tdir.match(new RegExp("^"+fdir, "i"))
				&& !tfil.match(new RegExp("^\/index.htm"))) {
			var params = sortSerializedParam(window.location.search);
			for (var i = 0; i < NVA_VID_SETS.length; i++) {
				if (!params[NVA_VID_SETS[i][1]]) { continue; }
				var arg = params[NVA_VID_SETS[i][1]];
				var func = function(h3nodes, i, num) {
						if (!h3nodes || i >= h3nodes.length) { return; };
						if (i >= num) { return false; };
						h3nodes[i].style["display"] = "";
						return true;
					};
				forEachArticles(NVA_VID_SETS[i][0], func, arg);
			}
		}
	}

	function countVisibleArticles(id) {
		var r = "";
		var func = function(h3nodes, i, arg) {
				var r = false;
				if (!h3nodes || i >= h3nodes.length) { return r; };
				if (h3nodes[i].style["display"] != "none") {
					r = true;
				}
				return r;
			};
		if (!(r = forEachArticles(id, func, null))) {
			r = "";
		}

		return r;
	}

	function forEachArticles(id, func, args) {
		var r = "";
		if (!func) { return r; }
		var pnodes = document.getElementById(id);
		if (!pnodes) { return r; };
		var h3nodes = pnodes.getElementsByTagName("DIV");
		if (!h3nodes) { return r; };
		r = 0;
		for (var i = 0; i < h3nodes.length; i++) {
			if (func(h3nodes, i, args)) {
				r++;
			}
		}

		return r;
	}

	function setArticleClick(h3nodes, i, args) {
		var r = false;
		if (!h3nodes && i >= h3nodes.length) { return r; }
		var h3node = h3nodes[i];
		var anodes = h3node.getElementsByTagName("A");
		for (var i = 0; i < anodes.length; i++) {
			if (anodes[i].href) {
				var urls = splitPathAndSearch(window.location.href);
				var sdir = urls[0].substr(0, urls[0].lastIndexOf("/"));
				var urld = splitPathAndSearch(anodes[i].href);
				var ddir = urld[0].substr(0, urld[0].lastIndexOf("/"));
				if (sdir && ddir
						&& ddir.match(new RegExp("^"+sdir, "i"))) {
					var node = anodes[i];
					if (node.addEventListener) {
						node.addEventListener("click"
								, function() { doClickArticle(node, args); }, true);
						r = true;
					} else if (anodes[i].attachEvent) {
						node.attachEvent("onclick"
								, function() { doClickArticle(node, args); });
						r = true;
					}
				}
			}
		}

		return r;
	}

	function doClickArticle(node, args) {
		if (!args || !args.args) { return false; }
		var urlp = splitPathAndSearch(node.href);
		if (!urlp || urlp.length < 2) { return false; }
		var search = urlp[1];
		for (var i = 0; i < args.args.length; i++) {
			var value = (args.func) ? args.func(args.args[i][0]) : "";
			if (value != "") {
				search = search.replace(new RegExp("[?&]" + args.args[i][1] + "=[^&]*", "g"), "")
						+ ("&" + args.args[i][1] + "=" + (value));
			}
		}
		node.href = urlp[0] + "?" + search.replace(new RegExp("^[?&]"), "");
		return false;
	}

	function splitPathAndSearch(url) {
		if (!url) { return null; };
		var qp = url.indexOf("?");
		var path = (qp < 0) ? url : url.substr(0, qp);
		var args = (qp < 0) ? "" : url.substr(qp);

		return [path, args, qp];
	}

	function showTabMessage(){
//console.log('show tab message');
		for(var idx in boxContainer){
			var tabname = boxContainer[idx];
			var tab = $("#" + tabname);
//console.log('tab=' + boxContainer[idx]);
			var left = tab.find("#df_cLeft").find(".df_drag_box").length;
			var right = tab.find("#df_cRight").find(".df_drag_box").length;
//console.log("left=" + left + ",right=" + right);
			if(left == 0 && right == 0){// show empty message
//console.log("empty");
				if(tabname == "df_dragArea_delete"){
					var msg = TAB_DELETE_EMPTY_MSG;
				}else{
					var msg = TAB_EMPTY_MSG;
				}
				if(tab.find('#emptymsg').length==0){
					tab.append("<div id='emptymsg' align='center'>" + msg + "</div>");
				}
			}else{//hide empty message
				tab.find("#emptymsg").remove();
			}
		}
	}

	initFirebug();
	prepareRoughAndReady();
	window.onload = initializecncrgBox;




