/*
$Id: tooltips.js,v 1.8.4.2 2005/06/28 13:07:30 kleo Exp $
Tooltip display 
*/

// {{{ Globals
// BEGIN NICE STABLE SCRIPT TOOLTIPS
var dom		= ( document.getElementById ) ? true : false;
var ns5		= ( ( navigator.userAgent.indexOf( "Gecko" ) > -1 ) && dom ) ? true: false;
var ie5		= ( ( navigator.userAgent.indexOf( "MSIE" )  > -1 ) && dom ) ? true : false;
var ns4		= ( document.layers && !dom ) ? true : false;
var ie4		= ( document.all && !dom ) ? true : false;
var nodyn	= ( !ns5 && !ns4 && !ie4 && !ie5 ) ? true : false;

// resize fix for ns4
var origWidth, origHeight;

if ( ns4 ) {
	origWidth	= window.innerWidth;
	origHeight	= window.innerHeight;
	window.onresize	= function() {
		if ( window.innerWidth != origWidth || window.innerHeight != origHeight ) {
			history.go(0);
		}
	}
}

// avoid error of passing event object in older browsers
if ( nodyn ) {
	event = "nope";
}

///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip 
// Do you want tip to move when mouse moves over link?
var tipFollowMouse	= true;
// Be sure to set tipWidth wide enough for widest image
var tipWidth		= 250;
var offX		= 20;	// how far from mouse to show tip
var offY		= 12; 
var tipFontFamily	= "Verdana";
var tipFontSize		= "8pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor	= "#000000";
var tipBgColor		= "#f4f3ee";
var tipBorderColor	= "#e9e7db";
var tipBorderWidth	= 1;
var tipBorderStyle	= "ridge";
var tipPadding		= 1;

// tooltip content goes here ( id => text/title )
var ToolTexts		= new Array();
var ToolTitle		= new Array();
// multi-dimensional arrays containing: 
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
//messages[0] = new Array('red_balloon.gif','Here is a red balloon on a white background',"#FFFFFF");

////////////////////  END OF CUSTOMIZATION AREA  ///////////////////

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr		= '<table width="' + tipWidth + '"><tr><td align="center" width="100%">';
var midStr		= '</td></tr><tr><td valign="top" align="center">';
var endStr		= '</td></tr></table>';

var spanTitleStart	= '<span style="font-weight: bold; font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + tipFontColor + ';">';
var spanTitleEnd	= '</span>';
var spanTextStart	= '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + tipFontColor + ';">';
var spanTextEnd		= '</span>';

var t1,t2;			// for setTimeouts
var tipOn	= false;	// check if over tooltip link
var lastTip	= 0;

var mouseX, mouseY;
var tooltip, tipcss, infotip, infotipcss;
var theImgs		= new Array();

// }}}

// {{{ initTip ( void )
////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles for all but ns4. 
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
function initTip() 
{
	if ( nodyn ) {
		return;
	}
	
	tooltip = ( ns4 ) ? document.tipDiv.document : ( ie4 ) ? document.all['tipDiv'] : ( ie5 || ns5 ) ? document.getElementById('tipDiv') : null;
	tipcss  = ( ns4 ) ? document.tipDiv : tooltip.style;
	
	infotip = ( ns4 ) ? document.infoTip.document : ( ie4 ) ? document.all['infoTip'] : ( ie5 || ns5 ) ? document.getElementById('infoTip') : null;
	infotipcss  = ( ns4 ) ? document.tipDiv : infotip.style;
		
	if ( ie4 || ie5 || ns5 ) {
		// ns4 would lose all this on rewrites
		tipcss.width		= tipWidth + "px";
		tipcss.fontFamily	= tipFontFamily;
		tipcss.fontSize		= tipFontSize;
		tipcss.color		= tipFontColor;
		tipcss.backgroundColor	= tipBgColor;
		tipcss.borderColor	= tipBorderColor;
		tipcss.borderWidth	= tipBorderWidth + "px";
		tipcss.padding		= tipPadding + "px";
		tipcss.borderStyle	= tipBorderStyle;
		tipcss.visibility	= 'hidden';
	}
	
	if ( tooltip && tipFollowMouse ) {
		if ( ns4 ) {
			document.captureEvents( Event.MOUSEMOVE );
		}

		document.onmousemove = trackMouse;
	}
}
// }}}

