// Returns an object reference to one or more strings // ignore the fact that there are no arguments to this method // javascript doesn't care how many you send (not strongly typed) // The method checks the actual # of arguments -- returns a single object or an array function $() { var elements = new Array(); for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string'){ element = document.getElementById(element); } if (arguments.length == 1){ return element; } elements.push(element); } return elements; } // Inheritance Object.prototype.extend = function(vSuper) { oSuper = (typeof(vSuper) == 'string') ? eval('new '+vSuper+'()') : vSuper; for (sProperty in oSuper) { this[sProperty] = oSuper[sProperty]; } delete(oSuper); }; // Add a method Object.prototype.method = function(name, func){ this.prototype[name] = func; return this; } // Add a property, getter, and setter Object.prototype.addProperty = function (sType, sName, vValue) { if (sType != '' && sType != null && typeof(vValue) != sType) { if(window.safelog) { safelog("Property " + sName + " must be of type " + sType + ", was " + typeof(vValue) + "."); } else { alert("Property " + sName + " must be of type " + sType + ", was " + typeof(vValue) + "."); } } this[sName] = vValue; var sFuncName = sName.charAt(0).toUpperCase() + sName.substring(1, sName.length); this['get' + sFuncName] = function () { return this[sName] }; this['set' + sFuncName] = function (vNewValue) { if (sType != '' && sType != null && typeof(vNewValue) != sType) { if(window.safelog) { safelog("Property " + sName + " must be of type " + sType + ", was " + typeof(vValue) + "."); } else { alert("Property " + sName + " must be of type " + sType + ", was " + typeof(vValue) + "."); } } this[sName] = vNewValue; }; } var CONST_CACHE_ELEMENT_SEPERATOR = '%!%'; var CONST_CACHE_VALUE_SEPERATOR = '~!~'; function Cache(){ this.addProperty('', 'dictionary', new Array()); with(Cache){ method('get', function(key){ if(typeof(this.getDictionary()[key]) == 'undefined'){ return null; } return this.getDictionary()[key].value; }); method('put', function(key, value){ var val = new Object; val.key = key; val.value = value; this.getDictionary()[key] = val; }); method('remove', function(key){ this.getDictionary()[key] = 'undefined'; }); method('toMemento', function(){ var str = ''; for(x in this.getDictionary()){ if(typeof(this.getDictionary()[x]) == 'undefined' || typeof(this.getDictionary()[x].key) == 'undefined'){ continue; } str += this.getDictionary()[x].key + CONST_CACHE_VALUE_SEPERATOR + this.getDictionary()[x].value + CONST_CACHE_ELEMENT_SEPERATOR; } return str; }); method('fromMemento', function(memento){ var array = memento.split(CONST_CACHE_ELEMENT_SEPERATOR); this.setDictionary(new Object()); for(x in array){ if(array[x] == '' || typeof(array[x]) == 'undefined' || array[x] == null || typeof(array[x]) == 'function'){ continue; } var item = array[x].split(CONST_CACHE_VALUE_SEPERATOR); this.put(item[0], item[1]); } }); } } function CookieManager() { } CookieManager.prototype = { cookiesParsed: false, IFILMCookiesParsed: false, unparsedcookie: null, cookiePairs: [], cookies: {}, IFILMCookies: {}, JSONCookies: {}, sessionCookies: {}, CONSTANTS: { DELIMITER: "%!%", ASSIGNER: "~!~", PARAMOBJ: { "max-age": (60*60*24*365), path: "/", domain: "spike.com" } }, get: function(name) { if(!this.cookiesParsed) { this.parse() }; return this.cookies[name] || null; }, getIFILMCookie: function(name) { if(!this.IFILMCookiesParsed) { this.parseIFILMCookies(); } return this.IFILMCookies[name]; }, set: function(name, value, cookieParamObject) { if(!this.cookiesParsed) { this.parse(); } this.cookies[name] = value; var cookieStr = name + "=" + encodeURIComponent(value); var pObj = (cookieParamObject) ? cookieParamObject : this.CONSTANTS.PARAMOBJ; for(var x in pObj) { cookieStr += "; " + x + "=" + pObj[x]; } document.cookie = cookieStr; }, remove: function(name) { this.set(name, "", { "max-age": 0 }); }, setIFILMCookie: function(name, value) { if(!this.IFILMCookiesParsed) { this.parseIFILMCookies(); } this.IFILMCookies[name] = value; var cookieAr = []; for(var x in this.IFILMCookies) { if(this.IFILMCookies[x]) { cookieAr.push(x + this.CONSTANTS.ASSIGNER + this.IFILMCookies[x]); } } var cookieString = cookieAr.join(this.CONSTANTS.DELIMITER); this.set("ifilmMetaCookie", cookieString); }, removeIFILMCookie: function(name) { this.setIFILMCookie(name, null); }, parse: function() { this.unparsedcookie = document.cookie; this.cookiePairs = document.cookie.split("; "); for(var x=0; x= 1024) { monitor = '&mon=high'; } else { monitor = '&mon=low'; } return monitor } mon = screenSniff(); var CONST_PLAYER_URL = "/player/"; var CONST_PLAYER_COMPACT = "/player/compact.jsp"; var CONST_PREFERENCES_URL = "/player/preferences.jsp"; var CONST_MEDIA_INFO_URL = "/player/mediainfo.jsp"; var CONST_AD_TAG_URL = "/player/AdTag"; var CONST_MEDIA_TYPE_FLV="FLV"; var CONST_MEDIA_TYPE_WMP = "WMP"; var CONST_MEDIA_TYPE_QT = "QT"; var CONST_MEDIA_TYPE_FLASH = "FLASH"; var CONST_MEDIA_TYPE_REAL = "REAL"; var CONST_MEDIA_BANDWIDTH_56 = "56"; var CONST_MEDIA_BANDWIDTH_200 = "200"; var CONST_MEDIA_BANDWIDTH_300 = "300"; var CONST_MEDIA_BANDWIDTH_500 = "500"; var CONST_MEDIA_BANDWIDTH_56_DESC = "Dial-up (Low)"; var CONST_MEDIA_BANDWIDTH_200_DESC = "Broadband (Medium)"; var CONST_MEDIA_BANDWIDTH_300_DESC = "Broadband (High)"; var CONST_MEDIA_BANDWIDTH_500_DESC = "Super Pass (Subscription Required)"; var CONST_MEDIA_BANDWIDTH_AVAILABLE = new Array(CONST_MEDIA_BANDWIDTH_56, CONST_MEDIA_BANDWIDTH_200, CONST_MEDIA_BANDWIDTH_300); var CONST_FLV_BANDWIDTH_AVAILABLE = new Array(CONST_MEDIA_BANDWIDTH_300); var CONST_REAL_BANDWIDTH_AVAILABLE = new Array(CONST_MEDIA_BANDWIDTH_56, CONST_MEDIA_BANDWIDTH_200, CONST_MEDIA_BANDWIDTH_300); var CONST_MEDIA_DESC_AVAILABLE = new Array(CONST_MEDIA_BANDWIDTH_56_DESC, CONST_MEDIA_BANDWIDTH_200_DESC, CONST_MEDIA_BANDWIDTH_300_DESC); var CONST_MEDIA_FLV_DESC_AVAILABLE = new Array(CONST_MEDIA_BANDWIDTH_300_DESC); var CONST_MEDIA_REAL_DESC_AVAILABLE = new Array(CONST_MEDIA_BANDWIDTH_56_DESC, CONST_MEDIA_BANDWIDTH_200_DESC, CONST_MEDIA_BANDWIDTH_300_DESC); var CONST_PLAYER_BANDWIDTH_COOKIE = "playerBandwidth"; var CONST_PLAYER_MEDIA_TYPE_COOKIE = "playerMediaType"; var CONST_PLAYER_PLACE_COOKIE = "ifilmPlayerPlace"; var CONST_PLAYER_SKIN_COOKIE = "playerSkin"; var CONST_PLAYER_REFSITE_COOKIE = "playerRefsite"; var CONST_PLAYER_SIZE_COOKIE = "playerSize"; var CONST_LAST_AD_SEEN_COOKIE = "lastAdSeen"; var CONST_LAST_AD_BUTTON_COOKIE = "lastAdButton"; var CONST_PLAYER_CONTEXT_COOKIE = "context"; var CONST_PLAYER_CONTEXT_DATA_COOKIE = "cData"; var CONST_MEDIA_TYPE_STREAMING = "Streaming"; var CONST_MEDIA_TYPE_COMPOSITE_STREAMING = "CompositeStreaming"; var CONST_MEDIA_TYPE_VECTOR = "Vector"; var CONST_PLAY_MEDIA_EVENT = "PlayMediaEvent"; var CONST_RECORD_IMPRESSION_EVENT = "RecordImpressionEvent"; var CONST_TRACK_MEDIA_INFO_EVENT = "TrackMediaInfoEvent"; var CONST_START_MEDIA_EXPERIENCE_EVENT = "StartMediaExperienceEvent"; var CONST_START_FFMEDIA_EXPERIENCE_EVENT = "StartFFMediaExperienceEvent"; var CONST_AD_TESTING_EVENT = "AdTestingEvent"; var CONST_ENQUE_ADS_EVENT = "EnqueAdsEvent"; var CONST_MEDIA_TYPE_CHANGING_EVENT = "MediaTypeChangingEvent"; var CONST_MEDIA_END_EVENT = "MediaEndEvent"; var CONST_INTERVAL_EVENT = "IntervalEvent"; var CONST_AD_SEEN_EVENT = "AdSeenEvent"; var CONST_PLAY_ADS_AGAIN_EVENT = "PlayAdsAgainEvent"; var CONST_AD_DONE_EVENT = "DoneWithAds"; var CONST_ENQUE_MEDIA_EVENT = "EnqueMediaEvent"; var CONST_ENQUE_ADDITIONAL_MEDIA_EVENT = "EnqueAdditionalMediaEvent"; var CONST_MEDIA_START_PLAYING_EVENT = "MediaStartPlayingEvent"; var CONST_PLAY_NEXT_IN_SEQUENCE_EVENT = "PlayNextInSequenceEvent"; var CONST_PLAYLIST_PLAY_EVENT = "PlaylistPlayEvent"; var CONST_PLAYLIST_SHOW_PLAYING_EVENT = "PlaylistShowPlayingEvent"; var CONST_AD_INTERVAL_TIME = 5 * (60 * 1000); var CONST_MEDIA_LOADING_MESSAGE = "
Your video is loading...
"; var CONST_MEDIA_AD_MESSAGE = "
Your video will start right after this brief ad, which helps us keep IFILM free to watch. Enjoy.
"; var CONST_READY_FOR_AD_EVENT = "ReadyForAdEvent"; var CONST_USER_AGENT=navigator.userAgent.toLowerCase(); var CONST_BROWSER_IE=(CONST_USER_AGENT.indexOf("msie") != -1 && (CONST_USER_AGENT.indexOf('opera')==-1)); var CONST_BROWSER_FIREFOX=(CONST_USER_AGENT.indexOf("firefox") != -1); var CONST_CLICK_INSTR_TEXT = "Click above to visit sponsor. Your video won't be interrupted."; function getPlayerBandwidth(){ if(typeof(bw) != 'undefined'){ return bw; } var bandwidth = getIFILMCookie(CONST_PLAYER_BANDWIDTH_COOKIE); if(bandwidth == null){ return ""; } return bandwidth; } function getPlayerMediaType(){ if(typeof(mt) != 'undefined'){ return mt; } var media = getIFILMCookie(CONST_PLAYER_MEDIA_TYPE_COOKIE); if(media == null){ return ""; } return media; } function setPlayerPreferences(type, bandwidth){ setIFILMCookie(CONST_PLAYER_BANDWIDTH_COOKIE, bandwidth); setIFILMCookie(CONST_PLAYER_MEDIA_TYPE_COOKIE, type); } function unsetPlayerPreferences(){ setIFILMCookie(CONST_PLAYER_BANDWIDTH_COOKIE, ""); setIFILMCookie(CONST_PLAYER_MEDIA_TYPE_COOKIE, ""); } function setPlayerAttributes(skin,refsite,playerSize){ setIFILMCookie(CONST_PLAYER_SKIN_COOKIE, skin); setIFILMCookie(CONST_PLAYER_REFSITE_COOKIE, refsite); setIFILMCookie(CONST_PLAYER_SIZE_COOKIE, playerSize); } function getPlayerSkin(){ return getIFILMCookie(CONST_PLAYER_SKIN_COOKIE); } function getContext(){ return getIFILMCookie(CONST_PLAYER_CONTEXT_COOKIE); } function getContextData(){ return getIFILMCookie(CONST_PLAYER_CONTEXT_DATA_COOKIE); } function setContext(aContext){ return setIFILMCookie(CONST_PLAYER_CONTEXT_COOKIE, aContext); } function setContextData(aContextData){ return setIFILMCookie(CONST_PLAYER_CONTEXT_DATA_COOKIE, aContextData); } function getPlayerRefsite(){ return getIFILMCookie(CONST_PLAYER_REFSITE_COOKIE); } function getPlayerSize(){ return getIFILMCookie(CONST_PLAYER_SIZE_COOKIE); } function resetForNewPlayer(){ unsetPlayerAttributes(); unsetLastAdSeen(); } function unsetPlayerAttributes(){ setIFILMCookie(CONST_PLAYER_SKIN_COOKIE, ""); setIFILMCookie(CONST_PLAYER_REFSITE_COOKIE, ""); setIFILMCookie(CONST_PLAYER_SIZE_COOKIE, ""); } function setLastAdSeen(time){ setIFILMCookie(CONST_LAST_AD_SEEN_COOKIE, time); } function getLastAdSeen(){ return getIFILMCookie(CONST_LAST_AD_SEEN_COOKIE); } function unsetLastAdSeen(){ return setIFILMCookie(CONST_LAST_AD_SEEN_COOKIE, "", new Date(), "/"); } function setLastAdButton(button){ setIFILMCookie(CONST_LAST_AD_BUTTON_COOKIE, button); } function getLastAdButton(){ return getIFILMCookie(CONST_LAST_AD_BUTTON_COOKIE); } function unsetLastAdButton(){ return setIFILMCookie(CONST_LAST_AD_BUTTON_COOKIE, ""); } function setPlayerPlace(ifilmId, index){ setIFILMCookie(CONST_PLAYER_PLACE_COOKIE, ifilmId+"."+index); } function getPlayerPlaceId(){ var docCookie = getIFILMCookie(CONST_PLAYER_PLACE_COOKIE); if(docCookie == undefined || docCookie.length < 1 || docCookie.indexOf(".") < 0){ return ""; } return docCookie.split(".")[0]; } function getPlayerPlaceIndex(){ var docCookie = getIFILMCookie(CONST_PLAYER_PLACE_COOKIE); if(docCookie == undefined || docCookie.length < 1 || docCookie.indexOf(".") < 0){ return ""; } return docCookie.split(".")[1]; } var CONST_PLAYER_URL = "http://www.spike.com/player/"; var CONST_PREFERENCES_URL = "/player/preferences.jsp"; var CONST_MEDIA_TYPE_WMP = "WMP"; var CONST_MEDIA_TYPE_QT = "QT"; var CONST_MEDIA_TYPE_FLASH = "FLASH"; var CONST_MEDIA_TYPE_REAL = "REAL"; var theURL = CONST_PLAYER_URL; var winName = "Player"; var winArgs = ",scrollbars=no,resizable=no"; var mediaSize = "default"; var difWidth = 0; var difHeight = 0; if (screen.height < 610) { theURL += "compact.jsp"; mediaSize = "compact"; var difWidth = 80; var difHeight = 60; } if (is_win && is_nav && is_major >= 4) { var wndWidth = 780 - difWidth; var wndHeight = 515 - difHeight; var size = 'width=' + wndWidth + ',height=' + wndHeight; } else if ((is_win98 || is_win2000) && is_ie) { var wndWidth = 780 - difWidth; var wndHeight = 513 - difHeight; if (is_sp2==true) { wndHeight = wndHeight + 22; } var size = 'width=' + wndWidth + ',height=' + wndHeight; } else if (is_win && is_ie) { var wndWidth = 780 - difWidth; var wndHeight = 514 - difHeight; //if (is_sp2==true) { // wndHeight = wndHeight + 22; //} var size = 'width=' + wndWidth + ',height=' + wndHeight; } else if (is_mac && is_ie) { var wndWidth = 735 - difWidth; var wndHeight = 465 - difHeight; var size = 'width=' + wndWidth + ',height=' + wndHeight; var theURL = "http://www.spike.com/player/mac.jsp"; } else if (is_mac && is_nav) { var wndWidth = 780 - difWidth; var wndHeight = 515 - difHeight; var size = 'width=' + wndWidth + ',height=' + wndHeight; //var theURL = "/player/mac.jsp"; } else if (is_mac && is_safari) { var wndWidth = 780 - difWidth; var wndHeight = 515 - difHeight; var size = 'width=' + wndWidth + ',height=' + wndHeight; var theURL = "http://www.spike.com/player/mac.jsp"; } else { var wndWidth = 780 - difWidth; var wndHeight = 499 - difHeight; if (is_fx==true) { wndHeight = wndHeight + 22; } var size = 'width=' + wndWidth + ',height=' + wndHeight; } function launchPrefs() { window.open(CONST_PREFERENCES_URL,winName,size+winArgs); } function launchPlayer(ifilmId,pg,skin,refsite) { //v2.0 //setIFILMCookie("lastAdButton", ""); window.open(theURL+"?ifilmId="+ifilmId+"&pg="+pg+"&skin="+skin+"&refsite="+refsite+"&launchVal=1&mediaSize="+mediaSize,winName,size+winArgs); } function changePrefs(pg,skin,refsite) { window.open(CONST_PREFERENCES_URL + "?pg="+pg+"&skin="+skin+"&refsite="+refsite,winName,size+winArgs); }