// function for reading individual cookie values
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return document.cookie.substring(c_start,c_end)
    } 
  }
return null;
}

function putCookie(c_name, c_value) //Function for writing new cookies
{
	if (document.cookie.length>0)
	  {
		 var lifeTime = new Date(); // set expiry time of the cookie x milliseconds ahead
		 lifeTime.setTime(lifeTime.getTime() + (365*24*60*60*1000)); 
		 // lets add or update the cookie
		 document.cookie = c_name+"="+c_value+";expires="+lifeTime.toGMTString()+";path=/";
	  }
	//alert("Put: "+c_name+"  Value: "+c_value);
	return null;
}

// The function that alerts me of what I have
function alertMe()
{
	alert ("EXISTING COOKIES: Visit Flag is:  "+getCookie("visit_flag")+" The user came from: "+getCookie("bis_referrer")+" and the entry point was: "+getCookie("bis_entry"));
}

//-------------------the work begins----------------
// Check to see if we have an existing cookie and flag, and a referrer that is not empty
function trackMe()
{
if ((document.cookie != "")&&(getCookie("visit_flag")>=1)&&(getCookie("bis_referrer")!="")) 
	{
		var visit_flag = parseInt(getCookie("visit_flag"),10);
		var bis_referrer = getCookie("bis_referrer");
		var bis_entry = getCookie("bis_entry");
		var reg = getCookie("reg");
		var resource = getCookie("resource");
		// now lets increase the visit_flag and re-bake the cookies with updated dough where necessary
		visit_flag = visit_flag + 1;
		visit_flag += '';
		// set the current juncture in the lifeTime variable
		var lifeTime = new Date();
		// set expiry time of the cookie x milliseconds ahead
		lifeTime.setTime(lifeTime.getTime() + (365*24*60*60*1000)); 
		// lets bake several small cookies
		document.cookie = "visit_flag="+visit_flag+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "bis_referrer="+bis_referrer+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "bis_entry="+bis_entry+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "reg="+reg+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "resource="+resource+";expires="+lifeTime.toGMTString()+";path=/";
		//document.write(getCookie("pcalc_count"));
	}
else 
	{
		// For agents with 0 flag, or an empty referrer, write a brand new cookie without caring what the previous values
		// scour the user agent for referrer, and entry point and then store escaped values to prevent conflict
		var visit_flag = 1;
		var bis_referrer = document.referrer;
		var bis_entry = self.location;
		var reg = "F";
		var resource = "none";
		var lifeTime = new Date();
		// set expiry time of the cookie x milliseconds ahead
		lifeTime.setTime(lifeTime.getTime() + (365*24*60*60*1000));
		// lets bake several small cookies
		document.cookie = "visit_flag="+visit_flag+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "bis_referrer="+bis_referrer+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "bis_entry="+bis_entry+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "reg="+reg+";expires="+lifeTime.toGMTString()+";path=/";
		document.cookie = "resource="+resource+";expires="+lifeTime.toGMTString()+";path=/";
	}	
	//document.write ("Visit Flag is:  "+getCookie("visit_flag")+"<br />The user came from: "+getCookie("bis_referrer")+"<br />Entry point was: "+getCookie("bis_entry")+"<br />Valid Until: "+lifeTime);
	//document.write(getCookie("reg"));
	//document.write(getCookie("resource"));
}

function setReg()
{
  var reg = "T";
  var resource = getCookie("resource");
  var lifeTime = new Date();
  lifeTime.setTime(lifeTime.getTime() + (365*24*60*60*1000));
  document.cookie = "reg="+reg+";expires="+lifeTime.toGMTString()+";path=/";
  if(resource != "none")
  {
	  window.location = resource;
	  resource = "none";
	  document.cookie = "resource="+resource+";expires="+lifeTime.toGMTString()+";path=/";
  }
}

function checkResourceRequest()
{
  trackMe();

  var reg = getCookie("reg");
  var lifeTime = new Date();
  if (reg != "T")
  	{
  		lifeTime.setTime(lifeTime.getTime() + (365*24*60*60*1000));
  		document.cookie = "resource="+location.href+";expires="+lifeTime.toGMTString()+";path=/";
		window.location = "http://www.leonardomd.com/contact-us/registration-required.asp";
  	}
}

