var dragLock=false;
var x,y;
var origRegion, origOrder;
var orig;
var origHtml;
var offsetX = 410;
var offsetY = 220;
var lastDragSection;
var bucketToShow = 5;
var bucketStart = 0;
var bucketTotal = 0;
//var isMouseDown = 0;
var isResizing = 0;
var isDebug = false;
var maxPageHeight=0;
var MouseBuffer=null;
var regionArr = new Array(5);
var initLock=true;
var markerTopDiv;
var markerBottomDiv;
var lastTempMarker;

function ___MAIN_METHODS(){}

function Drag(mEvent)
{
	//HidePic();
	HidePic();//To hide the onmouseover message from the drag handles
	if(initLock)
		return false;
		
	//isMouseDown = 1;
	var mySrc;
	var myDragId;
	

	mEvent= Event(mEvent);
	
	if(mEvent){
		if(mEvent.button)
		{
			if(mEvent.button == 2)
			{
				if(!isDebug)
					isDebug="Drag";
				else if (isDebug=="Drag")
					isDebug="Drop";
				else
					isDebug=false;

				//alert("debug mode: "+isDebug);
			}
			
			if((mEvent.button != 0)&&(mEvent.button != 1))
				return;
		}
		
		mySrc = (mEvent.srcElement) ? mEvent.srcElement: mySrc = mEvent.target;
		if((mySrc.attributes)&&(mySrc.attributes.dragid))
			myDragId = mySrc.attributes.dragid.value;
	}	
	//if(isDebug=="Drag")
		//debugger;


	if (myDragId)
	{
		StopAllPlaying();
		hideSMS();
		
		//debugger;
		//lock drag
		dragLock=true;
		
		// lock process for pod, mydragId should be same as podId
		// isProcessing[myDragId] = 1; 
		
		//get divs
		orig = Get(myDragId);
		
		//set drag content
		Faker().innerHTML = orig.innerHTML;
		origHtml =  orig.innerHTML;
		
		//Make faker visible
		Faker().style.visibility = "visible";
		
		//set original attributes
		origRegion = orig.attributes.region.value;
		origOrder = orig.attributes.order.value;
		
		//set maxheight for scrolling
		maxPageHeight = document.body.scrollHeight + 50;
		
		//Fade the orig and the faker
		Fade(orig,30);
		Fade(Faker(),70);
		
		//set global start position
		x=mEvent.clientX;
		y=mEvent.clientY;
		
		//set movement and call once to initialize the placement of faker
		document.onmousemove=Move;
		Move(mEvent);
	}
}


