if(typeof KIDS == "undefined" || !KIDS) var KIDS = {};

KIDS.namespace("ads.refresh");

KIDS.ads.refresh.IFrameAds = new Array();
KIDS.ads.refresh.stopAdRefresh  = new Array();
KIDS.ads.refresh.timedAdRefresh = new Array();
KIDS.ads.refresh.minSponsor = 1;
KIDS.ads.refresh.maxSponsor = 3;
KIDS.ads.refresh.randSponsor = Math.floor(Math.random()*(KIDS.ads.refresh.maxSponsor-KIDS.ads.refresh.minSponsor+1)+KIDS.ads.refresh.minSponsor);
KIDS.ads.refresh.ord = Math.random()*1000000000000000000;

KIDS.ads.refresh.Male = [{"age":"6","rugrat":"Dil"},{"age":"7","rugrat":"Tommy"},{"age":"8","rugrat":"Phil"},{"age":"9","rugrat":"Chuckie"},{"age":"10","rugrat":"Stu"},{"age":"11","rugrat":"Chas"},{"age":"12","rugrat":"Lou"},{"age":"13","rugrat":"Boris"},{"age":"14","rugrat":"Bill"},{"age":"15","rugrat":"George"},{"age":"16","rugrat":"Jack"},{"age":"17","rugrat":"Jimmy"},{"age":"18","rugrat":"Ron"},{"age":"25","rugrat":"Bryan"},{"age":"35","rugrat":"Ed"},{"age":"45","rugrat":"Dan"},{"age":"55","rugrat":"Damon"},{"age":"65","rugrat":"Irving"}];
KIDS.ads.refresh.Female = [{"age":"6","rugrat":"Lil"},{"age":"7","rugrat":"Susie"},{"age":"8","rugrat":"Kimi"},{"age":"9","rugrat":"Angelica"},{"age":"10","rugrat":"Didi"},{"age":"11","rugrat":"Kira"},{"age":"12","rugrat":"Betty"},{"age":"13","rugrat":"Minka"},{"age":"14","rugrat":"Hilary"},{"age":"15","rugrat":"Barbara"},{"age":"16","rugrat":"Jackie"},{"age":"17","rugrat":"Rosalyn"},{"age":"18","rugrat":"Nancy"},{"age":"25","rugrat":"Aly"},{"age":"35","rugrat":"Kelly"},{"age":"45","rugrat":"Amy"},{"age":"55","rugrat":"Susan"},{"age":"65","rugrat":"Ruth"}];