function encodeURL( Page, Source, Campaign, LinkDesc )
{
  var Root = 'http://www.leonardomd.com';
  var u = 'source='+Source+'&campaign='+Campaign+'&linkdesc='+LinkDesc;
  var v = Root+Page+'?'+escape(Encrypt(u));
  
  return v;
}

function decodeURL( url, field )
{
  fields = new Array();
  var v = url;
  var v2 = v.split("?",2);
  var u = unEncrypt(unescape(v2[1]));
  var u2 = v[0]+'?'+u;
  
  fields[0] = v2[0];
  fields[1] = gup("source",u2);
  if(fields[1] == ""){ fields[1] = "Unidentified Internet Search"; }
  fields[2] = gup("campaign",u2);
  fields[3] = gup("linkdesc",u2);
  
  return fields[field];
}

function Encrypt(theText) {
  output = new String;
  Temp = new Array();
  TextSize = theText.length;
  offset = Math.round(Math.random() * 122) - 68;
  for (i = 0; i < TextSize; i++) {
    Temp[i] = theText.charCodeAt(i) + offset;
  }
  output += String.fromCharCode(offset);
  for (i = 0; i < TextSize; i++) {
    output += String.fromCharCode(Temp[i]);
  }
  return output;
}

function unEncrypt(theText) {
  output = new String;
  Temp = new Array();
  TextSize = theText.length;
  offset = theText.charCodeAt(0);
  for (i = 1; i < TextSize; i++) {
    Temp[i] = theText.charCodeAt(i);
  }
  for (i = 1; i < TextSize; i++) {
    output += String.fromCharCode(Temp[i] - offset);
  }
  return output;
}



function gup( name, url ){  
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  
  var regexS = "[\\?&]"+name+"=([^&#]*)";  
  var regex = new RegExp( regexS );  
  var results = regex.exec( url );  
  if( results == null )    
    return "";  
  else    
    return results[1];
}


// Drop-in content box- By Dynamic Drive
// For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
// This credit MUST stay intact for use

var ie=document.all
var dom=document.getElementById
var ns4=document.layers
var calunits=document.layers? "" : "px"

var bouncelimit=32 //(must be divisible by 8)
var direction="up"

function initbox(){
if (!dom&&!ie&&!ns4)
return
crossobj=(dom)?document.getElementById("dropin").style : ie? document.all.dropin : document.dropin
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
crossobj.top=scroll_top-250+calunits
crossobj.visibility=(dom||ie)? "visible" : "show"
dropstart=setInterval("dropin()",50)
}

function dropin(){
scroll_top=(ie)? truebody().scrollTop : window.pageYOffset
if (parseInt(crossobj.top)<100+scroll_top)
crossobj.top=parseInt(crossobj.top)+40+calunits
else{
clearInterval(dropstart)
bouncestart=setInterval("bouncein()",50)
}
}

function bouncein(){
crossobj.top=parseInt(crossobj.top)-bouncelimit+calunits
if (bouncelimit<0)
bouncelimit+=8
bouncelimit=bouncelimit*-1
if (bouncelimit==0){
clearInterval(bouncestart)
}
}

function dismissbox(){
if (window.bouncestart) clearInterval(bouncestart)
crossobj.visibility="hidden"
}

function truebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}


function get_cookie(Name) {
var search = Name + "="
var returnvalue = ""
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset)
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function dropornot(){
//  if ((parseInt(getCookie("visit_flag")) % 6)+'' == "0"){
    window.onload=initbox
    document.cookie="droppedin=yes"
//  }
}

function checkCookie(c_name, default_value){
	if((getCookie(c_name) != "") && (getCookie(c_name) != null)){
		return getCookie(c_name);	
	}
	else{ 
		return default_value; 
	}
}

function checkCookieCB(c_name){
	if((getCookie(c_name) != "") && (getCookie(c_name) != null)){
		if(getCookie(c_name) == "false"){ return false;	}
		else{ return true; }
	}
	else{ 
		return true; 
	}
}
 