Type.registerNamespace("MySpace");
Type.registerNamespace("MySpace.UI");
Date.prototype.addMilliseconds = function(value){
///
this.setTime(this.getTime() + value);return this;
}
Date.prototype.addSeconds = function(value){
///
this.addMilliseconds(value*1000);return this;
}
Date.prototype.addMinutes = function(value){
///
this.addMilliseconds(value*60000);return this;
}
Date.prototype.addHours = function(value){
///
this.addMilliseconds(value*3600000);return this;
}
Date.prototype.addDays = function(value){
///
this.setDate(this.getDate()+value);return this;
}
Date.prototype.addMonths = function(value){
///
this.setMonth(this.getMonth()+value);return this;
}
Date.prototype.addYears = function(value){
///
this.setFullYear(this.getFullYear()+value);return this;
}
//
MySpace.UI.hideElements = function(tagNames, TorF){
///
///
for(var j=0;j
document.body.appendChild(element);
MySpace.UI._Overlay.initializeBase(this,[element]);
}
MySpace.UI._Overlay.prototype = {
_interval: null,_fadeIn: false,_opacity: 0,_max: 60,_fadeDelegate:null,_resizeHandler:null, _step:20,
show: function(){MySpace.UI.hideElements(["iframe","object","embed"],true);this._fade(true);},
hide: function(){MySpace.UI.hideElements(["iframe","object","embed"],false);this._fade(false);},
add_fadeComplete:function(handler){
///
this.get_events().addHandler("fadeComplete", handler);
},
remove_fadeComplete:function(handler){
///
this.get_events().removeHandler("fadeComplete", handler);
},
initialize:function(){
var element = this.get_element();
element.id = "window_overlay";
element.style.zIndex = "100000";
element.style.width = "100%";
this.set_opacity(0);
Sys.UI.DomElement.setLocation(element,0,0);
this._setHeight();
this._resizeHandler = Function.createDelegate(this, this._setHeight);
$addHandler(window, "resize", this._resizeHandler);
},
_setHeight: function(){
var a=document.body.scrollHeight;//scrolled content
var b=document.documentElement.clientHeight;//no scroll
var c=document.documentElement.scrollHeight;//ie7 friendly
a = ((a>c)?a:c);
this.get_element().style.height=((a>b)?a:b)+"px";
},
_fade: function(fadeIn){
///
this._fadeIn = fadeIn;
if(fadeIn) this.set_visible(true);
if(!this._fadeDelegate)this._fadeDelegate = Function.createDelegate(this,this._tick);
this._interval = window.setInterval(this._fadeDelegate, 100);
},
_tick: function(){
if(!this._interval) return;
var increase = this._step;
if(!this._fadeIn) increase*=-1;
var newOpacity = this._opacity + increase;
if(newOpacity<0) newOpacity = 0;
else if(newOpacity>this._max) newOpacity = this._max;
this.set_opacity(newOpacity);
if(newOpacity<=0 || newOpacity>=this._max){
window.clearInterval(this._interval);
var fadeComplete = this.get_events().getHandler("fadeComplete");
if (fadeComplete) fadeComplete(this, Sys.EventArgs.Empty);
}
},
get_opacity:function(){return this._opacity;},
set_opacity: function(value){
///
this._opacity = value;
var s = this.get_element().style;
s.opacity = value*.01;
s.filter = "alpha(opacity="+value+")";
if(value===0) this.set_visible(false);
},
dispose:function(){
$removeHandler(window, "resize", this._resizeHandler);
this._fadeDelegate=null;
MySpace.UI._Overlay.callBaseMethod(this, 'dispose');
}
}
MySpace.UI._Overlay.registerClass('MySpace.UI._Overlay', Sys.UI.Control);
window.get_overlay = function(){if(!window._overlay)window._overlay=$create(MySpace.UI._Overlay,null,null,null,document.createElement("div"));return window._overlay;};
MySpace.UI._Popup = function(element){
///
this._box = element.firstChild;
MySpace.UI._Popup.initializeBase(this,[element]);
}
MySpace.UI._Popup.prototype = {
_box:null,
_state:null,
_defaultButton:null,
_callback:null,
get_state: function(){return this._state;},
set_state: function(value){this._state = value;},
get_title: function(){return this._box.childNodes[1].innerHTML;},
set_title: function(value){this._box.childNodes[1].innerHTML = value;},
get_content: function(){return this._box.childNodes[2].innerHTML;},
set_content: function(value){this._box.childNodes[2].innerHTML = value;},
get_callback: function(){return this._callback;},
set_callback: function(value){this._callback = value;},
add_button: function(text, isDefault){
var b=document.createElement("input");
b.type="button";
b.value=text;
if(isDefault)
this._defaultButton = b;
$addHandlers(b,{click:this._buttonClick},this);
this._box.lastChild.appendChild(b);
return b;
},
show: function(callBack){
if(MySpace.UI._Popup._activePopup)throw "A Popup is already active.";
if(callBack)this._callBack = callBack;
window.get_overlay().show();
this.set_visible(true);
if(this._defaultButton)this._defaultButton.focus();
MySpace.UI._Popup._activePopup = this;
},
_hide: function(){
window.get_overlay().hide();
this.set_visible(false);
MySpace.UI._Popup._activePopup=null;
},
_buttonClick: function(e){
this._hide();
var cb=this._callBack;
if(cb)cb(this, e);
},
initialize: function(){
var element = this.get_element();
//element should always have a parent becuase it should have been created by a template
element.parentNode.removeChild(element);
document.body.appendChild(element);
this._box.firstChild.isCancel=true; //red-x
$addHandlers(this._box.firstChild,{click:this._buttonClick},this);
MySpace.UI._Popup.callBaseMethod(this, 'initialize');
},
dispose: function(){
var buttons = this._box.lastChild.childNodes;
for(var i=0;i
///
///
///
var temp=document.createElement("div");
temp.innerHTML="";
return $create(MySpace.UI._Popup,{title:title, content:content, callback:callback},null,null,temp.firstChild);
}
MySpace.UI.Popup.generic = function(message, buttonText, callback){
///
///
///
///
var template = document.createElement("div");
var p = MySpace.UI.Popup.create(message,MySpaceRes.Common.Attention);
p.add_button(buttonText);
template.innerHTML=message;
p.show(callback);
return p;
}
MySpace.UI.Popup.alert = function(message, callback){
///
///
new MySpace.UI.Popup.generic(message,callback,MySpaceRes.Common.Ok);
}
MySpace.UI.Popup.confirm = function(message, callback){
///
///
var p=new MySpace.UI.Popup.generic(message,callback,MySpaceRes.Common.Yes);
p.add_button(MySpaceRes.Common.No);
}
MySpace.UI.Popup.registerClass('MySpace.UI.Popup');
MySpace.WebRequest=function(){throw "Cannot instantiate static class.";}
MySpace.WebRequest.invoke = function(path, useGet, params, onSuccess, onFailure, userContext, timeout) {
///
///
///
///
///
///
///
if (!params) params = {};
var request = new Sys.Net.WebRequest();
if (!useGet) {
if(typeof params==="string")
var body = (typeof params!=="string")? Sys.Serialization.JavaScriptSerializer.serialize(params) : params;
if (body === "{}") body = "";
request.set_body(body);
}
request.set_url(Sys.Net.WebRequest._createUrl(path, (useGet)?params:{}));
request.add_completed(onComplete);
if (timeout && timeout > 0) request.set_timeout(timeout);
request.invoke();
function onComplete(response, eventArgs) {
if (response.get_responseAvailable()) {
var statusCode = response.get_statusCode();
var result = null;
try {
var contentType = response.getResponseHeader("Content-Type");
if (contentType.startsWith("application/json"))
result = response.get_object();
else if (contentType.startsWith("text/xml"))
result = response.get_xml();
else result = response.get_responseData();
} catch (ex) {}
//handle errors
if ((statusCode < 200) || (statusCode >= 300)) {
if (onFailure) {
if (!result) {
result = new Sys.Net.WebServiceError(false , "WebRequest failed for an unknown reason.", "", "");
}
result._statusCode = statusCode;
onFailure(result, userContext);
}
else {//dev doesn't want to handle the error, just alert it
var error;
if (result)
error = result.get_exceptionType() + "-- " + result.get_message();
else error = response.get_responseData();
window.alert("WebRequest Failed: "+error);
}
}
else if (onSuccess) {
onSuccess(result, userContext);
}
}
else {
var msg;
if (response.get_timedOut()) msg = "WebRequest timed out.";
else msg = "WebRequest failed for an unknown reason.";
if (onFailure) onFailure(new Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), userContext);
else alert(msg);
}
}
return request;
}
MySpace.WebRequest.registerClass('MySpace.WebRequest');
MySpace.CMS=function(){throw "Cannot instantiate static class.";}
MySpace.CMS.cache={};
MySpace.CMS.getContent=function(placementId, callback, context){
///
///
///
var cacheItem=MySpace.CMS.cache[placementId];
if(cacheItem && new Date() < cacheItem.expire) {
callback(cacheItem.response);
return null;
}
MySpace.WebRequest.invoke("../x.myspace.com/Modules/Common/HttpHandlers/CMS.ashx", false, "placementId="+placementId, _onComplete, null, context, 0);
function _onComplete(response, eventArgs) {
var expire = new Date();
expire.setTime(expire.getTime()+120000);//2 minute cache
MySpace.CMS.cache[placementId] = {response:response,expire:expire};
if(callback) callback(response, eventArgs);
}
return null;
}
MySpace.CMS.track=function(id){
///
MySpace.WebRequest.invoke("../x.myspace.com/Modules/Common/HttpHandlers/CMSClick.ashx@_i="+id, true, null, null, Function.emptyFunction, null, 0);
}
MySpace.CMS.registerClass('MySpace.CMS');
MySpace.Util=function(){throw "Cannot instantiate static class.";}
MySpace.Util.parseNameValuePair=function(nameValuePair, delimiter, modifier){
///
///
///
///
if(!delimiter) delimiter="=";
if(!nameValuePair || nameValuePair[0]===delimiter) return null;
var nameValueObject;
var pos=nameValuePair.search(delimiter);
if(pos>0){
nameValueObject={
name:nameValuePair.substring(0,pos),
value:nameValuePair.substring(pos+1)
}
}
else nameValueObject={name:nameValuePair,value:""};
if(modifier) nameValueObject=modifier(nameValueObject);
return nameValueObject;
}
MySpace.Util.parseNameValuePairs=function(nameValuePairs, pairDelimiter, nameValueDelimiter, nameValueModifier){
///
///
///
///
///
var _collection=null,nameValuePair=null;
var _pairs = nameValuePairs.split(pairDelimiter);
for(var i=0;i<_pairs.length;i++){
nameValuePair=MySpace.Util.parseNameValuePair(_pairs[i],nameValueDelimiter,nameValueModifier);
if(!nameValuePair) continue;
if(!_collection) _collection={};
_collection[nameValuePair.name]=nameValuePair.value;
}
return _collection;
}
MySpace.Util.registerClass('MySpace.Util');
MySpace.Cookie=function(name, rawValue){
///
///
this._name = name;
this._rawValue = rawValue;
this._value = unescape(rawValue);
this._values = MySpace.Util.parseNameValuePairs(rawValue,"&",null,this._modifier);
}
MySpace.Cookie.prototype={
get_name:function(){return this._name;},
get_value:function(){return this._value;},
get_values:function(){return this._values;},
_modifier:function(nameValueObject){
if(!nameValueObject.value) return null;
nameValueObject.value=unescape(nameValueObject.value);
return nameValueObject;
},
toString:function(){
///
var valuesArray=[];
var values=this.get_values();
if(!values) return this.get_value();
for(var i in values)
valuesArray[valuesArray.length] = i+"="+escape(values[i]);
return valuesArray.join("&");
}
}
MySpace.Cookie.registerClass('MySpace.Cookie');
MySpace._Cookies=function(){
var nvc = MySpace.Util.parseNameValuePairs(document.cookie,/\s?;\s?/,null);
for(var name in nvc)
this[name] = new MySpace.Cookie(name, nvc[name]);
}
MySpace._Cookies.prototype={
save:function(cookie,domain,expires){
///
///
///
var value=cookie.toString();
var parts=[cookie.get_name()+"="+value];
if(domain){
if(domain!=="localhost" && domain.charAt(0)!==".")
throw Error.invalidOperation("domain must start with '.'");
parts[1]="domain="+domain;
}
if(expires)parts[parts.length]="expires="+expires.toGMTString();
parts[parts.length]="path=/";
document.cookie = parts.join("; ");
MySpace.Cookies=new MySpace._Cookies();
},
remove:function(cookieName, domain){
///
this.save(new MySpace.Cookie(cookieName,""),domain,new Date().addDays(-1));
}
}
MySpace._Cookies.registerClass('MySpace._Cookies');
MySpace.Cookies=new MySpace._Cookies();
//Sitewide implimentations of global controls
if(typeof MySpace.Cookies.MSCulture!=='undefined'){
var d = new Date();
d.setMonth(0);
if(typeof updateClientTimeZone !== 'undefined')
{
if(updateClientTimeZone == 1)
MySpace.Cookies.MSCulture.get_values().clientTimeZone=(d.getTimezoneOffset()/-60)+8;
else
MySpace.Cookies.MSCulture.get_values().timeZone=(d.getTimezoneOffset()/-60)+8;
}
else
MySpace.Cookies.MSCulture.get_values().clientTimeZone=(d.getTimezoneOffset()/-60)+8;
MySpace.Cookies.save(MySpace.Cookies.MSCulture,".myspace.com",new Date().addDays(7));
}
MySpace.UI.Header=function(){throw "Cannot instantiate static class.";}
MySpace.UI.Header.languageLinkClick=function(culture, domain, index){
///
///
///
MySpace.CMS.getContent("language_toggle"+index,_contentRetrieved);
function _contentRetrieved(content){
var fcontent = content;
var currentculture = MySpace.Cookies.MSCulture.get_values().PreferredCulture;
fcontent = fcontent.replace("COLOR: ; display: none' id='" + currentculture + "->" + culture + "'", "COLOR: blue; display:' id='" + currentculture + "->" + culture + "'");
fcontent = fcontent.replace("COLOR: ; display: none' id='" + culture + "->" + culture + "'", "COLOR: red; display:' id='" + culture + "->" + culture + "'");
fcontent = fcontent.replace("COLOR: ; display: none' id='" + currentculture + "'", "COLOR: blue; display:' id='" + currentculture + "->" + culture + "'");
fcontent = fcontent.replace("COLOR: ; display: none' id='" + culture + "'", "COLOR: red; display:' id='" + culture + "->" + culture + "'");
var p = MySpace.UI.Popup.create(fcontent,MySpaceRes.Common.Attention);
p.add_button(MySpaceRes.Header.Continue);
p.add_button(MySpaceRes.Header.Cancel, true).isCancel=true;
p.set_state({culture:culture, domain:domain});
p.addCssClass("popupChangeLanguage");
p.show(_popupCallback);
}
function _popupCallback(sender, args){
var state=sender.get_state();
if(args.target.isCancel) //clicked cancel
{
Sys.Net.WebServiceProxy.invoke("../x.myspace.com/Services/GeoLocation.asmx", "DenyPreferredCultureChange", false, {culture:state.culture}, null, null, null, 0);
return;
}
//if they are logged in,there **SHOULD** be a checkbox
var c=sender._box.childNodes[2].getElementsByTagName("input");
if(c.length>0 && c[0].checked){//Persist user's language
Sys.Net.WebServiceProxy.invoke("../x.myspace.com/Services/GeoLocation.asmx", "SavePreferredCulture", false, {culture:state.culture}, _goToDomain, null, null, 0);
}
else
{
Sys.Net.WebServiceProxy.invoke("../x.myspace.com/Services/GeoLocation.asmx", "SetPreferredCulture", false, {culture:state.culture}, _goToDomain, null, null, 0);
}
}
function _goToDomain(){//needed for callback
var t = window.location;
if(domain.length > 0)
{
window.location = "http://" + domain;
}
else
window.location.reload(true);
}
}
MySpace.UI.Header.registerClass('MySpace.UI.Header');
MySpace.IM = function(){throw "Cannot instantiate static class.";}
MySpace.IM.get_info = function(){
switch(Sys.Browser.agent) {
case Sys.Browser.InternetExplorer:
var objMySpaceIMX= new ActiveXObject("MySpaceIMX.MySpaceIMPlugin.1");
if(typeof objMySpaceIMX ==="undefined") return null;
var IMVer = (objMySpaceIMX.GetMSIMVersion)? objMySpaceIMX.GetMSIMVersion() : 0;
return {ver:IMVer,hasSkype:(IMVer>0)};
break;
case Sys.Browser.Firefox:
//case Sys.Browser.Safari:
//case Sys.Browser.Opera:
if(!navigator.mimeTypes || navigator.mimeTypes.length < 0) return null;
var plugin = navigator.mimeTypes["application/myspaceim.1"];
if(plugin) return {ver:"1.0.719",hasSkype:true};
else{
plugin = navigator.mimeTypes["application/myspaceim"]
if(plugin) return {ver:"0",hasSkype:false};
}
default:
return null;
}
}
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();