﻿var hostname = "51y.com"
document.domain = hostname;
function tryCatch() { return true; } window.onerror = tryCatch;
/*
*chain play base on window media player
*author:Ian Lee <liguangming.com/>
*/
var userAgent = navigator.userAgent.toLowerCase();
var platform = navigator.platform.toLowerCase();
var PLAY_TAB_ID = 1;
var PLAY_LIST_LENGTH = {};
var PLAY_MODE_NORMAL = 0;
var PLAY_MODE_RANDOM = 1;
var PLAY_MODE_SINGLE = 2;
var PLAY_MODE_CACHE = 2;
var PLAY_MODE = 0;
var PLAY_APPEND = false;
var PLAY_FIRST_LOAD = true;
var PLAY_CACHE ={};
var MEDIA_HOST = '';
var WEB_HOST = "http://www." + hostname;
var BOX_HOST = "http://www." + hostname +"/box/";
var SERVER_HOST = "http://music." + hostname;
var refurl = document.referrer.toLowerCase();
if (self != top && refurl != "" && refurl.indexOf(hostname) == -1) top.location.href = WEB_HOST;
var CHECK_URL = document.location.href.length < 1024 ? true : false;
var THEME_HOST = WEB_HOST;
var m006_HOST = WEB_HOST;
var PLAY_INPUT={'song-id':0,'singer-name':1,
    'singer-url':2,'song-name':3,'song-url':4,
    'album-name':5,'album-url':6,'song-media':7,
    'favorite':8,'download':9};

