﻿/************************************************************************************************************/		

/* USER VARIABLES */

var numberOfColumns = 3;	// Number of columns for dragable boxes
var columnParentBoxId = 'floatingBoxParentContainer';	// Id of box that is parent of all your dragable boxes
var src_rightImage = '/img/arrow_right.gif';
var src_downImage = '/img/arrow_down.gif';
var src_refreshSource = 'images/refresh.gif';
var src_smallRightArrow = 'images/small_arrow.gif';

var transparencyWhenDragging = false;
var txt_editLink = 'Edit';
var txt_editLink_stop = 'End edit';
var autoScrollSpeed = 4;	// Autoscroll speed	- Higher = faster	
var dragObjectBorderWidth = 1;	// Border size of your RSS boxes - used to determine width of dotted rectangle

/* END USER VARIABLES */

var columnParentBox;
var dragableBoxesObj;

var ajaxObjects = new Array();

var boxIndex = 0;	
var autoScrollActive = false;
var dragableBoxesArray = new Array();

var dragDropCounter = -1;
var dragObject = false;
var dragObjectNextSibling = false;
var dragObjectParent = false;
var destinationObj = false;

var mouse_x;
var mouse_y;

var el_x;
var el_y;	

var rectangleDiv;
var okToMove = true;

var bSave = true;

var documentHeight = false;
var documentScrollHeight = false;
var dragableAreaWidth = false;
	
var opera = navigator.userAgent.toLowerCase().indexOf('opera')>=0?true:false;

var staticObjectArray = new Array();

function wait(msecs)
{
	var start = new Date().getTime();
	var cur = start
	while(cur - start < msecs)
	{
		cur = new Date().getTime();
	}
}


function addArray(url, columnIndex, heightOfBox, maxRssItems, minutesBeforeReload, uniqueIdentifier, page, classid, headerTxt)
{
	rssUrl[arrcnt] =  new Array();
	rssUrl[arrcnt][0] = url;					//url
	rssUrl[arrcnt][1] = columnIndex;			//columnIndex
	rssUrl[arrcnt][2] = heightOfBox;			//heightOfBox
	rssUrl[arrcnt][3] = maxRssItems;			//maxRssItems
	rssUrl[arrcnt][4] = minutesBeforeReload;	//minutesBeforeReload
	rssUrl[arrcnt][5] = uniqueIdentifier;		//uniqueIdentifier
	rssUrl[arrcnt][6] = page;					//page
	rssUrl[arrcnt][7] = classid;				//classid
	rssUrl[arrcnt][8] = false;					//bCreate
	rssUrl[arrcnt][9] = headerTxt;				//headerTxt

	arrcnt++;
}