function Move(mEvent)
{
	//XBrowser event handling
	mEvent= Event(mEvent);
	
	//Assertions
	if(mEvent){
		if(mEvent.button)
			if(mEvent.button != 0 && mEvent.button != 1)
				return false;	
	}	
	
	if(!dragLock)
		return false;
	
	if(!orig)
		return false;
	
	if(!mEvent.clientY)
		return false;
		
	//Scrolling			
	HandleScroll(100,mEvent.clientY,document.body.scrollHeight,document.body.clientHeight);

	//Move Faker
	MoveEl(Faker(),mEvent.clientX,mEvent.clientY,parseInt(findPosX(orig)));

	//Find Section
	var newRegion = FindRegion(findPosX(Faker()) + Faker().offsetWidth,findPosY(Faker()));
	var newOrder = FindRegionPosition2(findPosY(Faker()),newRegion);	
	var currentSection;
	
	if(newRegion != -1)
		currentSection = GetSectionDiv(newRegion,newOrder);
	else
		currentSection = 1;

	
	if(currentSection)
	{
		//Set Highlight
		var regionHeight = currentSection.offsetHeight;
		var regionMiddle = findPosY(currentSection) + (regionHeight/2);
		var delImg = Get('deletePod');

		if(newRegion != -1)
		{	
			if(findPosY(Faker()) < regionMiddle){
				markerTopDiv = Get('topMarker_' + currentSection.id);
				if(markerTopDiv)
					markerTopDiv.className = "topMarker";
					
				markerBottomDiv = Get('bottomMarker_' + currentSection.id);
				if(markerBottomDiv)
					markerBottomDiv.className = "hidden";
					
			//	currentSection.style.borderTop = BorderStyleOn();
			//	currentSection.style.borderBottom = BorderStyleOff();	
			}else{
	//			currentSection.style.borderBottom = BorderStyleOn();	
			}
		}
		else
		{
			if(delImg)
			{
				if(IsRemovableEl(orig))
				{
					delImg.title = "Remove this Mobile Pod.";
					delImg.src = "/Themes/_images_shared/im_x_on.gif";
				}
				else
				{
					delImg.title = "Cannot remove this Mobile Pod.";
					delImg.src = "/Themes/_images_shared/im_no_remove.gif";
				}
			}
		}
		
		if(currentSection != lastDragSection || lastTempMarker)
			ResetLastRegion();
		
		if(lastTempMarker)
		{
			lastTempMarker.className = "hidden";
			lastTempMarker = null;
		}
				
		lastDragSection = currentSection;
	}
	else
	{
	//	if(lastDragSection)	
	//		lastDragSection.className = "dragSlave";
	
		if(newOrder != 0 && newRegion != -1) // last pod in column	
		{
			var newSection = GetSectionDiv(newRegion,newOrder-1);
			if(newSection)
			{
			//	newSection.style.borderBottom = BorderStyleOn();
			//	newSection.style.borderTop = BorderStyleOff();
			
				markerTopDiv = Get('topMarker_' + newSection.id);
				if(markerTopDiv)
					markerTopDiv.className = "hidden";
					
				markerBottomDiv = Get('bottomMarker_' + newSection.id);
				if(markerBottomDiv)
					markerBottomDiv.className = "topMarker";
				
				if(newSection != lastDragSection || lastTempMarker)
					ResetLastRegion();
					
				lastDragSection = newSection;
				
				if(lastTempMarker)
				{
					lastTempMarker.className = "hidden";
					lastTempMarker = null;
				}
				
			}			
		}
		else
		{
			// gotta draw a new section for being highlighted..
			var tempMarker = Get('divMarker_'+ newRegion);
			if(tempMarker)
			{
				//tempMarker.style.borderTop = BorderStyleOn();			
				tempMarker.className = "bottomMarker";	
				if(lastTempMarker && lastTempMarker != tempMarker)
				{	
					lastTempMarker.className = "hidden";					
				}
				ResetLastRegion();		
			}
			
			lastTempMarker = tempMarker;
			
						
		}
		
	}

	return false;
}

