
// Play functions

    //************************************  DEPRICATED VIDEO FUNCTIONS ***************************
	function playMyVideos() { playVideo('',{show:'p/m.xml'}); }
	function playVideos( iVideoID, sPopupCheckerURL, sVideoShow, iSkinID, bForceSplash, iBandwidth, sVO, sRD ){var args = {};if(hasValue(sVideoShow)) args["show"] = sVideoShow;if(hasValue(iSkinID)) args["skin"] = iSkinID;if(hasValue(sPopupCheckerURL))args["destURL"] = sPopupCheckerURL;if(hasValue(sRD)) args["rdPath"] = sRD;playVideo(iVideoID, args);}
	function playLAUNCHVideo( videoID, bandwidth, vo, showPath, playerSkin, forceSplash, clientID, sPopupCheckerURL ){var args = {};if(hasValue(sPopupCheckerURL))args["destURL"]= sPopupCheckerURL;if(hasValue(showPath))args["show"]= showPath;if(hasValue(playerSkin))args["skin"]= playerSkin;if(hasValue(forceSplash))args["splash"]= forceSplash;playVideo( videoID, args );}
	//********************************************************************************************
	
	function hasValue(param)
	{
	    if(typeof(param) == "undefined") return false;
	    if(typeof(param) == undefined) return false;
	    if(param == '') return false;
	    
	    return true;
	}
	
	function playCosmosVideo( iVideoID, args )
	{
	    var iVID = (typeof iVideoID != 'undefined' && hasValue(iVideoID) && !isNaN(iVideoID)) ? iVideoID : "";
		var iSID = (typeof args != 'undefined' && hasValue(args.stationID) && !isNaN(args.stationID)) ? args.stationID : "";
		
		// build base path to the cosmos player
		var	sCosmosPlayerURL = YAHOO.YMusic_Domains.cosmosvideo + "/up/ymusic" + ( (typeof YAHOO.Music != 'undefined' && typeof YAHOO.Music.locale != 'undefined') ? YAHOO.Music.locale : 'us' ) + "/?vid=" + iVID + "&stationId=" + iSID;
		
		var destURL = ( typeof args != 'undefined' && hasValue(args.destURL) ) ? args.destURL : "";
		var playURL = ( typeof args != 'undefined' && hasValue(args.rdPath) ) ? addRedirect(args.rdPath, sCosmosPlayerURL) : sCosmosPlayerURL;
		
		var queryString = "&curl=" + ((destURL != "")? encodeURIComponent(destURL) : encodeURIComponent(document.location));

		playURL += queryString;
	
		var failURL = YAHOO.YMusic_Domains.music + "/relaunch/?app=video&fp=1&vid=" + iVID + getFailQS(args);
		var videoWin = CommonWindowOpener.openWindow(playURL, 'videoPlayerWindow', 'WIDTH=960,HEIGHT=664,scrollbars=yes', failURL, destURL);
	}
		
	function playVideo( iVideoID, args )
	{
	    if ( typeof COMMON_VIDEOPLAYER_TRANSITION_USECOSMOS != 'undefined' && COMMON_VIDEOPLAYER_TRANSITION_USECOSMOS )
	    {
	        playCosmosVideo( iVideoID, args );
	    }
	    else
	    {
	    
		    var	playURL		= getVideoServerDomain() + "/player/default.asp?";
		    var queryString = "";
		    var destURL     = "";
		    var cid         = YAHOO.Video.defaultClientID;
    		
		    queryString += "vid=" + iVideoID + "&";
    		
		    if(args)
		    {
			    if(args.rdPath)
			    {
				    playURL = addRedirect(args.rdPath, playURL);
			    }
    			
			    if(args.show)
			    {
				    queryString+= "sx=" + args.show + "&";
			    }
			    else
			    {
				    if(isNaN(iVideoID)) return false;
			    }
    				
			    if(args.skin)		queryString+= "ps=" + args.skin + "&";
			    if(args.splash)		queryString+= "fs=" + args.splash + "&";
			    if(args.destURL && args.destURL != "")	destURL = args.destURL;
			    if(args.cid)	    cid = args.cid;
		    }

		    queryString += "cid=" + cid;
		    queryString += "&curl=" + ((destURL != "")? encodeURIComponent(destURL) : encodeURIComponent(document.location));

		    playURL += queryString;
    	
		    var failURLQS = getFailQS(args);
		    var failURL = YAHOO.YMusic_Domains.music + "/relaunch/?vid=" + iVideoID + "&fp=1&app=video" + failURLQS;
    		
		    var videoWin = CommonWindowOpener.openWindow(playURL, 'videoPlayerWindow', 'WIDTH=690,HEIGHT=520', failURL, destURL);
        }
	}

	function playRadio(p, m, d, args)
	{
		var playURL = getRadioServerDomain() + '/radio/player/default.asp?';
		var queryString = "";
		var destURL = "";
		var clientID = YAHOO.Radio.defaultClientID || 1;
		
		if(typeof(p) == "undefined" || (typeof(p) == "object" && typeof(m) == "undefined") )
		{
			if( typeof(p) == "object" ) args = p;
			
			p=0;
			m=0;
			d=0;
		}
		
		queryString += 'p=' + p + '&m=' + m + '&d=' + d;
		if (arguments[4] != null) qs += '&amp;' + arguments[4];
		
		if(args)
		{
			if(args.rdPath)
			{
				playURL = addRedirect(args.rdPath, playURL);
			}
			if(args.clientStationID) qs += "&clientStationID=" + args.clientStationID;
			if(args.clientStationID) qs += "&clientStationID=" + args.clientStationID;
			if(args.destURL)	destURL	= args.destURL;
			if(args.clientID)	clientID = args.clientID;
		}
	
		playURL+=queryString + "&clientID=" + clientID;
		
		var failURLQS = getFailQS(args);
		var failURL = YAHOO.YMusic_Domains.music + "/relaunch/?p=" + p + "&m=" + m + "&d=" + d + "&clientID=" + clientID + failURLQS + "&fp=1&app=radio";
		
		radioWin = CommonWindowOpener.openWindow(playURL, 'LaunchRadioTarget', 'HEIGHT=365,WIDTH=491', failURL, destURL);

	}
	
	
	function playSongSample(sampleID, args)
	{
		var noApp = (args && args.noApp && (args.noApp== true));
		if (YAHOO.YME.installed && !noApp)
		{
			var ympurl = YAHOO.YMusic_Domains.music + "/musicengine/default.asp?hasYME=1&dest=ymp://select/{AD633C14-BCD7-4876-8AC9-0F9BED1CD2CF}%3Fdest%3D/library/song/default.asp%253Fplay%253D1%252526id%253D" + sampleID;
			document.location = ympurl;
		}
		else
		{
			if (parseInt(YAHOO.WMP.version) > 7)
			{
				var path = YAHOO.YMusic_Domains.sample + '/radio/player/default.asp?';
				var sSkin = ""
				if(args)
				{
					if(args.skinID) sSkin = "&sk=" + args.skinID;
				}
				
				var qs = 'clientID=616&p=6&m=0&d=0&linkTarget=LaunchRadioTarget&op=' + escape('sids=' + sampleID + sSkin);
				
				var playURL = path + qs;
				var failURL = YAHOO.YMusic_Domains.music + "/relaunch/?sampleID=" + sampleID + "&fp=1&app=sample";
				var destURL = "";
				
				var samplesWin = CommonWindowOpener.openWindow(playURL, 'samplesWindow', 'HEIGHT=313,WIDTH=502', failURL, destURL);
			}
		}
	}
	
