var tfs_debug = 0;

//-----------------------------Begin of InstantTracking.js-----------------------------//
// Copyright (C) 2007 InstantService, Inc. All rights reserved. 
// All content is protected under U.S. copyright laws. Any unauthorized duplication, modification, 
// or reverse-engineering of this code without express written permission of InstantService, Inc. 
// is a violation of copyright law and is subject to penalty and prosecution.  
// This comment and the 4 lines above may not be removed from this file.


function ISVT_onInviteNotOffered(isvt_rid,isvt_iid){
var nv='?ai='+ISVT_ai+'&evt=20&ri='+isvt_rid+'&ii='+isvt_iid;
ISVT_callTS(ISVT_scr,nv);}
function ISVT_onInviteOffered(isvt_rid,isvt_iid)
{
	var nv='?ai='+ISVT_ai+'&evt=21&ri='+isvt_rid+'&ii='+isvt_iid;
	ISVT_callTS(ISVT_scr,nv);
	//tfs start
	if(window.ii_247Var)
	{
		ii_247Var.OnInvitationOffered(isvt_rid,isvt_iid);
	}
	//tfs end
}
function ISVT_onInviteAccepted(isvt_iid,isvt_di){
var nv='?ai='+ISVT_ai+'&evt=22&ii='+isvt_iid+'&di='+isvt_di;
ISVT_callTS(ISVT_scr,nv);}
function ISVT_onInviteDeclined(isvt_iid,isvt_di)
{
	var nv='?ai='+ISVT_ai+'&evt=23&ii='+isvt_iid+'&di='+isvt_di;
	ISVT_callTS(ISVT_scr,nv);
	//tfs start
	if(window.ii_247Var)
	{
		ii_247Var.OnInvitationDeclined();
	}
	//tfs end
}
function ISVT_onQueueUnavailable(isvt_di){
var nv='?ai='+ISVT_ai+'&evt=30&di='+isvt_di;
ISVT_callTS(ISVT_scr,nv);}
function ISVT_onEnteredQueue(isvt_cui,isvt_di){
var nv='?ai='+ISVT_ai+'&evt=31&cui='+isvt_cui+'&di='+isvt_di;
ISVT_callTS(ISVT_scr,nv);}
function ISVT_onChatWithAgent(isvt_cui,isvt_ci,isvt_di,isvt_sq){
var nv='?ai='+ISVT_ai+'&evt='+((isvt_sq==0)?'32':'33')+'&cui='+isvt_cui+'&ci='+isvt_ci+'&di='+isvt_di;
ISVT_callTS(ISVT_scr,nv);}
function ISVT_onMailMessagePosted(isvt_di){
if(ISVT_mmp==1)return;
var nv='?ai='+ISVT_ai+'&evt=40&di='+isvt_di;
ISVT_callTS(ISVT_scr,nv);ISVT_mmp=1;}
function ISVT_onConversion(isvt_cvi,isvt_cv,isvt_type,isvt_cd1){
var argv = ISVT_onConversion.arguments;  
var argc = ISVT_onConversion.arguments.length;  
var isvt_cd2 = (argc > 4) ? argv[4] : null;  
var isvt_cd3 = (argc > 5) ? argv[5] : null;  
var isvt_cd4 = (argc > 6) ? argv[6] : null;  
var isvt_cd5 = (argc > 7) ? argv[7] : null;  
var evt=((isvt_type == 0) ? 50 : 51);
var nv='?ai='+ISVT_ai+'&evt='+evt+'&cvi='+isvt_cvi+'&cv='+isvt_cv;
if (isvt_cd1.length > 0) nv+='&cd1='+ISVT_encode(isvt_cd1);
if (isvt_cd2 != null && isvt_cd2.length > 0) nv+='&cd2='+ISVT_encode(isvt_cd2);
if (isvt_cd3 != null && isvt_cd3.length > 0) nv+='&cd3='+ISVT_encode(isvt_cd3);
if (isvt_cd4 != null && isvt_cd4.length > 0) nv+='&cd4='+ISVT_encode(isvt_cd4);
if (isvt_cd5 != null && isvt_cd5.length > 0) nv+='&cd5='+ISVT_encode(isvt_cd5);
ISVT_callTS(ISVT_scr,nv);}
  
function ISVT_callTS(isvt_scr, isvt_nv)
{
	var vtid = ISVT_getVTID();
	if (vtid != null && vtid != "") isvt_nv += '&vti=' + vtid;
	if (isvt_scr.length > 0 && document.getElementById) {
	  var head = document.getElementsByTagName('head').item(0);
	  var old  = document.getElementById('vtscript');
	  if (old) head.removeChild(old);
	  vtscr = document.createElement('script');
	  vtscr.src = isvt_scr + isvt_nv;
	  vtscr.type = 'text/javascript';
	  vtscr.defer = true;
	  vtscr.id = 'vtscript';
	  void(head.appendChild(vtscr));
	  if(tfs_debug > 0)
	  {
		  alert(vtscr.src);
	  }
	}
}

function ISVT_getVTID(){  
if (typeof window.ISVT_tid != 'undefined') return ISVT_tid;
var arg = "isvt_visitor=";  
var clen = document.cookie.length;  
var i = 0;  
while (i < clen) {    
  var j = i + arg.length;    
  if (document.cookie.substring(i, j) == arg) {   
    var endstr = document.cookie.indexOf (";", j);  
    if (endstr == -1) endstr = document.cookie.length;  
    return unescape(document.cookie.substring(j, endstr));
  }
  i = document.cookie.indexOf(" ", i)+1;    
  if (i == 0) break;   
}return null;}

function ISVT_encode(s){
if (ISVT_hex == null){
  ISVT_hex = new Array(256);
  for (var i=0;i<256;i++){
    if (i < 16) ISVT_hex[i] = "%0" + i.toString(16);
    else ISVT_hex[i] = "%" + i.toString(16);
  }
}
if (s == null) return;
var sbuf = "";
for (i = 0; i < s.length; i++){
  var ch = s.charAt(i);
  var chCode = s.charCodeAt(i);
  if ("A"<=ch && ch<="Z") sbuf = sbuf.concat(ch);
  else if ("a"<=ch && ch<="z") sbuf = sbuf.concat(ch);
  else if ("0"<=ch && ch<="9") sbuf = sbuf.concat(ch);
  else if (ch==" ") sbuf = sbuf.concat("+");
  else if (ch=="-" || ch=="_" || ch=="." || ch=="!" || ch=="~" || ch=="*" || ch=="(" || ch==")") sbuf = sbuf.concat(ch);
  else if (chCode <= parseInt("007f",16)) sbuf = sbuf.concat(ISVT_hex[chCode]);
  else if (chCode <= parseInt("07ff")){              
    var idxCode0 = parseInt("c0",16) | (chCode >> 6);
    var idxCode1 = parseInt("80",16) | (chCode & parseInt("3f",16));
    sbuf = sbuf.concat(ISVT_hex[idxCode0]);
    sbuf = sbuf.concat(ISVT_hex[idxCode1]);
  } 
  else{              
    var idxCode0 = parseInt("e0",16) | (chCode >> 12);
    var idxCode1 = parseInt("80",16) | ((chCode >> 6) & parseInt("3f",16));
    var idxCode2 = parseInt("80",16) | (chCode & parseInt("3f",16));
    sbuf = sbuf.concat(ISVT_hex[idxCode0]);
    sbuf = sbuf.concat(ISVT_hex[idxCode1]);
    sbuf = sbuf.concat(ISVT_hex[idxCode2]);
  }
}return sbuf;}

function ISVT_setCookie(isvt_name, isvt_value){
if (typeof window.ISVT_tid != 'undefined') return;
//tfs start
window.ISVT_tid = isvt_value;
//tfs end
var expires = new Date();
if (30 == 0) expires = null;
else expires.setTime(expires.getTime() + (30*24*60*60*1000));
var domain=ISVT_getDomain();
document.cookie=isvt_name+"="+escape(isvt_value)+
((expires==null)?"":(";expires="+expires.toGMTString()))+
";path=/"+((domain == null||domain=="")?"":(";domain="+ domain));}

function ISVT_getDomain(){ 
var dom = document.domain;
var arr = dom.split('.');
if (arr.length == 3) dom = arr[1] + '.' + arr[2];
else if (arr.length > 3) dom = arr[arr.length-3] + '.' + arr[arr.length-2] + '.' + arr[arr.length-1];
return(dom);}

var ISVT_hex=null;
var ISVT_mmp=0;
var ISVT_prtcl=document.location.protocol.indexOf("https")!=-1?"https://":"http://";
var ISVT_scr=ISVT_prtcl+'ts.istrack.com/trackingAPI.js';
var ISVT_ai='B16iRZqXr+efh8pVE8IB2IEX4Qp4OT1z';
if(document.all && !document.getElementById) document.getElementById = function(id) { return document.all[id]; }
if (ISVT_getVTID() == null) ISVT_callTS(ISVT_scr, '?ai='+ISVT_ai);



 


//-----------------------------End of InstantTracking.js-----------------------------//

/*! Copyright (C) InstantService, Inc. All rights reserved.
* All content is protected under U.S. copyright laws. Any unauthorized duplication, modification, 
* or reverse-engineering of this code without express written permission of InstantService, Inc.  
* is a violation of copyright law and is subject to penalty and prosecution. */
/*! Generated: Jul 17, 2009 3:39:06 AM */

//  Animated DIV
function ii_AnimObj() {
  this.moveTimer=null;
  this.hideTimer=null;
  this.prx=0;
  this.pry=0;
  this.flx=10;
  this.fly=10;
  this.flw=0;
  this.flh=0;
  this.flpos=0;
  this.flopac=0;
  this.flfade=0;
}
function ii_getIEel()
{
  if (document.compatMode&&document.compatMode=='BackCompat') return(document.body);
  else return((document.documentElement && typeof document.documentElement.scrollTop!='undefined')?document.documentElement:document.body);
}
function ii_reset()
{
  var el=ii_getIEel();
  ii_Anim.prx=((ii_Var.MZ)?window.pageXOffset:el.scrollLeft)+ii_Anim.flx;
  ii_Anim.pry=((ii_Var.MZ)?window.pageYOffset:el.scrollTop)+ii_Anim.fly;
}
function ii_mark()
{
  var iivar = ii_Var;
  var iianim = ii_Anim;
  if (!iivar.MZ&&!iivar.IE) return;
  var el=ii_getIEel();
  var iw=(iivar.MZ)?window.innerWidth:el.offsetWidth;
  var ih=(iivar.MZ)?window.innerHeight:el.offsetHeight;
  if ((iianim.flpos%3)==0)iianim.flx=iw-iianim.flw-30;
  if ((iianim.flpos%3)==1)iianim.flx=10;
  if ((iianim.flpos%3)==2)iianim.flx=Math.round(((iw-20)/2)-(iianim.flw/2));
  if (iianim.flpos<4)iianim.fly=10;
  else if (iianim.flpos<7)iianim.fly=Math.round(((ih-20)/2)-(iianim.flh/2));
  else if (iianim.flpos<10)iianim.fly=ih-40-iianim.flh;
}

function ii_move()
{
  var iivar = ii_Var;
  var iianim = ii_Anim;
  var el=ii_getIEel();
  var sl=((iivar.MZ)?window.pageXOffset:el.scrollLeft)+iianim.flx;
  var st=((iivar.MZ)?window.pageYOffset:el.scrollTop)+iianim.fly;
  var fl = document.getElementById('invitelayer'); //tfs moved from original location
//tfs start
if(window.ii_247Var)
{
	if(ii_247Var.inviteType == 3)
	{
		var inv = ii_getRuleOrInv(ii_Inv,iivar.invtoshow);
		if(inv[0] == iivar.lastinvhid)
		{
			try
			{
				var sbel = document.getElementById('id_SmartButton_0');
				if(sbel)
				{
					sl=sbel.offsetLeft;
					st=sbel.offsetTop;
					if(fl.offsetTop > screen.availHeight || fl.offsetLeft > screen.availWidth)
					{
						window.scrollTo(fl.offsetLeft,fl.offsetTop);
					}
				}
			}
			catch(Bish2)
			{}
		}
	}
}
//tfs end
  var dx=Math.abs(sl-iianim.prx);
  var dy=Math.abs(st-iianim.pry);
  var d=Math.sqrt(dx*dx+dy*dy);
  var c=Math.round(d/20)+2;
  if (sl>iianim.prx) iianim.prx=iianim.prx+c;
  if (sl<iianim.prx) iianim.prx=iianim.prx-c;
  if (st>iianim.pry) iianim.pry=iianim.pry+c;
  if (st<iianim.pry) iianim.pry=iianim.pry-c;

  (iivar.MZ)?fl.style.left=iianim.prx+"px":fl.style.posLeft=iianim.prx;
  (iivar.MZ)?fl.style.top=iianim.pry+"px":fl.style.posTop=iianim.pry;

  if (!ii_Anim.islteIE6)
  {
    (iivar.MZ)?fl.style.MozOpacity = iianim.flopac/100:fl.style.filter="alpha(opacity="+iianim.flopac+")";
    iianim.flopac+=iianim.flfade;
    if (iianim.flopac<0) iianim.flopac = 0;
    if (iianim.flopac>100) iianim.flopac = 100;
  }  
}

