// Revenue Science support functions:
// 1. rdcookie - reads rsi_segs cookie and parses into segQS var
// 2. setvars - called at bottom of mains to set RSI category, tag etc.
// CEL Mar. 2009

if( typeof(SNI) == "undefined" ) {
	SNI = {};
}

if( typeof(SNI.RSI) == "undefined" ) {
	SNI.RSI = {};
}

// need this global:
var segQS="";

SNI.RSI.rdcookie = function() {

	// REVENUE SCIENCE AD TAG CODE - read cookie into js var that later goes into ad tag query string
	// separate with & not ; as in vendor doc
	var rsi_segs = [];
	var segs_beg=document.cookie.indexOf('rsi_segs=');
	if (segs_beg>=0){
		segs_beg=document.cookie.indexOf('=',segs_beg)+1;
		if(segs_beg>0){
			var segs_end=document.cookie.indexOf(';',segs_beg);
			if(segs_end==-1) segs_end=document.cookie.length;
			rsi_segs=document.cookie.substring(segs_beg,segs_end).split('|');
		}
	}
	var segLen=20;
	if (rsi_segs.length<segLen) {segLen=rsi_segs.length}
	for (var i=0;i<segLen;i++){
		segQS+=("&rsi"+"="+rsi_segs[i])
	}
	
	// END REVENUE SCIENCE AD TAG CODE 
	return;
}

SNI.RSI.getSegQS = function() {
	if (!segQS) {
		SNI.RSI.rdcookie();
	}
	return segQS;
}

// fires on page load
SNI.RSI.rdcookie();

// called at bottom of page
SNI.RSI.setvars = function(params) {
	A09802.DM_cat("RecipeZaar");
	//A09802.DM_cat(params.split('&keyword').reverse().join(' > '));
	A09802.DM_addEncToLoc("keyword", params);
	A09802.DM_tag();
}


//  ------------------------------------------------------------------------------ //
//  BEGIN search.integration.js //
//  ------------------------------------------------------------------------------ //

///////////////////////
// BEGIN HTTP OBJECT //
///////////////////////

// Make sure we haven't already been loaded
var rsi__HTTP;
//if (rsi__HTTP && (typeof rsi__HTTP != 'object' || rsi__HTTP.NAME)) throw new Error("Namespace 'rsi__HTTP' already exists");

// Create our namespace, and specify some meta-information
rsi__HTTP = {};
rsi__HTTP.NAME = 'rsi__HTTP';    // The name of this namespace
rsi__HTTP.VERSION = 1.0;    // The version of this namespace

// This is a list of XMLHttpRequest creation factory functions to try
rsi__HTTP._factories = [
    function() { return new XMLHttpRequest(); },
    function() { return new ActiveXObject('Msxml2.XMLHTTP'); },
    function() { return new ActiveXObject('Microsoft.XMLHTTP'); }
];

// When we find a factory that works, store it here
rsi__HTTP._factory = null;

rsi__HTTP.newRequest = function() {
    if (rsi__HTTP._factory != null) return rsi__HTTP._factory();
    for(var i = 0; i < rsi__HTTP._factories.length; i++) {
        try {
            var factory = rsi__HTTP._factories[i];
            var request = factory();
            if (request != null) {
                rsi__HTTP._factory = factory;
                return request;
            }
        }
        catch(e) {continue;}
    }
    rsi__HTTP._factory = function() {throw new Error('XMLHttpRequest not supported');}
    rsi__HTTP._factory();
};

rsi__HTTP.getXML = function(url, callback) {
    var request = rsi__HTTP.newRequest();
    request.onreadystatechange = function() {
		if (request.readyState == 4 && request.status == 200) {
			callback(request.responseXML);
		}
	};
    request.open('GET', url);
    request.send(null); // need to add a callback here or some sort of return to prevent infinite attempts at loading the JS.
	// BUG TO BE FIXED
	
};

rsi__HTTP.getNodesLength = function(data, pNodeName) {
	return data.documentElement.getElementsByTagName(pNodeName).length;
};

rsi__HTTP.getNodesLengthFromParent = function(data, parent_node, parent_index, pNodeName) {
	return data.documentElement.getElementsByTagName(parent_node)[parent_index].getElementsByTagName(pNodeName).length;
};