var yt_util = {
    browser:{
        version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
        chrome: /chrome/.test(userAgent),
        opera: /opera/.test(userAgent),
        msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
        safari: /webkit/.test(userAgent) && !/(chrom)/.test(userAgent),
        mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
    },
    
    platform:{
        win32: /win32/.test(platform),
        linux: /linux/.test(platform),
        mac: /macppc|macintel|iphone|ipod/.test(platform)
    },

    $:function(el) {
        if (typeof el == 'string') {
            return document.getElementById(el);
        }else{
            return this;
        }
    },

    style:function(el,attr,val) {
        if (typeof el == 'string') {
            el = document.getElementById(el);
        }else if(typeof el == 'object'){
        
        }
        if(typeof val == 'undefined'){
            return el.style[attr];
        }else{
            el.style[attr] = val;
            return this;
        }
    },

    attr:function(el,name,val) {
        if (typeof el == 'string') {
            el = document.getElementById(el);
        }else if(typeof el == 'object'){
        
        }
        if(typeof val == 'undefined'){
            return el.getAttribute(name);
        }else{
            el.setAttribute(name,val);
            return this;
        }
    },

    player:function() {
        this.element = {};
        this.nodes = {};
        this.tabid = 0;
        this.human = 0;
        this.playnum = 0;
        this.buffering = false;
        this.kit = null;
        this.list = [];
        var my = this;
        var server = "http://music.51y.com/";
        var cache = "http://music.51y.com/";

        this.init = function(kit) {
            my.kit = kit;
            if (yt_util.browser.chrome || yt_util.platform.linux) {
                var int$a = window.setInterval(function(){
                    if(my.time() + 3 >= my.duration() && my.duration() > 10){
                            OnDSPlayStateChangeEvt(8);
                            window.clearInterval(int$a);
                        }else{
                            OnDSPlayStateChangeEvt(my.kit.playState);
                        }
                },1000);
            } else {
                if (yt_util.browser.msie) {
                    my.kit.attachEvent("PlayStateChange", function() {
                        OnDSPlayStateChangeEvt(my.kit.playState);
                    });
                }
                var int$a = window.setInterval(function(){
                    if(my.time() + 1 >= my.duration() && my.duration() > 10){
                        yt_timer(8);
                        window.clearInterval(int$a);
                    }
                },1000);
            }
            return my;
        };

        this.start = function(element) {
            my.stop();

            if (my.tabid != PLAY_TAB_ID){my.nodes = yt_util.$('list-'+PLAY_TAB_ID).getElementsByTagName('li');my.tabid = PLAY_TAB_ID;}
            if (typeof element =='object'){
                my.element = element;
            }else if (typeof element =='number'){
                if (my.nodes.length == 0){my.play();return false;}
                my.element = element = my.nodes[element];
            }

            my.set('inputs',my.element.getElementsByTagName('INPUT'));

			var tempplayurl = server + (my.get('song-media').replace(server, ""));

			if (!CHECK_URL) {
				yt_util.$('MediaWrapper').innerHTML = '<iframe width="311" height="64" id="_player" name="_player" frameborder="no" scrolling="no" src="/playermb/m006/player.html#'+tempplayurl+'"></iframe>';

			} else {
				if (yt_util.browser.msie ) {
					if (my.kit.URL != tempplayurl) my.kit.URL = tempplayurl;
				} else {
					try {
						if (yt_util.platform.win32 && yt_util.browser.opera) {
							yt_util.$('MediaWrapper').innerHTML = '<embed id="MediaPlayer" type="'+(navigator.mimeTypes['application/x-ms-wmp']?'application/x-ms-wmp':'application/x-mplayer2')+'" src="'+ tempplayurl +'" url="'+ tempplayurl +'" width="311" height="64" autostart="1" volume="100" playcount="10000" showcontrols="1" showpositioncontrols="0" showaudiocontrols="1" showtracker="1" showstatusbar="1" /></embed>';
						} else {
							my.kit.URL = my.kit.src = tempplayurl;
						}
					} catch(e) {
						alert(e.message);
					}
				}
			}

            yt_util.$("info").innerHTML = '<h1>歌曲：<a href="' +
                                                    my.get('song-url') + '" target="_blank">' +
                                                    my.get('song-name') +
                                                    '</a></h1><h3><span>歌手：<a href="' +
                                                    my.get('singer-url') +
                                                    '" target="_blank">' +
                                                    my.get('singer-name') +
                                                    '</a></span><span>专辑：<a href="' +
                                                    my.get('album-url') +
                                                    '" target="_blank">' +
                                                    my.get('album-name') + '</a></span></h3>';

            my.style();
            my.play();
            my.mark();
            my.human = 0;

			document.title = my.get('song-name').replace(/<[^>]+>/g,"") +' - '+my.get('singer-name').replace(/<[^>]+>/g,"") + ' 试听 歌词 下载 - 无忧音乐网';

			yt_util.$("favorite-url").setAttribute('href', my.get('favorite'));
			yt_util.$("favorite-url").onclick = function() { 
				showiframe(400, 300, my.get('favorite'));
				return false;
			};

			if (!PLAY_FIRST_LOAD) {
				yt_util.$("lrc-url").setAttribute('src', WEB_HOST+'/geci.asp?id='+my.get('song-id')); //歌词1
				yt_util.$("download-url").setAttribute('href', WEB_HOST+'/dl.asp?id='+my.get('song-id'));
				//yt_util.$("comment-url").setAttribute('src', WEB_HOST+'songid='+my.get('song-id'));
				yt_util.$("error-check").setAttribute('href', SERVER_HOST+'/geci.asp?id='+my.get('song-id'));  //歌词2
				yt_util.$("player_ring").setAttribute('src', WEB_HOST+'/playermb/m006click/player_ring.html?'+my.get('song-name'));

//player_ring.html?musicname='+window.encodeURIComponent(my.get('song-name'))+'&singername='+window.encodeURIComponent(my.get('singer-name')));
				/* linkurl */
				if (yt_util.$("player_adv")) yt_util.$("player_adv").setAttribute('src', '/playermb/m006click/player_adv.html?'+my.get('song-name'));
				if (yt_util.$("player_center")) yt_util.$("player_center").setAttribute('src', WEB_HOST+'/playermb/m006click/taobao.html?'+my.get('song-name'));
				if (yt_util.$("player_right")) yt_util.$("player_right").setAttribute('src', WEB_HOST+'/playermb/m006click/player_right.html?'+my.get('song-name'));

			} 
			
			PLAY_FIRST_LOAD = false;

            var els = document.getElementsByTagName('b');
            for (var j = 0; j < els.length; j++)
            {
                if ('song-name' == els[j].getAttribute('for')) {
                    els[j].innerHTML = my.get('song-name').substring(0,14);
                }
            }
            trackSong(my.get('song-id'));

            return my;
        };

        this.play = function() {
            try {
                if(yt_util.platform.linux){
                    my.kit.Play();
                }else{
                    my.kit.controls.play();
                }
            } catch(e) {

            }
        };

        this.next = function() {
            my.human = 1;
            var s = yt_util.browser.msie?my.element.nextSibling:my.element.nextObject();
            if(s){
                my.start(s);
            }else{
                if (PLAY_APPEND) {
                    PLAY_APPEND = false;
                    my.start(my.playnum + 1);
                } else {
                    my.start(0);
                }
            }
        };

        this.hit = function(element) {
            my.human = 1;
            my.start(element);
        };

        this.previous = function() {
            my.human = 1;
            var s = yt_util.browser.msie?my.element.previousSibling:my.element.previousObject();
            if(!s){
                my.start(my.nodes.length-1);
            }else{
                my.start(s);
            }
        };

        this.stop = function() {
            try {
                if(yt_util.platform.linux){
                    my.kit.Stop();
                }else{
                    my.kit.controls.stop();
                }
            } catch(e) {

            }
        };

        this.pause = function() {
            try {
                if(yt_util.platform.linux){
                    my.kit.Pause();
                }else{
                    my.kit.controls.pause();
                }
            } catch(e) {

            }
        };
        
        this.time = function() {
            try {
                if(yt_util.platform.linux){
                    return my.kit.getTime();
                }else{
                    return my.kit.controls.currentPosition;
                }
            } catch(e) {
                return 0;
            }
        };

        this.duration = function() {
            try {
                if(yt_util.platform.linux){
                    return my.kit.getDuration();
                }else{
                    return my.kit.currentMedia.duration;
                }
            } catch(e) {
                return 0;
            }
        };

        this.random = function() {
            if (my.tabid != PLAY_TAB_ID){my.nodes = yt_util.$('list-'+PLAY_TAB_ID).getElementsByTagName('li');}
            my.start(Math.floor(Math.random() * my.nodes.length));
        };

        this.style = function() {
            try {
                for (var i = 0; i<my.nodes.length;i++) {
                    if (my.nodes[i] == my.element) {
                        my.nodes[i].className = 'y';
                        my.playnum = i;
                    } else {
                        my.nodes[i].className = '';
                    }
                }
            } catch(e) {}
        };

        this.mark = function(){
            var t = yt_util.cookie.get('EVER');
            var si = my.get('song-id');
            var o = {}, r = [];
            if (typeof t =='string'){
                try{
                    var arr = t.match(/(\d+)/g);
                    r = arr.uniq();
                    
                    if(r.length>50){
                        r = r.slice(r.length - 49 ,r.length-1);
                    }

                    if(parseInt(si) == si){
                        r.push(si);
                    }
                    yt_util.cookie.set('EVER',r.join('_'),24*7);
                }catch(e){
                    yt_util.cookie.set('EVER',si,24*7);
                }
            }
        };

        this.set = function(k,v){
            my[k] = v;
            return my;
        };
        
        this.get = function(k){
            return my.inputs[PLAY_INPUT[k]].value;
        };

        this.mode = function(k){
            PLAY_MODE = k;
            return my;
        };
    },

    m006:function() {
        var my = this;
        this.cached = {history:''};

        this.cache = function(key,z) {
            if (typeof z == 'string'){
                var arr = z.split('_');
            }else if (typeof z == 'object'){
                var arr = z;
            }
            r =  arr.uniq()
                    .filter(function(x,y,z){
                        var c = parseInt(x); 
                        if(c == x && !isNaN(c)){
                            z[y] = c;
                            return true;
                        }
                    })
                    .sort(function compare(a,b){return a-b;})
                    .join('');
            if(my.cached[key] == r){
                return true;
            }else{
                my.cached[key] = r;
                return false;
            }
        };

        this.load = function(file) {
            if(typeof file =='boolean'){
                return false;
            }
            var html_doc = document.getElementsByTagName('head')[0];
            var js = document.createElement('script');
            js.setAttribute('type', 'text/javascript');
            js.setAttribute('src', file);
            js.setAttribute('id', 'yt_xjs');
            if (yt_util.$('yt_xjs')) {
                html_doc.replaceChild(js, yt_util.$('yt_xjs'));
            } else {
                html_doc.appendChild(js);
            }
        };

        this.require = function(file) {
            var html_doc = document.getElementsByTagName('head')[0];
            var js = document.createElement('script');
            js.setAttribute('type', 'text/javascript');
            js.setAttribute('src', file);
            js.setAttribute('id', 'ytc_xjs');
            if (yt_util.$('ytc_xjs')) {
                html_doc.replaceChild(js, yt_util.$('ytc_xjs'));
            } else {
                html_doc.appendChild(js);
            }
        };

        this.search = function(z) {
			PLAY_APPEND = false;
            yt_util.$('q').className ='input_style q-1';
            z = z.replace(/\s+^/g, '').replace(/\s+$/g, '');
            my.load(WEB_HOST+'/playermb/m006/?so.asp?keyword=' + z);
			
        };

        this.build = function(z,tid) {
            if(my.cached[tid] && tid !=2){
                return false;
            }else{
                my.cached[tid] = true;
            }
            if (typeof z == 'string'){
                var arr = z.split('_');
            }else if (typeof z == 'object'){
                var arr = z;
            }
            return m006_HOST+'/playermb/m006/?02.asp?tid='+tid+'&uid=' +arr.uniq().join('_');
            
        };

        this.history = function(){
            var z = yt_util.cookie.get('EVER');
            if(z){
                var a = z.split('_').reverse();
                if(my.cache('history',a)){
                    return;
                }
                my.load(my.build(a,2));
            }
        };

        this.addsong = function(id){
            my.load(m006_HOST+'/playermb/m006/02.asp?tid=1&uid=' + id);
        };

        this.commend = function(i){
            yt_recommend();
            if(!yt_commend[i]){return;}
            my.load(my.build(yt_commend[i], i));
        };

        this.box = function(c){
			
        };

        this.boxr = function(){
            if (typeof box_recommend =='undefined'){return ;}
            my.load(my.build(box_recommend.songs,7));
            yt_util.style('btn-delete','display','none')
                .style('btn-select','display','none')
                .style('control-message','display','');
                yt_util.$('control-message').innerHTML='列表名:<a href="'+box_recommend.url+'" target="_blank">'+box_recommend.name+
                '</a>,<br />以上歌曲由<a href="'+box_recommend.boxurl+
                '" target="_blank">'+box_recommend.username+'</a>推荐';
        };
    },

    cookie:{
        set:function(name, value, hours) {
            var expire = "";
            if (hours != null) {
                expire = new Date((new Date()).getTime() + hours * 3600000);
                expire = "; expires=" + expire.toGMTString();
            }
            document.cookie = name + "=" + encodeURIComponent(value) + "; domain=" + hostname + ";path=/" + expire;
        },

        get:function(name) {
            var cookieValue = "";
            var search = name + "=";
            if (document.cookie.length > 0) {
                var offset = document.cookie.indexOf(search);
                if (offset != -1) {
                    offset += search.length;
                    var end = document.cookie.indexOf(";", offset);
                    if (end == -1) end = document.cookie.length;
                    cookieValue = decodeURIComponent(document.cookie.substring(offset, end));
                }
            }
            return cookieValue;
        },

        refresh:function(name){
            try{
                this.set('PIN',this.get('PIN'),24);
            }catch(e){				
            }
        }
    },

    tab:function(t){
        this.total = t;
        var my = this;
        this.init =function(t){
            my.total = t;
        };

        this.change=function(oid){
            PLAY_TAB_ID = oid;
            for (var i = 1; i<=my.total; i++)
            {
                if(i==oid){
                    yt_util.$('tab-'+i).className = 'now';
                    yt_util.$('list-'+i).style.display = '';
                }else{
                    yt_util.$('tab-'+i).className = '';
                    yt_util.$('list-'+i).style.display = 'none';
                }
            }
            /*suck*/
            if(oid<7){
                yt_util.style('control-message','display','none');
            }
        };

        this.append = function(){
        
        };
    }
};