//  Network
function ii_getDomain()
{
  var dm = document.domain;
  if (ii_matchRegExp(dm,"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$")) return(dm);
  var arr = dm.split('.');
  if (arr.length==3) dm = arr[1]+'.'+arr[2];
  else if (arr.length>3) dm = arr[arr.length-3]+'.'+arr[arr.length-2]+'.'+arr[arr.length-1];
  return(dm);
}
function ii_callServer(id,scr)
{
  var win = (ii_callServer.arguments.length==3)?ii_callServer.arguments[2]:window;
  var head = win.document.getElementsByTagName('head').item(0);
  var old  = win.document.getElementById(id);
  if (old) head.removeChild(old);
  var script = document.createElement('script');
  script.src = scr;
  script.type = 'text/javascript';
  script.defer = true;
  script.id = id;
  void(head.appendChild(script));
}
function ii_getProtocol()
{
  return((document.location.href.toLowerCase().indexOf("https")==0)?"https":"http");
}

//  Cookie
function ii_getCookie(name)
{
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen)
  {
    var j = i + alen;
    if (document.cookie.substring(i, j)==arg)
    {
      var endstr = document.cookie.indexOf (";", j);
      if (endstr == -1) endstr = document.cookie.length;
      return unescape(document.cookie.substring(j, endstr));
    }
    i = document.cookie.indexOf(" ",i) + 1;
    if (i==0) break;
  }
  return(null);
}
function ii_setCookie(name, value)
{
  var argv = ii_setCookie.arguments;
  var argc = ii_setCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  document.cookie = name + "=" + escape(value)+
   ((expires == null) ? "" : ("; expires="+expires.toGMTString()))+
   "; path=/"+((ii_Var.domain==null||ii_Var.domain=="") ? "" : ("; domain="+ii_Var.domain));
}
function ii_upGSV(name,value)
{
  var up = false;
  var sv = '';
  var arrSV = ii_getCookie(ii_Var.GSV_COOKIE);
  arrSV=(arrSV==null)?[]:arrSV.split('_');
  if (typeof(value) == 'string')
  {
    value = value.replace(/\-/g,"%2D");
    value = value.replace(/\_/g,"%5F");
  }
  for (var i=0;i<arrSV.length;i++)
  {
    if ((arrSV[i].split('-'))[0]==name)
    {
      arrSV[i]=name+'-'+value; 
      up=true; 
      break;
    }
  }
  if (!up) arrSV[arrSV.length] = name+'-'+value;
  for (i=0;i<arrSV.length;i++)
  {
    sv += arrSV[i];
    if (i < arrSV.length - 1) 
      sv += '_';
  }
  ii_setCookie(ii_Var.GSV_COOKIE, sv, null);
}
function ii_getGSV(name)
{
  var arrSV = ii_getCookie(ii_Var.GSV_COOKIE);
  arrSV=(arrSV==null)?[]:arrSV.split('_');
  for (var i=0;i<arrSV.length;i++)
  {
    if ((arrSV[i].split('-'))[0]==name)
    {
      var s = (arrSV[i].split('-'))[1];
      s = s.replace(/\%2D/g,"-");
      s = s.replace(/\%5F/g,"_");
      return(s);
    }
  }
  return('');
}
function ii_upHLArr(arr,id,idx)
{
  var up = false;
  for (var i=0;i<arr.length;i++)
  {
    if (arr[i][0]==id)
    {
      if (idx==1||idx==2||idx==3)
      {
        if (arr[i][idx] == '') arr[i][idx] = 1;
        else arr[i][idx] = parseInt(arr[i][idx],10)+1;
      }
      if (idx==4) arr[i][idx] = parseInt(new Date().getTime()/1000);
      up = true;
      break;
    }
  }
  if (!up)
  {
    arr[arr.length] = [id,'','','',''];
    if (idx==1||idx==2||idx==3) arr[arr.length-1][idx] = 1;
    if (idx==4) arr[arr.length-1][idx] = parseInt(new Date().getTime()/1000);
  }
}
function ii_getHLArr(arr,id,idx)
{
  var val = null;
  for (var i=0;i<arr.length;i++)
  {
    if (arr[i][0]==id) 
    {
      val = parseInt(arr[i][idx],10);
      if (isNaN(val)) val = null;
      break;
    }
  }
  return(val);
}
function ii_wrapHL()
{
  var iivar = ii_Var;
  var hist = iivar.publ+'-'+iivar.pgvis+'-'+iivar.randid+'_';
  for (var i=0;i<iivar.phl.length;i++)
  {
    hist += iivar.phl[i][0]+'-'+iivar.phl[i][1]+'-'+iivar.phl[i][2];
    if (i < iivar.phl.length-1) hist += '+';
  }
  hist += '_';
  for (var i=0;i<iivar.ihl.length;i++)
  {
    hist += iivar.ihl[i][0]+'-'+iivar.ihl[i][1]+'-'+iivar.ihl[i][2]+'-'+iivar.ihl[i][3]+'-'+iivar.ihl[i][4];
    if (i < iivar.ihl.length-1) hist += '+';
  }
  hist += '_';
  for (var i=0;i<iivar.cpml.length;i++)
  {
    hist += iivar.cpml[i];
    if (i < iivar.cpml.length-1) hist += '-';
  }
  hist += '_';
  for (var i=0;i<iivar.ppml.length;i++)
  {
    hist += iivar.ppml[i];
    if (i < iivar.ppml.length-1) hist += '-';
  }
  ii_setCookie(iivar.HIST_COOKIE,hist,iivar.HIST_COOKIE_EXP);
}
function ii_unwrapHL()
{
  var iivar = ii_Var;
  var arrH = ii_getCookie(iivar.HIST_COOKIE);
  arrH=(arrH!=null)?arrH.split('_'):[];
  if (arrH.length==0) return;

  var comp = arrH[0].split('-');
  iivar.publ = comp[0]
  iivar.pgvis = comp[1];
  iivar.randid = parseInt(comp[2],10);

  iivar.phl = [];
  if (arrH[1].length > 0)
  {
    comp = arrH[1].split('+');
    for (var i=0;i<comp.length;i++)
    {
      var arrPHL = comp[i].split('-');
      iivar.phl[iivar.phl.length] = [arrPHL[0],arrPHL[1],arrPHL[2]];
    }
  }
  iivar.ihl = [];
  if (arrH[2].length > 0)
  {
    comp = arrH[2].split('+');
    for (var i=0;i<comp.length;i++)
    {
      var arrIHL = comp[i].split('-');
      iivar.ihl[iivar.ihl.length] = [arrIHL[0],arrIHL[1],arrIHL[2],arrIHL[3],arrIHL[4]];
    }
  }
  iivar.cpml = [];
  if (arrH[3].length > 0)
  {
    comp = arrH[3].split('-');
    for (var i=0;i<comp.length;i++)
    {
      iivar.cpml[iivar.cpml.length] = comp[i];
    }
  }
  iivar.ppml = [];
  if (arrH[4].length > 0)
  {
    comp = arrH[4].split('-');
    for (var i=0;i<comp.length;i++)
    {
      iivar.ppml[iivar.ppml.length] = comp[i];
    }
  }
}
function ii_resetHistCookie()
{
  ii_setCookie(ii_Var.HIST_COOKIE, '0-0-0____', ii_Var.HIST_COOKIE_EXP);
}
function ii_resetGSVCookie()
{
  ii_upGSV('DPL',0);
  ii_upGSV('TES',parseInt(new Date().getTime()/1000));
  ii_upGSV('PCT',parseInt(new Date().getTime()/1000));
  ii_upGSV('GeoIP','*');
  ii_upGSV('GeoCo','');
  ii_upGSV('GeoRg','');
  ii_upGSV('GeoCt','');
  ii_upGSV('GeoNs','');
  ii_upGSV('GeoDm','');

  //tfs start
  this.ii_upGSV('GeoCc','');
  this.ii_upGSV('GeoCn','');
  this.ii_upGSV('GeoDa','');
  this.ii_upGSV('GeoAc','');
  this.ii_upGSV('GeoLa','');
  this.ii_upGSV('GeoLo','');
  this.ii_upGSV('GeoIs','');
  this.ii_upGSV('GeoOr','');
  //tfs end
}

//  GeoLocation
function ii_initGeoIP()
{
  var iivar = ii_Var;
  if (ii_getGSV("GeoIP")!="*" && iivar.gsvr.length > 0)
     iivar.geoinit = 1;

  if (window.isgeoipapi_ip_addr!=undefined && iivar.geoinit==0)
  {
    iivar.geoinit = 1;

    iivar.geoip = window.isgeoipapi_ip_addr;
    iivar.geoco = (window.isgeoipapi_country_code!=undefined)?window.isgeoipapi_country_code:'';
    iivar.georg = (window.isgeoipapi_region!=undefined)?window.isgeoipapi_region:'';
    iivar.geoct = (window.isgeoipapi_city!=undefined)?window.isgeoipapi_city:'';
    iivar.geons = (window.isgeoipapi_netspeed!=undefined)?window.isgeoipapi_netspeed:'';
    iivar.geodm = (window.isgeoipapi_domain!=undefined)?window.isgeoipapi_domain:'';
	//tfs start
    iivar.GeoCc = (window.isgeoipapi_continent_code!=undefined)?window.isgeoipapi_continent_code:'';
    iivar.GeoCn = (window.isgeoipapi_country_name!=undefined)?window.isgeoipapi_country_name:'';
    iivar.GeoDa = (window.isgeoipapi_dma_code!=undefined)?window.isgeoipapi_dma_code:'';
    iivar.GeoAc = (window.isgeoipapi_area_code!=undefined)?window.isgeoipapi_area_code:'';
    iivar.GeoLa = (window.isgeoipapi_latitude!=undefined)?window.isgeoipapi_latitude:'';
    iivar.GeoLo = (window.isgeoipapi_longitude!=undefined)?window.isgeoipapi_longitude:'';
    iivar.GeoIs = (window.isgeoipapi_isp!=undefined)?window.isgeoipapi_isp:'';
    iivar.GeoOr = (window.isgeoipapi_organization!=undefined)?window.isgeoipapi_organization:'';
	//tfs end

    ii_upGSV('GeoIP',window.isgeoipapi_ip_addr);
    ii_upGSV('GeoCo',(window.isgeoipapi_country_code!=undefined)?window.isgeoipapi_country_code:'');
    ii_upGSV('GeoRg',(window.isgeoipapi_region!=undefined)?window.isgeoipapi_region:'');
    ii_upGSV('GeoCt',(window.isgeoipapi_city!=undefined)?window.isgeoipapi_city:'');
    ii_upGSV('GeoNs',(window.isgeoipapi_netspeed!=undefined)?window.isgeoipapi_netspeed:'');
    ii_upGSV('GeoDm',(window.isgeoipapi_domain!=undefined)?window.isgeoipapi_domain:'');

    //tfs start
    ii_upGSV('GeoCc',(window.isgeoipapi_continent_code!=undefined)?window.isgeoipapi_continent_code:'');
    ii_upGSV('GeoCn',(window.isgeoipapi_country_name!=undefined)?window.isgeoipapi_country_name:'');
    ii_upGSV('GeoDa',(window.isgeoipapi_dma_code!=undefined)?window.isgeoipapi_dma_code:'');
    ii_upGSV('GeoAc',(window.isgeoipapi_area_code!=undefined)?window.isgeoipapi_area_code:'');
    ii_upGSV('GeoLa',(window.isgeoipapi_latitude!=undefined)?window.isgeoipapi_latitude:'');
    ii_upGSV('GeoLo',(window.isgeoipapi_longitude!=undefined)?window.isgeoipapi_longitude:'');
    ii_upGSV('GeoIs',(window.isgeoipapi_isp!=undefined)?window.isgeoipapi_isp:'');
    ii_upGSV('GeoOr',(window.isgeoipapi_organization!=undefined)?window.isgeoipapi_organization:'');
    //tfs end
    // load gsv cookie settings into local variables for performance
  }
  
  if (iivar.geoip==null && iivar.geoinit==1)
  {
    // load gsv cookie settings into local variables for performance
    iivar.geoip = ii_getGSV("GeoIP");
    iivar.geoco = ii_getGSV("GeoCo");
    iivar.georg = ii_getGSV("GeoRg");
    iivar.geoct = ii_getGSV("GeoCt");
    iivar.geons = ii_getGSV("GeoNs");
    iivar.geodm = ii_getGSV("GeoDm");
	//tfs start
    iivar.GeoCc = ii_getGSV("GeoCc");
    iivar.GeoCn = ii_getGSV("GeoCn");
    iivar.GeoDa = ii_getGSV("GeoDa");
    iivar.GeoAc = ii_getGSV("GeoAc");
    iivar.GeoLa = ii_getGSV("GeoLa");
    iivar.GeoLo = ii_getGSV("GeoLo");
    iivar.GeoIs = ii_getGSV("GeoIs");
    iivar.GeoOr = ii_getGSV("GeoOr");
	//tfs end
  }
}
//geo data