function Drop(mEvent)
{
	if(!dragLock)
		return;
	
	//if(isDebug=="Drop")
	//	debugger;		
		
	mEvent= Event(mEvent);
	//isMouseDown = 0;
		
	DisplayBucket();
		
	//debugger;
	
	var newRegion = FindRegion(findPosX(Faker()) + Faker().offsetWidth,findPosY(Faker()));
	var newOrder = FindRegionPosition2(findPosY(Faker()),newRegion);
	ResetLastRegion();
	if(lastTempMarker)
	{
		lastTempMarker.className = "hidden";
		lastTempMarker = null;
	}
	
	dragLock=false;

	DestroyDiv(Faker());
			
	if(!orig)
		return;
				
	EndAnim("faker");
	orig.innerHTML=origHtml;
	
	var isFromBucket = false;
	var isToDeletedBucket = false;
	
	if(newRegion == -1)
		isToDeletedBucket = true;
	
	if(origRegion == -1)
		isFromBucket = true;
		
	if(isToDeletedBucket && isFromBucket)
		return;
		
	var origRegionWidth = Get('REGION' + origRegion).attributes.podWidth.value;
	var newRegionWidth = Get('REGION' + newRegion).attributes.podWidth.value;
	
	//If same pos don't do anything
	if((newRegion==origRegion)&&(newOrder==origOrder))
		return;

	//debugger;
	
	//If we can't remove it and they are trying to delete then don't do anything
	if(!IsRemovableEl(orig) && isToDeletedBucket)
		return;
		
	//Find old node	
	var oldNode = TraverseToDepth(regionArr[origRegion],origOrder);

	if(!oldNode)
		return;
	
	var myPodId = oldNode.value.attributes.id.value;
	var myPodCd = oldNode.value.attributes.podcd.value;
	var myPodUserNoCd = oldNode.value.attributes.podusernocd.value;
	var myMappingCd = oldNode.value.attributes.mappingcd.value;
	if(oldNode.ParentNode)
	{
		oldNode.ParentNode.NextNode=oldNode.NextNode;
		oldNode.NextNode=null;
	
		if(oldNode.ParentNode.NextNode)
		{
			oldNode.ParentNode.NextNode.ParentNode=oldNode.ParentNode;
		}
		oldNode.ParentNode=null;
	}
	else
	{
		regionArr[origRegion] = oldNode.NextNode;
		oldNode.NextNode=null;
		
		if(regionArr[origRegion])
		{
			regionArr[origRegion].ParentNode=null;
		}
		oldNode.ParentNode=null;
	}
		
	HidePic();//To hide the onmouseover message from the drag handles
	
	//Need to rerender it? (key,actionId,podid,newWidth,region,order,podcd,mappingcd,podusernocd)
	if(newRegionWidth != origRegionWidth)
	{
		isResizing = 1;
		
		//debugger;
		if(!isToDeletedBucket)
			ReSizePod(myPodId,0,myPodId,newRegionWidth,newRegion,newOrder,myPodCd,myMappingCd,myPodUserNoCd);
		else
			ReSizePod(myPodId,-1,myPodId,newRegionWidth,newRegion,newOrder,myPodCd,myMappingCd,myPodUserNoCd);
	}
	
	//Add to new spot in linklist																
	if(!isToDeletedBucket)
	{
		var newSpot = TraverseToDepth(regionArr[newRegion],newOrder);
		if(!newSpot)
		{
			if(regionArr[newRegion])
				regionArr[newRegion].Tail().AppendNode(oldNode);
			else
				regionArr[newRegion]=oldNode;
		}
		else
		{
			if(newSpot.ParentNode)
				newSpot.PrependNode(oldNode);
			else
			{
				newSpot.ParentNode = oldNode;
				regionArr[newRegion] = newSpot.ParentNode;
				regionArr[newRegion].NextNode=newSpot;
			}
		}
		
		
	}else{//back to deleted
		if(regionArr[newRegion])
			regionArr[newRegion].Tail().AppendContent(orig);
		else
			regionArr[newRegion]=new LinkNode(orig);
			
		bucketTotal += 1;
	}

	ResetRegionOrder(origRegion);
	if(isFromBucket)
	{
		RedrawBucket();
		RedrawRegion(newRegion);
		ResetRegionOrder(newRegion);
	}
	else if(isToDeletedBucket)
	{
		RedrawRegion(origRegion);
		RedrawBucket();
	}
	else
	{
		RedrawRegion(newRegion);
		RedrawRegion(origRegion);
		ResetRegionOrder(newRegion);
		//Glide("faker",findPosX(oldNode.value),findPosY(oldNode.value));
	}
	
	oldNode=null;
}

function Faker()
{
	return Get("faker");
}

function BorderStyleOn()
{
	return Get("BorderStyleOn").value;
}
function BorderStyleOff()
{
	return Get("BorderStyleOff").value;
}

function ___SUPPORT_METHODS(){}

function IsRemovableEl(el)
{
	if(!el.attributes.isremovable) 
		return true;
		
	if(el.attributes.isremovable.value == "false")
		return false;
	else
		return true;
}