addArray("guest.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 1, false, 10, 20, "guest", 1, "blackTitle", u_id+"'s guest book");
if (u_id==myid){
	addArray("forum.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 2, false, 10, false, "forum", 1, "greenTitle", u_id+"'s forum");
}
addArray("newmembers.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 2, false, 10, 20, "newmembers", 1, "pinkTitle", "New members");
//addArray("supporters.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 2, false, 10, false, "supporters", 1, "blackTitle", "Supporters");
addArray("photo.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 2, false, 12, 20, "photo", 1, "greenTitle", u_id+"'s photo album");
//addArray("translatebbs.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 3, false, 10, false, "transbbs", 1, "blueTitle", "Translate BBS");
addArray("flist.asp?u_id="+u_id+"&myid="+myid+"&ftype=fan&lcode="+langcode, 3, false, 10, 20, "fan", 1, "greenTitle", u_id+"'s fan");
addArray("flist.asp?u_id="+u_id+"&myid="+myid+"&ftype=friend&lcode="+langcode, 3, false, 10, 20, "friend", 1, "orangeTitle", u_id+"'s friend");
addArray("post.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 3, false, 10, 20, "post", 1, "blackTitle", u_id+"'s mini post");
//addArray("translate.asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode, 3, false, 10, false, "translate", 1, "greenTitle");


/*
These cookie functions are downloaded from 
http://www.mach5.com/support/analyzer/manual/html/General/CookiesJavaScript.htm
*/	

function autoScroll(direction,yPos)
{
	if(document.documentElement.scrollHeight>documentScrollHeight && direction>0)return;
	if(opera)return;
	window.scrollBy(0,direction);
	if(!dragObject)return;
	
	if(direction<0){
		if(document.documentElement.scrollTop>0){
			dragObject.style.top = (el_y - mouse_y + yPos + document.documentElement.scrollTop) + 'px';		
		}else{
			autoScrollActive = false;
		}
	}else{
		if(yPos>(documentHeight-50)){	
			dragObject.style.top = (el_y - mouse_y + yPos + document.documentElement.scrollTop) + 'px';			
		}else{
			autoScrollActive = false;
		}
	}
	if(autoScrollActive)setTimeout('autoScroll('+direction+',' + yPos + ')',5);
}

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) // defeat Safari bug
		source = source.parentNode;
	
	if(source.tagName.toLowerCase()=='img' || source.tagName.toLowerCase()=='a' || source.tagName.toLowerCase()=='input' || source.tagName.toLowerCase()=='td' || source.tagName.toLowerCase()=='tr' || source.tagName.toLowerCase()=='table')return;

	mouse_x = e.clientX;
	mouse_y = e.clientY;	
	var numericId = this.id.replace(/[^0-9]/g,'');
	el_x = getLeftPos(this.parentNode.parentNode)/1;
	el_y = getTopPos(this.parentNode.parentNode)/1 - document.documentElement.scrollTop;

	dragObject = this.parentNode.parentNode;
	
	documentScrollHeight = document.documentElement.scrollHeight + 100 + dragObject.offsetHeight;
	
	if(dragObject.nextSibling){
		dragObjectNextSibling = dragObject.nextSibling;
		if(dragObjectNextSibling.tagName!='DIV')dragObjectNextSibling = dragObjectNextSibling.nextSibling;
	}
	dragObjectParent = dragableBoxesArray[numericId]['parentObj'];

	dragDropCounter = 0;
	initDragDropBoxTimer();	
	
	return false;
}


function initDragDropBoxTimer()
{
	if(dragDropCounter>=0 && dragDropCounter<10){
		dragDropCounter++;
		setTimeout('initDragDropBoxTimer()',10);
		return;
	}
	if(dragDropCounter==10){
		mouseoutBoxHeader(false,dragObject);
	}
}

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.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'; 
		
	}
	
	if(e.clientY<50 || e.clientY>(documentHeight-50)){
		if(e.clientY<50 && !autoScrollActive){
			autoScrollActive = true;
			autoScroll((autoScrollSpeed*-1),e.clientY);
		}
		
		if(e.clientY>(documentHeight-50) && document.documentElement.scrollHeight<=documentScrollHeight && !autoScrollActive){
			autoScrollActive = true;
			autoScroll(autoScrollSpeed,e.clientY);
		}
	}else{
		autoScrollActive = false;
	}		

	var leftPos = e.clientX;
	var topPos = e.clientY + document.documentElement.scrollTop;

	dragObject.style.left = (e.clientX - mouse_x + el_x) + 'px';
	dragObject.style.top = (el_y - mouse_y + e.clientY + document.documentElement.scrollTop) + 'px';

	if(!okToMove)return;
	okToMove = false;

	destinationObj = false;	
	rectangleDiv.style.display = 'none'; 
	
	var objFound = false;
	var tmpParentArray = new Array();
	
	if(!objFound){
		for(var no=1;no<dragableBoxesArray.length;no++){
			if(dragableBoxesArray[no]['obj']==dragObject)continue;
			tmpParentArray[dragableBoxesArray[no]['obj'].parentNode.id] = true;
			if(!objFound){
				var tmpX = getLeftPos(dragableBoxesArray[no]['obj']);
				var tmpY = getTopPos(dragableBoxesArray[no]['obj']);

				if(leftPos>tmpX && leftPos<(tmpX + dragableBoxesArray[no]['obj'].offsetWidth) && topPos>(tmpY-20) && topPos<(tmpY + (dragableBoxesArray[no]['obj'].offsetHeight/2))){
					destinationObj = dragableBoxesArray[no]['obj'];
					destinationObj.parentNode.insertBefore(rectangleDiv,dragableBoxesArray[no]['obj']);
					rectangleDiv.style.display = 'block';
					objFound = true;
					break;
					
				}

				if(leftPos>tmpX && leftPos<(tmpX + dragableBoxesArray[no]['obj'].offsetWidth) && topPos>=(tmpY + (dragableBoxesArray[no]['obj'].offsetHeight/2)) && topPos<(tmpY + dragableBoxesArray[no]['obj'].offsetHeight)){
					objFound = true;
					if(dragableBoxesArray[no]['obj'].nextSibling){
						
						destinationObj = dragableBoxesArray[no]['obj'].nextSibling;
						if(!destinationObj.tagName)destinationObj = destinationObj.nextSibling;
						if(destinationObj!=rectangleDiv)destinationObj.parentNode.insertBefore(rectangleDiv,destinationObj);
					}else{
						destinationObj = dragableBoxesArray[no]['obj'].parentNode;
						dragableBoxesArray[no]['obj'].parentNode.appendChild(rectangleDiv);
					}
					rectangleDiv.style.display = 'block';
					break;					
				}

				if(!dragableBoxesArray[no]['obj'].nextSibling && leftPos>tmpX && leftPos<(tmpX + dragableBoxesArray[no]['obj'].offsetWidth)
				&& topPos>topPos>(tmpY + (dragableBoxesArray[no]['obj'].offsetHeight))){
					destinationObj = dragableBoxesArray[no]['obj'].parentNode;
					dragableBoxesArray[no]['obj'].parentNode.appendChild(rectangleDiv);	
					rectangleDiv.style.display = 'block';	
					objFound = true;				
				}
			}
		}
	}
	
	if(!objFound){
		for(var no=1;no<=numberOfColumns;no++){
			if(!objFound){
				var obj = $('dragableBoxesColumn' + no);			
				var left = getLeftPos(obj)/1;						
				var width = obj.offsetWidth;
				if(leftPos>left && leftPos<(left+width)){
					destinationObj = obj;
					obj.appendChild(rectangleDiv);
					rectangleDiv.style.display='block';
					objFound=true;		
				}				
			}
		}		
	}
	setTimeout('okToMove=true',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 numericId = dragObject.id.replace(/[^0-9]/g,'');
	if(destinationObj && destinationObj.id!=dragObject.id){
		if(destinationObj.id.indexOf('dragableBoxesColumn')>=0){
			destinationObj.appendChild(dragObject);
			dragableBoxesArray[numericId]['parentObj'] = destinationObj;
		}else{
			destinationObj.parentNode.insertBefore(dragObject,destinationObj);
			dragableBoxesArray[numericId]['parentObj'] = destinationObj.parentNode;
		}
	}else{
		if(dragObjectNextSibling){
			dragObjectParent.insertBefore(dragObject,dragObjectNextSibling);	
		}else{
			dragObjectParent.appendChild(dragObject);
		}				
	}

	autoScrollActive = false;
	rectangleDiv.style.display = 'none'; 
	dragObject = false;
	dragObjectNextSibling = false;
	destinationObj = false;

	setTimeout('saveDivStaus()',100);

	documentHeight = document.documentElement.clientHeight;	
}


function saveDivStaus()
{
	if (u_id!=myid) return;

	var tmpUrlArray = new Array();
	var saveData = '';
	for(var no=1;no<=numberOfColumns;no++)
	{
		var parentObj = $('dragableBoxesColumn' + no);

		var items = parentObj.getElementsByTagName('DIV');
		if(items.length==0)continue;

		var item = items[0];

		var tmpItemArray = new Array();
		while(item){
			var boxIndex = item.id.replace(/[^0-9]/g,'');
			if(item.id!='rectangleDiv'){
				tmpItemArray[tmpItemArray.length] = boxIndex;
			}	
			item = item.nextSibling;			
		}

		var columnIndex = no;

		for(var no2=tmpItemArray.length-1;no2>=0;no2--){
			var boxIndex = tmpItemArray[no2];
			var uniqueIdentifier = dragableBoxesArray[boxIndex]['uniqueIdentifier'];
			var state = dragableBoxesArray[boxIndex]['boxState'];

			saveData = saveData + uniqueIdentifier + '#;#' + state + '#;#' + columnIndex + '@;@';
		}
	}
	if (saveData != '')
	{
		new Ajax.Request('/blog/savedivstatus.asp?ucd='+ucd+'&divdata='+escape(saveData), 
			{ method: 'get', onSuccess: resultSaveData }
		);
	}
}

function resultSaveData()
{
	return;
}

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 createColumns()
{
	if(!columnParentBoxId){
		alert('No parent box defined for your columns');
		return;
	}
	columnParentBox = $(columnParentBoxId);
	var columnWidth = Math.floor(100/numberOfColumns);
	var sumWidth = 0;
	for(var no=0;no<numberOfColumns;no++){
		var div = document.createElement('DIV');
		if(no==(numberOfColumns-1))columnWidth = 99 - sumWidth;
		sumWidth = sumWidth + columnWidth;
		div.style.cssText = 'float:left;width:'+columnWidth+'%;padding:0px;margin:0px;';
		div.style.height='100%';
		div.style.styleFloat='left';
		div.style.width = columnWidth + '%';
		div.style.padding = '0px';
		div.style.margin = '0px';

		div.id = 'dragableBoxesColumn' + (no+1);
		columnParentBox.appendChild(div);
	}

	var clearingDiv = document.createElement('DIV');
	columnParentBox.appendChild(clearingDiv);
	clearingDiv.style.clear='both';
}

function mouseoverBoxHeader()
{
	if(dragDropCounter==10)return;
	var id = this.id.replace(/[^0-9]/g,'');
	$('dragableBoxExpand' + id).style.visibility = 'visible';		
	$('dragableBoxRefreshSource' + id).style.visibility = 'visible';		
}
function mouseoutBoxHeader(e,obj)
{
	if(!obj)obj=this;
	var id = obj.id.replace(/[^0-9]/g,'');
	$('dragableBoxExpand' + id).style.visibility = 'hidden';		
	$('dragableBoxRefreshSource' + id).style.visibility = 'hidden';		
}

function refreshRSS()
{
	reloadRSSData(this.id.replace(/[^0-9]/g,''));
	setTimeout('dragDropCounter=-5',5);
}

function showHideBoxContent(e,inputObj)
{
	if(document.all)e = event;
	if(!inputObj)inputObj=this;

	var numericId = inputObj.id.replace(/[^0-9]/g,'');
	var obj = $('dragableBoxContent' + numericId);

	obj.style.display = inputObj.src.indexOf(src_rightImage)>=0?'none':'block';
	inputObj.src = inputObj.src.indexOf(src_rightImage)>=0?src_downImage:src_rightImage

	dragableBoxesArray[numericId]['boxState'] = obj.style.display=='block'?1:0;
	if (bSave)
	{
		saveDivStaus();
	}
	setTimeout('dragDropCounter=-5',5);
}

function mouseover_CloseButton()
{
	this.className = 'closeButton_over';	
	setTimeout('dragDropCounter=-5',5);
}

function highlightCloseButton()
{
	this.className = 'closeButton_over';	
}

function mouseout_CloseButton()
{
	this.className = 'closeButton';	
}

function closeDragableBox(e,inputObj)
{
	if(!inputObj)inputObj = this;
	var numericId = inputObj.id.replace(/[^0-9]/g,'');
	$('dragableBox' + numericId).style.display='none';	

	setTimeout('dragDropCounter=-5',5);
}


function showStatusBarMessage(numericId,message)
{
//	$('dragableBoxStatusBar' + numericId).innerHTML = message;
}

function addBoxHeader(parentObj,externalUrl,notDrabable, classid)
{
	var div = document.createElement('DIV');
	//div.className = 'pinkTitle';
	div.className = classid;
	
	div.id = 'dragableBoxHeader' + boxIndex;
	div.onmouseover = mouseoverBoxHeader;
	div.onmouseout = mouseoutBoxHeader;
	if(!notDrabable){
		div.onmousedown = initDragDropBox;
		div.style.cursor = 'move';
	}
	
	var image = document.createElement('IMG');
	image.id = 'dragableBoxExpand' + boxIndex;
	image.src = src_rightImage;
	image.style.visibility = 'hidden';	
	image.style.cursor = 'pointer';
	image.style.paddingLeft = '5px';
	image.style.paddingRight = '5px';
//	image.style.padding-top = '5px';
	image.onmousedown = showHideBoxContent;	
	div.appendChild(image);

	var textSpan = document.createElement('SPAN');
	textSpan.id = 'dragableBoxHeader_txt' + boxIndex;
	div.appendChild(textSpan);
	parentObj.appendChild(div);	

	var image = document.createElement('IMG');
	image.src = src_refreshSource;
	image.id = 'dragableBoxRefreshSource' + boxIndex;
	image.style.cssText = 'float:right';
	image.style.styleFloat = 'right';
	image.style.visibility = 'hidden';
	image.style.paddingTop = '8px';
	image.style.paddingRight = '8px';
	image.onclick = refreshRSS;
	image.style.cursor = 'pointer';
	if(!externalUrl)image.style.display='none';
	div.appendChild(image);
}

function saveFeed(boxIndex)
{
	var heightOfBox = dragableBoxesArray[boxIndex]['heightOfBox'] = $('heightOfBox[' + boxIndex + ']').value;
	var intervalObj = dragableBoxesArray[boxIndex]['intervalObj'];
	if(intervalObj)clearInterval(intervalObj);
	
	if(heightOfBox && heightOfBox>40){
		var contentObj = $('dragableBoxContent' + boxIndex);
		contentObj.style.height = heightOfBox + 'px';
		contentObj.setAttribute('heightOfBox',heightOfBox);
		contentObj.heightOfBox = heightOfBox;	
		if(document.all)contentObj.style.overflowY = 'auto';else contentObj.style.overflow='-moz-scrollbars-vertical;';
		if(opera)contentObj.style.overflow='auto';			
	}
	
	dragableBoxesArray[boxIndex]['rssUrl'] = $('rssUrl[' + boxIndex + ']').value;
	dragableBoxesArray[boxIndex]['heightOfBox'] = heightOfBox;
	dragableBoxesArray[boxIndex]['maxItems'] = $('maxItems[' + boxIndex + ']').value;
	dragableBoxesArray[boxIndex]['heightOfBox'] = $('heightOfBox[' + boxIndex + ']').value;
	dragableBoxesArray[boxIndex]['minutesBeforeReload'] = $('minutesBeforeReload[' + boxIndex + ']').value;
	
	if(dragableBoxesArray[boxIndex]['minutesBeforeReload'] && dragableBoxesArray[boxIndex]['minutesBeforeReload']>5){
		var tmpInterval = setInterval("reloadRSSData(" + boxIndex + ")",(dragableBoxesArray[boxIndex]['minutesBeforeReload']*1000*60));	
		dragableBoxesArray[boxIndex]['intervalObj'] = tmpInterval;
	}
	reloadRSSData(boxIndex);
	
	setTimeout('saveDivStaus()',100);
}


function addBoxContentContainer(parentObj,heightOfBox)
{
	var div = document.createElement('DIV');
	div.className = 'dragableBoxContent';
	if(opera)div.style.clear='none';
	div.id = 'dragableBoxContent' + boxIndex;
	parentObj.appendChild(div);			
	if(heightOfBox && heightOfBox/1>40){
		div.style.height = heightOfBox + 'px';
		div.setAttribute('heightOfBox',heightOfBox);
		div.heightOfBox = heightOfBox;	
		if(document.all)div.style.overflowY = 'auto';else div.style.overflow='-moz-scrollbars-vertical;';
		if(opera)div.style.overflow='auto';
	}		
}

function addBoxStatusBar(parentObj)
{
	var div = document.createElement('DIV');
	div.className = 'dragableBoxStatusBar';
	div.id = 'dragableBoxStatusBar' + boxIndex;
	parentObj.appendChild(div);	
}

function createABox(columnIndex,heightOfBox,externalUrl,uniqueIdentifier,notDragable,classid)
{
	boxIndex++;
	
	var maindiv = document.createElement('DIV');
	maindiv.className = 'dragableBox';
	maindiv.id = 'dragableBox' + boxIndex;
	
	var div = document.createElement('DIV');
	maindiv.appendChild(div);
	
	addBoxHeader(div,externalUrl,notDragable,classid);
	addBoxContentContainer(div,heightOfBox);
	
	var obj = $('dragableBoxesColumn' + columnIndex);		
	var subs = obj.getElementsByTagName('DIV');
	if(subs.length>0){
		obj.insertBefore(maindiv,subs[0]);
	}else{
		obj.appendChild(maindiv);
	}

	dragableBoxesArray[boxIndex] = new Array();
	dragableBoxesArray[boxIndex]['obj'] = maindiv;
	dragableBoxesArray[boxIndex]['parentObj'] = maindiv.parentNode;
	dragableBoxesArray[boxIndex]['uniqueIdentifier'] = uniqueIdentifier;
	dragableBoxesArray[boxIndex]['heightOfBox'] = heightOfBox;
	dragableBoxesArray[boxIndex]['boxState'] = 1;	// Expanded
	dragableBoxesArray[boxIndex]['nPage'] = 1;	// Expanded
	dragableBoxesArray[boxIndex]['classid'] = classid;	// classid

	staticObjectArray[uniqueIdentifier] = boxIndex;

	return boxIndex;
}

function reloadRSSData(numericId)
{
	showStatusBarMessage(numericId,'Loading data...');

	var url1 = '/blog/cont/' + dragableBoxesArray[numericId]['rssUrl'] + '&page=' + dragableBoxesArray[numericId]['nPage'] + '&maxItems=' + dragableBoxesArray[numericId]['maxItems'];
	new Ajax.Updater({ success: 'dragableBoxContent' + numericId }, url1, {	method: 'get', evalScripts: true });
}
	
function createARSSBox(url,columnIndex,heightOfBox,maxItems,minutesBeforeReload,uniqueIdentifier,state, nPage, classid, headerTxt)
{
	if(!heightOfBox)heightOfBox = '0';
	if(!minutesBeforeReload)minutesBeforeReload = '0';
	if(!nPage)nPage = 1;
	if((!headerTxt)||(headerTxt=='')) headerTxt = uniqueIdentifier;

	var tmpIndex = createABox(columnIndex,heightOfBox,true,uniqueIdentifier,false,classid);

	$('dragableBoxHeader_txt' + tmpIndex).innerHTML = '<span>' + headerTxt + '<\/span>';	// title

	dragableBoxesArray[tmpIndex]['rssUrl'] = url;
	dragableBoxesArray[tmpIndex]['maxItems'] = maxItems?maxItems:100;
	dragableBoxesArray[tmpIndex]['minutesBeforeReload'] = minutesBeforeReload;
	dragableBoxesArray[tmpIndex]['heightOfBox'] = heightOfBox;
	dragableBoxesArray[tmpIndex]['uniqueIdentifier'] = uniqueIdentifier;
	dragableBoxesArray[tmpIndex]['state'] = state;
	dragableBoxesArray[tmpIndex]['nPage'] = nPage;
	dragableBoxesArray[tmpIndex]['classid'] = classid;

	if(state==0){
		bSave = false;
		showHideBoxContent(false,$('dragableBoxExpand' + tmpIndex));
		bSave = true;
	}
	
	staticObjectArray[uniqueIdentifier] = tmpIndex;
	
	var tmpInterval = false;
	if(minutesBeforeReload && minutesBeforeReload>0){
		var tmpInterval = setInterval("reloadRSSData(" + tmpIndex + ")",(minutesBeforeReload*1000*60));
	}

	dragableBoxesArray[tmpIndex]['intervalObj'] = tmpInterval;
		
	if(!$('dragableBoxContent' + tmpIndex).innerHTML)$('dragableBoxContent' + tmpIndex).innerHTML = 'loading RSS data';

	if(url.length>0 && url!='undefined'){
		if(!maxItems) maxItems = 100;
		var url1 = '/blog/cont/' + url + '&page=' + nPage + '&maxItems=' + maxItems;
		new Ajax.Updater({ success: 'dragableBoxContent' + tmpIndex }, url1, {method: 'get', evalScripts: true });
	}else{
		hideHeaderOptionsForStaticBoxes(tmpIndex);
	}			
}

function createHelpObjects()
{
	/* Creating rectangle div */
	rectangleDiv = document.createElement('DIV');
	rectangleDiv.id='rectangleDiv';
	rectangleDiv.style.display='none';
	document.body.appendChild(rectangleDiv);
}

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) // defeat Safari bug
		source = source.parentNode;
	if(source.tagName.toLowerCase()=='input')return true;

	if(dragDropCounter>=0)return false; else return true;	
}