$(document).ready(function(){
	KIDS.ads.getAds(KIDS.get("uri"));			
	$(document).bind("authStatus", function(response){KIDS.ads.refresh.invokeAdCreation();KIDS.ads.refresh.invokeAdRefresh();});
});
KIDS.ads.refresh.invokeAdCreation = function(){
	try{
		if(KIDS.get("adfree")!="true"){ 
			for(var one in KIDS.ads.adArray){
				var size = KIDS.ads.adArray[one].getSize();
				if($("#ad-"+size+"Div").length>0){ 	
					KIDS.ads.refresh.placeAd(KIDS.ads.adArray[one]);
					$("#ad-"+size+"Div").removeClass("hiddenClass");
					if(size=="728x90"){$("#top-advertisement").removeClass("hiddenClass");}
					else if(size=="120x60"){
						var clsStr = "small-sponsored";
						clsStr += (isWide) ? " wide" : ""; 
						$("#ad-"+size+"Div").addClass(clsStr);
					}
				}
			}
		}
	}catch(e){KIDS.utils.doLog("KIDS.ads.refresh.invokeAdCreation failed");}	
}
KIDS.ads.refresh.invokeAdRefresh = function(){

	try{
		for(var i=0;i<KIDS.ads.refresh.timedAdRefresh.length;i++){
			KIDS.ads.refresh.stopAdRefresh[i] = {"rate":KIDS.ads.refresh.timedAdRefresh[i].rate,"value":window.setInterval("KIDS.ads.refresh.reloadAds('"+KIDS.ads.refresh.timedAdRefresh[i].elementID+"')", KIDS.ads.refresh.timedAdRefresh[i].rate*60*1000)};
		}
	}catch(e){KIDS.utils.doLog("KIDS.ads.refresh.invokeAdRefresh failed");}	
}
KIDS.ads.refresh.reloadAds = function(eleId){
	try{
		KIDS.ads.refresh.ord = Math.random()*1000000000000000000;
		KIDS.ads.refresh.cat = Math.floor(Math.random()*(KIDS.ads.refresh.maxSponsor-KIDS.ads.refresh.minSponsor+1)+KIDS.ads.refresh.minSponsor);
		var idArr = eleId.split(";");
		for(var i=0;i<idArr.length;i++){
			for(var j=0;j<KIDS.ads.refresh.IFrameAds.length;j++){
				if(KIDS.ads.refresh.IFrameAds[j].containerId==idArr[i]){
					var src=KIDS.ads.refresh.IFrameAds[j].src;
					if(src.indexOf("ord=")>-1){
						src=src.split("ord=")[0]+"ord="+KIDS.ads.refresh.ord+"?";
					}
					var patt = new RegExp("(^.*cat=)\\d+(;.*$)");
					var result = patt.exec(src);
					src = (result.length==3) ? result[1]+KIDS.ads.refresh.cat+result[2] : src;
					KIDS.ads.refresh.IFrameAds[j].src=src;
					
					$('#'+KIDS.ads.refresh.IFrameAds[j].id).attr("src", "");
					$('#'+KIDS.ads.refresh.IFrameAds[j].id).attr("src", KIDS.ads.refresh.IFrameAds[j].src);
					
					var gSwf = document.getElementById("gameSwf");
					if(gSwf)gSwf.focus();
				}
			}
		}
	}catch(e){KIDS.utils.doLog("KIDS.ads.refresh.reloadAds failed"+e.toString());}	
}
KIDS.ads.refresh.placeAd = function(adObj){
	try{
		if(adObj){
			
			var sz = adObj.getSize();
			var kVals = ""+adObj.getKeyValues();	
			var zone = location.pathname;

			if(sz.indexOf("-")>0) sz = sz.substring(0,sz.indexOf("-"));
			
			if(KIDS.get("videoType").length>0){
				zone = zone.replace("/clip/","/"+KIDS.get("videoType")+"/");
			}
			if(zone.indexOf(".html")<0){
				if(zone.charAt(zone.length-1)!="/") zone+="/";
				if(zone.indexOf("vote")>-1 && zone.split("/vote/")[1].length==0){
					var kcaCurrentCat = NICK.kca.getCurrentUserCategory();
					if(kcaCurrentCat!=null){
						zone+=kcaCurrentCat.url+"/";
						kVals+="kcacategory="+kcaCurrentCat.url+";";
					}
					zone+="index.html";
				}else if(NICK.club != null){
					if(NICK.club.pageOwner!=null && NICK.club.pageOwner.length>0){
						if(location.pathname.indexOf(NICK.club.pageOwner)>-1){
							var clubSection=NICK.club.utils.getSection();
							zone = "/club/profiles/"+clubSection+".html";
						}else zone+="index.html";
					}else zone+="index.html";
				}else zone+="index.html";
			}else if(KIDS.get("isGotw")=="true"){
				zone = "/games/game-of-the-week-games/play";
			}
			
			kVals = (kVals.lastIndexOf(";")==(kVals.length-1)) ? kVals : kVals+";";
			if(com.mtvi.config.qs.testmode) kVals += "testmode=" + com.mtvi.config.qs.testmode+";";
			if(KIDS.ads.refresh.maxSponsor>1) kVals+="cat="+KIDS.ads.refresh.randSponsor+";";			
			if(NICK.userData.loggedIn=="true") kVals+=KIDS.ads.refresh.getRugratValue();
			if(KIDS.get("fccRelatedShow")) kVals+='!category='+KIDS.get("fccRelatedShow")+';show='+KIDS.get("fccRelatedShow")+';';
			if(KIDS.get("type")=="game" && KIDS.get("isDetailPage")=="true") kVals+='ga='+KIDS.get("urlAlias")+';';
			if(KIDS.get("isGotw")=="true") kVals+='gotw=true;';
			if(KIDS.get("primaryType"))kVals+= 'gametype='+KIDS.get("primaryType").toLowerCase();

			zone=zone.replace(/[- ]/gi,"_");
			kVals=kVals.replace(/-/gi,"_");
			
			KIDS.ads.refresh.placeIFrameAd({
				size: sz,
				actualSize: adObj.getActualSize(),
				sections: zone,
				keyValues: kVals,
				containerId: "ad-"+adObj.getSize()+"Div",
				contentType:"adi",
				reloadAd: adObj.isRefreshable()
			});
			if(adObj.isRefreshable()){
				var rate = adObj.getRefreshRate();
				var hasRate = false;
				for(var i=0;i<KIDS.ads.refresh.timedAdRefresh.length;i++){
					if(KIDS.ads.refresh.timedAdRefresh[i].rate.toString()==rate.toString())hasRate=true;
				}
				if(!hasRate){
					KIDS.ads.refresh.timedAdRefresh[KIDS.ads.refresh.timedAdRefresh.length]={"rate":rate,"elementID":"ad-"+adObj.getSize()+"Div"};					
				}else{
					KIDS.ads.refresh.timedAdRefresh[KIDS.ads.refresh.timedAdRefresh.length-1].elementID += ";" + "ad-"+adObj.getSize()+"Div";					
				}
			}
		}
	}catch(e){KIDS.utils.doLog("KIDS.ads.refresh.placeAd failed:"+e);}
}
KIDS.ads.refresh.placeIFrameAd = function(a_adParametersObj){
	try{
		var ad=com.mtvi.ads.AdManager.getAd(a_adParametersObj);
		var adReloader=new com.mtvi.util.IFrameReloader(a_adParametersObj.containerId);
		adReloader.src=ad.getUrl();
		if(a_adParametersObj.actualSize.length>0){
			var wh = a_adParametersObj.actualSize.split("x");
			adReloader.width=wh[0];
			adReloader.height=wh[1];
		}else{
			adReloader.width=ad.getWidth();
			adReloader.height=ad.getHeight();
		}
		var html='<iframe id="'+adReloader.id+'" src="'+adReloader.src+'" width="'+adReloader.width+'" height="'+adReloader.height+'" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"><\/iframe>';
		$('#'+a_adParametersObj.containerId).html(html);
		
		KIDS.ads.refresh.IFrameAds.push(adReloader);
	}catch(e){KIDS.utils.doLog("KIDS.ads.refresh.placeIFrameAd failed");}
}
KIDS.ads.refresh.stopRefreshing = function(){
	try{
		var len = KIDS.ads.refresh.stopAdRefresh.length;
		for(var i=0;i<len;i++){
			window.clearInterval(KIDS.ads.refresh.stopAdRefresh[i].value);
		}
	}catch(e){KIDS.utils.doLog("KIDS.ads.refresh.stopRefreshing failed");}
}
KIDS.ads.refresh.getRugratValue = function(){
	try{
		function getValue(arr){
			var rval = "";
			var age = new Number(NICK.userData.age.split(" ")[0]);
			for(var i=0;i<arr.length;i++){
				if(arr[i].age>age){
					if(i>0) rval="rugrat="+arr[i-1].rugrat+";"
					break;
				}
			}
			return(rval);
		}
		var retval = "";
		switch(NICK.userData.gender){
			case "Male":
				retval = getValue(KIDS.ads.refresh.Male);
				break;
			case "Female":
				retval = getValue(KIDS.ads.refresh.Female);
		}
		return(retval);
	}catch(e){KIDS.utils.doLog("KIDS.ads.refresh.getRugratValues failed:"+e.toString());return("");}
}