rsi__HTTP.getNodeValue = function(data, pNodeName, pNodeIndex) {
	if ( pNodeIndex ) {
		try {
			return data.documentElement.getElementsByTagName(pNodeName)[pNodeIndex].firstChild.nodeValue;
		} catch(e) {}
	} else {
		try {
			return data.documentElement.getElementsByTagName(pNodeName)[0].firstChild.nodeValue;
		} catch(e) {}
	}
};

rsi__HTTP.getNodeValueFromParent = function(data, from_node, parent_index, node, node_index) {
	try {
		return data.documentElement.getElementsByTagName(from_node)[parent_index].getElementsByTagName(node)[node_index].firstChild.nodeValue;
	} catch(e) {}
};

rsi__HTTP.getNodeAttributesLength = function(data, pNodeName, pNodeIndex) {
	var mIndex = 0;
	if (pNodeIndex) mIndex = pNodeIndex;
	return data.documentElement.getElementsByTagName(pNodeName)[mIndex].attributes.length;
};

rsi__HTTP.getNodeAttributes = function(data, pNodeName, pNodeIndex) {
	var mIndex = 0;
	var mNode = null;
	var pOutput = [];
	if (pNodeIndex) mIndex = pNodeIndex;
	mNode = data.documentElement.getElementsByTagName(pNodeName)[mIndex];
	if (mNode.attributes.length > 0) {
		for (var i=0; i<mNode.attributes.length; i++) {pOutput.push(mNode.attributes.item(i).nodeName);}
	} else {throw new Error('No attributes found');}
	return pOutput;
};

rsi__HTTP.getNodeAttributeValue = function(data, pNodeName, pNodeIndex, pAttribute) {
	if (!pAttribute) {throw new Error('Need attribute name to get the value'); return;}
	var mIndex = 0;
	var mNode = null;
	var pOutput = [];
	if (pNodeIndex) mIndex = pNodeIndex;
	mNode = data.documentElement.getElementsByTagName(pNodeName)[mIndex];
	if (mNode) {
		if (mNode.attributes.length > 0) {
			for (var i=0; i<mNode.attributes.length; i++) {
				if (mNode.attributes.item(i).nodeName == pAttribute) {
					try {return mNode.attributes.item(i).nodeValue;} catch(e) {}
				}
			}
		} else {throw new Error('No attributes found');}
	}
};

rsi__HTTP.getNodeAttributeValueFromParent = function(data, parent_node, parent_index, pNodeName, pNodeIndex, pAttribute) {
	if (!pAttribute) {throw new Error('Need attribute name to get the value'); return;}
	var mIndex = 0;
	var mNode = null;
	var pOutput = [];
	if (pNodeIndex) mIndex = pNodeIndex;
	mNode = data.documentElement.getElementsByTagName(parent_node)[parent_index].getElementsByTagName(pNodeName)[mIndex];
	if (mNode) {
		if (mNode.attributes.length > 0) {
			for (var i=0; i<mNode.attributes.length; i++) {
				if (mNode.attributes.item(i).nodeName == pAttribute) {
					try {
						return mNode.attributes.item(i).nodeValue;
					} catch(e) {}
				}
			}
		} else {throw new Error('No attributes found');}
	}
};

