var videoFeedUrl = "http://gdata.youtube.com/feeds/api/videos";
var standardVideoFeedUrl = "http://gdata.youtube.com/feeds/api/standardfeeds/";
var MAX_LENGTH_TAGS = 120;
//var MUSIC_BOX_TEMPLATE_ID = "m//150307/1120543/studio";

function getYTFeed(responseFunction, query, category, orderby, time, standard, maxResults) {
    var data = "alt=json-in-script&callback=" + responseFunction;
    if (query) 
        data += "&vq=" + query;
    if (category) 
        data += "&category=" + category;        
    if (orderby) 
        data += "&orderby=" + orderby;        
    if (time) 
        data += "&time=" + time;        
    if (maxResults) 
        data += "&max-results=" + maxResults;        

    var url;
    if (standard) 
        url = standardVideoFeedUrl + standard + "?" + data;
    else
        url = videoFeedUrl + "?" + data + "&format=5";
    createScript(url);
}

function doYTGalleryResponse(dataFeed) {
    var dataArr = videoFeedToArray(dataFeed);
    var divArray = doDivSketch(dataArr, gallery.galType);
    doGalleryTable(divArray, gallery.pageNum, gallery.quantityToShow, dataArr.length, gallery.pagingType, gallery.colsNum, gallery.divName, gallery.pagingFunc, gallery.moreUrl);
}

function videoFeedToArray(data) {
    var dataArray = new Array();
    var feed = data.feed;
    var entries = feed.entry || [];
    for (var i = 0; i < entries.length; i++) {
        var entry = entries[i];
        var obj = new myObj();
        obj.id = parseVideoId(entry.id.$t);
        obj.img = entry.media$group.media$thumbnail[0].url;
        obj.title = entry.title.$t.substr(0, 20);
        obj.creator = entry.author[0].name.$t;
        var published = DDMMYY(entry.published.$t);
        obj.createdDay = published;
        obj.addedDay = published;
        obj.views = entry.yt$statistics.viewCount;
        var duration = secsToMins(entry.media$group.yt$duration.seconds);
        obj.duration = duration;
        obj.gaHitString = gallery.hitGA;
        obj.rating = 0 + i;
        if (gallery.imgUrl != null && gallery.imgUrl != "")
            obj.imgUrl = "javascript:" + gallery.imgUrl + "('" + templateId + "','" + obj.id + "')";
        else
            obj.imgUrl = "studioPage.jsp?partner="+partner+"&scene="+templateId+"&externalFeed=YouTube,"+obj.id+",mainVideo";
        if (gallery.butUrl != null && gallery.butUrl != "")
            obj.butUrl = "javascript:" + gallery.butUrl + "('" + templateId + "','" + obj.id + "')";
        else
            obj.butUrl = "studioPage.jsp?partner="+partner+"&scene="+templateId+"&externalFeed=YouTube,"+obj.id+",mainVideo";
        obj.popTempStar = 20 + i;
        dataArray[i]=obj;
        
    }
    return dataArray;
}

function useYTVideoFunc(templateId, videoId) {
     thisMovie("studio").externalItemSelected(templateId, "YouTube,"+videoId+",mainVideo");
     hideDiv('transitionDiv');
     hideDiv('dimDiv');
}
    

function parseVideoId(videoId) {
    videoId = videoId.substr(videoId.lastIndexOf("/")+1, videoId.length);
    return videoId;
}

function secsToMins(allSeconds) {
    var mins = Math.floor(allSeconds/60);
    var seconds = allSeconds - (mins * 60);
    if (seconds < 10)
        seconds = "0" + seconds;
    var duration = mins + ":" + seconds;
    return duration;
}

function loadVideo(playerUrl, autoplay) {
  swfobject.embedSWF(
      playerUrl + '&rel=1&border=0&fs=1&autoplay=' + 
      (autoplay?1:0), 'player', '290', '250', '9.0.0', false, 
      false, {allowfullscreen: 'true'});
}