function ii_getIPRange(iprange)
{
  var arr = null;
  var m = ii_matchRegExp(iprange,"^([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})(\\/([0-1]?[0-9]?|[1-2][0-9]|3[0-2]))?$"); 
  if (m != null)
  {
    var m2 = ii_matchRegExp(m[1],"^(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)$");
    if (m2[1] != null && m2[1] <= 255 && m2[2] <= 255 &&  m2[3] <= 255 && m2[4] <= 255)
      arr = [ m[1], (m[2] == undefined || m[2] == '') ? '32' : m[3] ];
  }
  return(arr);
}
function ii_ipCheck(ip,ruleip,ruleipmask)
{
  var ipa = ip.split("."); 
  var x = (ipa[0] * 16777216) + (ipa[1] * 65536) + (ipa[2] * 256) + (ipa[3] * 1);
  var ruleipa = ruleip.split("."); 
  var y = (ruleipa[0] * 16777216) + (ruleipa[1] * 65536) + (ruleipa[2] * 256) + (ruleipa[3] * 1);
  var mask = ((4294967295 << (32 - ruleipmask)) & 4294967295);
  return ((x & mask) == (y & mask));
}

//  Availability Check
function ii_doAvailCheck(checkopt,state,deptid,isabandon)
{
  var iivar = ii_Var;
  var img = (isabandon ? iivar.abavailImg : iivar.availImg);
  if (checkopt==1)
  {
    iivar.checkDeptID = deptid;
    if (deptid == -2) 
      deptid = 'Default';
  }    
  else
  {
    // deptid stored in page js var
    if (typeof(window[deptid]) != "undefined")
    {
      iivar.checkDeptID = window[deptid];
      deptid = window[deptid];
      if (deptid == "-2") 
        deptid = 'Default';      
    }
    else
    {
      ii_noshow();    
      return;
    }
  } 
  if(tfs_debug > 0)
  {
	  alert("Rule " + ii_Var.trigru + " triggered. Checking " + (iivar.checkState==2?'un':'') + "availability of dept. " + deptid);
  }

  iivar.checkState = state;
  for (var i=0;i<iivar.deptavail.length;i++)
  {
    if (iivar.deptavail[i][0]==iivar.checkDeptID)
    {
      if (iivar.deptavail[i][1] == iivar.checkState)      
        setTimeout("availOnLoad(null)",500);
      else
        setTimeout("availOnError(null)",500);
      return;
    }
  }
  var timestamp = parseInt(new Date().getTime()/1000);
  var imgsrc = (iivar.checkState==2?'un':'')+"available.gif";
  img.src = ii_getProtocol() + '://'+iivar.rsvr+'/resources/smartbutton/' + iivar.accountid + '/' + deptid + '/' + imgsrc + '?src=ii3&ts=' + timestamp;
}
function availOnLoad(evt)
{
  var iivar = ii_Var;
  var found = false;
  if(tfs_debug > 0)
  {
	  alert(ii_Var.trigru + " triggered. Dept (" + iivar.checkDeptID + ") condition satisfied");
  }
  for (var i=0;i<iivar.deptavail.length;i++)
  {
    if (iivar.deptavail[i][0]==iivar.checkDeptID)
    {
      iivar.deptavail[i][1] = iivar.checkState;
      found = true;
      break;
    }
  }
  if (!found) 
    iivar.deptavail[iivar.deptavail.length] = [iivar.checkDeptID,iivar.checkState];

  iivar.checkDeptID = 0;
  iivar.checkState = 0;

  if (evt == null || this == iivar.availImg)
    ii_show();
}
function availOnError(evt)
{
  var iivar = ii_Var;
  var found = false;
  if(tfs_debug > 0)
  {
	  alert(ii_Var.trigru + " triggered. Dept (" + iivar.checkDeptID + ") condition NOT satisfied");
  }
  for (var i=0;i<iivar.deptavail.length;i++)
  {
    if (iivar.deptavail[i][0]==iivar.checkDeptID)
    {
      iivar.deptavail[i][1] = (iivar.checkState==2?1:2);
      found = true;
      break;
    }
  }
  if (!found) 
    iivar.deptavail[iivar.deptavail.length] = [iivar.checkDeptID,(iivar.checkState==2?1:2)];

  iivar.checkDeptID = 0;
  iivar.checkState = 0;

  if (evt == null || this == iivar.availImg)
    ii_noshow();
}

//  Invitation Display
function ii_noshow()
{
  var iivar = ii_Var;
  if (iivar.trigru > 0)
  {
    var rule = ii_getRuleOrInv(ii_Rules,iivar.trigru);
    
    if (rule[9]==1) 
      ii_executeRuleTriggeredEvent(rule[10],rule[11],rule[12],rule[0],rule[4]);

    if (rule[3]>=2)
    {
      if (window.ISVT_onInviteNotOffered && rule[2]!=0) 
        ISVT_onInviteNotOffered(iivar.trigru,rule[2]);
      ii_stop();
    }
    else
    {
      ii_continue(iivar.evalidx,100);
    }
  }
}
function ii_show()
{
  var iivar = ii_Var;
  if (iivar.trigru > 0)
  {
    var rule = ii_getRuleOrInv(ii_Rules,iivar.trigru);
    var inv = ii_getRuleOrInv(ii_Inv,rule[2]);
    if (rule[9]==1) 
      ii_executeRuleTriggeredEvent(rule[10],rule[11],rule[12],rule[0],rule[4]);    
          
    if (inv != null)
    {
      iivar.invtoshow = inv[0];

      if (inv[2] == 3)
      {
        // javascript alert
        ii_display();
      }
      else
      {
        // pre-load images
        var ii_img1=null;
        var ii_img2=null;
        var ii_img3=null;
        if (navigator.appName.indexOf("Microsoft") != -1 && navigator.platform.indexOf("Mac") != -1)
        { 
          ii_img1 = document.createElement('IMG');
          ii_img2 = document.createElement('IMG');
          ii_img3 = document.createElement('IMG'); 
        }
        else
        { 
          ii_img1 = new Image();
          ii_img2 = new Image();
          ii_img3 = new Image(); 
        }
        if (inv[15].length>0) ii_img2.src = inv[15];
        if (inv[23].length>0) ii_img3.src = inv[23];
        ii_img1.onload = function (evt) { this.onload=null; ii_display(); }
        ii_img1.src = inv[10];
      }
    }
    else 
    {
      if (rule[3]==1 || rule[1]==3)
        ii_continue(iivar.evalidx,100); 
      else 
        ii_stop();
    }
  }
}
function ii_display()
{
  var ii_HIDEDIV = 'ii_div_hide(\u0027[%0]\u0027,\u0027[%1]\u0027,[%2],[%3],[%4]);';
  var ii_HIDEPOP = 'self.close();';
  var ii_POPSCR1 = 'var ii_IE=!!(document.all&&document.getElementById);var ii_MZ=(!ii_IE)?!!(document.getElementById):false;var ii_gpop = true;function ii_callServer(id,scr) {  var win = (ii_callServer.arguments.length==3) ? ii_callServer.arguments[2] : window;var head = win.document.getElementsByTagName(\u0027head\u0027).item(0); var old = win.document.getElementById(id);  if (old) head.removeChild(old);  script = document.createElement(\u0027script\u0027);  script.src = scr;  script.type = \u0027text/javascript\u0027;  script.defer = true;  script.id = id;  void(head.appendChild(script));}\r\n';
  var ii_POPSCR2 = 'function ii_executeInvitationAcceptedEvent(param1,param2,param3){var js=ii_invTokenReplace(ii_custacc,ii_inv[0],ii_inv[1]);eval(js);}\r\n';
  var ii_POPSCR3 = 'function ii_executeInvitationDeclinedEvent(param1,param2,param3){var js=ii_invTokenReplace(ii_custdecl,ii_inv[0],ii_inv[1]);eval(js);}\r\n';
  var ii_POPSCR4 = 'function ii_invTokenReplace(js,arg3,arg4) { arg4 = arg4.replace(/\\u0027/g,\u0027\\\\\\\'\u0027);js=js.replace(/\\[\\%INVITATIONID\\%\\]/g,arg3);js=js.replace(/\\[\\%INVITATIONNAME\\%\\]/g,arg4);return(js);}\r\n';
  var ii_POPSCR5 = 'var ii_inv;var ii_custacc;var ii_custdecl;';
  var ii_EVENTA = 'ii_executeInvitationAcceptedEvent(\u0027[%0]\u0027,\u0027[%1]\u0027,\u0027[%2]\u0027,\u0027[%3]\u0027,\u0027[%4]\u0027);\r\n';
  var ii_EVENTD = 'ii_executeInvitationDeclinedEvent(\u0027[%0]\u0027,\u0027[%1]\u0027,\u0027[%2]\u0027,\u0027[%3]\u0027,\u0027[%4]\u0027);\r\n';
  var ii_TRACK = 'var op=window;if (window.ii_gpop) { if (window.opener&amp;&amp;!window.opener.closed)op=window.opener;else op=null; }';
  var ii_TRACKA = 'if (op!=null&amp;&amp;op.ISVT_onInviteAccepted) op.ISVT_onInviteAccepted(\u0027[%0]\u0027,\u0027[%1]\u0027);';
  var ii_TRACKD = 'if (op!=null&amp;&amp;op.ISVT_onInviteDeclined) op.ISVT_onInviteDeclined(\u0027[%0]\u0027,\u0027[%1]\u0027);';
  var ii_POPACC = 'if (op!=null) {op.ii_upHLArr(op.ii_Var.ihl,op.ii_Var.invtoshow,2); op.ii_wrapHL(); }';
  var ii_POPDECL = 'if (op!=null) {op.ii_upHLArr(op.ii_Var.ihl,op.ii_Var.invtoshow,3); op.ii_wrapHL(); }';  
  var ii_BKGRND = '\u003cimg src=\u0022[%0]\u0022 alt="" style=\u0022left:0px;top:0px;width:[%1]px;height:[%2]px;\u0022/\u003e';
  var ii_INPLYR = '\u003cdiv id=\u0022[%0]\u0022 style=\u0022position:absolute;left:[%1]px;top:[%2]px;\u0022\u003e';
  var ii_INPIMG = '\u003cimg src=\u0022[%0]\u0022 alt="" style=\u0022top:0px;left:0px;\u0022 onclick=\u0022[%1][%2][%3][%4]\u0022 onmouseover=\u0022this.style.cursor=\u0027pointer\u0027\u0022 onmouseout=\u0022this.style.cursor=\u0027\u0027\u0022/\u003e';
  var ii_INPFRM = '\u003cform name=\u0022[%0]\u0022 method=\u0022post\u0022 action=\u0022\u0022\u003e\u003cinput style=\u0022font:normal 11px Arial, Helvetica, sans-serif;text-align:center;background-color:#E4E4E4;color:#000000;\u0022 type=\u0022button\u0022 name=\u0022[%1]\u0022 value=\u0022[%2]\u0022 onclick=\u0022[%3][%4][%5][%6]\u0022/\u003e\u003c/form\u003e';
  var ii_POPCL = 'window.open(\u0027[%0]\u0027,\u0027chatclient\u0027,\u0027width=[%1],height=[%2],scrollbars=0\u0027);';
  //tfs start
  if(window.ii_247Var)
  {
	ii_247Var.Parseaccurl();
	ii_POPCL = "ii_247Var.onAcc();";
  }
  //tfs end

  var ii_ORIGCL = 'if (op!=null) op.document.location=\u0027[%0]\u0027;';
  
  var iivar = ii_Var;
  var out = '';
  var popcl = '';
  var inv = ii_getRuleOrInv(ii_Inv,iivar.invtoshow);
  var rule = ii_getRuleOrInv(ii_Rules,iivar.trigru);

  // update offered stats
  ii_upHLArr(iivar.ihl,inv[0],1);
  ii_upHLArr(iivar.ihl,inv[0],4);
  ii_wrapHL();

  ii_executeInvitationOfferedEvent(inv[25],inv[26],inv[27],inv[0],inv[1]);
  if (window.ISVT_onInviteOffered) 
    ISVT_onInviteOffered(iivar.trigru,iivar.invtoshow);

  iivar.evalru[ii_getRuleOrInvIdx(ii_Rules,iivar.trigru)][4] = ii_getRuleOrInvIdx(ii_Inv,iivar.invtoshow);
    
  if (inv[2] == 1 || inv[2] == 2)
  {
    out += "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n";
    out += "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n";
    out += '<head>\r\n<title></title>\r\n';
    if (inv[2] == 2)
    {
      out += iivar.scrinc + '\r\n';
      out += '<script type=\"text/javascript\">\r\n//<![CDATA[\r\n';
      out += ii_POPSCR1 + ii_POPSCR2 + ii_POPSCR3 + ii_POPSCR4 + ii_POPSCR5;
      out += '\r\n//]]>\r\n</script>\r\n';
    }
    out += '</head>\r\n<body style="margin-left:0px;margin-top:0px;"><div id="iibody" style="position:relative;">\r\n';
    out += ii_rt(ii_BKGRND,inv,[ii_encodeHTML(inv[10],0),11,12],1);
    out += ii_rt(ii_INPLYR,inv,['iiacc',13,14],1);
  
    var event = ii_rt(ii_EVENTA,inv,[ii_encodeHTML(inv[28],1),ii_encodeHTML(inv[29],1),ii_encodeHTML(inv[30],1),0,ii_encodeHTML(inv[1],1)],1);
    var track = ii_TRACK + ii_rt(ii_TRACKA,inv,[0,''+rule[8]],1);
    var hide = '';
    if (inv[2] == 1) hide = ii_rt(ii_HIDEDIV,inv,[4,'aclk',7,(inv[9]==1?'-3':'0'),0],1);
    else hide = ii_POPACC + ii_HIDEPOP;
    var accurl = ii_encodeHTML(ii_parsejs(inv[17]),0);    
    if (inv[18]==1) popcl = ii_rt(ii_POPCL,inv,[accurl,19,20],1); 
    else if (inv[18]==2) popcl = ii_rt(ii_ORIGCL,inv,[accurl],1); 
    if (inv[15].length > 0) out += ii_rt(ii_INPIMG,inv,[15,event,track,popcl,hide],0);
    else if (inv[16].length > 0) out += ii_rt(ii_INPFRM,inv,['iiaccfrm','iiaccbtn',ii_encodeHTML(inv[16],0),event,track,popcl,hide],0);
  
    out += '</div>';
    out += ii_rt(ii_INPLYR,inv,['iidecl',21,22],1);
  
    event = ii_rt(ii_EVENTD,inv,[ii_encodeHTML(inv[31],1),ii_encodeHTML(inv[32],1),ii_encodeHTML(inv[33],1),0,ii_encodeHTML(inv[1],1)],1);
    track = ii_TRACK + ii_rt(ii_TRACKD,inv,[0,''+rule[8]],1);
    var hide = '';
    if (inv[2] == 1) hide = ii_rt(ii_HIDEDIV,inv,[4,'dclk',8,(inv[9]==1?'-3':'0'),0],1);
    else hide = ii_POPDECL + ii_HIDEPOP;
    if (inv[23].length > 0) out += ii_rt(ii_INPIMG,inv,[23,event,track,hide,''],0);
    else if (inv[24].length > 0) out += ii_rt(ii_INPFRM,inv,['iideclfrm','iideclbtn',ii_encodeHTML(inv[24],0),event,track,hide,''],0);

    out += '</div></div></body></html>';

    if (inv[2] == 1)
    {
      if (inv[4]=='invitelayer')
      {
        // animated div 
        var invlayer=document.getElementById(inv[4]);
        var divRef = document.getElementById('invitelayercontent');
        var ifrRef = document.getElementById('divshim');
        ii_Anim = new ii_AnimObj();
        ii_Anim.islteIE6 = (ifrRef == null ? false : true);
        ii_Anim.flx=10;
        ii_Anim.fly=10;
        ii_Anim.flw=inv[11];
        ii_Anim.flh=inv[12];
        ii_Anim.flpos=inv[5];
        ii_Anim.flopac=(inv[9]==1?0:100);
        ii_Anim.flfade=(inv[9]==1?3:0);
        invlayer.style.width=ii_Anim.flw;
        invlayer.style.height=ii_Anim.flh;
        divRef.style.display = 'block';
        divRef.innerHTML = out;
        divRef.childNodes[0].data = '';

        if (ii_Anim.islteIE6)
        {
          ifrRef.style.display = 'block';
          ifrRef.style.width = ii_Anim.flw+'px';
          ifrRef.style.height = ii_Anim.flh+'px';
          ifrRef.style.top = '0px';
          ifrRef.style.left = '0px';
          ifrRef.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
          ifrRef.style.zIndex = divRef.style.zIndex-1;
        }
        else
        {
          invlayer.style.filter='alpha(opacity=0);-moz-opacity:0.0;';
        }
        
        ii_mark();
        window.onresize=ii_mark;
        ii_reset();
        ii_Anim.moveTimer=setInterval('ii_move();',25);
        setTimeout("document.getElementById('"+inv[4]+"').style.visibility='visible'", 40);
        ii_Anim.flpos=inv[6];
        ii_mark();
        
        ii_Anim.hideTimer=setTimeout("ii_div_hide('"+inv[4]+"','auto',"+inv[8]+","+(inv[9]==1?-3:0)+","+inv[0]+");",(inv[7]*1000));
      }
      else
      {
        // custom div 
        divRef = document.getElementById(inv[4]);
        if (divRef)
        {
          divRef.innerHTML = out;
          divRef.style.visibility = 'visible';
        }
      }
    }
    else if (inv[2]==2)
    {
      // popup
      var win=window.open('','InstantInvite','width='+inv[11]+',height='+inv[12]);
      if (win) { win.document.close(); win.document.write( out ); win.document.close(); win.ii_inv = inv; win.ii_custacc = iivar.CustomAcceptedJS; win.ii_custdecl = iivar.CustomDeclinedJS; win.focus(); }
    }
  }
  
  if (inv[2] == 3)
  {
    // javascript confirm
    if (confirm(inv[3]))
    {
      ii_executeInvitationAcceptedEvent(inv[28],inv[29],inv[30],inv[0],inv[1]);
      if (window.ISVT_onInviteAccepted) 
        ISVT_onInviteAccepted(iivar.invtoshow,rule[8]);
        
      ii_upHLArr(iivar.ihl,iivar.invtoshow,2); 
      ii_wrapHL();        
        
      var accurl = ii_parsejs(inv[17]);    
      if (inv[18]==1)
        window.open(accurl,'InstantInvite','width='+inv[19]+',height='+inv[20]+'');
      else if (inv[18]==2)
        document.location=accurl;
    }
    else
    {
      ii_executeInvitationDeclinedEvent(inv[31],inv[32],inv[33],inv[0],inv[1]);
      if (window.ISVT_onInviteDeclined) 
        ISVT_onInviteDeclined(iivar.invtoshow,rule[8]);
        
      ii_upHLArr(iivar.ihl,iivar.invtoshow,3); 
      ii_wrapHL();        
    }
  }
  
  if (rule[3]==1 || rule[3]==3)
    ii_continue(iivar.evalidx,100);
  else
    ii_stop();
}
function ii_rt(s,inv,va,enc)
{
  for (var i=0;i<va.length;i++)
  {
    if (typeof(va[i]) == 'number')
    {
      if (enc == 1) s = s.replace('[%'+i+']',(''+inv[va[i]]).replace(/\u0027/g,'\\\''));
      else s = s.replace('[%'+i+']',inv[va[i]]);
    }
    else 
    {
      if (enc == 1) s = s.replace('[%'+i+']',va[i].replace(/\u0027/g,'\\\''));
      else s = s.replace('[%'+i+']',va[i]);
    }
  }
  return(s);
}
function ii_parsejs(s)
{
  var regexp = /\[\%jsvar\:([a-zA-Z_\.]*)\%\]/;
  var match = regexp.exec(s);
  while (match != null)
  {
    result = eval("'"+window.ii_jsvar[match[1]]+"'");
    s = s.replace(/\[\%jsvar\:([a-zA-Z_\.]*)\%\]/, result);
    match = regexp.exec(s);
  }
  return(s);
}
function ii_div_hide(layer,action,pos,fade,invid)
{ 
  var iivar = ii_Var;
  if (invid == iivar.lastinvhid) return;  // don't allow hide to occur more than once
  iivar.lastinvhid = invid;
  var bAnim = (layer == 'invitelayer');
  if (bAnim) clearTimeout(ii_Anim.hideTimer);
  if (action=="auto"||action=="aclk"||action=="dclk")
  {
    if (action=="aclk")
	{
		ii_upHLArr(iivar.ihl,invid,2);
		ii_wrapHL();
		//tfs start
		clearInterval(ii_Anim.moveTimer);
		//tfs end
	}
    if (action=="dclk") { ii_upHLArr(iivar.ihl,invid,3); ii_wrapHL(); }
	//tfs start
	if(action == "auto")
	{
		if(window.ii_247Var)
		{
			if(ii_247Var.OnInvitationIgnored)
			{
				ii_247Var.OnInvitationIgnored();
			}
		}
	}
	//tfs end
    if (bAnim && pos > 0) { ii_Anim.flpos=pos;ii_Anim.flfade=fade;ii_mark(); }
    if (bAnim) setTimeout('ii_div_clear(\''+layer+'\');',(action=="auto")?1000:500);
  }
}
function ii_div_clear(layer)
{
  document.getElementById(layer).style.visibility='hidden';
  clearInterval(ii_Anim.moveTimer);
}