function HandleScroll(tol,y,dh,db)
{
	//UP
	if(y < tol && document.body.scrollTop != 0)
	{
		var scrollAmt = tol - y;

		if(document.body.scrollTop < scrollAmt)
			scrollAmt = document.body.scrollTop - 1;

		scroll(0,document.body.scrollTop - scrollAmt);
	}		
	
	//DOWN
	if(y > db - tol && (document.body.scrollTop + y) < maxPageHeight)
	{
		var scrollAmt = y - (db - tol);
		
		if((dh-db) < scrollAmt)
			scrollAmt = (dh-db);
			
		scroll(0,document.body.scrollTop + scrollAmt);
	}
}


function ___REGION_METHODS(){}
function BuildRegionArray()
{
	
	//debugger;
	//var d = new Date();
	for(r=-1;r<3;r++)
	{
		var i = 0;
		var currentDiv = Get(pNm(r,i));
	
		while(currentDiv)
		{
			if(regionArr[r])
			{
				regionArr[r].Tail().AppendContent(currentDiv);
			}
			else
			{
				regionArr[r] = new LinkNode(currentDiv);
			}
			
			i++;
			currentDiv = Get(pNm(r,i));
			
		}
	}
	//alert(new Date()-d);
	initLock=false;
	
}

function ResetRegionOrder(region){
	var node = regionArr[region];
	var i = 0;
	while(node){
		node.value.attributes.order.value = i;
		i++;
		node = node.NextNode;
	}
}
function ResetLastRegion(){
	if(lastDragSection){
		//lastDragSection.className = "dragSlave";
		
		markerTopDiv = Get('topMarker_' + lastDragSection.id);
		if(markerTopDiv)
			markerTopDiv.className = "hidden";
			
		markerBottomDiv = Get('bottomMarker_' + lastDragSection.id);
		if(markerBottomDiv)
			markerBottomDiv.className = "hidden";
		
		// bse 8/30/05
	/*	if(lastDragSection.style)
		{
			lastDragSection.style.borderTop = BorderStyleOff();
			lastDragSection.style.borderBottom = BorderStyleOff();
		}
	*/		
		//lastDragSection.style.borderBottom = "#19338F 0px solid";
		
		var delImg = Get('deletePod');
		if(delImg)
		delImg.src = "/Themes/_images_shared/im_x.gif";
	}
	
}


function ___POSITION_METHODS(){}

function FindRegion(x,y)
{
	var regiondel = Get('deletePod');
	var region0 = Get("REGION0");
	var region1 = Get("REGION1");
	var region2 = Get("REGION2");
	var regionStart;
	var regionEnd;
	
	if(regiondel){
		regionStart = findPosX(regiondel);
		regionEnd = regionStart + regiondel.offsetWidth;
		var regionYStart = findPosY(regiondel);
		var regionYEnd = regionYStart + regiondel.offsetHeight;
		if(( x>regionStart && x<regionEnd) && (y>regionYStart && y<regionYEnd))
			return -1;
	}
	
	if(region0){
		regionStart = findPosX(region0);
		regionEnd = regionStart + region0.offsetWidth;
		if(x < regionEnd)
			return 0;
	}
	if(region1){
		regionStart = findPosX(region1);
		regionEnd = regionStart + region1.offsetWidth;
		if(region2){
			if(x > findPosX(region1) && x < regionEnd)
				return 1;
		}else{
			if(x > findPosX(region1))
				return 1
		}		
	}
	if(region2){
		regionStart = findPosX(region2);
		regionEnd = regionStart + region2.offsetWidth;
		if(x > findPosX(region2))
			return 2;		
	}

	return 0;
}

function FindOrder(y,r)
{
	var node = regionArr[r];
	var i=0;
	
	while(node)
	{
		var bottom =node.value.offsetTop + node.value.offsetHeight/2; 
		
		if(y<bottom)
			return i;
			
		node=node.NextNode;
		i++;
	}
	
	return i;
}

function FindRegionPosition2(y,r)
{
	//find bottom of things in that column
	var node = regionArr[r];
	var i=0;
	
	while(node)
	{
		var bottom =findPosY(node.value) + (node.value.offsetHeight/2); 
		
		if(y<bottom)
			return i;
			
		node=node.NextNode;
		i++;
	}
	
	return i;
}

