function pad(s,l) {
	return( l.substr(0, (l.length-s.length) )+s );
}
function formatTime(seconds){
	var result = "";
	var remaining = Math.floor(seconds);
	if (seconds > 3600){
		result += pad((Math.floor(remaining/3600)).toString(),"00")+":";
		remaining = remaining % 3600;
	}
	
	result += pad((Math.floor(remaining/60)).toString(),"00")+":";
	remaining = remaining % 60;
	result += pad(remaining.toString(),"00")+"";
	return result;
}
function unic(){
    unique++;
    return unique.toString();
}
function urlDecode(str){
    str=str.replace(new RegExp('\\+','g'),' ');
    return unescape(str);
}
function urlEncode(str){
    str=escape(str);
    str=str.replace(new RegExp('\\+','g'),'%2B');
    return str.replace(new RegExp('%20','g'),'+');
}
function isEmail(str){
  if(str.length==0) return false;
  var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i;
  return re.test(str);
}
function isAlphaNumeric(str){
  var re = /[^a-zA-Z0-9]/g;
  if (re.test(str)) return false;
  return true;
}
function stripHTML(what){
return what.replace(/<\S[^><]*>/g, "");
}
function fixstring(str){
var temp = str.replace(/[^a-zA-Z 0-9 ']+/g,'');
var bb = temp.replace(/(\n\r|\n|\r)/gm,"<1br />");
//bb = bb.replace(/(<([^>]+)>)/ig,"");
bb = bb.replace(/\t/g," ");
re1 = /\s+/g;
bb = bb.replace(re1," ");
return bb;
	}
function shorten(string,nr_chars,toadd){
	if(toadd == null) toadd  = '...';
	if (string.length > nr_chars) 
         string = string.substring(0, nr_chars) + toadd;
	return string;
	}	
	
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
var END_OF_INPUT = -1;

var base64Chars = new Array(
    'A','B','C','D','E','F','G','H',
    'I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X',
    'Y','Z','a','b','c','d','e','f',
    'g','h','i','j','k','l','m','n',
    'o','p','q','r','s','t','u','v',
    'w','x','y','z','0','1','2','3',
    '4','5','6','7','8','9','-','_'
);

var reverseBase64Chars = new Array();
for (var i=0; i < base64Chars.length; i++){
    reverseBase64Chars[base64Chars[i]] = i;
}

var base64Str;
var base64Count;
function setBase64Str(str){
    base64Str = str;
    base64Count = 0;
}
function readBase64(){    
    if (!base64Str) return END_OF_INPUT;
    if (base64Count >= base64Str.length) return END_OF_INPUT;
    var c = base64Str.charCodeAt(base64Count) & 0xff;
    base64Count++;
    return c;
}
function encodeBase64(str){
    setBase64Str(str);
    var result = '';
    var inBuffer = new Array(3);
    var lineCount = 0;
    var done = false;
    while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){
        inBuffer[1] = readBase64();
        inBuffer[2] = readBase64();
        result += (base64Chars[ inBuffer[0] >> 2 ]);
        if (inBuffer[1] != END_OF_INPUT){
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
            if (inBuffer[2] != END_OF_INPUT){
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
                result += (base64Chars [inBuffer[2] & 0x3F]);
            } else {
                result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);
                result += ('=');
                done = true;
            }
        } else {
            result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);
            result += ('=');
            result += ('=');
            done = true;
        }
        lineCount += 4;
        if (lineCount >= 76){
            result += ('\n');
            lineCount = 0;
        }
    }
    return result;
}
function readReverseBase64(){   
    if (!base64Str) return END_OF_INPUT;
    while (true){      
        if (base64Count >= base64Str.length) return END_OF_INPUT;
        var nextCharacter = base64Str.charAt(base64Count);
        base64Count++;
        if (reverseBase64Chars[nextCharacter]){
            return reverseBase64Chars[nextCharacter];
        }
        if (nextCharacter == 'A') return 0;
    }
    return END_OF_INPUT;
}

function ntos(n){
    n=n.toString(16);
    if (n.length == 1) n="0"+n;
    n="%"+n;
    return unescape(n);
}

function decodeBase64(str){
	str = str.replace(/--/g, "_");
    setBase64Str(str);
    var result = "";
    var inBuffer = new Array(4);
    var done = false;
    while (!done && (inBuffer[0] = readReverseBase64()) != END_OF_INPUT
        && (inBuffer[1] = readReverseBase64()) != END_OF_INPUT){
        inBuffer[2] = readReverseBase64();
        inBuffer[3] = readReverseBase64();
        result += ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
        if (inBuffer[2] != END_OF_INPUT){
            result +=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
            if (inBuffer[3] != END_OF_INPUT){
                result +=  ntos((((inBuffer[2] << 6)  & 0xff) | inBuffer[3]));
            } else {
                done = true;
            }
        } else {
            done = true;
        }
    }
    var n_songd = result.split("||");
    if (n_songd[2] == "a") 
		 return result;
    else{
		//file=n_songd[1].split('=');
		ytfile = "http://www.youtube.com/watch?v="+n_songd[1];
		//ytfile = "http://www.youtubemp4.com/video/"+file[1]+".mp4";
		result2 =n_songd[0]+"||"+ytfile+"||"+n_songd[2];
		return result2;
		//console.log(result2);
		}
}
