function COMMON_AD ( ) {
this.swap_list = [];
}
COMMON_AD.prototype.swap_array = {};
COMMON_AD.prototype.listing = {};
COMMON_AD.prototype.attrs = ['href', 'src', 'value']; 
/**
* Should be the equivalent of a public static method
*/
COMMON_AD.relocateAd = function(iframeObj, divName) {
var iframeDoc,
allScripts;
iframeDoc = iframeObj.contentWindow.document;
allScripts = iframeDoc.getElementsByTagName('script');
for (s = 0; s < allScripts.length; s++)
if (allScripts[s].src)
allScripts[s].src = '';
document.getElementById(divName).insertAdjacentElement('beforeEnd', iframeDoc.getElementById('adDiv'));
}
COMMON_AD.prototype.render_wpn_ad = function ( div_name, aamb_tag ) {
var invObj = 'INV' + div_name;
try {
var code = eval(aamb_tag);
var elAdDiv = document.getElementById(div_name);
if ((typeof(code) != 'undefined') && (elAdDiv !== null)) {
if(navigator.userAgent.indexOf('MSIE') > -1) {
if (div_name.match('text_link')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('endemic_panel')) {
//alert('code = ' + code);
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
//elAdDiv.innerHTML = code;
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('endemic_module')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('search_module')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('rich_media')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('prp_panel')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('top_rail_link')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('pop_under')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('results_custom_right_rail')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
} else if (div_name.match('teaser_link')) {
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
elAdDiv.appendChild(document.getElementById(invObj)).style.display = '';
/* CODE THAT CAUSED ISSUE WITH REPORTING DISCREPANCIES **
} else {
elAdDiv.innerHTML +=
'<div id="TMP' + div_name + '" style="display:none">' +
escape('<body><div id="adDiv">' + code + '</div>') +
'</div><iframe name="' + invObj + '" width="0" height="0" frameborder="0" ' +
'onload="javascript:try { document.getElementById(\'' + div_name + '\').' +
'insertAdjacentElement(\'beforeEnd\', window.frames[\'' + invObj + '\'].' +
'document.getElementById(\'adDiv\')) } catch(aamErr) { }"></iframe>';
window.frames[invObj].document.location =
'javascript:unescape(parent.document.getElementById(\'TMP' +
div_name + '\').innerHTML)';
}*/
} else {
elAdDiv.innerHTML +=
'<div id="TMP' + div_name + '" style="display:none">' + 
escape('<body><div id="adDiv">' + code + '</div>') +
'</div><iframe name="' + invObj + '"width="0" height="0" frameborder="0" ' +
'onload="javascript: COMMON_AD.relocateAd(this, \'' + div_name + '\');"></iframe>';
window.frames[invObj].document.location = 
'javascript:unescape(parent.document.getElementById(\'TMP' + 
div_name + '\').innerHTML)';
}
}
else {
if (div_name.match('search_module') || div_name.match('endemic_panel') || div_name.match('endemic_module')) {
elAdDiv.innerHTML = code;
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
} else if (div_name.match('text_link')) {
elAdDiv.innerHTML = code;
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
} else if (div_name.match('teaser_link')) {
elAdDiv.innerHTML = code;
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
} else if (div_name.match('results_custom_right_rail')) {
elAdDiv.innerHTML = code;
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
} else if (div_name.match('prp_panel')) {
elAdDiv.innerHTML = code;
document.write('<div id="' + invObj + '" style="display:none">' + code + '</div>');
} else {
document.writeln('<div id="' + invObj + '" style="display:none">' +
code + '<script type="text/javascript" defer="true">' +
'document.getElementById(\'' + div_name + '\').innerHTML = ' +
'document.getElementById(\'' + invObj + '\').innerHTML;' +
'document.getElementById(\'' + invObj +
'\').innerHTML = \'\';</scr' + 'ipt></div>');
}
}	
}
if ( this.swap_list[div_name] instanceof Object ) {
this.swap(div_name);
}
}
catch(aamErr) { 
//		alert(aamErr)
}
}
COMMON_AD.prototype.swap_values = function ( div_id ) {
this.swap_list[div_id] = {};
for (var i = 1; i < arguments.length; i += 2) {
this.swap_list[div_id]['__' + arguments[i] + '__'] = arguments[i+1];
}
this.token_replace(div_id);
}
COMMON_AD.prototype.swap = function ( div_id ) {
var div = document.getElementById( div_id );
listingData = this.swap_list[div_id];
this.checkNodeList( div.childNodes, listingData );
}
COMMON_AD.prototype.checkNodeList = function ( nodeList, listingData ) {
for ( var i=0, len=nodeList.length; i<len; i++ ) {
this.checkNode( nodeList[i], listingData );
}
}
COMMON_AD.prototype.checkNode = function ( node, listingData ) {
if ( node.nodeType == 3 ) {
for ( key in listingData ) {
if ( node.nodeValue.match('__' + key + '__') ) {
node.nodeValue = node.nodeValue.replace( '__' + key + '__', listingData[key] );
}
}
}
else {
for ( var k=0, leng=this.attrs.length; k<leng; k++ ) {
if ( node.attributes[ this.attrs[k] ] ) {
for ( key in listingData ) {
if ( node.attributes[this.attrs[k]].value.match('__' + key + '__') ) {
node.attributes[this.attrs[k]].value = node.attributes[this.attrs[k]].value.replace( '__' + key + '__', listingData[key] );
}
}
}
}
}
if ( node.hasChildNodes() ) {
this.checkNodeList( node.childNodes, listingData );
}
}
COMMON_AD.prototype.set_swap_object = function ( div_id, obj ) {
this.swap_list[div_id] = obj;
return;
}
COMMON_AD.prototype.swap_after_content = function ( ) {
var swapRegex = new RegExp("resultslink");
for ( var div_id in this.swap_list ) {
if ( div_id.match(swapRegex) ) {
this.token_replace( div_id );
}
}
}
COMMON_AD.prototype.token_replace = function ( div_id ) {
var div = document.getElementById(div_id);
if(div)
{
for (var tag in this.swap_list[div_id])
{
var regexp = new RegExp(tag, 'g');
div.innerHTML = div.innerHTML.replace(regexp, this.swap_list[div_id][tag]);
}
}
}
function getAge(rdb){
var age;
if(rdb){
if(hex2dec(rdb[9]) > 0){
age = hex2dec(rdb[9]);
}else if(hex2dec(rdb[21]) > 0){
var now = new Date();
var now_year = now.getFullYear();
var birth_year = hex2dec(rdb[21]);
age = now_year - birth_year;
}
}
return age;
}
COMMON_AD.prototype.get_rdb_params = function ( rdb ) {
var rdb_params = '';
if ( rdb instanceof Array ) {
var age_regex = /^(\d+\+*)/;
/** Debuging
var tmp = '';
for (key in rdb) {
tmp += key + ': ' + rdb[key] + '\n';
}
alert(tmp);
*/
// This is a test line added to the file to see what git does.
rdb_params += hex2dec( rdb[2] )  ? '/zip=' + hex2dec( rdb[2] )  : '';
rdb_params += hex2dec( rdb[5] )  ? '/gn=' + ['','M','F'][hex2dec( rdb[5] )] : '';
rdb_params += hex2dec( rdb[6] )  ? '/us=' + ['', '', 'B', '', 'P'][hex2dec( rdb[6] )] : '';  // 0, 1, & 3 are empty or undefined for some reason.  See Common/lib/Common/RDB.pm
rdb_params += hex2dec( rdb[9] ) || hex2dec( rdb[21] ) ? '/age=' + getAge(rdb)  : '';
rdb_params += hex2dec( rdb[11] ) ? '/connspeed=' + hex2dec( rdb[11] ) : '';
rdb_params += rdb[20] ? '/car=' + rdb[20] : '';
return rdb_params;
}
return '';
}
