function makeHttpObject()
{
    try
    {
        xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
        try
        {
            xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
            xmlHttpObj = false;
        }
    }

    if(!xmlHttpObj && typeof XMLHttpRequest !='undefined')
    {
        try
        {
            xmlHttpObj = new XMLHttpRequest();
        }
        catch (e)
        {
            xmlHttpObj = false;
        }
    }
    return xmlHttpObj;
}

var httpObj = makeHttpObject();
var isBusy = false;

function selectPlaylist(obj, songUrl, isMovie)
{
    if(isBusy)
    {
        alert("In process of adding previous Song to Playlist");
        return false;
    }
    else
    {
        rand = 1000 * Math.random();
        var url = '/playlist.html?mode=get&myrnd='+rand;

        try
        {
            isBusy = true;
            httpObj.open("GET",url,true);
            httpObj.onreadystatechange = function() { getPlaylist(obj, songUrl, isMovie); } ;
            httpObj.send(null);
        }
        catch (err)
        {
        }
        return false;
    }
}

function getPlaylist(obj, songUrl, isMovie)
{
    try
    {
        if(httpObj.readyState == 4)
        {
            if(httpObj.status == 200)
            {
                content = httpObj.responseText;
                httpObj.close;
                isBusy = false;
                content = content.split('|');

                if(content[0] == '0')
                {
                    addSongToNewPlaylist(obj, songUrl, true, isMovie);
                }
                else if(content[0] == '2')
                {
                    var ans = confirm(content[1]);

                    if(ans)
                    {
                        window.location = 'http://reloadlife.com/login.html?src='+window.location;
                    }
                }
                else
                {
                    showPlaylist(obj, content[1], songUrl, isMovie);
                }
            }
        }
    }
    catch (err)
    {
    }
}

function showPlaylist(obj, playlistContent, songUrl, isMovie)
{
    try
    {
        var selectPlaylistRow = document.getElementById('sltplsrow');
        var ri = selectPlaylistRow.rowIndex;
        selectPlaylistRow.parentNode.deleteRow(ri);
    }
    catch (Err)
    {
    }

    cRow = obj.parentNode.parentNode;
    newRow1 = cRow.cloneNode(true);

    if(cRow.parentNode.rows.length == cRow.rowIndex + 1)
    {
        cRow.parentNode.appendChild(newRow1);
    }
    else
    {
        cRow = cRow.nextSibling;
        cRow.parentNode.insertBefore(newRow1, cRow);
    }
    newRow1.setAttribute('id', 'sltplsrow');

    newRow1.cells[0].innerHTML = '';
    newRow1.cells[1].innerHTML = '';
    colIndex = 1;

    if(isMovie)
    {
        newRow1.cells[2].innerHTML = '';
        colIndex = 0;
    }

    newRow1.cells[colIndex].setAttribute('nowrap', 'nowrap');
    newRow1.cells[colIndex].setAttribute('style', 'padding-bottom:10px;');

    sltTag = document.createElement("SELECT");
    sltTag.setAttribute('id', 'playlist');
    sltTag.className = 'inpt';
    var lists = playlistContent.split(',');
    for(var i=0;i<lists.length;i++)
    {
        var list = lists[i].split('-');
        sltTag.options.add(new Option(list[1], list[0]));
    }

    hdnTag = document.createElement("INPUT");
    hdnTag.setAttribute('value', songUrl);
    hdnTag.setAttribute('type', 'hidden');
    hdnTag.setAttribute('id', 'song_url');

    addTag = document.createElement("A");
    addTag.setAttribute('href', 'javascript:void(0)');
    addTag.onclick = function() { addSongToPlaylist(this, 'playlist', 'song_url', isMovie); };
    addTag.style.fontWeight = 'bold';
    addTag.innerHTML = 'Add';


    addNewTag = document.createElement("A");
    addNewTag.setAttribute('href', 'javascript:void(0)');
    addNewTag.onclick = function() { addSongToNewPlaylist(this, songUrl, false, isMovie); };
    addNewTag.style.fontWeight = 'bold';
    addNewTag.innerHTML = 'Add to New';

    cncTag = document.createElement("A");
    cncTag.setAttribute('href', 'javascript:void(0)');
    cncTag.onclick = cancelAddSongToPlaylist;
    cncTag.style.fontWeight = 'bold';
    cncTag.innerHTML = 'Cancel';

    slcTag = document.createElement('B');
    slcTag.innerHTML = 'Select List ';
    spcTag = document.createTextNode(' ');
    sls1Tag = document.createTextNode(' / ');
    sls2Tag = document.createTextNode(' / ');
    br1Tag = document.createElement('BR');
    br2Tag = document.createElement('BR');
    br3Tag = document.createElement('BR');

    newRow1.cells[colIndex].appendChild(slcTag);
    newRow1.cells[colIndex].appendChild(sltTag);
    newRow1.cells[colIndex].appendChild(hdnTag);
    newRow1.cells[colIndex].appendChild(br1Tag);
    newRow1.cells[colIndex].appendChild(br2Tag);
    newRow1.cells[colIndex].appendChild(addTag);
    newRow1.cells[colIndex].appendChild(sls1Tag);
    newRow1.cells[colIndex].appendChild(addNewTag);
    newRow1.cells[colIndex].appendChild(sls2Tag);
    newRow1.cells[colIndex].appendChild(cncTag);
    newRow1.cells[colIndex].appendChild(br3Tag);
    newRow1.cells[colIndex].appendChild(spcTag);
}

