var FeedMillClient = function() { var script = null; var status = 0; var loadedJSON; var safetyTimeout = 0; var config = { feedMillURLServer: "http://feedmill.netstellar.com/api/PublishedFeedGroup.json", clientURLServer: "http://www.optimum.net/images/feedmill/api/PublishedFeedGroup" } var checkType = function() { if(window.location.href.match(/[a-z]*:\/\/preview/)) { return "S" } else { return "P" } return "P"; } var uri = []; var createScript = function(uri) { script = document.createElement("script"); script.type = 'text/javascript'; script.src = uri; document.getElementsByTagName('head')[0].appendChild(script); } var loaded = function(json) { if(json) { loadedJSON = json; clearTimeout(safetyTimeout); if(loadedJSON && loadedJSON.published) { setStatus(1); callback[loadedJSON.published.feedGroup](loadedJSON); } else { if(loadedJSON.error) { alert(loadedJSON.error); } } } else { sendRequest(config.feedMillURLServer); } } var sendRequest = function(script) { createScript(script); var u = navigator.userAgent.toLowerCase(); var ie = false; safetyTimeout = setTimeout(function() { loaded(); }, 10000); } var setStatus = function(s) { status = s; } var prepareUrl = function(args, type) { uri.push(["clientId=",encodeURIComponent('cablevision')]); if("feedGroupName" in args) { uri.push(["feedGroupName=", encodeURIComponent(args["feedGroupName"])]); } uri.push(["target=", checkType()]); if("maxImages" in args) { uri.push(["maxImages=", args["maxImages"]]); } if("imagesOnFirstPositionOnly" in args) { uri.push(["imagesOnFirstPositionOnly=", (args["imagesOnFirstPositionOnly"])?"true":"false"]); } if("imageSizes" in args) { try { var imageSizes = []; (function(arr) { switch(typeOf(arr)) { case 'string': imageSizes.push("-1x-1"); break; case 'object': imageSizes.push(arr.width + "x" + arr.height); break; case 'array': var len = arr.length; for(var i=0; i < len; i++) { arguments.callee(arr[i]); } break; } })(args["imageSizes"]); uri.push(["imageSizes=", imageSizes.join(",")]); } catch(e) { } } } var joinUrl = function(type) { if(type == '_') { var url = ""; for(var i = 0, l=uri.length; i < l; i++) { url += "_" + uri[i][1]; } } else { var url = "?"; for(var i = 0, l=uri.length; i < l; i++) { url += uri[i].join(""); if(i < l-1) { url += "&" } } } return url; } var typeOf = function(value) { var s = typeof value; if (s === 'object') { if (value) { if (typeof value.length === 'number' && !(value.propertyIsEnumerable('length')) && typeof value.splice === 'function') { s = 'array'; } } else { s = 'null'; } } return s; } var callback = {}; return { getFeedGroup: function() { var args = arguments[0]; prepareUrl(args); var timestamp = +new Date; config.clientURLServer += joinUrl("_") + ".json?ts=" + timestamp; config.feedMillURLServer += joinUrl(); callback[args.feedGroupName] = arguments[1]; sendRequest(config.clientURLServer); }, getResponse: function(json) { loaded(json); } } }();