var imgElementTimeOuts = new Array(); function startThumbnailMotion(imgElement,camId,picId){ if(imgElement instanceof HTMLImageElement){ if(typeof(imgElementTimeOuts[imgElement]) === "number"){ window.clearTimeout(imgElementTimeOuts[imgElement]); } imgElement.src = getThumbnailPath(camId,picId); picId++; picId%=24; imgElementTimeOuts[imgElement] = window.setTimeout(function(){ startThumbnailMotion(imgElement,camId,picId) },265); } } function stopThumbnailMotion(imgElement,camId,picId){ if(imgElement instanceof HTMLImageElement){ window.clearTimeout(imgElementTimeOuts[imgElement]); imgElement.src = getThumbnailPath(camId,picId); } } function getThumbnailPath(camId,thumbnailId){ return "http://www.camnetwork.org/thumbnail_"+camId+"_"+thumbnailId+".jpg"; } var newRatings = new Array(); var oldAvgRatings = new Array(); var oldRatingsCount = new Array(); var preselectedRating = -1; var hasPreselectedRating = false; var hasNewRating = false; function setCamRating(camId,rating){ if(newRatings[camId]===undefined){ //new rating from this user. var ratingElement = $("tab_thiscam_rating_count"); if(ratingElement!==null){ oldRatingsCount[camId] = (parseInt(ratingElement.innerHTML)); if(!hasPreselectedRating){ratingElement.innerHTML = oldRatingsCount[camId]+1}; var avgElement = $("tab_thiscam_rating_rating"); if(avgElement!==null){ oldAvgRatings[camId] = avgElement.innerHTML==="?!?"?0.0:parseFloat(avgElement.innerHTML); } } } if(oldAvgRatings[camId]!==undefined&&oldRatingsCount[camId]!==undefined){ var avgElement = $("tab_thiscam_rating_rating"); if(!hasPreselectedRating){ var avg = (oldAvgRatings[camId]*(oldRatingsCount[camId])+rating)/(oldRatingsCount[camId]+1); }else{ var avg = ((oldAvgRatings[camId]*oldRatingsCount[camId])+rating-preselectedRating)/(oldRatingsCount[camId]); } avgElement.innerHTML = Math.round(avg*10)/10; var img = $("tab_thiscam_img_img"); if(img!==null){img.src = "http://www.camnetwork.org/media/img/cxl"+Math.round(avg)+".png";} request("POST","http://www.camnetwork.org/de/ratecam.js","camId="+camId+"&rating="+rating,null); } newRatings[camId] = rating; hasNewRating = true; for(var i=1;i<=5;i++){ var img = $("camrating_"+camId+"_"+rating); if(img !==null && img instanceof HTMLImageElement){ var img = $("camrating_"+camId+"_"+i); if(i===rating){ img.src = getRatingImageRated(i); }else{ img.src = getRatingImageNonRated(i); } } } } function getRatingImageRated(rating){return "http://www.camnetwork.org/media/img/cs"+rating+".png";} function getRatingImageMouseOut(camId,rating){ if(newRatings[camId]===rating||(!hasNewRating&&rating===preselectedRating)){return getRatingImageRated(rating);} return getRatingImageNonRated(rating); } function setPreSelectedRating(r){ preselectedRating = r; hasPreselectedRating = true; } function getRatingImageNonRated(rating){return "http://www.camnetwork.org/media/img/csl"+rating+".png";} function setDeLink(link){ var e = document.getElementById("deLink"); if(e!=null){e.href=link;} } function setEnLink(link){ var e = document.getElementById("enLink"); if(e!=null){e.href=link;} } function setCamThumbnailBorder(imgElement){ imgElement.style.borderWidth="2px"; imgElement.style.padding="1px"; imgElement.style.borderColor='black'; } function removeCamThumbnailBorder(imgElement){ imgElement.style.borderColor='transparent'; } function getTranslationLinkUpdateObserver(params){ if( (typeof params) == "object" ){ return function(identifier){ var i; for( i = 0; i < params.length; i++){ var e = document.getElementById(params[i][0]); if( e != null && (typeof e) == 'object'){ e.href = params[i][1]+identifier; } } }; }else{ return function(camnetwork){}; } } function Camnetwork(){} /** * the function returns a camId, parsed from a link or false */ Camnetwork.getCamIdByLink = function(link){ var regex, matches; if( ROUTE_SHOW_CAM!=null ){ //route exists regex = /.+?#(.*)/; matches = link.match( regex ); if( matches!=null && matches.length === 2 ){ matches = ROUTE_SHOW_CAM.getParams( matches[1] ); if( !isNaN(parseFloat( matches[0] )) && isFinite( matches[0] ) ){ return matches[0]; } } } //here no return has been made yet, so in the location hash no camId was found. regex = /http:\/\/www.camnetwork.org\/(?:de|en)\/webcam_(\d+)_.*?/; matches = link.match( regex ); if( matches!=null && matches.length === 2 ){ return matches[1]; } return false; }; /** * the function returns a geoId, parsed from a link or false */ Camnetwork.getGeoIdByLink = function(link){ var regex, matches; regex = /http:\/\/www.camnetwork.org\/(?:de|en)\/Webcams_in_.+?_(\d+).html/; matches = link.match(regex); if( matches!=null && matches.length===2 ){ return matches[1]; } return false; }; Camnetwork.checkContentBoxSize = function(){ var height, width, newHeight; var con = $('content'); if(con){ height = con.offsetHeight; width = con.offsetWidth; newHeight = (width/13.0)*10; if( newHeight+10 > height ){ con.style.height = newHeight+'px'; } } }; Camnetwork.showSearchInteraction = function(element){ Utils.fade('in', 2000, element); }; Camnetwork.getSearchInteractionIds = function(){ return ["main_search_interaction_box_1", "main_search_interaction_box_2", "top_search_interaction_box"]; };