// {{{ doTooltip ( event evt, number num )
/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes 
//			it to tipDiv
/////////////////////////////////////////////////
function doTooltip( evt, num ) {
	
	var messages  = new Array();
	messages[num] = new Array();
	
	// get the title 
	messages[num][0] = ToolTitle[num];
	
	// get the 1st text portion
	if ( ToolTexts[num] && ToolTexts[num][0] ) {
		messages[num][1] = ToolTexts[num][0];
	}
	
	if ( !messages[num][0] || !messages[num][1] ) {
		return false;
	}
	
	if ( lastTip ) {
		hideTip();
	}
	
	if ( !tooltip ) {
		return;
	}
	
	if ( t1 ) {
		clearTimeout( t1 );
	}
	
	if ( t2 ) {
		clearTimeout( t2 );
	}
	
	tipOn = true;
	// set colors if included in messages array
	var curBgColor		= tipBgColor;
	var curFontColor	= tipFontColor;
	
	// title
	var firstVal		= messages[num][0] ? messages[num][0] : '';
	// content
	var secondVal		= messages[num][1] ? messages[num][1] : '';
	
	if ( ns4 ) {
		var tip		= '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor + '" width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>';
		tip		= tip + startStr + spanTitleStart + firstVal + spanTitleEnd + midStr + spanTextStart + secondVal + spanTextEnd + endStr;
		tip		= tip + '</td></tr></table></td></tr></table>';
		tooltip.write( tip );
		tooltip.close();
	} else if ( ie4 || ie5 || ns5 ) {
		var tip			= startStr + spanTitleStart + firstVal + spanTitleEnd + midStr + spanTextStart + secondVal + spanTextEnd + endStr;
		tipcss.backgroundColor	= curBgColor;
		tooltip.innerHTML	= tip;
	}
	
	if ( !tipFollowMouse ) { 
		positionTip( evt );
	} else { 
		t1 = setTimeout( "tipcss.visibility = 'visible';", 100 );
	}
	
	lastTip	= 1;
}
// }}}

// {{{ trackMouse ( event evt )
function trackMouse( evt )
{
	mouseX = ( ns4 || ns5 ) ? evt.pageX : window.event.clientX + document.body.scrollLeft;
	mouseY = ( ns4 || ns5 ) ? evt.pageY : window.event.clientY + document.body.scrollTop;
	
	if ( tipOn ) {
		positionTip( evt );
	}
}
// }}}

// {{{ positionTip ( event evt )
/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position, 
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip( evt ) {
	if ( !tipFollowMouse ) {
		mouseX = ( ns4 || ns5 ) ? evt.pageX : window.event.clientX + document.body.scrollLeft;
		mouseY = ( ns4 || ns5 ) ? evt.pageY : window.event.clientY + document.body.scrollTop;
	}
	// tooltip width and height
	var tpWd = ( ns4 ) ? tooltip.width  : ( ie4 || ie5 ) ? tooltip.clientWidth  : tooltip.offsetWidth;
	var tpHt = ( ns4 ) ? tooltip.height : ( ie4 || ie5 ) ? tooltip.clientHeight : tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = ( ns4 || ns5 ) ? window.innerWidth  - 20 + window.pageXOffset : document.body.clientWidth  + document.body.scrollLeft;
	var winHt = ( ns4 || ns5 ) ? window.innerHeight - 20 + window.pageYOffset : document.body.clientHeight + document.body.scrollTop;
	
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ( ( mouseX + offX + tpWd ) > winWd ) { 
		tipcss.left = ( ns4 ) ? mouseX - ( tpWd + offX ) : mouseX - ( tpWd + offX ) + "px";
	} else {
		tipcss.left = ( ns4 ) ? mouseX + offX : mouseX + offX + "px";
	}
	
	if ( ( mouseY + offY + tpHt ) > winHt ) { 
		tipcss.top = ( ns4 ) ? winHt - ( tpHt + offY ) : winHt - ( tpHt + offY ) + "px";
	} else {
		tipcss.top = ( ns4 ) ? mouseY + offY : mouseY + offY + "px";
	}
	
	if ( !tipFollowMouse ) {
		t1 = setTimeout( "tipcss.visibility='visible'", 100 );
	}
}
// }}}

// {{{ hideTip ( void )
function hideTip() 
{
	if ( !tooltip ) {
		return;
	}
	
	t2	= setTimeout( "tipcss.visibility = 'hidden';", 100 );
	tipOn	= false;
	lastTip	= 0;
}
// }}} 

// {{{ showHandleInfo
function showHandleInfo ( evt, hIndex ) {
	if ( hIndex != '' ) {
		var hValue  = document.forms['frmHandles'].elements[hIndex].value;
		var hValues = hValue.split('||');
		var hName   = hValues[0];
		var hMail   = hValues[1];
		
		var content =
			'<strong>Handle:&nbsp;<font color="red">' + hIndex + '</font></strong><br/>' +
			'<strong>Name:</strong>&nbsp;<font color="red">' + hName + '</font><br/>' +
			'<strong>Email:</strong>&nbsp;<font color="red">' + hMail + '</font><br/>';

		doInfoTip( evt, content );
	}
}
// }}}

