//This is the script required for contest entries dynamic/ajax request

var entriesTable = Vector.getInstance();
var gRemainingPics = 0;
var totalPics = 0;
var gInitialNum = 0;
var gNextNum = 0;
var gFinalNum = 0;
var initialNum = 25;
var nextNum = 35;
var finalNum = 50;
var flag = true;
var spacerUrl = "";
var lastEntryOid = 0;
var status=0;
var vote=-1;
var oid = "";
var dbNode = "";
var increment = 25;


function CEntry()
{
    this.tnUrl;
    this.tnUrlWidth;
    this.tnUrlHeight;
    this.lrUrl;
    this.imageSrc;
    this.isLandscape;
    this.name;
    this.ownerFirstName;
    this.ownerLastName;
    this.description;
    this.location;
    this.pictNum;
    this.entryOid;
    this.status;
    this.vote;
    this.rating;
    this.avgRating;
    this.judgeContent;
    this.nodeName;
    this.averageRating;

    this.setTnUrl = function(tnUrl)
    {
        this.tnUrl = tnUrl;
    }
    this.getTnUrl = function()
    {
        return this.tnUrl;
    }
    this.setTnUrlWidth = function(tnUrlWidth)
    {
        this.tnUrlWidth = tnUrlWidth;
    }
    this.getTnUrlWidth = function()
    {
        return this.tnUrlWidth;
    }
    this.setTnUrlHeight = function(tnUrlHeight)
    {
        this.tnUrlHeight = tnUrlHeight;
    }
    this.getTnUrlHeight = function()
    {
        return this.tnUrlHeight;
    }
    this.setLrUrl = function(lrUrl)
    {
        this.lrUrl = lrUrl;
    }
    this.getLrUrl = function()
    {
        return this.lrUrl;
    }
    this.setImageSrc = function(imageSrc)
    {
        this.imageSrc = imageSrc;
    }
    this.getImageSrc = function()
    {
        return this.imageSrc;
    }
    this.setIsLandscape = function(isLandscape)
    {
        this.isLandscape = isLandscape;
    }
    this.getIsLandscape = function()
    {
        return this.isLandscape;
    }
    this.setName = function(name)
    {
        this.name = name;
    }
    this.getName = function()
    {
        return this.name;
    }
    this.setOwnerFirstName = function(ownerFirstName)
    {
        this.ownerFirstName = ownerFirstName;
    }
    this.getOwnerFirstName = function()
    {
        return this.ownerFirstName;
    }
    this.setOwnerLastName = function(ownerLastName)
    {
        this.ownerLastName = ownerLastName;
    }
    this.getOwnerLastName = function()
    {
        return this.ownerLastName;
    }
    this.setDescription = function(description)
    {
        this.description = description;
    }
    this.getDescription = function()
    {
        return this.description;
    }
    this.setLocation = function(location)
    {
        this.location = location;
    }
    this.getLocation = function()
    {
        return this.location;
    }
    this.setPictNum = function(pictNum)
    {
        this.pictNum = pictNum;
    }
    this.getPictNum = function()
    {
        return this.pictNum;
    }
    this.setEntryOid = function(entryOid)
    {
        this.entryOid = entryOid;
    }
    this.getEntryOid = function()
    {
        return this.entryOid;
    }
    this.setStatus = function(status)
    {
        this.status = status;
    }
    this.getStatus = function()
    {
        return this.status;
    }

    this.setVote = function(vote)
    {
        this.vote = vote;
    }
    this.getVote = function()
    {
        return this.vote;
    }
    this.setRating = function(rating)
    {
        this.rating = rating;
    }
    this.getRating = function()
    {
        return this.rating;
    }
    this.setAvgRating = function(avgRating)
    {
        this.avgRating = avgRating;
    }
    this.getAvgRating = function()
    {
        return this.avgRating;
    }
    this.setJudgeContent = function(judgeContent)
    {
        this.judgeContent = judgeContent;
    }
    this.getJudgeContent = function()
    {
        return this.judgeContent;
    }

    this.setNodeName = function(nodeName)
    {
        this.nodeName = nodeName;
    }
    this.getNodeName = function()
    {
        return this.nodeName;
    }
    this.setAverageRating = function(averageRating)
    {
        this.averageRating = averageRating;
    }
    this.getAverageRating = function()
    {
        return this.averageRating;
    }

}
var temporaryflag = true;
function getNextSet(urlLink, initial, finalN){
    if(temporaryflag){
        frames['selectphototovote'].initialNum = 25;
        frames['selectphototovote'].finalNum = 50;
        frames['selectphototovote'].gFinalNum = 25;
        temporaryflag = false;
    }
    frames['selectphototovote'].nextSetOfPics(urlLink, initial, finalN);
}

function scroll_with_ajax_call(totPics, leftOutPics, iniNum, nxtNum, fnlNum, spacer, lstEntryOid){

    CPopup.closeAllPopups();
    totalPics = totPics;
    gInitialNum = iniNum;
    gNextNum = nxtNum;
    gFinalNum = fnlNum;
    lastEntryOid = lstEntryOid;
    if(flag){
        gRemainingPics = leftOutPics;
        //Should enter this block only for the first ajax call.
        if(gRemainingPics < gFinalNum){
            //Should enter this block if the remaining pics is less than the pics brought per each ajax call
            temp = -((table.offsetWidth/(gRemainingPics+gFinalNum))*(gNextNum - 8));
        }
        else{
            //Should enter this block if the remaining pics is more than the pics brought per each ajax call
            temp = -((table.offsetWidth/(gFinalNum*2))*(gNextNum - 8));
        }
        //initialNum = gInitialNum+gFinalNum;
        //nextNum = gNextNum+gFinalNum;
        //finalNum = 2*gFinalNum;

        spacerUrl = spacer;

        flag = false;
    }
    contest_pics_scroll_simulator.startScroll('right');

}

/*function pic_after_vote(){

}*/

function nextSetOfPictures(entriesInContestUrl, initialLength, finalLength){
    var lm = CLinkManager.getInstance(entriesInContestUrl);
    lm.setURLParameter("initiallength", initialLength) ;
    lm.setURLParameter("finallength", finalLength) ;
    lm.setURLParameter("lastEntryOid", lastEntryOid);
    lm.setURLParameter("nextEntryOid", nextEntryOid);
    entriesInContestUrl = lm.getURL();
    var contestEntriesParameter = CParameterObject.getInstance(entriesInContestUrl, IActionConstants.GET_CONTEST_ENTRIES);
    contestEntriesParameter.setControllerHandler("updateIFrameInfo");
    doRequest(contestEntriesParameter);
}

function initialize()
{
    contest_pics_scroll_simulator = new CScroller('contest_pics_container', 'contest_pics_scroll_content', 'contest_pics_table', 'contest_pics_scroll_left', 'contest_pics_scroll_right');    
}