function GetSectionDiv(region,order){
	var myRegion = Get('REGION' + region);
	var divCnt = 0;
	if(myRegion){
		for(var i = 0; i < myRegion.childNodes.length; i++){
			if(myRegion.childNodes[i]){
				if(myRegion.childNodes[i].tagName){
					if(myRegion.childNodes[i].id.indexOf('pod')==0){
						if(divCnt==order)
							return myRegion.childNodes[i];
					//	else
					//		test = "cool";
					}
					divCnt += 1;
				}
			}
		}
	}
}

function ___RENDER_METHODS(){}

function DisplayBucket()
{
	if(initLock)
		return;
		
		
	var bucket = Get("Customizer");
	if(bucket && bucket.style.display == "none")
	{
		RedrawBucket();
		bucket.style.display = "inline";
	}
	HideFeedbackBar();
}

function HideFeedbackBar()
{
	var feedback = Get("FeedbackBar");
	if(feedback && feedback.style.display == "inline")
	{
		feedback.style.display = "none";
	}
}

function ShowFeedbackBar()
{
	var feedback = Get("FeedbackBar");
	if(feedback && feedback.style.display == "none")
	{
		feedback.style.display = "inline";
	}
}

function ShowHideBucketCells(node){

	while((bucketStart + bucketToShow) > bucketTotal && bucketStart > 0){
		bucketStart -=1;
	}
	
	if((bucketStart + bucketToShow) <= bucketTotal){
	
		while(node){
			var myOrder = node.value.attributes.order.value;
			var mySelf = Get(node.value.attributes.id.value);
			var myParent = mySelf.parentElement;
			if(myOrder < bucketStart || myOrder >= (bucketStart + bucketToShow)){
				myParent.style.display = "none";
			}
			else if(myOrder >= bucketStart && myOrder < (bucketToShow + bucketStart) ){
				myParent.style.display = "block";
			}
			node = node.NextNode;
		}	
	}
}

function ShowMoreBucket(goFwd){
	var node = regionArr[-1];
	if(goFwd && (bucketStart + 1 + bucketToShow) <= bucketTotal)
		bucketStart += 1;
	else if(bucketStart > 0 && ((bucketStart - 1 + bucketToShow) <= bucketTotal) && !goFwd)
		bucketStart -= 1;

	ShowHideBucketCells(node);
}

function RedrawBucket(){

	var newTable = document.createElement("table");
	newTable.setAttribute("width","551");
	newTable.setAttribute("border","0");
	newTable.setAttribute("cellpadding","0");
	newTable.setAttribute("cellspacing","1");
	newTable.setAttribute("height","60");	
	
	var newTr = document.createElement("tr");
	
	var node = regionArr[-1];
	var bucket = Get('REGION-1');
	var tmp = "";
	var i = 0;
	
	while(node){
		node.value.attributes.region.value = "-1";
		node.value.attributes.order.value = i;
		var newTd = document.createElement("td");
		newTd.setAttribute("width","20%");
		newTd.setAttribute("class","bucket_bg");
		newTd.setAttribute("align","center");
		newTd.setAttribute("valign","middle");
		newTd.setAttribute("height","60");
		newTd.appendChild(node.value);
		newTr.appendChild(newTd);
		
		i++;
		node = node.NextNode;
	}
	bucketTotal = i;
	for(x = i; x < bucketToShow; x++){
		var newTd = document.createElement("td");
		newTd.setAttribute("width","20%");
		newTd.setAttribute("class","bucket_bg");
		newTd.setAttribute("align","center");
		newTd.setAttribute("valign","middle");
		newTd.setAttribute("height","60");
		newTr.appendChild(newTd);
	}
	
	newTable.appendChild(newTr);
	bucket.innerHTML = newTable.outerHTML;
	ShowHideBucketCells(regionArr[-1]);
}
function RedrawRegion(regionTd)
{
	var regionCell = Get('REGION'+regionTd);
	var newWidth  = regionCell.attributes.podWidth.value;

	var node = regionArr[regionTd];
	var i=0;
	
	var j=0;
	var len = regionCell.children.length;
	for(j=0;j<len;j++)
	{
		regionCell.removeChild(regionCell.childNodes[0]);
	}
	//regionCell.removeChild(true);
	
	while(node)
	{
		node.value.attributes.region.value = regionTd;
		node.value.attributes.order.value = i;
		i++;
		
		regionCell.appendChild(node.value);
		ClearFilter(Get(node.Id));
		node=node.NextNode;
		if(i>10)
			node=null;
	}
}