var wmpst = 0;
function yt_timer(playState){
    if (playState == 8) {
        var duration = Math.abs(Math.floor((yt_pl.time() - wmpst) / yt_pl.duration() * 100));
        if (!isNaN(duration) && duration >1){

            wmpst = 0;
        }
    }
}

function OnDSPlayStateChangeEvt(playState){
    if (playState == 8 && yt_pl.human == 0) {
        var int$b = window.setInterval(
            function(){
                switch(PLAY_MODE){
                    case PLAY_MODE_NORMAL:
                    default:
                        yt_pl.next();
                        break;
                    case PLAY_MODE_SINGLE:
                        if(yt_util.browser.msie){yt_pl.play();}
                        break;
                    case PLAY_MODE_RANDOM:
                        yt_pl.random();
                        break;
                }
                window.clearInterval(int$b);
            }, 100);
    }
}

function unloadPlayer(){
	yt_util.cookie.set("PLAYING", "OFF", 24);
	window.clearInterval(checkPlaylist);
}

window.onbeforeunload = function() {
    try{
        if(yt_pl.time() > 0)yt_timer(8);
		unloadPlayer();
    }catch(e){}
};

function yt_render(oid) {
    var ul = '',j = 1;
    var total = yt_m006.results.length;

    for (var i =0;i<total;i++){
        ul += '<li rel="'+yt_m006.results[i].songId+'" ondblclick="yt_append(this);"><input type="checkbox" name="song" value="'+yt_m006.results[i].songId+'" /><input type="hidden" value="'+yt_m006.results[i].singerName+'"/><input type="hidden" value="'+yt_m006.results[i].singerUrl+'"/><input type="hidden" value="'+yt_m006.results[i].songName+'"/><input type="hidden" value="'+yt_m006.results[i].playerUrl+'"/><input type="hidden" value="'+yt_m006.results[i].albumName+'"/><input type="hidden" value="'+yt_m006.results[i].albumUrl+'"/><input type="hidden" value="'+yt_m006.results[i].songPath+yt_m006.results[i].songFileName+'"/><input type="hidden" value="'+yt_m006.results[i].favoriteUrl+'"/><input type="hidden" value="'+yt_m006.results[i].downloadUrl+'"/><a href="#" onclick="yt_append(this.parentNode);return false;" title="歌曲:'+yt_m006.results[i].songName.replace(/<[^>]+>/g,"")+'">'+yt_m006.results[i].songName+'</a> - <a href="'+yt_m006.results[i].singerUrl+'" title="歌手:'+yt_m006.results[i].singerName.replace(/<[^>]+>/g,"")+'" target="_blank">'+yt_m006.results[i].singerName+'</a></li>';
    }
    if(PLAY_APPEND){
        yt_util.$('list-'+oid).innerHTML += ul;
    }else{
        yt_util.$('list-'+oid).innerHTML = ul;
    }
}

