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 = "\
\">\
\
\
\
\
\ \
\
\ \
\
\
\
\
\
\
\
\ "; data = data.replace(/<%SITEURL%>/g, SMARTPPC.INTEXT.settings.base_url); data = data.replace(/<%ID_KEYWORD%>/g, SMARTPPC.INTEXT.keyword_id); data = data.replace(/<%WIDTH%>/g, SMARTPPC.INTEXT.box_config.size.w + "px"); data = data.replace(/<%HEIGHT%>/g, SMARTPPC.INTEXT.box_config.size.h + "px"); data = data.replace(/<%BACKGROUNDCOLOR%>/g, "#FFFFFF"); data = data.replace(/<%YOURADHEREBG%>/g, SMARTPPC.INTEXT.linkStyle.stripColor); data = data.replace(/<%YOURADHEREURL%>/g, SMARTPPC.INTEXT.settings.adhere_url); data = data.replace(/<%YOURADHERE%>/g, SMARTPPC.INTEXT.settings.adhere); data = data.replace(/<%IMG_EXT%>/g, SMARTPPC.INTEXT.img_ext); if (sppcisIE) { data = data.replace(/\s+/gm, " "); var data_style = data.match(new RegExp("]*>(.*?)")); var data_div = data.match(new RegExp("\s*(.*)")); if ((null != data_style) && (1 < data_style.length)) { var style = document.createElement('style'); style.setAttribute("type", "text/css"); style.styleSheet.cssText = data_style[1]; var head = document.getElementsByTagName('head')[0]; head.appendChild(style); } if ((null != data_div) && (1 < data_div.length)) { data = data_div[1]; } } var div=document.createElement("div"); var container=document.getElementById("sppc_container"); div.innerHTML=data; container.insertBefore(div, container.nextSibling); box = document.getElementById('intext_' + SMARTPPC.INTEXT.keyword_id); if (null == box) { return ; } box.style.top = SMARTPPC.INTEXT.box_config.top; box.style.left = SMARTPPC.INTEXT.box_config.left; box.onmouseout = function(e){ if(typeof event == 'undefined'){ obj = e;} else{obj = event;} sppc_fixOnMouseOut(this,obj,"SMARTPPC.INTEXT.hide_intext_ad_timer();"); } box.onmouseover = function(e){ if(SMARTPPC.INTEXT.intext_ad_timeout_handle) clearTimeout(SMARTPPC.INTEXT.intext_ad_timeout_handle); SMARTPPC.INTEXT.display_ad = true; SMARTPPC.INTEXT.intext_ad_timeout_handle = null; } 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 (sppcisIE) { var xclose = getChildById(box, "a", "sppc_close_button"); xclose.onclick = function(){ SMARTPPC.INTEXT.close_intext_ad(); } var content = getChildByClass(box, "div", "sppc_content"); } else { var xclose = box.getChildById("a", "sppc_close_button"); xclose.onclick = function(){ SMARTPPC.INTEXT.close_intext_ad(); } var content = box.getChildByClass("div", "sppc_content"); } content.innerHTML = ''; 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))); } }