//  Abandonment
function ii_trap()
{
  var iivar = ii_Var;
  iivar.abshown = true;
  this.onbeforeunload=null;
  if (iivar.abdeptcheck != 0)
  {
    for (var i=0;i<iivar.deptavail.length;i++)
    {
      if (iivar.deptavail[i][0] == iivar.abdeptcheck)
      {
        if (iivar.deptavail[i][1] == iivar.abcheckstate)
          return iivar.abmsg;
      }
    }
    return;
  }
  return iivar.abmsg;
}
function ii_delay_abandon(e) 
{
  window.onbeforeunload = null;
  var ii_timer = setTimeout('window.onbeforeunload=ii_trap;', 2000);
  var ii_el = null;

  if (!e)
    var e = window.event;
  if (e.target)
    ii_el = e.target;
  else if (e.srcElement)
    ii_el = e.srcElement;
  if (ii_el.nodeType == 3) // for safari
    ii_el = ii_el.parentNode;

  if (ii_el != null)
  {
    var ii_tagname = ii_el.tagName;
    if (ii_tagname != null)
    {
      ii_tagname = ii_tagname.toLowerCase();
      if (ii_tagname == "a" || ii_tagname == "area" || ii_tagname == "img")
      {
        clearTimeout(ii_timer);
      }
      else if (ii_tagname == "input")
      {
        if (ii_el.getAttribute)
        {
          var ii_type = ii_el.getAttribute("type");
          if (ii_type != null)
          {
            ii_type = ii_type.toLowerCase();
            if (ii_type == "image" ||ii_type == "submit" || ii_type == "button")
              clearTimeout(ii_timer);
          }
        }
      }
    }
  }
  return true;
}