function yt_selected(){
    var ts = yt_util.$('list-'+PLAY_TAB_ID).getElementsByTagName('INPUT');
    var ds = [];
    for (var i =0;i<ts.length;i++){
        var el = ts[i];
        if('checkbox' == el.type && el.checked && el.name =='song'){
            ds.push(el.value);
        }
    }
    return ds;
}

function yt_select(){
    var ts = yt_util.$('list-'+PLAY_TAB_ID).getElementsByTagName('INPUT');
    for (var i =0;i<ts.length;i++){
        var el = ts[i];
        if('checkbox' == el.type && el.name =='song'){
            el.checked = true;
        }
    }
}

function yt_favorite(){
    var sd = yt_selected();
    if(sd.length > 0){
        window.open(BOX_HOST+'/musicbox_action.asp?UserAction=AddBox&id='+sd.join('_'),'_box');
    }
}

function yt_favorite_list(){
    var ts = yt_util.$('list-'+PLAY_TAB_ID).getElementsByTagName('INPUT');
    var ds = [];
    for (var i =0;i<ts.length;i++){
        var el = ts[i];
        if('checkbox' == el.type && el.name =='song'){
            ds.push(el.value);
        }
    }
    if(ds.length > 0){
		showiframe(250, 200, BOX_HOST+'/musicbox_action.asp?UserAction=AddBox&id='+ds.join('_'));

    }
}

