<!--

var timer;
var i =0;
var youtubediv = new Array();
var voheight;
var vowidth;


function playVid(vidId,title) {
  if (vidPaneID.style.display=='block') {
    vidPaneID.style.display='none';
    vidPaneID.innerHTML=''; 
  } else {
    vidPaneID.style.display='block';
    vidPaneID.innerHTML='<A HREF="javascript:playVid()">CLOSE VIDEO</A>';
    var vidstring ='<center><embed enableJavascript="false" allowScriptAccess="never"';
    vidstring+=' allownetworking="internal" type="application/x-shockwave-flash"';
    vidstring+='  src="http://www.youtube.com/v/'+vidId+'&autoplay=1" ';
    vidstring+=' wmode="transparent" height="'+voheight+'" width="'+vowidth+'"></center>';
    vidstring+='** Portable Video Preview **<br>';
    vidstring+=title;
    vidPaneID.innerHTML+=vidstring;
    myform = window.document.submitvideoform;
    myform.code.value=vidId;
    myform.title.value=title;
  }
}

function moveHandler(e){      
  if (e == null) { e = window.event }
  if (e.button<=1&&dragOK){         
    savedTarget.style.left=e.clientX-dragXoffset+'px';
    savedTarget.style.top=e.clientY-dragYoffset+'px';
    return false;
  }   
}   

function cleanup(e) {
  document.onmousemove=null;
  document.onmouseup=null;
  savedTarget.style.cursor=orgCursor;
  dragOK=false;
}   

function dragHandler(e){
  var htype='-moz-grabbing';
  if (e == null) { e = window.event; htype='move';}
  var target = e.target != null ? e.target : e.srcElement;
  orgCursor=target.style.cursor;
  if (target.className=="vidFrame") {
    savedTarget=target;
    target.style.cursor=htype;
    dragOK=true;
    dragXoffset=e.clientX-parseInt(vidPaneID.style.left);
    dragYoffset=e.clientY-parseInt(vidPaneID.style.top);
    document.onmousemove=moveHandler;
    document.onmouseup=cleanup;
    return false;
  }
}

function decodeutf(utftext) {
  var resultstring = "";
  var i = 0;
  var c = c2 = c3 = 0;

  while ( i < utftext.length ) {
    c = utftext.charCodeAt(i);
    if (c < 224) {
      resultstring += String.fromCharCode(c);
      i++;
    } else {
      c2 = utftext.charCodeAt(i+1);
      c3 = utftext.charCodeAt(i+2);
      if (c3==8482) {
        resultstring += "&#39;";
      } else if (c3 == 339) {
        resultstring += "&#34;";
      } else if (c3 == 157) {
        resultstring += "&#34;";
      } else {
        resultstring += "&#32;";
      }
      i += 3;
    }
  }
  return resultstring;
}

function clearList(ul){
  var list = document.getElementById(ul);
  while (list.firstChild) {
    list.removeChild(list.firstChild);
  }		
}

function mousOverImage(name,id,nr){
  if(name)
    imname = name;
  imname.style.border = '1px solid #0000ff';
  imname.src = "http://img.youtube.com/vi/"+id+"/"+nr+".jpg";
  nr++;
  if(nr > 3)
    nr = 1;
  timer =  setTimeout("mousOverImage(false,'"+id+"',"+nr+");",1000);
}


function mouseOutImage(name){
  if(name)
    imname = name;
  imname.style.border = 	'1px solid #ffffff';
  if(timer)
    clearTimeout(timer)
}

function getVideoId(url){
  var match = url.lastIndexOf('=');
  if (match) {
    id = url.substring(match+1);
    return id;
  }
}

function getId(string){
  var match = string.lastIndexOf("'s Videos");
  if (match != -1) {
    id = string.substring(0,match);
    return id.toLowerCase();
  }
  var match = string.lastIndexOf("query");
  if (match != -1) {
    id = string.substring(match+7);
    return id.toLowerCase();
  }
}