//  Engine
function ii_checkRules(evalidx)
{
  var iivar = ii_Var;
  
  if (evalidx == 0) 
    iivar.runcnt++;
  
  // check for abandon flag on page enter
  if (iivar.abshown == true && iivar.abflag != 9999)
  {
    iivar.trigru = ii_Rules[parseInt(iivar.abflag,10)][0];
    
    iivar.evalru[parseInt(iivar.abflag,10)][2] = 2;
    iivar.evalru[parseInt(iivar.abflag,10)][3] = iivar.trigrucnt++;

    // cancel abandonment setup
    iivar.abflag = 9999;
    window.onbeforeunload=null; 
    iivar.abmsg = null;
    iivar.abdeptcheck = 0;
    iivar.abcheckstate = 0;
    document.onclick=null;
    return;
  }
  
  var cmpl = 0;
  for (var idx=evalidx;idx<ii_Rules.length;idx++)
  {
    iivar.evalidx = idx;
    
    // see if rule is disabled or if it's already been triggered and skip
    if (iivar.evalru[idx][2]==0 || iivar.evalru[idx][3]>0) 
    {
      cmpl++;
      continue;
    }
    else
    { 
      iivar.evalru[idx][2] = 2;
    }
        
    // check conditions
    var bTrig = true;    
    var condArr = ii_Rules[idx][5];
    for (var idx2=0;idx2<condArr.length;idx2++)
    {
      // conditionState:  0=not checked, 1=true, 2=false, 3=pending (abandonment)   
      var conditionState = 2; 
      var c = condArr[idx2].split('`');
      switch(c[0])
      {
        case '1': 
          if (iivar.pgvis == 1) conditionState = 1; 
          break;
        case '2': 
          if (!iivar.abshown)
          {
            iivar.abmsg = c[1];
            window.onbeforeunload=ii_trap; 
            if (iivar.IE) document.onclick=ii_delay_abandon;          
            else if (iivar.MZ) window.captureEvents(Event.CLICK);window.onclick = ii_delay_abandon;
            iivar.abflag = idx;
            conditionState = 3;
            
            if (iivar.runcnt == 1 && ii_Rules[idx][6] == 1)
            {
              iivar.abdeptcheck = ii_Rules[idx][8];
              iivar.abcheckstate = ii_Rules[idx][7];
              ii_doAvailCheck(1,ii_Rules[idx][7],ii_Rules[idx][8],true);
            }
          }
          break;
        case '3': 
          if (ii_compOp(iivar.pgvis,c[1],c[2],c[3],0)) 
            conditionState = 1; 
          break;
        case '4': 
          if ((c[2]==7 || c[2]==9) && ii_contains(iivar.cpml,c[1]) && !ii_contains(iivar.stringNoContain,c[1]) &&
              ii_compOp(ii_getHLArr(iivar.phl,c[1],1),c[4],c[5],c[6],0)) 
          {
            conditionState = 1; 
          }
          else if (c[2]==8 && ii_contains(iivar.cpml,c[1]) && ii_contains(iivar.stringNoContain,c[1]) &&
                   ii_compOp(ii_getHLArr(iivar.phl,c[1],2),c[4],c[5],c[6],0))
          { 
            conditionState = 1;
          }
          break;
        case '5': 
          if (ii_compOp(iivar.randid,c[1],c[2],c[3],0) && ii_compOp(iivar.randid,c[4],c[5],c[6],0)) conditionState = 1; 
          break;
        case '10':
          if ((c[2]==7 || c[2]==9) && ii_contains(iivar.ppml,c[1]) && !ii_contains(iivar.stringNoContain,c[1]))
          { 
            conditionState = 1;
          }
          else if (c[2]==8 && ii_contains(iivar.ppml,c[1]) && ii_contains(iivar.stringNoContain,c[1]))
          { 
            conditionState = 1;
          }
          break;
        case '11': 
          if ((c[2]==7 || c[2]==9) && !ii_contains(iivar.stringNoContain,c[1]) &&
              ii_compOp(iivar.referrer,iivar.urlStrings[c[1]],c[2],c[3],1))
          { 
            conditionState = 1;
          }
          else if (c[2]==8 && ii_contains(iivar.stringNoContain,c[1]) &&
                   ii_compOp(iivar.referrer,iivar.urlStrings[c[1]],c[2],c[3],1))
          { 
            conditionState = 1;
          }
          break;
        case '12':
          if ((c[2]==7 || c[2]==9) && !ii_contains(iivar.stringNoContain,c[1]))
          {
            for (var idx3=0;idx3<iivar.phl.length;idx3++)
            {
              var cnt = ii_getHLArr(iivar.phl,c[1],1);
              if (cnt != null && cnt > 0)
              { 
                if (!ii_contains(iivar.cpml,c[1]) || cnt > 1)
                  conditionState = 1;
                break;
              }
            }
          }
          else if (c[2]==8 && ii_contains(iivar.stringNoContain,c[1]))
          { 
            for (var idx3=0;idx3<iivar.phl.length;idx3++)
            {
              var cnt = ii_getHLArr(iivar.phl,c[1],2);
              if (cnt != null && cnt > 0)
              { 
                if (!ii_contains(iivar.cpml,c[1]) || cnt > 1)
                  conditionState = 1;
                break;
              }
            }
          }
          break;
        case '30':
          if (iivar.geoinit==1)
          {
            if ((c[2]==9 && ii_matchRegExp(iivar.geoip,c[1])) ||
                ((c[2]==7 || c[2]==8) && ii_compOp(iivar.geoip,c[1],c[2],0,1)))
            { 
              conditionState = 1;
            }
            else if (c[2]==1 || c[2]==2)
            {  
              var found = false;
              var ips = ii_extractStrings(c[1]);
              for (var idx3=0;idx3<ips.length;idx3++)
              {
                var arrNet = ii_getIPRange(ips[idx3]);
                if (arrNet != null)
                {
                  if (ii_ipCheck(iivar.geoip,arrNet[0],arrNet[1]))
                    found = true;
                }
              }
              if (c[2]==1 && found) conditionState = 1;
              else if (c[2]==2 && !found) conditionState = 1;
            }
          }
          else if (iivar.gsvr.length == 0)
          {
            conditionState = 1;
          }
          break; 
        case '31':case '32':case '33':case '34':case '35':
          if (iivar.geoinit==1)
          {
            var geostr = '';
            if (c[0] == '31') geostr = iivar.geoco;
            else if (c[0] == '32') geostr = iivar.georg;
            else if (c[0] == '33') geostr = iivar.geoct;
            else if (c[0] == '34') geostr = iivar.geons;
            else if (c[0] == '35') geostr = iivar.geodm;
            
            if (ii_compOp(geostr,c[1],c[2],0,1))
            {
              conditionState = 1;
              break;
            }
          }
          else if (iivar.gsvr.length == 0)
          {
            conditionState = 1;
          }
          break;
        case '50':case '51': 
          var tm = parseInt(new Date().getTime()/1000);
          var cktime = ( c[0] == '50' ? iivar.tmentpg : parseInt(iivar.tmes,10) );
          var threshold = parseInt(c[1],10);
          if (ii_compOp(tm-cktime,threshold,c[2],c[3],0)) conditionState = 1;
          break;
        case '70': 
          var decl = ii_getHLArr(iivar.ihl,ii_Rules[idx][2],3);
          if (decl==null||decl==0) conditionState = 1;
          break;
        case '71':
          var decl = 0;
          for (var idx3=0;idx3<iivar.ihl.length;idx3++) 
          {
            if (!isNaN(parseInt(iivar.ihl[idx3][3],10))) 
              decl += parseInt(iivar.ihl[idx3][3],10);
          }
          if (decl==0) conditionState = 1;
          break;
        case '72':
          var off = ii_getHLArr(iivar.ihl,ii_Rules[idx][2],1);
          if (off==null) off = 0;
          if (ii_compOp(off,c[1],c[2],c[3],0)) conditionState = 1;
          break;
        case '73':
          var off = 0;
          for (var idx3=0;idx3<iivar.ihl.length;idx3++) 
          { 
            if (!isNaN(parseInt(iivar.ihl[idx3][1],10))) 
              off += parseInt(iivar.ihl[idx3][1],10);
          }
          if (ii_compOp(off,c[1],c[2],c[3],0)) conditionState = 1;
          break;
        case '74':
          var tm = parseInt(new Date().getTime()/1000);
          var threshold = parseInt(c[1],10);
          var ts = ii_getHLArr(iivar.ihl,ii_Rules[idx][2],4);
          if (ts==null||ii_compOp(threshold,tm-ts,c[2],c[3],0)) conditionState = 1;
          break;
        case '75':
          var tm = parseInt(new Date().getTime()/1000);
          var threshold = parseInt(c[1],10);
          var conditionState = 1;
          for (var idx3=0;idx3<iivar.ihl.length;idx3++)
          {
            var ts = iivar.ihl[idx3][4];
            if (ts!=null&&ii_compOp(tm-ts,threshold,c[2],c[3],0))
            { 
              conditionState = 2;
              break;
            }
          }
          break;
        case '76': 
          var acc = ii_getHLArr(iivar.ihl,ii_Rules[idx][2],2);
          if (acc==null||acc==0) conditionState = 1;
          break;
        case '77':
          var acc = 0;
          for (var idx3=0;idx3<iivar.ihl.length;idx3++) 
          {
            if (!isNaN(parseInt(iivar.ihl[idx3][2],10))) 
              acc += parseInt(iivar.ihl[idx3][2],10);
          }
          if (acc==0) conditionState = 1;
          break;
        case '80':case '81':case '82':
          var cv = ii_getCookie(c[1]);
          if (c[0]=='80' && (cv==null?(c[4]==0?1:0):(c[4]==1?1:0))) conditionState = 1;        
          if (cv != null)
          {
            if ((c[0]=='81' && ii_compOp(cv,c[4],c[5],c[6],1)) ||
                (c[0]=='82' && !isNaN(cv) && ii_compOp(parseFloat(cv),c[4],c[5],c[6],1)))
            {
              conditionState = 1;
              break;
            }
          }
          break;
        case '90':case '91':case '92':
          var el = ii_validateParam(0,c[1]);
          if (el != null)
          {
            if ((c[0]=='90' && typeof(el)=='string') || (c[0]=='91' && typeof(el)=='number'))
            {
              if ((c[0]=='90' && typeof(el)=='string' && ii_compOp(el,c[4],c[5],c[6],1)) ||
                  (c[0]=='91' && typeof(el)=='number' && ii_compOp(el,c[4],c[5],c[6],1)))
              {
                conditionState = 1;
                break;
              }
            }
            else if ((c[0]=='92') && typeof(el)=='boolean')
            {
              if (ii_compOp(el,(c[4]==0?false:true),1,c[6])) 
                conditionState = 1;
            }
          }
          break;
        case '100':case '101':case '102':case '103':case '104':case '105':case '106':case '107':
          var el = null;
          if (c[0]=='100'||c[0]=='101'||c[0]=='102'||c[0]=='103') el = ii_validateParam(1,c[1]);
          else el = ii_validateParam(2,c[1]);
          
          if (el != null)
          { 
            if ( ((c[0]=='100'||c[0]=='104') && ii_compOp(el.value,c[4],c[5],c[6],1)) || 
                 ((c[0]=='101'||c[0]=='105') && !isNaN(el.value) && ii_compOp(parseFloat(el.value),c[4],c[5],c[6],1)) ||
                 ((c[0]=='102'||c[0]=='106') && ii_compOp((el.checked==true?1:0),c[4],1,c[6],0)) ||
                 ((c[0]=='103'||c[0]=='107') && ii_compOp(el.selectedIndex,c[4],c[5],c[6],1)) )
            {
              conditionState = 1;
            }
          }
          break;
        default: 
      }
      
      iivar.evalru[idx][1][idx2] = conditionState;
      if (conditionState > 1)
      {
        // don't check any more conditions
        bTrig = false;
		if(tfs_debug == 3)
		{
			alert("Rule " + ii_Rules[idx][0] + ' NOT satisfied');
		}
        break; 
      }
    }
    
    if (bTrig)
    {
      iivar.trigru = ii_Rules[idx][0];
      iivar.evalru[idx][3] = ++iivar.trigrucnt;
	  if(tfs_debug == 3)
	  {
		  alert("Rule " + ii_Rules[idx][0] + ' satisfied');
	  }

      // cancel any abandons
      iivar.abflag = 9999;
      window.onbeforeunload=null; 
      iivar.abmsg = null;
      document.onclick=null;
      return;
    }
  }
  
  if (cmpl==ii_Rules.length)
    ii_stop();
  else
    ii_continue(0,2500); 
}
function ii_continue(evalidx,intvl)
{
  setTimeout("ii_restart("+evalidx+");",intvl);
}
function ii_stop()
{
  ii_Var.run = false;
}
function ii_getRuleOrInv(arr,id)
{
  for (var i=0;i<arr.length;i++)
  {
    if (arr[i][0]==id) 
      return(arr[i]);
  }
  return(null);
}
function ii_getRuleOrInvIdx(arr,id)
{
  for (var i=0;i<arr.length;i++)
  {
    if (arr[i][0]==id) 
      return(i);
  }
  return(-1);
}
function ii_compOp(x,y,op,cs,mv)
{
  var arr = [];
  var bflag = false;
  if (mv==1 && op!=9) // using multiple values and is not a regexp
    arr = ii_extractStrings(y);
  else
    arr[0] = y;

  var isxstr = (typeof x == 'string');
  var isystr = (typeof y == 'string');
  
  for (var i=0;i<arr.length;i++)
  {
    if (op==1 && cs==0 && isxstr && isystr) { if (arr[i].toLowerCase() == x.toLowerCase()) { bflag = true; break; } } 
    else if (op==1) { if (arr[i] == x) { bflag = true; break; } } 
    else if (op==2 && cs==0 && isxstr && isystr) { if (arr[i].toLowerCase() != x.toLowerCase()) { bflag = true; } else { bflag = false; break; } } 
    else if (op==2) { if (arr[i] != x) { bflag = true; } else { bflag = false; break; } } 
    else if (op==3) { if (x > arr[i]) { bflag = true; break; } } 
    else if (op==4) { if (x < arr[i]) { bflag = true; break; } } 
    else if (op==5) { if (x <= arr[i]) { bflag = true; break; } }
    else if (op==6) { if (x >= arr[i]) { bflag = true; break; } }
    else if (op==7 && cs==0) { if (x.toLowerCase().indexOf(arr[i].toLowerCase()) != -1) { bflag = true; break; } } 
    else if (op==7 && cs==1) { if (x.indexOf(arr[i]) !=- 1) { bflag = true; break; } }
    else if (op==8 && cs==0) { if (x.toLowerCase().indexOf(arr[i].toLowerCase()) == -1) { bflag = true; } else { bflag = false; break; } }
    else if (op==8 && cs==1) { if (x.indexOf(arr[i]) == -1) { bflag = true; } else { bflag = false; break; } }
    else if (op==9) { if (ii_matchRegExp(x,arr[i]) != null) { bflag = true; break; } }
  }
  return(bflag); 
}
function ii_validateParam(type,param)
{
  // 0=js var, 1=form field, 2=dom id
  if (type==2) return(document.getElementById(param));
  var phead = (type == 0 ? window : window.document);
  
  var evalstr = '';
  
  var a1 = param.split('.');
  for (var i=0;i<a1.length;i++)
  {
    var el = a1[i];
    
    var c = ii_matchRegExp(el,"^([^\\]']*)\\['?([^']*)'?\\]$");
    if (c!= null)
      evalstr += c[1] + "`" + c[2];
    else
      evalstr += el;
      
    if (i < a1.length-1) 
      evalstr += "`";
  }
  
  var result = null;
  var a2 = evalstr.split('`');
  for (var i=0;i<a2.length;i++)
  {
    if (i==0) 
    {
      if (typeof(phead[a2[0]]) == 'undefined') { result = null; break; }
      else { result = phead[a2[0]]; }
    }
    else if (i==1)
    {
      if (typeof(phead[a2[0]][a2[1]]) == 'undefined') { result = null; break; }
      else { result = phead[a2[0]][a2[1]] }
    }
    else if (i==2)
    {
      if (typeof(phead[a2[0]][a2[1]][a2[2]]) == 'undefined') { result = null; break; }
      else { result = phead[a2[0]][a2[1]][a2[2]]; }
    }
    else if (i==3)
    {
      if (typeof(phead[a2[0]][a2[1]][a2[2]][a2[3]]) == 'undefined') { result = null; break; }
      else { result = phead[a2[0]][a2[1]][a2[2]][a2[3]]; }
    }
  }
  return(result);
}
function ii_matchRegExp(s,tok)
{
  var re = ii_Var.tokenizedexps[tok];
  if(!re) re = ii_Var.tokenizedexps[tok] = new RegExp(tok);
  return(re.exec(s));
};

