//---------string functions

function isValidURL(testURL) {
	if (typeof testURL == "undefined"||testURL==null||testURL==""||testURL=="undefined") return false;
	else return true;
}

function fullyArticulate(url) {
	return (url.substring(0,1)=="/") ? "http://"+document.location.hostname+url : url;
}

function isAsx(url) {
	return (url.substring(0,7)=="http://"||url.substring(0,1)=="/");
}

function safeString(s) {
   try{
      s = unescape(s);
      s = s.replace(/\W+/gi,"_").toLowerCase();
      s = s.replace(/\s+/gi,"_").toLowerCase();
      s = s.replace(/_+/g,"_");
   }catch(e){
      return "error cleaning string.";
   }
   return s;
}

function makeBoolean(s) {
	if (s=="false") return false;
	else return Boolean(s);
}

function stripAuthToken(testURL) {
	var u = testURL.substring(0, testURL.indexOf("?"));
	var query = testURL.substring(testURL.indexOf("?"), testURL.length);
	var sq = "";
	if (query.length>0) {
		var nvp = query.split("&");
		if (nvp.length > 0) {
			for (var i=0;i<nvp.length;i++) {
				if (nvp[i].indexOf("auth=")<0 && nvp[i].indexOf("aifp=")<0) {
					n = (sq=="") ? "" : "&";
					sq += n + nvp[i];
				}
			}
		}
	}
	return u+sq;
}

 
//---------js/flash communication

function setFlashVar(name, val) {
	try { 
		//if (name=="video.playState"||name=="video.adPlay") printStatus("setFlashVar: "+name+" = "+val);
		window.document.bbFlash.SetVariable(name, val); 
	} catch (e){ 
		printStatus("e setFlashVar: "+e.description);
	}
}
 
function bbFlash_DoFSCommand(command, args) {  
	//printStatus("command: " + command+"\n\args: " + args);
 	try {
		var args = args.split("||");
		var scriptCall = (command=="sendBrowseEvent"||command=="addToPlaylist") ? "reporting_manager.handle_fscommand('" + command + "','" + args + "')" :  command + "(" + args + ")"; 
		if (appManager.env.isFirefox) setTimeout(scriptCall,10); 
		else eval(scriptCall);
		
	} catch(e) {
		printStatus("e command: "+command+" + " + e.description);
	}  
} 
   
 
//---------download mgr
 
var baseLocalDir = "";
function getFileProp(file,prop) {
	var result = null;
	try {
		var query = dmClient.QueryDownload(baseLocalDir + file);  
		var oXml = new ActiveXObject("Msxml2.DOMDocument");
		oXml.loadXML(query);
		xmlDoc = oXml.documentElement;
		if (xmlDoc != null){
			result = xmlDoc.getAttribute(prop);
		}	
	}
	catch(e) {
		result = null;
	}
	return result;
}


//--------- debug
function printStatus(tex){
	try { 
		if (location.search.substring(1).indexOf("debug=true")>-1) {
			document.getElementById("debugStatusDIV").innerHTML = "<nobr>&raquo; "+tex +"</nobr><br>" + document.getElementById("debugStatusDIV").innerHTML;
		}
	} catch(e) {}
}  

function getCurrentPlaylist(s){
	cps="";  
	/** for (var i=0;i<Player.currentPlaylist.count;i++) {
		if (s) cps += i+": "+Player.currentPlaylist.items[i].url+"\n\n";
		else cps += i+": "+Player.currentPlaylist.item(i).sourceURL+"<br>";
	}**/
	for (var i=0;i<playlist.items.length;i++) {
		cps += i+": "+playlist.items[i].url+"\n\n"; 
	}
	return cps;
} 

function getDebugCompareURLs() { 
	try {
		if (playlist) {
			if (playlist.index<playlist.items.length) {
				printStatus("TEST: "+stripAuthToken(playlist.items[playlist.index].url)+"\n\n"+stripAuthToken(videoEvent.url));
			}
		}	 
	} catch(e) {
		printStatus("e debugCompare: "+e.description);
	}
}

function getDebugPlayVideo() {
 	var s = "";
	for (var i in preBuffEvent) {
		s += "preBuffEvent."+i+": "+preBuffEvent[i]+", "; 
	}
	s += "<br>";
	for (var i in videoEvent) {
		s += "videoEvent."+i+": "+videoEvent[i]+", "; 
	}
	printStatus(s);
}

//in case debug.jhtml is not included
function debugPlayStates() {} 
function debugOpenStates() {}  
function debugCurrentItem() {}

//--------- detection

var isInstalled = false;
function detectDM() {
	try {
		var sHostName,sNoOriginHostName;
		var vm = new ActiveXObject("DMServer.QueueServer.1");
		if (vm != null) {
			//if (dmQueue.SetDisabled)
			//{
				isInstalled = true;
				dmQueue.SetDisabled("False");
				dmClient.EnableModule("www.mtv.com");
				//var versionString = dmClient.get_VersionString()
			//}
		}
	} 
	catch (e) { }
}
 
function detectBrowser(){
	var version = 0;
	if (navigator.appVersion.indexOf("MSIE") != -1) {
		var temp = navigator.appVersion.split("MSIE");
		version = parseFloat(temp[1]);
	}
	var result = (version >= 5.5) ? "true" : "false";
	return result;
} 
 
function getPageValues() {
	var br = detectBrowser();
	if (navigator.appVersion.indexOf("Win") != -1) { var wmv = Player.versionInfo; }
	var dm = isInstalled;
	
	setFlashVar("br", br);
	if (navigator.appVersion.indexOf("Win") != -1) { setFlashVar("wmv", wmv); }
	setFlashVar("dm", dm); 
	setFlashVar("ready", "ok");
}
 
//detectDM();
