function scpShowWrapper(e, clientId, delay) {
    
    var div = document.getElementById(clientId);
    var srcElementId = e.srcElement ? e.srcElement.id : e.target.id;

    if(div.lastSrcElementId && div.referenceCount > 0) {
		
		if(div.lastSrcElementId == srcElementId) {
			return;
		}		
	}    
	
	!div.referenceCount ? div.referenceCount = 1 : div.referenceCount++;
    div.lastSrcElementId = srcElementId;
   
	if(div.showEvent) {
		clearTimeout(div.showEvent);
	}
	
	scpMove(e, clientId);
	div.showEvent = setTimeout("scpShow('" + clientId + "')", delay);
}

function scpShow(clientId) {

	var div = document.getElementById(clientId);
	var iFrame = document.getElementById(clientId + "IFrame");
    
	div.style.visibility = "visible";
    
	if(iFrame) {
		iFrame.style.display = "block";
		iFrame.style.visibility = "visible";
	}   
}

function scpHideWrapper(e, clientId, delay) {

	var div = document.getElementById(clientId);
	div.referenceCount--;
	div.lastSrcElementId = null;

	if(div.showEvent) {
		clearTimeout(div.showEvent);
	}
	if(div.hideEvent) {
		clearTimeout(div.hideEvent);
	}
	div.hideEvent = setTimeout("scpHide('" + clientId + "')", delay);
}

function scpHide(clientId) {

	var div = document.getElementById(clientId);
	if(div.referenceCount == 0) {
		var iFrame = document.getElementById(clientId + "IFrame");

		div.hideEvent = null;
		div.style.visibility = "hidden";
	    
		if(iFrame) {
			iFrame.style.display = "none";
			iFrame.style.visibility = "hidden";
		}
	}
}

function scpDivMouseOver(e, clientId) {
	var div = document.getElementById(clientId);
	div.referenceCount++;
}


function scpDivMouseOut(e, clientId, delay) {
	scpHideWrapper(e, clientId, delay);
}

function scpMove(e, clientId) {

    var div = document.getElementById(clientId);
    var iFrame = document.getElementById(clientId + "IFrame");
          
	novaPositionObject(div, e.clientX, e.clientY, 15, 15);
    
    if(iFrame) {
        iFrame.style.top = div.style.top;
        iFrame.style.left = div.style.left;
        iFrame.style.width = div.clientWidth;
        iFrame.style.height = div.clientHeight;
    }
}
