/* Original drag by Mike Hall (http://www.brainjar.com/dhtml/drag/).
*/
var isMSIE = document.attachEvent != null;
var isGecko = !document.attachEvent && document.addEventListener;
var DraggingItem = new Object();
function Startmove (event, _this, _afteraction)
{
DraggingItem.This = _this;
DraggingItem.AfterAction = _afteraction;
var nextX = 800;
var nextY = 10;
DraggingItem.This.style.left = nextX + "px";
DraggingItem.This.style.top = nextY + "px";
CountItems();
}
function StartDrag (event, _this, _afteraction)
{
DraggingItem.This = _this;
DraggingItem.AfterAction = _afteraction;
var position = new Object();
if (isMSIE)
{
position.x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
position.y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
}
if (isGecko)
{
position.x = event.clientX + window.scrollX;
position.y = event.clientY + window.scrollY;
}
DraggingItem.cursorStartX = position.x;
DraggingItem.cursorStartY = position.y;
DraggingItem.StartLeft = parseInt (DraggingItem.This.style.left);
DraggingItem.StartTop = parseInt (DraggingItem.This.style.top);
if (isNaN (DraggingItem.StartLeft)) DraggingItem.StartLeft = 0;
if (isNaN (DraggingItem.StartTop)) DraggingItem.StartTop = 0;
if (isMSIE)
{
document.attachEvent ("onmousemove", ProceedDrag);
document.attachEvent ("onmouseup", StopDrag);
window.event.cancelBubble = true;
window.event.returnValue = false;
}
if (isGecko)
{
document.addEventListener ("mousemove", ProceedDrag, true);
document.addEventListener ("mouseup", StopDrag, true);
event.preventDefault();
}
}
function ProceedDrag (event)
{
var position = new Object();
if (isMSIE) {
position.x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
position.y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
}
if (isGecko)
{
position.x = event.clientX + window.scrollX;
position.y = event.clientY + window.scrollY;
} var nextX = DraggingItem.StartLeft + position.x - DraggingItem.cursorStartX;
if (nextX < 90) nextX = 90;
if (nextX > 1100) nextX = 1100; DraggingItem.This.style.left = nextX + "px";
var nextY = DraggingItem.StartTop + position.y - DraggingItem.cursorStartY;
if (nextY > 750) nextY = 750;
if (nextY < 1) nextY = 1;
DraggingItem.This.style.top = nextY + "px";
if (isMSIE)
{
window.event.cancelBubble = true;
window.event.returnValue = false;
}
if (isGecko) event.preventDefault();
}
function StopDrag (event)
{ if (isMSIE)
{
document.detachEvent ("onmousemove", ProceedDrag);
document.detachEvent ("onmouseup", StopDrag);
}
if (isGecko)
{
document.removeEventListener ("mousemove", ProceedDrag, true);
document.removeEventListener ("mouseup", StopDrag, true);
}
if (DraggingItem.AfterAction) DraggingItem.AfterAction (DraggingItem.This);
SaveDesktop();
}
function SaveDesktop()
{
var draggables = document.getElementsByTagName ('div');
var desktopLayout = '';
for (var c = 0; c != draggables.length; c++)
{
var current = draggables[c];
if (current.className == 'draggable')
{
desktopLayout += current.id + '(' + parseInt (current.style.left) + ',' + parseInt (current.style.top) + ');';
}
}
var expires = new Date();
expires = new Date (expires.getYear() + 1901, expires.getMonth(), 1);
setCookie ('layoutN', desktopLayout, expires, '/');
CountItems();
}
function CountItems()
{
var draggables = document.getElementsByTagName ('div');
var desktopLayout = '';
var count = 0;
for (var c = 0; c != draggables.length; c++)
{
var current = draggables[c];
if (current.className == 'draggable')
{
var tts = 's' + current.id;
var left = parseInt (current.style.left);
var top = parseInt (current.style.top);
if (left > 500 && left < 1000 && top > -20 && top < 100) {
count++; desktopLayout += current.id
this[current.id].style.display='none';
var expires = new Date();
expires = new Date (expires.getYear() + 1901, expires.getMonth(), 1);
setCookie ('basket', desktopLayout, expires, '/');
}
}
}
var ItemsCounter = document.getElementById ('ItemsCounter');
var ItemsCounters = document.getElementById ('ItemsCounters'); if (ItemsCounter)
{
var flexia = '';
switch (count)
{
case 1: break;
case 2: case 3: case 4: flexia = 'а'; break;
default:
flexia = 'ов'; break; }
ItemsCounter.innerHTML = count ? count + ' предмет' + flexia : ' ничего нет';
ItemsCounters.innerHTML = count ? '
' : '
'; }
}
function PutBack (item)
{
item.style.zIndex = 2;;
}
function setCookie (name, value, expire, path)
{
document.cookie = name + '=' + escape (value)
+ ((expire == null)? '' : ('; expires=' + expire.toGMTString()))
+ ((path == null)? '' : ('; path=' + path));
}