function cancelEvent()
{
	return false;
}

function initEvents()
{
	document.body.onmousemove = moveDragableElement;
	document.body.onmouseup = stop_dragDropElement;
	document.body.onselectstart = cancelSelectionEvent;

	document.body.ondragstart = cancelEvent;	

	documentHeight = document.documentElement.clientHeight;	
}


function createFeed(formObj)
{
	var url = formObj.rssUrl.value;
	var items = formObj.items.value;
	var height = formObj.height.value;
	var reloadInterval = formObj.reloadInterval.value;
	if(isNaN(height) || height/1<40)height = false;	
	if(isNaN(reloadInterval) || reloadInterval/1<5)reloadInterval = false;
	createARSSBox(url,1,height,items,reloadInterval);	
}


/* Delete all boxes */

function deleteAllDragableBoxes()
{
	var divs = document.getElementsByTagName('DIV');
	for(var no=0;no<divs.length;no++){
		if(divs[no].className=='dragableBox')closeDragableBox(false,divs[no]);	
	}
}


function hideHeaderOptionsForStaticBoxes(boxIndex)
{
	if($('dragableBoxRefreshSource' + boxIndex))$('dragableBoxRefreshSource' + boxIndex).style.display='none';
	if($('dragableBoxCloseLink' + boxIndex))$('dragableBoxCloseLink' + boxIndex).style.display='none';
	if($('dragableBoxEditLink' + boxIndex))$('dragableBoxEditLink' + boxIndex).style.display='none';
}

