/**********************/
/** CODAParams. **/
/**********************/
MTVM.services.CODAParams	= function()		
{			
	return MTVM.services.CODAParams.prototype.__getInstance();
}

MTVM.services.CODAParams.prototype = {		
	instanceOfObj:		null,			
	__getInstance: function()
	{
		if( !MTVM.services.CODAParams.prototype.instanceOfObj ) 
		{
			MTVM.services.CODAParams.prototype.instanceOfObj = this;
			this.__init();
		}
		return MTVM.services.CODAParams.prototype.instanceOfObj;			
	},
	
	__init: function()
	{
		this.reporting							= {};
		this.ads								= {};
		
		this.reporting.name						= this.__getReportingName();
		this.reporting.dynamicAccountSelection	= "true";
		this.reporting.dynamicAccountList		= this.__getDynamicAccountList();
		this.reporting.linkInternalFilters		= "javascript:,mtvmusic-br,mtvmusica,mtvi.com";
		this.reporting.pageName					= location.pathname.substring(1);
		/*
		this.reporting.searchTermSuccess		= MTVM.config.xslParams.searchTermSuccess;
		this.reporting.searchTermFail			= MTVM.config.xslParams.searchTermFail;
		this.reporting.searchType				= MTVM.config.xslParams.searchType;
		*/
		
		this.ads.dartSite						= this.__getDartSite() //"music.mtv";				
		this.ads.keyValues						= this.__makeKeyValues();
		this.ads.defaultSections				= this.__getDefaultSections();		
		this.ads.defaultContentType				= "adj";
		this.ads.positionThreshold				= "";		
		this.ads.size							= "";		
	},
	
	/******************* get dynamicAccountList*****************/
	__getDynamicAccountList: function()
	{
		var list ="";
		switch(MTVM.config.countryCode)
		{
			case "br":
				list = "rupeshlakhani.me.uk/br=scenic-l,scenic-d,scenic-q";
				break;
				
			case "la":
				list = "rupeshlakhani.me.uk/latam=scenic-l,scenic-d,scenic-q";
				break;

			default:
				list = "rupeshlakhani.me.uk=scenic-l,scenic-d,scenic-q";
				break;
		}
		
		
		return list;
	},
	
	/******************* GET DARTSITE *****************/
	__getDartSite: function()
	{
		return MTVM.config.dartSite;
	},
	
	
	/******************* GET REPORTING NAME *****************/
	__getReportingName:	function()
	{
		return MTVM.config.reportingSuite;
	},

	/******************* GET DEFAULT SECTION *****************/
	__getDefaultSections:	function()
	{
		//valueString += MTVM.config.xslParams.zones;
		
		var zones = "";
		var pagePath = location.pathname.substring(1);
		var sections = pagePath.split("/");
		
		for (var i=0; i<sections.length; i++) {
			sections[i] = sections[i].replace( /^(\d)/, "_$1");
		}
		
		var pageParams = location.href.substring(location.href.indexOf("?")+1);
		var pageParamsObj = MTVM.util.parseUrlParamsToJSON();
		if (pageParamsObj==null) pageParamsObj = {};
		
		
		switch(sections[0])
		{
		/*
			case "home":
				return "_hp/";
				break;
				
			case "/":
				return "_hp/";
				break;
			
			case "":
				return "_hp/";
				break;
			case "playlists":
				//console.log("pagePath:"+pagePath);
				zones = "playlists/";
				if (pagePath.match(/playlists\/quicklist\/edit\/?/)){ //quicklist edit
					zones += "quicklist/";
					zones += "edit/";
				}
				else if (pagePath.match(/playlists\/quicklist\/?/)){ //quicklist
					zones += "quicklist/";
				}
				
				else if (pagePath.match(/playlists\/(?!quicklist)[a-zA-Z0-9\_\-]+\/[a-zA-Z0-9\_\-:\.]+\/edit\/?/)){ //persisted user playlist
					zones += "ugc-playlist/";
					zones += "edit/";
				}
				else if (pagePath.match(/playlists\/(?!quicklist)[a-zA-Z0-9\_\-]+\/[a-zA-Z0-9\_\-:\.]+\/?/)){ //persisted user playlist
					zones += "ugc-playlist/";
				}
				else if (pagePath.match(/playlists\/(?!quicklist)[a-zA-Z0-9\_\-]+\/?/)){ //user playlist collection
					
					zones += "ugc-playlist-collection/";
				}
				//console.log("zones: "+zones);
				return zones;
				break;
			case "browse":
				zones = "browse/";
				if (sections!=null && sections.length > 1)
					zones += sections[1] +"/";
				else
					zones += "a/";
				return zones;
				break;
			case "featured":
				zones = "featured/";
				if (sections!=null && sections.length > 1)
					zones += sections[1] +"/";
				return zones;
				break;
			case "charts":
				zones = "charts/";
				if (sections!=null && sections.length > 2){
					zones += sections[1] +"/";
					zones += sections[2] +"/";
					if ("genre" in pageParamsObj)
						zones += pageParamsObj.genre +"/";
				}
				return zones;
				break;
			case "artist":
				zones = "artist/";
				if ("name" in pageParamsObj){
					zones += pageParamsObj.name +"/";
				}
				else if (sections!=null && sections.length == 1)
					zones += sections[0] +"/";
				return zones;
				break;
			case "video":
				zones = "video/";
				if (sections!=null && sections.length > 3){
					
					zones += sections[0] +"/";
					zones += sections[2] +"/";
					zones += sections[3].split(".")[0] +"/";
				}
				return zones;
				break;
			*/
			default:
				for (var i=0; i<sections.length; i++) {
					zones += sections[i]+"/";
				}
				zones = zones.substring(0, zones.length-1);
				return zones;
				break;		
		}
	
	},
	
	
	/******************* MAKE KEY VALUES *****************/
	__makeKeyValues: function()
	{		
		var valueString 		= "";

		var regex= new RegExp(MTVM.config.playlistMgidPrefix, "g");

		valueString +="site_region="+MTVM.config.dartSiteRegion+";"
		
		valueString +="art="+MTVM.contextValues.artistAlias+";";
		valueString +="gen="+MTVM.contextValues.genre+";";
		valueString +="user_playlist_id="+MTVM.contextValues.user_playlist_id.replace(regex,"")+";";
		valueString +="chart_id="+MTVM.contextValues.chart_id+";";
		valueString +="mpu="+MTVM.contextValues.mpu+";";
		
		
		/*
		switch(MTVM.config.xslParams.pageType)
		{
		
			//video page
			case "video":
				valueString = valueString +  "!category=float;!category=pop;!category=video;!category=expand;mtype=standard;";
				break;
				
			
			//artist page
			case "artist":
				switch(MTVM.config.xslParams.typeFilter)
				{
					case '1':
						valueString = valueString + "sec1=music_video;";
						break;
					case '3':
						valueString = valueString + "sec1=concert;";
						break;
					case '4':
						valueString = valueString + "sec1=show_clip;";
						break;
					case '8':
						valueString = valueString + "sec1=show_performance;";
						break;
					case '100':
						valueString = valueString + "sec1=featured_on;";
						break;		
				}
				break;

			
			
			//search page
			case "search":
				if(MTVM.config.xslParams.searchTerm!= "" && MTVM.config.xslParams.searchTerm!=null)
				{
					valueString = valueString + "term="+MTVM.config.xslParams.searchTerm+";";
				}
				break;

				
		}

		if(MTVM.config.xslParams.artistName != "" && MTVM.config.xslParams.artistName != null)
		{
			var adjustedArtName = MTVM.config.xslParams.artistName.replace( /^(\d)/, "_$1" );
			valueString = valueString + "art=" +MTVM.config.xslParams.artistName+";";
		}

		if(MTVM.config.xslParams.genre != "" && MTVM.config.xslParams.genre != null)
		{
			valueString = valueString + "gen="+MTVM.config.xslParams.genre+";";
		}
		
		*/
		
		
		
		return valueString;
	}
	
}