if (typeof FFN === 'undefined' || !FFN) { var FFN = {}; } FFN.banners = FFN.banners || {}; FFN.banners.ad_pop = { name : 'FriendFinder Networks, Ad Pop', version : '1.1', url : 'http://ffn.com', email : 'affiliates@dammo.com', config : { banners_domain : 'http://banners.dammo.com', site : 'dammo', gpid : 'g940718', pid : 'p101', hostpid : '', creativeTracking : 'ad_pop', cookieName : 'FFN_adPop_p101', href : 'http://banners.dammo.com', freqCap : '', page : 'cover', land : '', popW_Width : parseInt('1024',10), popW_Height : parseInt('768',10), popW_Loaded : false, popW_Opened : false, srcCheck : '/go/page/js_ad_pop', keyRef : 'lp_', keysExcluded : { plain_text : 1, popunder_off : 1, no_click : 1, pid : 1, freq_cap : 1, page : 1, land : 1, win_width : 1, win_height : 1, skip_lpo : 1 }, MS : { Y : 31557600000, W : 604800000, D : 86400000, H : 3600000, M : 60000, S : 1000 } }, build : function(){ var cfg = FFN.banners.ad_pop.config; if (cfg.popW_Loaded === true){ return; } if(window.SymRealWinOpen){ window.open = SymRealWinOpen; } if(window.NS_ActualOpen){ window.open = NS_ActualOpen; } cfg.popW_Width = cfg.popW_Width > 0 ? cfg.popW_Width : 1024; cfg.popW_Height = cfg.popW_Height > 0 ? cfg.popW_Height : 768; cfg.land = cfg.land.length > 0 ? cfg.land : 'gallery_landing_page'; var extraArgs = FFN.banners.ad_pop.getArgs(cfg.srcCheck, cfg.keysExcluded, cfg.keyRef); var hostpidArg = cfg.hostpid.length > 0? '&hostpid=' + cfg.hostpid : ''; var qsArgs = 'creative=' + cfg.creativeTracking + hostpidArg + extraArgs; var winLeft = Math.max( 0, ( (screen.width - cfg.popW_Width) / 2) ); var winTop = Math.max( 0, ( ( (screen.height - cfg.popW_Height) / 2) - 50) ); var winUrl = { 'cover' : cfg.href + '/go/' + cfg.pid + '?' + qsArgs, 'registration' : cfg.href + '/go/' + cfg.pid + '+reg?' + qsArgs, 'search' : cfg.href + '/search/?pid=' + cfg.pid + '&' + qsArgs, 'gallery' : cfg.banners_domain + '/go/page/gallery_landing_page?pid=' + cfg.pid + '&' + qsArgs, 'landingx' : cfg.banners_domain + '/go/page/' + cfg.land + '?pid=' + cfg.pid + '&' + qsArgs, 'video' : cfg.href + '/p/video/manager.cgi?pid=' + cfg.pid + '&min_age=18&max_age=&date_range=30_day&action=sort_score&' + qsArgs }; if(typeof winUrl[cfg.page] === 'undefined' || (cfg.site === 'cams' && cfg.page === 'search') ){ cfg.page = 'registration'; } if(cfg.page !== 'cover'){ winUrl[cfg.page] += '&skip_lpo=1'; } cfg.popW_Opened = window.open(winUrl[cfg.page], 'FFN_ad', 'toolbar=1,scrollbars=1,location=1,statusbar=1,menubar=1,resizable=1,top=' + winTop + ',left=' + winLeft + ',width=' + cfg.popW_Width + ',height=' + cfg.popW_Height); if(cfg.popW_Opened){ window.focus(); cfg.popW_Opened.blur(); } cfg.freqCap = /\d+/.test(cfg.freqCap) ? parseFloat(cfg.freqCap) : 0; if(cfg.freqCap !== 0){ FFN.banners.ad_pop.setCookie(cfg.cookieName,1,cfg.freqCap,'/'); } cfg.popW_Loaded = true; }, getArgs : function(searchStr, exclude, ref){ var idx, key, mKey, theKey; var re = new RegExp(searchStr); var scrTags = document.getElementsByTagName('script'); var scrTagsLen = scrTags.length; var scrTagSrc = ''; var result = ''; var keyValues = {}; var refLen = ref.length; for (idx = 0; idx < scrTagsLen; idx++){ if(scrTags[idx].src.search(re) !== -1){ scrTagSrc = scrTags[idx].src; } } keyValues = FFN.banners.ad_pop.getQueryStringKeyValues(scrTagSrc); for(key in keyValues){ if(typeof exclude[key] === 'undefined'){ if(key.substr(0,refLen) === ref){ mKey = key.substr(refLen, key.length); } theKey = exclude[mKey] === 1? mKey : key; result += '&' + theKey + '=' + keyValues[key]; mKey = ''; } } return result; }, getQueryStringKeyValues : function(url){ var urlQSPos = url.indexOf('?'); if(typeof url === 'undefined' || urlQSPos === -1){ return; } var temp, i, urlQSLen; var qs = {}; var urlQS = url; urlQS = urlQS.substr(urlQSPos+1, urlQS.length); urlQS = urlQS.split('&'); urlQSLen = urlQS.length; for(i = 0; i < urlQSLen; i++){ temp = urlQS[i].split('='); qs[temp[0]] = temp[1]; } return qs; }, setCookie : function(name,value,expires,path,domain,secure){ var expStr = ''; var type = 'H'; if(expires){ var expDte = new Date(); var expMS = expDte.valueOf() + (this.config.MS[type] * expires); expDte.setTime(expMS); expStr = '; expires=' + expDte.toGMTString(); } var pathStr = ( ( path === undefined ) ? '' : ( '; path=' + path ) ); var domainStr = ( ( domain === undefined ) ? '' : ( '; domain=' + domain ) ); var secureStr = ( ( secure === undefined ) ? '' : ( '; secure' ) ); document.cookie = name + '=' + escape(value) + expStr + pathStr + domainStr + secureStr; }, getCookie : function(name){ var output = null; var cks = ' ' + document.cookie + ';'; var matchCk = ' ' + name + '='; var startPos = cks.indexOf(matchCk); var endPos; if(startPos != -1){ startPos += matchCk.length; endPos = cks.indexOf(';', startPos); output = unescape(cks.substring(startPos, endPos)); } return output; }, init : function(){ if(!FFN.banners.ad_pop.getCookie(FFN.banners.ad_pop.config.cookieName)){ if (window.captureEvents){ window.captureEvents(Event.CLICK); window.onclick = FFN.banners.ad_pop.build; }else{ document.onclick = FFN.banners.ad_pop.build; } } }, addEvent : function(elm,type,fn){ if(elm.addEventListener){ elm.addEventListener(type, fn, false); }else if(elm.attachEvent){ elm.attachEvent('on' + type, fn); } } }; FFN.banners.ad_pop.addEvent(window, 'load', FFN.banners.ad_pop.init);