var cimotifempty = 1;
// ========================================================
// settings
var cincPID="11258";
var cincNID="10";
var cincZID="ql50";
var cincSFT="yes"; // new 'soft' look, rounded edges, srb 3/29/2006
var cincTYP="120x600"; // size of approved ad units (def 120x600)
var cincPUB="0"; // publisher ID - not necessary for PID/NID/ZID mode
var cincMOD="u"; // u|a sets underline or ad unit mode (def u)
var cincUID="";
var cincBLD="yes"; // no|yes sets bold text (def yes)
var cincFGC="green"; // text color - (def green)
var cincBGC=""; // background color of the text (def no change in color)
var cincIMG="no"; // yes|no turns off small down arrow image (def yes)
var cincCOUPIMG="yes"; // yes|no turns on coupon images (def yes)
var cincExcCat="no"; // yes|no exclude category coupon matches (def no)
var cincITL="no"; // no|yes sets italic text (def no)
var cincDOT="green"; // color of dotted underline (def green)
var cincNPP=7; // max keywords hit per page (def 7)
var cincPIDCouponCount=13;
var cincTYPw=""; // width
var cincTYPh=""; // height
var cincTYPm=""; // motif count
var cincTYPp=""; // padding
var cincAdUnitMode = false;
var cincConcordanceUrl = "http://www.oclus.co.uk/concordance/";
var cincImageUrl = "http://www.oclus.co.uk/concordance/_images/";
var cincMicrositeUrl = "http://www.couponnet.co.uk/Couponweb/index.aspx";
var cinc_MOTIF_LEN_LIMIT = 2048;
var cinc_DEPTH_MAX = 100;
// ========================================================
var cincie4=document.all;
var cincns6=document.getElementById&&!document.all;
var cimotifPopup=null;
var cimotifAdImp="";
var motifCount = 0;
var motifArray;
var motifHits = 0;
var motifActiveArrayIndex = null;
var concordanceMode = true;
var concordanceDemarcated;
var motifPreProcessToggle = true;
var motifContentLength = 0;
var motifAllWords = new Array();
var concordanceNodes = new Array();
var concordanceSupNodes = new Array();
var motifLastWord = null;
var motifLastNode = null;
function ConcordanceNode(nd,sndIndex,kwd)
{
this.node = nd;
this.sNodeIndex = sndIndex;
this.keywords = kwd;
}
function ConcordanceSupNode(nd,kwd,ch)
{
this.node = nd;
this.keyword = kwd;
this.character = ch;
}
Array.prototype.cincContains = function (x) {
for (var i = 0; i < this.length; i++) {
if (this[i] == x) return true;
}
return false;
}
if (cincie4||cincns6)
{
document.write('');
document.write('
');
}
else
{
// ad mode
document.write('#cimotifdom a{ position: static; width: 100%; display: block; font:normal 11px Verdana; font-weight: normal; color: #005890; text-decoration: none;}');
document.write('#cimotifdom a:visited{ position: static; width: 100%; display: block; font:normal 11px Verdana; font-weight: normal; color: #005890; text-decoration: none;}');
document.write('#cimotifdom a:hover{ position: static; background-color : White; font:normal 11px Verdana; text-decoration: underline;}');
document.write('#cimotifdom table{ position: static; margin: 0px 0px 0px 0px; border-collapse: separate; border: 0px solid #ffffff; }');
document.write('#cimotifdom tr{ position: static; padding: 0px 0px; border-collapse: separate; border: 0px solid #ffffff; }');
document.write('#cimotifdom td{ position: static; vertical-align: middle; color:#000000; padding: 0px 0px; border-collapse: separate; border: 0px solid #ffffff; }');
document.write('#cimotifdom img{ position: static; border: 0px solid #ffffff; }');
document.write('');
}
}
// ========================================================
function cmotifDefinePopup()
{
cimotifPopup = document.getElementById("cimotifDiv");
if( cincSFT == "yes" )
{
var rowspacer = " | | |
";
var rowstart = " | ";
var rowend = " | |
";
divContents = " | | |
| | |
";
if( cincTYP != "y" )
{
divContents += " | Print these coupons... |  | |
" + rowspacer;
}
else
{
divContents += " | Click to print a coupon... |  | |
" + rowspacer;
}
divContents += " | "+rowend;
divContents += rowspacer + " |
| | |
" + rowspacer;
divContents += " | About Concordance | |  | |
";
divContents += " | | |
";
cimotifPopup.innerHTML = divContents;
}
else
{
var rowspacer = " |
";
var rowstart = " | ";
var rowend = " | |
";
divContents = "";
divContents += " | | ";
divContents += " | Print these coupons... |  | " + rowspacer;
divContents += " | "+rowend;
divContents += " | | | | " + rowspacer;
divContents += " | About Concordance | |  | | " + rowspacer + " ";
divContents += " |  |
";
divContents += " |
";
cimotifPopup.innerHTML = divContents;
}
cimotifPopup.style.left=cimotifPopup.style.top="-1000px";
cimotifPopup.style.visibility = "visible";
}
// ========================================================
function SetPrtCpnWStat(status) { window.status=(status ? 'Print this coupon' : ' '); return true; }
// ========================================================
function cmotifHtmlDecode(s)
{
var out = "";
if (s==null) return;
var l = s.length;
for (var i=0; i 0)
{
var entity = s.substring(i + 1, semicolonIndex);
if (entity.length > 1 && entity.charAt(0) == '#')
{
if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X')
ch = String.fromCharCode(eval('0'+entity.substring(1)));
else
ch = String.fromCharCode(eval(entity.substring(1)));
}
else
{
switch (entity)
{
case 'quot': ch = String.fromCharCode(0x0022); break;
case 'amp': ch = String.fromCharCode(0x0026); break;
case 'lt': ch = String.fromCharCode(0x003c); break;
case 'gt': ch = String.fromCharCode(0x003e); break;
case 'nbsp': ch = String.fromCharCode(0x00a0); break;
case 'iexcl': ch = String.fromCharCode(0x00a1); break;
case 'cent': ch = String.fromCharCode(0x00a2); break;
case 'pound': ch = String.fromCharCode(0x00a3); break;
case 'curren': ch = String.fromCharCode(0x00a4); break;
case 'yen': ch = String.fromCharCode(0x00a5); break;
case 'brvbar': ch = String.fromCharCode(0x00a6); break;
case 'sect': ch = String.fromCharCode(0x00a7); break;
case 'uml': ch = String.fromCharCode(0x00a8); break;
case 'copy': ch = String.fromCharCode(0x00a9); break;
case 'ordf': ch = String.fromCharCode(0x00aa); break;
case 'laquo': ch = String.fromCharCode(0x00ab); break;
case 'not': ch = String.fromCharCode(0x00ac); break;
case 'shy': ch = String.fromCharCode(0x00ad); break;
case 'reg': ch = String.fromCharCode(0x00ae); break;
case 'macr': ch = String.fromCharCode(0x00af); break;
case 'deg': ch = String.fromCharCode(0x00b0); break;
case 'plusmn': ch = String.fromCharCode(0x00b1); break;
case 'sup2': ch = String.fromCharCode(0x00b2); break;
case 'sup3': ch = String.fromCharCode(0x00b3); break;
case 'acute': ch = String.fromCharCode(0x00b4); break;
case 'micro': ch = String.fromCharCode(0x00b5); break;
case 'para': ch = String.fromCharCode(0x00b6); break;
case 'middot': ch = String.fromCharCode(0x00b7); break;
case 'cedil': ch = String.fromCharCode(0x00b8); break;
case 'sup1': ch = String.fromCharCode(0x00b9); break;
case 'ordm': ch = String.fromCharCode(0x00ba); break;
case 'raquo': ch = String.fromCharCode(0x00bb); break;
case 'frac14': ch = String.fromCharCode(0x00bc); break;
case 'frac12': ch = String.fromCharCode(0x00bd); break;
case 'frac34': ch = String.fromCharCode(0x00be); break;
case 'iquest': ch = String.fromCharCode(0x00bf); break;
case 'Agrave': ch = String.fromCharCode(0x00c0); break;
case 'Aacute': ch = String.fromCharCode(0x00c1); break;
case 'Acirc': ch = String.fromCharCode(0x00c2); break;
case 'Atilde': ch = String.fromCharCode(0x00c3); break;
case 'Auml': ch = String.fromCharCode(0x00c4); break;
case 'Aring': ch = String.fromCharCode(0x00c5); break;
case 'AElig': ch = String.fromCharCode(0x00c6); break;
case 'Ccedil': ch = String.fromCharCode(0x00c7); break;
case 'Egrave': ch = String.fromCharCode(0x00c8); break;
case 'Eacute': ch = String.fromCharCode(0x00c9); break;
case 'Ecirc': ch = String.fromCharCode(0x00ca); break;
case 'Euml': ch = String.fromCharCode(0x00cb); break;
case 'Igrave': ch = String.fromCharCode(0x00cc); break;
case 'Iacute': ch = String.fromCharCode(0x00cd); break;
case 'Icirc': ch = String.fromCharCode(0x00ce); break;
case 'Iuml': ch = String.fromCharCode(0x00cf); break;
case 'ETH': ch = String.fromCharCode(0x00d0); break;
case 'Ntilde': ch = String.fromCharCode(0x00d1); break;
case 'Ograve': ch = String.fromCharCode(0x00d2); break;
case 'Oacute': ch = String.fromCharCode(0x00d3); break;
case 'Ocirc': ch = String.fromCharCode(0x00d4); break;
case 'Otilde': ch = String.fromCharCode(0x00d5); break;
case 'Ouml': ch = String.fromCharCode(0x00d6); break;
case 'times': ch = String.fromCharCode(0x00d7); break;
case 'Oslash': ch = String.fromCharCode(0x00d8); break;
case 'Ugrave': ch = String.fromCharCode(0x00d9); break;
case 'Uacute': ch = String.fromCharCode(0x00da); break;
case 'Ucirc': ch = String.fromCharCode(0x00db); break;
case 'Uuml': ch = String.fromCharCode(0x00dc); break;
case 'Yacute': ch = String.fromCharCode(0x00dd); break;
case 'THORN': ch = String.fromCharCode(0x00de); break;
case 'szlig': ch = String.fromCharCode(0x00df); break;
case 'agrave': ch = String.fromCharCode(0x00e0); break;
case 'aacute': ch = String.fromCharCode(0x00e1); break;
case 'acirc': ch = String.fromCharCode(0x00e2); break;
case 'atilde': ch = String.fromCharCode(0x00e3); break;
case 'auml': ch = String.fromCharCode(0x00e4); break;
case 'aring': ch = String.fromCharCode(0x00e5); break;
case 'aelig': ch = String.fromCharCode(0x00e6); break;
case 'ccedil': ch = String.fromCharCode(0x00e7); break;
case 'egrave': ch = String.fromCharCode(0x00e8); break;
case 'eacute': ch = String.fromCharCode(0x00e9); break;
case 'ecirc': ch = String.fromCharCode(0x00ea); break;
case 'euml': ch = String.fromCharCode(0x00eb); break;
case 'igrave': ch = String.fromCharCode(0x00ec); break;
case 'iacute': ch = String.fromCharCode(0x00ed); break;
case 'icirc': ch = String.fromCharCode(0x00ee); break;
case 'iuml': ch = String.fromCharCode(0x00ef); break;
case 'eth': ch = String.fromCharCode(0x00f0); break;
case 'ntilde': ch = String.fromCharCode(0x00f1); break;
case 'ograve': ch = String.fromCharCode(0x00f2); break;
case 'oacute': ch = String.fromCharCode(0x00f3); break;
case 'ocirc': ch = String.fromCharCode(0x00f4); break;
case 'otilde': ch = String.fromCharCode(0x00f5); break;
case 'ouml': ch = String.fromCharCode(0x00f6); break;
case 'divide': ch = String.fromCharCode(0x00f7); break;
case 'oslash': ch = String.fromCharCode(0x00f8); break;
case 'ugrave': ch = String.fromCharCode(0x00f9); break;
case 'uacute': ch = String.fromCharCode(0x00fa); break;
case 'ucirc': ch = String.fromCharCode(0x00fb); break;
case 'uuml': ch = String.fromCharCode(0x00fc); break;
case 'yacute': ch = String.fromCharCode(0x00fd); break;
case 'thorn': ch = String.fromCharCode(0x00fe); break;
case 'yuml': ch = String.fromCharCode(0x00ff); break;
case 'OElig': ch = String.fromCharCode(0x0152); break;
case 'oelig': ch = String.fromCharCode(0x0153); break;
case 'Scaron': ch = String.fromCharCode(0x0160); break;
case 'scaron': ch = String.fromCharCode(0x0161); break;
case 'Yuml': ch = String.fromCharCode(0x0178); break;
case 'fnof': ch = String.fromCharCode(0x0192); break;
case 'circ': ch = String.fromCharCode(0x02c6); break;
case 'tilde': ch = String.fromCharCode(0x02dc); break;
case 'Alpha': ch = String.fromCharCode(0x0391); break;
case 'Beta': ch = String.fromCharCode(0x0392); break;
case 'Gamma': ch = String.fromCharCode(0x0393); break;
case 'Delta': ch = String.fromCharCode(0x0394); break;
case 'Epsilon': ch = String.fromCharCode(0x0395); break;
case 'Zeta': ch = String.fromCharCode(0x0396); break;
case 'Eta': ch = String.fromCharCode(0x0397); break;
case 'Theta': ch = String.fromCharCode(0x0398); break;
case 'Iota': ch = String.fromCharCode(0x0399); break;
case 'Kappa': ch = String.fromCharCode(0x039a); break;
case 'Lambda': ch = String.fromCharCode(0x039b); break;
case 'Mu': ch = String.fromCharCode(0x039c); break;
case 'Nu': ch = String.fromCharCode(0x039d); break;
case 'Xi': ch = String.fromCharCode(0x039e); break;
case 'Omicron': ch = String.fromCharCode(0x039f); break;
case 'Pi': ch = String.fromCharCode(0x03a0); break;
case 'Rho': ch = String.fromCharCode(0x03a1); break;
case 'Sigma': ch = String.fromCharCode(0x03a3); break;
case 'Tau': ch = String.fromCharCode(0x03a4); break;
case 'Upsilon': ch = String.fromCharCode(0x03a5); break;
case 'Phi': ch = String.fromCharCode(0x03a6); break;
case 'Chi': ch = String.fromCharCode(0x03a7); break;
case 'Psi': ch = String.fromCharCode(0x03a8); break;
case 'Omega': ch = String.fromCharCode(0x03a9); break;
case 'alpha': ch = String.fromCharCode(0x03b1); break;
case 'beta': ch = String.fromCharCode(0x03b2); break;
case 'gamma': ch = String.fromCharCode(0x03b3); break;
case 'delta': ch = String.fromCharCode(0x03b4); break;
case 'epsilon': ch = String.fromCharCode(0x03b5); break;
case 'zeta': ch = String.fromCharCode(0x03b6); break;
case 'eta': ch = String.fromCharCode(0x03b7); break;
case 'theta': ch = String.fromCharCode(0x03b8); break;
case 'iota': ch = String.fromCharCode(0x03b9); break;
case 'kappa': ch = String.fromCharCode(0x03ba); break;
case 'lambda': ch = String.fromCharCode(0x03bb); break;
case 'mu': ch = String.fromCharCode(0x03bc); break;
case 'nu': ch = String.fromCharCode(0x03bd); break;
case 'xi': ch = String.fromCharCode(0x03be); break;
case 'omicron': ch = String.fromCharCode(0x03bf); break;
case 'pi': ch = String.fromCharCode(0x03c0); break;
case 'rho': ch = String.fromCharCode(0x03c1); break;
case 'sigmaf': ch = String.fromCharCode(0x03c2); break;
case 'sigma': ch = String.fromCharCode(0x03c3); break;
case 'tau': ch = String.fromCharCode(0x03c4); break;
case 'upsilon': ch = String.fromCharCode(0x03c5); break;
case 'phi': ch = String.fromCharCode(0x03c6); break;
case 'chi': ch = String.fromCharCode(0x03c7); break;
case 'psi': ch = String.fromCharCode(0x03c8); break;
case 'omega': ch = String.fromCharCode(0x03c9); break;
case 'thetasym': ch = String.fromCharCode(0x03d1); break;
case 'upsih': ch = String.fromCharCode(0x03d2); break;
case 'piv': ch = String.fromCharCode(0x03d6); break;
case 'ensp': ch = String.fromCharCode(0x2002); break;
case 'emsp': ch = String.fromCharCode(0x2003); break;
case 'thinsp': ch = String.fromCharCode(0x2009); break;
case 'zwnj': ch = String.fromCharCode(0x200c); break;
case 'zwj': ch = String.fromCharCode(0x200d); break;
case 'lrm': ch = String.fromCharCode(0x200e); break;
case 'rlm': ch = String.fromCharCode(0x200f); break;
case 'ndash': ch = String.fromCharCode(0x2013); break;
case 'mdash': ch = String.fromCharCode(0x2014); break;
case 'lsquo': ch = String.fromCharCode(0x2018); break;
case 'rsquo': ch = String.fromCharCode(0x2019); break;
case 'sbquo': ch = String.fromCharCode(0x201a); break;
case 'ldquo': ch = String.fromCharCode(0x201c); break;
case 'rdquo': ch = String.fromCharCode(0x201d); break;
case 'bdquo': ch = String.fromCharCode(0x201e); break;
case 'dagger': ch = String.fromCharCode(0x2020); break;
case 'Dagger': ch = String.fromCharCode(0x2021); break;
case 'bull': ch = String.fromCharCode(0x2022); break;
case 'hellip': ch = String.fromCharCode(0x2026); break;
case 'permil': ch = String.fromCharCode(0x2030); break;
case 'prime': ch = String.fromCharCode(0x2032); break;
case 'Prime': ch = String.fromCharCode(0x2033); break;
case 'lsaquo': ch = String.fromCharCode(0x2039); break;
case 'rsaquo': ch = String.fromCharCode(0x203a); break;
case 'oline': ch = String.fromCharCode(0x203e); break;
case 'frasl': ch = String.fromCharCode(0x2044); break;
case 'euro': ch = String.fromCharCode(0x20ac); break;
case 'image': ch = String.fromCharCode(0x2111); break;
case 'weierp': ch = String.fromCharCode(0x2118); break;
case 'real': ch = String.fromCharCode(0x211c); break;
case 'trade': ch = String.fromCharCode(0x2122); break;
case 'alefsym': ch = String.fromCharCode(0x2135); break;
case 'larr': ch = String.fromCharCode(0x2190); break;
case 'uarr': ch = String.fromCharCode(0x2191); break;
case 'rarr': ch = String.fromCharCode(0x2192); break;
case 'darr': ch = String.fromCharCode(0x2193); break;
case 'harr': ch = String.fromCharCode(0x2194); break;
case 'crarr': ch = String.fromCharCode(0x21b5); break;
case 'lArr': ch = String.fromCharCode(0x21d0); break;
case 'uArr': ch = String.fromCharCode(0x21d1); break;
case 'rArr': ch = String.fromCharCode(0x21d2); break;
case 'dArr': ch = String.fromCharCode(0x21d3); break;
case 'hArr': ch = String.fromCharCode(0x21d4); break;
case 'forall': ch = String.fromCharCode(0x2200); break;
case 'part': ch = String.fromCharCode(0x2202); break;
case 'exist': ch = String.fromCharCode(0x2203); break;
case 'empty': ch = String.fromCharCode(0x2205); break;
case 'nabla': ch = String.fromCharCode(0x2207); break;
case 'isin': ch = String.fromCharCode(0x2208); break;
case 'notin': ch = String.fromCharCode(0x2209); break;
case 'ni': ch = String.fromCharCode(0x220b); break;
case 'prod': ch = String.fromCharCode(0x220f); break;
case 'sum': ch = String.fromCharCode(0x2211); break;
case 'minus': ch = String.fromCharCode(0x2212); break;
case 'lowast': ch = String.fromCharCode(0x2217); break;
case 'radic': ch = String.fromCharCode(0x221a); break;
case 'prop': ch = String.fromCharCode(0x221d); break;
case 'infin': ch = String.fromCharCode(0x221e); break;
case 'ang': ch = String.fromCharCode(0x2220); break;
case 'and': ch = String.fromCharCode(0x2227); break;
case 'or': ch = String.fromCharCode(0x2228); break;
case 'cap': ch = String.fromCharCode(0x2229); break;
case 'cup': ch = String.fromCharCode(0x222a); break;
case 'int': ch = String.fromCharCode(0x222b); break;
case 'there4': ch = String.fromCharCode(0x2234); break;
case 'sim': ch = String.fromCharCode(0x223c); break;
case 'cong': ch = String.fromCharCode(0x2245); break;
case 'asymp': ch = String.fromCharCode(0x2248); break;
case 'ne': ch = String.fromCharCode(0x2260); break;
case 'equiv': ch = String.fromCharCode(0x2261); break;
case 'le': ch = String.fromCharCode(0x2264); break;
case 'ge': ch = String.fromCharCode(0x2265); break;
case 'sub': ch = String.fromCharCode(0x2282); break;
case 'sup': ch = String.fromCharCode(0x2283); break;
case 'nsub': ch = String.fromCharCode(0x2284); break;
case 'sube': ch = String.fromCharCode(0x2286); break;
case 'supe': ch = String.fromCharCode(0x2287); break;
case 'oplus': ch = String.fromCharCode(0x2295); break;
case 'otimes': ch = String.fromCharCode(0x2297); break;
case 'perp': ch = String.fromCharCode(0x22a5); break;
case 'sdot': ch = String.fromCharCode(0x22c5); break;
case 'lceil': ch = String.fromCharCode(0x2308); break;
case 'rceil': ch = String.fromCharCode(0x2309); break;
case 'lfloor': ch = String.fromCharCode(0x230a); break;
case 'rfloor': ch = String.fromCharCode(0x230b); break;
case 'lang': ch = String.fromCharCode(0x2329); break;
case 'rang': ch = String.fromCharCode(0x232a); break;
case 'loz': ch = String.fromCharCode(0x25ca); break;
case 'spades': ch = String.fromCharCode(0x2660); break;
case 'clubs': ch = String.fromCharCode(0x2663); break;
case 'hearts': ch = String.fromCharCode(0x2665); break;
case 'diams': ch = String.fromCharCode(0x2666); break;
default: ch = ''; break;
}
}
i = semicolonIndex;
}
}
out += ch;
}
return out;
}
// ========================================================
function cimotifcalcPosition(ob,pop)
{
var cimotifL=0,cimotifR=0,cimotifT=0,cimotifB=0;
var cimotifpob = ob;
while (cimotifpob!=null){
cimotifL=cimotifL+cimotifpob.offsetLeft;
cimotifT=cimotifT+cimotifpob.offsetTop;
cimotifpob=cimotifpob.offsetParent;
}
var edgeRt,edgeBt,edgeTp;
if (cincie4 && !window.opera){
var paneRef = (document.compatMode && document.compatMode!="BackCompat") ? document.documentElement : document.body;
edgeRt = (paneRef.scrollLeft+paneRef.clientWidth-15);
edgeBt = (paneRef.scrollTop+paneRef.clientHeight-15);
edgeTp = (paneRef.scrollTop);
}else{
edgeRt = (window.pageXOffset+window.innerWidth-15);
edgeBt = (window.pageYOffset+window.innerHeight-18);
edgeTp = (window.pageYOffset);
}
pop.contentmeasure=pop.offsetWidth
if (edgeRt-cimotifL < pop.contentmeasure){
cimotifR=pop.contentmeasure-ob.offsetWidth;
}
pop.contentmeasure=pop.offsetHeight;
if (edgeBt-cimotifT < pop.contentmeasure){
cimotifB=pop.contentmeasure+ob.offsetHeight;
if (cimotifT-edgeTp < pop.contentmeasure)
cimotifB=pop.y+ob.offsetHeight-edgeTp;
}
if( cimotifL < cimotifR ){
cimotifL = cimotifR;
}
if( cimotifT < cimotifB ){
cimotifT = cimotifB;
}
pop.x=cimotifL;
pop.y=cimotifT;
pop.style.left=cimotifL-cimotifR+"px";
pop.style.top=cimotifT-cimotifB+ob.offsetHeight+"px";
}
// ========================================================
function cimotifShowPopup(obj, cimotiflinkarray, index)
{
if (cincie4 && event) {
event.cancelBubble = true;
if (event.stopPropagation)
event.stopPropagation();
}
cimotifClearPopup();
if ((cincie4||cincns6) && (cimotifPopup != null))
{
if (cimotiflinkarray != null && motifActiveArrayIndex != index) {
var numItems = cimotiflinkarray.length;
var innerpart = "";
if( cincTYP != "y" )
{
if(numItems < cincPIDCouponCount) { innerpart = ""; }
}
if(numItems > 2) {innerpart = cimotiflinkarray[2] + innerpart;}
if(numItems > 1) {innerpart = cimotiflinkarray[1] + innerpart;}
if(numItems > 0) {innerpart = cimotiflinkarray[0] + innerpart;}
document.getElementById("motifCouponTD").innerHTML=innerpart;
}
motifActiveArrayIndex = index;
cimotifPopup.style.left=cimotifPopup.style.top="-1000px";
cimotifcalcPosition(obj,cimotifPopup);
return false;
}
else
{
return true;
}
}
// ========================================================
function cimotifHidePopup(e)
{
var ok = 0;
if (cincie4) {
if (!cimotifPopup.contains(e.toElement)) {
ok = 1
}
} else if (cincns6) {
try {
a = e.currentTarget;
b = e.relatedTarget;
foundit = 0;
if (a != b) {
if (b.parentNode != null) {
ok = 1;
while (!foundit) {
if ((b = b.parentNode) == a) {foundit = 1; ok = 0;}
}
}
}
} catch (e) {;}
}
if (ok) cimotifDelayHide();
}
// ========================================================
function cimotifHide()
{
if (cimotifPopup!=null){
cimotifPopup.style.top = "-1000px";
motifActiveArrayIndex = -1;
}
return false;
}
// ========================================================
function cimotifDelayHide()
{
if (cincie4||cincns6)
delayhide=setTimeout("cimotifHide()",500);
return false;
}
// ========================================================
function cimotifClearPopup()
{
if (typeof delayhide!="undefined")
clearTimeout(delayhide);
}
// ========================================================
function cimotifAbout()
{
winStats='resizable=no,toolbar=no,location=no,directories=no,menubar=no,';
winStats+='scrollbars=yes,width=475,height=300';
if (navigator.appName.indexOf("Microsoft")>=0) {
winStats+=',left=10,top=25'
}else{
winStats+=',screenX=10,screenY=25'
}
helper=window.open(cincConcordanceUrl+"Ocellus-C.aspx?pub=" + cincPUB + "&typ=0&pid=" + cincPID + "&nid=" + cincNID + "&zid=" + cincZID + "&mod=" + cincMOD + "&typ=" + cincTYP + "&redirect=Concordance.aspx","",winStats);
}
// ========================================================
function motifaddmousehandlers(motifnode,index)
{
motifnode.onmouseover=function(){
this.style.color=cincFGC;
if( cincBGC.length ) { this.style.backgroundColor=cincBGC; }
this.style.borderBottom='none';
return cimotifShowPopup(this, motifArray[1][index], index);
};
motifnode.onmouseout=function(){
this.style.color=cincFGC;
this.style.backgroundColor=( cincBGC.length > 0 ? cincBGC : 'transparent');
this.style.borderTop='None';
this.style.borderBottom='dotted 2px '+cincDOT;
return cimotifDelayHide();
};
}
// ========================================================
function motifaddplainmousehandlers(motifnode,index)
{
motifnode.onmouseover=function(){
return cimotifShowPopup(this, motifArray[1][index], index);
};
motifnode.onmouseout=function(){
return cimotifDelayHide();
};
}
// ========================================================
function motifaddclickhandlers(motifnode,index)
{
motifnode.onclick=function(){
return cimotifShowPopup(this, motifArray[1][index], index);
};
motifnode.onmouseout=function(){
return cimotifDelayHide();
};
}
// ========================================================
function motifcouponword(index,hitFound,nodeIndex,word)
{
var node = concordanceNodes[nodeIndex].node;
var motifpn = node.parentNode;
var supChars = "";
var sNodeIndex = concordanceNodes[nodeIndex].sNodeIndex;
if( sNodeIndex > -1 && word.indexOf(concordanceSupNodes[sNodeIndex].keyword) > -1 )
{
// superscript node !
// make sure this word is the last word
var bLastWord = true;
for( var i=hitFound+word.length; i= 'a' && concordanceNodes[nodeIndex].keywords.charAt(i) <= 'z')
|| concordanceNodes[nodeIndex].keywords.charCodeAt(i) > 128 ) )
{
for( var j=i+1; j= 'a' && concordanceNodes[nodeIndex].keywords.charAt(j) <= 'z')
|| concordanceNodes[nodeIndex].keywords.charCodeAt(j) > 128 )
{
// another word !
bLastWord = false;
break;
}
}
break;
}
}
if( bLastWord )
{
supChars = concordanceSupNodes[sNodeIndex].character;
}
}
if (motifpn != null && motifpn.className != "cimotif") {
motifnv = node.nodeValue;
motifni = hitFound;
motifpre = document.createTextNode(motifnv.substr(0,motifni));
motifpost = document.createTextNode(motifnv.substr(motifni+word.length));
motif = document.createElement("A");
motif.innerHTML = motifnv.substr(motifni,word.length) + ( supChars.length > 0 ? ""+supChars+"" : "");
motif.style.backgroundColor.filter = "alpha(opacity = 20)";
motif.style.borderBottom = 'dotted 2px '+cincDOT;
motif.style.color = cincFGC;
if( cincBGC.length ) { motif.style.backgroundColor=cincBGC; }
if( cincBLD == "yes" ) {
motif.style.fontWeight='bold';
}
if( cincITL == "yes" ) {
motif.style.fontStyle='italic';
}
motif.style.textDecoration='none';
motif.style.cursor='pointer';
motif.className = 'cimotif';
motifaddmousehandlers(motif,index);
if( cincIMG == "yes" ) // show image next to highlighed word unless asked not to do so
{
motifimg = document.createElement('img');
motifimg.src = cincImageUrl + "showlist_icon.gif";
motifimg.height = '10';
motifimg.width = '10';
motifimg.style.borderWidth = '0';
motifimg.style.margin = '0px 0px 0px 0px';
motifimg.style.padding = '0px';
motifimg.style.styleFloat = 'none';
motifimg.style.cssFloat = 'none'; // needed for FireFox
motifimg.style.position = 'static';
}
motifpn.insertBefore(motifpre,node);
motifpn.insertBefore(motif,node);
if( cincIMG == "yes" ) { // show image next to highlighted word unless asked not to do so
motifpn.insertBefore(motifimg,node);
}
var nNode = motifpn.insertBefore(motifpost,node);
concordanceNodes[nodeIndex] = new ConcordanceNode(nNode,concordanceNodes[nodeIndex].sndIndex,cmotifHtmlDecode(nNode.nodeValue.toLowerCase()));
motifpn.removeChild(node);
if( supChars.length > 0 )
{
var sNode = concordanceSupNodes[sNodeIndex].node;
sNode.parentNode.removeChild(sNode);
}
++motifHits;
return true;
}
return false;
}
// ========================================================
function motifexecute()
{
// underline mode
if( cincMOD == "u" ) {
cmotifDefinePopup();
for (var i=0 ; i < motifCount; i++) {
if ( motifHits >= cincNPP ) break;
var mWord = cmotifHtmlDecode(motifArray[0][i]);
var regExp = new RegExp("[^a-z0-9]" + mWord + "[^a-z0-9]","");
for( var j=0; j < concordanceNodes.length; j++ )
{
var mData = " " + concordanceNodes[j].keywords + " ";
hitFound = mData.search(regExp);
if( hitFound >= 0 && motifcouponword(i,hitFound,j,mWord) )
{
break;
}
}
}
return;
}
// ad unit mode
// ------------------------------------------------
if( cincAdUnitMode ) { // simple lines of text with n number of offers
if(motifCount > cincTYPm) {
motifCount = cincTYPm;
}
cia=document.createElement('A');
cia.innerHTML = 'Print Coupons by Coupons.com';
cia.style.cursor='pointer';
cia.onmouseover=function() {
window.status='Print Coupons';
};
cia.onmouseout=function() {
window.status='';
};
cia.onclick=function() {
return cimotifAbout();
};
cia.target = '_blank';
cia.style.color='#0068aa';
cia.style.fontSize='11px';
cia.style.textDecoration='none';
cia.style.fontWeight='bold';
cia.style.fontFamily='verdana';
cia.href = cincMicrositeUrl + "?pid=" + cincPID + "&nid=" + cincNID + "&zid=" + cincZID;
document.getElementById('cimotifdom').appendChild( cia );
var motifHTML = "";
for (i=0 ; i < motifCount ; i++) {
motifHTML += motifArray[0][i];
}
document.getElementById('cimotifdom').innerHTML += motifHTML;
}
// ad unit format with proper table structure
// ------------------------------------------------
else
{
if (motifCount > cincTYPm) {
motifCount = cincTYPm;
}
var cimotifadunit = document.createElement('table');
cimotifadunit.style.border = '1px dashed #C2C2B7';
cimotifadunit.width = cincTYPw;
cimotifadunit.height = cincTYPh;
cimotifadunit.backgroundColor = '#fafafa';
cimotifadunit.setAttribute('cellPadding',0);
cimotifadunit.setAttribute('cellSpacing',0);
var cimotifadunitb = document.createElement('tbody');
cimotifadunitb.setAttribute('cellPadding',0);
cimotifadunitb.setAttribute('cellSpacing',0);
cimotifadunitb.backgroundColor = '#fafafa';
tr = document.createElement('tr');
tr.style.height='6px';
td = document.createElement('td');
td.style.textAlign='left';
td.style.padding='0px';
td.style.backgroundColor='#ff5400';
tr.appendChild(td);
cimotifadunitb.appendChild(tr);
tr = document.createElement('tr');
tr.style.height='10px';
td = document.createElement('td');
td.style.textAlign='left';
td.style.padding=cincTYPp;
td.style.fontFamily='verdana';
td.style.backgroundColor='#fafafa';
td.style.fontSize='11px';
td.style.fontWeight='bold';
td.style.color='black';
cia =document.createTextNode('Print Coupons');
td.appendChild(cia);
tr.appendChild(td);
cimotifadunitb.appendChild(tr);
for (i=0 ; i < motifCount ; i++) { // beginning of loop
tr = document.createElement('tr');
td = document.createElement('td');
td.style.textAlign='left';
td.style.padding=cincTYPp;
td.style.backgroundColor='#fafafa';
td.innerHTML = motifArray[0][i];
tr.appendChild(td);
cimotifadunitb.appendChild(tr);
if( cincTYP != "468x60" && cincTYP != "728x90" ) {
tr = document.createElement('tr');
td = document.createElement('td');
td.style.textAlign='center';
td.style.padding=cincTYPp;
td.style.backgroundColor='#fafafa';
if(i != motifCount-1) {
cia = document.createElement('img');
cia.src = cincImageUrl + "dot_divgray.gif";
cia.height = '1';
cia.width = cincTYPw;
td.appendChild(cia);
tr.appendChild(td);
cimotifadunitb.appendChild(tr);
}
}
} // end of loop
if( cincTYP != "468x60" && cincTYP != "728x90" ) {
tr=document.createElement('tr');
tr.style.height='10px';
td=document.createElement('td');
td.style.textAlign='left';
td.style.padding=cincTYPp;
td.style.fontFamily='verdana';
td.style.fontSize='9px';
td.style.fontWeight='bold';
td.style.backgroundColor='#fafafa';
td.style.color='#0068aa';
cia =document.createElement('A');
cia.innerHTML = 'by Coupons.com';
cia.style.cursor='pointer';
cia.onmouseover=function(){
window.status='Print Coupons';
};
cia.onmouseout=function(){
window.status='';
};
cia.onclick=function(){
return cimotifAbout();
};
cia.target = '_blank';
cia.style.color='#0068aa';
cia.style.fontSize='9px';
cia.style.textDecoration='none';
cia.style.fontWeight='bold';
cia.style.fontFamily='verdana';
td.appendChild(cia);
tr.appendChild(td);
cimotifadunitb.appendChild(tr);
}
cimotifadunit.appendChild(cimotifadunitb);
document.getElementById('cimotifdom').appendChild( cimotifadunit );
}
}
// ========================================================
function cmotifIsValidWord(word)
{
var charCount = 0;
if( word.length > 2 )
{
for( var i = 0; i < word.length; i++ )
{
if( (word.charAt(i) >= 'a' && word.charAt(i) <= 'z') || word.charCodeAt(i) > 128 )
{
charCount++;
if( charCount > 2 ) return true;
}
}
}
return false;
}
// ========================================================
function motifPreProcess(node,depth,parentNodeNames) {
if( motifContentLength > cinc_MOTIF_LEN_LIMIT || depth > cinc_DEPTH_MAX ) return;
if (node.hasChildNodes) {
var hi_cn;
for (hi_cn=0;hi_cn < node.childNodes.length;hi_cn++) {
motifPreProcess(node.childNodes[hi_cn],depth+1,parentNodeNames+"|"+node.nodeName+"|");
}
}
if (node.nodeType == 3 && !(parentNodeNames.indexOf("|A|") > -1)
&& !(parentNodeNames.length >= 8 && parentNodeNames.substring(parentNodeNames.length-8) == "|SCRIPT|") )
{
// superscripted tag node
if( motifPreProcessToggle && motifLastNode != null && parentNodeNames.indexOf("|SUP|") > -1 )
{
var sWord = cmotifFilterContent(node.nodeValue.toLowerCase());
// last word is the last one considered ?
if( motifAllWords.length > 0 && motifLastWord == motifAllWords[motifAllWords.length-1] )
{
motifAllWords[motifAllWords.length-1] = motifLastWord+sWord;
motifContentLength += sWord.length;
}
// last word is not the last one considered
else
{
motifAllWords.push(motifLastWord+sWord);
motifContentLength += (motifLastWord.length+sWord.length);
}
// superscript node !
var cNodeIndex = -1;
for( var j=concordanceNodes.length-1; j >= 0; j-- )
{
if( concordanceNodes[j].node == motifLastNode )
{
cNodeIndex = j;
concordanceNodes[j] = new ConcordanceNode(motifLastNode,concordanceSupNodes.length,
cmotifHtmlDecode(motifLastNode.nodeValue.toLowerCase())+cmotifHtmlDecode(sWord));
break;
}
}
if( cNodeIndex == -1 )
{
// word is valid !
var cNode = new ConcordanceNode(motifLastNode,concordanceSupNodes.length,cmotifHtmlDecode(motifLastNode.nodeValue.toLowerCase())+cmotifHtmlDecode(sWord));
concordanceNodes.push(cNode);
}
var sNode = new ConcordanceSupNode(node,cmotifHtmlDecode(motifLastWord)+cmotifHtmlDecode(sWord),cmotifHtmlDecode(sWord));
concordanceSupNodes.push(sNode);
}
else if (motifPreProcessToggle && node.nodeValue.length > 2)
{
var bValid = false;
var mWords = cmotifFilterContent(node.nodeValue.toLowerCase()).split(" ");
if( mWords.length > 0 ) { motifLastNode = node; motifLastWord = mWords[mWords.length-1]; } else { motifLastNode = null; }
for (i=0 ; i < mWords.length ; i++) {
if( cmotifIsValidWord(mWords[i]) && !motifAllWords.cincContains(mWords[i]) )
{
if( !(node.nodeValue == "Print these coupons..."
|| node.nodeValue == "Click to print a coupon...") )
{
bValid = true;
motifAllWords.push(mWords[i]);
motifContentLength += mWords[i].length;
if( motifContentLength > cinc_MOTIF_LEN_LIMIT ) break;
}
}
}
if( bValid )
{
// word is valid !
var cNode = new ConcordanceNode(node,-1,cmotifHtmlDecode(node.nodeValue.toLowerCase()));
concordanceNodes.push(cNode);
}
}
}
var concordanceCheck = (node.nodeType == 8 ? node.nodeValue.toLowerCase() : node.nodeName.toLowerCase());
if (concordanceCheck.substring(0,11) == "concordance") {
if (concordanceMode)
{
// purge existing content
motifAllWords = new Array();
concordanceNodes = new Array();
concordanceMode = false;
}
if (concordanceCheck == "concordance-begin") motifPreProcessToggle = true;
else if (concordanceCheck == "concordance-end") motifPreProcessToggle = false;
}
}
// ========================================================
function cimotifreplace(checkMe,toberep,repwith) {
var temp = checkMe;
var i = temp.indexOf(toberep);
while(i > -1) {
temp = temp.replace(toberep, repwith);
i = temp.indexOf(toberep);
}
return temp;
}
// ========================================================
function cmotifFilterContent(content)
{
content = cimotifreplace(content,".","");
content = cimotifreplace(content,",","");
content = cimotifreplace(content,":","");
content = cimotifreplace(content,"\"","");
content = cimotifreplace(content,""","");
content = cimotifreplace(content,"?","");
content = cimotifreplace(content,"!","");
content = cimotifreplace(content,"[","");
content = cimotifreplace(content,"]","");
content = cimotifreplace(content,"\\","");
content = cimotifreplace(content,"/","");
content = cimotifreplace(content,"=","");
content = cimotifreplace(content,">","");
content = cimotifreplace(content,"<","");
content = cimotifreplace(content,"^","");
content = cimotifreplace(content,"&","");
content = cimotifreplace(content,"*","");
content = cimotifreplace(content,"+","");
content = cimotifreplace(content,"(","");
content = cimotifreplace(content,")","");
content = cimotifreplace(content,"|","");
content = cimotifreplace(content,"%u2019","'");
content = cimotifreplace(content,"\n"," ");
content = cimotifreplace(content,"\r"," ");
content = cimotifreplace(content,"\t"," ");
content = cimotifreplace(content," "," ");
return content;
}
// ========================================================
function cimotifLoad() {
motifPreProcess(document.getElementsByTagName("body")[0],0,"");
var motifContent = motifAllWords.join(" ");
motifContent = escape(motifContent);
// minimize the white space
motifContent = cimotifreplace(motifContent,"%0A","");
motifContent = cimotifreplace(motifContent,"%09%09","%09");
motifContent = cimotifreplace(motifContent,"%09%20","%20");
motifContent = cimotifreplace(motifContent,"%20%09","%20");
motifContent = cimotifreplace(motifContent,"%20%20","%20");
motifContent = cimotifreplace(motifContent,"%20","+");
var cimotifgoStr = cincConcordanceUrl + "Ocellus-G.aspx?pub=" + cincPUB + "&mod=" + cincMOD + "&typ=" + cincTYP + "&pid=" + cincPID + "&nid=" + cincNID + "&zid=" + cincZID + "&uid=" + cincUID + "&bAdUnitMode=" + cincAdUnitMode + "&coupimg=" + cincCOUPIMG + "&exccat=" + cincExcCat + "&input=";
cimotifgoStr += (motifContent.charAt(0) == '+' ? '' : '+')
+ motifContent.substring(0,(cinc_MOTIF_LEN_LIMIT - 3 - cimotifgoStr.length))
+ (motifContent.charAt(motifContent.length-1) == '+' ? '' : '+');
var e = document.createElement("script");
e.src = cimotifgoStr;
e.type = "text/javascript";
document.getElementsByTagName("body")[0].appendChild(e);
}
var cimotifprevonload = null;
if (typeof window.onload == 'function') {
cimotifprevonload = window.onload;
window.onload = function(){cimotifprevonload(); cimotifLoad(); return false;}
} else {
window.onload = function(){return cimotifLoad();}
}
if( cincMOD != "u" ) {
document.write("");
}