if(typeof console == 'undefined'){
console = {log: function(){}}
}
/**
* Returns child element by id
*
* getChildById(id)
* getChildById(tagName, id)
*
* Returns object or null
*/
Object.prototype.getChildById = function() {
if (!this || ("undefined" == typeof(this.tagName))) {
return null;
}
var tagName = "*";
var id = null;
if (0 == arguments.length) {
return null;
} else if (1 == arguments.length) {
id = arguments[0];
} else {
tagName = arguments[0];
id = arguments[1];
}
var children = this.getElementsByTagName(tagName);
for (var i = 0; i < children.length; i++) {
if (children[i].id == id) {
return children[i];
}
}
return null;
}
/**
* Returns child element by class name
*
* getChildByClass(className)
* getChildByClass(tagName, className)
*
* Returns object or null
*/
Object.prototype.getChildByClass = function() {
if (!this || ("undefined" == typeof(this.tagName))) {
return null;
}
var tagName = "*";
var className = null;
if (0 == arguments.length) {
return null;
} else if (1 == arguments.length) {
className = arguments[0];
} else {
tagName = arguments[0];
className = arguments[1];
}
var children = this.getElementsByTagName(tagName);
var re = new RegExp("(?:^|\\s)" + className + "(?:\\s|$)");
var results = [];
for (var i = 0; i < children.length; i++) {
if (children[i].className.match(re)) {
//return children[i];
results.push(children[i]);
}
}
if (0 < results.length) {
if (1 == results.length) {
return results[0];
}
return results;
}
return null;
}
/**
* Returns child element by id for IE
*
* getChildById(id)
* getChildById(tagName, id)
*
* Returns object or null
*/
function getChildById() {
var obj = null;
var tagName = "*";
var id = null;
if (1 >= arguments.length) {
return null;
} else if (2 == arguments.length) {
obj = arguments[0];
id = arguments[1];
} else {
obj = arguments[0];
tagName = arguments[1];
id = arguments[2];
}
if (!obj || ("undefined" == typeof(obj.tagName))) {
return null;
}
var children = obj.getElementsByTagName(tagName);
for (var i = 0; i < children.length; i++) {
if (children[i].id == id) {
return children[i];
}
}
return null;
}
/**
* Returns child element by class name
*
* getChildByClass(className)
* getChildByClass(tagName, className)
*
* Returns object or null
*/
function getChildByClass() {
var obj = null;
var tagName = "*";
var className = null;
if (1 >= arguments.length) {
return null;
} else if (2 == arguments.length) {
obj = arguments[0];
className = arguments[1];
} else {
obj = arguments[0];
tagName = arguments[1];
className = arguments[2];
}
if (!obj || ("undefined" == typeof(obj.tagName))) {
return null;
}
var children = obj.getElementsByTagName(tagName);
var re = new RegExp("(?:^|\\s)" + className + "(?:\\s|$)");
var results = [];
for (var i = 0; i < children.length; i++) {
if (children[i].className.match(re)) {
//return children[i];
results.push(children[i]);
}
}
if (0 < results.length) {
if (1 == results.length) {
return results[0];
}
return results;
}
return null;
}
var SMARTPPC;
if (!SMARTPPC) {
SMARTPPC = {};
}
if (!SMARTPPC.AJAX) {
SMARTPPC.AJAX = {
_params : {},
_get_request : function () {
var xmlreq = false;
if (window.XMLHttpRequest) {
xmlreq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// Try ActiveX
try {
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e1) {
// first method failed
try {
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
// both methods failed
}
}
}
return xmlreq;
},
_prepare_params : function (params) {
try {
var result_array = [];
for (var key in params) {
if ("function" == typeof(params[key])) continue;
result_array.push(escape(key) + "=" + escape(params[key]));
//result_array.push(key + "=" + params[key]);
}
return result_array.join("&");
} catch (e) {}
return "";
},
get : function (url, params, callback) {
if ("undefined" == typeof(url)) {
return false;
}
var req = this._get_request();
if (!req) {
return false;
}
if ("undefined" != typeof(params)) {
params = this._prepare_params(params);
if (0 < params.length) {
url += "?" + params;
}
}
if ("undefined" != typeof(callback)) {
//register the callback handler function
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
callback(responseText);
}
}
}
req.open("GET", url, true);
req.send(null);
},
post : function (url, params, callback) {
if ("undefined" == typeof(url)) {
return false;
}
var req = this._get_request();
if (!req) {
return false;
}
if ("undefined" != typeof(callback)) {
//register the callback handler function
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
callback(req.responseText);
}
}
}
req.open("POST", url, true);
if ("undefined" != typeof(params)) {
params = this._prepare_params(params);
} else {
params = "";
}
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-Length", params.length);
//get the value from the text input element and send it to server
req.send(params);
}
};
}
SMARTPPC.translit = function(str) {
var r = ['А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я',
'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'];
var e = ['A','B','V','G','D','YE','YO','ZH','Z','I','Y','K','L','M','N','O','P','R','S','T','U','F','KH','TS','CH','SH','SCH','_','Y','_','E','YU','YA',
'a','b','v','g','d','ye','yo','zh','z','i','y','k','l','m','n','o','p','r','s','t','u','f','kh','ts','ch','sh','sch','_','y','_','e','yu','ya']
var new_str = "", char;
for (var i = 0; i < str.length; i++) {
char = str.charAt(i);
for (var j = 0; j < r.length; j++) {
if (char == r[j]) {
char = e[j];
break;
}
}
new_str += char;
}
return new_str;
}
if (!SMARTPPC.INTEXT) {
SMARTPPC.INTEXT={};
SMARTPPC.INTEXT.keywords_to_intext=[];
SMARTPPC.INTEXT.keyword_to_id={};
SMARTPPC.INTEXT.span_id='SMARTPPCintext_' + Math.round( Math.random() * 999999999 );
SMARTPPC.INTEXT.intext_text_color='#006600';
SMARTPPC.INTEXT.ad_width=310;
SMARTPPC.INTEXT.ad_height=284;
SMARTPPC.INTEXT.time_limits={};
SMARTPPC.INTEXT.ad_data = [];
SMARTPPC.INTEXT.config={ 'open_in_new_window': 0,
'max_words_to_intext': 100,
'max_char_for_keywords': 1500,
'max_char_for_textnodes': 5000,
'max_adserver_calls': 2,
'min_char_per_keyword': 3 };
document.write('');
}
var sppcsUserAgent = navigator.userAgent;
var sppcfAppVersion = parseFloat(navigator.appVersion);
var sppcisKHTML = sppcsUserAgent.indexOf('KHTML') > -1 || sppcsUserAgent.indexOf('Konqueror') > -1 || sppcsUserAgent.indexOf('AppleWebKit') > -1;
var sppcisMoz = sppcsUserAgent.indexOf("Gecko") > -1 && !sppcisKHTML;
var sppcisMinMoz1 = sppcisMinMoz1_4 = sppcisMinMoz1_5 = false;
var sppcisOpera = sppcsUserAgent.indexOf('Opera') > -1;
var sppcisIE = sppcsUserAgent.indexOf('compatible') > -1 && sppcsUserAgent.indexOf('MSIE') > -1 && !sppcisOpera;
var sppcisMinIE4 = sppcisMinIE5 = sppcisMinIE5_5 = sppcisMinIE6 = sppcisMinKHTML5 = false;
function sppccompareVersions(sVersion1, sVersion2) {
var aVersion1 = sVersion1.split('.');
var aVersion2 = sVersion2.split('.');
if (aVersion1.length > aVersion2.length) {
for (var i=0; i < aVersion1.length - aVersion2.length; i++) {
aVersion2.push('0');
}
} else if (aVersion1.length < aVersion2.length) {
for (vari=0; i < aVersion2.length - aVersion1.length; i++) {
aVerison1.push('0');
}
}
for (var i=0; i < aVersion1.length; i++) {
if (aVersion1[i] < aVersion2[i]) {
return -1;
} else if (aVersion1[i] > aVersion2[i]) {
return 1;
}
}
return 0;
}
// this tests for the different versions of mozilla
if (sppcisMoz) {
var sppcreMoz = new RegExp("rv:(\\d+\\.\\d+(?:\\.\\d+)?)");
sppcreMoz.test(sppcsUserAgent);
sppcisMinMoz1 = sppccompareVersions(RegExp["$1"], "1.0") >= 0;
sppcisMinMoz1_4 = sppccompareVersions(RegExp["$1"], "1.4") >= 0;
sppcisMinMoz1_5 = sppccompareVersions(RegExp["$1"], "1.5") >= 0;
}
// this tests for the different versions of ie
sppcisIE6 = false;
if (sppcisIE) {
var sppcre_IE = new RegExp('MSIE (\\d+\\.\\d+)');
sppcre_IE.test(sppcsUserAgent);
var sppcfIEVersion = parseFloat(RegExp['$1']);
// these are the minimal version number that will be accepted
sppcisMinIE4 = sppcfIEVersion >= 4;
sppcisMinIE5 = sppcfIEVersion >= 5;
sppcisMinIE5_5 = sppcfIEVersion >= 5.5;
sppcisMinIE6 = sppcfIEVersion >= 6.0;
sppcisIE6 = sppcfIEVersion >= 7.0?false:true;
sppcisIE7 = sppcfIEVersion == 7.0?true:false;
}
if (sppcisKHTML) {
sppcisMinKHTML5 = sppcfAppVersion >= 5;
}
// stopword list
var SMARTPPC;
if (!SMARTPPC) {
SMARTPPC = {};
}
if (!SMARTPPC.stopword_list) {
SMARTPPC.stopword_list = {"about":1,"above":1,"across":1,"after":1,"afterwards":1,"again":1,"against":1,"all":1,"almost":1,"alone":1,"along":1,"already":1,"also":1,"although":1,"always":1,"among":1,"amongst":1,"amoungst":1,"amount":1,"and":1,"another":1,"anyhow":1,"anyone":1,"anything":1,"anyway":1,"anywhere":1,"are":1,"around":1,"back":1,"became":1,"because":1,"become":1,"becomes":1,"becoming":1,"been":1,"before":1,"beforehand":1,"behind":1,"being":1,"below":1,"beside":1,"besides":1,"between":1,"beyond":1,"both":1,"but":1,"by":1,"call":1,"can":1,"cannot":1,"cant":1,"con":1,"cool":1,"could":1,"couldnt":1,"describe":1,"detail":1,"doesn't":1,"done":1,"down":1,"due":1,"during":1,"each":1,"eight":1,"either":1,"eleven":1,"else":1,"elsewhere":1,"empty":1,"enough":1,"etc":1,"even":1,"ever":1,"every":1,"everyone":1,"everything":1,"everywhere":1,"except":1,"few":1,"fify":1,"fill":1,"find":1,"fire":1,"five":1,"for":1,"former":1,"formerly":1,"found":1,"four":1,"free":1,"from":1,"front":1,"full":1,"further":1,"get":1,"give":1,"had":1,"hadn't":1,"has":1,"hasnt":1,"have":1,"hence":1,"her":1,"here":1,"hereafter":1,"hereby":1,"herein":1,"hereupon":1,"hers":1,"herself":1,"him":1,"himself":1,"his":1,"how":1,"however":1,"inc":1,"indeed":1,"interest":1,"into":1,"its":1,"itself":1,"keep":1,"last":1,"latter":1,"latterly":1,"least":1,"ltd":1,"made":1,"many":1,"may":1,"meanwhile":1,"might":1,"mine":1,"more":1,"moreover":1,"most":1,"mostly":1,"much":1,"must":1,"mustn't":1,"myself":1,"namely":1,"neither":1,"never":1,"nevertheless":1,"next":1,"nine":1,"nobody":1,"none":1,"noone":1,"nor":1,"not":1,"nothing":1,"now":1,"nowhere":1,"off":1,"often":1,"once":1,"one":1,"only":1,"onto":1,"other":1,"others":1,"otherwise":1,"our":1,"ours":1,"ourselves":1,"out":1,"over":1,"own":1,"part":1,"per":1,"perhaps":1,"please":1,"put":1,"rather":1,"same":1,"see":1,"seem":1,"seemed":1,"seeming":1,"seems":1,"several":1,"she":1,"should":1,"show":1,"side":1,"since":1,"sincere":1,"site":1,"six":1,"some":1,"somehow":1,"someone":1,"something":1,"sometime":1,"sometimes":1,"somewhere":1,"still":1,"such":1,"target":1,"take":1,"ten":1,"than":1,"that":1,"the":1,"their":1,"them":1,"themselves":1,"then":1,"thence":1,"there":1,"thereafter":1,"thereby":1,"therefore":1,"therein":1,"thereupon":1,"these":1,"they":1,"third":1,"this":1,"those":1,"though":1,"through":1,"throughout":1,"thru":1,"thus":1,"together":1,"too":1,"top":1,"toward":1,"towards":1,"two":1,"under":1,"until":1,"upon":1,"very":1,"via":1,"was":1,"web":1,"website":1,"well":1,"were":1,"what":1,"whatever":1,"when":1,"whence":1,"whenever":1,"where":1,"whereafter":1,"whereas":1,"whereby":1,"wherein":1,"whereupon":1,"wherever":1,"whether":1,"which":1,"while":1,"whither":1,"who":1,"whoever":1,"whole":1,"whom":1,"whose":1,"why":1,"will":1,"with":1,"within":1,"without":1,"would":1,"www":1,"yet":1,"you":1,"your":1,"yours":1,"yourself":1,"yourselves":1,"save":1,"track":1,"link":1,"links":1,"file":1,"document":1,"video":1,"audio":1,"upload":1,"uploaded":1,"download":1,"downloaded":1,"comment":1,"add":1,"contact":1,"here":1,"requirement":1,"requirements":1,"info":1,"album":1,"rate":1};
}
SMARTPPC.INTEXT.is_intextd;
SMARTPPC.INTEXT.start_time;
SMARTPPC.INTEXT.keywords_already_intextd = [];
SMARTPPC.INTEXT.keywords_ids_already_intextd_str = "";
SMARTPPC.INTEXT.text_nodes = [];
SMARTPPC.INTEXT.SMARTPPCintext_tags = [];
SMARTPPC.INTEXT.tags_to_ignore = {'A':1,'H1':1,'H2':1,'H3':1,'H4':1,'H5':1,'H6':1,'TH':1,'SCRIPT':1,'NOSCRIPT':1,'SELECT':1,'IFRAME':1,'TITLE':1,'TEXTAREA':1,'DT': 1,'DL':1,'DD':1,'FIELDSET':1,'LEGEND':1,'ACRONYM':1,'ADDRESS':1,'LABEL':1}
SMARTPPC.INTEXT.tags_to_use = {'P':1,'BODY':1}
SMARTPPC.INTEXT.current_textnode = 0;
SMARTPPC.INTEXT.unfiltered_keywords = [];
SMARTPPC.INTEXT.filtered_keywords = {};
SMARTPPC.INTEXT.filtered_keywords.sppclength = 0;
SMARTPPC.INTEXT.ad_url = '';
SMARTPPC.INTEXT.intext_ad_timeout_handle;
SMARTPPC.INTEXT.keyword = null;
SMARTPPC.INTEXT.div_keyword = null;
SMARTPPC.INTEXT.display_ad = false;
SMARTPPC.INTEXT.keyword_set_intextd = false;
SMARTPPC.INTEXT.min_word_count = 1;
SMARTPPC.INTEXT.use_cache = false;
SMARTPPC.INTEXT.box_hide_time = 1000;
SMARTPPC.INTEXT.box_show_timeout = 400;
SMARTPPC.INTEXT.img_ext = sppcisIE6?'gif':'png';
SMARTPPC.append_onload = function (func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function () {
oldonload();
func();
}
}
}
SMARTPPC.append_script = function (url, span_id) {
var span_to_append = document.getElementById(span_id);
var sppcscript = document.createElement('script');
sppcscript.src = url;
sppcscript.type = 'text/javascript';
span_to_append.appendChild(sppcscript);
}
SMARTPPC.element_in_array = function ( element, element_array ) {
for ( var k = 0; k < element_array.length; k++ )
if ( element_array[k] == element ) return true;
return false;
}
SMARTPPC.find_Pos_X = function (obj) {
var curleft = 0;
if (obj.offsetParent) {
while (obj) {
curleft += obj.offsetLeft;
obj = obj.offsetParent;
}
} else if (obj.x)
curleft += obj.x;
return curleft;
}
SMARTPPC.find_Pos_Y = function (obj) {
var curtop = 0;
if (obj.offsetParent) {
if(!sppcisIE || (sppcisIE && !sppcisIE7)){
while (obj) {
curtop += obj.offsetTop;
obj = obj.offsetParent;
}
}else{
var box = obj.getBoundingClientRect(), doc = obj.ownerDocument, body = doc.body, docElem = doc.documentElement,
clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
top = box.top + (docElem.scrollTop || body.scrollTop) - clientTop;
curtop = top;
}
} else if (obj.y)
curtop += obj.y;
curtop -= 10;
return curtop;
}
SMARTPPC.find_page_width = function () {
var x;
if (self.innerWidth) x = self.innerWidth;
else if (document.documentElement.clientWidth && document.documentElement.clientWidth) x = document.documentElement.clientWidth;
else if (document.body.clientWidth) x = document.body.clientWidth;
return x;
}
SMARTPPC.find_page_height = function () {
var y;
if (self.innerHeight) y = self.innerHeight;
else if (document.documentElement.clientHeight && document.documentElement.clientHeight) y = document.documentElement.clientHeight;
else if (document.body.clientHeight) y = document.body.clientHeight;
return y;
}
SMARTPPC.find_scroll_y = function () {
var y;
if (self.pageYOffset) y = self.pageYOffset;
else if (document.documentElement && document.documentElement.scrollTop) y = document.documentElement.scrollTop;
else if (document.body) y = document.body.scrollTop;
return y;
}
SMARTPPC.INTEXT.intext_keyword = function ( keyword, keyword_regex, node_array_index, keyword_num ) {
SMARTPPC.INTEXT.keywords_already_intextd.push(keyword);
SMARTPPC.INTEXT.keyword_set_intextd = true;
// add keyword_id to keyword string
SMARTPPC.INTEXT.keyword_to_id[keyword].num = keyword_num;
var keyword_id_str = '' + SMARTPPC.INTEXT.keyword_to_id[keyword].keyword + keyword_num;
SMARTPPC.INTEXT.config.max_char_for_keywords -= (keyword_id_str.length + 1);
if ( SMARTPPC.INTEXT.keywords_ids_already_intextd_str.length > 0 ) {
SMARTPPC.INTEXT.keywords_ids_already_intextd_str += ',';
}
SMARTPPC.INTEXT.keywords_ids_already_intextd_str += keyword_id_str;
// intext the keyword
var node_to_modify = SMARTPPC.INTEXT.text_nodes[node_array_index];
var broken_apart_text = null;
var pre_text = null;
var post_text = '';
var intext_text = null;
var intext_tag = null;
var pre_broken_node_text = node_to_modify.data;
var parent_node = node_to_modify.parentNode;
// calculate the original keyword
var start_id = node_to_modify.data.toLowerCase().indexOf(keyword.toLowerCase());
var end_id = start_id + keyword.length;
var orig_keyword = node_to_modify.data.slice(start_id,end_id);
broken_apart_text = node_to_modify.data.split(keyword_regex);
res = node_to_modify.data.match(keyword_regex);
res[0] = res[0].toLowerCase();
splitters = res[0].split(keyword.toLowerCase());
if(typeof(splitters[0]) == 'undefined'){
splitters = new Array(2);
splitters[0] = '';
}
if(typeof(splitters[1]) == 'undefined'){
splitters[2] = '';
}
if (broken_apart_text.length == 0) {
// this happens when the keyword is the only word in the node
pre_text = document.createTextNode(splitters[0]);
post_text = document.createTextNode(splitters[1]);
} else if (broken_apart_text.length == 1) {
// happens when the keyword is either at the beginning or the end of the
// node
if (pre_broken_node_text.toLowerCase().indexOf(keyword.toLowerCase()) == 0) {
// word to intext is at the beginning of the node
pre_text = '';
post_text = broken_apart_text[0];
} else {
// word to intext is at the end of the node
pre_text = broken_apart_text[0];
post_text = '';
}
pre_text = document.createTextNode(pre_text + splitters[0]);
post_text = document.createTextNode(splitters[1] + post_text );
} else {
if (broken_apart_text.length > 2) {
for (var i = 1; i < (broken_apart_text.length -1); i++)
post_text += broken_apart_text[i] + keyword;
post_text += broken_apart_text[(broken_apart_text.length - 1)];
} else
post_text = broken_apart_text[1];
pre_text = document.createTextNode(broken_apart_text[0] + splitters[0]);
post_text = document.createTextNode(splitters[1] + post_text);
}
// create the intextd keyword tag
keyword_id = SMARTPPC.translit(keyword.replace(/\s/g,'_') + keyword_num);
if (!document.getElementById('smartppc'+keyword_id)) {
intext_tag = document.createElement('a');
intext_tag.target = (SMARTPPC.INTEXT.config.open_in_new_window) ? '_blank' : '_top';
intext_tag.display = 'intext';
intext_tag.className = 'smartppc';
intext_tag.id = 'smartppc' + keyword_id;
intext_tag.keyword = keyword;
intext_tag.name = 'smartppc' + keyword_id;
intext_tag.style.cursor = 'pointer';
intext_tag.style.color = SMARTPPC.INTEXT.linkStyle.color;
// intext_tag.style.textDecoration =
// SMARTPPC.INTEXT.linkStyle.textDecoration;
intext_tag.onmouseover = SMARTPPC.INTEXT.prep_and_show_intext_ad;
intext_tag.onclick = SMARTPPC.INTEXT.prep_and_show_intext_ad;
intext_tag.onmouseout = function(){ if(!SMARTPPC.INTEXT.display_ad){SMARTPPC.INTEXT.hide_intext_ad_timer();} SMARTPPC.INTEXT.display_ad=true; SMARTPPC.INTEXT.hide_intext_ad_timer(); }
intext_tag.style.borderBottomWidth = '1px';
intext_tag.style.borderBottomStyle = 'solid';
intext_tag.style.textDecoration = 'Underline';
intext_tag.style.borderBottomColor = SMARTPPC.INTEXT.linkStyle.color;
intext_tag.style.cursor = 'pointer';
intext_tag.innerHTML = orig_keyword.replace(/\s+/g,' ');
if(parent_node != undefined){
parent_node.replaceChild(post_text, node_to_modify);
parent_node.insertBefore(intext_tag, post_text);
parent_node.insertBefore(pre_text, intext_tag);
}
SMARTPPC.INTEXT.text_nodes = [];
SMARTPPC.INTEXT.populate_text_nodes();
return;
}
}
SMARTPPC.INTEXT.create_intext_div = function () {
if(!document.getElementById('sppc_container')){
var elementObj = document.createElement('div');
elementObj.id = 'sppc_container';
if(typeof document.getElementsByTagName('body')[0] != 'undefined'){
document.getElementsByTagName('body')[0].appendChild(elementObj);
return true;
}else{
return false;
}
}
}
SMARTPPC.INTEXT.prep_and_show_intext_ad = function () {
/*
* if(SMARTPPC.INTEXT.keyword != this.keyword){
* SMARTPPC.INTEXT.close_intext_ad(); }
*/
SMARTPPC.INTEXT.hide_previos();
SMARTPPC.INTEXT.keyword = this.keyword;
SMARTPPC.INTEXT.keyword_id = SMARTPPC.translit(this.keyword.replace(/\s+/g,'_') + SMARTPPC.INTEXT.keyword_to_id[this.keyword].num);
if ( SMARTPPC.INTEXT.div_keyword != SMARTPPC.INTEXT.keyword ) {
var page_width = SMARTPPC.find_page_width() - 20;
var page_height = SMARTPPC.find_page_height();
var scroll_y = SMARTPPC.find_scroll_y();
var div_left = SMARTPPC.find_Pos_X(this);
var div_top = SMARTPPC.find_Pos_Y(this) + 20;
horizontal = 'l';
vertical = 't';
box_left = 0;
box_top = 0;
adwidth0 = parseInt(SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].size.w);
adheight0 = parseInt(SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].size.h);
adwidth = parseInt(SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].size.w) + 10;
adheight = parseInt(SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].size.h) + 50;
myadwidth = parseInt(SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].size.w) - 27;
myadwidth = myadwidth + 'px';
middlewidth = parseInt(myadwidth)+ 12 + 15;
fullwidth = parseInt(middlewidth)+ 3 + 17;
// find the x value
if ((div_left + adwidth) > page_width - 20) {
box_left = (div_left - (div_left + adwidth - page_width) - 30);
if (page_width - div_left < adwidth + 20) {
box_left = div_left - adwidth + 30;
horizontal = 'r';
} else {
horizontal = 'l';
}
} else {
box_left = div_left - 7;
horizontal = 'l';
}
// find the y value
if (sppcisIE) {
if ((div_top - adheight) < 0) {
box_top = (div_top + 25);
vertical = 't';
}
else
// alert('топ координата для выпадающего вниз бокса');
if ((div_top - adheight) < scroll_y + 10) {
box_top = (div_top + 24);
vertical = 't';
}
else {
// alert('топ координата для выпадающего вверх бокса');
box_top = (div_top - adheight - 28);
vertical = 'b';
}
}
else
if (sppcisOpera) {
if ((div_top - adheight) < 0) {
box_top = (div_top + 30);
vertical = 't';
}
else
// alert('топ координата для выпадающего вниз бокса');
if ((div_top - adheight) < scroll_y + 10) {
box_top = (div_top + 33);
vertical = 't';
}
else {
// alert('топ координата для выпадающего верх бокса');
box_top = (div_top - adheight - 25);
vertical = 'b';
}
}
else
if (sppcisMoz) {
if ((div_top - adheight) < 0) {
box_top = (div_top + 27);
vertical = 't';
}
else //FF
if ((div_top - adheight) < scroll_y + 10) {
// alert('топ координата для выпадающего вниз бокса');
box_top = (div_top + 27);
vertical = 't';
}
else {
// alert('топ координата для выпадающего вверх бокса в FF');
box_top = (div_top - adheight - 28);
vertical = 'b';
}
}
else {
if ((div_top - adheight) < 0) {
box_top = (div_top + 24);
vertical = 't';
}
else //chrom и др.
if ((div_top - adheight) < scroll_y + 10) {
// alert('топ координата для выпадающего вниз бокса');
box_top = (div_top + 30);
vertical = 't';
}
else {
// alert('топ координата для выпадающего вверх бокса');
box_top = (div_top - adheight - 25);
vertical = 'b';
}
}
/*
* var left_; var top_;
*
*
* if(sppcisIE) { left_=box_left + 'px'; top_ =box_top + 'px'; } else
* if(sppcisOpera){ left_=box_left + 'px'; top_ =box_top + 'px'; } else if
* (sppcisMoz){ left_=box_left + 'px'; top_ =box_top + 'px';
* } else{ left_=box_left + 'px'; top_ =box_top + 'px'; }
*/
SMARTPPC.INTEXT.box_config = {
url: SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].url,
size: {'w':SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].size.w,
'h':SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].size.h},
u: SMARTPPC.INTEXT.keyword_to_id[SMARTPPC.INTEXT.keyword].u,
top: box_top + 'px',
left: box_left + 'px',
direction: vertical + horizontal
};
SMARTPPC.INTEXT.display_timeout_handle = setTimeout('SMARTPPC.INTEXT.display_intext_ad()',SMARTPPC.INTEXT.box_show_timeout);
} else
SMARTPPC.INTEXT.reset_display_intext_ad();
}
SMARTPPC.INTEXT.display_intext_ad = function () {
SMARTPPC.INTEXT.display_ad = false;
SMARTPPC.INTEXT.hide_intext_ad_timer();
SMARTPPC.INTEXT.display_ad = true;
if (SMARTPPC.INTEXT.keyword != SMARTPPC.INTEXT.div_keyword) {
box = document.getElementById('intext_' + SMARTPPC.INTEXT.keyword_id);
if(null != box){
// если блок уже есть
box.style.top = SMARTPPC.INTEXT.box_config.top;
box.style.left = SMARTPPC.INTEXT.box_config.left;
if (sppcisIE) {
var tails = getChildByClass(box, "div", "sppc_tail");
for (var t = 0; t < tails.length; t++) {
tails[t].style.display = "none";
}
getChildByClass(box, "div", "sppc_" + SMARTPPC.INTEXT.box_config.direction + "_tail").style.display = "block";
} else {
var tails = box.getChildByClass("div", "sppc_tail");
for (var t = 0; t < tails.length; t++) {
tails[t].style.display = "none";
}
box.getChildByClass("div", "sppc_" + SMARTPPC.INTEXT.box_config.direction + "_tail").style.display = "block";
}
if(SMARTPPC.INTEXT.box_config.u){
//content = document.getElementById('sppc_content_'+SMARTPPC.INTEXT.keyword_id);
if (sppcisIE) {
var content = getChildByClass(box, "div", "sppc_content");
} else {
var content = box.getChildByClass("div", "sppc_content");
}
content.innerHTML = '
';
SMARTPPC.INTEXT.load_intext_ad();
}
box.style.display = 'block';
var box_iframe = document.getElementById('sppc_box_iframe_'+SMARTPPC.INTEXT.keyword_id);
if(!box_iframe){
SMARTPPC.INTEXT.load_intext_ad();
// box_iframe.style.display = 'block';
}
// c нуля
} else {
data = "\
';
SMARTPPC.INTEXT.load_intext_ad();
}
}
}
SMARTPPC.INTEXT.load_intext_ad = function () {
if(typeof sppc_user == 'undefined' || typeof sppc_site == 'undefined')
return;
var ref = ( typeof window.document.referrer != 'undefined' ) ? escape(window.document.referrer) : '';
var box = document.getElementById("intext_" + SMARTPPC.INTEXT.keyword_id);
if (sppcisIE) {
var content = getChildByClass(box, "div", 'sppc_content');
} else {
var content = box.getChildByClass("div", 'sppc_content');
}
var content_iframe = document.createElement('iframe');
content_iframe.src = SMARTPPC.INTEXT.box_config.url + '&id_user='+sppc_user+'&id_site='+sppc_site+'&rf='+ref;
content_iframe.id = 'sppc_box_iframe_' + SMARTPPC.INTEXT.keyword_id;
// content_iframe.style.width = SMARTPPC.INTEXT.box_config.size.w;
// content_iframe.style.height = SMARTPPC.INTEXT.box_config.size.h;
// content_iframe.style.width = adwidth0;
// content_iframe.style.height = adheight0;
content_iframe.setAttribute('width',adwidth0);
content_iframe.setAttribute('height',adheight0);
content_iframe.frameBorder = 'no';
content_iframe.style.borderStyle = 'none';
content_iframe.scrolling = 'no';
var box_id = 'sppc_content_' + SMARTPPC.INTEXT.keyword_id;
eventPush(content_iframe,'load', function () {
/*document.getElementById(box_id).removeChild(document.getElementById("sppc_intext_loading"));*/
/*box.getChildById("img", "sppc_intext_loading");*/
if (sppcisIE) {
var loading = getChildById(content, "img", "sppc_intext_loading");
} else {
var loading = content.getChildById("img", "sppc_intext_loading");
}
if (null != loading) {
content.removeChild(loading);
}
});
content.appendChild(content_iframe);
}
SMARTPPC.INTEXT.populate_and_display_intext_div = function (ad_headline, ad_text, ad_url, display_url) {
var keyword_span_id = 'smartppc' + SMARTPPC.INTEXT.keyword_id;
SMARTPPC.INTEXT.ad_url = ad_url;
document.getElementById(keyword_span_id).href = ad_url;
}
SMARTPPC.INTEXT.populate_intext_div = function (ad_headline, ad_text, ad_url, display_url) {
var a = document.getElementById('SMARTPPC-intext-target-url');
a.href = ad_url;
a.target = (SMARTPPC.INTEXT.config.open_in_new_window) ? '_blank' : '_top';
var head = document.getElementById('SMARTPPC-intext-headline');
head.innerHTML = unescape(decodeURIComponent(ad_headline));
var text = document.getElementById('SMARTPPC-intext-adtext');
text.innerHTML = unescape(decodeURIComponent(ad_text));
var url = document.getElementById('SMARTPPC-intext-display-url');
if (display_url && display_url != '') {
url.innerHTML = unescape(decodeURIComponent(display_url));
url.href = ad_url;
url.target = (SMARTPPC.INTEXT.config.open_in_new_window) ? '_blank' : '_top';
} else {
url.innerHTML = '';
url.href = '';
url.target = '';
}
}
SMARTPPC.INTEXT.hide_intext_ad_timer = function () {
if (SMARTPPC.INTEXT.display_ad == false) {
clearTimeout(SMARTPPC.INTEXT.display_timeout_handle);
clearTimeout(SMARTPPC.INTEXT.intext_ad_timeout_handle);
} else {
SMARTPPC.INTEXT.display_ad = false;
SMARTPPC.INTEXT.intext_ad_timeout_handle = window.setTimeout(SMARTPPC.INTEXT.hide_intext_ad, SMARTPPC.INTEXT.box_hide_time);
}
}
SMARTPPC.INTEXT.close_intext_ad = function () {
SMARTPPC.INTEXT.display_ad = false;
SMARTPPC.INTEXT.intext_ad_timeout_handle = window.setTimeout('SMARTPPC.INTEXT.hide_intext_ad()', 0);
}
SMARTPPC.INTEXT.hide_intext_ad = function () {
SMARTPPC.INTEXT.display_ad = false;
if(SMARTPPC.INTEXT.keyword){
id = SMARTPPC.INTEXT.keyword_id;
var keyword_span_id = 'smartppc' + id;
document.getElementById(keyword_span_id).onclick = '';
SMARTPPC.INTEXT.div_keyword = null;
var SMARTPPC_intext_div = document.getElementById('intext_'+id);
var SMARTPPC_intext_iframe = document.getElementById('sppc_box_iframe_'+id);
if(SMARTPPC_intext_div){
SMARTPPC_intext_div.style.display = 'none';
}
if(SMARTPPC_intext_iframe){
SMARTPPC_intext_iframe.style.display = 'none';
SMARTPPC_intext_iframe.parentNode.removeChild(SMARTPPC_intext_iframe);
}
}
}
SMARTPPC.INTEXT.hide_previos = function(){
if(document.getElementById('intext_'+SMARTPPC.INTEXT.keyword_id)){
document.getElementById('intext_'+SMARTPPC.INTEXT.keyword_id).style.display = 'none';
}
}
SMARTPPC.INTEXT.reset_display_intext_ad = function () {
SMARTPPC.INTEXT.display_ad = true;
window.clearTimeout(SMARTPPC.INTEXT.intext_ad_timeout_handle);
}
SMARTPPC.INTEXT.reset_text_nodes = function () {
SMARTPPC.INTEXT.text_nodes = "";
SMARTPPC.INTEXT.text_nodes = [];
}
SMARTPPC.INTEXT.populate_text_nodes = function () {
if ( SMARTPPC.INTEXT.text_nodes.length == 0 ) {
SMARTPPC.INTEXT.scan_nodes( document.getElementsByTagName('body')[0], true );
if ( SMARTPPC.INTEXT.SMARTPPCintext_tags.length > 0) {
SMARTPPC.INTEXT.reset_text_nodes();
var length = SMARTPPC.INTEXT.SMARTPPCintext_tags.length;
for ( var i=0; i < length; i++ ) {
SMARTPPC.INTEXT.scan_nodes( SMARTPPC.INTEXT.SMARTPPCintext_tags[i], false );
}
}
}
}
SMARTPPC.INTEXT.scan_nodes = function (node, log_classname) {
if ( log_classname == true && SMARTPPC.INTEXT.tags_to_ignore[node.nodeName.toUpperCase()] != 1 ) {
if ( node.className && node.className.toLowerCase() == 'SMARTPPCintext' ) {
SMARTPPC.INTEXT.SMARTPPCintext_tags.push(node);
}
}
if ( node.nodeType == 3 ) {
// remove all empty text nodes
if ( node.data.replace(/\s+/g, '') && SMARTPPC.INTEXT.scan_nodes.word_count(node.parentNode) > SMARTPPC.INTEXT.min_word_count) {
SMARTPPC.INTEXT.text_nodes.push(node);
rdink = SMARTPPC.INTEXT.scan_nodes.word_count(node.parentNode);
}
} else {
for ( var next_node = node.firstChild; next_node != null; next_node = next_node.nextSibling ) {
var scan_node = true;
if ( SMARTPPC.INTEXT.tags_to_ignore[next_node.nodeName.toUpperCase()] == 1 ) scan_node = false;
if ( next_node.className && (next_node.className.toLowerCase()).indexOf('sppc_exclude') != -1 ) scan_node = false;
if ( scan_node ) SMARTPPC.INTEXT.scan_nodes(next_node, log_classname);
}
}
}
String.prototype.sppctrim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
SMARTPPC.INTEXT.scan_nodes.word_count = function(node){
var count = 0;
var length = node.childNodes.length;
for(var i = 0; i < length; i++) {
var child = node.childNodes[i];
if(child.nodeType == 3) {
var trimmed_data = child.data.sppctrim();
count += trimmed_data.split(/\s+/).length;
}
}
return count;
}
SMARTPPC.INTEXT.find_keyword = function ( keyword ) {
var keyword_regex = new RegExp("(?:[\\.,\\s\\n]|^)" + keyword + "(?:[\\.,\\s\\n]|$)", 'i');
var keywords_num = 0;
for ( var i = 0; i < SMARTPPC.INTEXT.text_nodes.length; i++ ) {
if ( SMARTPPC.INTEXT.text_nodes[i].data.search( keyword_regex ) > -1 ) {
SMARTPPC.INTEXT.intext_keyword( keyword, keyword_regex, i, keywords_num );
keywords_num++;
if( keywords_num >= SMARTPPC.INTEXT.settings.num ){
break;
}
}
}
}
SMARTPPC.INTEXT.get_next_keyword = function () {
var keyword = "";
// remove any empty keyword sets until a non-empty set is found, or the array
// is empty
while ( SMARTPPC.INTEXT.keywords_to_intext.length > 0 && SMARTPPC.INTEXT.keywords_to_intext[0].length == 0 )
SMARTPPC.INTEXT.keywords_to_intext.shift();
if ( SMARTPPC.INTEXT.keywords_to_intext.length > 0 )
keyword = SMARTPPC.INTEXT.keywords_to_intext[0][0];
// remove keyword from keyword set
SMARTPPC.INTEXT.remove_keyword_from_list();
return keyword;
}
SMARTPPC.INTEXT.remove_keyword_from_list = function () {
// keyword was found, remove the keyword set
if ( SMARTPPC.INTEXT.keyword_set_intextd == true ) {
SMARTPPC.INTEXT.keyword_set_intextd = false;
SMARTPPC.INTEXT.keywords_to_intext.shift();
} else {
// keyword was not found, remove keyword from list
// if keyword is only keyword is set, remove set
if ( SMARTPPC.INTEXT.keywords_to_intext[0].length == 1 ) {
SMARTPPC.INTEXT.keywords_to_intext.shift();
} else {
SMARTPPC.INTEXT.keywords_to_intext[0].shift();
}
}
}
SMARTPPC.INTEXT.find_and_intext_keywords = function () {
while ( SMARTPPC.INTEXT.keywords_to_intext.length > 0 && SMARTPPC.INTEXT.keywords_already_intextd.length < SMARTPPC.INTEXT.config.max_words_to_intext ) {
var keyword_to_find = SMARTPPC.INTEXT.get_next_keyword();
if ( keyword_to_find ) {
SMARTPPC.INTEXT.find_keyword ( keyword_to_find );
}
}
}
SMARTPPC.INTEXT.check_scanning_status = function () {
var continue_scan = true;
if ( SMARTPPC.INTEXT.keywords_already_intextd.length >= SMARTPPC.INTEXT.config.max_words_to_intext ) {
continue_scan = false;
}
// already intextd enough words
if ( SMARTPPC.INTEXT.text_nodes.length < 1 ) {
continue_scan = false; // no nodes to scan/intext
}
if ( SMARTPPC.INTEXT.text_nodes.length == SMARTPPC.INTEXT.current_textnode ) {
continue_scan = false; // reached the last node already
}
if ( SMARTPPC.INTEXT.unfiltered_keywords.length > 0 && SMARTPPC.INTEXT.filtered_keywords.sppclength != 0) {
continue_scan = false; // filtered_keyword_array is full
}
return continue_scan;
}
SMARTPPC.INTEXT.build_unfiltered_keyword_array = function () {
if ( SMARTPPC.INTEXT.unfiltered_keywords.length == 0 ) {
var unfiltered_keyword_str = SMARTPPC.INTEXT.text_nodes[SMARTPPC.INTEXT.current_textnode].data;
if ( unfiltered_keyword_str > SMARTPPC.INTEXT.max_char_for_textnodes )
unfiltered_keyword_str = unfiltered_keyword_str.slice( 0, SMARTPPC.INTEXT.max_char_for_textnodes );
unfiltered_keyword_str = unfiltered_keyword_str.replace(/\s+/g, ' ');
SMARTPPC.INTEXT.unfiltered_keywords = unfiltered_keyword_str.split(' ');
}
}
SMARTPPC.INTEXT.keyword_in_stopword_list = function ( keyword ) {
keyword = keyword.toLowerCase();
return ( SMARTPPC.stopword_list[keyword] ) ? true : false;
}
SMARTPPC.INTEXT.build_filtered_keyword_array = function () {
while ( SMARTPPC.INTEXT.unfiltered_keywords.length > 0 ) {
if ( SMARTPPC.INTEXT.filtered_keywords.sppclength + SMARTPPC.INTEXT.unfiltered_keywords[0].length > SMARTPPC.INTEXT.config.max_char_for_keywords ) break;
var keep_keyword = true;
var keyword = SMARTPPC.INTEXT.unfiltered_keywords.shift();
if ( keyword.length < SMARTPPC.INTEXT.config.min_char_per_keyword ) keep_keyword = false;
else if ( keyword.match(/\W/) ) keep_keyword = false;
else if ( SMARTPPC.element_in_array( keyword, SMARTPPC.INTEXT.keywords_already_intextd ) ) keep_keyword = false;
else if ( SMARTPPC.INTEXT.keyword_in_stopword_list(keyword) ) keep_keyword = false;
if (keep_keyword == true) {
if ( !SMARTPPC.INTEXT.filtered_keywords[keyword] ) {
SMARTPPC.INTEXT.filtered_keywords.sppclength = SMARTPPC.INTEXT.filtered_keywords.sppclength + keyword.length;
SMARTPPC.INTEXT.filtered_keywords[keyword] = 1;
}
}
}
}
SMARTPPC.INTEXT.update_current_textnode = function () {
if ( SMARTPPC.INTEXT.unfiltered_keywords.length == 0 ) SMARTPPC.INTEXT.current_textnode = SMARTPPC.INTEXT.current_textnode + 1;
}
SMARTPPC.INTEXT.converg_filtered_keywords_toString = function () {
var str = "";
for ( keyword in SMARTPPC.INTEXT.filtered_keywords ) {
if ( keyword == 'sppclength' ) continue;
if ( str ) str += ",";
str += keyword;
}
return str;
}
SMARTPPC.INTEXT.preload_images = function(){
(new Image()).src = SMARTPPC.INTEXT.settings.base_url + 'images/intext/corners.'+SMARTPPC.INTEXT.img_ext;
(new Image()).src = SMARTPPC.INTEXT.settings.base_url + 'images/intext/v-borders.'+SMARTPPC.INTEXT.img_ext;
(new Image()).src = SMARTPPC.INTEXT.settings.base_url + 'images/intext/h-borders.'+SMARTPPC.INTEXT.img_ext;
(new Image()).src = SMARTPPC.INTEXT.settings.base_url + 'images/intext/tails.'+SMARTPPC.INTEXT.img_ext;
(new Image()).src = SMARTPPC.INTEXT.settings.base_url + 'images/intext/x.'+SMARTPPC.INTEXT.img_ext;
}
SMARTPPC.INTEXT.intext = function () {
SMARTPPC.INTEXT.linkStyle = {
textDecoration : 'underline',
borderBottom : '1px solid #080',
paddingBottom : '1px',
color : typeof sppc_linkColor != 'undefined'? sppc_linkColor : '#080',
adhereColor: typeof sppc_adhereColor != 'undefined'? sppc_adhereColor : '#000',
stripColor: typeof sppc_stripColor != 'undefined'? sppc_stripColor : '#EEE',
cursor : 'pointer'
};
if(!SMARTPPC.INTEXT.create_intext_div()) return;
SMARTPPC.INTEXT.populate_text_nodes();
SMARTPPC.INTEXT.find_and_intext_keywords();
SMARTPPC.INTEXT.preload_images();
}
SMARTPPC.INTEXT.get_ready = function(){
if ( document.addEventListener ) {
document.addEventListener( "DOMContentLoaded", function(){
document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
SMARTPPC.INTEXT.intext();
}, false );
} else if ( document.attachEvent ) {
document.attachEvent("onreadystatechange", function(){
if ( document.readyState === "complete" ) {
document.detachEvent( "onreadystatechange", arguments.callee );
SMARTPPC.INTEXT.intext();
}
});
if ( document.documentElement.doScroll && window == window.top ) (function(){
try {
document.documentElement.doScroll("left");
} catch( error ) {
setTimeout( arguments.callee, 0 );
return;
}
SMARTPPC.INTEXT.intext();
})();
}
}
if ( sppcisMinKHTML5 || sppcisMinMoz1_5 || sppcisMinIE6 ) {
if ( !SMARTPPC.INTEXT.is_intextd ) {
SMARTPPC.INTEXT.is_intextd = true;
SMARTPPC.append_onload(SMARTPPC.INTEXT.intext);
}
}
function setStyles(element, styles) {
for(var s in styles) {
element.style[s] = styles[s];
}
}
function eventPush(obj, event, handler) {
if (obj.addEventListener) {
obj.addEventListener(event, handler, false);
} else if (obj.attachEvent) {
obj.attachEvent('on'+event, handler);
}
}
function sppc_is_child_of(parent, child) {
if( child != null ) {
while( child.parentNode ) {
if( (child = child.parentNode) == parent ) {
return true;
}
}
}
return false;
}
function sppc_fixOnMouseOut(element, event, JavaScript_code) {
var current_mouse_target = null;
if( event.toElement ) {
current_mouse_target = event.toElement;
} else if( event.relatedTarget ) {
current_mouse_target = event.relatedTarget;
}
if( !sppc_is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
eval(JavaScript_code);
}
}
function getIEVersionNumber() {
var ua = navigator.userAgent;
var MSIEOffset = ua.indexOf("MSIE ");
if (MSIEOffset == -1) {
return 0;
} else {
return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
}
}