/////////////////////
// END HTTP OBJECT //
/////////////////////
function replaceContent( creativeObject, search, replace ) {
	if ( !replace ) {
		replace = '';
	}
	if ( creativeObject && search ) {
		creativeObject.template = creativeObject.template.replace(search, replace);
	}
}
///////////////////////////
// BEGIN CREATIVE OBJECT //
///////////////////////////
function CreativeAd( rsi_wrap, creative_obj ) {
	/* if the element we're trying to p[opulate does NOT exist then let's quit */
	if ( rsi_wrap == null ) {
		return;
	}
	this.rsi_wrap = rsi_wrap;
	this.rsi_wrap.style.display = 'block';
	this.creative_obj = creative_obj;
	/* now that our element to get populated is found and we have our xmls let's do some stuff */
	/* remember that our xml files are strings in here [this.creative_obj.template] */
	/* strip out any unwanted returns and tabs */
	this.creative_obj.template = this.creative_obj.template.replace(/\n/g, '');
	this.creative_obj.template = this.creative_obj.template.replace(/\t/g, '');
	/* replace any {sponsor} with [actual sponsor name] and any {keyword} with [actual keyword] : also the new words will be capitalized chocolate->{keyword} => Chocolate */
	this.re_kw = new RegExp('({keyword})', 'g');
	this.re_sp = new RegExp('({sponsor})', 'g');
	this.creative_obj.template = this.creative_obj.template.replace(this.re_kw, this.capitalizeWord(rsi_keyword));
	this.creative_obj.template = this.creative_obj.template.replace(this.re_sp, this.capitalizeWord(rsi_sponsor));
	/* global smart word replacements (any smart words that may exist in the xml files) */
	replaceContent(this.creative_obj, /{featured_name}/g, this.creative_obj.featured_name);
	replaceContent(this.creative_obj, /{featured_image}/g, this.creative_obj.featured_image);
	replaceContent(this.creative_obj, /{featured_link_id}/g, this.creative_obj.featured_link_id);
	replaceContent(this.creative_obj, /{featured_link_id2}/g, this.creative_obj.featured_link_id2);
	replaceContent(this.creative_obj, /{featured_video_available}/g, this.creative_obj.featured_video_available);
	replaceContent(this.creative_obj, /{featured_difficulty}/g, this.creative_obj.featured_difficulty);
	replaceContent(this.creative_obj, /{featured_prep_time}/g, this.creative_obj.featured_prep_time);
	replaceContent(this.creative_obj, /{featured_healthy_living}/g, this.creative_obj.featured_healthy_living);
	replaceContent(this.creative_obj, /{featured_rating}/g, this.creative_obj.featured_rating);
	replaceContent(this.creative_obj, /{featured_tracking_tag}/g, this.creative_obj.featured_tracking_tag);
	replaceContent(this.creative_obj, /{featured_total_time}/g, this.creative_obj.featured_total_time);
	replaceContent(this.creative_obj, /{featured_from}/g, this.creative_obj.featured_from);

	this.repeat_node = /<ads_repeat>(.*)<\/ads_repeat>/;
	this.repeat_obj = this.creative_obj.template.match(this.repeat_node);
	this.creative_obj.template = this.creative_obj.template.replace(this.repeat_node, '');
	this.rsi_wrap.innerHTML = this.creative_obj.template;
	
	// create 1x1 tracking
	if ( document.getElementById('viewTracker') ) {
		if ( this.creative_obj.view_tracker ) {
			this._axel = Math.random() + '';
			this._rand = this._axel * 10000000000000;
			document.getElementById('viewTracker').src = this.creative_obj.view_tracker.replace('$random$', this._rand);
		}
	}
	/* this section is being depricated */
	var all = this.rsi_wrap.getElementsByTagName('*');
	for ( var i=0; i<all.length; i++ ) {
		if ( all[i].nodeType == 1 || all[i].nodeType == 3 ) {
			for ( j=0; j<all[i].attributes.length; j++ ) {
				if ( all[i].attributes.item(j).nodeName == 'class' ) {
					if ( all[i].attributes.item(j).nodeValue.indexOf('featureImage') != -1 ) {
						all[i]._this = this;
						if ( this.creative_obj.image ) {
							all[i].style.background = 'url(' + this.creative_obj.image + ') no-repeat center center';
						}
						if ( this.creative_obj.tracking_tag && this.creative_obj.featured_link_id ) {
							// check to see if featuredImage is an anchor or another type of element
							// if it's not an anchor, set the onclick to track and popup to new window
							if ( all[i].nodeName.toLowerCase() != 'a' ) {
								all[i].onclick = function() {
									if ( this._this.creative_obj.tracking_tag ) {
										this._this.trackThis(this._this.creative_obj.tracking_tag);
									}
									if ( this._this.creative_obj.featured_link_id ) {
										this._this.popWin(this._this.creative_obj.featured_link_id);
									}
								}
							} else {
								// if it is an anchor, set the onclick to track but the HREF to (whatever)
								all[i].onclick = function() {
									if ( this._this.creative_obj.tracking_tag ) {
										this._this.trackThis(this._this.creative_obj.tracking_tag);
									}
								}
								if ( this.creative_obj.featured_link_id ) {
									all[i].href = this.creative_obj.featured_link_id;
								}
							}
						}
					}
					if ( all[i].attributes.item(j).nodeValue.indexOf('featureLogo') != -1 ) {
						if ( all[i].innerHTML == '[useFeatureHREF2]' ) {
							var _axel = Math.random() + '';
							var _rand = _axel * 10000000000000;
							all[i].innerHTML = '';
							all[i].href = this.creative_obj.featured_link_id2.replace('{random}', _rand);
						}
					}
					if ( all[i].attributes.item(j).nodeValue.indexOf('videoImage') != -1 ) {
						if ( !eval(this.creative_obj._videoAvailable) ) {
							all[i].style.display = 'none';
							for ( var k=0; k<all.length; k++ ) {
								if ( all[k].innerHTML.indexOf('recipe video available') != -1 ) {
									all[k].style.display = 'none';
								}
							}
						}
					}
					if ( all[i].attributes.item(j).nodeValue.indexOf('featureRecipe') != -1 ) {
						if ( this.creative_obj.name ) {
							all[i].innerHTML = this.creative_obj.name.replace(/{RegTM}/g, '&reg;');
						} else {
							all[i].innerHTML = '';
						}
						if ( this.creative_obj.featured_link_id ) {
							all[i].href = this.creative_obj.featured_link_id;
						}
						all[i]._this = this;
						if ( this.creative_obj.image ) {
							all[i].onclick = function() {
								this._this.trackThis(this._this.creative_obj.tracking_tag);
							}
						}
					}
					if ( all[i].attributes.item(j).nodeValue.indexOf('ratings') != -1 ) {
						if ( this.creative_obj.rating_image ) {
							all[i].style.background = 'url(' + this.creative_obj.image + this.creative_obj.rating + this.creative_obj.rating_image.replace('[#]', '') + ') no-repeat center center';
						}
					}
					if ( all[i].attributes.item(j).nodeValue.indexOf('healthyImage') != -1 ) {
						if ( !eval(this.creative_obj.healthy_living) ) {
							all[i].style.display = 'none';
						}
					}
				}
			}
		}
	}
	/* find recipe list wrap */
	this.recipe_list_wrap = null;
	var all = this.rsi_wrap.getElementsByTagName('*');
	for ( var i=0; i<all.length; i++ ) {
		if ( all[i].nodeType == 1 ) {
			for ( j=0; j<all[i].attributes.length; j++ ) {
				if ( all[i].attributes.item(j).nodeName == 'class' ) {
					if ( all[i].attributes.item(j).nodeValue.indexOf('recipe_list_wrap') != -1 ) {
						this.recipe_list_wrap = all[i];
						break;
					}
				}
			}
		}
	}
	if ( this.recipe_list_wrap ) {
		for ( var i=0; i<this.creative_obj.recipes.length; i++ ) {
			this.total_time = this.creative_obj.recipes[i].total_time;
			this._temp = this.repeat_obj[1];
			this._href = '';
			this._innerHTML = '';
			this.link_id = this.creative_obj.recipes[i].link_id;
			this.name = this.creative_obj.recipes[i].name.replace(/{RegTM}/g, '&reg;');
			this.prep_time = this.creative_obj.recipes[i].prep_time;
			this.difficulty = this.creative_obj.recipes[i].difficulty;
			if ( this.name ) {
				this._innerHTML = this.name;
			}
			var _axel2 = Math.random() + '';
			var _rand2 = _axel2 * 10000000000000;
			if ( this.link_id ) {
				this._href = this.link_id.replace('{random}', _rand2);
			}
			this._temp = this._temp.replace('{name}', this._innerHTML);
			this._temp = this._temp.replace('{link_id}', this._href);
			if ( this.prep_time ) {
				this._temp = this._temp.replace(/{prep_time}/g, this.prep_time);
			}
			if ( this.total_time ) {
				this._temp = this._temp.replace(/{total_time}/g, this.total_time);
			}
			if ( this.difficulty ) {
				this._temp = this._temp.replace(/{difficulty}/g, this.difficulty);
			}
			this.recipe_list_wrap.innerHTML += this._temp;
		}
		// now that the repeated area is rebuilt, let's go through it and assign stuff like ratings and clickTags
		var _ratingCounter = 0;
		var _ratingExtraImageCounter = 0;
		var _recipeTitleCounter = 0;
		this.all = this.recipe_list_wrap.getElementsByTagName('*');
		for ( var i=0; i<this.all.length; i++ ) {
			for ( var j=0; j<this.all[i].attributes.length; j++ ) {
				if ( this.all[i].attributes.item(j).nodeName == 'class' ) {
					if ( this.all[i].attributes.item(j).nodeValue.indexOf('ratings') != -1 ) {
						this.rating = this.creative_obj.recipes[_ratingCounter].rating;
						if ( this.rating && this.creative_obj.rating_image ) {
							this.all[i].style.background = 'url(' + this.creative_obj.image + this.rating + this.creative_obj.rating_image.replace('[#]', '') + ') no-repeat center center';
						}
						_ratingCounter++;
					}
					if ( this.all[i].attributes.item(j).nodeValue.indexOf('healthyImage') != -1 ) {
						this.healthy_living = this.creative_obj.recipes[_ratingExtraImageCounter].healthy_living;
						if ( !eval(this.healthy_living) ) {
							this.all[i].style.display = 'none';
						}
						_ratingExtraImageCounter++;
					}
					if ( this.all[i].attributes.item(j).nodeValue.indexOf('recipeTitle') != -1 ) {
						this.all[i].tracking_tag = this.creative_obj.recipes[_recipeTitleCounter].tracking_tag;
						this.all[i].image = this.creative_obj.recipes[_recipeTitleCounter].image;
						this.all[i]._this = this;
						this.all[i].rsi_wrap = this.all[i].parentNode;
						if ( this.all[i].tracking_tag ) {
							this.all[i].onclick = function() {
								this._this.trackThis(this.tracking_tag);
							}
						}
						_recipeTitleCounter++;
					}
				}
			}
		}
	} else {
		replaceContent(this.creative_obj, /{name}/g, this.creative_obj.recipes[0].name.replace(/{RegTM}/g, '&reg;'));
		replaceContent(this.creative_obj, /{image}/g, this.creative_obj.recipes[0].image);
		replaceContent(this.creative_obj, /{link_id}/g, this.creative_obj.recipes[0].link_id);
		replaceContent(this.creative_obj, /{healthy_living}/g, this.creative_obj.recipes[0].healthy_living);
		replaceContent(this.creative_obj, /{difficulty}/g, this.creative_obj.recipes[0].difficulty);
		replaceContent(this.creative_obj, /{prep_time}/g, this.creative_obj.recipes[0].prep_time);
		replaceContent(this.creative_obj, /{total_time}/g, this.creative_obj.recipes[0].total_time);
		replaceContent(this.creative_obj, /{ingredients}/g, this.creative_obj.recipes[0].ingredients);
		replaceContent(this.creative_obj, /{rating}/g, this.creative_obj.recipes[0].rating);
		replaceContent(this.creative_obj, /{tracking_tag}/g, this.creative_obj.recipes[0].tracking_tag);
		replaceContent(this.creative_obj, /{servings}/g, this.creative_obj.recipes[0].servings);
	}
};

