

/***************************************************

This javascript has the logic to show and hide the pop-up.
All the event handling related to the pop-up is taken care in this script.

****************************************************/

var protocol= window.location.protocol;
var site_url = protocol + "//www.trustplus.com";
var javascript_url = site_url + "/javascripts/bos_scripts/";

//for testing
//var site_url = "http://localhost:3000";
//var javascript_url = site_url + "/javascripts/";

var arrowheight=34;
var arrowwidth =35;
var borderheight=196;
var borderwidth=150;
var iconwidth=141;
var iconheight=21;
var hedge = 30; // edge of arrow to edge of bubble
var scrollbarwidth = 0;
var vpadding = 0;
var hpadding = 0;
var bubblecorner = 13;
var icon;

var path = "";
var pageX = 0;
var pageY = 0;

var color;

var summary_isIE=document.all;
var isNN=!document.all&&document.getElementById;

var Surl = "";

var cache = new Object();

document.onmousemove = MoveBubble;

if (summary_isIE) {
	document.onmousewheel= shut;
}
else {
	window.addEventListener("DOMMouseScroll",shut, false);
}

var ct=0;
var mv=0;
var myTimer;
var isIframeLoaded = false;

	var posx = 0;
	    var posy = 0;	

function tpPopup(e,url) {         
	var target;	
	Surl = url;//unescape(url); Changed by Aashish on 19-Mar-2008 for Issue #0022781
	if (summary_isIE) {
		target = e.fromElement;

	}
	else{
		target = e.relatedTarget;
	}

	if (contains(document.getElementById('stickytable'),target))
		return;

  	document.getElementById("TrustPlusInfo1").style.backgroundImage = "none";
	var domain="";

	//ct=0;
	//mv=1;
	if (summary_isIE) {
		icon = e.toElement;

	}
	else{
		icon = e.currentTarget;
	}
    
    if(summary_isIE)  
    {
    pageX = e.clientX;
	pageY = e.clientY+20;
    }
    else
    {
    pageX = e.pageX+10;
	pageY = e.pageY-20;
	}
    /*document.getElementById("summaryFrame").innerHTML = document.getElementById("blankHtml").innerHTML;
	if(cache[url] == undefined)
	{
    	getUrl(unescape(url),popup);
    	//alert("from server");
    }
    else
    {
        popup('','',cache[url],false);
        //alert("from cache");
    }  */ 

	document.getElementById("TrustPlusInfo1").onmouseout = shut;
	//document.getElementById("cross_btn").onclick = shut;
    
    //----
    if (!e) var e = window.event;    	    	
	posx = e.clientX + document.body.scrollLeft	+ document.documentElement.scrollLeft;
    posy = e.clientY + document.body.scrollTop	+ document.documentElement.scrollTop;				    	
    
    //Added on 11th April 2007
    scrOfY = window.pageYOffset;
    if(BrowserDetect.browser == "Safari")
    {
    posy = posy - scrOfY;
    }
    //---
}

function setValues()
{       
    document.getElementById("summaryFrame").innerHTML = document.getElementById("blankHtml").innerHTML;
	if(cache[Surl] == undefined)
	{
    	// It has been seen, that if a name consists of single apostrophe, BOS popup is getting crashed (in case of alatest)
    	if(Surl.match("%27") || Surl.match("'")) 
    	   getUrl(unescape(Surl),popup); 
    	else
           getUrl(Surl,popup);    	
    	//alert("from server");
    }
    else
    {
        popup('','',cache[Surl],false);
        //alert("from cache");
    }   
    ct=0;
	mv=1;	
	MoveBubble();
	    
}


function getXmlHttp(){
  var loc_xmlhttp;
  try {
    loc_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      loc_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      loc_xmlhttp = false;
    }
  }
  if (!loc_xmlhttp && typeof XMLHttpRequest!='undefined') {
    loc_xmlhttp = new XMLHttpRequest();
  }
  return loc_xmlhttp;
}
 
function getUrl(url, cb) {
 // var loc_xmlhttp = undefined;
 // if(loc_xmlhttp == undefined)
  var loc_xmlhttp = getXmlHttp();

  //alert(loc_xmlhttp);
 try
	{
  loc_xmlhttp.open("GET", url,true);
  loc_xmlhttp.onreadystatechange = function() {
  if (loc_xmlhttp.readyState == 4) {
      cb(loc_xmlhttp.status, 
         loc_xmlhttp.getAllResponseHeaders(), 
         loc_xmlhttp.responseText,true,url);
      }
  }
  loc_xmlhttp.send(null);
  }catch(e){
    alert(e);
  }
} 