function yt_append_list(){
    var cs = yt_util.$('list-1');
    var ts = yt_util.$('list-'+PLAY_TAB_ID).getElementsByTagName('INPUT');
    var ds = [];
    for (var i =0;i<ts.length;i++){
        var el = ts[i];
        if('checkbox' == el.type && el.checked && el.name =='song'){
            ds.push(el.parentNode);
        }
    }

    for (var i=0;i<ds.length;i++){
        var el = ds[i];
        if(!yt_util.$('p-'+el.getAttribute('rel'))){
            el.id ='p-'+el.getAttribute('rel');
            cs.appendChild(el);
        }
    }
}

function yt_search(){
    yt_util.attr('q',yt_util.browser.msie?'className':'class', 'input_style q-2')
        .style('btn-favorite','display', 'none')
        .style('btn-append','display','')
        .style('btn-delete','display','')
        .style('btn-select','display','');
}

function yt_history(){
    yt_util.style('btn-favorite','display','none')
        .style('btn-delete','display','')
        .style('btn-append','display','')
        .style('btn-select','display','');
}

function yt_recommend(){
    yt_util.style('btn-favorite','display','none')
        .style('btn-delete','display','none')
        .style('btn-append','display','')
        .style('btn-select','display','');
}

function yt_current(){
    yt_util.style('btn-favorite','display','')
        .style('btn-delete','display','')
        .style('btn-append','display', 'none')
        .style('btn-select','display','');
}