function updateIFrameInfo(){
    var vInitialLength = initialNum;
    var entriesTableSize = entriesTable.size();
    for(var i=0; i<entriesTableSize && vInitialLength<finalNum; i++)
    {
        var entryInContest = entriesTable.elementAt(i);
        document.getElementById("pic_id_"+vInitialLength).src = entryInContest.getTnUrl();
        document.getElementById("pic_id_"+vInitialLength).width = entryInContest.getTnUrlWidth();
        document.getElementById("pic_id_"+vInitialLength).height = entryInContest.getTnUrlHeight();
        pictureNumber = entryInContest.getPictNum();
        contestEntryOid = entryInContest.getEntryOid();
        contestNextEntryOid = entryInContest.getEntryOid();
        if(i<entriesTableSize-1){
            contestNextEntryOid = entriesTable.elementAt(i+1).getEntryOid();
            pictureNumber = 1;
            for(var j=0; j<entryInContest.getPictNum(); j++){
                ++pictureNumber;
            }
        }
        else if(entriesTableSize>1){
            contestNextEntryOid = entriesTable.elementAt(0).getEntryOid();
            pictureNumber = 1;
        }
        //document.getElementById("anchor_id_"+vInitialLength).onclick = showPicture(entryInContest.getLrUrl(), entryInContest.getName(), entryInContest.getDescription(), entryInContest.getLocation(), entryInContest.getPictNum(), totalPics, contestEntryOid, contestNextEntryOid, pictureNumber);
        //document.getElementById("anchor_id_"+vInitialLength).href = "javascript:window.parent.showPicture("+'\''+ entryInContest.getLrUrl() +'\''+',' +entryInContest.getIsLandscape() +','+'\''+ entryInContest.getName() +'\''+','+'\''+ entryInContest.getOwnerFirstName() +'\''+','+'\''+ entryInContest.getOwnerLastName() +'\''+','+'\''+ entryInContest.getDescription() +'\''+','+'\''+ entryInContest.getLocation() +'\''+','+'\''+ entryInContest.getPictNum() +'\''+','+'\''+ totalPics +'\''+','+'\''+ contestEntryOid +'\''+','+'\''+ entryInContest.getNodeName() +'\''+','+'\''+ contestNextEntryOid +'\''+','+'\''+ pictureNumber +'\''+")";
        vInitialLength++;
    }

    for(var i=finalNum; i<(finalNum+gRemainingPics) && i<(finalNum+gFinalNum); i++){
        var contest_table_row = document.getElementById('contest_pics_table').rows[0];
        var cell = document.createElement("td");
        cell.setAttribute("vAlign", "bottom");
        //cell.setAttribute("width", entryInContest.getTnWidth());
        var anchor = document.createElement("a");
        anchor.setAttribute("id","anchor_id_"+i);
        //anchor.setAttribute("onclick", "");
        anchor.setAttribute("href", "");
        var img = document.createElement("img");
        //img.setAttribute("width",entryInContest.getTnWidth());
        img.setAttribute("id","pic_id_"+i);
        img.setAttribute("name","pic_id_"+i);
        img.setAttribute("src",spacerUrl);
        img.setAttribute("width","96");
        img.setAttribute("height","96");
        anchor.appendChild(img)
        cell.appendChild(anchor);

        contest_table_row.appendChild(cell);
    }
    maxX = table.offsetWidth - container.offsetWidth;
    endX = -maxX;
    if(gRemainingPics < gFinalNum){
        //Should enter this block if the remaining pics is less than the pics brought per each ajax call
        temp = -((table.offsetWidth/(gRemainingPics+finalNum))*(nextNum - 8));
    }
    else{

        //Should enter this block if the remaining pics is more than the pics brought per each ajax call
        temp = -((table.offsetWidth/(finalNum+gFinalNum))*(nextNum - 8));
    }

    initialNum = gInitialNum + finalNum;
    nextNum = gNextNum + finalNum;
    finalNum = gFinalNum + finalNum;
    setInitialValues(initialNum, finalNum, gRemainingPics);
}

function __getContestEntriesAction( gobjDatabaseDomTree , parameterObj  )
{

    if(gobjDatabaseDomTree)
    {
        var success = gobjDatabaseDomTree.getElementsByTagName("success").item(0).getFirstChild().getNodeValue();
        if(success == "false")
        {
            hideWindow();
            openPopupId = null;
            alert("Your action could not be completed. Please try again.");
            return;
        }

        var entriesNodes = gobjDatabaseDomTree.getElementsByTagName("entries").item(0).getChildNodes();
        gRemainingPicsTemp = gobjDatabaseDomTree.getElementsByTagName("remainingEntries").item(0).getFirstChild().getNodeValue();
        finalNumTemp = gobjDatabaseDomTree.getElementsByTagName("finalLength").item(0).getFirstChild().getNodeValue();
        initialNumTemp = gobjDatabaseDomTree.getElementsByTagName("initialLength").item(0).getFirstChild().getNodeValue();
        totalPicsTemp = gobjDatabaseDomTree.getElementsByTagName("totalPics").item(0).getFirstChild().getNodeValue();
        lastEntryOid = gobjDatabaseDomTree.getElementsByTagName("lastEntryOid").item(0).getFirstChild().getNodeValue();
        gRemainingPics = 0;
        finalNum = 0;
        initialNum = 0;
        totalPics = 0;
        for(var i=0; i<gRemainingPicsTemp || i<finalNumTemp || i<initialNumTemp || i<totalPicsTemp; i++)
        {
            if(i<gRemainingPicsTemp){
                gRemainingPics = gRemainingPics + 1;
            }
            if(i<finalNumTemp){
                finalNum = finalNum + 1;
            }
            if(i<initialNumTemp){
                initialNum = initialNum + 1;
            }
            if(i<totalPicsTemp){
                totalPics = totalPics + 1;
            }
        }

        entriesTable.removeAll();
        for(var i=0; i<entriesNodes.getLength(); i++)
        {
            var entryNode = entriesNodes.item(i);
            var tnUrl = entryNode.getElementsByTagName("tnUrl").item(0).getFirstChild().getNodeValue();
            var tnUrlWidth = entryNode.getElementsByTagName("tnUrlWidth").item(0).getFirstChild().getNodeValue();
            var tnUrlHeight = entryNode.getElementsByTagName("tnUrlHeight").item(0).getFirstChild().getNodeValue();
            var lrUrl = entryNode.getElementsByTagName("lrUrl").item(0).getFirstChild().getNodeValue();
            var isLandscape = entryNode.getElementsByTagName("isLandscape").item(0).getFirstChild().getNodeValue();
            var name = entryNode.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
            var ownerFirstName = entryNode.getElementsByTagName("ownerFirstName").item(0).getFirstChild().getNodeValue();
            var ownerLastName = entryNode.getElementsByTagName("ownerLastName").item(0).getFirstChild().getNodeValue();
            var description = entryNode.getElementsByTagName("description").item(0).getFirstChild().getNodeValue();
            var location = entryNode.getElementsByTagName("location").item(0).getFirstChild().getNodeValue();
            var pictNum = entryNode.getElementsByTagName("pictNum").item(0).getFirstChild().getNodeValue();
            var entryOid = entryNode.getElementsByTagName("entryOid").item(0).getFirstChild().getNodeValue();
            var nodeName = entryNode.getElementsByTagName("entryNodeName").item(0).getFirstChild().getNodeValue();

            var entry = new CEntry();
            entry.setTnUrl(tnUrl);
            entry.setTnUrlWidth(tnUrlWidth);
            entry.setTnUrlHeight(tnUrlHeight);
            entry.setLrUrl(lrUrl);
            entry.setImageSrc(lrUrl);
            entry.setIsLandscape(isLandscape);
            entry.setName(name);
            entry.setOwnerFirstName(ownerFirstName);
            entry.setOwnerLastName(ownerLastName);
            entry.setDescription(description);
            entry.setLocation(location);
            entry.setPictNum(pictNum);
            entry.setEntryOid(entryOid);
            entry.setNodeName(nodeName);
            entriesTable.add(entry);
            setValues(increment, entry);
            increment++;
        }
        parameterObj.executeCallbackMethod( parameterObj ) ;

    }
}



//This is the script required for contest vote dynamic/ajax request

var presentEntryOid = "";
var prevPicTnUrl = "";
var prevPicStarValue = "";
var nextEntryLrurl = "";
var nextEntryName = "";
var nextEntryDescription = "";
var nextEntryLocation = "";
var nextEntryPictNum = "";
var nextEntryOid = "";
var finalEntryOid = "";
var finalEntryPicNum = "";
var nextEntrydbNode = "";
var nextEntryIsLandscape="";
var message = "";
var nextEntryImageSrc = "";
var nextOwnerFirstName = "";
var nextOwnerLastName = "";
var nextEntryNodeName = "";
var presentPicNum = "";
var nextEntryAverageRating = "";


function voteForPic(voteForPicUrl, contestName, contestEntryOid, contestNextEntryOid, starValue, dbNode, nextEntryNodename, pictureNumber){
    var lm = CLinkManager.getInstance(voteForPicUrl);
    lm.setURLParameter("contestname", contestName) ;
    presentEntryOid = contestEntryOid;
    presentPicNum = pictureNumber;
    nextEntryOid =  contestNextEntryOid;
    lm.setURLParameter("contestentryoid", contestEntryOid) ;
    lm.setURLParameter("contestnextentryoid", contestNextEntryOid) ;
    lm.setURLParameter("contestvotevalue", starValue);
    lm.setURLParameter("contestentrynodename", dbNode);
    lm.setURLParameter("contestnextentrynodename", nextEntryNodename);
    lm.setURLParameter("contestnextentrypicnum", pictureNumber);
    voteForPicUrl = lm.getURL();
    var contestVoteParameter = CParameterObject.getInstance(voteForPicUrl, IActionConstants.VOTE_FOR_PICTURE);
    contestVoteParameter.setControllerHandler("updateVoteInfo");
    doRequest(contestVoteParameter);
}