CreativeAd.prototype.capitalizeWord = function( str ) {
	return str.substring(0, 1).toUpperCase() + str.substring(1, str.length) + ' ';
};

CreativeAd.prototype.findPos = function( obj ) {
	this._curleft = this._curtop = 0;
	if ( obj.offsetParent ) {
		this._curleft = obj.offsetLeft;
		this._curtop = obj.offsetTop;
		while ( obj = obj.offsetParent ) {
			this._curleft += obj.offsetLeft;
			this._curtop += obj.offsetTop;
		}
	}
	return [this._curleft, this._curtop];
};

CreativeAd.prototype.setLyr = function( obj, lyr, offX, offY ) {
	this._coors = this.findPos(obj);
	var x = lyr;
	x.style.top = this._coors[1] + offY + 'px';
	x.style.left = this._coors[0] + offX + 'px';
};

CreativeAd.prototype.getHighestZIndex = function() {
	this.all = document.getElementsByTagName('*');
	this._zIndices = new Array();
	this._zIndices[0] = 0;
	for ( var i=0; i<this.all.length; i++ ) {
		if ( this.all[i].nodeType == 1 ) {
			if ( document.all ) {
				if ( this.all[i].currentStyle ) {
					this._zIndex = this.all[i].currentStyle['zIndex'];
					if ( !isNaN(this._zIndex) ) {
						this._zIndices.push(this._zIndex);
					}
				} else if (window.getComputedStyle) {
					this._zIndex = document.defaultView.getComputedStyle(this.all[i], null).getPropertyValue('zIndex');
					if ( !isNaN(this._zIndex) ) {
						this._zIndices.push(this._zIndex);
					}
				}
			} else {
				if ( this.all[i].currentStyle ) {
					this._zIndex = this.all[i].currentStyle['z-index'];
					if ( !isNaN(this._zIndex) ) {
						this._zIndices.push(this._zIndex);
					}
				} else if (window.getComputedStyle) {
					this._zIndex = document.defaultView.getComputedStyle(this.all[i], null).getPropertyValue('z-index');
					if ( !isNaN(this._zIndex) ) {
						this._zIndices.push(this._zIndex);
					}
				}
			}
		}
	}
	this._zIndices = this._zIndices.sort(this.sortZindex);
	return parseInt(this._zIndices[this._zIndices.length - 1]);
};

