/*
content personalization client
$Revision: 1.6 $
(c) 1992-2006 Cisco Systems, Inc. All rights reserved.
Terms and Conditions: http://cisco.com/en/US/swassets/sw293/sitewide_important_notices.html
*/

if (typeof(cdc) == "undefined") cdc = new Object();
if (typeof(cdc.targetedContent) == "undefined"){
	cdc.targetedContent = new Object();

	cdc.targetedContent.swap = function(config){
		var domId;
		for (domId in config){
			var ruleToApply = false;
			var cookieIndex = '';
			// first see if they have a cookie that matches
			if (config[domId].cookieName){
				if (cdc.cookie.getCookie({cookieName:config[domId].cookieName}) !=''){
					ruleToApply = config[domId].contents[cdc.cookie.getCookie({cookieName:config[domId].cookieName})];
				}
			}
			if (!ruleToApply){
				if (config[domId].randomize){
					var i = Math.floor(Math.random() * config[domId].contents.length);
					ruleToApply = config[domId].contents[i];
					cookieIndex=i;
				}
			}
			//check through contents for swapping rule matches
			for (var i=0;i<config[domId].contents.length;i++){
				//check for referrer matches
				if (typeof(config[domId].contents[i].referrer)!=undefined){
					if ((document.referrer+'').indexOf(config[domId].contents[i].referrer)>0){
						ruleToApply = config[domId].contents[i];
						cookieIndex=i;
					}
				}
				//check for search term matches
				if (typeof(config[domId].contents[i].searchTerm)!=undefined){
					if ((document.referrer+'').indexOf('q=' + config[domId].contents[i].searchTerm)>0){
						ruleToApply = config[domId].contents[i];
						cookieIndex=i;
					}
				}
				//check for current URL matches
				if (typeof(config[domId].contents[i].urlString)!=undefined){
					if ((document.location+'').indexOf(config[domId].contents[i].urlString)>0){
						ruleToApply = config[domId].contents[i];
						cookieIndex=i;
					}
				}
				//check for current URL matches
				if (typeof(config[domId].contents[i].domTest)!=undefined){
					if (jQuery(config[domId].contents[i].domTest).length>0){
						ruleToApply = config[domId].contents[i];
						cookieIndex=i;
					}
				}
			}
			//apply swapping rule
			if (ruleToApply){
				if (!config[domId].metricsOff){
					if (typeof(vs_pageview)!='undefined'){
						//title either comes from json 'title' or the rule
						var title = '';
						if (ruleToApply.title){
							title = ruleToApply.title;
						} else if (ruleToApply.referrer){
							title = ruleToApply.referrer;
						} else if (ruleToApply.searchTerm){
							title = ruleToApply.searchTerm;
						} else if (ruleToApply.urlString){
							title = ruleToApply.urlString;
						}
						var sitearea = cdc.util.getSiteArea();
						var contentgroup='';//second level of IA path
						vs_pageview(title,contentgroup,'targeted content',sitearea,'');
					}
				}

				if (config[domId].cookieName && (cookieIndex+'' !='')){
					cdc.cookie.setCookie({cookieName:config[domId].cookieName,cookieValue:cookieIndex+''});
				}
				if (ruleToApply.contentDomId){
					var source = document.getElementById(ruleToApply.contentDomId);
					var data = '';
					if ((source.childNodes.length==1)&&(source.childNodes[0].nodeName == '#comment')){
						data = source.childNodes[0].data;
					}
					else {
						data = source.innerHTML;
					}
					//debugger;
					//this was sometimes getting an error which stopped execution
					//but didn't break the content replacement
					try {jQuery('#'+domId).html(data);}catch(e){}

					jQuery('#'+domId).show();
				}
				else if(ruleToApply.contentUrl){
				
					var lc = function(domId){
						var d = domId;
						return function(data){
							jQuery('#'+d).html(data);
							jQuery('#'+d).show();
						};
					};
				
					jQuery.get(ruleToApply.contentUrl,lc(domId));
					
				}

				return true;
			}
			jQuery('#'+domId).show();
			return false;
		}
	};
}