function voteForPicture(voteForPicUrl, contestEntryOid, contestNextEntryOid, starValue, dbNode, nextEntryNodename, pictureNumber){
    var lm = CLinkManager.getInstance(voteForPicUrl);
    presentEntryOid = contestEntryOid;
    presentPicNum = pictureNumber;
    nextEntryOid =  contestNextEntryOid;
    lm.setURLParameter("contestentryoid", contestEntryOid) ;
    lm.setURLParameter("contestnextentryoid", contestNextEntryOid) ;
    lm.setURLParameter("contestvotevalue", starValue);
    lm.setURLParameter("contestentrynodename", dbNode);
    lm.setURLParameter("contestnextentrynodename", nextEntryNodename);
    lm.setURLParameter("contestnextentrypicnum", pictureNumber);
    voteForPicUrl = lm.getURL();
    var contestVoteParameter = CParameterObject.getInstance(voteForPicUrl, IActionConstants.VOTE_FOR_PICTURE);
    contestVoteParameter.setControllerHandler("updateVoteInfo");
    doRequest(contestVoteParameter);
}


function updateVoteInfo(){
    /*
    document.getElementById("displayPicture").src = nextEntryLrurl;
    document.getElementById("imageCaption").innerHTML = nextEntryName;
    document.getElementById("imageDescription").innerHTML = nextEntryDescription;
    document.getElementById("averageRating").innerHTML = nextEntryAverageRating;
    document.getElementById("ownerLocation").innerHTML = nextEntryLocation;
    document.getElementById("pictNum").innerHTML = nextEntryPictNum;
    document.getElementById("totalPics").innerHTML = totalPictures;
    //call the method to show the pic and for the related changes in the divs
    showPicture( nextEntryLrurl, nextEntryIsLandscape, nextEntryName, nextOwnerFirstName, nextOwnerLastName, nextEntryDescription, nextEntryLocation, nextEntryPictNum, totalPictures, nextEntryOid, nextEntrydbNode, finalEntryOid, finalEntryPicNum, nextEntryAverageRating );
    document.getElementById("voteHeading").innerHTML = "Your last Vote";
    document.getElementById("prevVotedPic").src = prevPicTnUrl;
    document.getElementById("averageStarValue").innerHTML = nextEntryAverageRating;
    document.getElementById("averageStarValue").style.display="block";
    document.getElementById("starValue").innerHTML = "Your Vote : "+prevPicStarValue;  */

    if(popFlag){
        CPopup.open(popUrl,"width=350,height=300,resizable=no","votePopup");
        CPopup.closeAllPopups();
    }

    document.getElementById("averageStarValue").innerHTML = "Average Rating : "+nextEntryAverageRating;
    document.getElementById("voteHeading").innerHTML = "Your last Vote";
    document.getElementById("prevVotedPic").height = "75";
    document.getElementById("prevVotedPic").src = prevPicTnUrl;
    document.getElementById("starValue").innerHTML = "Your Vote : "+prevPicStarValue;
    updateAvgRating(nextEntryAverageRating);
    
    updateVotingCookie();
    if((presentPicNum == 1) && (entriesTable.size() == 1)){
       nextEntryOid = presentEntryOid;
       document.getElementById("markInappropLink").style.display="none";       
    }else{
        nextPic();    
    }
    
    var alreadyRated = findRatingInCookie(nextEntryOid);    // let us find if it is already rated, if so show the previous rating
    if(alreadyRated){
        for(var i=1; i<=5; i++){
            if(i<=alreadyRated){
                document.getElementById("star"+i).src = document.getElementById("hiddenOnStar").src;
            }else{
                document.getElementById("star"+i).src = document.getElementById("hiddenOffStar").src;
            }
        }
    }else if(isMarkedInappropriateByUser(nextEntryOid)){  //if the next picture is already marked inappropriate
        
        hideMarkInappropContent();

    }else{     // if already not rated just show some starts to rate        
        for(var i=1; i<=5; i++){
            document.getElementById("star"+i).src = document.getElementById("hiddenOffStar").src;
        }
       //need to add code to prevent rerating
    }

    //setBorder(nextEntryPictNum-1);   // for setting border in the scrolling content

}

function __voteForPictureAction( gobjDatabaseDomTree , parameterObj  )
{
    if(gobjDatabaseDomTree)
    {
        var success = gobjDatabaseDomTree.getElementsByTagName("success").item(0).getFirstChild().getNodeValue();
        if(success == "false")
        {
            hideWindow();
            alert("Your action could not be completed. Please try again.");
            openPopupId = null;
            return;
        }
        //var entriesNodes = gobjDatabaseDomTree.getElementsByTagName("nextEntry").item(0).getChildNodes();
        prevPicTnUrl = gobjDatabaseDomTree.getElementsByTagName("prevPicTnUrl").item(0).getFirstChild().getNodeValue();
        prevPicStarValue = gobjDatabaseDomTree.getElementsByTagName("prevPicStarValue").item(0).getFirstChild().getNodeValue();
        nextEntryAverageRating = gobjDatabaseDomTree.getElementsByTagName("averageStarValue").item(0).getFirstChild().getNodeValue();
        /*nextEntryLrurl = gobjDatabaseDomTree.getElementsByTagName("nextEntryLrurl").item(0).getFirstChild().getNodeValue();
      nextEntryName = gobjDatabaseDomTree.getElementsByTagName("nextEntryName").item(0).getFirstChild().getNodeValue();
      nextEntryDescription = gobjDatabaseDomTree.getElementsByTagName("nextEntryDescription").item(0).getFirstChild().getNodeValue();
      nextEntryLocation = gobjDatabaseDomTree.getElementsByTagName("nextEntryLocation").item(0).getFirstChild().getNodeValue();
      nextEntryPictNum = gobjDatabaseDomTree.getElementsByTagName("nextEntryPictNum").item(0).getFirstChild().getNodeValue();
      nextEntryOid = gobjDatabaseDomTree.getElementsByTagName("nextEntryOid").item(0).getFirstChild().getNodeValue();
      finalEntryOid = gobjDatabaseDomTree.getElementsByTagName("finalEntryOid").item(0).getFirstChild().getNodeValue();
      finalEntryPicNum = gobjDatabaseDomTree.getElementsByTagName("finalEntryPicNum").item(0).getFirstChild().getNodeValue();*/
        /*nextEntrydbNode = gobjDatabaseDomTree.getElementsByTagName("nextEntryNode").item(0).getFirstChild().getNodeValue();
        nextOwnerFirstName = gobjDatabaseDomTree.getElementsByTagName("firstName").item(0).getFirstChild().getNodeValue();
        nextOwnerLastName = gobjDatabaseDomTree.getElementsByTagName("lastName").item(0).getFirstChild().getNodeValue();
        nextEntryLocation = gobjDatabaseDomTree.getElementsByTagName("location").item(0).getFirstChild().getNodeValue();
        nextEntryIsLandscape = gobjDatabaseDomTree.getElementsByTagName("isLandScape").item(0).getFirstChild().getNodeValue();*/
        parameterObj.executeCallbackMethod( parameterObj ) ;

    }
}


// This is the ajax call for marking an entry as inappropriate by public

function markEntryInappropriate(inappropriatePicUrl, contestName, contestEntryOid, contestEntryNodeName, contestNextEntryPicNum,  contestNextEntryOid, contestNextEntryNodeName, currentPicNumber){
    var lm = CLinkManager.getInstance(inappropriatePicUrl);
    presentEntryOid = contestEntryOid;
    presentPicNum = currentPicNumber;
    nextEntryPictNum = contestNextEntryPicNum;
    nextEntryOid = contestNextEntryOid;
    if(presentPicNum<0){
        presentPicNum = 0;
    }
    lm.setURLParameter("contestname", contestName) ;
    lm.setURLParameter("contestentryoid", contestEntryOid) ;
    lm.setURLParameter("contestentrynodename", contestEntryNodeName) ;
    lm.setURLParameter("contestnextentrypicnum", contestNextEntryPicNum) ;
    lm.setURLParameter("contestnextentryoid", contestNextEntryOid) ;
    lm.setURLParameter("contestnextentrynodename", contestNextEntryNodeName);

    inappropriatePicUrl = lm.getURL();
    var contestInappropriateParameter = CParameterObject.getInstance(inappropriatePicUrl, IActionConstants.MARK_ENTRY_INAPPROPRIATE);
    contestInappropriateParameter.setControllerHandler("updateInappropriateEntryInfo");
    doRequest(contestInappropriateParameter);
}