function addSongToPlaylist(obj, playList, songUrl, isMovie)
{
    playList = document.getElementById(playList).value;
    songUrl = document.getElementById(songUrl).value;

    rand = 1000 * Math.random();
    var url = '/playlist.html?mode=add&playlist='+playList+'&song_url='+songUrl+"&myrnd="+rand;

    try
    {
        isBusy = true;
        httpObj.open("GET",url,true);
        httpObj.onreadystatechange =  function() { responseAddToPlaylist(obj, isMovie); } ;
        httpObj.send(null);
    }
    catch (err)
    {
    }
}

function addSongToNewPlaylist(obj, songUrl, fresh, isMovie)
{
    try
    {
        if(fresh)
        {
            try
            {
                var selectPlaylistRow = document.getElementById('sltplsrow');
                var ri = selectPlaylistRow.rowIndex;
                selectPlaylistRow.parentNode.deleteRow(ri);
            }
            catch (Err)
            {
            }

            cRow = obj.parentNode.parentNode;
            newRow = cRow.cloneNode(true);
            newRow.setAttribute('id', 'sltplsrow');

            newRow.cells[0].innerHTML = '';
            newRow.cells[1].innerHTML = '';
            colIndex = 1;

            if(isMovie)
            {
                newRow.cells[2].innerHTML = '';
                colIndex = 0;
            }

            newRow.cells[colIndex].setAttribute('nowrap', 'nowrap');
            newRow.cells[colIndex].setAttribute('style', 'padding-bottom:10px;');

            if(cRow.parentNode.rows.length == cRow.rowIndex + 1)
            {
                cRow.parentNode.appendChild(newRow);
            }
            else
            {
                cRow = cRow.nextSibling;
                cRow.parentNode.insertBefore(newRow, cRow);
            }

            msg2Tag = document.createElement('B');
            msg2Tag.innerHTML = 'No Playlist Found. Creating New...';

            br3Tag = document.createElement('BR');
            br4Tag = document.createElement('BR');
        }
        var selectPlaylistRow = document.getElementById('sltplsrow');
        colIndex = 1;

        if(isMovie)
        {
            selectPlaylistRow.cells[2].innerHTML = '';
            colIndex = 0;
        }

        selectPlaylistRow.cells[0].innerHTML = '';
        selectPlaylistRow.cells[1].innerHTML = '';

        msgTag = document.createElement('B');
        msgTag.innerHTML = 'Playlist Title ';

        inpTag = document.createElement("INPUT");
        inpTag.setAttribute('type', 'text');
        inpTag.setAttribute('id', 'playlist_title');
        inpTag.className = 'inpt';

        br1Tag = document.createElement('BR');
        br2Tag = document.createElement('BR');

        addTag = document.createElement("A");
        addTag.setAttribute('href', 'javascript:void(0)');
        addTag.onclick = function() { addSongToNewPlaylist2(this, 'playlist_title', songUrl, isMovie); };
        addTag.style.fontWeight = 'bold';
        addTag.innerHTML = 'Add';

        slsTag = document.createTextNode(' / ');

        cncTag = document.createElement("A");
        cncTag.setAttribute('href', 'javascript:void(0)');
        cncTag.onclick = cancelAddSongToPlaylist;
        cncTag.style.fontWeight = 'bold';
        cncTag.innerHTML = 'Cancel';

        if(fresh)
        {
            selectPlaylistRow.cells[colIndex].appendChild(msg2Tag);
            selectPlaylistRow.cells[colIndex].appendChild(br3Tag);
            selectPlaylistRow.cells[colIndex].appendChild(br4Tag);
        }
        selectPlaylistRow.cells[colIndex].appendChild(msgTag);
        selectPlaylistRow.cells[colIndex].appendChild(inpTag);
        selectPlaylistRow.cells[colIndex].appendChild(br1Tag);
        selectPlaylistRow.cells[colIndex].appendChild(br2Tag);
        selectPlaylistRow.cells[colIndex].appendChild(addTag);
        selectPlaylistRow.cells[colIndex].appendChild(slsTag);
        selectPlaylistRow.cells[colIndex].appendChild(cncTag);
    }
    catch (Err)
    {
    }
}

