﻿var eMsg = 'message';
var eProcess = 'loading';

var currentVoteElement = null;
var currentItemID = '';
var currentRate = 0;

var updatedVideos = new Array();
var updatedRates = new Array();

var cE = null;
var cItemID = '';
var cRate = 0;


function SaveEmail(id)
{
    var email = getElem(false, id).value;
    ws.Videos.SaveEmail(email, function(r)
    {
        cbSaveEmail(r, email);
    });

}
function cbSaveEmail(r, email)
{
    if (typeof r == 'object')
    {
        if (r.error != '')
        {
            //error
            getElem(false, 'divError').innerHTML = r.error;
        }
        else
        {
            //create cookie
            createCookie('elbv_voteEmail', email, 1);
                        
            getElem(false, 'txtPopupEmail').value = '';//reset value
            getElem(false, 'emailPopup').className = 'hide';
           
            prepVote(cE, cItemID, cRate);            
        }
    }
}

function prepVote(e, itemID, rate) 
{
    var ePop = getElem(false, 'emailPopup');

    //check for cookie
    if (readCookie('elbv_voteEmail') == null)
    {
        //no cookie, not valid
        overlay('emailPopup', 'show', getElemOffset(e, 0, 0)[0], getElemOffset(e, 0, 25)[1]);
        cE = e;
        cItemID = itemID;
        cRate = rate;
    }
    else
    {
        cE = null;
        cItemID = '';
        cRate = 0;
        
        //cookie valid
        var imgSrc = '';
        var imgSrcOver = '';
        if (currentVoteElement != null && itemID != currentItemID)
        {
            try
            {
                //reset colors
                //disable to vote (currently selected element)
                imgSrc = 'images/blue_vote.png';
                imgSrcOver = 'images/blue_vote_over.png';
                currentVoteElement.src = imgSrc;

                currentVoteElement.setAttribute("onmouseover", "SwapImgSrc(false, 'imgVote_" + currentItemID + "', '" + imgSrcOver + "');");
                currentVoteElement.setAttribute("onmouseout", "SwapImgSrc(false, 'imgVote_" + currentItemID + "', '" + imgSrc + "');");
                getElem(false, 'divGreen_' + currentItemID).className = 'hide';
                getElem(false, 'divBlue_' + currentItemID).className = 'show';
                currentRate = 0;
            }
            catch (e)
            {
                //alert('came from other page');
            }
        }




        var stars = getElem(false, 'div' + itemID);

        var currentSource = e.src.split('/')[e.src.split('/').length - 1];

        if (currentSource == 'blue_vote_over.png' || currentSource == 'blue_vote.png')
        {
            //enable to vote
            imgSrc = 'images/green_vote.png';
            imgSrcOver = 'images/green_vote_over.png';
            e.src = imgSrc;
            e.setAttribute("onmouseover", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrcOver + "');");
            e.setAttribute("onmouseout", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrc + "');");

            getElem(false, 'divGreen_' + itemID).className = 'show';
            getElem(false, 'divBlue_' + itemID).className = 'hide';
            currentRate = rate;
            //set current element
            currentVoteElement = e;
            currentItemID = itemID;
        }
        else
        {
            //disable to vote
            imgSrc = 'images/blue_vote.png';
            imgSrcOver = 'images/blue_vote_over.png';
            e.src = imgSrc;

            e.setAttribute("onmouseover", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrcOver + "');");
            e.setAttribute("onmouseout", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrc + "');");
            getElem(false, 'divGreen_' + itemID).className = 'hide';
            getElem(false, 'divBlue_' + itemID).className = 'show';
            currentRate = 0;
            //set current element
            currentVoteElement = null;
            currentItemID = '';
        }
    }
   
}

function starOver(id)
{
    var arr = id.toString().split('_');
    var starID = arr[2];
   
    for (i = 1; i <= starID; i++)
    {
        var overID = arr[0] + '_' + arr[1] + '_' + i;
        SwapImgSrc(false, overID, 'images/green_star.png');
    }
    
}
function starOut(id, rate)
{
    var arr = id.toString().split('_');
    var starID = arr[2];

    for (i = 1; i <= 5; i++)
    {
        var overID = arr[0] + '_' + arr[1] + '_' + i;
        var src = '';
        /*if (i <= rate)
        {
            src = 'images/blue_star.png';
        }
        else
        {
            src = 'images/gray_star.png';
        }*/
        src = 'images/gray_star.png';
        SwapImgSrc(false, overID, src);
    }
}

function getDateDiff(expDate, curDate)
{
    var arrMonths = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    var xPerDay = 60 * 60 * 1000;
    var day_1, day_2, month_1, month_2, year_1, year_2, time_1, time_2;

    var arrDTM1 = expDate.toString().split(' ');
    var arrDTM2 = curDate.toString().split(' ');
    for (i = 0; i < arrMonths.length; i++)
    {
        if (arrMonths[i].toString() == arrDTM1[2].toString())
        {
            month_1 = (i + 1).toString();
        }
        if (arrMonths[i].toString() == arrDTM2[2].toString())
        {
            month_2 = (i + 1).toString();
        }
    }
    day_1 = arrDTM1[1];
    day_2 = arrDTM2[1];
    year_1 = arrDTM1[3];
    year_2 = arrDTM2[3];
    time_1 = arrDTM1[4];
    time_2 = arrDTM2[4];
    alert(year_1 + "/" + month_1 + "/" + day_1 + " " + time_1);
    alert(year_2 + "/" + month_2 + "/" + day_2 + " " + time_2);
    var date_1 = Date.parse(year_1 + "/" + month_1 + "/" + day_1 + " " + time_1);
    var date_2 = Date.parse(year_2 + "/" + month_2 + "/" + day_2 + " " + time_2);

    var diff = (date_2.valueOf() - date_1.valueOf()) / xPerDay;

    var dtm = new Date();
    dtm.setMilliseconds(diff);

    return dtm.getHours() + ":" + dtm.getMinutes() + ":" + dtm.getSeconds();
   
}