function listVideos(json,divid) {
  divid.innerHTML = '';
  var totalResults = json.feed.openSearch$totalResults.$t;
  var searchStart = json.feed.openSearch$startIndex.$t;
  var searchItems = json.feed.openSearch$itemsPerPage.$t;
  var searchEnd = (parseInt(searchStart)+parseInt(searchItems)-1);
  var nextSearch = searchEnd+1;
  var prevSearch = (searchEnd - (parseInt(searchItems)*2))+1;
  var ul = document.createElement('ul');
  ul.setAttribute('id', 'youtubelist');
  var li = document.createElement('li');
  li.setAttribute('id', 'youtubebox');
  if (((parseInt(searchStart))>1) && (searchEnd < parseInt(totalResults))) {
    li.innerHTML = '<table cellspacing=0><tr><td style="border-bottom: 3px double #000000" align=left valign=middle><b>"'+searchTerms+'"</b> video results<b> '+searchStart+' to '+searchEnd+' </b> of about <b>'+totalResults+'</b></td><td style="border-bottom: 3px double #000000" align="right"><input style="font-size:80%" type="button" value="<<Back" onclick="insertVideos(\'youtubeDivSearch\',\'search\',\''+searchTerms+'\','+prevSearch+','+searchItems+','+inlineVideo+','+voheight+','+vowidth+');"/>   <input style="font-size:80%" type="button" value="Next>>" onclick="insertVideos(\'youtubeDivSearch\',\'search\',\''+searchTerms+'\','+nextSearch+','+searchItems+','+inlineVideo+');"/></td></tr></table>';       
  }else if (searchEnd >= (parseInt(totalResults))){
    li.innerHTML = '<table cellspacing=0><tr><td style="border-bottom: 3px double #000000" align=left valign=middle><b>"'+searchTerms+'"</b> video results<b> '+searchStart+' to '+totalResults+' </b> of about <b>'+totalResults+'</b></td><td style="border-bottom: 3px double #000000" align="right"><input style="font-size:80%" type="button" value="<<Back" onclick="insertVideos(\'youtubeDivSearch\',\'search\',\''+searchTerms+'\','+prevSearch+','+searchItems+','+inlineVideo+','+voheight+','+vowidth+');"/></td></tr></table>';       
  }else{
    li.innerHTML = '<table cellspacing=0><tr><td style="border-bottom: 3px double #000000" align=left valign=middle><b>"'+searchTerms+'"</b> video results<b> '+searchStart+' to '+searchEnd+' </b> of about <b>'+totalResults+'</b></td><td style="border-bottom: 3px double #000000" align="right"><input style="font-size:80%" type="button" value="Next>>" onclick="insertVideos(\'youtubeDivSearch\',\'search\',\''+searchTerms+'\','+nextSearch+','+searchItems+','+inlineVideo+','+voheight+','+vowidth+');"/></td></tr></table>'; 
  }
  ul.appendChild(li);
    
  if(json.feed.entry){
    for (var i = 0; i < json.feed.entry.length; i++) {
      var entry = json.feed.entry[i];
      for (var k = 0; k < entry.link.length; k++) {
        if (entry.link[k].rel == 'alternate') {
          url = entry.link[k].href;
          break;
        }
      }
      var thumb = entry['media$group']['media$thumbnail'][1].url;
      var li = document.createElement('li');
      var videotitle = entry.title.$t;
      var vtitle = videotitle.split("\'").join("\\'");
      vtitle = escape(vtitle); 
      videotitle = videotitle.split("\'").join("&#39;");
      videotitle = videotitle.split("\"").join("&#34;");
      var ytauthor = entry.author[0].name.$t;
      ytauthor = ytauthor.split("\'").join("&#39;");
      ytauthor = ytauthor.split("\"").join("&#34;");
      li.setAttribute('id', 'youtubebox');
      
      if (inlineVideo == 1) {
        // Thumbnail Only Search Results Display
        li.innerHTML = '<a href="javascript:playVid(\''+getVideoId(url)+'\',\''+vtitle+'\');"><img src="'+thumb+'" id="youtubethumb" alt="'+vtitle+'" title="'+vtitle+'"  onmouseout="mouseOutImage(this)" onmouseover="mousOverImage(this,\''+getVideoId(url)+'\',2)"></a>';
      } else {
        var youtubedescription = entry['media$group']['media$description'].$t;
        youtubedescription = youtubedescription.split("\'").join("&#39;");
        youtubedescription = youtubedescription.split("\"").join("&#34;");
        var youtubeviews = entry['yt$statistics'].viewCount;
        var youtubeduration = entry['media$group']['yt$duration'].seconds;
        var youtubepublished = entry.published.$t;
        youtubepublished = youtubepublished.split("T");
        var youtubepublisheddate = youtubepublished[0];
        var youtubepublished2 = youtubepublished[1];
        youtubepublished2 = youtubepublished2.split("-");
        var youtubepublishedtime = youtubepublished2[0];

        // Expanded Search Results Display
        li.innerHTML = '<table><tr><td width=125px align=center valign=middle style="border: 1px solid #ffffff"><a href="javascript:playVid(\''+getVideoId(url)+'\',\''+vtitle+'\');"><img src="'+thumb+'" id="youtubethumb" alt="'+videotitle+'" title="'+videotitle+'"  onmouseout="mouseOutImage(this)" onmouseover="mousOverImage(this,\''+getVideoId(url)+'\',2)"></a></td><td align=left valign=top style="border: 1px solid #ffffff"><b>Title:</b> '+videotitle+'<br><b>Description:</b> '+youtubedescription+'<br><b>YouTube Author:</b> '+ytauthor+'<br><b>YouTube Views:</b> '+youtubeviews+'<br><b>Video Duration(sec):</b> '+youtubeduration+'<br><b>YouTube Publish Date:</b> '+youtubepublisheddate+'<br><b>YouTube Publish Time:</b> '+youtubepublishedtime+'</td></tr></table>';
      }
      ul.appendChild(li);
    }
  }else{
  	divid.innerHTML = 'No Results Found';
  }
  document.getElementById(divid).appendChild(ul);
}

function youtubeInit(root) {
  id = getId(root.feed.title.$t);
  listVideos(root, youtubediv[id]);
}

function insertVideos(div,typ,q,startindex,results,overlay,vsoheight,vsowidth){
  inlineVideo = overlay;
  searchTerms = q;
  voheight = vsoheight;
  vowidth = vsowidth;
  youtubediv[q.toLowerCase()] = div;
  clearList(div);
  var script = document.createElement('script');
  if(typ == "search")
    script.setAttribute('src', 'http://gdata.youtube.com/feeds/videos?vq='+q+'&start-index='+startindex+'&max-results='+results+'&format=5&alt=json-in-script&callback=youtubeInit');
  script.setAttribute('id', 'jsonScript');
  script.setAttribute('type', 'text/javascript');
  document.documentElement.firstChild.appendChild(script);
}

document.onmousedown=dragHandler;

//-->