function markEntryAsInappropriate(inappropriatePicUrl, contestEntryOid, contestEntryNodeName, contestNextEntryPicNum,  contestNextEntryOid, contestNextEntryNodeName, currentPicNumber){
    var lm = CLinkManager.getInstance(inappropriatePicUrl);
    presentEntryOid = contestEntryOid;
    presentPicNum = currentPicNumber;
    nextEntryPictNum = contestNextEntryPicNum;
    nextEntryOid = contestNextEntryOid;
    if(presentPicNum<0){
        presentPicNum = 0;
    }
    lm.setURLParameter("contestentryoid", contestEntryOid) ;
    lm.setURLParameter("contestentrynodename", contestEntryNodeName) ;
    lm.setURLParameter("contestnextentrypicnum", contestNextEntryPicNum) ;
    lm.setURLParameter("contestnextentryoid", contestNextEntryOid) ;
    lm.setURLParameter("contestnextentrynodename", contestNextEntryNodeName);

    inappropriatePicUrl = lm.getURL();
    var contestInappropriateParameter = CParameterObject.getInstance(inappropriatePicUrl, IActionConstants.MARK_ENTRY_INAPPROPRIATE);
    contestInappropriateParameter.setControllerHandler("updateInappropriateEntryInfo");
    doRequest(contestInappropriateParameter);
}

function updateInappropriateEntryInfo(){

    /* showPicture( nextEntryImageSrc, nextEntryIsLandscape, nextEntryName, nextOwnerFirstName, nextOwnerLastName, nextEntryDescription, nextEntryLocation, nextEntryPictNum, totalPictures, nextEntryOid, nextEntryNodeName, finalEntryOid, finalEntryPicNum, nextEntryAverageRating );
    //document.getElementById("voteHeading").innerHTML = "";
    document.getElementById("prevVotedPic").src = prevPicTnUrl;
    //document.getElementById("averageStarValue").innerHTML = "";
    document.getElementById("starValue").innerHTML = message;   */
    document.getElementById("prevVotedPic").height = "75";
    document.getElementById("prevVotedPic").src = prevPicTnUrl;
    document.getElementById("starValue").innerHTML = message;
    document.getElementById("averageStarValue").innerHTML = "";


    if(nextEntryPictNum == 1){        
       hideMarkInappropContent();
    }else{
       nextPic();
    }

    updateInappropCookie();
    blurImage(presentPicNum); //  check for the nextEntryPictNum
}

function __markEntryInappropriateAction( gobjDatabaseDomTree , parameterObj  )
{
    if(gobjDatabaseDomTree)
    {
        var success = gobjDatabaseDomTree.getElementsByTagName("success").item(0).getFirstChild().getNodeValue();
        if(success == "false")
        {
            hideWindow();
            openPopupId = null;
            alert("Your action could not be completed. Please try again.");
            return;
        }

        //var entriesNodes = gobjDatabaseDomTree.getElementsByTagName("nextEntry").item(0).getChildNodes();
        prevPicTnUrl = gobjDatabaseDomTree.getElementsByTagName("prevPicTnUrl").item(0).getFirstChild().getNodeValue();
        message = gobjDatabaseDomTree.getElementsByTagName("message").item(0).getFirstChild().getNodeValue();
        /*
        nextEntryLrurl = gobjDatabaseDomTree.getElementsByTagName("nextEntryLrurl").item(0).getFirstChild().getNodeValue();
        nextEntryImageSrc = gobjDatabaseDomTree.getElementsByTagName("nextEntryImageSrc").item(0).getFirstChild().getNodeValue();
        nextEntryIsLandscape = gobjDatabaseDomTree.getElementsByTagName("nextEntryIsLandscape").item(0).getFirstChild().getNodeValue();
        nextEntryName = gobjDatabaseDomTree.getElementsByTagName("nextEntryName").item(0).getFirstChild().getNodeValue();
        nextOwnerFirstName = gobjDatabaseDomTree.getElementsByTagName("nextEntryOwnerFirstName").item(0).getFirstChild().getNodeValue();
        nextOwnerLastName = gobjDatabaseDomTree.getElementsByTagName("nextEntryOwnerLastName").item(0).getFirstChild().getNodeValue();
        nextEntryDescription = gobjDatabaseDomTree.getElementsByTagName("nextEntryDescription").item(0).getFirstChild().getNodeValue();
        nextEntryLocation = gobjDatabaseDomTree.getElementsByTagName("nextEntryLocation").item(0).getFirstChild().getNodeValue();
        nextEntryPictNum = gobjDatabaseDomTree.getElementsByTagName("nextEntryPictNum").item(0).getFirstChild().getNodeValue();
        nextEntryOid = gobjDatabaseDomTree.getElementsByTagName("nextEntryOid").item(0).getFirstChild().getNodeValue();
        nextEntryNodeName = gobjDatabaseDomTree.getElementsByTagName("nextEntryNodeName").item(0).getFirstChild().getNodeValue();
        finalEntryOid = gobjDatabaseDomTree.getElementsByTagName("finalEntryOid").item(0).getFirstChild().getNodeValue();
        finalEntryPicNum = gobjDatabaseDomTree.getElementsByTagName("finalEntryPicNum").item(0).getFirstChild().getNodeValue();
        nextEntryAverageRating = gobjDatabaseDomTree.getElementsByTagName("averageStarValue").item(0).getFirstChild().getNodeValue(); */
        parameterObj.executeCallbackMethod( parameterObj ) ;

    }
}

function showNextSet(){
    if(null != document.getElementById("retrieveNextSetId"))
        document.getElementById("retrieveNextSetId").style.display = "block";
}

function hideNextSet(){
    if(null != document.getElementById("retrieveNextSetId"))
        document.getElementById("retrieveNextSetId").style.display = "none";
}

//code for the scroll feature in the contest

var a;
var temp = 0 ;
var table;
var maxX;
var container;
var endX;

function CScroller(containerId, contentId, tableId, left_arrow_id, right_arrow_id)
{
    this.containerId = containerId;
    this.contentId = contentId;
    container = document.getElementById(containerId);
    this.content = document.getElementById(contentId);
    table = document.getElementById(tableId);
    this.left_arrow = document.getElementById(left_arrow_id);
    this.right_arrow = document.getElementById(right_arrow_id);
    if(this.right_arrow &&  this.left_arrow)
        this.right_arrow.style.display = this.left_arrow.style.display ="none";
    this.speed = 1;
    this.x = this.content.style.left = 0;
    this.dx = 0;
    endX = 0;
    maxX = table.offsetWidth - container.offsetWidth;

    if(maxX < 0)
        maxX = 0;
    if(maxX > 0){
        document.getElementById("right_arrow").style.visibility = "visible";
    }
    this.timerId = 0;

    this.onLoad = CScroller_onLoad;
    this.moveTo = CScroller_moveTo;
    this.startScroll = CScroller_startScroll;
    this.scroll = CScroller_scroll;
    this.stopScroll = CScroller_stopScroll;
    this.doubleSpeed = CScroller_doubleSpeed;
    this.resetSpeed = CScroller_resetSpeed;
    this.onLoad();
    a = this;
    return this;
}

function CScroller_onLoad()
{
    //TODO: move to the index of the current picture
    if(maxX > 0)
    {
        if(this.right_arrow &&  this.left_arrow)
            this.right_arrow.style.display = this.left_arrow.style.display ="block";
    }
    this.ready = true;
    this.content.style.visibility="visible";
}

function CScroller_moveTo(new_x)
{
    this.content.style.left=(this.x=new_x)+"px";
}