function showMyVideos(data) {
  var feed = data.feed;
  var entries = feed.entry || [];
  var html = ['<ul class="videos">'];
  for (var i = 0; i < entries.length; i++) {
    var entry = entries[i];
    var title = entry.title.$t.substr(0, 20);
    var thumbnailUrl = entries[i].media$group.media$thumbnail[0].url;
    var playerUrl = entries[i].media$group.media$content[0].url;
    html.push('<li onclick="loadVideo(\'', playerUrl, '\', true)">',
              '<span class="titlec">', title, '...</span><br /><img src="', 
              thumbnailUrl, '" width="130" height="97"/>', '</span></li>');
  }
  html.push('</ul><br style="clear: left;"/>');
  document.getElementById('videos2').innerHTML = html.join('');
  if (entries.length > 0) {
    loadVideo(entries[0].media$group.media$content[0].url, false);
  }
}

function validateUploadForm(formObj) {
    var videoTitle = formObj.title.value;
    var videoDesc = fixText(formObj.desc.value);
    var videoTags = fixTagString(fixText(new String(formObj.tags.value)));
    var videoCategory = formObj.category.value;

    var errDiv = document.getElementById("errDiv");

    if (videoTitle == null || videoTitle.length == 0) {
        errDiv.innerHTML = "Please type title";
        formObj.title.focus();
        return false;
    } else if (videoTitle.length > 120) {
        errDiv.innerHTML = "Title may not exceed 60 characters.";
        formObj.title.focus();
        return false;
    } else if (videoTitle != "") {
        if (videoTitle.indexOf("<") > 0 || videoTitle.indexOf(">") > 0) {
           errDiv.innerHTML = "Title may not contain '<' or '>' characters.";
           formObj.title.focus();
           return false;
        }
    }
    if (videoDesc == null || videoDesc.length == 0) {
        errDiv.innerHTML = "Please type description";
        formObj.desc.focus();
        return false;
    } else if (videoDesc.length > 5000) {
        errDiv.innerHTML = "Description may not exceed 5000 characters.";
        formObj.desc.focus();
        return false;
    } else if (videoDesc != "") {
        if (videoDesc.indexOf("<") > 0 || videoDesc.indexOf(">") > 0) {
           errDiv.innerHTML = "Description may not contain '<' or '>' characters.";
           formObj.desc.focus();
           return false;
        }
    }
    if (videoCategory == null || videoCategory.length == 0) {
        errDiv.innerHTML = "Please select a category";
        formObj.category.focus();
        return false;
    } else if (videoCategory != "") {
        if (videoCategory.indexOf("<") > 0 || videoCategory.indexOf(">") > 0) {
           errDiv.innerHTML = "Category may not contain '<' or '>' characters.";
           formObj.category.focus();
           return false;
        }
    }

    var videoTagsDecoded = Encoder.decode(videoTags);
    if (videoTagsDecoded == null || videoTagsDecoded.length == 0) {
        errDiv.innerHTML = "Please type tags";
        formObj.tags.focus();
        return false;
    } else if (videoTagsDecoded.length > MAX_LENGTH_TAGS) {
        errDiv.innerHTML = "Tags may not exceed "+ MAX_LENGTH_TAGS + " characters.";
        formObj.tags.focus();
        return false;
    } else if (videoTagsDecoded != "") {
        var tempArr = videoTagsDecoded.split(",");
        for (i=0; (i < tempArr.length); i++) { 
            if (tempArr[i] != "" && tempArr[i] != null) {
                if(tempArr[i].length < 2 || tempArr[i].length > 25) {
                   errDiv.innerHTML = "Tag has to be 2 to 25 characters.";
                   formObj.tags.focus();
                   return false;
                }
            }
        }
        if (videoTagsDecoded.indexOf("<") > 0 || videoTagsDecoded.indexOf(">") > 0) {
           errDiv.innerHTML = "Tags may not contain '<' or '>' characters.";
           formObj.tags.focus();
           return false;
        }
    }
}