function exeDefContent()
{
	viewContents(conseq, contype);
}

function makeProfileBox(colIndex)
{
	var newIndex = createABox(colIndex, false, false, 'profile', false, 'pinkTitle');
	$('dragableBoxContent' + newIndex).innerHTML = htmlContentOfNewBox;
	$('dragableBoxHeader_txt' + newIndex).innerHTML = titleOfNewBox;
	hideHeaderOptionsForStaticBoxes(staticObjectArray['profile']);
	return newIndex;
}

function makeTranslateBox(colIndex)
{
	var newIndex = createABox(colIndex, false, false, 'translate', false, 'greenTitle');
	$('dragableBoxContent' + newIndex).innerHTML = htmlContentOfNewBox1;
	$('dragableBoxHeader_txt' + newIndex).innerHTML = titleOfNewBox1;
	hideHeaderOptionsForStaticBoxes(staticObjectArray['translate']);
	return newIndex;
}

/* You customize this function */
function createDefaultBoxes()
{
	if (divdata !="")
	{
		var bProfile = false;
		var bTranslate = false;
		var item1 = divdata.split('@;@'); 
		for (var i=0; i<item1.length; i++)
		{
			if (item1[i]=='') break;

			var item2 = item1[i].split('#;#');
//			debugFunc(item2[0]+'\r\n');
			if (item2[0]=="profile")
			{
				var newIndex = makeProfileBox(item2[2]);
				if (item2[1]==0)
				{
					bSave = false;
					showHideBoxContent(false,$('dragableBoxExpand' + newIndex));
					bSave = true;
				}
				bProfile = true;
			}
			else if (item2[0]=="translate")
			{
				var newIndex1 = makeTranslateBox(item2[2]);
				if (item2[1]==0)
				{
					bSave = false;
					showHideBoxContent(false,$('dragableBoxExpand' + newIndex1));
					bSave = true;
				}
				bTranslate = true;
			}
			else
			{
				for (var j=0; j<rssUrl.length; j++ )
				{
					if (rssUrl[j][5]==item2[0])
					{
						createARSSBox(rssUrl[j][0], item2[2], rssUrl[j][2], rssUrl[j][3],
							rssUrl[j][4], rssUrl[j][5], item2[1], rssUrl[j][6], rssUrl[j][7], rssUrl[j][9]);
						rssUrl[j][8] = true;
						break;
					}
				}
			}
		}

		if (!bTranslate)
		{
			var newIndex1 = makeTranslateBox(2);
		}

		for (var r=0;r<rssUrl.length;r++ )
		{
			if (rssUrl[r][8]==false)
			{
				createARSSBox(rssUrl[r][0], rssUrl[r][1], rssUrl[r][2], rssUrl[r][3], rssUrl[r][4],
					rssUrl[r][5], 1, rssUrl[r][6], rssUrl[r][7], rssUrl[r][9]);
			}
		}

		if (!bProfile)
		{
			var newIndex = makeProfileBox(1);
		}

	}
	else
	{
		var newIndex1 = makeTranslateBox(2);

		for (var r=0;r<rssUrl.length;r++ )
		{
			createARSSBox(rssUrl[r][0], rssUrl[r][1], rssUrl[r][2], rssUrl[r][3], rssUrl[r][4],
				rssUrl[r][5], 1, rssUrl[r][6], rssUrl[r][7], rssUrl[r][9]);
		}

		var newIndex = makeProfileBox(1);
	}

	if (addCont) viewContents(conseq, contype);
	if (isLogin) setTimeout(GetListBlog, 5000);
	if (isLogin) setTimeout(GetLoginChk, 1000);
}