CreativeAd.prototype.sortZindex = function(a, b) {
	return a - b;
};

CreativeAd.prototype.trackThis = function(pTrackingString) {
	document.getElementById('adTracking').src = pTrackingString;
};

CreativeAd.prototype.popWin = function( url ) {
	this.pop_win = window.open(url, 'popWin', 'width=800, height=600, resizable=1, scrollbars=1, status=1, toolbar=1, location=1, menubar=1');
	this.pop_win.moveTo(0, 0);
};

/*
	BEGIN CREATIVE OBJECT
*/
function Creative(container_id, backup_container_id, template_node, recipes_node, bigbox_id) {
	this.container = document.getElementById(container_id);
	this.backup_container = document.getElementById(backup_container_id);
	this.template_node = template_node;
	this.recipes_node = recipes_node;
	_self = this;
};

Creative.prototype.ajax = function( callback ) {
	_self = this;
	_self.callback = callback != undefined ? callback : null;
	rsi__HTTP.getXML(rsi_template_xml, _self.templateLoaded);
};

Creative.prototype.templateLoaded = function( data ) {
	if ( rsi__HTTP.getNodeAttributeValue(data, 'rsi_css', '', 'href') != undefined ) {
		_self.rsi_css = rsi__HTTP.getNodeAttributeValue(data, 'rsi_css', '', 'href');
	}
	if ( rsi__HTTP.getNodeValue(data, 'rating_image', 0) != undefined ) {
		_self.rating_image = rsi__HTTP.getNodeValue(data, 'rating_image', 0);
	}
	if ( rsi__HTTP.getNodeValue(data, _self.template_node, 0) != undefined ) {
		_self.template = rsi__HTTP.getNodeValue(data, _self.template_node, 0);
	}
	/* create the css if it was used */
	if ( _self.rsi_css ) {
		_self.sponsorCSS = document.getElementsByTagName('head')[0] != null ? document.getElementsByTagName('head')[0].appendChild(document.createElement('link')) : document.body.appendChild(document.createElement('link'));
		_self.sponsorCSS.id = 'rsi_skin';
		_self.sponsorCSS.rel = 'stylesheet';
		_self.sponsorCSS.href = _self.rsi_css;
		_self.sponsorCSS.type = 'text/css';
	}
	/* load the recipes ONLY when the template is loaded */
	rsi__HTTP.getXML(rsi_recipes_xml, _self.recipesLoaded);
};