function rateVideo(id)
{    
    var arrInfo = id.toString().split('_');
    var itemID = arrInfo[1].toString();
    var value = parseInt(arrInfo[2]);

    var bRate = false;

    if (readCookie('elbv_' + itemID) == null)
    {
        //create cookie       
        createCookie('elbv_' + itemID, itemID, 1);
        bRate = true;
    }
    else
    {
        var cValue = readCookie('elbv_' + itemID);
        if (cValue == itemID)
        {
            
            setMessage('We have your vote already.', false, getElemOffset(getElem(false, 'imgVote_' + itemID), 0, 0)[0], getElemOffset(getElem(false, 'imgVote_' + itemID), 0, 25)[1], eMsg);
            clearMessage(5, eMsg);

            //disable voting system, use rate then reset it
            var e = getElem(false, 'imgVote_' + itemID);

            imgSrc = 'images/blue_vote.png';
            imgSrcOver = 'images/blue_vote_over.png';
            e.src = imgSrc;

            e.setAttribute("onmouseover", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrcOver + "');");
            e.setAttribute("onmouseout", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrc + "');");
            getElem(false, 'divGreen_' + itemID).className = 'hide';
            getElem(false, 'divBlue_' + itemID).className = 'show';
            
            bRate = false;
        }
        else
        {
            bRate = true;
        }
    }

    if (bRate)
    {
        overlay(eProcess, 'show', getElemOffset(getElem(false, 'imgVote_' + itemID), 80, 0)[0], getElemOffset(getElem(false, 'imgVote_' + itemID), 0, 5)[1]);


        ws.Videos.RateVideo(itemID, value, function(r)
        {
            cbRateVideo(itemID, r);
        });
    }
    else
    {
        //reset stars to current rate
        //get current rate
        for (var i = 0; i < updatedVideos.length; i++)
        {
            if (updatedVideos[i] == itemID)
            {
                //existing previously updated value
                currentRate = parseInt(updatedRates[i]);                
                break;
            }
        }
        
        for (i = 1; i <= 5; i++)
        {
            var starID = 'blueStar_' + itemID + '_' + i;
            var src = '';
            if (i <= parseInt(currentRate))
            {
                //blue
                src = 'images/blue_star.png';
            }
            else
            {
                //gray
                src = 'images/gray_star.png';
            }
            SwapImgSrc(false, starID, src);
        }

        currentRate = 0;
    }
}

function cbRateVideo(itemID, r)
{
    if (typeof r == 'object')
    {
        if (r.error != '')
        {
            setMessage(r.error, false, getElemOffset(getElem(false, 'imgVote_' + itemID), 0, 0)[0], getElemOffset(getElem(false, 'imgVote_' + itemID), 0, 25)[1], eMsg);
            clearMessage(3, eMsg);
        }
        else
        {

            setMessage('Thank you.<br />This video rating has been updated to ' + ((parseInt(r.rate) == 1) ? r.rate + ' star' : r.rate + ' stars'), false, getElemOffset(getElem(false, 'imgVote_' + itemID), 80, 0)[0], getElemOffset(getElem(false, 'imgVote_' + itemID), 0, 5)[1], eMsg);
            clearMessage(3, eMsg);

            //disable voting system, use current Rate then reset it
            var e = getElem(false, 'imgVote_' + itemID);
            imgSrc = 'images/blue_vote.png';
            imgSrcOver = 'images/blue_vote_over.png';
            e.src = imgSrc;
            e.setAttribute("onmouseover", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrcOver + "');");
            e.setAttribute("onmouseout", "SwapImgSrc(false, 'imgVote_" + itemID + "', '" + imgSrc + "');");

            getElem(false, 'divGreen_' + itemID).className = 'hide';
            getElem(false, 'divBlue_' + itemID).className = 'show';
           
            //reset current vote element
            currentVoteElement = null;
            currentItemID = '';

            //add new name: value to object
            var bUpdated = false;
            for (var i = 0; i < updatedVideos.length; i++)
            {
                if (updatedVideos[i] == itemID)
                {
                    //already exists
                    //update existing value and break out
                    updatedVideos[i] = itemID;
                    updatedRates[i] = r.rate;
                    bUpdated = true;
                    break;
                }
            }

            if (!bUpdated)
            {
                //non existing value, add new value
                updatedVideos[updatedVideos.length] = itemID;
                updatedRates[updatedRates.length] = r.rate;
            }
    
           
            for (i = 1; i <= 5; i++)
            {
                var starID = 'blueStar_' + itemID + '_' + i;
                var src = '';
                if (i <= parseInt(r.rate))
                {
                    //blue
                    src = 'images/blue_star.png';
                    
                }
                else
                {
                    //gray
                    src = 'images/gray_star.png';
                }
                SwapImgSrc(false, starID, src);
            }
            currentRate = 0;
        }
    }
    overlay(eProcess, 'hide', 0, 0);
}