/* Disable drag for a box */
function disableBoxDrag(boxIndex)
{
	$('dragableBoxHeader' + boxIndex).onmousedown = '';
	$('dragableBoxHeader' + boxIndex).style.cursor = 'default';		
}

function initDragableBoxesScript()
{
	createColumns();	// Always the first line of this function
	createHelpObjects();	// Always the second line of this function
	initEvents();	// Always the third line of this function

	createDefaultBoxes();	// Create default boxes.
}


function debugFunc(str)
{
	if (str)
	{
		$('debugarea').value+="\r\n";
		$('debugarea').value+=str;
	}
}

function getBoxIndexbyName(boxName)
{
	for (var k=1; k<dragableBoxesArray.length; k++ )
	{
		if ( dragableBoxesArray[k]['uniqueIdentifier'] == boxName )
			return k;
	}
	return 0;
}


// #######################################################


function getCliHeight() {
	var nHeight = 0;

	if (window.innerHeight && window.scrollMaxY) {
		nHeight = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){
		nHeight = document.body.scrollHeight;
	} else {
		nHeight = document.body.offsetHeight;
	}
	
	var nWHeight;
	if (self.innerHeight) {
		nWHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.scrollHeight && document.documentElement.clientHeight ) { 
		if( document.documentElement.scrollHeight > document.documentElement.clientHeight ) {
			nWHeight = document.documentElement.scrollHeight;
		}
		else {
			nWHeight = document.documentElement.clientHeight;
		}
	} else if (document.body) {
		nWHeight = document.body.clientHeight;
	}	

	if(nHeight < nWHeight){
		return nWHeight;
	} else { 
		return nHeight;
	}
}