function popup(status, responseHeaders, responseText, fromAjax, url)
{
    if (document.getElementById("summaryFrame") != null )    // this if condition is added to avoid java script error
        document.getElementById("summaryFrame").innerHTML = responseText;

    if(fromAjax)
    {
         if ( typeof(cache) == undefined )   // if condition is added to avoid java script error
           { cache[url] = responseText; }
    }
 
}

function contains (container, containee) {
  while (containee) {
    if (container == containee) {
      return true;
    }
    containee = containee.parentNode;
  }
  return false;
}

function AdjustBubbleToWindow(X,Y)
{
	var bubblelayer = document.getElementById("TrustPlusInfo1");	
	
	var scrollPos = getScrollXY();
	var scrollPosX = scrollPos[0];
	var scrollPosY = scrollPos[1];		
	
	windowHeight = 0;
	windowWidth = 0;
	if(summary_isIE)	 
	   {  
	       windowHeight = document.documentElement.clientHeight-10;
	       windowWidth = document.documentElement.clientWidth	       
	   }
	else
	   {
	       windowHeight = window.innerHeight-8 ;	   
	       windowWidth =  window.innerWidth
	   }
	
	if (windowHeight>355) 
	{   
    	if((Y+150) > (windowHeight))
    	{
    	    var diff = (Y+150)-scrollPosY;
    	    if (diff > windowHeight)    	    	    
    	    {
       	        bubblelayer.style.top = (Y-150)+"px";	    
       	    }
        	else
        	{
        	    if(summary_isIE)
        	    {
    	           Y=Y-8;
    	           X=X-8;
    	        }
        	    bubblelayer.style.top = (Y)+"px";	        	 
        	}
    	}
    	else
    	{
    	   if(summary_isIE)
    	   {
    	       Y=Y-8;
    	       X=X-8;
    	   }
    	   bubblelayer.style.top = (Y)+"px";	    
    	}    
	}
	else
	{	   
	   bubblelayer.style.top = (Y)+"px";	    	
	}		
	
	if (windowWidth>200)
	{	
    	if((X+202) > windowWidth+scrollPosX)//document.body.clientWidth)
    	{
    		bubblelayer.style.left = (X-202)  +"px";
    	}
    	else
    	{
    	   bubblelayer.style.left = X +"px";
    	}	
    }
    else
    {
        bubblelayer.style.left = X +"px";
    }
		
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

//-----

function findPos(obj) {    
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}	
	return {X:curleft,Y:curtop};
}

//-----


function MoveBubble(e) {    	
	if(mv) {	  
		/*var bubblelayer = document.getElementById("TrustPlusInfo");
		var baseX = pageX; //icon.offsetLeft; // middle of the icon
		var baseY = pageY; //icon.offsetTop; // top of the icon
		bubblelayer.style.top = (baseY + vpadding) + "px";
		bubblelayer.style.left = (baseX + hpadding) + "px";
		bubblelayer.style.width = "202px"; //(borderwidth - 2*hpadding)*.0626 + "em";
		bubblelayer.style.height = "280px"; //(borderheight - 2*vpadding)*.0626 + "em";*/		
		AdjustBubbleToWindow(posx,posy);
		ShowBubble();	
	}

}

function ShowBubble() {
  	ct++
	if(ct == 1) {
        document.getElementById("TrustPlusInfo1").style.visibility= 'visible';
		mv = 0;		
  	}
}

function BubbleHide() {
	document.getElementById("TrustPlusInfo1").style.visibility='hidden';
	document.getElementById("TrustPlusInfo1").style.left=-800;
	document.getElementById("TrustPlusInfo1").style.top=-800;	
}



//Added on 11th April 2007
//************************************************************
// This code is to detect the current browser.We can also add code for browser version and OS.
 function shut(e) {    
    if (document.all) {

		e = window.event;
		//if (!contains(document.getElementById("TrustPlusInfo"),e.toElement) && typeof(icon) != "undefined" && !contains(icon,e.toElement))
		if(icon)
		if (!document.getElementById("TrustPlusInfo1").contains(e.toElement) && !icon.contains(e.toElement))
			BubbleHide();
	}
	else {

		if (!contains(document.getElementById("TrustPlusInfo1"),e.relatedTarget) && typeof(icon) != "undefined" && !contains(icon,e.relatedTarget))
			BubbleHide();
	}
}
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
dataBrowser: [
		
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		}
		]

};
BrowserDetect.init();
