Server IP : 180.180.241.3 / Your IP : 216.73.216.252 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/news/administrator/components/com_youtubegallery/views/linksform/tmpl/ |
Upload File : |
/* * YoutubeGallery for Joomla! * @version 3.8.3 * @author DesignCompass corp< <support@joomlaboat.com> * @link http://www.joomlaboat.com * @GNU General Public License */ var videolist_textarea= ''; function SwithTabs(nameprefix, count, activeindex) { for(i=0;i<count;i++) { var obj=document.getElementById(nameprefix+i); obj.style.display="none"; } var obj=document.getElementById(nameprefix+activeindex); obj.style.display="block"; } var channels_youtube=new Array('youtubeuseruploads','youtubestandard','youtubeplaylist','youtubeuserfavorites','youtubesearch','youtubeshow*','youtubeshow'); var channels_other=new Array('vimeouservideos','vimeochannel','vimeoalbum','dailymotionplaylist'); var channels_vimeo=new Array('vimeouservideos','vimeochannel','vimeoalbum'); var single_videos=new Array('youtube','vimeo','own3dtvlive','own3dtvvideo','google','yahoo','break','collegehumor','dailymotion','presentme','ustream','ustreamlive','soundcloud','.flv'); var channels_youtube_title=new Array('Youtube User Uploads','Youtube Standard Feed','Youtube Playlist','Youtube User Favorites','Youtube Search','Youtube Show','Youtube Show'); var channels_other_title=new Array('Vimeo User Uploads','Vimeo Channel','Vimeo Album','Dailymotion Playlist'); var single_videos_title=new Array('Youtube','Vimeo','Own3DtvLive','Own3dtvVideo','Google','Yahoo','Break','CollegeHumor','Dailymotion','Present.me','UStream Recorded','UStream Live','SoundCloud','.flv file'); function YGGetTypeTitle(link_type) { for (var i = 0; i < channels_youtube.length; i++) { if (channels_youtube[i] === link_type) return channels_youtube_title[i]; } for (var i = 0; i < channels_other.length; i++) { if (channels_other[i] === link_type) return channels_other_title[i]; } for (var i = 0; i < single_videos.length; i++) { if (single_videos[i] === link_type) return single_videos_title[i]; } return 'Unidentified'; } function YGgetVideoSourceName(link) { if(link.indexOf("://youtube.com")!=-1 || link.indexOf('://www.youtube.com')!=-1) { if(link.indexOf('/playlist')!=-1) return 'youtubeplaylist'; else if(link.indexOf('/favorites')!=-1) return 'youtubeuserfavorites'; else if(link.indexOf('/user')!=-1) return 'youtubeuseruploads'; else if(link.indexOf('/results')!=-1) return 'youtubesearch'; else if(link.indexOf('://www.youtube.com/show/')!=-1) return 'youtubeshow*'; else return 'youtube'; } if(link.indexOf('://youtu.be')!=-1 || link.indexOf('://www.youtu.be')!=-1) return 'youtube'; if(link.indexOf('youtubestandard:')!=-1) return 'youtubestandard'; if(link.indexOf('videolist:')!=-1) return 'videolist'; if(link.indexOf('://vimeo.com/user')!=-1 || link.indexOf('://www.vimeo.com/user')!=-1) return 'vimeouservideos'; else if(link.indexOf('://vimeo.com/channels/')!=-1 || link.indexOf('://www.vimeo.com/channels/')!=-1) return 'vimeochannel'; else if(link.indexOf('://vimeo.com/album/')!=-1 || link.indexOf('://www.vimeo.com/album/')!=-1) return 'vimeoalbum'; else if(link.indexOf('://vimeo.com')!=-1 || link.indexOf('://www.vimeo.com')!=-1) return 'vimeo'; //return 'vimeo*friendlylink'; if(link.indexOf('://own3d.tv/l/')!=-1 || link.indexOf('://www.own3d.tv/l/')!=-1) return 'own3dtvlive'; if(link.indexOf('://own3d.tv/v/')!=-1 || link.indexOf('://www.own3d.tv/v/')!=-1) return 'own3dtvvideo'; if(link.indexOf('video.google.com')!=-1) return 'google'; if(link.indexOf('video.yahoo.com')!=-1) return 'yahoo'; if(link.indexOf('://break.com')!=-1 || link.indexOf('://www.break.com')!=-1) return 'break'; if(link.indexOf('://collegehumor.com')!=-1 || link.indexOf('://www.collegehumor.com')!=-1) return 'collegehumor'; //http://www.dailymotion.com/playlist/x1crql_BigCatRescue_funny-action-big-cats/1#video=x7k9rx if(link.indexOf('://dailymotion.com/playlist/')!=-1 || link.indexOf('://www.dailymotion.com/playlist/')!=-1) return 'dailymotionplaylist'; if(link.indexOf('://dailymotion.com')!=-1 || link.indexOf('://www.dailymotion.com')!=-1) return 'dailymotion'; if(link.indexOf('://present.me')!=-1 || link.indexOf('://www.present.me')!=-1) return 'presentme'; if(link.indexOf('://ustream.tv/recorded/')!=-1 || link.indexOf('://www.ustream.tv/recorded/')!=-1) return 'ustream'; if(link.indexOf('://ustream.tv/channel/')!=-1 || link.indexOf('://www.ustream.tv/channel/')!=-1) return 'ustreamlive'; //http://api.soundcloud.com/tracks/49931.json - accepts only resolved links if(link.indexOf('://api.soundcloud.com/tracks/')!=-1 ) return 'soundcloud'; //https://soundcloud.com/newyfreshmusic/katy-perry-dark-horse-ft-juicy if(link.indexOf('://soundcloud.com')!=-1 || link.indexOf('://www.soundcloud.com')!=-1) return 'soundcloud*'; if(link.toLowerCase().indexOf('.flv')!=-1) return '.flv'; return ''; } function YGAddFormatedLink(isSingle,link,editIndex) { var obj_source=document.getElementById(videolist_textarea); var osv=obj_source.value; if(editIndex!=-1) { var lines = obj_source.value.split(/\r\n|\r|\n/g); var newList=''; for(i=0;i<lines.length;i++) { if(i==editIndex) { if(newList!='') newList+="\r\n"; newList+=link; } else { if(newList!='') newList+="\r\n"; newList+=lines[i]; } } obj_source.value=newList; YGUpdatelinksTable(); return true; } else { if(isSingle) { obj_source.value=obj_source.value+"\r\n"+link; YGUpdatelinksTable(); return true; } else { if(osv.indexOf(link)==-1) { var v=obj_source.value; if(v!='') v+="\r\n"; obj_source.value=v+link; YGUpdatelinksTable(); return true; } else alert("This link is already in the list."); } } return false; } function YGgetValueOfParameter(r,p) { var i=r.indexOf(p); if(i==-1) return false; var a=r.indexOf('"',i+p.length); if(a==-1) return false; return r.substring(i,a-i); } function YGLoadListOfSeasons(showId) { var xmlHttp = new XMLHttpRequest(); var max_results=10; var start_index=1; var Seasons=new Array(); var p='.'; YGShadeOn(true); YGAddShadowLabel("Requesting list of seasons."); while (1<5) { p+='.'; url='components/com_youtubegallery/views/linksform/tmpl/requests.php?task=getyoutubeseasonsbyshowid&showid='+showId+'&max-results='+max_results+'&start-index='+start_index; //alert(url); xmlHttp.open( "GET", url, false); xmlHttp.send(null); var r=xmlHttp.responseText; if(r.indexOf('[{"')==-1) { /* alert("error: "+r); YGRemoveShadowLabel(); YGShadeOn(false); return false; */ break; } list = JSON && JSON.parse(r) || $.parseJSON(r); //alert("count="+list.length); if(list.length==0) break; for(i=0;i<list.length;i++) { Seasons[Seasons.length]=list[i]; //alert("season="+list[i].id); } start_index+=max_results; YGRemoveShadowLabel(); YGAddShadowLabel("Requesting list of seasons."+p); } YGRemoveShadowLabel(); YGShadeOn(false); return Seasons; } function YGResolveYoutubeShowLink(link) { //link='http://soundcloud.com/official-p-nk/try'; //link='http://j30a.joomlaboat.com/administrator/index.php'; //http://www.youtube.com/show/nammalthammil link=link.replace('https://', 'http://'); YGShadeOn(true); YGAddShadowLabel("Resolving Youtube Show link (User ID)..."); var url='components/com_youtubegallery/views/linksform/tmpl/requests.php?task=getyoutubeshowowner&link='+link; //get user id var xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", url, false); xmlHttp.send(null); var r=xmlHttp.responseText; if(r.indexOf('{"')==-1) { alert(r); YGRemoveShadowLabel(); YGShadeOn(false); return false; } var obj = JSON && JSON.parse(r) || $.parseJSON(r); //get list of shows var list; var max_results=10; var start_index=1; var showId=''; var p='.'; YGRemoveShadowLabel(); YGAddShadowLabel("Owner found `"+obj.username+"`"); while (1<5) { p+='.'; url='components/com_youtubegallery/views/linksform/tmpl/requests.php?task=getyoutubeshowsbyowner&owner='+obj.username+'&max-results='+max_results+'&start-index='+start_index; //alert(url); xmlHttp.open( "GET", url, false); xmlHttp.send(null); var r=xmlHttp.responseText; if(r.indexOf('[{"')==-1) { /* alert(r); YGRemoveShadowLabel(); YGShadeOn(false); return false; */ break; } list = JSON && JSON.parse(r) || $.parseJSON(r); //alert("count="+list.length); if(list.length==0) break; for(i=0;i<list.length;i++) { var a=list[i]; if(a.link[0]==link) { showId=a.id[0]; break; } } if(showId!='') break; start_index+=max_results; YGRemoveShadowLabel(); YGAddShadowLabel("Looking for Show ID"+p); } var pair=showId.split(':'); if(pair.length!=4) { alert('Connection problem. Try again.'); YGRemoveShadowLabel(); YGShadeOn(false); return false; } showId=pair[3]; //Get List Of Seasons ----------------------------------------- YGRemoveShadowLabel(); YGShadeOn(false); Seasons=YGLoadListOfSeasons(showId); // ------------------------------------------------------------ YGRemoveShadowLabel(); YGShadeOn(false); //alert("count="+Seasons.length); YGBuildShowSeasonsDialog(link, obj.username,showId,Seasons,-1); return true; } function YGResolveSoundCloudLink(link) { YGShadeOn(true); YGAddShadowLabel("Resolving link..."); var client_id=YGGetSoundCloudClientID(); if(client_id=='') { alert('SoundCloud Client ID not set. Go to "Youtube Gallery / Settings"'); YGRemoveShadowLabel(); YGShadeOn(false); return false; } var theUrl='http://api.soundcloud.com/resolve.json?url='+link+'&client_id='+client_id; var xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", theUrl, false); xmlHttp.send( null ); var r=xmlHttp.responseText; if(r.indexOf('{"')!=-1) { var obj = JSON.parse(r); if(obj.kind=='track') { link='http://api.soundcloud.com/tracks/'+obj.id+'.json'; link_type=YGgetVideoSourceName(link); if(link_type!='soundcloud') { alert("Something went wrong. Try again."); YGRemoveShadowLabel(); YGShadeOn(false); return false; } } else { alert("This type of SoundCloud ("+obj.kind+") link is not supported."); YGRemoveShadowLabel(); YGShadeOn(false); return false; } YGRemoveShadowLabel(); YGShadeOn(false); return link; } else { alert("This type of SoundCloud link is not supported."); YGRemoveShadowLabel(); YGShadeOn(false); return false; } } function YGAddLink() { //var link='http://www.youtube.com/show/nammalthammil';// var link=prompt("Please enter a Link to your Video, Playlist or Channel",""); if (link!=null) { var link_type=YGgetVideoSourceName(link); if(link_type=='') { alert("This type of links are not supported."); return false; } else { if(link_type.indexOf('*')!=-1) { //resolve link if(link_type=='soundcloud*') { link=YGResolveSoundCloudLink(link) if(!link) return false; link_type='soundcloud'; } if(link_type=='youtubeshow*') { YGResolveYoutubeShowLink(link); return true; } } if(YGisSingleVideo(link_type)) { var obj_source=document.getElementById(videolist_textarea); var osv=obj_source.value; var item=CSVtoArray(link); if(osv.indexOf(item[0])==-1) YGBuildSingleVideoDialog(link,link_type,-1); else { alert("This link is already in the list."); return false; } } else YGBuildListVideoDialog(link,link_type,-1); } } return true; } function YGShadeOn(show) { var obj=document.getElementById("YGShade"); if(show) obj.style.display="block"; else obj.style.display="none"; } function YGAddShadowLabel(label) { var FormContent=''; FormContent+='<p style="font-size:18px;color:white;font-weight:bold;margin-top: 400px;text-align:center;position:relative;">'+label+'</p>'; document.getElementById("YGShade").innerHTML=FormContent; } function YGRemoveShadowLabel() { document.getElementById("YGShade").innerHTML=''; } function YGAddSaveCloseButtons(link,editIndex,isSingleVideo,link_type) { var FormContent=''; FormContent+='<div style="width:180px;margin: 20px auto;position:relative;"><div class="-wrapper" style="position:absolute;left:0;top:0;" >'; var startend=false; if(link_type=='youtube' || YGcontains(link_type,channels_youtube)) startend=true; if(editIndex==-1) { if(isSingleVideo) FormContent+='<button onclick="YGFormatSingleLink(\''+link+'\',\''+editIndex+'\','+startend+')" class="btn btn-small btn-success" type="button">'; else FormContent+='<button onclick="YGFormatListLink(\''+link+'\',\''+editIndex+'\',\''+link_type+'\')" class="btn btn-small btn-success" type="button">'; FormContent+='<span class="icon-new icon-white"></span><span style="margin-left:10px;">Add</span></button>'; } else { if(isSingleVideo) FormContent+='<button onclick="YGFormatSingleLink(\''+link+'\',\''+editIndex+'\','+startend+')" class="btn btn-small" type="button">'; else FormContent+='<button onclick="YGFormatListLink(\''+link+'\',\''+editIndex+'\',\''+link_type+'\')" class="btn btn-small" type="button">'; FormContent+='<span class="icon-save"></span><span style="margin-left:10px;">Save</span></button>'; } FormContent+='</div>'; FormContent+='<div class="-wrapper" style="position:absolute;left:90px;top:0;">'; FormContent+='<button onclick="YGCloseForm()" class="btn btn-small" type="button">'; FormContent+='<span class="icon-cancel"></span><span style="margin-left:10px;">Cancel</span></button>'; FormContent+='</div>'; FormContent+='</div>'; return FormContent; } function YGbuildForm(width,height,title,FormContent) { YGShadeOn(true); var obj=document.getElementById("YGDialog"); var el=document.getElementById("ygvideolinkstable"); var x = el.offsetLeft, y = el.offsetTop-150; var result='<div style="width:'+width+'px;height:'+height+'px;position: absolute;top:'+y+'px;left:'+x+'px;">'; result+='<div style="width:'+width+'px;height:'+height+'px;" class="YGDialogFormShadow"></div>'; result+='<div style="width:'+width+'px;height:'+height+'px;" class="YGDialogForm">' result+='<p style="margin-top:15px;font-size:18px;font-weight:bold;text-align:center;">'+title+'</p>'; result+=FormContent+'</div>'; result+='</div>'; obj.innerHTML=result; obj.style.display="block"; } function YGCloseForm() { var obj=document.getElementById("YGDialog"); obj.innerHTML=''; obj.style.display="none"; YGShadeOn(false); } function YGgetBasicValues(isSingle,link,SpecialParameters,startendsecond) { var title=document.getElementById("ygcustomtitle").value; var description=document.getElementById("ygcustomdescription").value; var image=document.getElementById("ygcustomimage").value; title=title.replace(/["']/g, ""); description=description.replace(/["']/g, ""); image=image.replace(/["']/g, ""); if(startendsecond) { var startsecond=document.getElementById("startsecond").value; var endsecond=document.getElementById("endsecond").value; startsecond=startsecond.replace(/["']/g, ""); endsecond=endsecond.replace(/["']/g, ""); startsecond=startsecond.replace(/[^\d.]/g, ""); endsecond=endsecond.replace(/[^\d.]/g, ""); } var new_link=link; if(title!='') new_link+=',"'+title+'"'; else if(description!='' || image!='' || SpecialParameters!='' || startsecond!='' || endsecond!='') new_link+=','; if(description!='') new_link+=',"'+description+'"'; else if(image!='' || SpecialParameters!='' || startsecond!='' || endsecond!='') new_link+=','; if(image!='') new_link+=',"'+image+'"'; else if(SpecialParameters!='' || startsecond!='' || endsecond!='') new_link+=','; if(SpecialParameters!='') new_link+=',"'+SpecialParameters+'"'; else if(startsecond!='' || endsecond!='') new_link+=','; if(startendsecond) { if(startsecond!='') new_link+=','+startsecond; else if(endsecond!='') new_link+=','; if(endsecond!='') new_link+=','+endsecond; } return new_link; } function YGFormatSingleLink(link,editIndex,startendsecond) { var new_link=YGgetBasicValues(true,link,'',startendsecond); YGAddFormatedLink(true,new_link,editIndex); var obj=document.getElementById("YGDialog"); obj.innerHTML=''; obj.style.display="none"; YGShadeOn(false); } function YGFormatListLink(link,editIndex,link_type) { var title=document.getElementById("ygcustomtitle").value; var description=document.getElementById("ygcustomdescription").value; var image=document.getElementById("ygcustomimage").value; var SpecialParameters=''; var startendsecond=false; if(YGcontains(link_type,channels_youtube)) { //SpecialParameters startendsecond=true; var maxresults=document.getElementById("maxresults").value; var startindex=document.getElementById("startindex").value; var ygorderby=document.getElementById("ygorderby").value; if(link_type=='youtubeshow') { var season=document.getElementById("season").value; var content=document.getElementById("contenttype").value; } maxresults=maxresults.replace(/["']/g, ""); startindex=startindex.replace(/["']/g, ""); maxresults=maxresults.replace(/[^\d.]/g, ""); startindex=startindex.replace(/[^\d.]/g, ""); if(maxresults!='') { SpecialParameters+='max-results='+maxresults; } if(startindex!='') { if(SpecialParameters!='') SpecialParameters+=','; SpecialParameters+='start-index='+startindex; } if(ygorderby!='') { if(SpecialParameters!='') SpecialParameters+=','; SpecialParameters+='orderby='+ygorderby; } if(link_type=='youtubeshow') { if(season!='') { if(SpecialParameters!='') SpecialParameters+=','; SpecialParameters+='season='+season; } //content='test'; if(content!='') { if(SpecialParameters!='') SpecialParameters+=','; SpecialParameters+='content='+content; } } if(link_type=='youtubeuseruploads') { var moredetails=document.getElementById("moredetails").value; moredetails=moredetails.replace(/["']/g, ""); if(moredetails!='') { if(SpecialParameters!='') SpecialParameters+=','; SpecialParameters+='moredetails=true'; } } } if(YGcontains(link_type,channels_vimeo)) { //SpecialParameters var per_page=document.getElementById("per_page").value; var page=document.getElementById("page").value; per_page=per_page.replace(/["']/g, ""); page=page.replace(/["']/g, ""); per_page=per_page.replace(/[^\d.]/g, ""); page=page.replace(/[^\d.]/g, ""); if(per_page!='') { SpecialParameters+='per_page='+per_page; } if(page!='') { if(SpecialParameters!='') SpecialParameters+=','; SpecialParameters+='page='+page; } } var new_link=YGgetBasicValues(false,link,SpecialParameters,startendsecond); YGAddFormatedLink(false,new_link,editIndex); var obj=document.getElementById("YGDialog"); obj.innerHTML=''; obj.style.display="none"; YGShadeOn(false); } function YGAddVelues(item,count) { var new_item=new Array(); var l=item.length; for (var i = 0; i < count; i++) { if(i>l-1) new_item[i]=''; else new_item[i]=item[i]; } return new_item; } function YGBuildSingleVideoDialog(link,link_type,editIndex) { var linkSplit=CSVtoArray(link); var item=YGAddVelues(linkSplit,7); var formHeight=280; var FormContent='<table style="width:90%;margin-left:20px;margin-top:20px;"><tbody>'; var link_type_title=YGGetTypeTitle(link_type); FormContent+='<tr><td>Link</td><td>:</td><td style="word-break:break-all;width:380px;">'+item[0]+'</div></td></tr>'; FormContent+='<tr><td>Type</td><td>:</td><td><b>'+link_type_title+'</b></td></tr>'; FormContent+='<tr><td>Custom Title</td><td>:</td><td><input type="text" id="ygcustomtitle" class="inputbox" style="width:100%;" value="'+item[1]+'" /></td></tr>'; FormContent+='<tr><td>Custom Description</td><td>:</td><td><input type="text" id="ygcustomdescription" class="inputbox" style="width:100%;" value="'+item[2]+'" /></td></tr>'; FormContent+='<tr><td>Custom Thumbnail</td><td>:</td><td><input type="text" id="ygcustomimage" class="inputbox" style="width:100%;" value="'+item[3]+'" /></td></tr>'; if(link_type=='youtube') { formHeight=320; FormContent+='<tr><td>startsecond</td><td>:</td><td><input type="text" id="startsecond" class="inputbox" style="width:100%;" value="'+item[5]+'" /></td></tr>'; FormContent+='<tr><td>endsecond</td><td>:</td><td><input type="text" id="endsecond" class="inputbox" style="width:100%;" value="'+item[6]+'" /></td></tr>'; } FormContent+='</tbody></table>' FormContent+=YGAddSaveCloseButtons(item[0],editIndex,true,link_type); if(link_type=='soundcloud') YGbuildForm(500,formHeight,"Single Audio Details",FormContent); else YGbuildForm(500,formHeight,"Single Video Details",FormContent); } function YGBuildSelectBox(id,values,titles,value) { var FormContent='<select id="'+id+'" class="inputbox" style="width:100%;">'; for (var i = 0; i < values.length; i++) { FormContent+='<option value="'+values[i]+'"'; //alert(values[i]); if(values[i]==value) FormContent+=' SELECTED'; FormContent+='>'+titles[i]+'</option>'; } FormContent+='</select>'; return FormContent; } function YGBuildShowSeasonsDialog(link,userid,showid,seasons,editIndex) { // http://www.youtube.com/show/nammalthammil,,,,"season=Asianetindia:Xa8eLsZq8nk:IP9es3o2Ct0" var linkSplit=CSVtoArray(link); var item=YGAddVelues(linkSplit,7); var FormContent='<table style="width:90%;margin-left:20px;margin-top:20px;"><tbody>'; var formHeight=560; var sp=item[4].split(","); if(userid=='' && sp!='') { var p=YGGetValue(sp,'season').split(':'); if(p.length==4) { userid=p[0]; showid=p[1]; //Load list of seasons seasons=YGLoadListOfSeasons(showid); } else { alert('Link format is corrupted.'); return false; } } FormContent+='<tr><td style="width:150px;">Link</td><td>:</td><td><div style="vertical-align:middle !important;word-break:break-all;width:330px;height:30px;overflow:hidden;border:1px red;">'+item[0]+'</div></td></tr>'; FormContent+='<tr><td>Type</td><td>:</td><td><b>Youtube Show</b></td></tr>'; var Values=new Array(); var Titles=new Array(); for(i=0;i<seasons.length;i++) { Values[i]=''+userid+':'+showid+':'+seasons[i].id+':'+seasons[i].title[0]; Titles[i]='Season '+seasons[i].title[0]; } FormContent+='<tr><td><b>Season</b></td><td>:</td><td>'+YGBuildSelectBox('season',Values,Titles,YGGetValue(sp,'season'))+'</td></tr>'; var Values=new Array('','clips');//episodes - by default var Titles=new Array('Episodes','Clips'); FormContent+='<tr><td>Content</td><td>:</td><td>'+YGBuildSelectBox('contenttype',Values,Titles,YGGetValue(sp,'content'))+'</td></tr>'; FormContent+='<tr><td>Custom Title</td><td>:</td><td><input type="text" id="ygcustomtitle" class="inputbox" style="width:100%;" value="'+item[1]+'" /></td></tr>'; FormContent+='<tr><td>Custom Description</td><td>:</td><td><input type="text" id="ygcustomdescription" class="inputbox" style="width:100%;" value="'+item[2]+'" /></td></tr>'; FormContent+='<tr><td>Custom Thumbnail</td><td>:</td><td><input type="text" id="ygcustomimage" class="inputbox" style="width:100%;" value="'+item[3]+'" /></td></tr>'; FormContent+='<tr><td colspan="3"><hr style="border:1px grey dotted;" /></td></tr>'; FormContent+='<tr><td>max-results</td><td>:</td><td><input type="text" id="maxresults" class="inputbox" style="width:100%;" value="'+YGGetValue(sp,'max-results')+'" /></td></tr>'; FormContent+='<tr><td>start-index</td><td>:</td><td><input type="text" id="startindex" class="inputbox" style="width:100%;" value="'+YGGetValue(sp,'start-index')+'" /></td></tr>'; var OrderByValues=new Array('','published','title','viewCount','duration','rating','position','commentCount'); var OrderByTitles=new Array('-','published','title','viewCount','duration','rating','position','commentCount'); FormContent+='<tr><td>orderby</td><td>:</td><td>'+YGBuildSelectBox('ygorderby',OrderByValues,OrderByTitles,YGGetValue(sp,'orderby'))+'</td></tr>'; FormContent+='<tr><td colspan="3"><hr style="border:1px grey dotted;" /></td></tr>'; FormContent+='<tr><td>startsecond</td><td>:</td><td><input type="text" id="startsecond" class="inputbox" style="width:100%;" value="'+item[5]+'" /></td></tr>'; FormContent+='<tr><td>endsecond</td><td>:</td><td><input type="text" id="endsecond" class="inputbox" style="width:100%;" value="'+item[6]+'" /></td></tr>'; FormContent+='</tbody></table>' FormContent+=YGAddSaveCloseButtons(item[0],editIndex,false,'youtubeshow'); YGbuildForm(500,formHeight,"Youtube Show Details",FormContent); return true; } function YGBuildListVideoDialog(link,link_type,editIndex) { var linkSplit=CSVtoArray(link); var item=YGAddVelues(linkSplit,7); var FormContent='<table style="width:90%;margin-left:20px;margin-top:20px;"><tbody>'; var formHeight=300; var link_type_title=YGGetTypeTitle(link_type); FormContent+='<tr><td style="width:150px;">Link</td><td>:</td><td><div style="vertical-align:middle !important;word-break:break-all;width:330px;height:35px;overflow:hidden;border:1px red;">'+item[0]+'</div></td></tr>'; FormContent+='<tr><td>Type</td><td>:</td><td><b>'+link_type_title+'</b></td></tr>'; FormContent+='<tr><td>Custom Title</td><td>:</td><td><input type="text" id="ygcustomtitle" class="inputbox" style="width:100%;" value="'+item[1]+'" /></td></tr>'; FormContent+='<tr><td>Custom Description</td><td>:</td><td><input type="text" id="ygcustomdescription" class="inputbox" style="width:100%;" value="'+item[2]+'" /></td></tr>'; FormContent+='<tr><td>Custom Thumbnail</td><td>:</td><td><input type="text" id="ygcustomimage" class="inputbox" style="width:100%;" value="'+item[3]+'" /></td></tr>'; if(YGcontains(link_type,channels_youtube)) { formHeight=530; var sp=item[4].split(","); FormContent+='<tr><td colspan="3"><hr style="border:1px grey dotted;" /></td></tr>'; FormContent+='<tr><td colspan="3"><b>Special Parameters</b> <a href="http://joomlaboat.com/youtube-gallery/youtube-gallery-special-parameters" target="_blank">More about Special Parameters</a></td></tr>'; FormContent+='<tr><td>max-results</td><td>:</td><td><input type="text" id="maxresults" class="inputbox" style="width:100%;" value="'+YGGetValue(sp,'max-results')+'" /></td></tr>'; FormContent+='<tr><td>start-index</td><td>:</td><td><input type="text" id="startindex" class="inputbox" style="width:100%;" value="'+YGGetValue(sp,'start-index')+'" /></td></tr>'; var OrderByValues=new Array('','published','title','viewCount','duration','rating','position','commentCount'); var OrderByTitles=new Array('-','published','title','viewCount','duration','rating','position','commentCount'); FormContent+='<tr><td>orderby</td><td>:</td><td>'+YGBuildSelectBox('ygorderby',OrderByValues,OrderByTitles,YGGetValue(sp,'orderby'))+'</td></tr>'; if(link_type=='youtubeuseruploads') { formHeight=530; var Values=new Array('','true'); var Titles=new Array('No','Yes'); FormContent+='<tr><td>more details</td><td>:</td><td>'+YGBuildSelectBox('moredetails',Values,Titles,YGGetValue(sp,'moredetails'))+'</td></tr>'; } FormContent+='<tr><td colspan="3"><hr style="border:1px grey dotted;" /></td></tr>'; FormContent+='<tr><td>startsecond</td><td>:</td><td><input type="text" id="startsecond" class="inputbox" style="width:100%;" value="'+item[5]+'" /></td></tr>'; FormContent+='<tr><td>endsecond</td><td>:</td><td><input type="text" id="endsecond" class="inputbox" style="width:100%;" value="'+item[6]+'" /></td></tr>'; } if(YGcontains(link_type,channels_vimeo)) { formHeight=410; var sp=item[4].split(","); FormContent+='<tr><td colspan="3"><hr style="border:1px grey dotted;" /></td></tr>'; FormContent+='<tr><td colspan="3"><b>Special Parameters</b> <a href="http://joomlaboat.com/youtube-gallery/youtube-gallery-special-parameters" target="_blank">More about Special Parameters</a></td></tr>'; FormContent+='<tr><td>per_page</td><td>:</td><td><input type="text" id="per_page" class="inputbox" style="width:100%;" value="'+YGGetValue(sp,'per_page')+'" /></td></tr>'; FormContent+='<tr><td>page</td><td>:</td><td><input type="text" id="page" class="inputbox" style="width:100%;" value="'+YGGetValue(sp,'page')+'" /></td></tr>'; FormContent+='<tr><td colspan="3"><hr style="border:1px grey dotted;" /></td></tr>'; } FormContent+='</tbody></table>' FormContent+=YGAddSaveCloseButtons(item[0],editIndex,false,link_type); YGbuildForm(500,formHeight,"Video Link Details",FormContent); } function YGGetValue(a,p) { for (var i = 0; i < a.length; i++) { var pair=a[i].split('='); if(pair[0]==p) { if(pair.length>1) return pair[1]; else return ''; } } return ''; } // Return array of string values, or NULL if CSV string not well formed. function CSVtoArray(text) { var re_valid = /^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/; var re_value = /(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g; // Return NULL if input string is not well formed CSV string. if (!re_valid.test(text)) return null; var a = []; // Initialize array to receive values. text.replace(re_value, // "Walk" the string using replace with callback. function(m0, m1, m2, m3) { // Remove backslash from \' in single quoted values. if (m1 !== undefined && m1!='') a.push(m1.replace(/\\'/g, "'")); // Remove backslash from \" in double quoted values. else if (m2 !== undefined && m2!='') a.push(m2.replace(/\\"/g, '"')); else if (m3 !== undefined) a.push(m3); return ''; // Return empty string. }); // Handle special case of empty last value. if (/,\s*$/.test(text)) a.push(''); return a; }; function YGcontains(obj,a) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) return true; } return false; } function YGisSingleVideo(vsn) { //var channels_youtube=new Array('youtubeuseruploads','youtubestandard','youtubeplaylist','youtubeuserfavorites','youtubesearch'); //var channels_other=new Array('vimeouservideos','vimeochannel','vimeoalbum','dailymotionplaylist'); if(YGcontains(vsn,channels_youtube) || YGcontains(vsn,channels_other)) return false; else return true; } function YGdeleteLink(index) { var result = confirm("Want to delete?"); if (result==true) { var obj_source=document.getElementById(videolist_textarea); var lines = obj_source.value.split(/\r\n|\r|\n/g); var newList=''; for(i=0;i<lines.length;i++) { if(i!=index) { if(newList!='') newList+="\r\n"; newList+=lines[i]; } } obj_source.value=newList; YGUpdatelinksTable(); } } function YGeditLink(index) { var obj_source=document.getElementById(videolist_textarea); var lines = obj_source.value.split(/\r\n|\r|\n/g); var link=lines[index];//.replace(/["']/g, ""); var item=CSVtoArray(link); var link_type=YGgetVideoSourceName(item[0]); if(link_type=='') alert("This type of links are not supported."); else { if(YGisSingleVideo(link_type)) YGBuildSingleVideoDialog(link,link_type,index); else if(link_type=='youtubeshow*') YGBuildShowSeasonsDialog(link,'','','',index); else YGBuildListVideoDialog(link,link_type,index); } } function YGSetVLTA(vlta) { videolist_textarea=vlta; } function YGUpdatelinksTable() { var result='<table class="LinksTable" style=""><tbody><tr>'; result+='<th>Link</th><th>Type</th><th>Custom Title</th><th>Custom Description</th><th>Custom Thumbnail</th><th>Special Parameters</th>'; result+='</tr>'; var obj_source=document.getElementById(videolist_textarea); var lines = obj_source.value.split(/\r\n|\r|\n/g); for(i=0;i<lines.length;i++) { if(lines[i]!='') { result+='<tr>'; item=CSVtoArray(lines[i]); var link_type=YGgetVideoSourceName(item[0]); result+='<td style="max-width:400px;word-break:break-all;"><b>'+item[0]+'</b>'; if(link_type=='youtubeshow*') { var sp=item[4].split(","); var season=YGGetValue(sp,'season'); var s=season.split(':'); if(s.length==4) result+='<br>Season '+s[3]; } result+='</td>'; var link_type_title=YGGetTypeTitle(link_type); result+='<td>'+link_type_title+'</td>'; /* *.replace(/["']/g, "") **/ if(item.length>1)result+='<td>'+item[1]+'</td>'; else result+='<td></td>'; if(item.length>2)result+='<td>'+item[2]+'</td>'; else result+='<td></td>'; if(item.length>3)result+='<td>'+item[3]+'</td>'; else result+='<td></td>'; if(item.length>4)result+='<td>'+item[4]+'</td>'; else result+='<td></td>'; result+='<td><div class="btn-wrapper" id="toolbar-edit"><button onclick="YGeditLink('+i+')" type="button" class="btn btn-small"><span class="icon-edit"></span>Edit</button></td>'; result+='<td><div class="btn-wrapper" id="toolbar-delete"><button onclick="YGdeleteLink('+i+');" type="button" class="btn btn-small"><span class="icon-delete"></span>Delete</button></div></td>'; result+='</tr>'; } } result+='</tbody></table>'; document.getElementById("ygvideolinkstable").innerHTML=result; }