function getCliWidth() {
	var nWidth = 0;

	if (window.innerWidth && window.scrollMaxX) {
		nWidth = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollWidth > document.body.offsetWidth){
		nWidth = document.body.scrollWidth;
	} else {
		nWidth = document.body.offsetWidth;
	}
	
	var nWWidth;
	if (self.innerWidth) {
		nWWidth = self.innerWidth;
	} else if (document.documentElement && document.documentElement.scrollWidth && document.documentElement.clientWidth ) { 
		if( document.documentElement.scrollWidth > document.documentElement.clientWidth ) {
			nWWidth = document.documentElement.scrollWidth;
		}
		else {
			nWWidth = document.documentElement.clientWidth;
		}
	} else if (document.body) {
		nWWidth = document.body.clientWidth;
	}	

	if(nWidth < nWWidth){
		return nWWidth;
	} else { 
		return nWidth;
	}
}




function setDisplay(objstr) 
{
	var obj = $(objstr);
	if(obj.style.display == "block")
	{
		obj.style.display = "none";
	}else{
		obj.style.display = "block";
	}
} 

function locateDiv()
{
	var objPopLayer = $('popLayer');
	if(document.all) e = event;
	
	if (e)
	{
		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
		var leftPos = e.clientX;
		if(leftPos<0)leftPos = 20;
		objPopLayer.style.left = leftPos + 'px';
		objPopLayer.style.top = e.clientY - 20 + st + 'px';
	}
}