function ___PHOTO_METHODS(){}

function ShowProfilePic(userid,url)
{
	if(dragLock)
		return true;
	
	InitRollOver(userid+'<BR><img src = "'+url+'" >');
}

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function MoveProfilePic(e)
{
	var ie=document.all
	var ns6=document.getElementById && !document.all
	var offsetxpoint=-20 //Customize x offset of tooltip
	var offsetypoint=20 //Customize y offset of tooltip
	
	e = Event(e);
	
//	var x = e.clientX + document.body.scrollLeft+20;
//	var y = e.clientY + document.body.scrollTop;
	
	if(Pic()){
	/*	if (x>document.body.scrollWidth-Pic().offsetWidth)
		{
			x=x-Pic().offsetWidth-40;
		}		
		
		Pic().style.top = y + 'px';
		Pic().style.left = x+'px';
	*/
	
		var curX=(ns6)?e.pageX : e.clientX+ietruebody().scrollLeft;
		var curY=(ns6)?e.pageY : e.clientY+ietruebody().scrollTop;
	
		//Find out how close the mouse is to the corner of the window
		var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
		var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

		var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

		//if the horizontal distance isn't enough to accomodate the width of the context menu
		if (rightedge<Pic().offsetWidth)
		{
			//move the horizontal position of the menu to the left by it's width
			Pic().style.left=ie? ietruebody().scrollLeft+event.clientX-Pic().offsetWidth+"px" : window.pageXOffset+e.clientX-Pic().offsetWidth+"px"
		}
		else if (curX<leftedge)
		{
			Pic().style.left="5px"
		}
		else
		{
			//position the horizontal position of the menu where the mouse is positioned
			Pic().style.left=curX+offsetxpoint+"px";
		}

		//same concept with the vertical position
		if (bottomedge<Pic().offsetHeight)
		{
			Pic().style.top=ie? ietruebody().scrollTop+event.clientY-Pic().offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-Pic().offsetHeight-offsetypoint+"px";
		}
		else
		{
			Pic().style.top=curY+offsetypoint+"px"
		}		
	}
	
	if(Pic() && Frame())
	{
		if(Pic().style.display == "inline" || Pic().style.display=="block" || Pic().style.visibility == "visible")
		{
			Frame().style.top = Pic().style.top;//document.body.clientHeight/2 - (myDiv.offsetHeight/2);
			Frame().style.left = Pic().style.left;//document.body.clientWidth/2 - (myDiv.offsetWidth/2);
			Frame().style.width = Pic().offsetWidth+"px";
			Frame().style.height = Pic().offsetHeight+"px";
			Frame().style.display = "block";
		}
		else
		{
			Frame().style.display = "none";
		}
	}
}



