// Copyright (C) 2004 InstantService.com, 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.com is a violation of copyright law and is subject to // penalty and prosecution. function II_getRules(){   var arrRules = II_getCookie('IS_Rules');  return((arrRules == null) ? new Array() : arrRules.split('^^^'));}function II_getTestServers(){   var arrTestServers = II_getCookie('IS_TestServers');  return((arrTestServers == null) ? new Array() : arrTestServers.split(','));}function II_getUsingTestServers(){  var ii_useTestRules = false;  var ii_arr = II_getTestServers();    var ii_idx;  for (ii_idx = 0; ii_idx < ii_arr.length; ii_idx++)  {    if (ii_arr[ii_idx] == document.location.host)    {      ii_useTestRules = true;      break;    }  }    return(ii_useTestRules);}function II_getMatchHistory(){  var arrMatchHistory = II_getCookie('IS_MatchHistory');  return((arrMatchHistory == null) ? new Array() : arrMatchHistory.split('^'));}function II_getStoredValues(){  var arrStoredValues = II_getCookie('IS_StoredValues');  return((arrStoredValues == null) ? new Array() : arrStoredValues.split(','));}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_gDomain == null || II_gDomain == "") ? "" : ("; domain=" + II_gDomain));}function II_testCookieCapability(){  var result = false;  II_setCookie('IS_TestCookie', 'test', null);  var val = II_getCookie('IS_TestCookie');  if (val != null && val == 'test')    result = true;  return(result);}        function II_updateMatchHistoryCookie() {  var i = j;  var j = 0;   var HistoryEntry = document.location.href;  if (document.referrer == document.location.href)    return false;  var arrRules        = II_getRules();   var arrMatchHistory = II_getMatchHistory();  if (arrMatchHistory.length > II_MAX_RULEMATCHLIST_SIZE - 1)    arrMatchHistory = II_shiftMatchHistoryCookie(arrMatchHistory, II_MAX_RULEMATCHLIST_SIZE);  if ((HistoryEntry != null) && (HistoryEntry != "undefined"))   {    arrMatchHistory[arrMatchHistory.length] = ' ';    var nMatch = -1;    var sSearchMatch = '';    for (i=0; i < arrRules.length; i++)    {      var search = II_findMatch(HistoryEntry, arrRules[i]);      if (search.length > 0)      {                   if (arrMatchHistory[arrMatchHistory.length - 1].length > 1)          arrMatchHistory[arrMatchHistory.length - 1] += '```';                  arrMatchHistory[arrMatchHistory.length - 1] += search;      }    }    var fullList = "";    for (j=0; j <= arrMatchHistory.length - 1; j++)    {       fullList += arrMatchHistory[j];      if (j < arrMatchHistory.length - 1)        fullList += "^";    }    II_setCookie('IS_MatchHistory', fullList, II_COOKIE_EXPIRATION);    var pages = II_getStoredValue("PageCountSinceLastShown");    pages = ((pages == '') ? 1 : parseInt(pages) + 1);    II_updateStoredValue("PageCountSinceLastShown", pages);  }  return true;}function II_updateStoredValue(name, value){  var updated = false;  var arrStoredValues = II_getCookie('IS_StoredValues');  if (arrStoredValues == null)    arrStoredValues = new Array();  else    arrStoredValues = arrStoredValues.split(',');  for (var idx=0; idx < arrStoredValues.length; idx++)  {    var arrNameValue = arrStoredValues[idx].split('`');    if (arrNameValue[0] == name)    {      updated = true;      arrStoredValues[idx] = name + '`' + value;    }  }  if (!updated)    arrStoredValues[arrStoredValues.length] = name + '`' + value;  II_setCookie('IS_StoredValues', arrStoredValues, II_COOKIE_EXPIRATION);}function II_getStoredValue(name){  var arrStoredValues = II_getCookie('IS_StoredValues');  if (arrStoredValues == null)    arrStoredValues = new Array();  else    arrStoredValues = arrStoredValues.split(',');  for (var idx=0; idx < arrStoredValues.length; idx++)  {    var arrNameValue = arrStoredValues[idx].split('`');    if (arrNameValue[0] == name)      return(arrNameValue[1]);  }  return('');}function II_shiftMatchHistoryCookie(arrHistory, maxsize) {   var i = 0;  var newArray = new Array();  for (i = 0; i < maxsize - 1; i++)     newArray[i] = arrHistory[i + 1];  return(newArray);}function II_createTestServersCookie(){  var i = 0;  var fullList = "";  if (window.arrTestServers)  {    for (i=0; i <= arrTestServers.length - 1; i++)    {       fullList += arrTestServers[i];      if (i < arrTestServers.length - 1)        fullList += ",";    }  }    if (fullList == "")    fullList = "no_testservers_defined";   II_setCookie('IS_TestServers', fullList, null);}function II_createRulesCookie(rulesType){  var i = 0;  var ii_arr = null;    if (rulesType == "test")    ii_arr = window.arrTestRules;  else    ii_arr = window.arrRules;  // create live version rules  var fullList = "";  if (ii_arr)  {    for (i=0; i <= ii_arr.length - 1; i++)    {       fullList += ii_arr[i];      if (i < ii_arr.length - 1)        fullList += "^^^";    }  }  if (fullList == "")    fullList = "(no rules defined)";   II_setCookie('IS_Rules', fullList, null);  II_updateStoredValue("PageCountSinceLastShown", 0);  II_updateStoredValue("PrevOfferCount", 0);  II_updateStoredValue("PrevOfferTime", 0);  II_updateStoredValue("LastShownRuleID", 0);  II_updateStoredValue("ShowUsage", (window.II_gShowUsage == true) ? 1 : 0);  if (window.II_gVersion)   II_updateStoredValue("Version", II_gVersion);}function II_loadRules(){  var arrRules = II_getRules();   if (arrRules.length == 0)  {    if (II_testCookieCapability())    {      document.write('<script src="' + II_gProtocol + '://admin.instantservice.com/resources/smartbutton/' + II_gAccountID + '/Servers.js" type="text/javascript"></script>');    }  }}function II_showUsage(){  var tr = II_getStoredValue("ShowUsage");  if (tr != null && tr == '1')  {     if (window.II_gAgentsAvailDept)      document.write('<script src="' + II_gProtocol + '://admin.instantservice.com/resources/smartbutton/' + II_gAccountID + '/Tracker.js?src=ii&ruleid=' + II_gRuleID + '&avail=' + II_gAgentsAvail + '&ai=' + II_gAccountID + '&di=' + II_gAgentsAvailDept + '" type="text/javascript"></script>');  }}function II_findMatch(searchstr, rule){  var match = '';  var ruleid = II_getRuleComponent("ruleid", rule);  switch(II_getRuleComponent("ruletype", rule))  {    case '1':      var sub1 = II_findComponentMatch(ruleid, "excprevvisit", searchstr, rule);      var sub2 = II_findComponentMatch(ruleid, "exconlyprevvisit", searchstr, rule);      match = sub1;      if (match.length > 0 && sub2.length > 0) { match += '```'; }      match += sub2;      break;    case '2':      var sub1 = II_findComponentMatch(ruleid, "rulevalue1", searchstr, rule);      var sub2 = II_findComponentMatch(ruleid, "excprevvisit", searchstr, rule);      var sub3 = II_findComponentMatch(ruleid, "exconlyprevvisit", searchstr, rule);      match = sub1;      if (match.length > 0 && sub2.length > 0) { match += '```'; }      match += sub2;      if (match.length > 0 && sub3.length > 0) { match += '```'; }      match += sub3;      break;    case '3':    case '4':    case '7':      var sub1 = II_findComponentMatch(ruleid, "firstpagematch", searchstr, rule);      var sub2 = II_findComponentMatch(ruleid, "excprevvisit", searchstr, rule);      var sub3 = II_findComponentMatch(ruleid, "exconlyprevvisit", searchstr, rule);      match = sub1;      if (match.length > 0 && sub2.length > 0) { match += '```'; }      match += sub2;      if (match.length > 0 && sub3.length > 0) { match += '```'; }      match += sub3;            break;    case '5':    case '6':      var sub1 = II_findComponentMatch(ruleid, "firstpagematch", searchstr, rule);      var sub2 = II_findComponentMatch(ruleid, "secondpagematch", searchstr, rule);      var sub3 = II_findComponentMatch(ruleid, "excprevvisit", searchstr, rule);      var sub4 = II_findComponentMatch(ruleid, "exconlyprevvisit", searchstr, rule);      match = sub1;      if (match.length > 0 && sub2.length > 0) { match += '```'; }      match += sub2;      if (match.length > 0 && sub3.length > 0) { match += '```'; }      match += sub3;              if (match.length > 0 && sub4.length > 0) { match += '```'; }      match += sub4;              break;          default:  }  return(match);}function II_findComponentMatch(ruleid, componentname, searchstr, rule){  var match = '';    if (componentname == "excprevvisit" || componentname == "exconlyprevvisit")  {    // these two component have to be subdivided and searched    var list = II_getRuleComponent(componentname, rule);    if (list.length > 0)    {      var arrList = list.split('^');      if (arrList != null && arrList.length > 0)      {        for (var idx=0; idx < arrList.length; idx++)        {          var sub = arrList[idx];          if (searchstr != null && searchstr.indexOf(sub) != -1)          {            if (match.length > 0)               match += '```';            match += ruleid + '`' + sub;          }                      }      }    }        }  else  {    var sub = II_getRuleComponent(componentname, rule);    if (searchstr != null && searchstr.indexOf(sub) != -1)    {      if (match.length > 0)         match += '```';      match += ruleid + '`' + sub;    }  }         return(match);}  function II_getRuleString(ruleid){  var arrRules = II_getRules();  for (i=0; i < arrRules.length; i++)  {    if (II_getRuleComponent("ruleid", arrRules[i]) == ruleid)      return(arrRules[i]);  }  return('');}            function II_getRuleComponent(componentname, rule){  var ruleArray = rule.split('`');  var arrNames  = new Array( "ruleid", "ruletype", "firstpagematch", "secondpagematch", "rulevalue1",                              "rulevalue2", "rulevalue3", "excprevoffercount",  "excprevoffertime",                              "excprevvisit", "exconlyprevvisit", "invitedept", "whentoload" );  if (ruleArray != null && ruleArray.length > 0)  {    for (idx=0; idx < arrNames.length; idx++)    {          if (arrNames[idx] == componentname)        return(ruleArray[idx]);    }  }          return('');}function II_getProtocol(){  var prot = "http";  var url = document.location.href;  if (url != null && url.length > 0)  {    url = url.toLowerCase();    if (url.indexOf("https") == 0)       prot = "https";  }  return(prot);}function II_getDomain(){   var dom = document.domain;  var idx = dom.lastIndexOf(".");  if (idx != -1)  {    dom = dom.substring(0, idx) + "X" + dom.substring(idx+1);    var idx2 = dom.lastIndexOf(".");    if (idx2 != -1)      dom = document.domain.substring(idx2);    else      dom = document.domain;  }  return(dom);}function II_gtRS(id)        { return II_getRuleString(id); }function II_gtRC(val1,val2) { return II_getRuleComponent(val1,val2); }function II_gtSV(val1)      { return II_getStoredValue(val1); }function II_upSV(val1,val2) { return II_updateStoredValue(val1,val2); }var II_gDomain    = II_getDomain();var II_gProtocol  = II_getProtocol();var II_gAccountID = 5747;var II_gUsingIE   = false;var II_gUsingNS   = false;if (document.all && document.getElementById)  II_gUsingIE = true;else if (document.getElementById)  II_gUsingNS = true;  if (II_gUsingIE || II_gUsingNS){  II_loadRules();  II_showUsage();}