function yt_box(){
    if (box_m006 && box_m006.logined){
        yt_util.attr('box-url-1','href',box_m006.boxinfo.url)
        .attr('box-url-2','href',box_m006.boxinfo.url)
        .attr('box-url-0','href',box_m006.boxinfo.url)
        .$('box-url-0').innerHTML='我的空间';
    }
}

function yt_boxr(){
        yt_util.style('control-button','display','none');
}

function yt_download(){
    var sd = yt_selected();
    if(sd.length > 0){
        
    }
}

function yt_delete(){
    var ps = yt_util.$('list-'+PLAY_TAB_ID);
    var ts = ps.getElementsByTagName('INPUT');
    var ds = [],ns = [];
    for (var i = 0;i<ts.length;i++){
        var el = ts[i];
        if('checkbox' == el.type && el.name =='song'){
            yt_pl.playnum = -1;
            if(el.checked){ds.push(el.parentNode);}else{ns.push(el.value)}
        }
    }
    
    if(PLAY_TAB_ID == 2){
        yt_util.cookie.set('EVER',ns.length > 0?ns.join('_'):'',24*7);
    }
    
    for (var i=0;i<ds.length;i++){
        ps.removeChild(ds[i]);
    }
}

function yt_append(o){
    if(PLAY_TAB_ID == 13){
        var ps = yt_util.$('list-1');
        if(yt_util.$('p-'+o.getAttribute('rel'))){
            alert('already in play list!');
            return false;
        }
        
        o.id = 'p-'+o.getAttribute('rel');
        o.ondblclick =function(){
            yt_pl.hit(this);
        };
        o.getElementsByTagName('A')[0].onclick =function(){
            yt_pl.hit(this.parentNode);
        };
        ps.appendChild(o);
        alert('OK');
    }else{
        yt_pl.hit(o);
    }
}