function addSongToNewPlaylist2(obj, playlistTitle, songUrl, isMovie)
{
    playlistTitle = document.getElementById(playlistTitle).value;

    try
    {
        songUrl = document.getElementById(songUrl).value;
    }
    catch (Err)
    {
        // Do Nothing as songUrl is exact url of song
    }

    rand = 1000 * Math.random();
    var url = '/playlist.html?mode=create&playlist='+playlistTitle+'&song_url='+songUrl+"&myrnd="+rand;

    try
    {
        isBusy = true;
        httpObj.open("GET",url,true);
        httpObj.onreadystatechange = function() { responseAddToPlaylist(obj, isMovie); } ;
        httpObj.send(null);
    }
    catch (err)
    {
    }
}

function cancelAddSongToPlaylist()
{
    try
    {
        if(isBusy)
        {
            httpObj.close;
            isBusy = false;
        }

        var selectPlaylistRow = document.getElementById('sltplsrow');
        var ri = selectPlaylistRow.rowIndex;
        selectPlaylistRow.parentNode.deleteRow(ri);
    }
    catch (Err)
    {
    }
}

function responseAddToPlaylist(obj, isMovie)
{
    try
    {
        if(httpObj.readyState == 4)
        {
            if(httpObj.status == 200)
            {
                content = httpObj.responseText;
                httpObj.close;
                isBusy = false;
                content = content.split('|');

                try
                {
                    var selectPlaylistRow = document.getElementById('sltplsrow');
                    selectPlaylistRow.cells[0].innerHTML = '';
                    selectPlaylistRow.cells[1].innerHTML = '';
                    colIndex = 1;

                    if(isMovie)
                    {
                        selectPlaylistRow.cells[2].innerHTML = '';
                        colIndex = 0;
                    }


                    msgTag = document.createTextNode(content[1]);

                    brTag = document.createElement('BR');

                    cncTag = document.createElement("A");
                    cncTag.setAttribute('href', 'javascript:void(0)');
                    cncTag.onclick = cancelAddSongToPlaylist;
                    cncTag.style.fontWeight = 'bold';
                    cncTag.innerHTML = 'Clear Message';

                    selectPlaylistRow.cells[colIndex].appendChild(msgTag);
                    selectPlaylistRow.cells[colIndex].appendChild(brTag);
                    selectPlaylistRow.cells[colIndex].appendChild(cncTag);
                }
                catch (Err)
                {
                }
            }
        }
    }
    catch (err)
    {
    }
}