function viewContents(gid, vname)
{
	var cname = "/blog/cont/view"+vname;
	var vgurl = cname+".asp?u_id="+u_id+"&myid="+myid+"&lcode="+langcode+"&gid="+gid;
	new Ajax.Request(vgurl, 
		{ method: 'get', onSuccess: showContentsView }
	);
}

function showContentsView(oriRequest)
{
	var viewContent = oriRequest.responseText.strip();
	if ((viewContent == "F") || (viewContent.length == 0))
		return;
	else
		$('popLayer').innerHTML = viewContent;

	setTimeout("showLayer()", 100);
}

function showLayer()
{
	var objPopLayer = $('popLayer');
	var objDarkLayer = $('darkLayer');

	var nDarkWidth = getCliWidth();
	var nDarkHeight = getCliHeight();

	objDarkLayer.style.width = nDarkWidth+"px";
	objDarkLayer.style.height = nDarkHeight+"px";

	if (objDarkLayer.style.display == "none") objDarkLayer.style.display = "block";
	if (objPopLayer.style.display == "none") objPopLayer.style.display = "block";

	var popleft = document.documentElement.clientWidth/2 - objPopLayer.clientWidth/2 + document.documentElement.scrollLeft;
	if (popleft < 50) popleft=50;

	var poptop = document.documentElement.clientHeight/2 - objPopLayer.clientHeight/2 + document.documentElement.scrollTop;
	if (poptop < 50) poptop=50;

	objPopLayer.style.left = popleft + 'px';
	objPopLayer.style.top = poptop + 'px';
}

function hideLayer()
{
	var objPopLayer = $('popLayer');
	var objDarkLayer = $('darkLayer');

	objDarkLayer.style.width = "1px";
	objDarkLayer.style.height = "1px";

	objPopLayer.innerHTML = "";

	if (objDarkLayer.style.display == "block") objDarkLayer.style.display = "none";
	if (objPopLayer.style.display == "block") objPopLayer.style.display = "none";
}

function writebbs(divname)
{
	if (!isLogin)
	{
		alert('Please login!');
		return;
	}
/*
	if (navigator.appName == "Microsoft Internet Explorer")
	{
		var objPopLayer = $('popLayer');
		objPopLayer.innerHTML = "<img src=\"/img/loading.gif\" width=\"50\" height=\"50\" onclick=\"hideLayer();\">";
		if (objPopLayer.style.display == "none") objPopLayer.style.display = "block";
		locateDiv();
	}
*/
	var vgurl = "/blog/cont/" + divname + ".asp?u_id="+u_id+"&myid="+myid+"&sAgent="+sAgent+"&lcode="+langcode+"&addParam1="+addParam1;
	new Ajax.Request(vgurl, 
		{ method: 'get', onSuccess: showContentsView }
	);
}

function editContent(gid, cname)
{
	if (!isLogin)
	{
		alert('Please login!');
		return;
	}

	var vgurl = "/blog/cont/modify" + cname + ".asp?u_id="+u_id+"&myid="+myid+"&gid="+gid+"&lcode="+langcode;
	new Ajax.Request(vgurl, 
		{ method: 'get', onSuccess: showEditDiv }
	);
}

function showEditDiv(oriRequest)
{
	var objPopLayer = $('popLayer');
	var writeContent = oriRequest.responseText.strip();

	objPopLayer.innerHTML = writeContent;

	var popleft = document.documentElement.clientWidth/2 - objPopLayer.clientWidth/2 + document.documentElement.scrollLeft;
	if (popleft < 0) popleft=0;

	var poptop = document.documentElement.clientHeight/2 - objPopLayer.clientHeight/2 + document.documentElement.scrollTop;
	if (poptop < 0) poptop=0;

	objPopLayer.style.left = popleft + 'px';
	objPopLayer.style.top = poptop + 'px';
}

function delContent(gid, vname)
{
	if (confirm("Would you want to delete?")==true)
	{
		var vgurl = "/blog/cont/del"+vname+".asp?seq="+gid;
		new Ajax.Request(vgurl, 
			{ method: 'get', onSuccess: function(){ delResult(vname); } }
		);
	}
}

function delResult(vname)
{
	hideLayer();

	var nBoxIndex = getBoxIndexbyName(vname);
	reloadRSSData(nBoxIndex);
}

function delRep(rid, gid, vname)
{
	if (confirm("Would you want to delete?")==true)
	{
		var vgurl = "/blog/cont/delrep.asp?idx="+rid;
		new Ajax.Request(vgurl, 
			{ method: 'get', onSuccess: function(){ delRepResult(gid, vname); } }
		);
	}
}

function delRepResult(gid, vname)
{
	viewContents(gid, vname);
	var nBoxIndex = getBoxIndexbyName(vname);
	reloadRSSData(nBoxIndex);
}


function naviList(ftype, nPage)
{
	var nBoxIndex = getBoxIndexbyName(ftype);
	dragableBoxesArray[nBoxIndex]['nPage'] = nPage;
	reloadRSSData(nBoxIndex);
}

function startCallback() {
	// make something useful before submit (onStart)
	return true;
}