function CScroller_startScroll(direction)
{
    CPopup.close();
    if (!this.ready)
        return;
    if(direction == "left")
    {
        this.dx = 1;
        endX = 0;
        document.getElementById("right_arrow").style.visibility = "visible";
    }
    else
    {
        this.dx = -1;
        endX =  -maxX;
        document.getElementById("left_arrow").style.visibility = "visible";
        hideNextSet();
    }

    if (this.timerId)
        clearInterval(this.timerId);
    a = this;

    this.timerId = setInterval( "a.scroll()", 10);
}

function CScroller_scroll()
{
    var new_x = this.x + (this.dx * this.speed * 2) ;

    if ( ( this.dx == -1 && new_x > -maxX ) || ( this.dx == 1 && new_x < 0 ) )
    {
        this.moveTo(new_x);
        if((new_x >= temp-2 && new_x < temp) && (this.dx == -1 && new_x > -maxX)){

            if(gRemainingPics > 0){
                nextSetOfPictures(entriesInContestUrl, initialNum, finalNum);
            }

        }
    }
    else
    {
        clearInterval(this.timerId);
        this.timerId = 0;
        this.moveTo(endX);
        if(endX == 0){
            document.getElementById("left_arrow").style.visibility = "hidden";
            hideNextSet();
        }
        if(endX < 0){
            document.getElementById("right_arrow").style.visibility = "hidden";
            showNextSet();
        }
    }
}

function CScroller_stopScroll()
{
    if (!this.ready) return;
    if (this.timerId)
        clearInterval(this.timerId);
    this.timerId = 0;
    //this.conent = null;
}

function CScroller_doubleSpeed()
{
    this.speed = 2;
}

function CScroller_resetSpeed()
{
    this.speed = 1;
}
function openTermsnConditionsPCWindow(target)
{
    setWindowProperties('width=480,height=250,resizable,scrollbars=yes');
    openWindow(target);
}

function entryDetails(target){
    setWindowProperties('width=350,height=250,scrollbars=yes');
    openWindow(target);
}

function showEntryDetails(url, contestEntryOid, nodeName){
    var lm = CLinkManager.getInstance(url);
    lm.setURLParameter("entryOid", contestEntryOid) ;
    lm.setURLParameter("contestentrynodename", nodeName) ;
    url = lm.getURL();
    var contestEntryDetailsParameter = CParameterObject.getInstance(url, IActionConstants.CONTEST_ENTRY_DETAILS);
    contestEntryDetailsParameter.setControllerHandler("updateEntryDetailsInfo");
    doRequest(contestEntryDetailsParameter);
}

var entryAvgRating;
var totalVotes;
var fiveStarVotes;
var fourStarVotes;
var threeStarVotes;
var twoStarVotes;
var oneStarVotes;

function updateEntryDetailsInfo(){
    document.getElementById("entryAvgRating"+divNo).innerHTML = entryAvgRating;
    document.getElementById("totalNoVotes"+divNo).innerHTML = totalVotes;
    document.getElementById("5StarVotes"+divNo).innerHTML = fiveStarVotes;
    document.getElementById("4StarVotes"+divNo).innerHTML = fourStarVotes;
    document.getElementById("3StarVotes"+divNo).innerHTML = threeStarVotes;
    document.getElementById("2StarVotes"+divNo).innerHTML = twoStarVotes;
    document.getElementById("1StarVotes"+divNo).innerHTML = oneStarVotes;
    disableAll();
    //positionWindow(document.getElementById("showPicture_div"), event);
    document.getElementById("showPicture_div"+divNo).style.display = "block";
}

function __entryDetailsAction(gobjDatabaseDomTree, parameterObj)
{
    if(gobjDatabaseDomTree)
    {
        var success = gobjDatabaseDomTree.getElementsByTagName("success").item(0).getFirstChild().getNodeValue();
        if(success == "false")
        {
            hideWindow();
            openPopupId = null;
            alert("Your action could not be completed. Please try again.");
            return;
        }

        entryAvgRating = gobjDatabaseDomTree.getElementsByTagName("entryAvgRating").item(0).getFirstChild().getNodeValue();
        totalVotes = gobjDatabaseDomTree.getElementsByTagName("totalVotes").item(0).getFirstChild().getNodeValue();
        fiveStarVotes = gobjDatabaseDomTree.getElementsByTagName("fiveStarVotes").item(0).getFirstChild().getNodeValue();
        fourStarVotes = gobjDatabaseDomTree.getElementsByTagName("fourStarVotes").item(0).getFirstChild().getNodeValue();
        threeStarVotes = gobjDatabaseDomTree.getElementsByTagName("threeStarVotes").item(0).getFirstChild().getNodeValue();
        twoStarVotes = gobjDatabaseDomTree.getElementsByTagName("twoStarVotes").item(0).getFirstChild().getNodeValue();
        oneStarVotes = gobjDatabaseDomTree.getElementsByTagName("oneStarVotes").item(0).getFirstChild().getNodeValue();

        parameterObj.executeCallbackMethod( parameterObj ) ;
    }
}

// This is the code to update entries for winners selection for a particular rating

var hasNext;
var availableRating;

function selectWinnersRating(url, rating){
    var lm = CLinkManager.getInstance(url);
    lm.setURLParameter("ratingRange", rating) ;
    url = lm.getURL();
    var contestSelectWinnersParameter = CParameterObject.getInstance(url, IActionConstants.CONTEST_SELECT_WINNERS);
    contestSelectWinnersParameter.setControllerHandler("updateSelectWinnersInfo");
    doRequest(contestSelectWinnersParameter);
}

// This is the code to update entries for winners selection for a particular rating Next/Prev

function selectWinnersNext(selectWinnersUrl, entryOid){
    var lm = CLinkManager.getInstance(selectWinnersUrl);
    lm.setURLParameter("ratingRange", ratingRange) ;
    lm.setURLParameter("entryOid", entryOid);
    selectWinnersUrl = lm.getURL();
    var contestSelectWinnersParameter = CParameterObject.getInstance(selectWinnersUrl, IActionConstants.CONTEST_SELECT_WINNERS);
    contestSelectWinnersParameter.setControllerHandler("updateSelectWinnersInfo");
    doRequest(contestSelectWinnersParameter);
}

function updateSelectWinnersInfo(){

    if(ratingFlag == "true"){
        document.getElementById("rating").innerHTML = ratingRange;
        document.getElementById("ratingColumn").style.visibility = "visible";
        document.getElementById("entryDropDown").value = availableRating;
        ratingRange = availableRating; 
    }
    else{
        document.getElementById("ratingColumn").style.visibility = "hidden";
    }
    var entriesTableSize = entriesTable.size();
    if(entriesTableSize > 0){
      for(var i=0; i<entriesTableSize; i++)
      {
        var entryInContest = entriesTable.elementAt(i);
        document.getElementById("pic"+i+"-icon").src = entryInContest.getTnUrl();
        document.getElementById("mag"+i).src = mag;
        document.getElementById("anchor"+i).href = "javascript:max("+'\''+entryInContest.getEntryOid()+'\', \''+entryInContest.getNodeName()+'\''+")";
        if(voteType == "public"){
          document.getElementById("entryDetails"+i).innerHTML = "details";
          document.getElementById("entryDetailsAnchor"+i).href = "javascript:details("+'\''+i+'\', \''+entryInContest.getEntryOid()+'\', \''+entryInContest.getNodeName()+'\''+")";;
        }
        document.getElementById("entryRating"+i).innerHTML = entryInContest.getRating();
        var b = true;
        for(var iterate1=0; iterate1 < numOfPrizes.length; iterate1++)
        {
          for(var iterate2=0; iterate2 < numOfPrizes[iterate1]; iterate2++)
          {
            if(document.getElementById("prize"+iterate1+"_"+iterate2).value == entryInContest.getEntryOid()){
                b = false;
                if (isIE4) {
                    document.getElementById("pic"+i+"-icon").style.filter = 'alpha(style=0, opacity=50)';
                }
                else {
                    document.getElementById("pic"+i+"-icon").style.opacity = "0.5";
                }
            }
          }
        }
        if(b){
            if (isIE4) {
                document.getElementById("pic"+i+"-icon").style.filter = 'alpha(style=0, opacity=100)';
            }
            else {
                document.getElementById("pic"+i+"-icon").style.opacity = "1.0";
            }
        }
      }
      for(;i<15;i++)
      {
        document.getElementById("pic"+i+"-icon").src = spacer;
        document.getElementById("mag"+i).src = spacer;
        document.getElementById("anchor"+i).href = "";
        document.getElementById("entryRating"+i).innerHTML = "";
        if(voteType == "public"){
          document.getElementById("entryDetails"+i).innerHTML = "";
          document.getElementById("entryDetailsAnchor"+i).href = "";
        }
        if (isIE4) {
            document.getElementById("pic"+i+"-icon").style.filter = 'alpha(style=0, opacity=100)';
        }
        else {
            document.getElementById("pic"+i+"-icon").style.opacity = "1.0";
        }

      }
    }
    if(hasNext == "true"){
        document.getElementById("next").style.visibility = "visible";
    }
    else{
        document.getElementById("next").style.visibility = "hidden";
    }
}