function yt_mode(o,m){
    PLAY_MODE = m;
    yt_util.style('mode-list','height','16px').style('mode-current','display','').attr('mode-current','src',o);
    return false;
}

function yt_mode_xh(){
    if(PLAY_MODE_CACHE == 0){
        return yt_mode(THEME_HOST+'/playermb/m006img/xh.gif',0);
    }
}

function yt_mode_dq(){
    PLAY_MODE_CACHE = PLAY_MODE;
    if(PLAY_MODE_CACHE != 2){
        return yt_mode(THEME_HOST+'/playermb/m006img/dq.gif',2);
    }
}

function yt_hide_mode(evt){
    if (evt){
        var o = yt_util.browser.msie?evt.toElement:evt.relatedTarget;
        if (yt_util.$('mode-list').contains(o)){
            return;
        }else{
            yt_util.style('mode-list','height','16px').style('mode-current','display','');
        }
    }
}

function yt_show_mode(){
    yt_util.style('mode-list','height','54px').style('mode-current','display','none');
}

if(!Array.prototype.uniq){
    Array.prototype.uniq=function(){
        var arr = this;
        var o = {}, r = [];
        for (var k = 0; k < arr.length; k++) {o[arr[k]] = arr[k];}
        for (k in o) {r.push(o[k]);}
        return r;
    };
};

if(!Array.prototype.filter){
    Array.prototype.filter=function(callback,elm){
        var r=[],i=0,j=this.length;
        if(!elm){while(i<j){if(callback(this[i],i++,this))
            r.push(this[i-1]);
        }} else {while(i<j){if(callback.apply(elm,[this[i],i++,this]))
            r.push(this[i-1]);
        }}
        return r;
    }
};

if(!String.prototype.trim){
    String.prototype.trim = function()  
    {  
        return this.replace(/(\s+)/,'').replace(/(\s+)$/,'');  
    };
}

if(typeof(HTMLElement) != "undefined"){
    
    HTMLElement.prototype.nextObject = function() {
        var n = this;
        do n = n.nextSibling;
            while (n && n.nodeType != 1);
        return n;
    };

    HTMLElement.prototype.previousObject = function() {
        var p = this;
        do p = p.previousSibling;
            while (p && p.nodeType != 1);
        return p;
    };

    HTMLElement.prototype.contains=function(obj){
        while(obj!=null&&typeof(obj.tagName)!="undefind"){
                if(obj==this)return true;
                obj=obj.parentNode;
        　　}
        return false;
    };
}

var kit = {
    client:function(){
        if (screen.width<900){
            yt_util.$('main').style.width = screen.width+'px';
        }
    },

    box:{
        els:[],
        init:function(){
            var un = yt_util.cookie.get('KMusic');
            if(un && un.length > 1){
                yt_js.box();
            }            
        }
    }
};

function popwinclose(){
    yt_util.style('box','display','none');
}

var popwinThread;
function popwinmsg(content, closetimer, reftimer) {
	clearTimeout(popwinThread);
	if (closetimer) { 
		popwinThread = window.setTimeout(function() { popwinclose(); }, closetimer * 1000);
	}
	if (reftimer) { 
		popwinThread = window.setTimeout(function() { popwinclose(); }, reftimer * 1000);
	}
}