function HideProfilePic()
{
	if(dragLock)
		return true;	
	
	if(!Pic())
		return;

	if(Frame())
		Frame().style.display = "none";
	DestroyDiv(Pic());
	
	
	document.onmousemove=MouseBuffer;
	MouseBuffer=null;
}
function Pic()
{
	return Get('divPic');
}
function Frame()
{
	return Get('divPicFrame');
}
function ShowBucketRollover(PodTypeName, PodLongName, e)
{
	if(dragLock)
		return true;
	
	if(!Pic())
		return false;
				
	InitRollOver('<table height=\'22\' border=\'0\' cellpadding=\'0\' cellspacing=\'0\' class=\'bx_border\'><tr valign=\'middle\'><td height=\'20\' align=\'left\' class=\'p_text_color\'>&nbsp;' + PodTypeName + ': ' + PodLongName + '&nbsp;</td></tr></table>');
}
function HideBucketRollover()
{	
	HideProfilePic();
}
function ShowPic(url,userid,greetingtxt)
{
	if(dragLock)
		return true;
	
    if(!url)
		url = "";

	if(!userid)
		userid = "";

	if(!greetingtxt)
		greetingtxt = "";

	InitRollOver('<div style=\'BORDER-RIGHT: black thin solid;BORDER-TOP: black thin solid;BORDER-LEFT: black thin solid;BORDER-BOTTOM: black thin solid; \'><span class=\'style10w\'>' + userid+'</span><BR><img src = \''+url+'\' height=\'300\'><table width=\'300\' class=\'divMagnifytd\' border=0><tr><td>'+greetingtxt+'</td></tr></table></div>');
}

function MovePic(e)
{
	MoveProfilePic(e);
}

function HidePic()
{				
	HideProfilePic();
}

function InitRollOver(html)
{
	Pic().style.visibility = 'visible';		
	Pic().innerHTML = html;	
	
	//if(Frame())
		//Frame().style.display = "inline"
	
	MouseBuffer=document.onmousemove;
	document.onmousemove=MoveProfilePic;
}
function ShowSMSRollover(SMSText, e)
{
	if(dragLock)
		return true;
	
	if(!Pic())
		return false;
				
	InitRollOver('<table height=\'22\' border=\'0\' cellpadding=\'0\' cellspacing=\'0\' class=\'bx_border\'><tr valign=\'middle\'><td height=\'20\' align=\'left\' class=\'p_text_color\'><nobr>&nbsp;' + SMSText + '&nbsp;</nobr></td></tr></table>');
}
/*
function AddNewPodsToHtmlDiv(content)
{
	var divNewPods = Get('divNewPods');
	if(divNewPods)
	{
		var innerHtml = divNewPods.innerHTML;
		innerHtml = innerHtml + content;
		divNewPods.innerHTML = innerHtml;
	}
}
*/
function AppendToBucketHead(BucketId)
{
	var PodBucket = Get(BucketId);
	if(PodBucket)
	{
		var newnode = new LinkNode(PodBucket);	
		if(regionArr['-1'])
		{
			newnode.NextNode = regionArr[-1];
			regionArr['-1'] = newnode;
			if(newnode.NextNode)
				newnode.NextNode.ParentNode = newnode;
		}
		else
		{
			regionArr['-1']= newnode;		
			if(newnode.NextNode)
				newnode.NextNode.ParentNode = newnode;
			//newnode.NextNode.ParentNode = null;
		}
		bucketTotal += 1;
	}
	ResetRegionOrder(-1);//Don't know if this is needed really
	RedrawBucket();	
}

function RemoveNodeFromOldRegion(oldRegion,oldOrder)
{
	var removedNode = TraverseToDepth(regionArr[oldRegion],oldOrder);

	if(!removedNode)
		return;
	
	var myPodId = removedNode.value.attributes.id.value;
	var myPodCd = removedNode.value.attributes.podcd.value;
	var myPodUserNoCd = removedNode.value.attributes.podusernocd.value;
	var myMappingCd = removedNode.value.attributes.mappingcd.value;
	if(removedNode.ParentNode)
	{
		removedNode.ParentNode.NextNode=removedNode.NextNode;
		removedNode.NextNode=null;
	
		if(removedNode.ParentNode.NextNode)
		{
			removedNode.ParentNode.NextNode.ParentNode=removedNode.ParentNode;
		}
		removedNode.ParentNode=null;
	}
	else
	{
		regionArr[oldRegion] = removedNode.NextNode;
		removedNode.NextNode=null;
		
		if(regionArr[oldRegion])
		{
			regionArr[oldRegion].ParentNode=null;
		}
		removedNode.ParentNode=null;
	}
}