function __selectWinnersAction( gobjDatabaseDomTree , parameterObj  )
{

    if(gobjDatabaseDomTree)
    {
        var success = gobjDatabaseDomTree.getElementsByTagName("success").item(0).getFirstChild().getNodeValue();
        if(success == "false")
        {
            hideWindow();
            openPopupId = null;
            alert("Your action could not be completed. Please try again.");
            return;
        }

        hasNext = gobjDatabaseDomTree.getElementsByTagName("hasNext").item(0).getFirstChild().getNodeValue();

        var entriesNodes = gobjDatabaseDomTree.getElementsByTagName("entries").item(0).getElementsByTagName("entry");
        ratingRange = gobjDatabaseDomTree.getElementsByTagName("ratingRange").item(0).getFirstChild().getNodeValue();
        availableRating = gobjDatabaseDomTree.getElementsByTagName("availableRating").item(0).getFirstChild().getNodeValue();
        ratingFlag = gobjDatabaseDomTree.getElementsByTagName("ratingFlag").item(0).getFirstChild().getNodeValue();

        entriesTable.removeAll();
        for(var i=0; i<entriesNodes.getLength(); i++)
        {
            var entryNode = entriesNodes.item(i);
            var tnUrl = entryNode.getElementsByTagName("tnUrl").item(0).getFirstChild().getNodeValue();
            var imageSource = entryNode.getElementsByTagName("imageSource").item(0).getFirstChild().getNodeValue();
            var lrUrl = entryNode.getElementsByTagName("lrUrl").item(0).getFirstChild().getNodeValue();
            var isLandscape = entryNode.getElementsByTagName("isLandscape").item(0).getFirstChild().getNodeValue();
            var entryOid = entryNode.getElementsByTagName("entryOid").item(0).getFirstChild().getNodeValue();
            var nodeName = entryNode.getElementsByTagName("entryDbNode").item(0).getFirstChild().getNodeValue();
            var rating = entryNode.getElementsByTagName("rating").item(0).getFirstChild().getNodeValue();

            var entry = new CEntry();
            entry.setTnUrl(tnUrl);
            entry.setImageSrc(imageSource);
            entry.setLrUrl(lrUrl);
            entry.setIsLandscape(isLandscape);
            entry.setEntryOid(entryOid);
            entry.setNodeName(nodeName);
            entry.setRating(rating);
            entriesTable.add(entry);
        }

        parameterObj.executeCallbackMethod( parameterObj ) ;

    }
}

function maximize(target){
    setWindowProperties('width=550,height=570,scrollbars=yes');
    openWindow(target);
}


// This is the code for Drag-Drop feature for Photo Contest

var isNav4, isIE4, isMac, isNav6;

if (parseInt(navigator.appVersion.charAt(0)) >= 4) {
    isNav4 = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) != 5) ? true : false
    isNav6 = ((navigator.appName == "Netscape" && parseInt(navigator.appVersion) == 5) || (navigator.userAgent.indexOf("Opera") != -1)) ? true : false
    isIE4  = ((navigator.appName.indexOf("Microsoft") != -1) && (navigator.userAgent.indexOf("Opera") == -1)) ? true : false
    isMac  = (navigator.platform.indexOf("Mac") != -1) ? true : false
}

var oldX, oldY, movingStatus, layerClicked, what;

function winDeal(what) {

    if (isNav4 || isNav6) {
        if (isNav6) {
            theObj = document.getElementById(what);
            if (theObj.style.visibility == "hidden" || theObj.style.visibility == "") {
                theObj.style.visibility = "visible";
            } else {
                theObj.style.visibility = "hidden";
            }
        }
    }
    else {
        if (document.all[what].style.visibility == "hidden" || document.all[what].style.visibility == "") {
            document.all[what].style.visibility = "visible";
        } else {
            document.all[what].style.visibility = "hidden";
        }
    }
}

// Handle MouseDown

function doDown(e) {

    // Calculate click position

    if (isNav4 || isNav6) {
        theTarget = e.target;
        xWin = e.pageX;
        yWin = e.pageY;
    }
    else {
        theTarget = window.event.srcElement;
        xWin = window.event.clientX + document.body.scrollLeft;
        yWin = window.event.clientY + document.body.scrollTop;
    }

    // Disable everything for Nav 4.

    if (theTarget.name && theTarget != "") {
        if (theTarget.name.indexOf("-icon") != -1 && !isNav4) {
            var index = theTarget.name.substring(3, theTarget.name.indexOf("-icon"));
            var entryInContest = entriesTable.elementAt(index);
            oid = entryInContest.getEntryOid();
            dbNode = entryInContest.getNodeName();
            if(entryInContest.getIsLandscape() == "true"){
                picSource = renderingHost + entryInContest.getImageSrc() + "/of=0,350,0";
           height = "120";
           width = "160";
            } else {
                picSource = renderingHost + entryInContest.getImageSrc() + "/of=0,0,350";
           height = "160";
           width = "120";
            }

            iconName = theTarget.name.substring(0,theTarget.name.indexOf("-"));

            // Initialize some stuff.

            layerClicked = "iconDrag";

            if (isNav6) {
                theLayer = document.getElementById(layerClicked);
                // alert("Layer: " + layerClicked + " Object: " + theLayer + " Left: " + theLayer.style.left);
            }

            // Establish the first click coordinate

            if (isNav4 || isNav6) {
                xCoord = e.layerX;
                yCoord = e.layerY;
            }
            else {
                if (isMac) {
                    xCoord = window.event.offsetX;
                    yCoord = window.event.offsetY;
                }
                else {
                    // On windows, the Y is not relative to page scroll, so compensate
                    xCoord = window.event.offsetX;
                    yCoord = window.event.offsetY + document.body.scrollTop;
                }
            }

            // Find out what button was pressed -- only drag if it's the left

            if (isNav4 || isNav6) {
                theButton = e.which;
            }
            else {
                theButton = event.button;
            }

            // If it's the left...

            if (theButton == 1) {

                // Set the Icon correctly

                if (isIE4) {
                    if (isMac) {
                        document.getElementById('dragImage').src = picSource;
                    }
                    else {
                        document.getElementById('dragImage').src = picSource;
                    }
                }
                if (isNav6) {
                    theObj = document.getElementById("dragImage");
                    theObj.setAttribute("src", picSource);


                    // Object's style.left can't be read until it is first set.
                    theLayer.style.left = xWin - 64;
                    theLayer.style.top = yWin - 64;
                }

                // Find where the DROPPER target is dynamically

    for(var i=0; i<numOfPrizes.length; i++)
    {
      var dropperY = new Array;
      var dropperX = new Array;
      var dropperWidth = new Array;
      var dropperHeight = new Array;
      var dropperArray = Vector.getInstance();
      for(var j=0; j<numOfPrizes[i]; j++)
      {
        dropperY[j] = 0;
	    dropperX[j] = 0;
	    dropperFind = document.getElementById("dropper"+i+"_"+j);
	    dropperWidth[j] = document.getElementById("dropper"+i+"_"+j).offsetWidth;
	    dropperHeight[j] = document.getElementById("dropper"+i+"_"+j).offsetHeight;

                    do {
            dropperY[j] += dropperFind.offsetTop;
            dropperX[j] += dropperFind.offsetLeft;

                        // alert(dropperY + " " + dropperX + " / " + dropperFind.offsetTop + " " + dropperFind.offsetLeft + " " + dropperFind.offsetHeight);

                    } while ( dropperFind = dropperFind.offsetParent )
        dropperY[j] += document.getElementById("dropper"+i+"_"+j).scrollTop;
        dropperX[j] += document.getElementById("dropper"+i+"_"+j).scrollLeft;
      }
      dropperArray.add(dropperY);
      dropperArray.add(dropperX);
      dropperArray.add(dropperWidth);
      dropperArray.add(dropperHeight);
      dropperH.put(i, dropperArray);
                }

                // alert(dropperY + " " + dropperX + " " + dropperWidth + " " + dropperHeight);

                // Start Drag

                movingStatus = "drag";

                // Initialize mouse tracking

                if (isNav4 || isNav6) {
                    document.captureEvents(Event.MOUSEMOVE);
                    if (isNav6) {
                        oldX = e.clientX;
                        oldY = e.clientY;
                        startX = parseInt(theLayer.style.left)
                        startY = parseInt(theLayer.style.top)
                        // alert(oldX + " and " + oldY + " and " + startX + " and " + startY);
                    }
                }
                else {
                    oldX=window.event.offsetX;
                    oldY=window.event.offsetY;
                }

                // Set the INITIAL drag icon layer to the mouse position
                // Also, get the initial mouse position

                if (isNav4 || isNav6) {
                    if (isNav4) {
                        // No code
                    }
                    if (isNav6) {
                        snapStartX = parseInt(theLayer.style.left);
                        snapStartY = parseInt(theLayer.style.top);
                    }
                }
                else {
                    if (isMac) {
                        document.all[layerClicked].style.pixelLeft = window.event.clientX - oldX;
                        document.all[layerClicked].style.pixelTop  = window.event.clientY - oldY;

                        snapStartX = document.all[layerClicked].style.pixelLeft;
                        snapStartY = document.all[layerClicked].style.pixelTop;

                    }
                    else {
                        document.all[layerClicked].style.pixelLeft = window.event.clientX - oldX;
                        document.all[layerClicked].style.pixelTop  = (window.event.clientY - oldY) + document.body.scrollTop;

                        snapStartX = document.all[layerClicked].style.pixelLeft;
                        snapStartY = document.all[layerClicked].style.pixelTop;
                    }
                }

                layerShowing = "false";

                document.onmousemove = drag;

                return false;
            }
        }
    }
}