function deleteSongToPlaylist(obj, playList, songUrl)
{
    rand = 1000 * Math.random();
    var url = '/playlist.html?mode=delete&playlist='+playList+'&song_url='+songUrl+"&myrnd="+rand;

    try
    {
        isBusy = true;
        httpObj.open("GET",url,true);
        httpObj.onreadystatechange =  function() { responseDeleteToPlaylist(obj); } ;
        httpObj.send(null);
    }
    catch (err)
    {
    }
}

function responseDeleteToPlaylist(obj)
{
    try
    {
        if(httpObj.readyState == 4)
        {
            if(httpObj.status == 200)
            {
                content = httpObj.responseText;
                httpObj.close;
                isBusy = false;
                content = content.split('|');

                try
                {
                    var selectedRow = obj.parentNode.parentNode;
                    var ri = selectedRow.rowIndex;
                    selectedRow.parentNode.deleteRow(ri);
                }
                catch (Err)
                {
                }
            }
        }
    }
    catch (err)
    {
    }
}

function createRingTone(obj, songUrl, startTime, endTime)
{
    if(isBusy)
    {
        alert("Already In process");
        return false;
    }

    var startTimeObj = document.getElementById(startTime);
    var endTimeObj = document.getElementById(endTime);
    var re = new RegExp('^[0-9]{2}:[0-9]{2}$');

    if(!re.test(startTimeObj.value) || !re.test(endTimeObj.value))
    {
        alert('Start/End Time must be in MM:SS format');
        return false;
    }

    var startTimeValue = startTimeObj.value.split(':');
    var endTimeValue = endTimeObj.value.split(':');
    var diff = parseInt(endTimeValue[0])*60 + parseInt(endTimeValue[1]) - ( parseInt(startTimeValue[0])*60 + parseInt(startTimeValue[1]) );

    if(endTimeValue[1] > 59 || startTimeValue[1] > 59)
    {
        alert('Wrong number of Seconds in Start/End Time');
        return false;
    }

    if(diff <= 0)
    {
        alert('End Time must be higher than Start Time');
        return false;
    }

    if(diff > 60)
    {
        alert('Max. Length of Ringtone can be 60 Seconds');
        return false;
    }

    try
    {
        cRow = obj.parentNode.parentNode;
        newRow = cRow.cloneNode(true);

        cRow.parentNode.appendChild(newRow);
        newRow.setAttribute('id', 'loadingrow');
        newRow.style.display = '';

        try
        {
            newRow.removeChild(newRow.cells[6]);
            newRow.removeChild(newRow.cells[5]);
            newRow.removeChild(newRow.cells[4]);
            newRow.removeChild(newRow.cells[3]);
            newRow.removeChild(newRow.cells[2]);
            newRow.removeChild(newRow.cells[1]);
        }
        catch (Err1)
        {
            alert(Err1);
        }

        newRow.cells[0].colSpan = 7;
        newRow.cells[0].setAttribute('align', 'center');
        newRow.cells[0].innerHTML = '<img src="http://media.reloadlife.com/common/loading.gif" width="50" height="50"/>';
    }
    catch (Err)
    {
        alert(Err);
    }

    rand = 1000 * Math.random();
    var url = '/ringtone.html?mode=create&song='+songUrl+'&start='+startTimeObj.value+'&end='+endTimeObj.value+'&myrnd='+rand;
    try
    {
        var playerRow = document.getElementById('rngtnerow');
        var ri = playerRow.rowIndex;
        playerRow.parentNode.deleteRow(ri);
    }
    catch (Err)
    {
    }

    try
    {
        isBusy = true;
        httpObj.open("GET",url,true);
        httpObj.onreadystatechange = function() { getRingtone(obj, songUrl, startTime, endTime); };
        httpObj.send(null);
    }
    catch (err)
    {
    }
    return false;
}

function getRingtone(obj, songUrl, startTime, endTime)
{
    try
    {
        if(httpObj.readyState == 4)
        {
            if(httpObj.status == 200)
            {
                content = httpObj.responseText;
                httpObj.close;
                isBusy = false;
                content = content.split('|');

                if(content[0] == '0')
                {
                    alert(content[1]);
                }
                else if(content[0] == '2')
                {
                    showLoginForm(obj, songUrl, startTime, endTime);
                }
                else
                {
                    showRingTone(obj, content[1]);
                }
            }
        }
    }
    catch (err)
    {
        alert(err);
    }
}

