/* JavaScript for WP-MediaCenter Wordpress plugin Version: 0.1 Author: rrd Author URI: http://rrd.1108.cc */ //ha a JS be van kapcsolva és aloldalt hívunk meg (az URL-ben szerepel a ?) akkor irányítsuk át refressel a főoldalra if(location.href.search(/\?p=/) != -1){ location.replace('http://gouranga.tv/#video:'+location.search.replace(/\?p=/,'')); } else if(location.href.search(/\?cat=/) != -1){ location.replace('http://gouranga.tv/#channels:'+location.search.replace(/\?cat=/,'')); } else if(location.href.search(/\?tags=/) != -1){ //todo: bugfix: a tag nem id-s hanem szavas location.replace('http://gouranga.tv/#tags:'+location.search.replace(/\?tags=/,'')); } else if(location.href.search(/\?/) != -1 && location.href.search(/page_id/) == -1){ location.replace('http://gouranga.tv'); } var mediaCenter = { //ajax hívásokra válaszoló php file url-je url : '/wp-content/plugins/mediacenter/mediacenter.php', //elrejtéshez használt css osztály neve REJTETT : 'rejtett', //a szerver oldalon várt változó CSOPORT : 'csoport', //a navilist elemei CHANNELS : 'Channels', TAGS : 'Tags', MOSTS : 'Mosts', //ez az első video? elsoVideo : true, //az aktuálisan kiválasztott video id-je aktualVideo : 0, //thumbset címe aThumbsetCim : '', //keresési értékek tárolására használt ojjektum keresesTipus : { 0: '', 1: 0, 2: 0 }, //mcthumbsok mcthumbs : {}, //melyik navilist ul van bekapcsolva? bekapcsoltNaviUl : {}, //melyik textbox van bekapcsolva? bekapcsoltTextBoxDiv : {}, //ellenőrző ojjektum validator : function(type,mit){ //validálunk if(type == 'email'){ var regexMinta = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; } else if(type == 'notempty'){ var regexMinta = /.+/; } if(mit.search(regexMinta) != -1) return true; else return false; }, mcInit : function(){ //inicializálás az oldal első betöltésekor //navigációs lista mediaCenter.naviListLinks = $$('div#mcnavilist h3 a'); mediaCenter.naviListTabs = $$('div#mcnavilist div'); mediaCenter.bekapcsoltNaviUl = $('mcnavilist' + mediaCenter.CHANNELS.toLowerCase()); mediaCenter.mcNavilistLinkKezelo(); mediaCenter.mcCollectNaviListElems(); //url kezelés, ehhez a navilistnek már definálva kell lennie mediaCenter.urlKezelo(); //thumbs mediaCenter.mcthumbs = $('mcthumbs'); mediaCenter.mcCollectThumbs(); mediaCenter.mcCollectThumbGomb(); var mcLatest = $$('img.mcthelatest'); Event.observe(mcLatest[0], 'click', mediaCenter.mcStartVideo.bindAsEventListener(mcLatest[0])); var videoSubmit = $('videoSubmit'); Event.observe(videoSubmit, 'click', mediaCenter.videoSubmitKezelo.bindAsEventListener(videoSubmit)); mediaCenter.textBoxKezelo.init(); //keresés var kereso = $('s'); Event.observe(kereso, 'focus', mediaCenter.keresoKezelo.inputKezelo.bindAsEventListener(kereso)); var searchForm = $('searchform'); Event.observe(searchForm, 'submit', mediaCenter.keresoKezelo.formKezelo.bindAsEventListener(searchForm)); }, /*****************************************************************************/ /*THUMBS KEZELÉS KEZDŐDIK*/ mcCollectThumbs : function(){ //meghívódik az első laptöltéskor és minden navilist váltásnál //legeneráljuk a thumbnaileket //minden thumbnailhez hozzárendeljük az eseményeket var mcR; var mcthumb = $$('.mcthumb'); if(mcthumb != ''){ mcthumb.each(function(aThumb){ Event.observe(aThumb, 'click', mediaCenter.mcStartVideo.bindAsEventListener(aThumb)); //Effect.SlideDown(aThumb); ha ez van akkor a mediacenter.php fileban a wpMediaCenterCreateThumbList és a wpMediaCenterLiAtalakito függvényekben a li-knek display:none-t kell adni }); if(mediaCenter.elsoVideo){ //első letöltéskor a video legyen a legfrisebbra állítva mcR = mcthumb[0].id.split('-'); mediaCenter.aktualVideo = mcR[1]; } if(mediaCenter.aThumbsetCim == ''){ //a thumbsetcím is legyen beállítva mediaCenter.aThumbsetCim = mediaCenter.mcGetSzoveg($('thumbsetcim')); } } else{ //első meghívás az mcthumbs ul még üres, töltsük fel az url alapján if(mediaCenter.hashUrl == '') mediaCenter.hashUrl = new Array('allvideos'); mediaCenter.mcThumblistLapoz(); } }, mcCollectThumbGomb : function(){ //fel le gombokhoz eseménykezelés csatolása var mcthumbfel = $('mcthumbfel'); Event.observe(mcthumbfel, 'click', mediaCenter.mcThumblistLapoz.bindAsEventListener(mcthumbfel)); var mcthumble = $('mcthumble'); Event.observe(mcthumble, 'click', mediaCenter.mcThumblistLapoz.bindAsEventListener(mcthumble)); }, mcThumblistLapoz : function(e){ //az alsó navigációs részt lapozzuk ajrébb var lepes; var params; var thumbsetCim = $('thumbsetcim'); //keresésből jöttünk ide if(mediaCenter.keresesTipus[0] == mediaCenter.CHANNELS){ params = mediaCenter.CSOPORT + '=' + mediaCenter.CHANNELS + '-' + mediaCenter.keresesTipus[1]; //todo: bugfix: itt nem mutatja, hogy mennyi video van a channelben //mediaCenter.aThumbsetCim = mediaCenter.keresesTipus[2] + ' ()'; mediaCenter.aThumbsetCim = mediaCenter.keresesTipus[2]; } else if(mediaCenter.keresesTipus[0] == mediaCenter.TAGS){ params = mediaCenter.CSOPORT + '=' + mediaCenter.TAGS + '-' + mediaCenter.keresesTipus[1]; //todo: bugfix: itt nem mutatja, hogy mennyi video van a tagban mediaCenter.aThumbsetCim = mediaCenter.keresesTipus[2]; } //lefelé nyíl else if(this.id == 'mcthumble'){ params = 'lepes=7'; //ha a csoport definiálva van azt is át kell adni paraméterként } //felfelé nyíl else if(this.id == 'mcthumbfel') params = 'lepes=-7'; else if(mediaCenter.hashUrl != ""){ if(mediaCenter.hashUrl[1] == undefined){ //első meghívás params = mediaCenter.CSOPORT + '=' + mediaCenter.hashUrl[0]; } else{ //url-ből hívtuk dhtmlHistory.add(mediaCenter.hashUrl[0]+':'+mediaCenter.hashUrl[1]); params = mediaCenter.CSOPORT + '=' + mediaCenter.hashUrl[0] + '-' + mediaCenter.hashUrl[1]; } mediaCenter.hashUrl = ''; } else{ //a navilistből választottunk valamit //all videos esetén a frissek kellenek var hashUrl = this.id.split('-'); dhtmlHistory.add(hashUrl[0]+':'+hashUrl[1]); if(this.firstChild.id == mediaCenter.CSOPORT + mediaCenter.MOSTS) params = mediaCenter.MOST; else params = mediaCenter.CSOPORT + '=' + this.id; //módosítjuk a thumbsetcimet mediaCenter.aThumbsetCim = mediaCenter.mcGetSzoveg(this); } //ajax lekérés //az updatert használjuk a request helyett mivel a válasz html-ben jön var ajax = new Ajax.Updater( mediaCenter.mcthumbs, mediaCenter.url, { method: 'get', parameters: params, onLoading: mediaCenter.mcLoading(mediaCenter.mcthumbs), onComplete: function(){ /* todo: bugfix : 1. DOM felépülés IE6-ban ha kétszer egymás után ugyanarra keresünk akkor az IE6 itt elszáll, valami érthetetlen oknál fogva olyan mintha innen kétszer hívná meg a collectthumbs függvéynt közvetlenül egymás után és a második hívásnál még nem elérhetőek a hivatkozott dom elemek */ mediaCenter.mcCollectThumbs(); //a kiválasztott elem átszinezése //azért itt van mert keresésnél a dom később épül fel mint kellene var aktivLink = params.split('='); if(aktivLink[0] != 'lepes') mediaCenter.mcNaviListStylemod(aktivLink[1]); //thumbsetcim átalakítása a lapozási helyzet megjelenítésére var lapozo = $$('#mcthumbs span'); lap = parseInt(mediaCenter.mcGetSzoveg(lapozo[0]))+1; var maxVideoinCat = mediaCenter.aThumbsetCim.split('('); if(maxVideoinCat == undefined || maxVideoinCat.length == 1){ //nincs meg az öss video info, keresésből jövünk lapozoInfo = ''; } else{ maxVideoinCat = maxVideoinCat[1].split(')'); maxVideoinCat = (maxVideoinCat[0]>(lap+6)) ? (lap+6) : maxVideoinCat[0]; lapozoInfo = ' (' + lap + '-' + maxVideoinCat + ')'; } Element.update(thumbsetCim,mediaCenter.aThumbsetCim+lapozoInfo); } } ); //keresési értékek törlése mediaCenter.keresesTipus = {}; if(e) Event.stop(e);return false; }, /*THUMBS KEZELÉS VÉGE*/ /*****************************************************************************/ /*NAVILIST KEZELÉS KEZDŐDIK*/ mcNavilistLinkKezelo : function(){ //navigációs lista tartalmának változtatása céljából eseménykezelő csatolása: channels / tags linkekre mediaCenter.naviListLinks.each(function(elem){ Event.observe(elem, 'click', mediaCenter.naviListSwitch.bindAsEventListener(elem)); }); }, mcCollectNaviListElems : function(){ //minden navigációs li elemhez hozzárendeljük az eseményeket //meghívódik első letöltéskor és minden első switch váltásnál var mcNaviListItems = $$('#mcnavilist ul li a'); mcNaviListItems.each(function(elem){ Event.observe(elem, 'click', mediaCenter.mcThumblistLapoz.bindAsEventListener(elem)); }); }, naviListSwitch : function(e){ //a navilist linkeket kiválasztott vagy ki nem választott állapotba hozza var i = 0; var kikapcsolt = new Array(); var azElem = (mediaCenter.keresesTipus[0]) ? (mediaCenter.keresesTipus[0]) : ((e) ? mediaCenter.mcGetSzoveg(Event.element(e)) : mediaCenter.hashUrl[0]); mediaCenter.naviListLinks.each(function(elem){ if(azElem.toLowerCase() == mediaCenter.mcGetSzoveg(elem).toLowerCase()){ elem.className = 'mcltsel'; bekapcsolt = mediaCenter.mcGetSzoveg(elem).toLowerCase(); } else{ elem.className = ''; kikapcsolt[i] = $('mcnavilist' + mediaCenter.mcGetSzoveg(elem).toLowerCase()); i++; } }); mediaCenter.bekapcsoltNaviUl = $('mcnavilist' + bekapcsolt); //rejtsük el a ki nem választott ul-t kikapcsolt.each(function(elem){ elem.className = mediaCenter.REJTETT; //todo: ennek li elemeit ki nem választottá tesszük }); //és jelenítsük meg a bekapcsolt ul-t mediaCenter.bekapcsoltNaviUl.className = ''; //a bekapcsolt ul tartalma if(mediaCenter.mcGetSzoveg(mediaCenter.bekapcsoltNaviUl) == undefined){ //nincs tartalma, tehát le kell kérni ajaxxal var params = 'listtype=' + bekapcsolt; var ajax = new Ajax.Updater( mediaCenter.bekapcsoltNaviUl, mediaCenter.url, { method: 'get', parameters: params, onLoading: mediaCenter.mcLoading(mediaCenter.bekapcsoltNaviUl), onComplete: mediaCenter.mcCollectNaviListElems }); } if(e) Event.stop(e);return false; }, mcNaviListStylemod : function(aKivalasztott){ //kivalasztott: "tags-13" ami egy a elem id-je //minden li elemnek töröljük a classját, a kiválasztottat selectedre állítjuk var tagSzam = mediaCenter.bekapcsoltNaviUl.childNodes.length; aKivalasztott = aKivalasztott.toLowerCase(); for(var i = 0; i < tagSzam; i++){ var elem = mediaCenter.bekapcsoltNaviUl.childNodes[i]; if(elem.nodeType == 1){ //csak a li elemeket akarjuk a \n-eket nem if(elem.className == 'selected' && elem.firstChild.id != aKivalasztott) elem.className = ''; else if(elem.firstChild.id == aKivalasztott) elem.className = 'selected'; } } }, getNaviListDetails : function(linkSzoveg){ //tags / channels vagy mi van a navilistben? var aNaviListLinks = {}; var azAktiv = $$('div#mcnavilist h3 a'); azAktiv.each(function(azElem){ if(azElem.className == 'mcltsel') aNaviListLinks.aktiv = azElem; if(mediaCenter.mcGetSzoveg(azElem) == linkSzoveg) aNaviListLinks.vizsgalt = azElem; }); return(aNaviListLinks); }, /*NAVILIST KEZELÉS VÉGE*/ /*****************************************************************************/ /*VIDEO KEZELÉS KEZDŐDIK*/ mcStartVideo : function(e){ //lecseréli a screen tartalmát az aktuális videóra var aScreen = $('mcscreen'); var welcomeDiv = $('mcwelcome'); //ha ez az első elindított video, és a welcome szöveg látszik, akkor jelenítsük meg az info fület if(mediaCenter.elsoVideo && welcomeDiv.className == 'mcltsel'){ mediaCenter.elsoVideo = false; mediaCenter.hideEsShow('mcwelcome','mcvideoinfo'); $('mctextboxinfo').className = 'mcltsel'; } //az e-nek nem lesz értéke ha nem kattintással hanem url-lel jutottunk ide (pl könyvjelzők), vagy ha a keresőből jövünk var videoid; if(e){ videoid = this.id; videoid = videoid.split('-'); videoid = videoid[1]; } else{ if(mediaCenter.keresesTipus[1]){ //keresésből jutottunk ide videoid = mediaCenter.keresesTipus[1]; } else{ //kattintás volt, vagy url hívás videoid = location.hash.replace(/#video\:/,''); } } mediaCenter.aktualVideo = videoid; dhtmlHistory.add('video:'+mediaCenter.aktualVideo); mediaCenter.textBoxKezelo.setCommentId(); //ajax lekérés var params = 'video=' + videoid; var ajax = new Ajax.Updater( aScreen, mediaCenter.url, { method: 'get', parameters: params, onLoading: mediaCenter.mcLoading(aScreen), onComplete : mediaCenter.textBoxKezelo.getVideoInfo } ); mediaCenter.keresesTipus = {}; if(e){ Event.stop(e); } return false; }, /*VIDEO KEZELÉS VÉGE*/ /*****************************************************************************/ /*TEXTBOX KEZELÉS KEZDŐDIK*/ textBoxKezelo : { //a textboxban történő események kezelésére hivatott ojjektum init : function(){ mediaCenter.bekapcsoltTextBoxDiv = $('mcwelcome'); textBoxLinks = $$('div#mctextbox h3 a'); textBoxLinks.each(function(aLink){ Event.observe(aLink, 'click', mediaCenter.textBoxKezelo.linkKezelo.bindAsEventListener(aLink)); }); mediaCenter.textBoxKezelo.getVideoInfo(); //welcome suggest link kezelése var welcomeSuggestLinkje = $$('#mcwelcome a'); Event.observe(welcomeSuggestLinkje[0], 'click', mediaCenter.textBoxKezelo.linkKezelo.bindAsEventListener(welcomeSuggestLinkje[0])); }, getVideoInfo : function(){ //a szerver a mcavideoinfo-ba küldi az adatot, ezt kell átemelnünk a mcvideoinfo-ba $('mcvideoinfo').innerHTML = $('mcavideoinfo').innerHTML; $('mcavideoinfo').innerHTML = ''; //csatolnunk kell a benne lévő more comments és add new comments linkekhez az eseménykezelőket var infoLinks = $$('#mcvideoinfo a'); //add comments és more commentset itt csatoljuk infoLinks.each(function(aLink){ Event.observe(aLink, 'click', mediaCenter.textBoxKezelo.linkKezelo.bindAsEventListener(aLink)); }); }, linkKezelo : function(e){ //textbox linkjei alapján megjeleníti azt a divet amit kell, a többit elrejti //módosítsuk a kiválasztott kinézetét textBoxLinks = $$('div#mctextbox h3 a'); var kivalasztottLink = this; textBoxLinks.each(function(aLink){ if(aLink == kivalasztottLink) aLink.className = 'mcltsel'; else if(aLink.className == 'mcltsel') aLink.className = ''; }); //more commentsél is működjön if(mediaCenter.mcGetSzoveg(kivalasztottLink).search(/more/) == 0) textBoxLinks[1].className = 'mcltsel'; //add commentsnél is if(mediaCenter.mcGetSzoveg(kivalasztottLink).search(/add/i) == 0) textBoxLinks[1].className = 'mcltsel'; //suggestnél is if(mediaCenter.mcGetSzoveg(kivalasztottLink).search(/suggest/) == 0) textBoxLinks[2].className = 'mcltsel'; kivalasztva = this.id; if(kivalasztva == "") kivalasztva = 'mc' + mediaCenter.mcGetSzoveg(kivalasztottLink); //adjuk rejtett class-t az eltüntetendőkhöz if(kivalasztva.search(/suggest/)>0){ //ha már küldött egy suggestet akkor itt a tartalmon is változtatni kell mediaCenter.hideEsShow(new Array('mcwelcome', 'mccomments', 'mcsuggestvideouzenet', 'mcvarakozocomments','mcvideoinfo'), 'mcsuggestvideo'); } else if(kivalasztva.search(/info/)>0){ mediaCenter.hideEsShow(new Array('mcwelcome', 'mccomments', 'mcsuggestvideouzenet', 'mcvarakozocomments','mcsuggestvideo'), 'mcvideoinfo'); } else if(kivalasztva.search(/comment/)>0){ mediaCenter.hideEsShow(new Array('mcwelcome', 'mcvideoinfo', 'mcsuggestvideouzenet', 'mcvarakozocomments','mcsuggestvideo'), 'mccomments'); if(kivalasztva.search(/add/i)>0) mediaCenter.textBoxKezelo.addCommentsKezelo(); else mediaCenter.textBoxKezelo.getComments(); } if(e) Event.stop(e);return false; }, addCommentsClickCsatolo : function(){ //az add comments linkhez kell eseménykezelőt csatolni, mert ahogy a textbox változik a link többször is megsemmisül var aLink = $$('#mcfrisscomments a'); aLink = aLink[0]; if(aLink == undefined) aLink = $('mcaddnewcomment'); Event.observe(aLink, 'click', mediaCenter.textBoxKezelo.addCommentsKezelo.bindAsEventListener(aLink)); }, addCommentsKezelo : function(e){ //add comments link kezelése, post id átadása //a from megjelenítése mediaCenter.hideEsShow(new Array('mcvideoinfo','mcfrisscomments'),new Array('mccomments','mcaddcomments')); mediaCenter.textBoxKezelo.setCommentId(); //submit saját kezlés var commentsubmit = $('submit'); Event.observe(commentsubmit, 'click', mediaCenter.textBoxKezelo.submitCommentsKezelo.bindAsEventListener(commentsubmit)); if(e) Event.stop(e);return false; }, submitCommentsKezelo : function(e){ //submit kezelése a comment formban comment = {} comment.author = $('author'); comment.email = $('email'); comment.comment = $('comment'); comment.comment_post_ID = $('comment_post_ID'); //a wp hibaüzenetek elkerülése végett elküldés előtt muszály itt is validálni a tartalmat valid = {}; valid.author = mediaCenter.validator('notempty',comment.author.value); valid.email = mediaCenter.validator('email',comment.email.value); valid.comment = mediaCenter.validator('notempty',comment.comment.value); if(valid.author && valid.email && valid.comment){ //elküldhető mediaCenter.hideEsShow('mcaddcomments','mcvarakozocomments'); var container = $('mcvarakozocomments'); var url = './wp-comments-post.php'; var params; params = '&author=' + encodeURI(comment.author.value) + '&email=' + encodeURI(comment.email.value); params = params + '&comment=' + encodeURI(comment.comment.value) + '&submit=' + encodeURI($('submit').value) + '&comment_post_ID=' + encodeURI(comment.comment_post_ID.value); //törlni kell a formból az adatokat comment.author.value = comment.email.value = comment.comment.value = comment.comment_post_ID.value = ''; var ajax = new Ajax.Updater( container, url, { method: 'post', parameters: params, onLoading: mediaCenter.mcLoading(container), onComplete : function(){mediaCenter.hideEsShow('mccomments','mcvarakozocomments');} } ); } else{ //nem küldhető el, hibaüzenet kell if(!valid.author) Effect.Shake(comment.author.id); if(!valid.email) Effect.Shake(comment.email.id); if(!valid.comment) Effect.Shake(comment.comment.id); } if(e) Event.stop(e);return false; }, setCommentId : function(){ //beállítja a comment form hidden elemének értékét a post idhez /* ha nincs az if akkor a thumbek egy hozzáadott hozzászólás esetén elvesztik az általunk írt onClick kezelőt, és tényleges page refresht csinál */ var cpI = $('comment_post_ID'); if( cpI != undefined) cpI.value = mediaCenter.aktualVideo; var masikstop; }, getComments : function(e){ //friss hozzászólások mediaCenter.hideEsShow(new Array('mcaddcomments','mcvideoinfo'), new Array('mccomments','mcfrisscomments')); //csak akkor kell lekérni ha a lejátszóablakban más sorszámú video (aktualVideo) van mint aminek a commentjeit legutóbb lekértük, vagy még nem kértük le egyszer sem és nem az első videónál vagyunk var addNewCommentLink = $('mcaddnewcomment'); if(addNewCommentLink == undefined){ addNewCommentLink = $$('#mcfrisscomments a'); addNewCommentLink = addNewCommentLink[0]; } if(addNewCommentLink != undefined){ var idMostCommentben = addNewCommentLink.search.split('='); } if((mediaCenter.mcGetSzoveg($('mcfrisscomments')) == undefined) || (addNewCommentLink == undefined) || ((mediaCenter.aktualVideo != idMostCommentben[1]) && !mediaCenter.elsoVideo)){ var container = $('mcfrisscomments'); //ajax lekérés var params = 'comments=' + mediaCenter.aktualVideo; var ajax = new Ajax.Updater( container, mediaCenter.url, { method: 'get', parameters: params, onLoading: mediaCenter.mcLoading(container), onComplete : mediaCenter.textBoxKezelo.addCommentsClickCsatolo } ); } if(e) Event.stop(e); return false; } }, /*****************************************************************************/ /*SUBMIT A VIDEO KEZELÉS KEZDŐDIK*/ videoSubmitKezelo : function(e){ //submit esetén elküdjük ajax segítségével mailben az ajánlást és kiírunk ide egy köszönő szöveget //todo: ki van töltve minden ellenőrzése var mcTextBoxSuggestVideoUzenet = $('mcsuggestvideouzenet'); //ajax lekérés var params = 'suggest=1' + '&mcVideoUrl=' + encodeURI($('videoUrl').value); var ajax = new Ajax.Updater( mcTextBoxSuggestVideoUzenet, mediaCenter.url, { method: 'post', parameters: params, onLoading: mediaCenter.mcLoading(mcTextBoxSuggestVideoUzenet), onComplete: mediaCenter.hideEsShow(new Array('mcsuggestvideo', 'mccomments', 'mcwelcome', 'mcvarakozocomments', 'mcvideoinfo'), 'mcsuggestvideouzenet') } ); //hack: mindkettő kell ahhoz, hogy opera és safari is kezelni tudja az esemény felfüggesztését if(e) Event.stop(e);return false; }, /*SUBMIT A VIDEO KEZELÉS VÉGE*/ /*****************************************************************************/ /*TEXTBOX KEZELÉS VÉGE*/ /*****************************************************************************/ /*KERESO KEZELÉS KEZDŐDIK*/ keresoKezelo : { inputKezelo: function(){ //maga az autocompleter this.value = ''; new Ajax.Autocompleter('s', 'talalatok', './wp-content/plugins/mediacenter/keres.php', {paramName: 'szo', minChars: 2, updateElement: mediaCenter.keresoKezelo.inputKitolto, indicator:$('searchloading')}); }, inputKitolto : function(kivalasztottElem){ //az autocompleter által visszaadott értéket alakítjuk át és tesszük be az inputba és ezzel submiteljük a tartalamt, így nem kell duplán enterezni //todo: kel ebben az esetben a formKezelo? csak akkor ha garantáltan olyat keres ami nincs? var keresettSzo = mediaCenter.mcGetSzoveg(kivalasztottElem); keresettSzo = keresettSzo.replace(/::/g,'_').split('_'); //keresettSzo[0] : a keresett szó, keresettSzo[1] : típus, keresettSzo[2] : id, keresettSzo[3] : Bhajans var s = $('s'); s.value = keresettSzo[0]; s.blur(); mediaCenter.keresesTipus[0] = keresettSzo[1]; mediaCenter.keresesTipus[1] = keresettSzo[2]; mediaCenter.keresesTipus[2] = keresettSzo[3]; var naviLink = {}; switch(keresettSzo[1]){ //keres.pgp $keres tömbjének kulcsai case mediaCenter.CHANNELS: //ha jelenleg a navilist tags-on van, akkor azt is váltani kell naviLink = mediaCenter.getNaviListDetails(mediaCenter.CHANNELS); if(mediaCenter.mcGetSzoveg(naviLink.aktiv) != mediaCenter.CHANNELS){ //váltsuk át a navilistet channelsre mediaCenter.naviListSwitch(undefined); } //todo: bugfix: 1. DOM felépülés IE6-ban mediaCenter.mcThumblistLapoz(); break; case mediaCenter.TAGS: //ha jelenleg a navilist channels-on van, akkor azt is váltani kell naviLink = mediaCenter.getNaviListDetails(mediaCenter.TAGS); if(mediaCenter.mcGetSzoveg(naviLink.aktiv) != mediaCenter.TAGS){ //váltsuk át a navilistet tagsra mediaCenter.naviListSwitch(undefined); } mediaCenter.mcThumblistLapoz(); break; case 'Title': //a video lejátszása mediaCenter.mcStartVideo(); break; case 'Content': //a video lejátszása mediaCenter.mcStartVideo(); break; default : break; } }, formKezelo : function(e){ //a form submit kezelése var inValidSearch = 'No results'; //meg kell vizsgálni, hogy a this.s.value szóközzel kezdődik-e, van-e benne ::: if(this.s.value.search(/:::/) != -1 || this.s.value.search(inValidSearch) != -1){ //ha vannak benne ::: jelek akkor nem jót választott ki, ne küldjük el, hanem jelezzük, hogy butaságot akar this.s.value = inValidSearch; Effect.Shake(this.s); } else if(this.s.value.substr(0,1) == ''){ //ha igen akkor a listából választott } else{ //ha nem akkor nincs ilyen, máskülönben az autocomplete kidobta volna this.s.value = inValidSearch; } if(e) Event.stop(e);return false; } }, /*KERESO KEZELÉS VÉGE*/ /*****************************************************************************/ /*SEGÉDEK KEZDŐDIK*/ mcLoading : function(elem){ Element.update(elem,'loading...'); }, mcGetSzoveg : function(elem){ //html object szöveg kinyerése //try.these nem használható mert az akkor lép csak tovább ha a próbált függvény hibát dob if(elem.innerText) return elem.innerText; if(elem.text) return elem.text; if(elem.textContent) return elem.textContent; }, hideEsShow : function(toHide,toShow){ //a toHide-okat elrejti, a toShow-kat megmutatja if(toHide){ if((typeof toHide == 'string') || (toHide instanceof String)) $(toHide).className = mediaCenter.REJTETT; else toHide.each(function(elem){ $(elem).className = mediaCenter.REJTETT; }); } if(toShow){ if((typeof toShow == 'string') || (toShow instanceof String)) $(toShow).className = ''; else toShow.each(function(elem){ $(elem).className = ''; }); } }, urlKezelo : function(){ //url-ek kezelése mediaCenter.hashUrl = location.hash.split(':'); mediaCenter.hashUrl[0] = mediaCenter.hashUrl[0].replace(/#/,''); if(mediaCenter.hashUrl[0] == mediaCenter.TAGS.toLowerCase()){ mediaCenter.naviListSwitch(); } } /*****************************************************************************/ } //ennek a végén kell szerepelni, hogy az ojjektum már létezzen amikor az eseménykezelőt csatolni akarjuk Event.observe(window, 'load', mediaCenter.mcInit);