function drag(e) {

    if (movingStatus == "drag") {
        // window.status = "Dragging...";

        // First, is the window still hidden? If so, show it.


        if (layerShowing == "false") {
            winDeal(layerClicked);
            layerShowing = "true";
        }

        // Actually move the layer

        if (isNav4 || isNav6) {
            if (isNav6) {
                // Nav6: Track the difference, and add the starting position to it
                theLayer.style.left = startX + e.clientX - oldX;
                theLayer.style.top = startY + e.clientY - oldY;
                // window.status = "Drag On! " + startX + " / " + startY + " - " + e.pageX + " / " + e.pageY + " - " + oldX + " / " + oldY + " - " + theLayer.style.left + " / " + theLayer.style.top;
            }
        }
        else {
            if (isMac) {
                document.all[layerClicked].style.pixelLeft = window.event.clientX - oldX;
                document.all[layerClicked].style.pixelTop  = window.event.clientY - oldY;
                // window.status = "Drag On: " + window.event.clientX + " / " + window.event.clientY + " - " + oldX + " / " + oldY;
            }
            else {
                // On windows, the Y is fixed not relative to page scroll, so compensate
                document.all[layerClicked].style.pixelLeft = window.event.clientX - oldX;
                document.all[layerClicked].style.pixelTop  = (window.event.clientY - oldY) + document.body.scrollTop;
            }
        }

        // Is the mouse over the dropper? If so, highlight it.

        if (isNav6) {
            currentX = e.pageX + document.getElementById("dropperDiv").scrollLeft;
            currentY = e.pageY + document.getElementById("dropperDiv").scrollTop;
        }
        if (isIE4) {
            currentX = window.event.clientX + document.body.scrollLeft + document.getElementById("dropperDiv").scrollLeft;
            currentY = window.event.clientY + document.body.scrollTop + document.getElementById("dropperDiv").scrollTop;
        }

        //window.status = "Drag! " + currentX + "/" + currentY + " - " + dropperX + "/" + dropperY + " - " + dropperWidth + "x" + dropperHeight;
    return false;
  }
}