//  Miscellaneous
function ii_contains(p1,p2)
{
  for (var i=0;i<p1.length;i++) 
  {
    if (p1[i] == p2) 
      return true;
  }
  return false;
}
function ii_reverse(p1)
{
  var rev = '';
  if (p1.length > 0)
    rev = p1.split("").reverse().join("");
  return rev;
}
function ii_findMatches(src)
{
  var iivar = ii_Var;
  for (var i=0;i<iivar.urlStrings.length;i++)
  {
    if (!ii_contains(iivar.stringNoContain,i))
    {
      var subarr = (iivar.stringTypes[i] == 2) ? [iivar.urlStrings[i]] : ii_extractStrings(iivar.urlStrings[i]); 
      for (var j=0;j<subarr.length;j++)
      {
        if ((iivar.stringTypes[i] == 0 && src.toLowerCase().indexOf(subarr[j].toLowerCase()) !=-1) ||
            (iivar.stringTypes[i] == 1 && src.indexOf(subarr[j]) != -1) ||
            (iivar.stringTypes[i] == 2 && new RegExp(subarr[j]).exec(src) != null))
        {
          iivar.cpml[iivar.cpml.length] = i;
          ii_upHLArr(iivar.phl,i,1);
          break;
        }
      }
    }
  }
}
function ii_findNoMatches(src)
{
  var iivar = ii_Var;
  for (var i=0;i<iivar.urlStrings.length;i++)
  {
    if (ii_contains(iivar.stringNoContain,i))
    {
      var found = true;
      var subarr = ii_extractStrings(iivar.urlStrings[i]);
      for (var j=0;j<subarr.length;j++)
      {
        if ((iivar.stringTypes[i] == 0 && src.toLowerCase().indexOf(subarr[j].toLowerCase()) != -1) ||
            (iivar.stringTypes[i] == 1 && src.indexOf(subarr[j]) != -1))
        {
          found = false;        
        }
      }
      if (found) 
      {
        iivar.cpml[iivar.cpml.length] = i;
        ii_upHLArr(iivar.phl,i,2);
      }
    }
  }   
}
function ii_extractStrings(x)
{
  var y = (ii_reverse(x).split(/[\s]*,(?!\\)[\s]*/).reverse());
  for (var i=0;i<y.length;i++) 
    y[i] = ii_reverse(y[i]).replace(/\\,/g,',');
  return(y);
}
function ii_decodeHTML(str)
{
  var regex = /&#([0-9a-fA-F]*);/;
  var match = regex.exec(str);
  while (match != null)
  {
    str = str.replace(/&#([0-9a-fA-F])*;/, String.fromCharCode(match[1]));
    var match = regex.exec(str);

  }
  return(str);
}
function ii_encodeHTML(str,esc_apos)
{
  var x = '';
  var y = 0;
  for (var i=0;i<str.length;i++)
  {
    y = str.charCodeAt(i);
    if (y == 39 && esc_apos == 1) x += '\\&#'+y+';';
    else x += '&#'+y+';';
  }
  return(x);
}

//  Events
function ii_invTokenReplace(js,arg3,arg4)
{
  arg4 = arg4.replace(/\u0027/g,'\\\''); 
  js = js.replace(/\[\%INVITATIONID\%\]/g,arg3);
  js = js.replace(/\[\%INVITATIONNAME\%\]/g,arg4);
  return(js);
}
function ii_ruleTokenReplace(js,arg3,arg4)
{
  arg4 = arg4.replace(/\u0027/g,'\\\''); 
  js = js.replace(/\[\%RULEID\%\]/g,arg3);
  js = js.replace(/\[\%RULENAME\%\]/g,arg4);
  return(js);
}
function ii_executeInvitationOfferedEvent(param1,param2,param3) 
{ 
  var arg=ii_executeInvitationOfferedEvent.arguments;
  eval(ii_invTokenReplace(ii_Var.CustomOfferedJS,arg[3],arg[4])); 
}
function ii_executeInvitationAcceptedEvent(param1,param2,param3) 
{ 
  var arg=ii_executeInvitationAcceptedEvent.arguments; 
  eval(ii_invTokenReplace(ii_Var.CustomAcceptedJS,arg[3],arg[4])); 
}
function ii_executeInvitationDeclinedEvent(param1,param2,param3) 
{
  var arg=ii_executeInvitationDeclinedEvent.arguments;
  eval(ii_invTokenReplace(ii_Var.CustomDeclinedJS,arg[3],arg[4])); 
}
function ii_executeRuleTriggeredEvent(param1,param2,param3) 
{ 
  var arg=ii_executeRuleTriggeredEvent.arguments;
  eval(ii_ruleTokenReplace(ii_Var.CustomTriggeredJS,arg[3],arg[4])); 
}

//  Diagnostics
function ii_loadDiag()
{
  var iivar = ii_Var;
  ii_unwrapHL();
  iivar.diag = [ iivar.run, iivar.runcnt, ii_getGSV("TES"), iivar.tmentpg, iivar.pgvis,
    iivar.randid, iivar.abflag, iivar.trigru, iivar.invtoshow, iivar.trigrucnt, iivar.phl, iivar.ihl, 
    iivar.cpml, iivar.ppml, iivar.deptavail, iivar.evalru,  ii_getGSV("GeoIP"), ii_getGSV("GeoCo"), 
    ii_getGSV("GeoRg"),  ii_getGSV("GeoCt"), ii_getGSV("GeoNs"),  ii_getGSV("GeoDm"),
    iivar.publ, iivar.deploy, iivar.domain ];
}
function ii_getDiag(idx) 
{ 
  return(ii_Var.diag[idx]); 
}

//  Setup
function ii_restart(evalidx)
{
  var iivar = ii_Var;
  iivar.trigru = 0;
  
  // geoip setup
  ii_initGeoIP();
  
  // clear eval state prior to start of run
  if (evalidx == 0)
  {
    for (var i=0;i<iivar.evalru.length;i++)
    {
      if (iivar.evalru[i][2] > 1) iivar.evalru[i][2] = 1;
      for (var j=0;j<iivar.evalru[i][1].length;j++)
        iivar.evalru[i][1][j] = 0;
    }
  }

  ii_checkRules(evalidx);

  if (iivar.trigru > 0)
  { 
    var rule = ii_getRuleOrInv(ii_Rules,iivar.trigru);
    if (rule[6]>=1) 
      ii_doAvailCheck(rule[6],rule[7],rule[8],false);
    else 
      ii_show(); // skip availability check
  }
}
function ii_init()
{
  var iivar = ii_Var;
  iivar.deploy = (window.ii_deployment ? window.ii_deployment : ii_getGSV("DPL"));
  if (iivar.deploy > 0 && iivar.jscalled == 0)
  {
    if (iivar.deploy==1) ii_callServer('II3_TestRules.js',ii_getProtocol()+'://'+iivar.rsvr+'/resources/smartbutton/'+iivar.accountid+'/II3_TestRules.js?src=ii3&ts='+iivar.pct);
    if (iivar.deploy==2) ii_callServer('II3_Rules.js',ii_getProtocol()+'://'+iivar.rsvr+'/resources/smartbutton/'+iivar.accountid+'/II3_Rules.js?src=ii3&ts='+iivar.pct);
    iivar.jscalled = 1;
    ii_upGSV("DPL",iivar.deploy);
  }
  
  if (window.ii_Rules && window.ii_Rules.length > 0)
  {
    if (iivar.vtscrloc.length > 0) 
      ii_callServer(iivar.vtscrname,ii_getProtocol()+'://'+iivar.vtscrloc);          
  
    ii_unwrapHL();

    if (iivar.publ != iivar.publishversion)
      ii_resetHistCookie();

    iivar.publ = iivar.publishversion;
    iivar.pgvis = parseInt(iivar.pgvis,10)+1;
    iivar.ppml = iivar.cpml;
    iivar.cpml = [];
    
    if (iivar.randid == 0)
      iivar.randid = Math.floor(Math.random()*100+1);

	if(tfs_debug > 0)
	{
		alert("Random No. = " + iivar.randid);
	}
      
    iivar.tmes  = ii_getGSV("TES");
      
    ii_findMatches(document.location.href);
    ii_findNoMatches(document.location.href);
    
    ii_wrapHL();    

    for (var i=0;i<ii_Rules.length;i++)
    {
      iivar.evalru[i] = [ii_Rules[i][0],new Array(ii_Rules[i][5].length),(ii_Rules[i][1]==0?0:1),0,-1];
      for (var j=0;j<ii_Rules[i][5].length;j++) 
        iivar.evalru[i][1][j] = 0;
    }

    iivar.run = true;
    ii_restart(0);
  } 
  else
  {
    setTimeout('ii_init();',1000);
  }
}
function ii_start()
{
  var iivar = ii_Var;
  if (iivar.IE||iivar.MZ)
  {
    if (document.location.host.indexOf(iivar.domain)!=-1)
    {
      if (iivar.ishosted)
      {
        var ts = (parseInt(new Date().getTime()/1000));
        iivar.pct = ii_getGSV("PCT");
        if ((ts-iivar.cachetimeout)>=iivar.pct) 
        { 
          iivar.pct = ts;
          ii_upGSV("PCT",iivar.pct);
        }

        if (ii_getGSV("DPL")==0)
          ii_callServer('II3_Servers.js',ii_getProtocol()+'://'+iivar.rsvr+'/resources/smartbutton/'+iivar.accountid+'/II3_Servers.js?src=ii3&ts='+ts);
      }

      ii_init();
    }
  }
}

// Declarations
function ii_VarObj() 
{
  this.IE=!!(document.all&&document.getElementById);
  this.MZ=(!this.IE)?!!(document.getElementById):false;

  this.version=14;
  this.accountid = 6384;
  this.ishosted = true;
  this.domain = '';
  this.rsvr = 'rs.instantservice.com';
  this.gsvr = 'gs.instantservice.com';
  this.vtscrname = 'InstantTracking.js';
  this.vtscrloc = '';

  // Session/History Cookies 
  this.GSV_COOKIE = 'IS3_GSV';
  this.HIST_COOKIE = 'IS3_History';
  this.HIST_COOKIE_EXP = new Date();
  if (this.HIST_COOKIE_EXP != null)
    this.HIST_COOKIE_EXP.setTime(this.HIST_COOKIE_EXP.getTime()+(1440*60*1000));
  
  // Page JS vars
  this.run = true;
  this.runcnt = 0;
  this.tmentpg = parseInt(new Date().getTime()/1000);    // time user entered page
  this.trigru = 0;                                       // id of last rule triggered
  this.trigrucnt = 0;                                    // number of rules that have triggered
  this.lastinvhid = 0;                                   // id of last invitation hidden  
  this.invtoshow = 0;
  this.referrer = document.referrer;
  this.evalidx = 0;                       // idx used to keep track of engine state
  this.deptavail = [];                    // department availabilities checked
  this.evalru = [];                       // rules previously evaluated
  this.deploy = 0;
  this.jscalled = 0;
  this.cachetimeout = 300;
  this.geoinit = 0;
  this.geoip = null;
  this.geoco = null;
  this.georg = null;
  this.geoct = null;
  this.geons = null;
  this.geodm = null;
  this.tmes  = null;
  this.diag = [];  
  //tfs start
  this.GeoCc = null;
  this.GeoCn = null;
  this.GeoDa = null;
  this.GeoAc = null;
  this.GeoLa = null;
  this.GeoLo = null;
  this.GeoIs = null;
  this.GeoOr = null;

  //tfs end
  
  // GHV/HL
  this.publ = 0;      // most recent rule publish time
  this.pct = 0;       // timestamp to avoid proxy server caching
  this.pgvis = 0;     // total pages visited
  this.randid = 0;    // random id btwn 1-100
  this.phl  = [];     // page match history list
  this.ihl  = [];     // invitation history list
  this.cpml = [];     // current page match list
  this.ppml = [];     // prev page match list  

  // regular expression cache
  this.tokenizedexps = { };
  
  // Abandonment
  this.abflag=9999;
  this.abshown=false;
  this.abmsg=null;
  this.abdeptcheck=0;
  this.abcheckstate=0;
  
  // Avail Check
  this.availImg=null;
  this.abavailImg=null;
  this.checkDeptID=0;
  this.checkState=0;
  if (navigator.appName.indexOf("Microsoft") != -1 && navigator.platform.indexOf("Mac") != -1)
  {
    this.availImg = document.createElement('IMG');
    this.abavailImg = document.createElement('IMG');
  }
  else
  {
    this.availImg = new Image();
    this.abavailImg = new Image();
  }
  this.availImg.title = 'availimg';
  this.availImg.onload = availOnLoad;
  this.availImg.onerror = availOnError;
  this.abavailImg.title = 'abavailimg';
  this.abavailImg.onload = availOnLoad;
  this.abavailImg.onerror = availOnError;
}

ii_Var = new ii_VarObj();
ii_Var.domain += ii_getDomain();
if (navigator.cookieEnabled)
{ 
  if (ii_getCookie(ii_Var.HIST_COOKIE) == null) ii_resetHistCookie();
  if (ii_getCookie(ii_Var.GSV_COOKIE) == null) ii_resetGSVCookie();
}
//tfs start - moved from original location
if (ii_getGSV("GeoIP")=="*" && ii_Var.gsvr.length > 0)
{
	ii_callServer('geoipAPI.js',ii_getProtocol()+'://'+ii_Var.gsvr+'/geoipAPI.js?src=ii3&ts='+(parseInt(new Date().getTime()/1000)));
}
//tfs end

//
//  Customer Hosted Only (blank if IS-Hosted)
//


//
// Animated DIV Elements
//
document.write('<div id="invitelayer" style="position:absolute;left:10px;top:10px;visibility:hidden;z-index:1000;">');
document.write('<div id="invitelayercontent" style="position:relative;left:0px;top:0px;z-index:100">&nbsp;</div>');
document.write('<!--[if lte IE 6]><iframe id="divshim" src="javascript:\'&lt;html&gt;&lt;/html&gt;\'" scrolling="no" frameborder="0" style="position:absolute;top:0px;left:0px;display:none;"></iframe><![endif]--></div>');

//tfs start
function ii_247cdaObj()
{
	this.iiAvailImg=null;
	this.di = ii_247cdaObj.arguments[0];
	this.availOnLoad = ii_247cdaObj.arguments[1];
	this.availOnError = ii_247cdaObj.arguments[2];

	this.checkDeptAvailability = function()
	{
		var timestamp = parseInt(new Date().getTime()/1000);
		var img = "available.gif";
		if(tfs_debug > 0)
		{
			alert("Account id =  " + ii_Var.accountid + " - checking availability of dept. " + this.di);
		}
		this.iiAvailImg.src = ii_getProtocol() + '://'+ii_Var.rsvr+'/resources/smartbutton/' + ii_Var.accountid + '/' + this.di + '/' + img + '?src=ii3&ts=' + timestamp;
	};

	this.initObj = function()
	{
		if (navigator.appName.indexOf("Microsoft") != -1 && navigator.platform.indexOf("Mac") != -1) 
			this.iiAvailImg = document.createElement('IMG');
		else 
			this.iiAvailImg = new Image();

		this.iiAvailImg.onload = this.availOnLoad;
		this.iiAvailImg.onerror = this.availOnError;
		this.checkDeptAvailability();
	};

	this.initObj();

};

function ii_247VarObj()
{
	this.inviteType = 1;	//1 = Proactive Invite, 2 = Button Invite, 3 = If user declines/ignores a proactive invite show a button invite
	this.biTrigger = 0;	//Button Invite trigger
	this.isct_id = 0;
	this.tmrGeoApi = null;
	this.retryGeo = 3;
	Me = this;
	this.ii_247cda = null;
	this.sb_247cda = null;
	this.userClicked = 0;
	this.TimeToKeep = 60 * 60 * 1000;
	window.ievts247 = "";
	this.ievts247CookieName = "ievts247";		//Distinct Invitation Events
	this.hChildWnd = null;
	this.ErrMsg = "";
	this.accurlqs = "";			//accept url QS
	this.di = 0;	//Dept ID for sb
	this.odi = 0;	//Overflow Dept ID for sb
	this.useOdi = 0;	//common to sb and ii
	this.ii_odi = 0;	//Overflow Dept ID for ii
	this.imgClickToChat = "";
	this.firedRID = 0;
	this.firedIID = 0;
	this.SearsDomains = "sears.com";	//comma separated list; do not enter innovations.247customer.com, only enter 247customer.com
	this.SearsHomeServicesDomains = "searshomeservices.com";

	switch(location.host)
	{
		case "services.sears.com":
		case "sears.com":
		case "www.sears.com":
		case "searshomeservices.com":
		case "www.searshomeservices.com":
				this.wcl = "www.searshomeservices.com/webchat";		//webchat location Sears Prdn
				break;
		
		case "innovations.247customer.com":
		case "ilreports.247customer.com":
				this.wcl = "ilreports.247customer.com/webchat";		//webchat location 247
				break;

		default:
				this.wcl = "www.searshomeservices.com/webchat";		//webchat location Sears Prdn
				break;
	}


	this.version = "2";
	this.eventSNo = 0;
	this.eventLog = "";
	this.WndID = (new Date()).getTime();

	this.ii_deptOpen = function()
	{
		if(tfs_debug > 0)
		{
			alert("II - Dept " + ii_getRuleOrInv(ii_Rules,ii_Var.trigru)[8] + " open");
		}
		Me.useOdi = 0;
		Me.postData();
	};

	this.ii_deptClosed = function()
	{
		if(tfs_debug > 0)
		{
			alert("II - Dept " + ii_getRuleOrInv(ii_Rules,ii_Var.trigru)[8] + " closed");
		}
		Me.useOdi = 1;
		Me.postData();
	};

	this.sb_deptOpen = function()
	{
		if(tfs_debug > 0)
		{
			try
			{
				alert("SmartButton Dept " + Me.di + " open");
			}
			catch(Bish)
			{}
		}
		Me.useOdi = 0;
		Me.showLink();
	};

	this.sb_deptClosed = function()
	{
		if(tfs_debug > 0)
		{
			try
			{
				alert("SmartButton Dept " + Me.di + " closed");
			}
			catch(Bish)
			{}
		}
		Me.useOdi = 1;
		Me.showLink();
	};

	this.onClick = function()
	{
		if(this.userClicked == 1)
		{
			return false;
		}
		this.userClicked = 1;
		var index = 0;
		var sbimg;
		var hlsb;
		while(index > -1)
		{
			sbimg = document.getElementById("id_ImgClickToChat_" + index);
			hlsb = document.getElementById("id_HLSB_" + index);
			if(sbimg && hlsb)
			{
				try
				{
					sbimg.className = "tfsDisabledimg";
				}
				catch(Bish)
				{
					Me.ErrMsg = Bish.message.toString();
				}
				try
				{
					hlsb.className = "tfsDisableda";
				}
				catch(Bish)
				{
					Me.ErrMsg = Bish.message.toString();
				}
				index++;
			}
			else
			{
				break;
			}
		}
		if(index > -1)
		{
			var WndSpec = "width=570,height=395,scrollbars=0";
			this.hChildWnd = window.open('about:blank', 'chatclient', WndSpec);
			this.sb_247cda.checkDeptAvailability();
		}
	};

	this.showLink = function()
	{
		if(this.userClicked == 0)
		{
			var index = 0;
			var sb;
			while(index > -1)
			{
				sb = document.getElementById("id_SmartButton_" + index);
				if(sb)
				{
					if(this.useOdi == 0)
					{
						sb.innerHTML = "<A id=\u0022id_HLSB_" + index + "\u0022 class=\u0022\u0022 HREF=\u0022\u0022 onClick=\u0022if(window.ii_247Var){ii_247Var.onClick();return false;}\u0022>" + "<IMG id=\u0022id_ImgClickToChat_" + index + "\u0022 SRC=\u0022" + this.imgClickToChat + "\u0022 border=\u00220\u0022 class=\u0022\u0022></A>";
					}
					else
					{
						sb.innerHTML = "";
						/*dept closed*/
					}
					index ++;
				}
				else
				{
					break;
				}
			}
			if(index > -1)
			{
				if(this.useOdi == 0)
				{
					if(window.ISVT_onInviteOffered)
					{
						setTimeout('ISVT_onInviteOffered(19720, 16320)', 1000);
					}
				}
				else
				{
					if(window.ISVT_onInviteNotOffered)
					{
						setTimeout('ISVT_onInviteNotOffered(19720, 16320)', 1000);
						try
						{
							this.logEvent("id_tfsLogEvent", 20);	//not captured for proactive chat
						}
						catch(Bish){}
					}
				}
			}
		}
		else if(this.userClicked == 1)
		{
			var deptId = ((this.useOdi == 0)?this.di:this.odi);
			if(this.hChildWnd)
			{
				if(window.ISVT_onInviteAccepted)
				{
					ISVT_onInviteAccepted(16320, deptId);
				}
				this.postData();
			}
		}
		
	};

	this.Parseaccurl = function()
	{
		var InviteData = ii_getRuleOrInv(ii_Inv,ii_Var.invtoshow);
		var accurl = InviteData[17];
		var QS;
		var Index;
		var NV;
		var QSData = "";

		try
		{
			if(accurl.indexOf("?") != -1)
			{
				accurl = accurl.substr(accurl.indexOf("?"));
				if(accurl.length > 1)
				{
					accurl = accurl.substr(1);
					QS = accurl.split("&");
					for(Index=0; Index < QS.length; Index++)
					{
						NV = QS[Index].split("=");
						if(NV[0] == "odi")
						{
							Me.ii_odi = NV[1];
						}
						QSData += NV[0] + "=" + unescape(eval("\u0027" + NV[1] + "\u0027") + ";");
					}
					Me.accurlqs = QSData;
				}
			}
		}
		catch(Bish)
		{
			Me.ErrMsg = Bish.message.toString();
		}

	};

	this.onAcc = function()
	{
		var InviteData = ii_getRuleOrInv(ii_Inv,ii_Var.invtoshow);
		var di = ii_getRuleOrInv(ii_Rules,ii_Var.trigru)[8];
		var WndSpec = "width=" + InviteData[19] + ",height=" + InviteData[20] + ",scrollbars=0";
		this.hChildWnd = window.open('about:blank', 'chatclient', WndSpec);
		if(Me.odi != 0)
		{
			if(this.ii_247cda == null)
			{
				this.ii_247cda = new ii_247cdaObj(di, this.ii_deptOpen, this.ii_deptClosed);
			}
			else
			{
				this.ii_247cda.checkDeptAvailability();
			}
		}
		else
		{
			this.postData();
		}
	};

	this.getTargetDept = function()
	{
		var deptId = 0;
		switch(this.inviteType)
		{
			case 1:
					if(ii_Var.trigru > 0)
					{
						deptId = ((this.useOdi==1)?this.ii_odi:(ii_getRuleOrInv(ii_Rules,ii_Var.trigru)[8]));
					}
					break;

			case 2:
					deptId = ((this.useOdi == 0)?this.di:this.odi);
					break;

			case 3:
					if(this.biTrigger != 0)
					{
						deptId = ((this.useOdi == 0)?this.di:this.odi);
					}
					else if(this.biTrigger == 0)
					{
						if(ii_Var.trigru > 0)
						{
							deptId = ((this.useOdi==1)?this.ii_odi:(ii_getRuleOrInv(ii_Rules,ii_Var.trigru)[8]));
						}
					}
					break;
		}
		return(deptId);
	};

	this.postData = function()
	{
		var url = 'https://' + this.wcl + '/forms/SearsChat.html?';
		var deptId = this.getTargetDept();
		if(deptId == 0)
		{
			this.hChildWnd.close();
			return;
		}
		url += "d=" + deptId;
		switch(this.inviteType)
		{
			case 1:
				url += "&di=" + (ii_getRuleOrInv(ii_Rules,ii_Var.trigru)[8]);	//Dept ID for II
				url += "&odi=" + this.ii_odi; //Overflow Dept ID for II
				break;

			case 2:
				url += "&di=" + this.di;	//Dept ID for sb
				url += "&odi=" + this.odi; //Overflow Dept ID for sb
				break;

			case 3:
					if(this.biTrigger != 0)	//sb clicked
					{
						url += "&di=" + this.di;	//Dept ID for sb
						url += "&odi=" + this.odi; //Overflow Dept ID for sb
					}
					else if(this.biTrigger == 0) // II clicked
					{
						if(ii_Var.trigru > 0)
						{
							url += ("&di=" + (ii_getRuleOrInv(ii_Rules,ii_Var.trigru)[8]));	//Dept ID for II
							url += "&odi=" + this.ii_odi; //Overflow Dept ID for II
						}
					}

					break;

			default:
		}
		url += "&v=" + escape(((window.ISVT_getVTID())?(window.ISVT_getVTID()):""));
		url += "&rid=" + this.firedRID + "&iid=" + this.firedIID + "&jsit=" + this.inviteType + "&cid=" + this.isct_id + "&bit=" + this.biTrigger;
		url += "&Cn=" + escape((ii_Var.GeoCn)?ii_Var.GeoCn:"") + "&rg=" + escape((ii_Var.georg)?ii_Var.georg:"") + "&ct=" + escape((ii_Var.geoct)?ii_Var.geoct:"") + "&ip=" + escape((ii_Var.geoip)?ii_Var.geoip:"");
		url += "&u=" + encodeURIComponent(window.location.href);
		this.logEvent("id_tfsLogEvent", 22);
		if(tfs_debug > 0)
		{
			alert("Chat url =" + url);
		}
		this.hChildWnd.location = url;
		//this.hChildWnd.document.write('<FRAMESET ROWS="100%" FRAMEBORDER=0 BORDER=0 FRAMESPACING=0><FRAME NAME="tfs_ChatFrame" SRC="' + url + '" FRAMEBORDER=no SCROLLING=no NORESIZE=1><NOFRAMES><BODY BGCOLOR=#FFFFCC TEXT=#990033>Your browser must be capable of displaying frames.</BODY></NOFRAMES></FRAMESET>');
	};

	this.OnInvitationOffered = function(rid, iid)
	{
		this.firedRID = rid;
		this.firedIID = iid;
		this.logEvent("id_tfsLogEvent", 21);
	};

	this.OnInvitationIgnored = function()
	{
		if(this.inviteType == 3)
		{
			this.biTrigger = 1;
			if(document.getElementById('id_SmartButton_0'))
			{
				this.onPageLoad();
				this.sb_247cda = new ii_247cdaObj(this.di, this.sb_deptOpen, this.sb_deptClosed);
			}
		}
	};

	this.OnInvitationDeclined = function()
	{
		try
		{
			this.logEvent("id_tfsLogEvent", 23);
		}
		catch(Bish){}
		if(this.inviteType == 3)
		{
			this.biTrigger = 2;
			if(document.getElementById('id_SmartButton_0'))
			{
				this.onPageLoad();
				this.sb_247cda = new ii_247cdaObj(this.di, this.sb_deptOpen, this.sb_deptClosed);
			}
		}
	};

	this.isGeoLoaded = function()
	{
		if(window.isgeoipapi_ip_addr)
		{
			Me.tmrGeoApi = clearInterval(Me.tmrGeoApi);
			ii_initGeoIP();
		}
		else
		{
			Me.retryGeo--;
			if(Me.retryGeo < 1)
			{
				Me.tmrGeoApi = clearInterval(Me.tmrGeoApi);
			}
		}
	};

	this.loadCSS =function(id,scr)
	{
	  var win = window;
	  var head = win.document.getElementsByTagName('head').item(0);
	  var old  = win.document.getElementById(id);
	  if (old) head.removeChild(old);
	  var style = document.createElement('link');
	  style.href = scr;
	  style.rel = "stylesheet";
	  style.type = 'text/css';
	  style.id = id;
	  void(head.appendChild(style));
	}
  
	this.logEvent = function(id,eventCode)
	{
		var isct_type = 0;
		var isct_id = 1797962299;	//id = EventInfo
		var isct_value = 0;
		var isct_custdata1 = window.location.href;
		var isct_custdata2 = "~Wnd=" + this.WndID + "~evt=" + eventCode + "~ets=" + ((new Date()).getTime()) + "~esn=" + (++this.eventSNo) + "~rid=" + this.firedRID + "~iid=" + this.firedIID + "~jsit=" + this.inviteType + "~cid=" + this.isct_id + "~bit=" + this.biTrigger + "~dpt=" + this.getTargetDept();
		if(this.eventLog.length > 1000)
		{
			this.eventLog = this.eventLog.substr(this.eventLog.length - 900);
		}
		var isct_custdata3 = this.eventLog;
		this.eventLog += ";" + isct_custdata2;
		var isct_custdata4 = "";
		var isct_custdata5 = "";
		
		var url = ISVT_scr + '?ai=' + ISVT_ai + '&evt=50&cvi=' + isct_id + '&cv=' + isct_value;
		var vtid = ISVT_getVTID();
		if (vtid != null && vtid != "")
		{
			url += '&vti=' + vtid;
		}
		if(isct_custdata3.length > 280)
		{
			isct_custdata4 = isct_custdata3.substr(280);
			isct_custdata3 = isct_custdata3.substr(0, 280);
		}
		if(isct_custdata4.length > 280)
		{
			isct_custdata5 = isct_custdata4.substr(280);
			isct_custdata4 = isct_custdata4.substr(0, 280);
		}
		if(isct_custdata5.length > 280)
		{
			isct_custdata5 = isct_custdata5.substr(0, 280);
		}
		if(isct_custdata1.length > 0)
		{
			isct_custdata1 = isct_custdata1.substr(0, 300);
			isct_custdata1 = isct_custdata1.replace(/,/g, "_");
			url += "&cd1=" + ISVT_encode(isct_custdata1);
		}
		if(isct_custdata2.length > 0)
		{
			isct_custdata2 = isct_custdata2.replace(/,/g, "_");
			url += "&cd2=" + ISVT_encode(isct_custdata2);
		}
		if(isct_custdata3.length > 0)
		{
			isct_custdata3 = isct_custdata3.replace(/,/g, "_");
			url += "&cd3=" + ISVT_encode(isct_custdata3);
		}
		if(isct_custdata4.length > 0)
		{
			isct_custdata4 = isct_custdata4.replace(/,/g, "_");
			url += "&cd4=" + ISVT_encode(isct_custdata4);
		}
		if(isct_custdata5.length > 0)
		{
			isct_custdata5 = isct_custdata5.replace(/,/g, "_");
			url += "&cd5=" + ISVT_encode(isct_custdata5);
		}
		if (ISVT_scr.length > 0 && document.getElementById)
		{
			var head = document.getElementsByTagName('head').item(0);
			var old  = document.getElementById(id);
			if (old) head.removeChild(old);
			lescr = document.createElement('script');
			lescr.src = url;
			lescr.type = 'text/javascript';
			lescr.defer = true;
			lescr.id = id;
			void(head.appendChild(lescr));
			if(tfs_debug > 0)
			{
				alert(lescr.src);
			}
		}
	};

	this.onPageLoad=function()
	{
		var isct_type=0;
		var isct_value=0;
		var isct_custdata1=window.location.href;
		var isct_custdata2 = "" + this.getGeoData();
		var isct_custdata3 = "";

		switch(this.inviteType)
		{
			case 1:
					this.isct_id = 906393471;	//id = Proactive
					break;

			case 2:
					this.isct_id = 944742050;	//id = Button
					break;

			case 3:
					if(this.biTrigger == 0)
					{
						this.isct_id = 906393471;	//id = Proactive
					}
					else
					{
						this.isct_id = 691576850;	//id = ProactiveToButton
					}
					break;

			default:
					this.isct_id = 906393471;	//id = Proactive
					break;
		}
		try
		{
			isct_custdata3 = ((this.inviteType == 2 || this.inviteType == 3) && !(document.getElementById('id_SmartButton_0')))?"~sbdiv=0":"";	//sbdiv missing
			isct_custdata3 = isct_custdata3 + ((navigator.cookieEnabled)?"~cookie=1":"cookie=0") + "~ua=" + navigator.userAgent.substr(0,200);
		}
		catch(Bish)
		{
			isct_custdata3 = "";
		}
		if((isct_custdata1.length + isct_custdata2.length + isct_custdata3.length) > 1990)
		{
			isct_custdata3 = "";
		}
		if((isct_custdata1.length + isct_custdata2.length) > 1990)
		{
			isct_custdata2 = "";
		}
		isct_custdata1 = isct_custdata1.replace(/,/g, "_");
		isct_custdata2 = isct_custdata2.replace(/,/g, "_");
		isct_custdata3 = isct_custdata3.replace(/,/g, "_");
		if (window.ISVT_onConversion)
		{
			ISVT_onConversion(this.isct_id,isct_value,isct_type,isct_custdata1,isct_custdata2,isct_custdata3);
		}
		try
		{
			this.logEvent("id_tfsLogEvent", 50);
		}
		catch(Bish){}
	};

	this.getGeoData = function()
	{
		var geodata = "";
		if(window.ISVT_getVTID)
		{
			var vt = window.ISVT_getVTID();
			geodata = "vtid=" + ((vt)?vt:"");
		}
		try
		{
			geodata = geodata + "~jsit=" + this.inviteType;
			geodata = geodata + "~rid=" + ii_Var.trigru;
			geodata = geodata + "~bit=" + this.biTrigger;
			geodata = geodata + "~ets=" + (new Date()).getTime();
			geodata = geodata + "~utco=" + (new Date()).getTimezoneOffset();
		}
		catch(Bish)
		{
		}
		/*
		if((window.isgeoipapi_ip_addr) && !(ii_Var.geoip))
		{
			ii_initGeoIP();
		}
		*/
		geodata = geodata + "~ip=" + ((ii_Var.geoip)?ii_Var.geoip:"") + "~co=" + ((ii_Var.geoco)?ii_Var.geoco:"") + "~rg=" + ((ii_Var.georg)?ii_Var.georg:"") + "~ct=" + ((ii_Var.geoct)?ii_Var.geoct:"") + "~ns=" + ((ii_Var.geons)?ii_Var.geons:"") + "~dm=" + ((ii_Var.geodm)?ii_Var.geodm:"") + "~Cc=" + ((ii_Var.GeoCc)?ii_Var.GeoCc:"") + "~Cn=" + ((ii_Var.GeoCn)?ii_Var.GeoCn:"") + "~Da=" + ((ii_Var.GeoDa)?ii_Var.GeoDa:"") + "~Ac=" + ((ii_Var.GeoAc)?ii_Var.GeoAc:"") + "~La=" + ((ii_Var.GeoLa)?ii_Var.GeoLa:"") + "~Lo=" + ((ii_Var.GeoLo)?ii_Var.GeoLo:"") + "~Is=" + ((ii_Var.GeoIs)?ii_Var.GeoIs:"") + "~Or=" + ((ii_Var.GeoOr)?ii_Var.GeoOr:"");
		return(geodata);
	};

	this.setSBDepts = function()
	{
		var domain = ("" + ii_getDomain()).toLowerCase();
		if(this.SearsDomains.toLowerCase().indexOf(domain) > -1)
		{
			this.di = 25558;
			this.odi = 25557;
		}
		else if(this.SearsHomeServicesDomains.toLowerCase().indexOf(domain) > -1)
		{
			this.di = 26199;
			this.odi = 26200;
		}
		else
		{
			this.di = 25845;	//Test
			this.odi = 37168;	//Test_OF
		}
		if(tfs_debug > 0)
		{
			alert("fn setSBDepts - di =" + this.di + ", odi = " + this.odi);
		}
	};

	this.setInviteType = function()
	{
		var el  = document.getElementById('id_tfs_II3');
		if(el)
		{
			var url = el.src;
			if(url.indexOf('inviteType=1') > -1)
			{
				this.inviteType = 1;
			}
			else if(url.indexOf('inviteType=2') > -1)
			{
				this.inviteType = 2;
			}
			else if(url.indexOf('inviteType=3') > -1)
			{
				this.inviteType = 3;
			}
			else
			{
				this.inviteType = 0;
			}
			if(tfs_debug > 0)
			{
				alert("inviteType = " + this.inviteType);
			}
		}

	};

	this.preloadImages = function()
	{
		var tmpImg;
		if (navigator.appName.indexOf("Microsoft") != -1 && navigator.platform.indexOf("Mac") != -1) 
		{
			tmpImg = document.createElement('IMG');
		}
		else 
		{
			tmpImg = new Image();
		}
		tmpImg.src = this.imgClickToChat;
	};

	this.initObj=function()
	{
		try
		{
			var dbg = window.location.href.indexOf('tfs_debug=');
			if(dbg > -1)
			{
				dbg += 10;
				tfs_debug = parseInt(window.location.href.substr(dbg,1));
			}
			if(tfs_debug == 2)
			{
				ii_callServer("id_tfs_II3_test",ii_getProtocol()+'://innovations.247customer.com/webchat/js/InstantInvite3.js');
				return;
			}
		}
		catch(Bish)
		{}
		if(tfs_debug > 0)
		{
			alert("this.wcl = " + this.wcl);
		}
		this.imgClickToChat = ii_getProtocol() + '://' + this.wcl + '/images/clicktochat.gif';
		this.preloadImages();
		if (ii_getGSV("GeoIP")=="*" && ii_Var.gsvr.length > 0)
		{
			this.tmrGeoApi = setInterval(Me.isGeoLoaded, 1000);
		}
		else
		{
			ii_initGeoIP();
		}
		this.setInviteType();
		this.setSBDepts();
		this.onPageLoad();
		var cssSrc = ii_getProtocol() + '://' + this.wcl + "/forms/TFSStyles.css";
		this.loadCSS("id_247css", cssSrc);
		switch(this.inviteType)
		{
			case 1:
			case 3:
					if (ii_Var.IE||ii_Var.MZ)
					{
						ii_start();
					}
					break;
			
			case 2:
					this.sb_247cda = new ii_247cdaObj(this.di, this.sb_deptOpen, this.sb_deptClosed);
					break;

			default:
					//alert('invalid inviteType');
		}
	};

	this.initObj();
};

//ii_247Var = new ii_247VarObj();	//Commented since sears has suggested that they would initialize it in all.js and sears_all.js
//tfs end