function showRingTone(obj, response)
{
    cRow = obj.parentNode.parentNode;
    newRow = cRow.cloneNode(true);

    cRow.parentNode.appendChild(newRow);
    newRow.setAttribute('id', 'rngtnerow');

    try
    {
        newRow.removeChild(newRow.cells[6]);
        newRow.removeChild(newRow.cells[5]);
        newRow.removeChild(newRow.cells[4]);
        newRow.removeChild(newRow.cells[3]);
        newRow.removeChild(newRow.cells[2]);
        newRow.removeChild(newRow.cells[1]);
    }
    catch (Err)
    {
    }

    newRow.cells[0].colSpan = 7;
    newRow.cells[0].setAttribute('align', 'center');

    try
    {
        var loadingRow = document.getElementById('loadingrow');
        var ri = loadingRow.rowIndex;
        loadingRow.parentNode.deleteRow(ri);
    }
    catch (Err)
    {
    }

    newRow.cells[0].innerHTML = '<br/><embed type="application/x-shockwave-flash" flashvars="audioUrl='+response+'" src="http://www.google.com/reader/ui/3523697345-audio-player.swf" width="400" height="27" quality="best" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed><br/><br/><a CLASS="button" TITLE="Tujh Mein Rab Dikhta" ALT="Download song Tujh Mein Rab Dikhta" HREF="http://songs.reloadlife.com/ringtones/sachin.html">Download Ringtone</a>';
}

function showLoginForm(obj, songUrl, startTime, endTime)
{
    try
    {
        var loadingRow = document.getElementById('loadingrow');
        var ri = loadingRow.rowIndex;
        loadingRow.parentNode.deleteRow(ri);
    }
    catch (Err)
    {
    }

    cRow = obj.parentNode.parentNode;
    newRow = cRow.cloneNode(true);

    cRow.parentNode.appendChild(newRow);
    newRow.setAttribute('id', 'rngtnerow');
    newRow.style.display = '';

    try
    {
        var ringtoneRow = document.getElementById('rngtnerow1');
        ringtoneRow.style.display = 'none';
    }
    catch (Err)
    {
    }

    try
    {
        newRow.removeChild(newRow.cells[6]);
        newRow.removeChild(newRow.cells[5]);
        newRow.removeChild(newRow.cells[4]);
        newRow.removeChild(newRow.cells[3]);
        newRow.removeChild(newRow.cells[2]);
        newRow.removeChild(newRow.cells[1]);
    }
    catch (Err)
    {
    }

    newRow.cells[0].colSpan = 7;
    newRow.cells[0].setAttribute('align', 'center');
    newRow.cells[0].innerHTML = '';

    var loginTd1 = document.createElement("TD");
    loginTd1.className = 'menu-link';
    loginTd1.innerHTML = 'Login:';

    loginLogin = document.createElement("INPUT");
    loginLogin.setAttribute('type', 'text');
    loginLogin.className = 'inpt';
    loginLogin.setAttribute('id', 'loginField');
    loginLogin.tabIndex = '1';

    var loginTd2 = document.createElement("TD");
    loginTd2.appendChild(loginLogin);

    var loginAnchor = document.createElement("A");
    loginAnchor.setAttribute('href', 'javascript:void(0)');
    loginAnchor.className = 'button';
    loginAnchor.tabIndex = '3';
    loginAnchor.onclick = function() { doLogin(obj, songUrl, startTime, endTime); };
    loginAnchor.innerHTML = 'Login';

    var loginTd3 = document.createElement("TD");
    loginTd3.className = 'menu-link';
    loginTd3.appendChild(loginAnchor);

    var loginTr1 = document.createElement("TR");
    loginTr1.appendChild(loginTd1);
    loginTr1.appendChild(loginTd2);
    loginTr1.appendChild(loginTd3);

    var loginTd4 = document.createElement("TD");
    loginTd4.className = 'menu-link';
    loginTd4.innerHTML = 'Password:';

    loginPassword = document.createElement("INPUT");
    loginPassword.setAttribute('type', 'password');
    loginPassword.className = 'inpt';
    loginPassword.setAttribute('id', 'passwordField');
    loginPassword.tabIndex = '2';

    var loginTd5 = document.createElement("TD");
    loginTd5.appendChild(loginPassword);

    var loginTd6 = document.createElement("TD");
    loginTd6.className = 'menu-link';
    loginTd6.innerHTML = '<a class="button" href="http://reloadlife.com/registration.html" target="_new">Register</a>';

    var loginTr2 = document.createElement("TR");
    loginTr2.appendChild(loginTd4);
    loginTr2.appendChild(loginTd5);
    loginTr2.appendChild(loginTd6);

    var loginTd7 = document.createElement("TD");
    loginTd7.className = 'menu-link';
    loginTd7.colSpan = 3;
    loginTd7.innerHTML = 'You must be a logged in User for creating a Ringtone.';
    loginTd7.innerHTML+= '<br/>Please fill your credentials and press Login';
    loginTd7.innerHTML+= '<br/>Click Register if not a Registered user with us.';

    var loginTr3 = document.createElement("TR");
    loginTr3.appendChild(loginTd7);

    var loginTd8 = document.createElement("TD");
    loginTd8.className = 'menu-link';
    loginTd8.style.color = '#ff2222';
    loginTd8.colSpan = 3;

    var loginTr4 = document.createElement("TR");
    loginTr4.appendChild(loginTd8);
    loginTr4.setAttribute('id', 'loginmsgrow');
    loginTr4.setAttribute('style', 'display:none');
    loginTr4.style.display = 'none';

    var loginTbd = document.createElement("TBODY");
    loginTbd.appendChild(loginTr3);
    loginTbd.appendChild(loginTr4);
    loginTbd.appendChild(loginTr1);
    loginTbd.appendChild(loginTr2);

    var loginTbl = document.createElement("TABLE");
    loginTbl.setAttribute('width', '100%');
    loginTbl.setAttribute('cellspacing', '0');
    loginTbl.setAttribute('cellpadding', '5');
    loginTbl.setAttribute('border', '0');
    loginTbl.appendChild(loginTbd);

    newRow.cells[0].appendChild(loginTbl);
}