// {{{ showDeletedTip ( event evt )
function showDeletedTip ( evt ) {
	var content = DI_Tips['deleted'];

	doInfoTip( evt, content );
}
// }}}

// {{{ showOnHoldTip ( event evt )
function showOnHoldTip ( evt ) {
	var content = DI_Tips['on_hold'];

	doInfoTip( evt, content );
}
// }}}

// {{{ showRegisteredTip ( event evt )
function showRegisteredTip ( evt ) {
	var content = DI_Tips['registered'];

	doInfoTip( evt, content );
}
// }}}

// {{{ showFreeTip ( event evt )
function showFreeTip ( evt ) {
	var content = DI_Tips['free'];

	doInfoTip( evt, content );
}
// }}}

// {{{ doInfoTip ( event evt, string tipContent ) 
function doInfoTip ( evt, tipContent ) {

	var block = getBlock( 'infoTip' );
	
	if ( block ) {
		
		mouseX = ( ns4 || ns5 ) ? evt.pageX : window.event.clientX;
		mouseY = ( ns4 || ns5 ) ? evt.pageY : window.event.clientY;

		// tooltip width and height
		var tpWd = ( ns4 ) ? infotip.width  : ( ie4 || ie5 ) ? infotip.clientWidth  : infotip.offsetWidth;
		var tpHt = ( ns4 ) ? infotip.height : ( ie4 || ie5 ) ? infotip.clientHeight : infotip.offsetHeight;

		// document area in view (subtract scrollbar width for ns)
		var winWd = ( ns4 || ns5 ) ? window.innerWidth  - 20 + window.pageXOffset : document.body.clientWidth  + document.body.scrollLeft;
		var winHt = ( ns4 || ns5 ) ? window.innerHeight - 20 + window.pageYOffset : document.body.clientHeight + document.body.scrollTop;

		// check mouse position against tip and window dimensions
		// and position the tooltip 
		if ( ( mouseX + offX + tpWd ) > winWd ) {
			infotipcss.left = ( ns4 ) ? mouseX - ( tpWd + offX ) : mouseX - ( tpWd + offX ) + "px";
		} else {
			infotipcss.left = ( ns4 ) ? mouseX + offX : mouseX + offX + "px";
		}

		if ( ( mouseY + offY + tpHt ) > winHt ) {
			infotipcss.top = ( ns4 ) ? winHt - ( tpHt + offY ) : winHt - ( tpHt + offY ) + "px";
		} else {
			infotipcss.top = ( ns4 ) ? mouseY + offY : mouseY + offY + "px";
		}
		
		infotipcss.padding	= '5px';
		//infotipcss.width	= 250;
		//infotipcss.height	= 50;
		infotipcss.border	= 'dotted 1px black';
		infotipcss.background	= '#F7F7F7';

		block.innerHTML = tipContent;
		
		showBlock( 'infoTip' );
	}
}
// }}}

// {{{ hideHandleInfo ( void )
function hideHandleInfo () {
	hideInfoTip( 10000 );
}
// }}}

// {{{ hideInfoTip ( tmOut )
function hideInfoTip ( tmOut ) {
	var block = getBlock( 'infoTip' );

	if ( block ) {
		var timeOut = ( tmOut != '' ) ? tmOut : 1000;
		var t = setTimeout( "infotipcss.visibility = 'hidden';", timeOut );
		
		hideBlock( 'infoTip' );
	}
}
// }}}

/*  {{{ per-tool tooltip texts
array[toolid] = array
(
	[0] -> active text,
	[1] -> inactive text,
)
*/

ToolTexts['id7800001'] = new Array( 'при абонамент при почистване', 'при абонамент при почистване' );
ToolTexts['id7800002'] = new Array( 'при комплексна услуга от Бабекс ООД', 'при комплексна услуга от Бабекс ООД' );
ToolTexts['id7800003'] = new Array( 'при комплексна услуга от Бабекс ООД', 'при комплексна услуга от Бабекс ООД' );
ToolTexts['id7800004'] = new Array( 'при комплексно почистване', 'при комплексно почистване' );
// }}}

// {{{ tool titles 
ToolTitle['id7800001'] = 'от 10% до 20% отстъпка'; // 20 %
ToolTitle['id7800002'] = '15 % отстъпка'; // 15 %
ToolTitle['id7800003'] = '10 % отстъпка'; // 10 %
ToolTitle['id7800004'] = '5 % отстъпка'; // 5 %

// }}}


