(function()
{
//所有支持视频网站白名单
var videoSites = [
/^http:\/\/www\.56\.com/,
/^http:\/\/cache\.tv\.qq.com\/qqplayerout\.swf/,
/^http:\/\/static\.video\.qq\.com/,
/^http:\/\/tv\.mofile\.com/,
/^http:\/\/img\.openv\.tv\/openvcom\/swf\/player\.swf/,
/^http:\/\/img\.openv\.tv\/hd\/swf\/hd_player/,
/^http:\/\/player\.ku6\.com\/refer\//,
/^http:\/\/vhead\.blog\.sina\.com\.cn\/player\/outer_player\.swf/,
/^http:\/\/www.tudou\.com\/v/,
/^http:\/\/www\.youtube\.com/,
/^http:\/\/www\.vimeo\.com/,
/^http:\/\/vimeo\.com/,
/^http:\/\/6\.cn/,
/^http:\/\/v\.blog\.sohu\.com/,
/^http:\/\/www\.ouou\.com\/play\/mediaplayer\.swf/,
/^http:\/\/static\.youku\.com/,
/^http:\/\/video\.xunlei\.com/,
/^http:\/\/player\.youku\.com\//,
/^http:\/\/client\.joy\.cn\/flvplayer/,
/^http:\/\/.*\.renren\.com\/flvplayer\.swf/
];

isSafeVideo = function(url)
{
    var safe = false;
    if( /@/.test(url) )return false; 
    if(/[\'\"\(\)]/.test(url) || /t:/.test(url))
    {
        return false;
    }
    
    XN.array.each(videoSites, function(i, v)
    {
        if ( v.test(url) )
        {
            safe = true;
            return false;
        }
    });
    return safe;
}

isSafeAudio = function(url)
{
    if(/[\'\"\(\)]/.test(url) || /t:/.test(url))
    {
        return false;
    }
    
    url = url.split('?')[0];
    if ( !/\.(wma|wav|mp3|)$/i.test(url) )
    {
        return false;
    }
    return true;
}

function parseAutoPlay(str)
{
	str = str.replace(/(http:\/\/player\.youku\.com[^"]*)(\/v.swf)/,'$1&isAutoPlay=true$2');
    str = str.replace(/(http:\/\/static\.youku\.com[^"]*)/,'$1&isAutoPlay=true');
	str = str.replace(/(http:\/\/player\.ku6\.com[^"]*)/,'$1&auto=1');
	return str;
}

/*
* content 要播放标签所在的外层容器
* className 播放标签的样式名
* tagName 存储播放信息的标签
* attr 标签中用来存储信息的属性
* autoPlayTheFirst 是否自动播放第一个视频
* width 视频宽度
*/

playVideoOfContent = function( content, className, tagName, attr, autoPlayTheFirst, width )
{
    tagName = tagName || 'img';
    attr = attr || 'alt';
    width = width || 500;
    if ( isUndefined(autoPlayTheFirst) ) autoPlayTheFirst = true;
    //添加视频播放器
    var vs = XN.dom.getElementsByClassName( className, content, tagName );
    XN.array.each(vs, function(i, v)
    {
        var s = v.getAttribute(attr).split(';');
        try
        {
            if(/[\'\"\(\)]/.test(s[1]) || /t:/.test(s[1]))
            {
                return;
            }
            var tmp = $element('div');
            var param = {
                'width':width,
                height:parseInt(width / parseFloat(s[0])),
                filename:s[1]
            };
                 
            if ( !isSafeVideo(s[1]) )
            {
                param.allowNetworking = 'internal';
            }
            
            var html = XN.template.flash(param); 

            if ( autoPlayTheFirst && i === 0 )
            {
                html = parseAutoPlay(html);
            }

            tmp.innerHTML = html;
            v.parentNode.replaceChild(tmp,v);
        }
        catch(e)
        {
            v.parentNode.replaceChild(document.createTextNode('[播放时出错]'),v);
        }
    });
};

playAudioOfContent = function( content, className, tagName, attr, autoPlayTheFirst)
{
    tagName = tagName || 'img';
    attr = attr || 'alt';
    if ( isUndefined(autoPlayTheFirst) ) autoPlayTheFirst = true;
    var ass = XN.dom.getElementsByClassName( className, content, tagName );
    XN.array.each(ass, function(i, v)
    {
		var tmp = $element('div');
		var s = v.getAttribute(attr).split(';');
		try
        {
			if( ! isSafeAudio(s[1]) )
            {
				v.parentNode.replaceChild(document.createTextNode('[无法识别的音频:' + s[1] + ']'),v);
				return;
			}
		}
        catch(e)
        {
			v.parentNode.replaceChild(document.createTextNode('[播放音频时出错]'),v);
			return;
		}
		if (s[0] == 'mp3')
        {
			tmp.innerHTML = XN.Template.flashPlayer({filename:s[1],autostart:( i == 0 ? '1' : '0' )});
		}
        else
        {
			tmp.innerHTML = XN.Template.mediaPlayer({filename:s[1],autostart:( i == 0 ? '1' : '0' )});
		}
		v.parentNode.replaceChild(tmp, v);
	});
};

//用于播放音频
play = function(el,t,file)
{
    if ( ! isSafeAudio(file) ) return;
    el = $(el + '');
    if(t == 'mp3'){
        el.innerHTML = XN.Template.flashPlayer({filename:file});
    }else{
        el.innerHTML = XN.Template.mediaPlayer({filename:file});
    }
};
//现存于站内信的视频播放
playswf = function(el, file, scale)
{
    if ( !isSafeVideo(file) )
    {
        return;
    }
    var w,h;
    el = $(el + '');
    w = el.parentNode.offsetWidth - 24;
    if(w > 500){
        w = 500;
    }
    h = parseInt(w/scale);
    el.innerHTML = XN.Template.flash({width:w,height:h,filename:file});
    el.onclick = null;
};	
})();