function showiframe(w, h, url){
	if(url) {
		yt_util.style('box','display','block')
        //.style('_box','width',w+'px')
        //.style('_box','height',h+'px')
        .style('box','left',(w-43)+'px')
        .style('box','top','-'+(h+62)+'px');
		yt_util.$('box').innerHTML = '<div id="popwin_boxid" style="border: 1px solid #A8CBE9; padding: 1px; position: absolute; font-family: \'宋体\'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 11px; font-size-adjust: none; font-stretch: normal; top: 0px; left: 0px; width: '+w+'px; height: '+(h+11)+'px; text-align: center; background-color: rgb(255, 255, 255); line-height: 22px; z-index: 1002;"><table cellspacing="0" style="border: 0px none ; margin: 0px; padding: 0px;" id="popwin_boxid_tableid"><tbody><tr><td style="border-bottom: 1px solid rgb(208, 228, 252); margin: 0px; padding: 3px 3px 3px 10px; background: rgb(225, 239, 253) url(/playermb/m006img/popwin_icon.gif) no-repeat scroll 3px 5px; width: 100%; text-align: left; font-family: \'宋体\'; font-style: normal; font-variant: normal; font-weight: bold; font-size: 13px; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(41, 95, 142); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"><span style="margin: -3px 5px -2px 12px;" id="popwin_boxid_titleid">音乐盒.收藏歌曲</span></td><td style="border-bottom: 1px solid rgb(208, 228, 252); padding: 2px; cursor: pointer; background-color: rgb(225, 239, 253);"><span title="关闭窗口" style="background: transparent url(/playermb/m006img/popwin_close.gif) no-repeat scroll 0px 1px; font-size: 15pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(41, 95, 142);" onclick="popwinclose()">  </span></td></tr><tr><td colspan="2" id="popwin_contentid" style="padding: 1px; font-size: 12px;"><iframe scrolling="no" frameborder="0" id="popwin_iframeid" style="width:100%; height:'+h+'px; display: block;" src="'+url+'" marginwidth="0" marginheight="0"/></td><td/></tr></tbody></table></div>';
	} else {
		yt_util.style('box','width',(w+25)+'px');
		yt_util.style('box','height',(h+40)+'px');
		yt_util.$('popwin_boxid').style.filter = "progid:DXImageTransform.Microsoft.shadow(direction=135,color=#CFCFCF,strength=3);";
		yt_util.style('popwin_boxid','width',(w+25)+'px');
		yt_util.style('popwin_boxid','height',(h+40)+'px');
		yt_util.style('popwin_iframeid','width',w+'px');
		yt_util.style('popwin_iframeid','height',h+'px');
	}
}

var counterThread;
function trackSong(id){
	yt_js.load(SERVER_HOST + "/Process/Correlate.aspx?Return=correlate&Mode=Song&ParamID=" + id);
	clearTimeout(counterThread);
	counterThread = window.setTimeout(function() { 
		yt_js.require(SERVER_HOST + "/Process/Counter.aspx?Mode=Song&ParamID=" + id);
	}, 5000);
}

function correlate(total){
	yt_util.$("CorrelateCount").innerHTML = total;
}

var yt_pl = new yt_util.player();
var yt_js = new yt_util.m006();
var yt_tab = new yt_util.tab(7);
yt_util.cookie.set("PIN", hostname, 3);
yt_util.cookie.set("PLAYING","ON", 24);
var checkPlaylist = window.setInterval(function() {
	var thissongid, tempsource;
	var mark = "_", resultplaylist = "";
	var addplaylist = yt_util.cookie.get("PLAYLIST");
    if (addplaylist != "") {
		var templaylist = addplaylist.split(mark);
		for (var i = 0; i < templaylist.length; i++) {
			thissongid = templaylist[i];
			tempsource = yt_util.$("list-1");
			if (tempsource) {
				if (tempsource.innerHTML.indexOf("value=" + thissongid) == -1) {
					resultplaylist += thissongid + mark;
				}
			}
		}
		if (resultplaylist != "") {
			yt_js.addsong(resultplaylist);
			PLAY_APPEND = true;
		} yt_util.cookie.set("PLAYLIST", "", 24);
    }
}, 1000);
/*
if (window.addEventListener) { 
	window.addEventListener("unload", unloadPlayer, false); 
} else if (document.addEventListener) { 
	document.addEventListener("unload", unloadPlayer, false);
} else if (window.attachEvent) { 
	window.attachEvent("onunload", unloadPlayer);
}
*/