if(!window.rememberPositionedInCookie)var rememberPositionedInCookie = true;
if(!window.rememberPosition_cookieName)var rememberPosition_cookieName = 'jtkm6';
var dragObjArray = new Array();
var dragObjCloneArray = new Array();
var numericIdToBeDragged = false;
var dragDropTimer = -1;
var mouse_x;
var mouse_y;
var el_x;
var el_y;
var currentZIndex = 10000;
var dragableElementMoved = new Array();
var dragableContent_cookieString;
var dragableContent_cookieItems = new Array();
// Funcion para guardar los cookies.
function Get_Cookie(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 Set_Cookie(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 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 initDragDropElement(e)
{
if(document.all)e = event;
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' || source.tagName.toLowerCase()=='textarea')return;
numericIdToBeDragged = this.className.replace(/[^0-9]/g,'');
dragDropTimer=0;
mouse_x = e.clientX;
mouse_y = e.clientY;
currentZIndex = currentZIndex + 1;
dragObjCloneArray[numericIdToBeDragged].style.zIndex = currentZIndex;
if(!dragableElementMoved[numericIdToBeDragged]){
dragObjCloneArray[numericIdToBeDragged].style.top = getTopPos(dragObjArray[numericIdToBeDragged]) + 'px';
dragObjCloneArray[numericIdToBeDragged].style.left = getLeftPos(dragObjArray[numericIdToBeDragged]) + 'px';
}
el_x = dragObjCloneArray[numericIdToBeDragged].style.left.replace('px','')/1;
el_y = dragObjCloneArray[numericIdToBeDragged].style.top.replace('px','')/1;
timerDragDropElement();
return false;
}
function timerDragDropElement()
{
if(dragDropTimer>=0 && dragDropTimer<10){
dragDropTimer = dragDropTimer + 1;
setTimeout('timerDragDropElement()',5);
return;
}
if(dragDropTimer>=10){
if(dragObjCloneArray[numericIdToBeDragged].style.display=='none'){
dragObjArray[numericIdToBeDragged].style.visibility = 'hidden';
dragObjCloneArray[numericIdToBeDragged].style.display = 'block';
dragObjCloneArray[numericIdToBeDragged].style.visibility = 'visible';
dragObjCloneArray[numericIdToBeDragged].style.top = getTopPos(dragObjArray[numericIdToBeDragged]) + 'px';
dragObjCloneArray[numericIdToBeDragged].style.left = getLeftPos(dragObjArray[numericIdToBeDragged]) + 'px';
dragableElementMoved[numericIdToBeDragged] = true;
}
}
}
function cancelEvent()
{
return false;
}
function cancelSelectionEvent()
{
if(dragDropTimer>=0)return false;
return true;
}
function moveDragableElement(e)
{
if(document.all)e = event;
if(dragDropTimer<10)return;
dragObjCloneArray[numericIdToBeDragged].style.left = (e.clientX - mouse_x + el_x) + 'px';
dragObjCloneArray[numericIdToBeDragged].style.top = (e.clientY - mouse_y + el_y) + 'px';
}
function stop_dragDropElement()
{
dragDropTimer = -1;
if(rememberPositionedInCookie && dragObjCloneArray[numericIdToBeDragged]){
dragableContent_cookieItems['dragableElementClone' + numericIdToBeDragged] = [dragObjCloneArray[numericIdToBeDragged].style.left,dragObjCloneArray[numericIdToBeDragged].style.top,dragObjCloneArray[numericIdToBeDragged].style.zIndex];
}
if(rememberPositionedInCookie)createCookieString();
numericIdToBeDragged = false;
}
function createCookieString()
{
var stringToSave = '';
for(var prop in dragableContent_cookieItems){
if(stringToSave)stringToSave = stringToSave + '###';
stringToSave = stringToSave + prop + ',' + dragableContent_cookieItems[prop][0] + ',' + dragableContent_cookieItems[prop][1] + ',' + dragableContent_cookieItems[prop][2];
}
Set_Cookie(rememberPosition_cookieName,stringToSave,60000000);
}
function initdragableElements()
{
var dragableContent_cookieString = false;
if(rememberPositionedInCookie){
dragableContent_cookieString = Get_Cookie(rememberPosition_cookieName);
}
var tmpElements = new Array();
var allObjects = document.getElementsByTagName('*');
for(var no=0;no<allObjects.length;no++){
if(allObjects[no].className=='dragableElement'){
allObjects[no].style.cursor = 'move';
tmpElements[tmpElements.length] = allObjects[no];
}
}
for(var no=0;no<tmpElements.length;no++){
var el = tmpElements[no].cloneNode(true);
tmpElements[no].className='dragableElement' + no;
el.onmousedown = initDragDropElement;
el.className='dragableElementClone' + no;
el.style.position='absolute';
el.style.display='none';
el.style.visibility='hidden';
el.style.top = getTopPos(tmpElements[no]) + 'px';
el.style.left = getLeftPos(tmpElements[no]) + 'px';
tmpElements[no].parentNode.insertBefore(el,tmpElements[no]);
tmpElements[no].onmousedown = initDragDropElement;
dragObjArray[no] = tmpElements[no];
dragObjCloneArray[no] = el;
}
document.body.onmousemove = moveDragableElement;
document.body.onmouseup = stop_dragDropElement;
document.body.onselectstart = cancelSelectionEvent;
document.body.ondragstart = cancelEvent;
// Posicionamiento de cookies.
if(dragableContent_cookieString){
var items = dragableContent_cookieString.split('###');
for(var no=0;no<items.length;no++){
var tokens = items[no].split(',');
dragableContent_cookieItems[tokens[0]] = [tokens[1] ,tokens[2],tokens[3]];
}
positionItemsFromCookie();
}
}
function positionItemsFromCookie()
{
for(var prop in dragableContent_cookieItems){
for(var no=0;no<dragObjCloneArray.length;no++){
if(dragObjCloneArray[no].className==prop){
dragableElementMoved[no] = true;
dragObjCloneArray[no].style.display='block';
dragObjArray[no].style.visibility = 'hidden';
dragObjCloneArray[no].style.visibility = 'visible';
dragObjCloneArray[no].style.left = dragableContent_cookieItems[prop][0];
dragObjCloneArray[no].style.top = dragableContent_cookieItems[prop][1];
dragObjCloneArray[no].style.zIndex = dragableContent_cookieItems[prop][2];
currentZIndex = Math.max(currentZIndex,dragableContent_cookieItems[prop][2]/1 + 1);
}
}
}
}