// tagpay.js  2008 (C) TAGATTITUDE  

// Tips Management --------------------------------------------------

// globals
var PosBullHoriz = 0;
var PosBullVerti = 0;
var TppTipState = 0;
var tppDisplayX = 0;
var tppDisplayY = 0;
var tppTipText = "";
var tppCount = 0;
var tppInfoPlusOff = 0;


// Timer
var tppTipDelay;
var tppDelayTimer = 750;
var tppAutoTimer  = 9000;


function tppMouseNS( ev )
{  
	var x = ev.pageX;
	var y = ev.pageY;
    
    if ( TppTipState > 0 )
    {
    	if ( ( Math.abs (tppDisplayX - x ) > 20 ) || ( Math.abs (tppDisplayY - y ) > 20 ) )
    		tppTipOff();
    }
    
    PosBullHoriz = x;
    PosBullVerti = y;
}

function tppMouseIE( ev )
{  
	x = event.x + document.documentElement.scrollLeft; // or document.body.scrollLeft regarding DOCTYPE
	y = event.y + document.documentElement.scrollTop;

    if ( TppTipState > 0 )
    {
    	if ( ( Math.abs (tppDisplayX - x ) > 20 ) || ( Math.abs (tppDisplayY - y ) > 20 ) )
    		tppTipOff();
    }
	PosBullHoriz = x;
    PosBullVerti = y;
}

function tppTip( Tip )
{
	tppDisplayX = PosBullHoriz;
	tppDisplayY = PosBullVerti;
	
//	if ( TppTipState == 0 )
	{
		var infoBull = document.getElementById("infoBull"); 
		tppTipText = Tip;
		clearTimeout( tppTipDelay );
		tppTipDelay = setTimeout( 'TipTimer()', tppDelayTimer );
    	TppTipState = 1;
	}                                               
}

function TipDebug( Text )
{  
	var TppDebug = document.getElementById("tppDebug");
    tppCount++;
    var s = TppDebug.innerHTML;
    if ( s.length > 300 ) s = s.slice(100); 
    TppDebug.innerHTML = s + "<br/>" + tppCount + " : " + TppTipState + " : " + Text;
    
}

function TipTimer()
{  
   if ( TppTipState == 1 )
    {
    	TipDisplay();
    	tppTipDelay = setTimeout( 'TipTimer()', tppAutoTimer );
    	TppTipState = 2;
    }
    else if ( TppTipState == 2 )
    {
    	tppTipOff();
    	TppTipState = 0;
    }
}

function TipDisplay( Tip )
{
	var infoBull = document.getElementById("infoBull"); 
	var ombrBull = document.getElementById("ombrBull"); 
	infoBull.innerHTML = tppTipText;      
    ombrBull.innerHTML = tppTipText;
    infoBull.style.top = PosBullVerti + 10 + "px";      
    infoBull.style.left = PosBullHoriz + 10 + "px";      
    ombrBull.style.top = PosBullVerti + 15 + "px";  
    ombrBull.style.left = PosBullHoriz + 18 + "px";  
	infoBull.style.visibility = "visible";
	ombrBull.style.visibility = "visible";
}


function tppTipOff()
{
	var infoBull = document.getElementById("infoBull"); 
	var ombrBull = document.getElementById("ombrBull"); 
	infoBull.style.visibility = "hidden";
	ombrBull.style.visibility = "hidden";
	clearTimeout( tppTipDelay );
   	TppTipState = 0;
}

function tppInfoPlus( Idx )
{
	if ( ! tppInfoPlusOff )
	{
		var infoElement = document.getElementById( "td" + Idx );
		var plusElement = document.getElementById( "a" + Idx );
		if ( infoElement.style.display == "none" )
		{
			infoElement.style.display = "";
			plusElement.innerHTML = "&nbsp;-&nbsp;";
		}
		else
		{
			infoElement.style.display = "none";
			plusElement.innerHTML = "&nbsp;+&nbsp;";
		}
	}
}



function tppNoInfoPlus()
{
	tppInfoPlusOff = 1;
}



function tppSubmitEnter( myfield, e )
{
	var keycode;
	if ( window.event ) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	if ( keycode == 13 )
	{
	   myfield.form.submit();
	   return false;
	}
	else
	   return true;
}