function startPost() {
	// make something useful before submit (onStart)
	if (document.postform.n_title.value=="")
	{
		alert("Please enter subject");
		document.postform.n_title.focus();
		return false;
	}
	AIM.submit(document.postform, {'onStart' : startCallback, 'onComplete' : completeCallback});
	return true;
}

function startGuest() {
	// make something useful before submit (onStart)
	if (document.guestform.contents.value=="")
	{
		alert("Please enter contents");
		document.guestform.contents.focus();
		return false;
	}
	AIM.submit(document.guestform, {'onStart' : startCallback, 'onComplete' : completeCallback});
	return true;
}

function startPhoto() {
	// make something useful before submit (onStart)
	if (document.photoform.n_title.value=="")
	{
		alert("Please enter subject");
		document.photoform.n_title.focus();
		return false;
	}
	if (document.photoform.picname.value=="")
	{
		alert("Please select a photo file");
		document.photoform.picname.focus();
		return false;
	}

	AIM.submit(document.photoform, {'onStart' : startPhotoUp, 'onComplete' : completeCallback});
	return true;
}

function completeCallback(response) 
{
	var vals = response.split("|");
	var dname = "write"+vals[0];
	hideLayer();

	if (vals[1] == "T") naviList(vals[0], 1);
}

function startEditPost() {
	// make something useful before submit (onStart)
	if (document.posteditform.n_title.value=="")
	{
		alert("Please enter subject");
		document.posteditform.n_title.focus();
		return false;
	}
	AIM.submit(document.posteditform, {'onStart' : startCallback, 'onComplete' : editCallback});
	return true;
}

function editCallback(response) 
{
	var vals = response.split("|");
	var dname = "write"+vals[0];

	if (vals[1] == "T")
	{
		viewContents(vals[2], vals[0]);
		naviList(vals[0], 1)
	}
}

function uploadBgimage() {
	$('bgimgsubmit').click();
}

function upBgimgCallback(response) 
{
	var vals = response.split("|");
	if (vals[0] == "T")
	{
		var bgimgpath = "url('http://tt4you.com/img/userbgimg/"+vals[1]+"')";
		$('contents').style.backgroundImage = bgimgpath;
		bgtype = "u";
	}
}

function setBgType(typ)
{
	if (typ=="d")
	{
		$('bgpicname').disabled = true;
		if (bgtype=="u") setDefaultBgimg();
	}
	else if (typ=="u")
	{
		$('bgpicname').disabled = false;
	}
}

function setDefaultBgimg()
{
	var vgurl = '/blog/defbgimg.asp?ucd='+ucd;
	new Ajax.Request(vgurl, 
		{ method: 'get', onSuccess: resultDefBgimg }
	);
}

function resultDefBgimg(oriRequest) 
{
	var vals = oriRequest.responseText.strip().split("|");
	if (vals[0]=="T")
	{
		var bgimgpath = "url('/img/defbg.jpg')";
		$('contents').style.backgroundImage = bgimgpath;
		bgtype = "d";
	}
}

function startComment(obj) {
	// make something useful before submit (onStart)
	if (obj.contents.value=="")
	{
		alert("Please enter contents");
		obj.contents.focus();
		return false;
	}
	AIM.submit(obj, {'onStart' : startCallback, 'onComplete' : commentCallback});
	return true;
}


function commentCallback(response) 
{
	var vals = response.split("|");
	if (vals[0]=="") return;
	viewContents(vals[1], vals[0]);
	var nBoxIndex = getBoxIndexbyName(vals[0]);
	reloadRSSData(nBoxIndex);
}

/*
function requestTrans()
{
	$("trans_button").disabled = true;
	var sendurl = "/translate/translate.asp?langpair="+$("source_lang")[$("source_lang").selectedIndex].value+"|"+$("dest_lang")[$("dest_lang").selectedIndex].value+"&ori_text="+escape($("translate_text").value);

	new Ajax.Updater({ success: 'translate_text' }, sendurl, {method: 'get' });
	$("trans_button").disabled = false;
}
*/

function relaodSize(pseq)
{
	var photoObj = eval("$('photo_"+pseq+"')");
	var divObj1 = eval("$(\'subjectBarPhoto_"+pseq+"')");
	var divObj2 = eval("$(\'divStylePhoto_"+pseq+"')");

	var cliwidth = document.documentElement.clientWidth;
//	alert(cliwidth);
//	alert(photoObj.width);

	if (photoObj.width > parseInt(cliwidth*9/10))
	{
		photoObj.width = parseInt(cliwidth*9/10);
		divObj1.style.width = parseInt(cliwidth*92/100)+"px";
		divObj2.style.width = parseInt(cliwidth*92/100)+"px";
		var objpopLayer = $("popLayer");
		objpopLayer.style.top = "50px";
		objpopLayer.style.left = "50px";
	}
}

function startUpload() {
	progressDiv = "progDiv1";
	progressID = progBgID;
	callProgress();
	return true;
}


function startPhotoUp() {
	progressDiv = "progDiv2";
	progressID = progPhotoID;
	callProgress();
	return true;
}

function callProgress()
{
	var vgurl = "/blog/uploadprogress.asp?ProgID="+progressID;
	new Ajax.Request(vgurl, 
		{ method: 'get', onSuccess: resultProgress }
	);
}

function resultProgress(oriRequest)
{
	var pgContent = oriRequest.responseText.strip();
	if(pgContent.length == 0) return;
	var vals = pgContent.split("|");
	var progObj = $(progressDiv);
	if (progObj)
	{
		progObj.innerHTML = vals[1];
		if (vals[0] == "F" ) return;
		setTimeout("callProgress()", 100);
	}
}