//helpers	
	function getVideoServerDomain()
	{
		if( typeof(YAHOO.YMusic_Domains) == "undefined" || typeof(YAHOO.YMusic_Domains.video) == "undefined")
		{
			var prefix = document.location.host.match(/(\w{2})\.(?:(?:music)|(?:launch))/i);
			return "http://launchtoday." + ( (prefix != null)? (prefix[1]+"."):'' ) + "launch.yahoo.com";
		}
		else
		{
			return YAHOO.YMusic_Domains.video;
		}
	}
	
	function getRadioServerDomain()
	{
		if( (!window.YAHOO.YMusic_Domains) || (!window.YAHOO.YMusic_Domains.radio) )
		{
			var prefix = document.location.host.match(/(\w{2})\.(?:(?:music)|(?:launch))/i);
			return "http://radio." + ( (prefix != null)? (prefix[1]+"."):'' ) + "launch.yahoo.com";
		}
		else
		{
			return YAHOO.YMusic_Domains.radio;
		}
	}
	
	function getFailQS(args)
	{
		var failURLQS = "";
		for(var i in args)
		{
			failURLQS+= ("&" + i + "=" + args[i]);
		}
		return failURLQS;
	}
	
	function addRedirect(rdPath, url)
	{
		var rdPath = rdPath.match(/(^\/)?(.*)/)[2];
		if(!/.*\*$/.test(rdPath))
		{
			if(!/.*\/$/.test(rdPath)) rdPath += "/";
			rdPath+="*";
		}
		return  "http://us.rd.yahoo.com/" + rdPath + url;
	}

	
    	
    /*
     * CommonWindowOpener
     * This file defines a common_class_openwindow class to manage opening windows, especially with popup blocking
     */
     
     
     
    // Constructor
    function CommonWindowOpener()
    {
    }

    // global variables

    CommonWindowOpener.windows = {};
    CommonWindowOpener.unNamedWindows = 0;
    CommonWindowOpener.timeToCheck = 3000;

    // static
    CommonWindowOpener.openWindow = CommonWindowOpener_openWindow;
    CommonWindowOpener.checkForNewWindow = CommonWindowOpener_checkForNewWindow;
    CommonWindowOpener.redirectWindow = CommonWindowOpener_redirectWindow;

    function CommonWindowOpener_openWindow( url, windowName, windowFeatures, fail, pass )
    {
	    // set window name
	    if (windowName == null || typeof(windowName) == "undefined" || windowName == "")
	    {
		    windowName = "cwo" + CommonWindowOpener.unNamedWindows;
		    CommonWindowOpener.unNamedWindows++;
	    }
    	
	    // try to open the window
	    var targetWindow = window.open(url, windowName, windowFeatures);
    	
	    // set timeout
	    if (targetWindow)
	    {
		    var redirectURL = "";
		    if ((pass != '') && (pass != null) && (pass != 'undefined') && (pass != new String(window.location)))
		    {
			    redirectURL = pass;
		    }
    		
		    CommonWindowOpener.windows[windowName] = targetWindow;
		    var timeoutID = setTimeout("CommonWindowOpener.checkForNewWindow('" + windowName + "','" + fail + "','" + redirectURL + "')", CommonWindowOpener.timeToCheck);
	    }
	    else
	    {
		    CommonWindowOpener.redirectWindow(fail);
	    }
    }
     
    function CommonWindowOpener_checkForNewWindow( windowName, fail, pass )
    {
	    if (CommonWindowOpener.windows[windowName])
	    {
		    var targetWindow = CommonWindowOpener.windows[windowName];
		    if (targetWindow.closed)
		    {
			    CommonWindowOpener.redirectWindow(fail);
		    }
		    else
		    {
			    if (pass != "")
			    {
			        // Check if '?' is already inside
			        var questionMarkPos = pass.indexOf('?');
			        if(questionMarkPos < 0)
			        {
		                pass += "?";
			        }
			        else
			        {
			            if(questionMarkPos != pass.length-1) // if it's not the last one
			            {
			                pass += "&";
			            }
			        }
			        pass += "pvc=0";
				    CommonWindowOpener.redirectWindow(pass);
			    }
		    }
	    }
    }

    function CommonWindowOpener_redirectWindow( url )
    {
	    window.top.location.replace(url);
    }