function tppUpdateField( myField, myMessage, oldValue )
{
	var yourValue = prompt( myMessage, oldValue );
  	if ( ( yourValue != null ) && ( yourValue != "" ) )
  	{
  		myField.value +=  " " + yourValue;
     	myField.form.submit();
     	return true;
  	}
	return false;
}

function tppDeleteField( myField, myMessage )
{
	var valueElement = document.getElementById( "delTerminal" );
	var result = confirm( myMessage );
  	if ( result == true )
  	{
  	    valueElement.value = myField;
     	myField.form.submit();
     	return true;
  	}
	return false;
}

function tppConfirmField( myField, myMessage )
{
	var valueElement = document.getElementById( "hConfirm" );
	var myForm = document.getElementById( "tppForm" );
	var result = confirm( myMessage );
  	if ( result == true )
  	{
  	    valueElement.value = myField;
     	myForm.submit();
     	return true;
  	}
	return false;
}


function tppValidateField( myField, Message1, Message2 )
{
	var valueElement = document.getElementById( "validateid" );
	var valueCheck = document.getElementById( "idcheck" + myField );
	var myMessage = Message1;
	if  ( ! valueCheck.checked ) myMessage = Message2;
	var result = confirm( myMessage );
  	if ( result == true )
  	{
  		if  ( valueCheck.checked ) myField += ",1";
  		else  myField += ",0";
  	    valueElement.value = myField;
  	    valueElement.form.submit();
     	return true;
  	}
  	else
  	{
  		if  ( valueCheck.checked ) 	valueCheck.checked = false;
  		else valueCheck.checked = true;
  	}
	return false;
}


function tppSmsEmpty()
{
	var smsEmpty = document.getElementById( "smsEmpty" );
	var smsFree = document.getElementById( "smsFree");
	if ( smsEmpty.value == "1" )
	{
		smsEmpty.value = "0";
		smsFree.value = "";
		smsFree.style.fontStyle = "normal";
		smsFree.style.fontWeight = "normal";
		smsFree.style.fontSize = "8pt";
		smsFree.style.color = "#222222";
	}
}

function tppSmsSize( max )
{
	var smsFree = document.getElementById( "smsFree" );
	var smsFix = document.getElementById( "smsFix" );
	var smsCount = document.getElementById( "smsCount");
	var smsCheck = document.getElementById( "smsCheck" );

	var smsVisibility = "visible";
	if ( ! smsCheck.checked )
	{
		smsVisibility = "hidden";
		smsSize = 0;
	}
	else
	{
		var smsSize = smsFix.value.length + 4 + smsFree.value.length;
	
		if ( smsSize >= max )
		{
			var m = max - ( smsFix.value.length + 4 ); 
			smsFree.value = smsFree.value.substring( 0, m );
			smsSize = smsFix.value.length + 4 + smsFree.value.length;
		}
	}
	smsCount.innerHTML = smsSize;
	smsFree.style.visibility = smsVisibility;
	smsFix.style.visibility = smsVisibility;

}


// Get the HTTP Object for AJAX
//-----------------------------
function getHTTPObject()
{
	// source from http://openweb.eu.org/articles/objet_xmlhttprequest
	var xmlhttp = false;

	 /* Compilation conditionnelle d'IE */
	 /*@cc_on
	 @if (@_jscript_version >= 5)
	    try
	    {
	       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	    }
	    catch (e)
	    {
	       try
	       {
	          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	       }
	       catch (E)
	       {
	          xmlhttp = false;
	       }
	    }
	 @else
	    xmlhttp = false;
	 @end @*/
	
	 /* on essaie de créer l'objet si ce n'est pas déjà fait */
	 if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	 {
	    try
	    {
	       xmlhttp = new XMLHttpRequest();
	    }
	    catch (e)
	    {
	       xmlhttp = false;
	    }
	 }
	// source from http://openweb.eu.org/articles/objet_xmlhttprequest
	 return  xmlhttp;
}



if ( navigator.appName.substring(0,3) == "Net" )
	document.addEventListener("mousemove", tppMouseNS, true);
else document.onmousemove = tppMouseIE;       


// Tips management --------------------------------------------------