Creative.prototype.recipesLoaded = function(data, callback) {
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_video_available', 0) != undefined ) {
		_self.featured_video_available = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_video_available', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'view_tracker', 0) != undefined ) {
		_self.view_tracker = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'view_tracker', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_image', 0) != undefined ) {
		_self.featured_image = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_image', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_name', 0) != undefined ) {
		_self.featured_name = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_name', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_heathy_living', 0) != undefined ) {
		_self.featured_healthy_living = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_heathy_living', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_link_id', 0) != undefined ) {
		_self.featured_link_id = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_link_id', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_link_id2', 0) != undefined ) {
		_self.featured_link_id2 = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_link_id2', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_prep_time', 0) != undefined ) {
		_self.featured_prep_time = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_prep_time', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_total_time', 0) != undefined ) {
		_self.featured_total_time = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_total_time', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_difficulty', 0) != undefined ) {
		_self.featured_difficulty = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_difficulty', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_rating', 0) != undefined ) {
		_self.featured_rating = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_rating', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_tracking_tag', 0) != undefined ) {
		_self.featured_tracking_tag = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_tracking_tag', 0);
	}
	if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_from', 0) != undefined ) {
		_self.featured_from = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'featured_from', 0);
	}
	/* get recipe info */
	if ( rsi__HTTP.getNodesLengthFromParent(data, _self.recipes_node, 0, 'recipe') != undefined ) {
		_self.recipe_ads_length = rsi__HTTP.getNodesLengthFromParent(data, _self.recipes_node, 0, 'recipe');
	}
	var _array = new Array();
	_self.recipes = _array;
	for ( var i=0; i<_self.recipe_ads_length; i++ ) {
		_self.recipes[i] = new Object();
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'name', i) != undefined ) {
			_self.recipes[i].name = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'name', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'image', i) != undefined ) {
			_self.recipes[i].image = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'image', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'heathy_living', i) != undefined ) {
			_self.recipes[i].healthy_living = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'heathy_living', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'rating', i) != undefined ) {
			_self.recipes[i].rating = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'rating', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'link_id', i) != undefined ) {
			_self.recipes[i].link_id = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'link_id', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'difficulty', i) != undefined ) {
			_self.recipes[i].difficulty = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'difficulty', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'prep_time', i) != undefined ) {
			_self.recipes[i].prep_time = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'prep_time', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'total_time', i) != undefined ) {
			_self.recipes[i].total_time = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'total_time', i);
		}
		if ( rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'tracking_tag', i) != undefined ) {
			_self.recipes[i].tracking_tag = rsi__HTTP.getNodeValueFromParent(data, _self.recipes_node, 0, 'tracking_tag', i);
		}
	}
	/* display the creative */
	if ( _self.template ) {
		if ( _self.container ) {
			new CreativeAd(_self.container, _self);
		} else if ( _self.backup_container ) {
			new CreativeAd(_self.backup_container, _self);
		}
	}
	/* is there a new creative? */
	if ( _self.callback ) {
		_self.callback();
	}
	
};

function loadRSIConfig(rsi_config_file){
	if (rsi_config_file == ''){
		// default config for rsi -- load 2 units. one into rightrail, and 2nd into main column.
		rsiDebug('rsi config file not found. [path: ' + rsi_assets_path + rsi_config_file + ']'+"\n\r"+"falling back on default settings"+"\n\r");
		var fe = new Creative('sponsorRR1', 'sponserContainer1', 'sponsorRR1_template', 'sponsorRR1_recipes', 'ad_fn_rsr');
		fe.ajax(function() {
			var fw = new Creative('sponsorCtr1', 'centerSponser', 'sponsorCtr1_template', 'sponsorCtr1_recipes', 'ad_fn_rsr');
			fw.ajax();
		});		
	} else {
		var rsi_config_script = document.getElementsByTagName('head')[0] != null ? document.getElementsByTagName('head')[0].appendChild(document.createElement('script')) : document.body.appendChild(document.createElement('script'));
		rsi_config_script.type = 'text/javascript';
		rsi_config_script.language = 'javascript';
		rsi_config_script.src = rsi_config_file;
	}
}

// end search.integration.js
//  ------------------------------------------------------------------------------ //

// RSI FLIGHT INFO TEST //