function doUp(e)
{
  if (movingStatus == "drag")
  {

    // Did the user simply click the link? If so, take them where they want to go
    for(var i=0; i<numOfPrizes.length; i++)
    {
      if(numOfPrizes[i] > 0){
      if(document.getElementById("dropperDiv_"+0) == null){
        if(i == 1){
          currentX = currentX + document.getElementById("dropperDiv_"+i).scrollLeft;
          currentY = currentY + document.getElementById("dropperDiv_"+i).scrollTop;
                }
        else{
          currentX = currentX - document.getElementById("dropperDiv_"+(i-1)).scrollLeft + document.getElementById("dropperDiv_"+i).scrollLeft;
          currentY = currentY - document.getElementById("dropperDiv_"+(i-1)).scrollTop + document.getElementById("dropperDiv_"+i).scrollTop;
        }
            }
            else {
        if(i == 0){
          currentX = currentX + document.getElementById("dropperDiv_"+i).scrollLeft;
          currentY = currentY + document.getElementById("dropperDiv_"+i).scrollTop;
                }
        else{
          currentX = currentX - document.getElementById("dropperDiv_"+(i-1)).scrollLeft + document.getElementById("dropperDiv_"+i).scrollLeft;
          currentY = currentY - document.getElementById("dropperDiv_"+(i-1)).scrollTop + document.getElementById("dropperDiv_"+i).scrollTop;
            }
        }
      currentDropperY = 0;
	  currentDropperX = 0;
      if(document.getElementById("dropperDiv_"+i) == null){
        currentDropperFind = 
  	    currentDropperWidth = 0
  	    currentDropperHeight = 0
    }
      else{
        currentDropperFind = document.getElementById("dropperDiv_"+i);
  	    currentDropperWidth = document.getElementById("dropperDiv_"+i).offsetWidth;
  	    currentDropperHeight = document.getElementById("dropperDiv_"+i).offsetHeight;
}

      do {
        currentDropperY += currentDropperFind.offsetTop;
        currentDropperX += currentDropperFind.offsetLeft;

        //alert(dropperY + " " + dropperX + " / " + dropperFind.offsetTop + " " + dropperFind.offsetLeft + " " + dropperFind.offsetHeight);

      } while ( currentDropperFind = currentDropperFind.offsetParent )
      currentDropperY += document.getElementById("dropperDiv_"+i).scrollTop;
      currentDropperX += document.getElementById("dropperDiv_"+i).scrollLeft;

      if ((currentX > currentDropperX && currentX < (currentDropperX + currentDropperWidth)) && (currentY > currentDropperY && currentY < (currentDropperY + currentDropperHeight))){
      var dropperY = new Array;
      var dropperX = new Array;
      var dropperWidth = new Array;
      var dropperHeight = new Array;
      var dropperArray = Vector.getInstance();
      dropperArray = dropperH.get(i);
      dropperY = dropperArray.elementAt(0);
      dropperX = dropperArray.elementAt(1);
      dropperWidth = dropperArray.elementAt(2);
      dropperHeight = dropperArray.elementAt(3);

      for(var j=0; j<numOfPrizes[i]; j++)
      {
        if ((currentX > dropperX[j] && currentX < (dropperX[j] + dropperWidth[j])) && (currentY > dropperY[j] && currentY < (dropperY[j] + dropperHeight[j])))
        {
          var tempFlag1 = -1;
          var tempFlag2 = -1;
          var confirmValue;
          var alertValue = true;
          for(var i1=0; i1<numOfPrizes.length; i1++)
          {
            for(var i2=0; i2<numOfPrizes[i1]; i2++)
            {
              if(document.getElementById("prize"+i1+"_"+i2).value == oid)
              {
                if(i1 != i)
                {
                  tempFlag1 = i1;
                  tempFlag2 = i2;
                  var msg1 = "";
                  masg2 = i;
                  if(tempFlag1 == 0){
                    msg1 = "Honorable Mention"
                }
                  else{
                    msg1 = "Prize No: "+tempFlag1;
            }
                  if(i == 0){
                    msg2 = "Honorable Mention"
        }
        else {
                    msg2 = "Prize No: "+i;
                }
                  confirmValue = confirm("This picture has already been selected for "+msg1+ ".\n\r\n\rClick 'ok' to change it to "+msg2+".\r\n\r\nClick 'cancel' to retain the previous Place");
            }
                else if(i2 != j)
                {
                  if(i == 0){
                    msg3 = "Honorable Mention"
        }
                  else{
                    msg3 = "Prize No: "+i;
        }
                  alert("This picture has already been selected for "+msg3);
                  alertValue = false;
                        }
                    }
                }
                }

          if(confirmValue != null)
          {
            if(confirmValue)
            {
              if (isIE4 || isNav6)
              {
                removeBlur = document.getElementById("prize"+i+"_"+j).value;
                for(var iterate=0; iterate<15 && iterate<entriesTable.size(); iterate++)
                {
                                var entry = entriesTable.elementAt(iterate);
                  if(entry.getEntryOid() == removeBlur)
                  {
                    if (isIE4)
                    {
                                        document.getElementById("pic"+iterate+"-icon").style.filter = 'alpha(style=0, opacity=100)';
                                    }
                    else
                    {
                                        document.getElementById("pic"+iterate+"-icon").style.opacity = "1.0";
                                    }
                                }
                            }

                document.getElementById("dropper"+tempFlag1+"_"+tempFlag2).src = greyBox;
                document.getElementById("prize"+tempFlag1+"_"+tempFlag2).value = "";
                document.getElementById("prize_db"+tempFlag1+"_"+tempFlag2).value = "";
                document.getElementById("dropper"+tempFlag1+"_"+tempFlag2).height = "120";
                document.getElementById("dropper"+tempFlag1+"_"+tempFlag2).width = "160";

                document.getElementById("dropper"+i+"_"+j).src = picSource;
                document.getElementById("prize"+i+"_"+j).value = oid;
                document.getElementById("prize_db"+i+"_"+j).value = dbNode;
                document.getElementById("dropper"+i+"_"+j).height = height;
                document.getElementById("dropper"+i+"_"+j).width = width;

                        }
                    }
                }
          else if(alertValue)
          {
            if (isIE4 || isNav6)
            {
              removeBlur = document.getElementById("prize"+i+"_"+j).value;
              for(var iterate=0; iterate<15 && iterate<entriesTable.size(); iterate++)
              {
                            var entry = entriesTable.elementAt(iterate);
                if(entry.getEntryOid() == removeBlur)
                {
                  if (isIE4)
                  {
                                    document.getElementById("pic"+iterate+"-icon").style.filter = 'alpha(style=0, opacity=100)';
                                }
                  else
                  {
                                    document.getElementById("pic"+iterate+"-icon").style.opacity = "1.0";
                                }
                            }
                        }

              document.getElementById("dropper"+i+"_"+j).src = picSource;
              document.getElementById("prize"+i+"_"+j).value = oid;
              document.getElementById("prize_db"+i+"_"+j).value = dbNode;
              document.getElementById("dropper"+i+"_"+j).height = height;
              document.getElementById("dropper"+i+"_"+j).width = width;
                    }
            if (isIE4)
            {
                        theTarget.style.filter='alpha(style=0, opacity=50)';
                    }
            else
            {
                        theTarget.style.opacity = "0.5";
                    }
                }


        }
      }
      }
      }
    }

    if (isNav6) {
       if (oldX == e.clientX && oldY == e.clientY) {
          if (layerShowing == "true") {
            layerShowing = "false";
            winDeal(layerClicked);
          }
          document.onmousemove = null;
          return false;
       }
    }
    else {
       if (oldX == window.event.offsetX && oldY == window.event.offsetY) {
          if (layerShowing == "true") {
            layerShowing = "false";
            winDeal(layerClicked);
          }
          document.onmousemove = null;
          return false;
       }
    }
    // Drag has ended. Tear down all drag events.

    // window.status = "Drag stop.";
    movingStatus = "false";
    document.onmousemove = null;
    if (isNav4) {
      document.releaseEvents(Event.MOUSEMOVE);
            }

    // Did the icon reach the drag target?
    // Yes!!

    // Return click.
    document.getElementById('dragImage').src = spacer;
    if (isNav4 || isNav6)
    {
      if (isNav6)
      {
                    snapEndX = parseInt(theLayer.style.left);
                    snapEndY = parseInt(theLayer.style.top);
                }

                snapSteps = 5;
                snapTimer = 10;

                snapCurrent = 0;

                snapStepX = (snapEndX - snapStartX) * ((1 - 0.9) / (1 - Math.pow(0.9,snapSteps)));
                snapStepY = (snapEndY - snapStartY) * ((1 - 0.9) / (1 - Math.pow(0.9,snapSteps)));

                myTimer = setTimeout("snapBack()", snapTimer);
            }
    else
    {
                snapEndX = document.all[layerClicked].style.pixelLeft;
                snapEndY = document.all[layerClicked].style.pixelTop;
                snapSteps = 12;
                snapTimer = 10;
                snapCurrent = 0;
                snapStepX = (snapEndX - snapStartX) * ((1 - 0.9) / (1 - Math.pow(0.9,snapSteps)));
                snapStepY = (snapEndY - snapStartY) * ((1 - 0.9) / (1 - Math.pow(0.9,snapSteps)));
                myTimer = setTimeout("snapBack()", snapTimer);
        }

        return false;
    }
}

if (isNav4) {
    document.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);
}

document.onmousedown=doDown;
document.onmouseup=doUp;

// Snap Back Animation

function snapBack() {
    snapCurrent++;
    // window.status = "Snap Back Step #" + snapCurrent + " (move by " + snapStepX + " / " + snapStepY + ")";

    snapStepX = snapStepX * 0.9;
    snapStepY = snapStepY * 0.9;

    if (isNav4 || isNav6) {
        if (isNav4) {
        }
        if (isNav6) {
            theLayer.style.left = parseInt(theLayer.style.left) - snapStepX;
            theLayer.style.top = parseInt(theLayer.style.top) - snapStepY;
        }
    }
    else {
        document.all[layerClicked].style.pixelLeft = document.all[layerClicked].style.pixelLeft - snapStepX;
        document.all[layerClicked].style.pixelTop = document.all[layerClicked].style.pixelTop - snapStepY;
    }

    if (snapCurrent == snapSteps) {
        clearTimeout(myTimer);
        // window.status = "Snap complete.";
        winDeal(layerClicked);
        layerShowing = "false";
    }
    else {
        myTimer = setTimeout("snapBack()", snapTimer);
    }
}

// to position the pop-up in multi picture view pages

function positionWindow(dynDiv,e)
{
    var x=0;
    var y=0;

    var aHeight = document.body.clientHeight;
    var aWidth =  document.body.clientWidth;
    //Assign your popup width and height for these variables
    //TODO: need a better way to assign these values.
    var cWidth = 320;
    var cHeight = 120;

    if (!e) e = window.event;
    if (e.pageX || e.pageY)
    {
        x = e.pageX;
        y = e.pageY;
    }
    else if (e.clientX || e.clientY)
    {
        x = e.clientX;
        y = e.clientY;
        if (isIE)
        {
            x += document.body.scrollLeft;
            y += document.body.scrollTop;
        }
    }
    aWidth += document.body.scrollLeft;
    aHeight += document.body.scrollTop;

    if(((aWidth - x) >= cWidth) && ((aHeight - y)  >= cHeight))
    {
        dynDiv.style.left=x;
        dynDiv.style.top=y;
    }
    else
    {
        if( (aWidth -x) >= cWidth ){
            //we have enough width but not the height
            dynDiv.style.left = x;
            dynDiv.style.top = y-cHeight;
        }else if ( (aHeight - y) >= cHeight ) {
            //we have enough Height but not Width
            dynDiv.style.left = x-cWidth;
            dynDiv.style.top = y;
        }else {
            //we don't have enough Height and Width
            dynDiv.style.left = x-cWidth;
            dynDiv.style.top = y-cHeight;
        }
    }
}