function doLogin(obj, songUrl, startTime, endTime)
{
    var loginMsgRow = document.getElementById('loginmsgrow');
    loginMsgRow.style.display = 'none';

    var loginObj = document.getElementById('loginField');
    var passwordObj = document.getElementById('passwordField');

    if(loginObj.value == '' || passwordObj.value == '')
    {
        loginMsgRow.style.display = '';
        loginMsgRow.cells[0].innerHTML = 'Login/Password can not be left blank';
        return false;
    }

    rand = 1000 * Math.random();
    var url = '/login.html?action=submit&src=ajax&username='+loginObj.value+'&passwd='+passwordObj.value+'&myrnd='+rand;

    try
    {
        isBusy = true;
        httpObj.open("GET",url,true);
        httpObj.onreadystatechange = function() { postLogin(obj, songUrl, startTime, endTime); };
        httpObj.send(null);
    }
    catch (err)
    {
    }
    return false;
}

function postLogin(obj, songUrl, startTime, endTime)
{
    try
    {
        if(httpObj.readyState == 4)
        {
            if(httpObj.status == 200)
            {
                content = httpObj.responseText;
                httpObj.close;
                isBusy = false;
                content = content.split('|');

                if(content[0] == '0')
                {
                    try
                    {
                        var ringtoneRow = document.getElementById('rngtnerow1');
                        ringtoneRow.style.display = '';

                        var loginRow = document.getElementById('rngtnerow');
                        var ri = loginRow.rowIndex;
                        loginRow.parentNode.deleteRow(ri);
                    }
                    catch(Err)
                    {
                    }
            
                    createRingTone(obj, songUrl, startTime, endTime);
                }
                else
                {
                    var loginMsgRow = document.getElementById('loginmsgrow');
                    loginMsgRow.style.display = '';
                    loginMsgRow.cells[0].innerHTML = content[1];
                }
            }
        }
    }
    catch (err)
    {
        alert(err);
    }
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

