/*
 * jQuery 1.2.6 - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig, http://jquery.com/
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
 * $Rev: 5685 $
 */
(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
function MibAjaxCache()
{
}
MibAjaxCache.prototype.items = this.items = Array();
MibAjaxCache.prototype.Add = function(item)
{
this.items.push(item);
}
MibAjaxCache.prototype.Get = function(url)
{
for (var i = 0; i < this.items.length; i++)
{
if (this.items[i].cacheKey == url)
{
return this.items[i];
}
}
return null;
}
function MibAjaxManager()
{
}
MibAjaxManager.prototype.CreateLoading = function() { };
MibAjaxManager.prototype.DestroyLoading = function() { };
MibAjaxManager.prototype.Cache = new MibAjaxCache();
MibAjaxManager.prototype.Get = function(url, useCache, beginRequest, parseRequest, endRequest, requestError, contentType)
{
var urlPath = url.toString().split(/\?/)[0];
var data = url.toString().split(/\?/)[1];
if (!contentType) contentType = 'html';
if (!data) data = {}; // FDB: jQuery breaks if you use POST with undefined data
var item =
{
beforeSend: beginRequest,
type: "POST",
cacheKey: url,
url: urlPath,
data: data,
error: requestError,
complete: endRequest,
cache: useCache,
success: parseRequest,
dataType: contentType
}
if (useCache)
{
var ajaxItem = this.Cache.Get(url);
if (ajaxItem)
{
if (ajaxItem.beforeSend) ajaxItem.beforeSend();
ajaxItem.success(ajaxItem.content);
if (ajaxItem.complete) ajaxItem.complete();
}
else
{
this.Cache.Add(item);
$.ajax(item);
}
}
else
{
$.ajax(item);
}
}
MibAjaxManager.prototype.GetContent = function(url, target, useCache, beginRequest, endRequest, requestError)
{
this.Get(
url,
useCache,
beginRequest ? function() { beginRequest(); mibAjaxManager.CreateLoading(); } : this.CreateLoading,
function(content)
{
$(target).html(content);
this.content = content;
},
endRequest ? function() { endRequest(); mibAjaxManager.DestroyLoading(); } : this.DestroyLoading,
requestError,
'html'
);
}
MibAjaxManager.prototype.GetContentAfter = function(url, target, useCache, beginRequest, endRequest, requestError) {
this.Get(
url,
useCache,
beginRequest ? function() { beginRequest(); mibAjaxManager.CreateLoading(); } : this.CreateLoading,
function(content) {
$(target).after(content);
this.content = content;
},
endRequest ? function() { endRequest(); mibAjaxManager.DestroyLoading(); } : this.DestroyLoading,
requestError,
'html'
);
}
MibAjaxManager.prototype.GetContentBefore = function(url, target, useCache, beginRequest, endRequest, requestError) {
this.Get(
url,
useCache,
beginRequest ? function() { beginRequest(); mibAjaxManager.CreateLoading(); } : this.CreateLoading,
function(content) {
$(target).before(content);
this.content = content;
},
endRequest ? function() { endRequest(); mibAjaxManager.DestroyLoading(); } : this.DestroyLoading,
requestError,
'html'
);
}
MibAjaxManager.prototype.GetJson = function(url, callback, useCache, beginRequest, endRequest, requestError)
{
this.Get(
url,
useCache,
beginRequest ? function() { beginRequest(); mibAjaxManager.CreateLoading(); } : this.CreateLoading,
callback,
endRequest ? function() { endRequest(); mibAjaxManager.DestroyLoading(); } : this.DestroyLoading,
requestError,
'json'
);
}
MibAjaxManager.prototype.GetScript = function(url, callback, useCache, beginRequest, endRequest, requestError)
{
this.Get(
url,
useCache,
beginRequest ? function() { beginRequest(); mibAjaxManager.CreateLoading(); } : this.CreateLoading,
callback,
endRequest ? function() { endRequest(); mibAjaxManager.DestroyLoading(); } : this.DestroyLoading,
requestError,
'script'
);
}
var mibAjaxManager = new MibAjaxManager();
function Url() { }
Url.Build = function(selector, url) {
url = url ? url : "";
var list = jQuery(selector);
if (url.indexOf("?", 0) < 0) {
url += "?";
}
else {
url += "&";
}
for (var i = 0; i < list.length; i++) {
url += list[i].id + "=" + list[i].value;
if (i < list.length - 1) {
url += "&";
}
}
return url;
}
function MibTranslationManager()
{
MibTranslationManager.prototype.Length = this.Length = 0;
MibTranslationManager.prototype.Items = new Array();
for (var i = 0; i < arguments.Length; i += 2)
{
if (typeof (arguments[i + 1]) != 'undefined')
{
this.Items[arguments[i]] = arguments[i + 1];
this.Length++;
}
}
MibTranslationManager.prototype.RemoveItem = function(key)
{
var tmpValue;
if (typeof (this.Items[key.toLowerCase()]) != 'undefined')
{
this.Length--;
tmpValue = this.Items[key.toLowerCase()];
delete this.Items[key.toLowerCase()];
}
return tmpValue;
}
MibTranslationManager.prototype.GetItem = function(key)
{
return this.Items[key.toLowerCase()];
}
MibTranslationManager.prototype.SetItem = function(key, value)
{
if (typeof (value) != 'undefined')
{
if (typeof (this.Items[key]) == 'undefined')
{
this.Length++;
}
this.Items[key.toLowerCase()] = value;
}
return value;
}
MibTranslationManager.prototype.HasItem = function(key)
{
return typeof (this.Items[key.toLowerCase()]) != 'undefined';
}
}
var mibTranslation = new MibTranslationManager();
;(function($){var _remove=$.fn.remove;$.fn.remove=function(){$("*",this).add(this).triggerHandler("remove");return _remove.apply(this,arguments);};function isVisible(element){function checkStyles(element){var style=element.style;return(style.display!='none'&&style.visibility!='hidden');}
var visible=checkStyles(element);(visible&&$.each($.dir(element,'parentNode'),function(){return(visible=checkStyles(this));}));return visible;}
$.extend($.expr[':'],{data:function(a,i,m){return $.data(a,m[3]);},tabbable:function(a,i,m){var nodeName=a.nodeName.toLowerCase();return(a.tabIndex>=0&&(('a'==nodeName&&a.href)||(/input|select|textarea|button/.test(nodeName)&&'hidden'!=a.type&&!a.disabled))&&isVisible(a));}});$.keyCode={BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38};function getter(namespace,plugin,method,args){function getMethods(type){var methods=$[namespace][plugin][type]||[];return(typeof methods=='string'?methods.split(/,?\s+/):methods);}
var methods=getMethods('getter');if(args.length==1&&typeof args[0]=='string'){methods=methods.concat(getMethods('getterSetter'));}
return($.inArray(method,methods)!=-1);}
$.widget=function(name,prototype){var namespace=name.split(".")[0];name=name.split(".")[1];$.fn[name]=function(options){var isMethodCall=(typeof options=='string'),args=Array.prototype.slice.call(arguments,1);if(isMethodCall&&options.substring(0,1)=='_'){return this;}
if(isMethodCall&&getter(namespace,name,options,args)){var instance=$.data(this[0],name);return(instance?instance[options].apply(instance,args):undefined);}
return this.each(function(){var instance=$.data(this,name);(!instance&&!isMethodCall&&$.data(this,name,new $[namespace][name](this,options)));(instance&&isMethodCall&&$.isFunction(instance[options])&&instance[options].apply(instance,args));});};$[namespace][name]=function(element,options){var self=this;this.widgetName=name;this.widgetEventPrefix=$[namespace][name].eventPrefix||name;this.widgetBaseClass=namespace+'-'+name;this.options=$.extend({},$.widget.defaults,$[namespace][name].defaults,$.metadata&&$.metadata.get(element)[name],options);this.element=$(element).bind('setData.'+name,function(e,key,value){return self._setData(key,value);}).bind('getData.'+name,function(e,key){return self._getData(key);}).bind('remove',function(){return self.destroy();});this._init();};$[namespace][name].prototype=$.extend({},$.widget.prototype,prototype);$[namespace][name].getterSetter='option';};$.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName);},option:function(key,value){var options=key,self=this;if(typeof key=="string"){if(value===undefined){return this._getData(key);}
options={};options[key]=value;}
$.each(options,function(key,value){self._setData(key,value);});},_getData:function(key){return this.options[key];},_setData:function(key,value){this.options[key]=value;if(key=='disabled'){this.element[value?'addClass':'removeClass'](this.widgetBaseClass+'-disabled');}},enable:function(){this._setData('disabled',false);},disable:function(){this._setData('disabled',true);},_trigger:function(type,e,data){var eventName=(type==this.widgetEventPrefix?type:this.widgetEventPrefix+type);e=e||$.event.fix({type:eventName,target:this.element[0]});return this.element.triggerHandler(eventName,[e,data],this.options[type]);}};$.widget.defaults={disabled:false};$.ui={plugin:{add:function(module,option,set){var proto=$.ui[module].prototype;for(var i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]]);}},call:function(instance,name,args){var set=instance.plugins[name];if(!set){return;}
for(var i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args);}}}},cssCache:{},css:function(name){if($.ui.cssCache[name]){return $.ui.cssCache[name];}
var tmp=$('<div class="ui-gen">').addClass(name).css({position:'absolute',top:'-5000px',left:'-5000px',display:'block'}).appendTo('body');$.ui.cssCache[name]=!!((!(/auto|default/).test(tmp.css('cursor'))||(/^[1-9]/).test(tmp.css('height'))||(/^[1-9]/).test(tmp.css('width'))||!(/none/).test(tmp.css('backgroundImage'))||!(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor'))));try{$('body').get(0).removeChild(tmp.get(0));}catch(e){}
return $.ui.cssCache[name];},disableSelection:function(el){return $(el).attr('unselectable','on').css('MozUserSelect','none').bind('selectstart.ui',function(){return false;});},enableSelection:function(el){return $(el).attr('unselectable','off').css('MozUserSelect','').unbind('selectstart.ui');},hasScroll:function(e,a){if($(e).css('overflow')=='hidden'){return false;}
var scroll=(a&&a=='left')?'scrollLeft':'scrollTop',has=false;if(e[scroll]>0){return true;}
e[scroll]=1;has=(e[scroll]>0);e[scroll]=0;return has;}};$.ui.mouse={_mouseInit:function(){var self=this;this.element.bind('mousedown.'+this.widgetName,function(e){return self._mouseDown(e);});if($.browser.msie){this._mouseUnselectable=this.element.attr('unselectable');this.element.attr('unselectable','on');}
this.started=false;},_mouseDestroy:function(){this.element.unbind('.'+this.widgetName);($.browser.msie&&this.element.attr('unselectable',this._mouseUnselectable));},_mouseDown:function(e){(this._mouseStarted&&this._mouseUp(e));this._mouseDownEvent=e;var self=this,btnIsLeft=(e.which==1),elIsCancel=(typeof this.options.cancel=="string"?$(e.target).parents().add(e.target).filter(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(e)){return true;}
this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){self.mouseDelayMet=true;},this.options.delay);}
if(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)){this._mouseStarted=(this._mouseStart(e)!==false);if(!this._mouseStarted){e.preventDefault();return true;}}
this._mouseMoveDelegate=function(e){return self._mouseMove(e);};this._mouseUpDelegate=function(e){return self._mouseUp(e);};$(document).bind('mousemove.'+this.widgetName,this._mouseMoveDelegate).bind('mouseup.'+this.widgetName,this._mouseUpDelegate);return false;},_mouseMove:function(e){if($.browser.msie&&!e.button){return this._mouseUp(e);}
if(this._mouseStarted){this._mouseDrag(e);return false;}
if(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,e)!==false);(this._mouseStarted?this._mouseDrag(e):this._mouseUp(e));}
return!this._mouseStarted;},_mouseUp:function(e){$(document).unbind('mousemove.'+this.widgetName,this._mouseMoveDelegate).unbind('mouseup.'+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._mouseStop(e);}
return false;},_mouseDistanceMet:function(e){return(Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance);},_mouseDelayMet:function(e){return this.mouseDelayMet;},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return true;}};$.ui.mouse.defaults={cancel:null,distance:1,delay:0};})(jQuery);(function($){$.widget("ui.draggable",$.extend({},$.ui.mouse,{getHandle:function(e){var handle=!this.options.handle||!$(this.options.handle,this.element).length?true:false;$(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==e.target)handle=true;});return handle;},createHelper:function(){var o=this.options;var helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[e])):(o.helper=='clone'?this.element.clone():this.element);if(!helper.parents('body').length)
helper.appendTo((o.appendTo=='parent'?this.element[0].parentNode:o.appendTo));if(helper[0]!=this.element[0]&&!(/(fixed|absolute)/).test(helper.css("position")))
helper.css("position","absolute");return helper;},_init:function(){if(this.options.helper=='original'&&!(/^(?:r|a|f)/).test(this.element.css("position")))
this.element[0].style.position='relative';(this.options.cssNamespace&&this.element.addClass(this.options.cssNamespace+"-draggable"));(this.options.disabled&&this.element.addClass('ui-draggable-disabled'));this._mouseInit();},_mouseCapture:function(e){var o=this.options;if(this.helper||o.disabled||$(e.target).is('.ui-resizable-handle'))
return false;this.handle=this.getHandle(e);if(!this.handle)
return false;return true;},_mouseStart:function(e){var o=this.options;this.helper=this.createHelper();if($.ui.ddmanager)
$.ui.ddmanager.current=this;this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)};this.cssPosition=this.helper.css("position");this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top};this.cacheScrollParents();this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.offsetParent[0]==document.body&&$.browser.mozilla)po={top:0,left:0};this.offset.parent={top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)};if(this.cssPosition=="relative"){var p=this.element.position();this.offset.relative={top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollTopParent.scrollTop(),left:p.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollLeftParent.scrollLeft()};}else{this.offset.relative={top:0,left:0};}
this.originalPosition=this._generatePosition(e);this.cacheHelperProportions();if(o.cursorAt)
this.adjustOffsetFromHelper(o.cursorAt);$.extend(this,{PAGEY_INCLUDES_SCROLL:(this.cssPosition=="absolute"&&(!this.scrollTopParent[0].tagName||(/(html|body)/i).test(this.scrollTopParent[0].tagName))),PAGEX_INCLUDES_SCROLL:(this.cssPosition=="absolute"&&(!this.scrollLeftParent[0].tagName||(/(html|body)/i).test(this.scrollLeftParent[0].tagName))),OFFSET_PARENT_NOT_SCROLL_PARENT_Y:this.scrollTopParent[0]!=this.offsetParent[0]&&!(this.scrollTopParent[0]==document&&(/(body|html)/i).test(this.offsetParent[0].tagName)),OFFSET_PARENT_NOT_SCROLL_PARENT_X:this.scrollLeftParent[0]!=this.offsetParent[0]&&!(this.scrollLeftParent[0]==document&&(/(body|html)/i).test(this.offsetParent[0].tagName))});if(o.containment)
this.setContainment();this._propagate("start",e);this.cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour)
$.ui.ddmanager.prepareOffsets(this,e);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(e);return true;},cacheScrollParents:function(){this.scrollTopParent=function(el){do{if(/auto|scroll/.test(el.css('overflow'))||(/auto|scroll/).test(el.css('overflow-y')))return el;el=el.parent();}while(el[0].parentNode);return $(document);}(this.helper);this.scrollLeftParent=function(el){do{if(/auto|scroll/.test(el.css('overflow'))||(/auto|scroll/).test(el.css('overflow-x')))return el;el=el.parent();}while(el[0].parentNode);return $(document);}(this.helper);},adjustOffsetFromHelper:function(obj){if(obj.left!=undefined)this.offset.click.left=obj.left+this.margins.left;if(obj.right!=undefined)this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left;if(obj.top!=undefined)this.offset.click.top=obj.top+this.margins.top;if(obj.bottom!=undefined)this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top;},cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};},setContainment:function(){var o=this.options;if(o.containment=='parent')o.containment=this.helper[0].parentNode;if(o.containment=='document'||o.containment=='window')this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,$(o.containment=='document'?document:window).width()-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.element.css("marginRight"),10)||0),($(o.containment=='document'?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.element.css("marginBottom"),10)||0)];if(!(/^(document|window|parent)$/).test(o.containment)){var ce=$(o.containment)[0];var co=$(o.containment).offset();var over=($(ce).css("overflow")!='hidden');this.containment=[co.left+(parseInt($(ce).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left,co.top+(parseInt($(ce).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top,co.left+(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.element.css("marginRight"),10)||0),co.top+(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.element.css("marginBottom"),10)||0)];}},_convertPositionTo:function(d,pos){if(!pos)pos=this.position;var mod=d=="absolute"?1:-1;return{top:(pos.top
+this.offset.relative.top*mod
+this.offset.parent.top*mod
-(this.cssPosition=="fixed"||this.PAGEY_INCLUDES_SCROLL||this.OFFSET_PARENT_NOT_SCROLL_PARENT_Y?0:this.scrollTopParent.scrollTop())*mod
+(this.cssPosition=="fixed"?$(document).scrollTop():0)*mod
+this.margins.top*mod),left:(pos.left
+this.offset.relative.left*mod
+this.offset.parent.left*mod
-(this.cssPosition=="fixed"||this.PAGEX_INCLUDES_SCROLL||this.OFFSET_PARENT_NOT_SCROLL_PARENT_X?0:this.scrollLeftParent.scrollLeft())*mod
+(this.cssPosition=="fixed"?$(document).scrollLeft():0)*mod
+this.margins.left*mod)};},_generatePosition:function(e){var o=this.options;var position={top:(e.pageY
-this.offset.click.top
-this.offset.relative.top
-this.offset.parent.top
+(this.cssPosition=="fixed"||this.PAGEY_INCLUDES_SCROLL||this.OFFSET_PARENT_NOT_SCROLL_PARENT_Y?0:this.scrollTopParent.scrollTop())
-(this.cssPosition=="fixed"?$(document).scrollTop():0)),left:(e.pageX
-this.offset.click.left
-this.offset.relative.left
-this.offset.parent.left
+(this.cssPosition=="fixed"||this.PAGEX_INCLUDES_SCROLL||this.OFFSET_PARENT_NOT_SCROLL_PARENT_X?0:this.scrollLeftParent.scrollLeft())
-(this.cssPosition=="fixed"?$(document).scrollLeft():0))};if(!this.originalPosition)return position;if(this.containment){if(position.left<this.containment[0])position.left=this.containment[0];if(position.top<this.containment[1])position.top=this.containment[1];if(position.left>this.containment[2])position.left=this.containment[2];if(position.top>this.containment[3])position.top=this.containment[3];}
if(o.grid){var top=this.originalPosition.top+Math.round((position.top-this.originalPosition.top)/o.grid[1])*o.grid[1];position.top=this.containment?(!(top<this.containment[1]||top>this.containment[3])?top:(!(top<this.containment[1])?top-o.grid[1]:top+o.grid[1])):top;var left=this.originalPosition.left+Math.round((position.left-this.originalPosition.left)/o.grid[0])*o.grid[0];position.left=this.containment?(!(left<this.containment[0]||left>this.containment[2])?left:(!(left<this.containment[0])?left-o.grid[0]:left+o.grid[0])):left;}
return position;},_mouseDrag:function(e){this.position=this._generatePosition(e);this.positionAbs=this._convertPositionTo("absolute");this.position=this._propagate("drag",e)||this.position;if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+'px';if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+'px';if($.ui.ddmanager)$.ui.ddmanager.drag(this,e);return false;},_mouseStop:function(e){var dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour)
var dropped=$.ui.ddmanager.drop(this,e);if((this.options.revert=="invalid"&&!dropped)||(this.options.revert=="valid"&&dropped)||this.options.revert===true||($.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped))){var self=this;$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10)||500,function(){self._propagate("stop",e);self._clear();});}else{this._propagate("stop",e);this._clear();}
return false;},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.options.helper!='original'&&!this.cancelHelperRemoval)this.helper.remove();this.helper=null;this.cancelHelperRemoval=false;},plugins:{},uiHash:function(e){return{helper:this.helper,position:this.position,absolutePosition:this.positionAbs,options:this.options};},_propagate:function(n,e){$.ui.plugin.call(this,n,[e,this.uiHash()]);if(n=="drag")this.positionAbs=this._convertPositionTo("absolute");return this.element.triggerHandler(n=="drag"?n:"drag"+n,[e,this.uiHash()],this.options[n]);},destroy:function(){if(!this.element.data('draggable'))return;this.element.removeData("draggable").unbind(".draggable").removeClass('ui-draggable ui-draggable-dragging ui-draggable-disabled');this._mouseDestroy();}}));$.extend($.ui.draggable,{defaults:{appendTo:"parent",axis:false,cancel:":input",delay:0,distance:1,helper:"original",scope:"default",cssNamespace:"ui"}});$.ui.plugin.add("draggable","cursor",{start:function(e,ui){var t=$('body');if(t.css("cursor"))ui.options._cursor=t.css("cursor");t.css("cursor",ui.options.cursor);},stop:function(e,ui){if(ui.options._cursor)$('body').css("cursor",ui.options._cursor);}});$.ui.plugin.add("draggable","zIndex",{start:function(e,ui){var t=$(ui.helper);if(t.css("zIndex"))ui.options._zIndex=t.css("zIndex");t.css('zIndex',ui.options.zIndex);},stop:function(e,ui){if(ui.options._zIndex)$(ui.helper).css('zIndex',ui.options._zIndex);}});$.ui.plugin.add("draggable","opacity",{start:function(e,ui){var t=$(ui.helper);if(t.css("opacity"))ui.options._opacity=t.css("opacity");t.css('opacity',ui.options.opacity);},stop:function(e,ui){if(ui.options._opacity)$(ui.helper).css('opacity',ui.options._opacity);}});$.ui.plugin.add("draggable","iframeFix",{start:function(e,ui){$(ui.options.iframeFix===true?"iframe":ui.options.iframeFix).each(function(){$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css($(this).offset()).appendTo("body");});},stop:function(e,ui){$("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this);});}});$.ui.plugin.add("draggable","scroll",{start:function(e,ui){var o=ui.options;var i=$(this).data("draggable");o.scrollSensitivity=o.scrollSensitivity||20;o.scrollSpeed=o.scrollSpeed||20;i.overflowY=function(el){do{if(/auto|scroll/.test(el.css('overflow'))||(/auto|scroll/).test(el.css('overflow-y')))return el;el=el.parent();}while(el[0].parentNode);return $(document);}(this);i.overflowX=function(el){do{if(/auto|scroll/.test(el.css('overflow'))||(/auto|scroll/).test(el.css('overflow-x')))return el;el=el.parent();}while(el[0].parentNode);return $(document);}(this);if(i.overflowY[0]!=document&&i.overflowY[0].tagName!='HTML')i.overflowYOffset=i.overflowY.offset();if(i.overflowX[0]!=document&&i.overflowX[0].tagName!='HTML')i.overflowXOffset=i.overflowX.offset();},drag:function(e,ui){var o=ui.options,scrolled=false;var i=$(this).data("draggable");if(i.overflowY[0]!=document&&i.overflowY[0].tagName!='HTML'){if((i.overflowYOffset.top+i.overflowY[0].offsetHeight)-e.pageY<o.scrollSensitivity)
i.overflowY[0].scrollTop=scrolled=i.overflowY[0].scrollTop+o.scrollSpeed;if(e.pageY-i.overflowYOffset.top<o.scrollSensitivity)
i.overflowY[0].scrollTop=scrolled=i.overflowY[0].scrollTop-o.scrollSpeed;}else{if(e.pageY-$(document).scrollTop()<o.scrollSensitivity)
scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed);if($(window).height()-(e.pageY-$(document).scrollTop())<o.scrollSensitivity)
scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed);}
if(i.overflowX[0]!=document&&i.overflowX[0].tagName!='HTML'){if((i.overflowXOffset.left+i.overflowX[0].offsetWidth)-e.pageX<o.scrollSensitivity)
i.overflowX[0].scrollLeft=scrolled=i.overflowX[0].scrollLeft+o.scrollSpeed;if(e.pageX-i.overflowXOffset.left<o.scrollSensitivity)
i.overflowX[0].scrollLeft=scrolled=i.overflowX[0].scrollLeft-o.scrollSpeed;}else{if(e.pageX-$(document).scrollLeft()<o.scrollSensitivity)
scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed);if($(window).width()-(e.pageX-$(document).scrollLeft())<o.scrollSensitivity)
scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed);}
if(scrolled!==false)
$.ui.ddmanager.prepareOffsets(i,e);}});$.ui.plugin.add("draggable","snap",{start:function(e,ui){var inst=$(this).data("draggable");inst.snapElements=[];$(ui.options.snap.constructor!=String?(ui.options.snap.items||':data(draggable)'):ui.options.snap).each(function(){var $t=$(this);var $o=$t.offset();if(this!=inst.element[0])inst.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left});});},drag:function(e,ui){var inst=$(this).data("draggable");var d=ui.options.snapTolerance||20;var x1=ui.absolutePosition.left,x2=x1+inst.helperProportions.width,y1=ui.absolutePosition.top,y2=y1+inst.helperProportions.height;for(var i=inst.snapElements.length-1;i>=0;i--){var l=inst.snapElements[i].left,r=l+inst.snapElements[i].width,t=inst.snapElements[i].top,b=t+inst.snapElements[i].height;if(!((l-d<x1&&x1<r+d&&t-d<y1&&y1<b+d)||(l-d<x1&&x1<r+d&&t-d<y2&&y2<b+d)||(l-d<x2&&x2<r+d&&t-d<y1&&y1<b+d)||(l-d<x2&&x2<r+d&&t-d<y2&&y2<b+d))){if(inst.snapElements[i].snapping)(inst.options.snap.release&&inst.options.snap.release.call(inst.element,null,$.extend(inst.uiHash(),{snapItem:inst.snapElements[i].item})));inst.snapElements[i].snapping=false;continue;}
if(ui.options.snapMode!='inner'){var ts=Math.abs(t-y2)<=d;var bs=Math.abs(b-y1)<=d;var ls=Math.abs(l-x2)<=d;var rs=Math.abs(r-x1)<=d;if(ts)ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top;if(bs)ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top;if(ls)ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left;if(rs)ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left;}
var first=(ts||bs||ls||rs);if(ui.options.snapMode!='outer'){var ts=Math.abs(t-y1)<=d;var bs=Math.abs(b-y2)<=d;var ls=Math.abs(l-x1)<=d;var rs=Math.abs(r-x2)<=d;if(ts)ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top;if(bs)ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top;if(ls)ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left;if(rs)ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left;}
if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first))
(inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,null,$.extend(inst.uiHash(),{snapItem:inst.snapElements[i].item})));inst.snapElements[i].snapping=(ts||bs||ls||rs||first);};}});$.ui.plugin.add("draggable","connectToSortable",{start:function(e,ui){var inst=$(this).data("draggable");inst.sortables=[];$(ui.options.connectToSortable).each(function(){if($.data(this,'sortable')){var sortable=$.data(this,'sortable');inst.sortables.push({instance:sortable,shouldRevert:sortable.options.revert});sortable._refreshItems();sortable._propagate("activate",e,inst);}});},stop:function(e,ui){var inst=$(this).data("draggable");$.each(inst.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;inst.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(e);this.instance.element.triggerHandler("sortreceive",[e,$.extend(this.instance.ui(),{sender:inst.element})],this.instance.options["receive"]);this.instance.options.helper=this.instance.options._helper;}else{this.instance._propagate("deactivate",e,inst);}});},drag:function(e,ui){var inst=$(this).data("draggable"),self=this;var checkPos=function(o){var l=o.left,r=l+o.width,t=o.top,b=t+o.height;return(l<(this.positionAbs.left+this.offset.click.left)&&(this.positionAbs.left+this.offset.click.left)<r&&t<(this.positionAbs.top+this.offset.click.top)&&(this.positionAbs.top+this.offset.click.top)<b);};$.each(inst.sortables,function(i){if(checkPos.call(inst,this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=$(self).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return ui.helper[0];};e.target=this.instance.currentItem[0];this.instance._mouseCapture(e,true);this.instance._mouseStart(e,true,true);this.instance.offset.click.top=inst.offset.click.top;this.instance.offset.click.left=inst.offset.click.left;this.instance.offset.parent.left-=inst.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=inst.offset.parent.top-this.instance.offset.parent.top;inst._propagate("toSortable",e);}
if(this.instance.currentItem)this.instance._mouseDrag(e);}else{if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._mouseStop(e,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();if(this.instance.placeholder)this.instance.placeholder.remove();inst._propagate("fromSortable",e);}};});}});$.ui.plugin.add("draggable","stack",{start:function(e,ui){var group=$.makeArray($(ui.options.stack.group)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||ui.options.stack.min)-(parseInt($(b).css("zIndex"),10)||ui.options.stack.min);});$(group).each(function(i){this.style.zIndex=ui.options.stack.min+i;});this[0].style.zIndex=ui.options.stack.min+group.length;}});})(jQuery);(function($){$.widget("ui.droppable",{_setData:function(key,value){if(key=='accept'){this.options.accept=value&&$.isFunction(value)?value:function(d){return d.is(accept);};}else{$.widget.prototype._setData.apply(this,arguments);}},_init:function(){var o=this.options,accept=o.accept;this.isover=0;this.isout=1;this.options.accept=this.options.accept&&$.isFunction(this.options.accept)?this.options.accept:function(d){return d.is(accept);};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};$.ui.ddmanager.droppables[this.options.scope]=$.ui.ddmanager.droppables[this.options.scope]||[];$.ui.ddmanager.droppables[this.options.scope].push(this);(this.options.cssNamespace&&this.element.addClass(this.options.cssNamespace+"-droppable"));},plugins:{},ui:function(c){return{draggable:(c.currentItem||c.element),helper:c.helper,position:c.position,absolutePosition:c.positionAbs,options:this.options,element:this.element};},destroy:function(){var drop=$.ui.ddmanager.droppables[this.options.scope];for(var i=0;i<drop.length;i++)
if(drop[i]==this)
drop.splice(i,1);this.element.removeClass("ui-droppable-disabled").removeData("droppable").unbind(".droppable");},_over:function(e){var draggable=$.ui.ddmanager.current;if(!draggable||(draggable.currentItem||draggable.element)[0]==this.element[0])return;if(this.options.accept.call(this.element,(draggable.currentItem||draggable.element))){$.ui.plugin.call(this,'over',[e,this.ui(draggable)]);this.element.triggerHandler("dropover",[e,this.ui(draggable)],this.options.over);}},_out:function(e){var draggable=$.ui.ddmanager.current;if(!draggable||(draggable.currentItem||draggable.element)[0]==this.element[0])return;if(this.options.accept.call(this.element,(draggable.currentItem||draggable.element))){$.ui.plugin.call(this,'out',[e,this.ui(draggable)]);this.element.triggerHandler("dropout",[e,this.ui(draggable)],this.options.out);}},_drop:function(e,custom){var draggable=custom||$.ui.ddmanager.current;if(!draggable||(draggable.currentItem||draggable.element)[0]==this.element[0])return false;var childrenIntersection=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var inst=$.data(this,'droppable');if(inst.options.greedy&&$.ui.intersect(draggable,$.extend(inst,{offset:inst.element.offset()}),inst.options.tolerance)){childrenIntersection=true;return false;}});if(childrenIntersection)return false;if(this.options.accept.call(this.element,(draggable.currentItem||draggable.element))){$.ui.plugin.call(this,'drop',[e,this.ui(draggable)]);this.element.triggerHandler("drop",[e,this.ui(draggable)],this.options.drop);return this.element;}
return false;},_activate:function(e){var draggable=$.ui.ddmanager.current;$.ui.plugin.call(this,'activate',[e,this.ui(draggable)]);if(draggable)this.element.triggerHandler("dropactivate",[e,this.ui(draggable)],this.options.activate);},_deactivate:function(e){var draggable=$.ui.ddmanager.current;$.ui.plugin.call(this,'deactivate',[e,this.ui(draggable)]);if(draggable)this.element.triggerHandler("dropdeactivate",[e,this.ui(draggable)],this.options.deactivate);}});$.extend($.ui.droppable,{defaults:{disabled:false,tolerance:'intersect',scope:'default',cssNamespace:'ui'}});$.ui.intersect=function(draggable,droppable,toleranceMode){if(!droppable.offset)return false;var x1=(draggable.positionAbs||draggable.position.absolute).left,x2=x1+draggable.helperProportions.width,y1=(draggable.positionAbs||draggable.position.absolute).top,y2=y1+draggable.helperProportions.height;var l=droppable.offset.left,r=l+droppable.proportions.width,t=droppable.offset.top,b=t+droppable.proportions.height;switch(toleranceMode){case'fit':return(l<x1&&x2<r&&t<y1&&y2<b);break;case'intersect':return(l<x1+(draggable.helperProportions.width/2)&&x2-(draggable.helperProportions.width/2)<r&&t<y1+(draggable.helperProportions.height/2)&&y2-(draggable.helperProportions.height/2)<b);break;case'pointer':return(l<((draggable.positionAbs||draggable.position.absolute).left+(draggable.clickOffset||draggable.offset.click).left)&&((draggable.positionAbs||draggable.position.absolute).left+(draggable.clickOffset||draggable.offset.click).left)<r&&t<((draggable.positionAbs||draggable.position.absolute).top+(draggable.clickOffset||draggable.offset.click).top)&&((draggable.positionAbs||draggable.position.absolute).top+(draggable.clickOffset||draggable.offset.click).top)<b);break;case'touch':return((y1>=t&&y1<=b)||(y2>=t&&y2<=b)||(y1<t&&y2>b))&&((x1>=l&&x1<=r)||(x2>=l&&x2<=r)||(x1<l&&x2>r));break;default:return false;break;}};$.ui.ddmanager={current:null,droppables:{'default':[]},prepareOffsets:function(t,e){var m=$.ui.ddmanager.droppables[t.options.scope];var type=e?e.type:null;var list=(t.currentItem||t.element).find(":data(droppable)").andSelf();droppablesLoop:for(var i=0;i<m.length;i++){if(m[i].options.disabled||(t&&!m[i].options.accept.call(m[i].element,(t.currentItem||t.element))))continue;for(var j=0;j<list.length;j++){if(list[j]==m[i].element[0]){m[i].proportions.height=0;continue droppablesLoop;}};m[i].visible=m[i].element.css("display")!="none";if(!m[i].visible)continue;m[i].offset=m[i].element.offset();m[i].proportions={width:m[i].element[0].offsetWidth,height:m[i].element[0].offsetHeight};if(type=="dragstart"||type=="sortactivate")m[i]._activate.call(m[i],e);}},drop:function(draggable,e){var dropped=false;$.each($.ui.ddmanager.droppables[draggable.options.scope],function(){if(!this.options)return;if(!this.options.disabled&&this.visible&&$.ui.intersect(draggable,this,this.options.tolerance))
dropped=this._drop.call(this,e);if(!this.options.disabled&&this.visible&&this.options.accept.call(this.element,(draggable.currentItem||draggable.element))){this.isout=1;this.isover=0;this._deactivate.call(this,e);}});return dropped;},drag:function(draggable,e){if(draggable.options.refreshPositions)$.ui.ddmanager.prepareOffsets(draggable,e);$.each($.ui.ddmanager.droppables[draggable.options.scope],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var intersects=$.ui.intersect(draggable,this,this.options.tolerance);var c=!intersects&&this.isover==1?'isout':(intersects&&this.isover==0?'isover':null);if(!c)return;var parentInstance;if(this.options.greedy){var parent=this.element.parents(':data(droppable):eq(0)');if(parent.length){parentInstance=$.data(parent[0],'droppable');parentInstance.greedyChild=(c=='isover'?1:0);}}
if(parentInstance&&c=='isover'){parentInstance['isover']=0;parentInstance['isout']=1;parentInstance._out.call(parentInstance,e);}
this[c]=1;this[c=='isout'?'isover':'isout']=0;this[c=="isover"?"_over":"_out"].call(this,e);if(parentInstance&&c=='isout'){parentInstance['isout']=0;parentInstance['isover']=1;parentInstance._over.call(parentInstance,e);}});}};$.ui.plugin.add("droppable","activeClass",{activate:function(e,ui){$(this).addClass(ui.options.activeClass);},deactivate:function(e,ui){$(this).removeClass(ui.options.activeClass);},drop:function(e,ui){$(this).removeClass(ui.options.activeClass);}});$.ui.plugin.add("droppable","hoverClass",{over:function(e,ui){$(this).addClass(ui.options.hoverClass);},out:function(e,ui){$(this).removeClass(ui.options.hoverClass);},drop:function(e,ui){$(this).removeClass(ui.options.hoverClass);}});})(jQuery);(function($){function contains(a,b){var safari2=$.browser.safari&&$.browser.version<522;if(a.contains&&!safari2){return a.contains(b);}
if(a.compareDocumentPosition)
return!!(a.compareDocumentPosition(b)&16);while(b=b.parentNode)
if(b==a)return true;return false;};$.widget("ui.sortable",$.extend({},$.ui.mouse,{_init:function(){var o=this.options;this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.floating=this.items.length?(/left|right/).test(this.items[0].item.css('float')):false;this.offset=this.element.offset();this._mouseInit();},plugins:{},ui:function(inst){return{helper:(inst||this)["helper"],placeholder:(inst||this)["placeholder"]||$([]),position:(inst||this)["position"],absolutePosition:(inst||this)["positionAbs"],options:this.options,element:this.element,item:(inst||this)["currentItem"],sender:inst?inst.element:null};},_propagate:function(n,e,inst,noPropagation){$.ui.plugin.call(this,n,[e,this.ui(inst)]);if(!noPropagation)this.element.triggerHandler(n=="sort"?n:"sort"+n,[e,this.ui(inst)],this.options[n]);},serialize:function(o){var items=this._getItemsAsjQuery(o&&o.connected);var str=[];o=o||{};$(items).each(function(){var res=($(this.item||this).attr(o.attribute||'id')||'').match(o.expression||(/(.+)[-=_](.+)/));if(res)str.push((o.key||res[1]+'[]')+'='+(o.key&&o.expression?res[1]:res[2]));});return str.join('&');},toArray:function(o){var items=this._getItemsAsjQuery(o&&o.connected);var ret=[];items.each(function(){ret.push($(this).attr(o.attr||'id'));});return ret;},_intersectsWith:function(item){var x1=this.positionAbs.left,x2=x1+this.helperProportions.width,y1=this.positionAbs.top,y2=y1+this.helperProportions.height;var l=item.left,r=l+item.width,t=item.top,b=t+item.height;var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var isOverElement=(y1+dyClick)>t&&(y1+dyClick)<b&&(x1+dxClick)>l&&(x1+dxClick)<r;if(this.options.tolerance=="pointer"||this.options.forcePointerForContainers||(this.options.tolerance=="guess"&&this.helperProportions[this.floating?'width':'height']>item[this.floating?'width':'height'])){return isOverElement;}else{return(l<x1+(this.helperProportions.width/2)&&x2-(this.helperProportions.width/2)<r&&t<y1+(this.helperProportions.height/2)&&y2-(this.helperProportions.height/2)<b);}},_intersectsWithEdge:function(item){var x1=this.positionAbs.left,x2=x1+this.helperProportions.width,y1=this.positionAbs.top,y2=y1+this.helperProportions.height;var l=item.left,r=l+item.width,t=item.top,b=t+item.height;var dyClick=this.offset.click.top,dxClick=this.offset.click.left;var isOverElement=(y1+dyClick)>t&&(y1+dyClick)<b&&(x1+dxClick)>l&&(x1+dxClick)<r;if(this.options.tolerance=="pointer"||(this.options.tolerance=="guess"&&this.helperProportions[this.floating?'width':'height']>item[this.floating?'width':'height'])){if(!isOverElement)return false;if(this.floating){if((x1+dxClick)>l&&(x1+dxClick)<l+item.width/2)return 2;if((x1+dxClick)>l+item.width/2&&(x1+dxClick)<r)return 1;}else{var height=item.height;var direction=y1-this.updateOriginalPosition.top<0?2:1;if(direction==1&&(y1+dyClick)<t+height/2){return 2;}
else if(direction==2&&(y1+dyClick)>t+height/2){return 1;}}}else{if(!(l<x1+(this.helperProportions.width/2)&&x2-(this.helperProportions.width/2)<r&&t<y1+(this.helperProportions.height/2)&&y2-(this.helperProportions.height/2)<b))return false;if(this.floating){if(x2>l&&x1<l)return 2;if(x1<r&&x2>r)return 1;}else{if(y2>t&&y1<t)return 1;if(y1<b&&y2>b)return 2;}}
return false;},refresh:function(){this._refreshItems();this.refreshPositions();},_getItemsAsjQuery:function(connected){var self=this;var items=[];var queries=[];if(this.options.connectWith&&connected){for(var i=this.options.connectWith.length-1;i>=0;i--){var cur=$(this.options.connectWith[i]);for(var j=cur.length-1;j>=0;j--){var inst=$.data(cur[j],'sortable');if(inst&&inst!=this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element):$(inst.options.items,inst.element).not(".ui-sortable-helper"),inst]);}};};}
queries.push([$.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):$(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var i=queries.length-1;i>=0;i--){queries[i][0].each(function(){items.push(this);});};return $(items);},_removeCurrentsFromItems:function(){var list=this.currentItem.find(":data(sortable-item)");for(var i=0;i<this.items.length;i++){for(var j=0;j<list.length;j++){if(list[j]==this.items[i].item[0])
this.items.splice(i,1);};};},_refreshItems:function(){this.items=[];this.containers=[this];var items=this.items;var self=this;var queries=[[$.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):$(this.options.items,this.element),this]];if(this.options.connectWith){for(var i=this.options.connectWith.length-1;i>=0;i--){var cur=$(this.options.connectWith[i]);for(var j=cur.length-1;j>=0;j--){var inst=$.data(cur[j],'sortable');if(inst&&inst!=this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element):$(inst.options.items,inst.element),inst]);this.containers.push(inst);}};};}
for(var i=queries.length-1;i>=0;i--){queries[i][0].each(function(){$.data(this,'sortable-item',queries[i][1]);items.push({item:$(this),instance:queries[i][1],width:0,height:0,left:0,top:0});});};},refreshPositions:function(fast){if(this.offsetParent){var po=this.offsetParent.offset();this.offset.parent={top:po.top+this.offsetParentBorders.top,left:po.left+this.offsetParentBorders.left};}
for(var i=this.items.length-1;i>=0;i--){if(this.items[i].instance!=this.currentContainer&&this.currentContainer&&this.items[i].item[0]!=this.currentItem[0])
continue;var t=this.options.toleranceElement?$(this.options.toleranceElement,this.items[i].item):this.items[i].item;if(!fast){this.items[i].width=t[0].offsetWidth;this.items[i].height=t[0].offsetHeight;}
var p=t.offset();this.items[i].left=p.left;this.items[i].top=p.top;};if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this);}else{for(var i=this.containers.length-1;i>=0;i--){var p=this.containers[i].element.offset();this.containers[i].containerCache.left=p.left;this.containers[i].containerCache.top=p.top;this.containers[i].containerCache.width=this.containers[i].element.outerWidth();this.containers[i].containerCache.height=this.containers[i].element.outerHeight();};}},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var i=this.items.length-1;i>=0;i--)
this.items[i].item.removeData("sortable-item");},_createPlaceholder:function(that){var self=that||this,o=self.options;if(!o.placeholder||o.placeholder.constructor==String){var className=o.placeholder;o.placeholder={element:function(){var el=$(document.createElement(self.currentItem[0].nodeName)).addClass(className||"ui-sortable-placeholder")[0];if(!className){el.style.visibility="hidden";document.body.appendChild(el);el.innerHTML=self.currentItem[0].innerHTML;document.body.removeChild(el);};return el;},update:function(container,p){if(className&&!o.forcePlaceholderSize)return;if(!p.height()){p.height(self.currentItem.innerHeight()-parseInt(self.currentItem.css('paddingTop')||0,10)-parseInt(self.currentItem.css('paddingBottom')||0,10));};if(!p.width()){p.width(self.currentItem.innerWidth()-parseInt(self.currentItem.css('paddingLeft')||0,10)-parseInt(self.currentItem.css('paddingRight')||0,10));};}};}
self.placeholder=$(o.placeholder.element.call(self.element,self.currentItem))
self.currentItem.parent()[0].appendChild(self.placeholder[0]);self.placeholder[0].parentNode.insertBefore(self.placeholder[0],self.currentItem[0]);o.placeholder.update(self,self.placeholder);},_contactContainers:function(e){for(var i=this.containers.length-1;i>=0;i--){if(this._intersectsWith(this.containers[i].containerCache)){if(!this.containers[i].containerCache.over){if(this.currentContainer!=this.containers[i]){var dist=10000;var itemWithLeastDistance=null;var base=this.positionAbs[this.containers[i].floating?'left':'top'];for(var j=this.items.length-1;j>=0;j--){if(!contains(this.containers[i].element[0],this.items[j].item[0]))continue;var cur=this.items[j][this.containers[i].floating?'left':'top'];if(Math.abs(cur-base)<dist){dist=Math.abs(cur-base);itemWithLeastDistance=this.items[j];}}
if(!itemWithLeastDistance&&!this.options.dropOnEmpty)
continue;this.currentContainer=this.containers[i];itemWithLeastDistance?this.options.sortIndicator.call(this,e,itemWithLeastDistance,null,true):this.options.sortIndicator.call(this,e,null,this.containers[i].element,true);this._propagate("change",e);this.containers[i]._propagate("change",e,this);this.options.placeholder.update(this.currentContainer,this.placeholder);}
this.containers[i]._propagate("over",e,this);this.containers[i].containerCache.over=1;}}else{if(this.containers[i].containerCache.over){this.containers[i]._propagate("out",e,this);this.containers[i].containerCache.over=0;}}};},_mouseCapture:function(e,overrideHandle){if(this.options.disabled||this.options.type=='static')return false;this._refreshItems();var currentItem=null,self=this,nodes=$(e.target).parents().each(function(){if($.data(this,'sortable-item')==self){currentItem=$(this);return false;}});if($.data(e.target,'sortable-item')==self)currentItem=$(e.target);if(!currentItem)return false;if(this.options.handle&&!overrideHandle){var validHandle=false;$(this.options.handle,currentItem).find("*").andSelf().each(function(){if(this==e.target)validHandle=true;});if(!validHandle)return false;}
this.currentItem=currentItem;this._removeCurrentsFromItems();return true;},createHelper:function(e){var o=this.options;var helper=typeof o.helper=='function'?$(o.helper.apply(this.element[0],[e,this.currentItem])):(o.helper=="original"?this.currentItem:this.currentItem.clone());if(!helper.parents('body').length)
$(o.appendTo!='parent'?o.appendTo:this.currentItem[0].parentNode)[0].appendChild(helper[0]);return helper;},_mouseStart:function(e,overrideHandle,noActivation){var o=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this.createHelper(e);this.margins={left:(parseInt(this.currentItem.css("marginLeft"),10)||0),top:(parseInt(this.currentItem.css("marginTop"),10)||0)};this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top};this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();this.offsetParentBorders={top:(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)};this.offset.parent={top:po.top+this.offsetParentBorders.top,left:po.left+this.offsetParentBorders.left};this.updateOriginalPosition=this.originalPosition=this._generatePosition(e);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};if(o.helper=="original"){this._storedCSS={position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left"),clear:this.currentItem.css("clear")};}else{this.currentItem.hide();}
this.helper.css({position:'absolute',clear:'both'}).addClass('ui-sortable-helper');this._createPlaceholder();this._propagate("start",e);if(!this._preserveHelperProportions)
this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};if(o.cursorAt){if(o.cursorAt.left!=undefined)this.offset.click.left=o.cursorAt.left;if(o.cursorAt.right!=undefined)this.offset.click.left=this.helperProportions.width-o.cursorAt.right;if(o.cursorAt.top!=undefined)this.offset.click.top=o.cursorAt.top;if(o.cursorAt.bottom!=undefined)this.offset.click.top=this.helperProportions.height-o.cursorAt.bottom;}
if(o.containment){if(o.containment=='parent')o.containment=this.helper[0].parentNode;if(o.containment=='document'||o.containment=='window')this.containment=[0-this.offset.parent.left,0-this.offset.parent.top,$(o.containment=='document'?document:window).width()-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.element.css("marginRight"),10)||0),($(o.containment=='document'?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.element.css("marginBottom"),10)||0)];if(!(/^(document|window|parent)$/).test(o.containment)){var ce=$(o.containment)[0];var co=$(o.containment).offset();var over=($(ce).css("overflow")!='hidden');this.containment=[co.left+(parseInt($(ce).css("borderLeftWidth"),10)||0)-this.offset.parent.left,co.top+(parseInt($(ce).css("borderTopWidth"),10)||0)-this.offset.parent.top,co.left+(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.currentItem.css("marginRight"),10)||0),co.top+(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.currentItem.css("marginBottom"),10)||0)];}}
if(!noActivation){for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._propagate("activate",e,this);}}
if($.ui.ddmanager)
$.ui.ddmanager.current=this;if($.ui.ddmanager&&!o.dropBehaviour)
$.ui.ddmanager.prepareOffsets(this,e);this.dragging=true;this._mouseDrag(e);return true;},_convertPositionTo:function(d,pos){if(!pos)pos=this.position;var mod=d=="absolute"?1:-1;return{top:(pos.top
+this.offset.parent.top*mod
-(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)*mod
+this.margins.top*mod),left:(pos.left
+this.offset.parent.left*mod
-(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft)*mod
+this.margins.left*mod)};},_generatePosition:function(e){var o=this.options;var position={top:(e.pageY
-this.offset.click.top
-this.offset.parent.top
+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)),left:(e.pageX
-this.offset.click.left
-this.offset.parent.left
+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft))};if(!this.originalPosition)return position;if(this.containment){if(position.left<this.containment[0])position.left=this.containment[0];if(position.top<this.containment[1])position.top=this.containment[1];if(position.left>this.containment[2])position.left=this.containment[2];if(position.top>this.containment[3])position.top=this.containment[3];}
if(o.grid){var top=this.originalPosition.top+Math.round((position.top-this.originalPosition.top)/o.grid[1])*o.grid[1];position.top=this.containment?(!(top<this.containment[1]||top>this.containment[3])?top:(!(top<this.containment[1])?top-o.grid[1]:top+o.grid[1])):top;var left=this.originalPosition.left+Math.round((position.left-this.originalPosition.left)/o.grid[0])*o.grid[0];position.left=this.containment?(!(left<this.containment[0]||left>this.containment[2])?left:(!(left<this.containment[0])?left-o.grid[0]:left+o.grid[0])):left;}
return position;},_mouseDrag:function(e){this.position=this._generatePosition(e);this.positionAbs=this._convertPositionTo("absolute");$.ui.plugin.call(this,"sort",[e,this.ui()]);this.positionAbs=this._convertPositionTo("absolute");this.helper[0].style.left=this.position.left+'px';this.helper[0].style.top=this.position.top+'px';for(var i=this.items.length-1;i>=0;i--){var intersection=this._intersectsWithEdge(this.items[i]);if(!intersection)continue;if(this.items[i].item[0]!=this.currentItem[0]&&this.placeholder[intersection==1?"next":"prev"]()[0]!=this.items[i].item[0]&&!contains(this.placeholder[0],this.items[i].item[0])&&(this.options.type=='semi-dynamic'?!contains(this.element[0],this.items[i].item[0]):true)){this.updateOriginalPosition=this._generatePosition(e);this.direction=intersection==1?"down":"up";this.options.sortIndicator.call(this,e,this.items[i]);this._propagate("change",e);break;}}
this._contactContainers(e);if($.ui.ddmanager)$.ui.ddmanager.drag(this,e);this.element.triggerHandler("sort",[e,this.ui()],this.options["sort"]);return false;},_rearrange:function(e,i,a,hardRefresh){a?a[0].appendChild(this.placeholder[0]):i.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction=='down'?i.item[0]:i.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var self=this,counter=this.counter;window.setTimeout(function(){if(counter==self.counter)self.refreshPositions(!hardRefresh);},0);},_mouseStop:function(e,noPropagation){if($.ui.ddmanager&&!this.options.dropBehaviour)
$.ui.ddmanager.drop(this,e);if(this.options.revert){var self=this;var cur=self.placeholder.offset();$(this.helper).animate({left:cur.left-this.offset.parent.left-self.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:cur.top-this.offset.parent.top-self.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){self._clear(e);});}else{this._clear(e,noPropagation);}
return false;},_clear:function(e,noPropagation){if(!this._noFinalSort)this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.options.helper=="original")
this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");else
this.currentItem.show();if(this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])this._propagate("update",e,null,noPropagation);if(!contains(this.element[0],this.currentItem[0])){this._propagate("remove",e,null,noPropagation);for(var i=this.containers.length-1;i>=0;i--){if(contains(this.containers[i].element[0],this.currentItem[0])){this.containers[i]._propagate("update",e,this,noPropagation);this.containers[i]._propagate("receive",e,this,noPropagation);}};};for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._propagate("deactivate",e,this,noPropagation);if(this.containers[i].containerCache.over){this.containers[i]._propagate("out",e,this);this.containers[i].containerCache.over=0;}}
this.dragging=false;if(this.cancelHelperRemoval){this._propagate("beforeStop",e,null,noPropagation);this._propagate("stop",e,null,noPropagation);return false;}
this._propagate("beforeStop",e,null,noPropagation);this.placeholder.remove();if(this.options.helper!="original")this.helper.remove();this.helper=null;this._propagate("stop",e,null,noPropagation);return true;}}));$.extend($.ui.sortable,{getter:"serialize toArray",defaults:{helper:"original",tolerance:"guess",distance:1,delay:0,scroll:true,scrollSensitivity:20,scrollSpeed:20,cancel:":input",items:'> *',zIndex:1000,dropOnEmpty:true,appendTo:"parent",sortIndicator:$.ui.sortable.prototype._rearrange,scope:"default",forcePlaceholderSize:false}});$.ui.plugin.add("sortable","cursor",{start:function(e,ui){var t=$('body');if(t.css("cursor"))ui.options._cursor=t.css("cursor");t.css("cursor",ui.options.cursor);},beforeStop:function(e,ui){if(ui.options._cursor)$('body').css("cursor",ui.options._cursor);}});$.ui.plugin.add("sortable","zIndex",{start:function(e,ui){var t=ui.helper;if(t.css("zIndex"))ui.options._zIndex=t.css("zIndex");t.css('zIndex',ui.options.zIndex);},beforeStop:function(e,ui){if(ui.options._zIndex)$(ui.helper).css('zIndex',ui.options._zIndex);}});$.ui.plugin.add("sortable","opacity",{start:function(e,ui){var t=ui.helper;if(t.css("opacity"))ui.options._opacity=t.css("opacity");t.css('opacity',ui.options.opacity);},beforeStop:function(e,ui){if(ui.options._opacity)$(ui.helper).css('opacity',ui.options._opacity);}});$.ui.plugin.add("sortable","scroll",{start:function(e,ui){var o=ui.options;var i=$(this).data("sortable");i.overflowY=function(el){do{if(/auto|scroll/.test(el.css('overflow'))||(/auto|scroll/).test(el.css('overflow-y')))return el;el=el.parent();}while(el[0].parentNode);return $(document);}(i.currentItem);i.overflowX=function(el){do{if(/auto|scroll/.test(el.css('overflow'))||(/auto|scroll/).test(el.css('overflow-x')))return el;el=el.parent();}while(el[0].parentNode);return $(document);}(i.currentItem);if(i.overflowY[0]!=document&&i.overflowY[0].tagName!='HTML')i.overflowYOffset=i.overflowY.offset();if(i.overflowX[0]!=document&&i.overflowX[0].tagName!='HTML')i.overflowXOffset=i.overflowX.offset();},sort:function(e,ui){var o=ui.options;var i=$(this).data("sortable");if(i.overflowY[0]!=document&&i.overflowY[0].tagName!='HTML'){if((i.overflowYOffset.top+i.overflowY[0].offsetHeight)-e.pageY<o.scrollSensitivity)
i.overflowY[0].scrollTop=i.overflowY[0].scrollTop+o.scrollSpeed;if(e.pageY-i.overflowYOffset.top<o.scrollSensitivity)
i.overflowY[0].scrollTop=i.overflowY[0].scrollTop-o.scrollSpeed;}else{if(e.pageY-$(document).scrollTop()<o.scrollSensitivity)
$(document).scrollTop($(document).scrollTop()-o.scrollSpeed);if($(window).height()-(e.pageY-$(document).scrollTop())<o.scrollSensitivity)
$(document).scrollTop($(document).scrollTop()+o.scrollSpeed);}
if(i.overflowX[0]!=document&&i.overflowX[0].tagName!='HTML'){if((i.overflowXOffset.left+i.overflowX[0].offsetWidth)-e.pageX<o.scrollSensitivity)
i.overflowX[0].scrollLeft=i.overflowX[0].scrollLeft+o.scrollSpeed;if(e.pageX-i.overflowXOffset.left<o.scrollSensitivity)
i.overflowX[0].scrollLeft=i.overflowX[0].scrollLeft-o.scrollSpeed;}else{if(e.pageX-$(document).scrollLeft()<o.scrollSensitivity)
$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed);if($(window).width()-(e.pageX-$(document).scrollLeft())<o.scrollSensitivity)
$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed);}}});$.ui.plugin.add("sortable","axis",{sort:function(e,ui){var i=$(this).data("sortable");if(ui.options.axis=="y")i.position.left=i.originalPosition.left;if(ui.options.axis=="x")i.position.top=i.originalPosition.top;}});})(jQuery);(function($){$.fn.unwrap=$.fn.unwrap||function(expr){return this.each(function(){$(this).parents(expr).eq(0).after(this).remove();});};$.widget("ui.slider",{plugins:{},ui:function(e){return{options:this.options,handle:this.currentHandle,value:this.options.axis!="both"||!this.options.axis?Math.round(this.value(null,this.options.axis=="vertical"?"y":"x")):{x:Math.round(this.value(null,"x")),y:Math.round(this.value(null,"y"))},range:this._getRange()};},_propagate:function(n,e){$.ui.plugin.call(this,n,[e,this.ui()]);this.element.triggerHandler(n=="slide"?n:"slide"+n,[e,this.ui()],this.options[n]);},destroy:function(){this.element.removeClass("ui-slider ui-slider-disabled").removeData("slider").unbind(".slider");if(this.handle&&this.handle.length){this.handle.unwrap("a");this.handle.each(function(){$(this).data("mouse")._mouseDestroy();});}
this.generated&&this.generated.remove();},_setData:function(key,value){$.widget.prototype._setData.apply(this,arguments);if(/min|max|steps/.test(key)){this._initBoundaries();}
if(key=="range"){value?this.handle.length==2&&this._createRange():this._removeRange();}},_init:function(){var self=this;this.element.addClass("ui-slider");this._initBoundaries();this.handle=$(this.options.handle,this.element);if(!this.handle.length){self.handle=self.generated=$(self.options.handles||[0]).map(function(){var handle=$("<div/>").addClass("ui-slider-handle").appendTo(self.element);if(this.id)
handle.attr("id",this.id);return handle[0];});}
var handleclass=function(el){this.element=$(el);this.element.data("mouse",this);this.options=self.options;this.element.bind("mousedown",function(){if(self.currentHandle)this.blur(self.currentHandle);self._focus(this,true);});this._mouseInit();};$.extend(handleclass.prototype,$.ui.mouse,{_mouseStart:function(e){return self._start.call(self,e,this.element[0]);},_mouseStop:function(e){return self._stop.call(self,e,this.element[0]);},_mouseDrag:function(e){return self._drag.call(self,e,this.element[0]);},_mouseCapture:function(){return true;},trigger:function(e){this._mouseDown(e);}});$(this.handle).each(function(){new handleclass(this);}).wrap('<a href="#" style="outline:none;border:none;"></a>').parent().bind('click',function(){return false;}).bind('focus',function(e){self._focus(this.firstChild);}).bind('blur',function(e){self._blur(this.firstChild);}).bind('keydown',function(e){if(!self.options.noKeyboard)return self._keydown(e.keyCode,this.firstChild);});this.element.bind('mousedown.slider',function(e){self._click.apply(self,[e]);self.currentHandle.data("mouse").trigger(e);self.firstValue=self.firstValue+1;});$.each(this.options.handles||[],function(index,handle){self.moveTo(handle.start,index,true);});if(!isNaN(this.options.startValue))
this.moveTo(this.options.startValue,0,true);this.previousHandle=$(this.handle[0]);if(this.handle.length==2&&this.options.range)this._createRange();},_initBoundaries:function(){var element=this.element[0],o=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};$.extend(o,{axis:o.axis||(element.offsetWidth<element.offsetHeight?'vertical':'horizontal'),max:!isNaN(parseInt(o.max,10))?{x:parseInt(o.max,10),y:parseInt(o.max,10)}:({x:o.max&&o.max.x||100,y:o.max&&o.max.y||100}),min:!isNaN(parseInt(o.min,10))?{x:parseInt(o.min,10),y:parseInt(o.min,10)}:({x:o.min&&o.min.x||0,y:o.min&&o.min.y||0})});o.realMax={x:o.max.x-o.min.x,y:o.max.y-o.min.y};o.stepping={x:o.stepping&&o.stepping.x||parseInt(o.stepping,10)||(o.steps?o.realMax.x/(o.steps.x||parseInt(o.steps,10)||o.realMax.x):0),y:o.stepping&&o.stepping.y||parseInt(o.stepping,10)||(o.steps?o.realMax.y/(o.steps.y||parseInt(o.steps,10)||o.realMax.y):0)};},_keydown:function(keyCode,handle){var k=keyCode;if(/(33|34|35|36|37|38|39|40)/.test(k)){var o=this.options,xpos,ypos;if(/(35|36)/.test(k)){xpos=(k==35)?o.max.x:o.min.x;ypos=(k==35)?o.max.y:o.min.y;}else{var oper=/(34|37|40)/.test(k)?"-=":"+=";var step=/(37|38|39|40)/.test(k)?"_oneStep":"_pageStep";xpos=oper+this[step]("x");ypos=oper+this[step]("y");}
this.moveTo({x:xpos,y:ypos},handle);return false;}
return true;},_focus:function(handle,hard){this.currentHandle=$(handle).addClass('ui-slider-handle-active');if(hard)
this.currentHandle.parent()[0].focus();},_blur:function(handle){$(handle).removeClass('ui-slider-handle-active');if(this.currentHandle&&this.currentHandle[0]==handle){this.previousHandle=this.currentHandle;this.currentHandle=null;};},_click:function(e){var pointer=[e.pageX,e.pageY];var clickedHandle=false;this.handle.each(function(){if(this==e.target)
clickedHandle=true;});if(clickedHandle||this.options.disabled||!(this.currentHandle||this.previousHandle))
return;if(!this.currentHandle&&this.previousHandle)
this._focus(this.previousHandle,true);this.offset=this.element.offset();this.moveTo({y:this._convertValue(e.pageY-this.offset.top-this.currentHandle[0].offsetHeight/2,"y"),x:this._convertValue(e.pageX-this.offset.left-this.currentHandle[0].offsetWidth/2,"x")},null,!this.options.distance);},_createRange:function(){if(this.rangeElement)return;this.rangeElement=$('<div></div>').addClass('ui-slider-range').css({position:'absolute'}).appendTo(this.element);this._updateRange();},_removeRange:function(){this.rangeElement.remove();this.rangeElement=null;},_updateRange:function(){var prop=this.options.axis=="vertical"?"top":"left";var size=this.options.axis=="vertical"?"height":"width";this.rangeElement.css(prop,(parseInt($(this.handle[0]).css(prop),10)||0)+this._handleSize(0,this.options.axis=="vertical"?"y":"x")/2);this.rangeElement.css(size,(parseInt($(this.handle[1]).css(prop),10)||0)-(parseInt($(this.handle[0]).css(prop),10)||0));},_getRange:function(){return this.rangeElement?this._convertValue(parseInt(this.rangeElement.css(this.options.axis=="vertical"?"height":"width"),10),this.options.axis=="vertical"?"y":"x"):null;},_handleIndex:function(){return this.handle.index(this.currentHandle[0]);},value:function(handle,axis){if(this.handle.length==1)this.currentHandle=this.handle;if(!axis)axis=this.options.axis=="vertical"?"y":"x";var curHandle=$(handle!=undefined&&handle!==null?this.handle[handle]||handle:this.currentHandle);if(curHandle.data("mouse").sliderValue){return parseInt(curHandle.data("mouse").sliderValue[axis],10);}else{return parseInt(((parseInt(curHandle.css(axis=="x"?"left":"top"),10)/(this.actualSize[axis=="x"?"width":"height"]-this._handleSize(handle,axis)))*this.options.realMax[axis])+this.options.min[axis],10);}},_convertValue:function(value,axis){return this.options.min[axis]+(value/(this.actualSize[axis=="x"?"width":"height"]-this._handleSize(null,axis)))*this.options.realMax[axis];},_translateValue:function(value,axis){return((value-this.options.min[axis])/this.options.realMax[axis])*(this.actualSize[axis=="x"?"width":"height"]-this._handleSize(null,axis));},_translateRange:function(value,axis){if(this.rangeElement){if(this.currentHandle[0]==this.handle[0]&&value>=this._translateValue(this.value(1),axis))
value=this._translateValue(this.value(1,axis)-this._oneStep(axis),axis);if(this.currentHandle[0]==this.handle[1]&&value<=this._translateValue(this.value(0),axis))
value=this._translateValue(this.value(0,axis)+this._oneStep(axis),axis);}
if(this.options.handles){var handle=this.options.handles[this._handleIndex()];if(value<this._translateValue(handle.min,axis)){value=this._translateValue(handle.min,axis);}else if(value>this._translateValue(handle.max,axis)){value=this._translateValue(handle.max,axis);}}
return value;},_translateLimits:function(value,axis){if(value>=this.actualSize[axis=="x"?"width":"height"]-this._handleSize(null,axis))
value=this.actualSize[axis=="x"?"width":"height"]-this._handleSize(null,axis);if(value<=0)
value=0;return value;},_handleSize:function(handle,axis){return $(handle!=undefined&&handle!==null?this.handle[handle]:this.currentHandle)[0]["offset"+(axis=="x"?"Width":"Height")];},_oneStep:function(axis){return this.options.stepping[axis]||1;},_pageStep:function(axis){return 10;},_start:function(e,handle){var o=this.options;if(o.disabled)return false;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(!this.currentHandle)
this._focus(this.previousHandle,true);this.offset=this.element.offset();this.handleOffset=this.currentHandle.offset();this.clickOffset={top:e.pageY-this.handleOffset.top,left:e.pageX-this.handleOffset.left};this.firstValue=this.value();this._propagate('start',e);this._drag(e,handle);return true;},_stop:function(e){this._propagate('stop',e);if(this.firstValue!=this.value())
this._propagate('change',e);this._focus(this.currentHandle,true);return false;},_drag:function(e,handle){var o=this.options;var position={top:e.pageY-this.offset.top-this.clickOffset.top,left:e.pageX-this.offset.left-this.clickOffset.left};if(!this.currentHandle)this._focus(this.previousHandle,true);position.left=this._translateLimits(position.left,"x");position.top=this._translateLimits(position.top,"y");if(o.stepping.x){var value=this._convertValue(position.left,"x");value=Math.round(value/o.stepping.x)*o.stepping.x;position.left=this._translateValue(value,"x");}
if(o.stepping.y){var value=this._convertValue(position.top,"y");value=Math.round(value/o.stepping.y)*o.stepping.y;position.top=this._translateValue(value,"y");}
position.left=this._translateRange(position.left,"x");position.top=this._translateRange(position.top,"y");if(o.axis!="vertical")this.currentHandle.css({left:position.left});if(o.axis!="horizontal")this.currentHandle.css({top:position.top});this.currentHandle.data("mouse").sliderValue={x:Math.round(this._convertValue(position.left,"x"))||0,y:Math.round(this._convertValue(position.top,"y"))||0};if(this.rangeElement)
this._updateRange();this._propagate('slide',e);return false;},moveTo:function(value,handle,noPropagation){var o=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(handle==undefined&&!this.currentHandle&&this.handle.length!=1)
return false;if(handle==undefined&&!this.currentHandle)
handle=0;if(handle!=undefined)
this.currentHandle=this.previousHandle=$(this.handle[handle]||handle);if(value.x!==undefined&&value.y!==undefined){var x=value.x,y=value.y;}else{var x=value,y=value;}
if(x!==undefined&&x.constructor!=Number){var me=/^\-\=/.test(x),pe=/^\+\=/.test(x);if(me||pe){x=this.value(null,"x")+parseInt(x.replace(me?'=':'+=',''),10);}else{x=isNaN(parseInt(x,10))?undefined:parseInt(x,10);}}
if(y!==undefined&&y.constructor!=Number){var me=/^\-\=/.test(y),pe=/^\+\=/.test(y);if(me||pe){y=this.value(null,"y")+parseInt(y.replace(me?'=':'+=',''),10);}else{y=isNaN(parseInt(y,10))?undefined:parseInt(y,10);}}
if(o.axis!="vertical"&&x!==undefined){if(o.stepping.x)x=Math.round(x/o.stepping.x)*o.stepping.x;x=this._translateValue(x,"x");x=this._translateLimits(x,"x");x=this._translateRange(x,"x");o.animate?this.currentHandle.stop().animate({left:x},(Math.abs(parseInt(this.currentHandle.css("left"))-x))*(!isNaN(parseInt(o.animate))?o.animate:5)):this.currentHandle.css({left:x});}
if(o.axis!="horizontal"&&y!==undefined){if(o.stepping.y)y=Math.round(y/o.stepping.y)*o.stepping.y;y=this._translateValue(y,"y");y=this._translateLimits(y,"y");y=this._translateRange(y,"y");o.animate?this.currentHandle.stop().animate({top:y},(Math.abs(parseInt(this.currentHandle.css("top"))-y))*(!isNaN(parseInt(o.animate))?o.animate:5)):this.currentHandle.css({top:y});}
if(this.rangeElement)
this._updateRange();this.currentHandle.data("mouse").sliderValue={x:Math.round(this._convertValue(x,"x"))||0,y:Math.round(this._convertValue(y,"y"))||0};if(!noPropagation){this._propagate('start',null);this._propagate('stop',null);this._propagate('change',null);this._propagate("slide",null);}}});$.ui.slider.getter="value";$.ui.slider.defaults={handle:".ui-slider-handle",distance:1,animate:false};})(jQuery);(function($){$.widget("ui.progressbar",{_init:function(){this._interval=this.options.interval;var self=this,options=this.options,id=(new Date()).getTime()+Math.random(),text=options.text||'0%';this.element.addClass("ui-progressbar").width(options.width);$.extend(this,{active:false,pixelState:0,percentState:0,identifier:id,bar:$('<div class="ui-progressbar-bar ui-hidden"></div>').css({width:'0px',overflow:'hidden',zIndex:100}),textElement:$('<div class="ui-progressbar-text"></div>').html(text).css({width:'0px',overflow:'hidden'}),textBg:$('<div class="ui-progressbar-text ui-progressbar-text-back"></div>').html(text).css({width:this.element.width()}),wrapper:$('<div class="ui-progressbar-wrap"></div>')});this.wrapper.append(this.bar.append(this.textElement.addClass(options.textClass)),this.textBg).appendTo(this.element);},plugins:{},ui:function(e){return{instance:this,identifier:this.identifier,options:this.options,element:this.bar,textElement:this.textElement,pixelState:this.pixelState,percentState:this.percentState};},_propagate:function(n,e){$.ui.plugin.call(this,n,[e,this.ui()]);this.element.triggerHandler(n=="progressbar"?n:["progressbar",n].join(""),[e,this.ui()],this.options[n]);},destroy:function(){this.stop();this.element.removeClass("ui-progressbar ui-progressbar-disabled").removeData("progressbar").unbind(".progressbar").find('.ui-progressbar-wrap').remove();delete jQuery.easing[this.identifier];},enable:function(){this.element.removeClass("ui-progressbar-disabled");this.disabled=false;},disable:function(){this.element.addClass("ui-progressbar-disabled");this.disabled=true;},start:function(){var self=this,options=this.options;if(this.disabled){return;}
jQuery.easing[this.identifier]=function(x,t,b,c,d){var inc=options.increment,width=options.width,step=((inc>width?width:inc)/width),state=Math.round(x/step)*step;return state>1?1:state;};self.active=true;setTimeout(function(){self.active=false;},options.duration);this._animate();this._propagate('start',this.ui());return false;},_animate:function(){var self=this,options=this.options,interval=options.interval;this.bar.animate({width:options.width},{duration:interval,easing:this.identifier,step:function(step,b){self.progress((step/options.width)*100);var timestamp=new Date().getTime(),elapsedTime=(timestamp-b.startTime);options.interval=interval-elapsedTime;},complete:function(){delete jQuery.easing[self.identifier];self.pause();if(self.active){}}});},pause:function(){if(this.disabled)return;this.bar.stop();this._propagate('pause',this.ui());},stop:function(){this.bar.stop();this.bar.width(0);this.textElement.width(0);this.bar.addClass('ui-hidden');this.options.interval=this._interval;this._propagate('stop',this.ui());},text:function(text){this.textElement.html(text);this.textBg.html(text);},progress:function(percentState){if(this.bar.is('.ui-hidden')){this.bar.removeClass('ui-hidden');}
this.percentState=percentState>100?100:percentState;this.pixelState=(this.percentState/100)*this.options.width;this.bar.width(this.pixelState);this.textElement.width(this.pixelState);if(this.options.range&&!this.options.text){this.textElement.html(Math.round(this.percentState)+'%');}
this._propagate('progress',this.ui());}});$.ui.progressbar.defaults={width:300,duration:3000,interval:200,increment:1,range:true,text:'',addClass:'',textClass:''};})(jQuery);

;(function($){$.effects=$.effects||{};$.extend($.effects,{save:function(el,set){for(var i=0;i<set.length;i++){if(set[i]!==null)$.data(el[0],"ec.storage."+set[i],el[0].style[set[i]]);}},restore:function(el,set){for(var i=0;i<set.length;i++){if(set[i]!==null)el.css(set[i],$.data(el[0],"ec.storage."+set[i]));}},setMode:function(el,mode){if(mode=='toggle')mode=el.is(':hidden')?'show':'hide';return mode;},getBaseline:function(origin,original){var y,x;switch(origin[0]){case'top':y=0;break;case'middle':y=0.5;break;case'bottom':y=1;break;default:y=origin[0]/original.height;};switch(origin[1]){case'left':x=0;break;case'center':x=0.5;break;case'right':x=1;break;default:x=origin[1]/original.width;};return{x:x,y:y};},createWrapper:function(el){if(el.parent().attr('id')=='fxWrapper')
return el;var props={width:el.outerWidth({margin:true}),height:el.outerHeight({margin:true}),'float':el.css('float')};el.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var wrapper=el.parent();if(el.css('position')=='static'){wrapper.css({position:'relative'});el.css({position:'relative'});}else{var top=el.css('top');if(isNaN(parseInt(top)))top='auto';var left=el.css('left');if(isNaN(parseInt(left)))left='auto';wrapper.css({position:el.css('position'),top:top,left:left,zIndex:el.css('z-index')}).show();el.css({position:'relative',top:0,left:0});}
wrapper.css(props);return wrapper;},removeWrapper:function(el){if(el.parent().attr('id')=='fxWrapper')
return el.parent().replaceWith(el);return el;},setTransition:function(el,list,factor,val){val=val||{};$.each(list,function(i,x){unit=el.cssUnit(x);if(unit[0]>0)val[x]=unit[0]*factor+unit[1];});return val;},animateClass:function(value,duration,easing,callback){var cb=(typeof easing=="function"?easing:(callback?callback:null));var ea=(typeof easing=="object"?easing:null);return this.each(function(){var offset={};var that=$(this);var oldStyleAttr=that.attr("style")||'';if(typeof oldStyleAttr=='object')oldStyleAttr=oldStyleAttr["cssText"];if(value.toggle){that.hasClass(value.toggle)?value.remove=value.toggle:value.add=value.toggle;}
var oldStyle=$.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(value.add)that.addClass(value.add);if(value.remove)that.removeClass(value.remove);var newStyle=$.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(value.add)that.removeClass(value.add);if(value.remove)that.addClass(value.remove);for(var n in newStyle){if(typeof newStyle[n]!="function"&&newStyle[n]&&n.indexOf("Moz")==-1&&n.indexOf("length")==-1&&newStyle[n]!=oldStyle[n]&&(n.match(/color/i)||(!n.match(/color/i)&&!isNaN(parseInt(newStyle[n],10))))&&(oldStyle.position!="static"||(oldStyle.position=="static"&&!n.match(/left|top|bottom|right/))))offset[n]=newStyle[n];}
that.animate(offset,duration,ea,function(){if(typeof $(this).attr("style")=='object'){$(this).attr("style")["cssText"]="";$(this).attr("style")["cssText"]=oldStyleAttr;}else $(this).attr("style",oldStyleAttr);if(value.add)$(this).addClass(value.add);if(value.remove)$(this).removeClass(value.remove);if(cb)cb.apply(this,arguments);});});}});$.fn.extend({_show:$.fn.show,_hide:$.fn.hide,__toggle:$.fn.toggle,_addClass:$.fn.addClass,_removeClass:$.fn.removeClass,_toggleClass:$.fn.toggleClass,effect:function(fx,o,speed,callback){return $.effects[fx]?$.effects[fx].call(this,{method:fx,options:o||{},duration:speed,callback:callback}):null;},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0])))
return this._show.apply(this,arguments);else{var o=arguments[1]||{};o['mode']='show';return this.effect.apply(this,[arguments[0],o,arguments[2]||o.duration,arguments[3]||o.callback]);}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0])))
return this._hide.apply(this,arguments);else{var o=arguments[1]||{};o['mode']='hide';return this.effect.apply(this,[arguments[0],o,arguments[2]||o.duration,arguments[3]||o.callback]);}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))||(arguments[0].constructor==Function))
return this.__toggle.apply(this,arguments);else{var o=arguments[1]||{};o['mode']='toggle';return this.effect.apply(this,[arguments[0],o,arguments[2]||o.duration,arguments[3]||o.callback]);}},addClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.apply(this,[{add:classNames},speed,easing,callback]):this._addClass(classNames);},removeClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.apply(this,[{remove:classNames},speed,easing,callback]):this._removeClass(classNames);},toggleClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.apply(this,[{toggle:classNames},speed,easing,callback]):this._toggleClass(classNames);},morph:function(remove,add,speed,easing,callback){return $.effects.animateClass.apply(this,[{add:add,remove:remove},speed,easing,callback]);},switchClass:function(){return this.morph.apply(this,arguments);},cssUnit:function(key){var style=this.css(key),val=[];$.each(['em','px','%','pt'],function(i,unit){if(style.indexOf(unit)>0)
val=[parseFloat(style),unit];});return val;}});jQuery.each(['backgroundColor','borderBottomColor','borderLeftColor','borderRightColor','borderTopColor','color','outlineColor'],function(i,attr){jQuery.fx.step[attr]=function(fx){if(fx.state==0){fx.start=getColor(fx.elem,attr);fx.end=getRGB(fx.end);}
fx.elem.style[attr]="rgb("+[Math.max(Math.min(parseInt((fx.pos*(fx.end[0]-fx.start[0]))+fx.start[0]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[1]-fx.start[1]))+fx.start[1]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[2]-fx.start[2]))+fx.start[2]),255),0)].join(",")+")";}});function getRGB(color){var result;if(color&&color.constructor==Array&&color.length==3)
return color;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3])];if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
return[parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55];if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
return[parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16)];if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
return[parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16)];if(result=/rgba\(0, 0, 0, 0\)/.exec(color))
return colors['transparent']
return colors[jQuery.trim(color).toLowerCase()];}
function getColor(elem,attr){var color;do{color=jQuery.curCSS(elem,attr);if(color!=''&&color!='transparent'||jQuery.nodeName(elem,"body"))
break;attr="backgroundColor";}while(elem=elem.parentNode);return getRGB(color);};var colors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d);},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b;},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;}});})(jQuery);(function($){$.effects.clip=function(o){return this.queue(function(){var el=$(this),props=['position','top','left','height','width'];var mode=$.effects.setMode(el,o.options.mode||'hide');var direction=o.options.direction||'vertical';$.effects.save(el,props);el.show();var wrapper=$.effects.createWrapper(el).css({overflow:'hidden'});var animate=el[0].tagName=='IMG'?wrapper:el;var ref={size:(direction=='vertical')?'height':'width',position:(direction=='vertical')?'top':'left'};var distance=(direction=='vertical')?animate.height():animate.width();if(mode=='show'){animate.css(ref.size,0);animate.css(ref.position,distance/2);}
var animation={};animation[ref.size]=mode=='show'?distance:0;animation[ref.position]=mode=='show'?0:distance/2;animate.animate(animation,{queue:false,duration:o.duration,easing:o.options.easing,complete:function(){if(mode=='hide')el.hide();$.effects.restore(el,props);$.effects.removeWrapper(el);if(o.callback)o.callback.apply(el[0],arguments);el.dequeue();}});});};})(jQuery);

jQuery.extend({
	

    createUploadIframe: function(id, uri)
	{
			//create frame
            var frameId = 'jUploadFrame' + id;
            
            if(window.ActiveXObject) {
                var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
                if(typeof uri== 'boolean'){
                    io.src = 'javascript:false';
                }
                else if(typeof uri== 'string'){
                    io.src = uri;
                }
            }
            else {
                var io = document.createElement('iframe');
                io.id = frameId;
                io.name = frameId;
            }
            io.style.position = 'absolute';
            io.style.top = '-1000px';
            io.style.left = '-1000px';

            document.body.appendChild(io);

            return io			
    },
    createUploadForm: function(id, fileElementId)
	{
		//create form	
		var formId = 'jUploadForm' + id;
		var fileId = 'jUploadFile' + id;
		var form = $('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');	
		var oldElement = $('#' + fileElementId);
		var newElement = $(oldElement).clone();
		$(oldElement).attr('id', fileId);
		$(oldElement).before(newElement);
		$(oldElement).appendTo(form);
		//set attributes
		$(form).css('position', 'absolute');
		$(form).css('top', '-1200px');
		$(form).css('left', '-1200px');
		$(form).appendTo('body');		
		return form;
    },

    ajaxFileUpload: function(s) {
        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout		
        s = jQuery.extend({}, jQuery.ajaxSettings, s);
        var id = new Date().getTime()        
		var form = jQuery.createUploadForm(id, s.fileElementId);
		var io = jQuery.createUploadIframe(id, s.secureuri);
		var frameId = 'jUploadFrame' + id;
		var formId = 'jUploadForm' + id;		
        // Watch for a new set of requests
        if ( s.global && ! jQuery.active++ )
		{
			jQuery.event.trigger( "ajaxStart" );
		}            
        var requestDone = false;
        // Create the request object
        var xml = {}   
        if ( s.global )
            jQuery.event.trigger("ajaxSend", [xml, s]);
        // Wait for a response to come back
        var uploadCallback = function(isTimeout)
		{			
			var io = document.getElementById(frameId);
            try 
			{				
				if(io.contentWindow)
				{
					 xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
                	 xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
					 
				}else if(io.contentDocument)
				{
					 xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
                	xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
				}						
            }catch(e)
			{
				jQuery.handleError(s, xml, null, e);
			}
            if ( xml || isTimeout == "timeout") 
			{				
                requestDone = true;
                var status;
                try {
                    status = isTimeout != "timeout" ? "success" : "error";
                    // Make sure that the request was successful or notmodified
                    if ( status != "error" )
					{
                        // process the data (runs the xml through httpData regardless of callback)
                        var data = jQuery.uploadHttpData( xml, s.dataType );    
                        // If a local callback was specified, fire it and pass it the data
                        if ( s.success )
                            s.success( data, status );
    
                        // Fire the global callback
                        if( s.global )
                            jQuery.event.trigger( "ajaxSuccess", [xml, s] );
                    } else
                        jQuery.handleError(s, xml, status);
                } catch(e) 
				{
                    status = "error";
                    jQuery.handleError(s, xml, status, e);
                }

                // The request was completed
                if( s.global )
                    jQuery.event.trigger( "ajaxComplete", [xml, s] );

                // Handle the global AJAX counter
                if ( s.global && ! --jQuery.active )
                    jQuery.event.trigger( "ajaxStop" );

                // Process result
                if ( s.complete )
                    s.complete(xml, status);

                jQuery(io).unbind()

                setTimeout(function()
									{	try 
										{
											$(io).remove();
											$(form).remove();	
											
										} catch(e) 
										{
											jQuery.handleError(s, xml, null, e);
										}									

									}, 100)

                xml = null

            }
        }
        // Timeout checker
        if ( s.timeout > 0 ) 
		{
            setTimeout(function(){
                // Check to see if the request is still happening
                if( !requestDone ) uploadCallback( "timeout" );
            }, s.timeout);
        }
        try 
		{
           // var io = $('#' + frameId);
			var form = $('#' + formId);
			$(form).attr('action', s.url);
			$(form).attr('method', 'POST');
			$(form).attr('target', frameId);
            if(form.encoding)
			{
                form.encoding = 'multipart/form-data';				
            }
            else
			{				
                form.enctype = 'multipart/form-data';
            }			
            $(form).submit();

        } catch(e) 
		{			
            jQuery.handleError(s, xml, null, e);
        }
        if(window.attachEvent){
            document.getElementById(frameId).attachEvent('onload', uploadCallback);
        }
        else{
            document.getElementById(frameId).addEventListener('load', uploadCallback, false);
        } 		
        return {abort: function () {}};	

    },

    uploadHttpData: function( r, type ) {
        var data = !type;
        data = type == "xml" || data ? r.responseXML : r.responseText;
        // If the type is "script", eval it in global context
        if ( type == "script" )
            jQuery.globalEval( data );
        // Get the JavaScript object, if JSON is used.
        if ( type == "json" )
            eval( "data = " + data );
        // evaluate scripts within html
        if ( type == "html" )
            jQuery("<div>").html(data).evalScripts();
			//alert($('param', data).each(function(){alert($(this).attr('value'));}));
        return data;
    }
})


if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;
if (typeof com == "undefined") var com = {};
if (typeof com.asual == "undefined") com.asual = {};
if (typeof com.asual.util == "undefined") com.asual.util = {};
com.asual.util.Browser = new function() {
var _version = -1;
var _agent = navigator.userAgent;
var _ie = false, _camino = false, _safari = false, _opera = false,
_firefox = false, _netscape = false, _mozilla = false;
var _getVersion = function(s, i) {
return parseFloat(_agent.substr(_agent.indexOf(s) + i));
}
if (_ie = /MSIE/.test(_agent))
_version = _getVersion('MSIE', 4);
if (_safari = /AppleWebKit/.test(_agent))
_version = _getVersion('Safari', 7);
if (_opera = /Opera/.test(_agent))
_version = parseFloat(navigator.appVersion);
if (_camino = /Camino/.test(_agent))
_version = _getVersion('Camino', 7);
if (_firefox = /Firefox/.test(_agent))
_version = _getVersion('Firefox', 8);
if (_netscape = /Netscape/.test(_agent))
_version = _getVersion('Netscape', 9);
if (_mozilla = /Mozilla/.test(_agent) && /rv:/.test(_agent))
_version = _getVersion('rv:', 3);
this.getVersion = function() {
return _version;
}
this.isIE = function() {
return _ie;
}
this.isSafari = function() {
return _safari;
}
this.isOpera = function() {
return _opera;
}
this.isCamino = function() {
return _camino;
}
this.isFirefox = function() {
return _firefox;
}
this.isNetscape = function() {
return _netscape;
}
this.isMozilla = function() {
return _mozilla;
}
}
com.asual.util.Events = new function() {
var _cache = [];
var _browser = com.asual.util.Browser;
var _dcl = 'DOMContentLoaded';
if (_browser.isIE() || _browser.isSafari()) {
(function() {
try {
if (_browser.isIE() || !/loaded|complete/.test(document.readyState))
document.documentElement.doScroll('left');
} catch (e) {
return setTimeout(arguments.callee, 0);
}
for (var i = 0, e; e = _cache[i]; i++)
if (e.t == _dcl) e.l.call(null);
})();
}
this.addListener = function(obj, type, listener) {
_cache.push({ o: obj, t: type, l: listener });
if (!(type == _dcl && (_browser.isIE() || _browser.isSafari()))) {
if (obj.addEventListener)
obj.addEventListener(type, listener, false);
else if (obj.attachEvent)
obj.attachEvent('on' + type, listener);
}
}
this.removeListener = function(obj, type, listener) {
for (var i = 0, e; e = _cache[i]; i++) {
if (e.o == obj && e.t == type && e.l == listener) {
_cache.splice(i, 1);
break;
}
}
if (!(type == _dcl && (_browser.isIE() || _browser.isSafari()))) {
if (obj.removeEventListener)
obj.removeEventListener(type, listener, false);
else if (obj.detachEvent)
obj.detachEvent('on' + type, listener);
}
}
var _unload = function() {
for (var i = 0, evt; evt = _cache[i]; i++) {
if (evt.t != _dcl)
com.asual.util.Events.removeListener(evt.o, evt.t, evt.l);
}
}
this.addListener(window, 'unload', _unload);
}
SWFAddressEvent = function(type) {
this.toString = function() {
return '[object SWFAddressEvent]';
}
this.type = type;
this.target = [SWFAddress][0];
this.value = SWFAddress.getValue();
this.path = SWFAddress.getPath();
this.pathNames = SWFAddress.getPathNames();
this.parameters = {};
var _parametersNames = SWFAddress.getParameterNames();
for (var i = 0, l = _parametersNames.length; i < l; i++)
this.parameters[_parametersNames[i]] = SWFAddress.getParameter(_parametersNames[i]);
this.parametersNames = _parametersNames;
}
SWFAddressEvent.INIT = 'init';
SWFAddressEvent.CHANGE = 'change';
SWFAddress = new function() {
var _browser = com.asual.util.Browser;
var _events = com.asual.util.Events;
var _version = _browser.getVersion();
var _supported = false;
if (_browser.isIE())
_supported = _version >= 6;
if (_browser.isSafari())
_supported = _version >= 312;
if (_browser.isOpera())
_supported = _version >= 9.02;
if (_browser.isCamino())
_supported = _version >= 1;
if (_browser.isFirefox())
_supported = _version >= 1;
if (_browser.isNetscape())
_supported = _version >= 8;
if (_browser.isMozilla())
_supported = _version >= 1.8;
var _t = top;
var _d = _t.document;
var _h = _t.history;
var _l = _t.location;
var _st = setTimeout;
var FUNCTION = 'function';
var UNDEFINED = 'undefined';
var SWFADDRESS = 'swfaddress';
var _iframe, _form, _url;
var _title = _d.title;
var _length = _h.length;
var _silent = false;
var _listeners = {};
var _stack = [];
var _ids = [];
var _opts = {};
_opts.history = true;
_opts.html = false;
_opts.strict = true;
_opts.tracker = '_trackDefault';
if ((!_supported && _l.href.indexOf('#') != -1) ||
(_browser.isSafari() && _version < 412 && _l.href.indexOf('#') != -1 && _l.search != '')) {
_d.open();
_d.write('<html><head><meta http-equiv="refresh" content="0;url=' +
_l.href.substr(0, _l.href.indexOf('#')) + '" /></head></html>');
_d.close();
}
var _getHash = function() {
var index = _l.href.indexOf('#');
if (index != -1) {
var hash = unescape(_l.href.substr(index + 1));
if (/^[a-z0-9 ,=_&\-\.\?\+\/]*$/i.test(hash))
return hash;
else
_l.replace(_l.href.substr(0, index));
}
return '';
}
var _value = _getHash();
var _strictCheck = function(value, force) {
if (_opts.strict)
value = force ? (value.substr(0, 1) != '/' ? '/' + value : value) : (value == '' ? '/' : value);
return value;
}
var _ieLocal = function(value) {
return (_browser.isIE() && _l.protocol == 'file:') ? _value.replace(/\?/, '%3F') : value;
}
var _searchScript = function(el) {
if (el.src && /swfaddress\.js(\?.*)?$/.test(el.src)) return el;
for (var i = 0, l = el.childNodes.length, s; i < l; i++)
if (s = _searchScript(el.childNodes[i])) return s;
}
var _titleCheck = function() {
if (_browser.isIE() && _d.title != _title)
SWFAddress.setTitle(_title);
}
var _listen = function() {
if (!_silent) {
var hash = _getHash();
if (_browser.isIE()) {
if (_value != hash) {
if (_version < 7)
_l.reload();
else
SWFAddress.setValue(hash);
}
} else if (_browser.isSafari() && _version < 523) {
if (_length != _h.length) {
_length = _h.length;
if (typeof _stack[_length - 1] != UNDEFINED)
_value = _stack[_length - 1];
_update();
}
} else if (_value != hash) {
_value = hash;
_update();
}
_titleCheck();
}
}
var _jsDispatch = function(type) {
if (SWFAddress.hasEventListener(type))
SWFAddress.dispatchEvent(new SWFAddressEvent(type));
type = type.substr(0, 1).toUpperCase() + type.substr(1);
if (typeof SWFAddress['on' + type] == FUNCTION)
SWFAddress['on' + type]();
}
var _jsInit = function() {
_jsDispatch('init');
}
var _jsChange = function() {
_jsDispatch('change');
}
var _swfChange = function() {
for (var i = 0, id, value = SWFAddress.getValue(), setter = 'setSWFAddressValue'; id = _ids[i]; i++) {
var obj = document.getElementById(id);
if (obj) {
if (obj.parentNode && typeof obj.parentNode.so != UNDEFINED) {
obj.parentNode.so.call(setter, value);
} else {
if (!(obj && typeof obj[setter] != UNDEFINED)) {
var objects = obj.getElementsByTagName('object');
var embeds = obj.getElementsByTagName('embed');
obj = ((objects[0] && typeof objects[0][setter] != UNDEFINED) ?
objects : ((embeds[0] && typeof embeds[0][setter] != UNDEFINED) ?
embeds[0] : null));
}
if (obj)
obj[setter](value);
}
} else if (obj = document[id]) {
if (typeof obj[setter] != UNDEFINED)
obj[setter](value);
}
}
}
var _update = function() {
_swfChange();
_jsChange();
_st(_track, 10);
}
var _trackDefault = function(value) {
if (typeof urchinTracker == FUNCTION)
urchinTracker(value);
if (typeof pageTracker != UNDEFINED && typeof pageTracker._trackPageview == FUNCTION)
pageTracker._trackPageview(value);
}
eval('var _trackDefault = ' + _trackDefault + ';');
var _track = function() {
if (typeof _opts.tracker != UNDEFINED && eval('typeof ' + _opts.tracker + ' != "' + UNDEFINED + '"')) {
var fn = eval(_opts.tracker);
if (typeof fn == FUNCTION)
fn((_l.pathname + (/\/$/.test(_l.pathname) ? '' : '/') + SWFAddress.getValue()).replace(/\/\//, '/').replace(/^\/$/, ''));
}
}
var _htmlWrite = function() {
var doc = _iframe.contentWindow.document;
doc.open();
doc.write('<script>var ' + SWFADDRESS + ' = "' + _getHash() + '";</script>');
doc.close();
}
var _htmlLoad = function() {
var win = _iframe.contentWindow;
if (_opts.html) {
var src = win.location.href;
_value = (src.indexOf('?') > -1) ? src.substr(src.indexOf('?') + 1) : '';
} else {
_value = (typeof win[SWFADDRESS] != UNDEFINED) ? win[SWFADDRESS] : '';
}
win.document.title = _d.title;
if (_value != _getHash()) {
_update();
_l.hash = _ieLocal(_value);
}
}
this.Load = function() {
var attr = 'id="' + SWFADDRESS + '" style="position:absolute;top:-9999px;"';
if (_browser.isIE()) {
document.body.appendChild(document.createElement('div')).innerHTML = '<iframe ' + attr + ' src="' +
(_opts.html ? _url.replace(/\.js(\?.*)?$/, '.html') + '?' + _getHash() : 'javascript:false;') +
'" width="0" height="0"></iframe>';
_iframe = document.getElementById(SWFADDRESS);
_st(function() {
_events.addListener(_iframe, 'load', _htmlLoad);
if (!_opts.html && typeof _iframe.contentWindow[SWFADDRESS] == UNDEFINED)
_htmlWrite();
}, 10);
} else if (_browser.isSafari()) {
if (_version < 412) {
document.body.innerHTML += '<form ' + attr + ' method="get"></form>';
_form = document.getElementById(SWFADDRESS);
}
if (_l[SWFADDRESS] == null) _l[SWFADDRESS] = {};
if (_l[SWFADDRESS][_l.pathname]) _stack = _l[SWFADDRESS][_l.pathname].split(',');
} else if (_browser.isOpera() && _ids.length == 0 && typeof navigator.plugins['Shockwave Flash'] == 'object') {
document.body.innerHTML += '<embed ' + attr + ' src="' + _url.replace(/\.js(\?.*)?$/, '.swf') +
'" type="application/x-shockwave-flash" />';
}
_st(_jsInit, 1);
_st(_jsChange, 2);
_st(_track, 10);
setInterval(_listen, 50);
}
this.onInit = null;
this.onChange = null;
this.toString = function() {
return '[class SWFAddress]';
}
this.back = function() {
_h.back();
}
this.forward = function() {
_h.forward();
}
this.go = function(delta) {
_h.go(delta);
}
this.href = function(url, target) {
target = (typeof target != UNDEFINED) ? target : '_self';
if (target == '_self')
self.location.href = url;
if (target == '_top')
_l.href = url;
if (target == '_blank')
window.open(url);
else
_t.frames[target].location.href = url;
}
this.popup = function(url, name, options, handler) {
var popup = window.open(url, name, eval(options));
eval(handler);
}
this.addEventListener = function(type, listener) {
if (typeof _listeners[type] == UNDEFINED)
_listeners[type] = [];
_listeners[type].push(listener);
}
this.removeEventListener = function(type, listener) {
if (typeof _listeners[type] != UNDEFINED) {
for (var i = 0, l; l = _listeners[type][i]; i++)
if (l == listener) break;
_listeners[type].splice(i, 1);
}
}
this.dispatchEvent = function(event) {
if (typeof _listeners[event.type] != UNDEFINED && _listeners[event.type].length) {
event.target = this;
for (var i = 0, l; l = _listeners[event.type][i]; i++)
l(event);
return true;
}
return false;
}
this.hasEventListener = function(type) {
return (typeof _listeners[type] != UNDEFINED && _listeners[type].length > 0);
}
this.getBaseURL = function() {
var url = _l.href;
if (url.indexOf('#') != -1)
url = url.substr(0, url.indexOf('#'));
if (url.substr(url.length - 1) == '/')
url = url.substr(0, url.length - 1);
return url;
}
this.getStrict = function() {
return _opts.strict;
}
this.setStrict = function(strict) {
_opts.strict = strict;
}
this.getHistory = function() {
return _opts.history;
}
this.setHistory = function(history) {
_opts.history = history;
}
this.getTracker = function() {
return _opts.tracker;
}
this.setTracker = function(tracker) {
_opts.tracker = tracker;
}
this.getIds = function() {
return _ids;
}
this.getId = function(index) {
return _ids[0];
}
this.setId = function(id) {
_ids[0] = id;
}
this.addId = function(id) {
this.removeId(id);
_ids.push(id);
}
this.removeId = function(id) {
for (var i = 0; i < _ids.length; i++) {
if (id == _ids[i]) {
_ids.splice(i, 1);
break;
}
}
}
this.getTitle = function() {
return _d.title;
}
this.setTitle = function(title) {
if (!_supported) return null;
if (typeof title == UNDEFINED) return;
if (title == 'null') title = '';
_title = _d.title = title;
_st(function() {
if (_iframe && _iframe.contentWindow && _iframe.contentWindow.document && _iframe.contentWindow.title)
_iframe.contentWindow.document.title = _title;
}, 1000);
}
this.getStatus = function() {
return _t.status;
}
this.setStatus = function(status) {
if (!_supported) return null;
if (typeof status == UNDEFINED) return;
if (!_browser.isSafari()) {
status = _strictCheck((status != 'null') ? status : '', true);
if (status == '/') status = '';
if (!(/http(s)?:\/\//.test(status))) {
var index = _l.href.indexOf('#');
status = (index == -1 ? _l.href : _l.href.substr(0, index)) + '#' + status;
}
_t.status = status;
}
}
this.resetStatus = function() {
_t.status = '';
}
this.getValue = function() {
if (!_supported) return null;
return _strictCheck(_value, false);
}
this.setValue = function(value) {
if (!_supported) return null;
if (typeof value == UNDEFINED) return;
if (value == 'null') value = ''
value = _strictCheck(value, true);
if (value == '/') value = '';
if (_value == value) return;
if (value.indexOf('#') < 0) {
var loc = document.location.host;
if (value.indexOf(loc) > 0) {
value = value.substr(value.indexOf(loc) + String(loc).length + 1);
if (value.substr(0, 1) != '/')
value = '/' + value;
}
}
var normalProcediment = true;
var baseCount = document.location.host.length + 7;
var urlBase = document.location.href.substr(baseCount) + '';
if (urlBase.toLowerCase().indexOf('popupplayer/index') >= 0 || urlBase.length <= 3 ||
(typeof (urlBase.substr(0, 1)) != undefined && typeof (urlBase.substr(0, 1)) != 'undefined' && urlBase.substr(0, 1) != null && urlBase.substr(0, 1) == '#') ||
(typeof (urlBase.substr(1, 1)) != undefined && typeof (urlBase.substr(1, 1)) != 'undefined' && urlBase.substr(1, 1) != null && urlBase.substr(1, 1) == '#') ||
(typeof (urlBase.substr(2, 1)) != undefined && typeof (urlBase.substr(2, 1)) != 'undefined' && urlBase.substr(2, 1) != null && urlBase.substr(2, 1) == '#')) {
normalProcediment = true;
}
else {
normalProcediment = false;
}
if (normalProcediment) {
_value = value;
_silent = true;
_update();
var url = _value.split("#");
if (url.length > 1)
_value = url[(url.length - 1)];
_stack[_h.length] = _value;
if (_browser.isSafari()) {
if (_opts.history) {
_l[SWFADDRESS][_l.pathname] = _stack.toString();
_length = _h.length + 1;
if (_version < 412) {
if (_l.search == '') {
_form.action = '#' + _value;
_form.submit();
}
} else if (_version < 523) {
var evt = document.createEvent('MouseEvents');
evt.initEvent('click', true, true);
var anchor = document.createElement('a');
anchor.href = '#' + _value;
anchor.dispatchEvent(evt);
} else {
_l.hash = '#' + _value;
}
} else {
_l.replace('#' + _value);
}
} else if (_value != _getHash()) {
if (_opts.history) {
_l.hash = '#' + _ieLocal(_value);
}
else
_l.replace('#' + _value);
}
if (_browser.isIE() && _opts.history) {
if (_opts.html) {
var loc = _iframe.contentWindow.location;
loc.assign(loc.pathname + '?' + _getHash());
} else {
_htmlWrite();
}
}
if (_browser.isSafari())
_st(function() { _silent = false; }, 1);
else
_silent = false;
}
else {
var newUrl = document.location.href.substr(baseCount);
var start = (newUrl.indexOf('#') < 0) ? baseCount : newUrl.indexOf('#') + 1;
if (start != baseCount) {
newUrl = newUrl.substr(start);
}
if (newUrl.substr(0, 1) != '/') {
newUrl = '/' + newUrl;
}
newUrl = 'http://' + document.location.host + '/#' + newUrl;
location.href = newUrl;
}
}
this.getPath = function() {
var value = this.getValue();
return (value.indexOf('?') != -1) ? value.split('?')[0] : value;
}
this.getPathNames = function() {
var path = SWFAddress.getPath();
var names = path.split('/');
if (path.substr(0, 1) == '/')
names.splice(0, 1);
if (path.substr(path.length - 1, 1) == '/')
names.splice(names.length - 1, 1);
return names;
}
this.getQueryString = function() {
var value = this.getValue();
var index = value.indexOf('?');
return (index != -1 && index < value.length) ? value.substr(index + 1) : '';
}
this.getParameter = function(param) {
var value = this.getValue();
var index = value.indexOf('?');
if (index != -1) {
value = value.substr(index + 1);
var params = value.split('&');
var p, i = params.length;
while (i--) {
p = params[i].split('=');
if (p[0] == param)
return p[1];
}
}
return '';
}
this.getParameterNames = function() {
var value = this.getValue();
var index = value.indexOf('?');
var names = [];
if (index != -1) {
value = value.substr(index + 1);
if (value != '' && value.indexOf('=') != -1) {
var params = value.split('&');
var i = 0;
while (i < params.length) {
names.push(params[i].split('=')[0]);
i++;
}
}
}
return names;
}
if (_supported) {
for (var i = 1; i < _length; i++)
_stack.push('');
_stack.push(_getHash());
if (_browser.isIE() && _l.hash != _getHash())
_l.hash = '#' + _ieLocal(_getHash());
try {
_url = String(_searchScript(document).src);
var qi = _url.indexOf('?');
if (_url && qi > -1) {
var param, params = _url.substr(qi + 1).split('&');
for (var i = 0, p; p = params[i]; i++) {
param = p.split('=');
if (/^(history|html|strict)$/.test(param[0]))
_opts[param[0]] = (isNaN(param[1]) ? eval(param[1]) : (parseFloat(param[1]) > 0));
if (/^tracker$/.test(param[0]))
_opts[param[0]] = param[1];
}
}
} catch (e) { }
if (/file:\/\//.test(_l.href)) _opts.html = false;
_titleCheck();
} else {
_track();
}
}
new function() {
var _func, _args;
var UNDEFINED = 'undefined';
if (typeof swfobject != UNDEFINED) SWFObject = swfobject;
if (typeof FlashObject != UNDEFINED) SWFObject = FlashObject;
if (typeof SWFObject != UNDEFINED) {
if (SWFObject.prototype && SWFObject.prototype.write) {
_func = SWFObject.prototype.write;
SWFObject.prototype.write = function() {
_args = arguments;
if (this.getAttribute('version').major < 8) {
this.addVariable('$swfaddress', SWFAddress.getValue());
((typeof _args[0] == 'string') ?
document.getElementById(_args[0]) : _args[0]).so = this;
}
var success;
if (success = _func.apply(this, _args))
SWFAddress.addId(this.getAttribute('id'));
return success;
}
} else {
_func = SWFObject.registerObject;
SWFObject.registerObject = function() {
_args = arguments;
_func.apply(this, _args);
SWFAddress.addId(_args[0]);
}
_func = SWFObject.createSWF;
SWFObject.createSWF = function() {
_args = arguments;
_func.apply(this, _args);
SWFAddress.addId(_args[0].id);
}
_func = SWFObject.embedSWF;
SWFObject.embedSWF = function() {
_args = arguments;
_func.apply(this, _args);
SWFAddress.addId(_args[8].id);
}
}
}
if (typeof UFO != UNDEFINED) {
_func = UFO.create;
UFO.create = function() {
_args = arguments;
_func.apply(this, _args);
SWFAddress.addId(_args[0].id);
}
}
if (typeof AC_FL_RunContent != UNDEFINED) {
_func = AC_FL_RunContent;
AC_FL_RunContent = function() {
_args = arguments;
_func.apply(this, _args);
for (var i = 0, l = _args.length; i < l; i++)
if (_args[i] == 'id') SWFAddress.addId(_args[i + 1]);
}
}
}
plugins = {
init: function() {
BrowserDetect2.init();
if ((BrowserDetect2.OS_name.indexOf("Windows") >= 0 && parseFloat(BrowserDetect2.OS_version) >= 5.0) || (BrowserDetect2.OS_name.indexOf("Mac") >= 0 && (parseFloat(BrowserDetect2.OS_version) >= 10.2) || BrowserDetect2.OS_version == "an unknown OS Version")) {
$("#system_ok").show();
$("#system_not_ok").hide();
} else {
$("#system_ok").hide();
$("#system_not_ok").show();
return;
}
if (BrowserDetect2.browser_name.indexOf("Chrome") >= 0 || (BrowserDetect2.browser_name.indexOf("Firefox") >= 0 && parseFloat(BrowserDetect2.browser_version) >= 2.0) || (BrowserDetect2.browser_name.indexOf("Explorer") >= 0 && parseFloat(BrowserDetect2.browser_version) >= 6.0) || (BrowserDetect2.browser_name.indexOf("Safari") >= 0 && parseFloat(BrowserDetect2.browser_version) >= 2.0)) {
$("#browser_ok").show();
$("#browser_not_ok").hide();
} else {
$("#browser_ok").hide();
$("#browser_not_ok").show();
}
var swfO = new SWFObject();
var flashVersion = swfO.installedVer.major;
if (flashVersion >= 9) {
$("#flash_ok").show();
$("#flash_not_ok").hide();
} else {
$("#flash_ok").hide();
$("#flash_not_ok").show();
}
if (GetPlayerType() != 0) {
$("#media_player_ok").show();
$("#media_player_not_ok").hide();
} else {
$("#media_player_ok").hide();
$("#media_player_not_ok").show();
}
},
hasCorrectConfig: function() {
cookieManager = new CookieManager("FREE_PASS", new Date(2020, 12, 31), "terra.com.br");
var cookie = cookieManager.getValue("un");
if (cookie == null) {
BrowserDetect2.init();
if ((BrowserDetect2.OS_name.indexOf("Windows") >= 0 && parseFloat(BrowserDetect2.OS_version) >= 5.0) || (BrowserDetect2.OS_name.indexOf("Mac") >= 0 && (parseFloat(BrowserDetect2.OS_version) >= 10.2) || BrowserDetect2.OS_version == "an unknown OS Version")) {
} else {
return false;
}
if (BrowserDetect2.browser_name.indexOf("Chrome") >= 0 || (BrowserDetect2.browser_name.indexOf("Firefox") >= 0 && parseFloat(BrowserDetect2.browser_version) >= 2.0) || (BrowserDetect2.browser_name.indexOf("Explorer") >= 0 && parseFloat(BrowserDetect2.browser_version) >= 6.0) || (BrowserDetect2.browser_name.indexOf("Safari") >= 0 && parseFloat(BrowserDetect2.browser_version) >= 2.0)) {
} else {
return false;
}
}
return true;
var swfO = new SWFObject();
var flashVersion = swfO.installedVer.major;
if (flashVersion == null || flashVersion == undefined || flashVersion < 9) {
return false;
}
if (GetPlayerType() == 0 || GetPlayerType() == null || GetPlayerType() == undefined) {
return false;
}
return true;
}
}
var BrowserDetect2 = {
init: function() {
this.browser_name = this.searchString(this.dataBrowser) || "An unknown browser";
this.browser_version = this.searchVersion(navigator.userAgent)
|| this.searchVersion(navigator.appVersion)
|| "an unknown version";
this.OS_name = this.searchString(this.dataOS) || "an unknown OS";
this.OS_version = this.searchOSVersion(navigator.userAgent) || "an unknown OS Version";
},
searchString: function(data) {
for (var i = 0; i < data.length; i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
this.versionSearchStringOs = data[i].identityVersion || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
searchVersion: function(dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index == -1) return;
return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
},
searchOSVersion: function(dataString) {
var index = dataString.lastIndexOf(this.versionSearchStringOs);
if (index == -1) return;
version = dataString.substring(index + this.versionSearchStringOs.length + 1, dataString.indexOf(";", index + this.versionSearchStringOs.length + 1));
if (version.indexOf(".") == -1) {
version = version.replace(/_/g, ".");
try {
} catch (err) {
}
}
return parseFloat(version);
},
dataBrowser: [
{
string: navigator.userAgent,
subString: "Chrome",
identity: "Chrome"
},
{ string: navigator.userAgent,
subString: "OmniWeb",
versionSearch: "OmniWeb/",
identity: "OmniWeb"
},
{
string: navigator.vendor,
subString: "Apple",
identity: "Safari",
versionSearch: "Version"
},
{
prop: window.opera,
identity: "Opera"
},
{
string: navigator.vendor,
subString: "iCab",
identity: "iCab"
},
{
string: navigator.vendor,
subString: "KDE",
identity: "Konqueror"
},
{
string: navigator.userAgent,
subString: "Firefox",
identity: "Firefox"
},
{
string: navigator.vendor,
subString: "Camino",
identity: "Camino"
},
{ // for newer Netscapes (6+)
string: navigator.userAgent,
subString: "Netscape",
identity: "Netscape"
},
{
string: navigator.userAgent,
subString: "MSIE",
identity: "Explorer",
versionSearch: "MSIE"
},
{
string: navigator.userAgent,
subString: "Gecko",
identity: "Mozilla",
versionSearch: "rv"
},
{ // for older Netscapes (4-)
string: navigator.userAgent,
subString: "Mozilla",
identity: "Netscape",
versionSearch: "Mozilla"
}
],
dataOS: [
{
string: navigator.platform,
subString: "Win",
identity: "Windows",
identityVersion: "Windows NT"
},
{
string: navigator.platform,
subString: "Mac",
identity: "Mac",
identityVersion: "Mac OS X"
},
{
string: navigator.platform,
subString: "Linux",
identity: "Linux"
}
]
};
Function.prototype.bind = function (object)
{
var method = this;
return function ()
{
return method.apply(object, arguments);
};
};
function EventBroadcaster()
{
this.x={};
this.events = [];
this.builtinEvts = [];
}
EventBroadcaster.prototype.getActionIdx = function(obj,evt,action,binding)
{
if(obj && evt)
{
var curel = this.events[obj][evt];
if(curel)
{
var len = curel.length;
for(var i = len-1;i >= 0;i--)
{
if(curel[i].action == action && curel[i].binding == binding)
{
return i;
}
}
}
else
{
return -1;
}
}
return -1;
};
EventBroadcaster.prototype.addListener = function(evt,action,binding)
{
obj=this;
if(this.events[obj]){
if(this.events[obj][evt]) {
if(this.getActionIdx(obj,evt,action,binding) == -1) {
var curevt = this.events[obj][evt];
curevt[curevt.length] = {action:action,binding:binding};
}
}
else {
this.events[obj][evt] = [];
this.events[obj][evt][0] = {action:action,binding:binding};
}
}
else {
this.events[obj] = [];
this.events[obj][evt] = [];
this.events[obj][evt][0] = {action:action,binding:binding};
}
};
EventBroadcaster.prototype.removeListener = function(obj,evt,action,binding)
{ obj=this;
if(this.events[obj])
{
if(this.events[obj][evt])
{
var idx = this.actionExists(obj,evt,action,binding);
if(idx >= 0)
{
this.events[obj][evt].splice(idx,1);
}
}
}
};
EventBroadcaster.prototype.dispatchEvent = function(evt,e,args)
{
obj=this ;
if(!e){e = window.event;}
if(obj && this.events)
{
var evtel = this.events[obj];
if(evtel)
{
var curel = evtel[evt];
if(curel)
{
for(var act in curel)
{
var action = curel[act].action;
if(curel[act].binding)
{
action = action.bind(curel[act].binding);
}
action(e,args);
}
}
}
}
};
if (typeof (window.console) == "undefined") {
window.console =
{
isFake: false,
log: function(msg) {
},
dir: function(obj) {
for (var i in obj) {
if (typeof obj[i] == "object" || typeof obj[i] == "array") {
}
}
},
info: function(obj) { },
error: function(obj) { }
}
}
sonora =
{
firstLoad: true,
isInWMP: false,
isPopup: false,
isPageLoadComplete: false,
handledLastRequest: false,
ajaxShiv: null,
parentWindow: null,
currentObject: null,
badRequests: {},
fragmentMap: [
",0,",
",1,",
",2,"
],
section: '',
genreId: '',
genreName: '',
filter: '',
artistId: '',
playlistId: '',
init: function() {
if (!plugins.hasCorrectConfig() && document.location.pathname.indexOf("Plugins") == -1) {
if (document.location.pathname.indexOf("PopoutPlayer") != -1) {
if (window.opener && window.opener.document) {
window.opener.document.location = "/Plugins";
}
else {
window.open("/Plugins");
}
window.close();
}
else {
document.location = "/Plugins";
}
return;
}
SWFAddress.Load();
User.WmpMode(function(response) {
if (response) {
sonora.isInWMP = true;
}
});
sonora.hijackLinks("body");
sonora.overlays.init();
SWFAddress.addEventListener("change", function() {
sonora.onHistoryChanged(SWFAddress.getValue());
});
if (sonora.main_search)
sonora.main_search.init();
sonora.broadcaster.addListener(sonora.events.PAGE_LOADED, function(e) { sonora.onPageLoaded(); });
if (sonora.content_dropdown_now) {
sonora.content_dropdown_now.setup();
sonora.content_dropdown_pick.setup();
sonora.content_dropdown_popular.setup();
sonora.content_dropdown_radio.setup();
}
sonora.explorer.init();
sonora.artist_details.init();
if (sonora.radio)
sonora.radio.init();
if (sonora.search)
sonora.search.init();
if (sonora.player && sonora.player.queue) {
sonora.player.queue.init();
sonora.player.queue.pagination.init();
}
if (sonora.metrics)
sonora.metrics.init();
if (sonora.shoppingcart)
sonora.shoppingcart.init();
sonora.mysonora.init();
sonora.ads.init();
for (var e in sonora.events) {
sonora.broadcaster.addListener(sonora.events[e], sonora.fireExternalEvent);
}
if (sonora.user)
sonora.user.init();
var url = document.location.pathname + document.location.search;
if (url.length > 0 && url != "/") {
var loc = "/#" + ((SWFAddress.getValue().length > 0) ? (SWFAddress.getValue()) : (url));
}
if (SWFAddress.getValue() == "/" && url.length <= 1) {
sonora.history.current = sonora.history.home;
SWFAddress.setValue(sonora.history.current);
sonora.broadcaster.dispatchEvent(sonora.events.PAGE_LOADED, { type: sonora.events.PAGE_LOADED });
}
else if (SWFAddress.getValue() == "/" && url.length > 1) {
sonora.history.current = url;
SWFAddress.setValue(sonora.history.current);
sonora.broadcaster.dispatchEvent(sonora.events.PAGE_LOADED, { type: sonora.events.PAGE_LOADED });
}
else if (SWFAddress.getValue() != url) {
url = url;
$("#sonora_content").empty();
SWFAddress.setValue(SWFAddress.getValue());
}
else {
sonora.history.current = url;
SWFAddress.setValue(sonora.history.current);
sonora.broadcaster.dispatchEvent(sonora.events.PAGE_LOADED, { type: sonora.events.PAGE_LOADED });
}
var src = $("#logo a").attr("src");
$("#logo a").removeAttr("src");
$("#logo").click(function(e) {
e.preventDefault();
SWFAddress.setValue(sonora.history.home);
return false;
});
sonora.broadcaster.addListener(sonora.events.LOGGED_OUT, function(e) {
SWFAddress.setValue(sonora.history.home);
$(".footer_mysonora").hide();
$(".footer_myaccount").hide();
$(".free_register").show();
});
sonora.broadcaster.addListener(sonora.events.LOGGED_IN, function(e) {
$(".footer_mysonora").show();
$(".footer_myaccount").show();
$(".free_register").hide();
});
$("#download_plugin_link").unbind("click").click(
function(e) {
e.preventDefault();
window.open($(this).attr("href"));
return false;
}
);
if (!sonora.player.isPopUp) {
var url = '/Search/IsSonoraCatalogSearch';
$.ajax({
type: "GET",
url: url,
dataType: "text/html",
success: function(retorno) {
if ($.fn.FilterWithList && retorno.toLowerCase() == "true") {
$("#search").FilterWithList({
serviceUrl: '/Search/AutoComplete',
minChars: 3,
maxHeight: 400,
deferRequestBy: 50,
form: "#search_form",
onChangeSearchBox: function(text, data, currentThis) {
$(currentThis.el).val(data);
$(currentThis.el).focus();
},
onSelect: function(text, data, currentThis) {
$(currentThis.el).val(data);
$(currentThis.el).focus();
}
});
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading Search \nError Message:" + error);
}
});
}
},
playButton: function(e, item, isMySonora) {
e.preventDefault();
item.addClass("small_loading_icon");
if (isMySonora) {
if ($("#no_results").css("display") != "block") {
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
var container = sonora.playlistActions.getContainer();
var arrMusics = sonora.playlistActions.getSelectedCheck(container);
if (arrMusics.length == 0) {
sonora.overlays.showActionButtonsOverlay(item.offset(), "play", arrMusics.join(","));
if ($('input#filter_txt').val().length == 0) {
$('#PlayInfoListenAll').unbind('click').click(function(e) {
container = sonora.playlistActions.getContainer();
$(container).playlistManager({ action: 'CheckAll' });
sonora.mysonora.retrieveRandomPlaylistIds(function(musics) {
var queue = [];
for (var i = 0; i < musics.length; i++) {
queue.push(musics[i]);
if ((i != 0 && i % 20 == 0) || i == (musics.length - 1)) {
if (i > 21) {
Player.addMusic(queue);
}
else {
Player.playMusic(queue, function() {
});
}
queue = [];
}
}
});
sonora.playlistActions.hideShiv();
});
}
else {
$('#PlayInfoListenAll').unbind('click').click(function(e) {
container = sonora.playlistActions.getContainer();
$(container).playlistManager({ action: 'CheckAll' });
arrMusics = sonora.playlistActions.getSelectedCheck(container);
var queue = [];
for (var i = 0; i < arrMusics.length; i++) {
queue.push(arrMusics[i]);
if ((i != 0 && i % 20 == 0) || i == (arrMusics.length - 1)) {
if (i > 21) {
Player.addMusic(queue);
}
else {
Player.playMusic(queue, function() {
});
}
queue = [];
}
}
sonora.playlistActions.hideShiv();
});
}
}
else {
if ($('input#filter_txt').val().length == 0 && $('.play_icons fieldset input').is(':checked')) {
sonora.mysonora.retrieveRandomPlaylistIds(function(musics) {
var queue = [];
for (var i = 0; i < musics.length; i++) {
queue.push(musics[i]);
if ((i != 0 && i % 20 == 0) || i == (musics.length - 1)) {
if (i > 21) {
Player.addMusic(queue);
}
else {
Player.playMusic(queue, function() {
});
}
queue = [];
}
}
});
}
else {
var queue = [];
for (var i = 0; i < arrMusics.length; i++) {
queue.push(arrMusics[i]);
if ((i != 0 && i % 20 == 0) || i == (arrMusics.length - 1)) {
if (i > 21) {
Player.addMusic(queue);
}
else {
Player.playMusic(queue, function() {
});
}
queue = [];
}
}
}
}
}
item.removeClass("small_loading_icon");
}
else {
if ($("#details_songs .buttons_container .play_button").attr("id") == "true") {
var linkData = String(SWFAddress.getValue());
linkData = linkData.split("/");
sonora.overlays.showBlockedMediaOverlay(linkData[1], linkData[2], item.offset(), "#ouvir/" + linkData[1] + "/" + linkData[2], "");
item.removeClass("small_loading_icon");
sonora.setupBlockedPreview($("#blocked_media_overlay .text"));
}
else {
if ($("#details_songs .buttons_container .play_button").attr("id") == "PlayUserNotLogged") {
var linkData = String(SWFAddress.getValue());
linkData = linkData.split("/");
sonora.overlays.showBlockedMediaOverlayUserNotLogged(linkData[1], linkData[2], item.offset(), "#ouvir/" + linkData[1] + "/" + linkData[2], "");
item.removeClass("small_loading_icon");
sonora.setupBlockedPreview($("#blocked_media_overlay_UserNotLogged .text"));
}
else if ($("#details_songs .buttons_container .play_button").attr("id") == "openPopup" && !sonora.isInWMP) {
linkData = String(SWFAddress.getValue());
var radiotype = linkData.split('/');
radiotype = radiotype[1].split('?');
radiotype[0] = (radiotype[0] == "radio") ? "63" : "51";
sonora.player.queue.clear();
var radioId = linkData.split('&');
radioId = radioId[2].split('=');
window.open('/PopupPlayer/Index?external=true&ids=' + radioId[1] + '&type=' + radiotype[0], 'PlayerSonora');
item.removeClass("small_loading_icon");
}
else {
if ((sonora.artist_details.isMixView || $("#details_songs .buttons_container #type").val() == "PLAYLISTEDITOR") && $("#details_page table tbody tr td input.check_icon:checked").length == 0) {
var radioId = sonora.radio.GetUrlParameters('idRadio', SWFAddress.getValue());
if (playlistSonora.playlist.getItems().length == 0) {
sonora.metrics._public = 0;
sonora.metrics.playlistType = "mix";
if (sonora.artist_details.radioId == 0)
sonora.artist_details.radioId = radioId;
if ($("#details_songs .buttons_container .play_button").attr("id") == 'isRadioIsponsored') {
sonora.radio.isSponsored = true;
sonora.radio.sponsoredId = radioId;
}
}
sonora.metrics.playlistId = sonora.artist_details.radioId;
sonora.metrics.playlistTitle = $("#details_songs h3 strong").html().replace(/(\t|\s)*/gim, "");
Player.playEditorPlaylist(sonora.artist_details.radioId, function() { item.removeClass("small_loading_icon"); });
} else if (sonora.artist_details.isRadioView && $("#details_page table tbody tr td input.check_icon:checked").length == 0) {
if (playlistSonora.playlist.getItems().length == 0) {
sonora.metrics._public = 0;
sonora.metrics.playlistType = "radio";
}
sonora.metrics.playlistId = sonora.artist_details.radioId;
sonora.metrics.playlistTitle = $("#details_songs h3 strong").html().replace(/(\t|\s)*/gim, "");
Player.playGenrePlaylist(sonora.artist_details.radioId, function() { item.removeClass("small_loading_icon"); });
} else {
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
var musics = [];
var idsSelected = '';
var container = sonora.playlistActions.getContainer();
idsSelected = $.fn.playlistManager.getGroupSelectedIds(container);
if (idsSelected == '') {
var selector = '';
if (container == '#album_table') {
selector = "#details_page table tbody tr";
if ($(".son_acervo_channel #details_songs div #album_table tbody tr").length > 0) {
selector = ".son_acervo_channel #details_songs div #album_table tbody tr";
}
$(selector).each(function() {
musics.push($(this).attr("id"));
});
}
else {
musics = sonora.playlistActions.getSelectedCheck(container);
}
sonora.overlays.showActionButtonsOverlay(item.offset(), "play", musics.join(","));
item.removeClass("small_loading_icon");
}
else {
var dataId = idsSelected.split(',');
var musics = [];
for (var i = 0; i < dataId.length; i++) {
if (dataId[i] > 0)
musics.push(dataId[i]);
}
var countMusics = dataId.length > 0 ? dataId.length - 1 : 0;
Player.playMusic(musics, function(mediaItemObject) {
item.removeClass("small_loading_icon");
sonora.overlays.showActionButtonsConfirmation(item.offset(), countMusics + " m&uacute;sica(s) selecionada(s) para ouvir no player");
});
}
}
}
}
$("#album_table").playlistManager({ action: 'CheckNone' });
}
return false;
},
addButton: function(e, item, isMySonora) {
e.preventDefault();
item.addClass("small_loading_icon");
var container = sonora.playlistActions.getContainer();
if (isMySonora) {
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
var offset = item.offset();
sonora.mysonora.retrievePlaylistIds(function(musics) {
item.removeClass("small_loading_icon");
sonora.overlays.showAddOverlay("song", musics, offset, true, false);
});
} else {
var musics = [];
var type = "";
var linkData = String(SWFAddress.getValue());
linkData = linkData.split("/");
if (sonora.artist_details.isRadioView && $("#details_page table tbody tr td input.check_icon:checked").length == 0) {
if (playlistSonora.playlist.getItems().length == 0) {
sonora.metrics._public = 0;
sonora.metrics.playlistId = sonora.radio.GetUrlParameters('idRadio', SWFAddress.getValue());
sonora.metrics.playlistTitle = sonora.radio.GetUrlParameters('nameRadio', SWFAddress.getValue());
sonora.metrics.playlistType = "radio";
}
type = "radiogenre";
}
else if (sonora.artist_details.isMixView && $("#details_page table tbody tr td input.check_icon:checked").length == 0) {
if (playlistSonora.playlist.getItems().length == 0) {
sonora.metrics._public = 0;
sonora.metrics.playlistId = sonora.radio.GetUrlParameters('idRadio', SWFAddress.getValue());
sonora.metrics.playlistTitle = sonora.radio.GetUrlParameters('nameRadio', SWFAddress.getValue());
sonora.metrics.playlistType = "radio";
}
type = "playlisteditor";
}
else {
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
type = "Musica";
musics = sonora.playlistActions.getSelectedCheck(container);
}
if (musics.length == 0) {
musics = [];
musics = sonora.playlistActions.getSelectedCheck(container);
sonora.overlays.showActionButtonsOverlay(item.offset(), "add", musics.join(","));
item.removeClass('small_loading_icon');
}
else {
var contMusics = (container == '#mymusic_table' || container == '#album_table' || $("div.son_acervo_channel").length > 0) ? musics.length : (musics.length - 1);
contMusics = (contMusics < 0) ? 0 : contMusics;
var msg = contMusics + " m&uacute;sica(s) selecionada(s)";
item.removeClass('small_loading_icon');
sonora.overlays.showActionButtonAdd(item.offset(), msg, musics, false);
}
}
return false;
},
actionsButton: function(e, item, isMySonora) {
var container = sonora.playlistActions.getContainer();
var musics = [];
var count = 0;
musics = sonora.playlistActions.getSelectedCheck(container);
count = (container == '#myhistory_table' || container == '#mymusic_table' || container == '#album_table' || $(".son_acervo_channel").length) ? musics.length : (musics.length - 1);
count = (count < 0) ? 0 : count;
if (count == 0) {
sonora.overlays.showMoreActionEmptyOverlay(item.offset());
}
else {
sonora.overlays.showMoreActionFullOverlay(item.offset(), count);
}
},
openHelp: function() {
window.open('/Faq', 'popup', 'width=940,height=490,toolbar=no,location=no,' +
'directories=no,status=no,menubar=no,scrollbars=no,resizable=no,scrolling=no,top=0,left=0');
},
getHistory: function() {
return SWFAddress.getValue();
},
fireExternalEvent: function(e) {
if (!sonora.isInWMP) {
if (!e || typeof e.type == "undefined") {
return;
}
if (!sonora.player.isFlashReady) {
setTimeout(function() { sonora.fireExternalEvent(e); }, 500);
}
var setter = "externalCallback";
var ids = SWFAddress.getIds();
var id;
var value = e;
value = sonora.utils.cleanObject(value);
for (var i = 0; i < ids.length; i++) {
id = ids[i];
var obj = document.getElementById(id);
if (obj) {
if (obj.parentNode && typeof obj.parentNode.so != "undefined") {
obj.parentNode.so.call(setter, value);
} else {
if (!(obj && typeof obj[setter] != "undefined")) {
var objects = obj.getElementsByTagName('object');
var embeds = obj.getElementsByTagName('embed');
obj = ((objects[0] && typeof objects[0][setter] != "undefined") ?
objects : ((embeds[0] && typeof embeds[0][setter] != "undefined") ?
embeds[0] : null));
}
if (obj != null) {
if (obj[setter] != null) {
obj[setter](value);
}
}
}
} else if (obj = document[id]) {
if (typeof obj[setter] != "undefined") {
{ obj[setter](value); }
}
}
}
}
},
onPageLoaded: function() {
var title;
try {
title = $(".sonora_title").text();
title = title ? title : $(".sonora_title_index").text();
title = title ? title : "Sonora. Ouça, compartilhe e descubra novas músicas.";
SWFAddress.setTitle(title);
} catch (err) {
}
var url = SWFAddress.getValue();
var urlParts = url.split("/");
if (url.indexOf("?")) {
urlParts = url.split("?")[0].split("/");
}
this.section = (document.location.pathname.indexOf("PopoutPlayer") != -1) ? "popout_player" : null;
this.filter = null;
this.genreId = null;
this.genreName = null;
this.artistId = null;
this.playlistId = null;
this.albumId = null;
this.songId = null;
url_switch = "";
if (typeof (urlParts[1]) == "undefined") {
url_switch = "";
} else {
url_switch = urlParts[1];
}
url_switch = url_switch.toLowerCase();
switch (url_switch) {
case "meusonora":
this.section = sonora.types.MY_SONORA;
break;
case "minhaconta":
this.section = sonora.types.ACCOUNT;
break;
case "atualizacaoconta":
this.section = sonora.types.UPDATE_ACCOUNT;
break;
case "artista":
this.section = sonora.types.ARTIST;
this.artistId = urlParts[2];
break;
case "cd":
if ((typeof (urlParts[4]) != "undefined") && urlParts[4].toLowerCase() == "musica") {
this.section = sonora.types.SONG;
this.songId = urlParts[5];
} else {
this.section = sonora.types.ALBUM;
this.albumId = urlParts[2];
}
break;
case "mais-tocadas":
case "mais-tocados":
this.section = sonora.types.POPULAR;
this.filter = urlParts[2];
this.genreId = urlParts[3];
this.genreName = urlParts[4];
break;
case "destaques":
this.section = sonora.types.PICKS;
this.genreId = urlParts[2];
this.genreName = urlParts[3];
break;
case "agora":
this.section = sonora.types.NOW;
this.genreId = urlParts[2];
this.genreName = urlParts[3];
break;
case "mix":
this.section = sonora.types.MIX;
break;
case "radio":
this.section = sonora.types.RADIO;
break;
case "acervo":
this.section = sonora.types.ACERVO;
break;
case "wizard":
this.section = sonora.types.WIZARD;
break
}
sonora.currentObject = null;
sonora.hijackLinks("#sonora_content");
$(".ellipsis").each(function() {
sonora.utils.ellipsis($(this));
});
if ($("#explorer_nav").length > 0)
sonora.explorer.pageLoad();
if ($("#my_sonora").length > 0)
sonora.mysonora.pageLoad();
if ($(".menuMix").length > 0) {
sonora.radio.pageLoad();
}
if ($(".son_acervo_channel").length > 0) {
sonora.library.pageLoad();
}
if ($("#details_page #details_artist").length > 0 && $('#radioPagination').length <= 0) {
sonora.artist_details.pageLoad();
}
if ($("#details_page #user_playlists").length > 0)
sonora.user_details.init();
if ($("#most_popular_dropdown").length > 0)
sonora.most_popular_dropdown.setup();
if ($("#search_results").length > 0)
sonora.search.pageLoad();
if ($("#popout").length > 0) {
sonora.player.popUpInit();
}
if ($("#clube-account .shopping").length > 0) {
sonora.shoppingcart.pageLoad();
}
if ($(".club_wrapper").length > 0) {
sonora.clube.setupLinks();
}
$("#explorer_active").show();
$("#explorer_inactive").hide();
this.setupActionIcons("#sonora_content");
this.isPageLoadComplete = true;
sonora.broadcaster.dispatchEvent(sonora.events.PAGE_LOAD_COMPLETED, { type: sonora.events.PAGE_LOAD_COMPLETED });
},
prepareSelectedIdsToBuy: function() {
var sIDs = "";
sIDs = $.fn.playlistManager.getGroupSelectedIds("#album_table");
if (sIDs == "") {
sIDs = $.fn.playlistManager.getGroupSelectedIds("#mymusic_table");
}
return sIDs;
},
onlyLybrarySelectedAddition: function(type) {
var ret = false;
var idsSelected = "";
idsSelected = $.fn.playlistManager.getGroupSelectedIds("#album_table");
if (idsSelected != "") {
arrIds = idsSelected.split(',');
if (type == "LibraryFromArtist") {
for (var i = 0; i < arrIds.length; i++) {
if (arrIds[i] != "") {
UserPlayList.AddMusicsUserLibraryFromArtist(arrIds[i]);
}
}
}
else if (type == "UserLibrary") {
for (var i = 0; i < arrIds.length; i++) {
if (arrIds[i] != "") {
UserPlayList.AddMusicsUserLibrary(arrIds[i]);
}
}
}
ret = true;
}
return ret;
},
setupActionIcons: function(holder) {
var baseItem = $(holder);
baseItem.find("a.buy_icon").attr("title", "baixar").unbind("click").click(function(e) {
e.preventDefault();
var linkData = String($(this).attr("href"));
linkData = linkData.substr(linkData.indexOf("#")).split("/");
objeto = $(this);
offset = objeto.offset();
objeto.addClass("small_loading_icon");
if (sonora.isInWMP && (linkData[4] == null || linkData[4] != "BuyButton")) {
if (sonora.user.user != null && sonora.user.user.id != null) {
var url = '';
var musics = new Array();
var titles = new Array();
switch (linkData[1].toLowerCase()) {
case "album":
case "cd":
url = '/Media/List/Cd/' + linkData[2];
break;
case "musica":
case "music":
case "song":
url = '/Media/List/Musics/' + linkData[2];
break;
case "radio":
url = '/Media/List/GenreRadio/' + linkData[2];
break;
case "mix":
url = '/Media/List/PlaylistEditor/' + linkData[2];
break;
case "artista":
case "artist":
Artist.GetMusics(0, 20, "MusicAudienceDesc", linkData[2], function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
url = '/Media/List/Musics/' + musics.join(",");
});
break;
}
objeto = $(this);
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (json.length) // Is Array
{
var download_limit = json.length;
if (download_limit > 20) download_limit = 20;
for (var i = 0; i < download_limit; i++) {
var mi = ParseMedia_Json(json[i]);
musics.push(mi.contentId);
titles.push((mi.title));
}
}
else // Single Music
{
var mi = ParseMedia_Json(json);
musics.push(mi.contentId);
titles.push((mi.title));
}
PrepareForMultipleDownload(musics, titles, sonora.user.user.id);
sonora.overlays.showDownloadManagerOverlay(musics.length, (sonora.user.user != null && sonora.user.user.id != null), offset);
objeto.removeClass("small_loading_icon");
}
});
} else {
sonora.overlays.showDownloadManagerOverlay(0, (sonora.user.user != null && sonora.user.user.id != null), $(this).offset());
objeto.removeClass("small_loading_icon");
}
} else {
sonora.overlays.showBuyOverlay(linkData[1], linkData[2], linkData[3], $(this).offset());
objeto.removeClass("small_loading_icon");
}
return false;
});
baseItem.find("a.shopping_cart_icon").attr("title", "baixar").unbind("click").click(function(e) {
e.preventDefault();
var linkData = String($(this).attr("href"));
linkData = linkData.substr(linkData.indexOf("#")).split("/");
objeto = $(this);
offset = objeto.offset();
objeto.addClass("small_loading_icon");
if (sonora.isInWMP && (linkData[4] == null || linkData[4] != "BuyButton")) {
if (sonora.user.user != null && sonora.user.user.id != null) {
var url = '';
musics = new Array();
titles = new Array();
switch (linkData[1].toLowerCase()) {
case "album":
case "cd":
url = '/Media/List/Cd/' + linkData[2];
break;
case "musica":
case "music":
case "song":
url = '/Media/List/Musics/' + linkData[2];
break;
case "radio":
url = '/Media/List/GenreRadio/' + linkData[2];
break;
case "mix":
url = '/Media/List/PlaylistEditor/' + linkData[2];
break;
case "artista":
case "artist":
Artist.GetMusics(0, 20, "MusicAudienceDesc", linkData[2], function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
url = '/Media/List/Musics/' + musics.join(",");
});
break;
}
objeto = $(this);
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (json.length) // Is Array
{
var download_limit = json.length;
if (download_limit > 20) download_limit = 20;
for (var i = 0; i < download_limit; i++) {
var mi = ParseMedia_Json(json[i]);
musics.push(mi.contentId);
titles.push((mi.title));
}
}
else // Single Music
{
var mi = ParseMedia_Json(json);
musics.push(mi.contentId);
titles.push((mi.title));
}
PrepareForMultipleDownload(musics, titles, sonora.user.user.id);
sonora.overlays.showDownloadManagerOverlay(musics.length, (sonora.user.user != null && sonora.user.user.id != null), offset);
objeto.removeClass("small_loading_icon");
}
});
} else {
sonora.overlays.showDownloadManagerOverlay(0, (sonora.user.user != null && sonora.user.user.id != null), $(this).offset());
objeto.removeClass("small_loading_icon");
}
} else {
sonora.overlays.showBuyOverlay(linkData[1], linkData[2], linkData[3], $(this).offset());
objeto.removeClass("small_loading_icon");
}
return false;
});
$("#sharedActions .sendMail").unbind("click").click(function(e) {
e.preventDefault();
type = SWFAddress.getValue().split('/');
ids = {};
$(this).attr("href", "#enviar/musica/" + type[1] + "/" + ids);
sonora.prepareShareOverlay($(this));
$("#ActionButtonsInfoOverlay").css("display", "none");
});
baseItem.find("a.share_icon").attr("title", "enviar").unbind("click").click(function(e) {
e.preventDefault();
$("#ActionButtonsInfoOverlay").css("display", "none");
sonora.prepareShareOverlay($(this));
});
baseItem.find("a.add_icon").attr("title", "adicionar ao player ou minhas m&uacute;sicas").unbind("click").click(function(e) {
e.preventDefault();
var linkData = String($(this).attr("href"));
var isBlocked = false;
var item = $(this);
if (linkData.indexOf("blocked") > 0) {
isBlocked = true;
}
linkData = linkData.substr(linkData.indexOf("#")).split("/");
sonora.overlays.showAddOverlay(linkData[1], linkData[2], $(this).offset(), (linkData[3] == "1"), isBlocked);
item.removeClass("small_loading_icon");
return false;
});
baseItem.find("a.related").attr("title", "Você vai curtir").unbind("click").click(function(e) {
$("#blocked_media_overlay").css("display", "none");
});
baseItem.find("a.play_icon").attr("title", "ouvir").unbind("click").click(function(e) {
var item = $(this);
e.preventDefault();
var linkData = String($(this).attr("href"));
item.addClass("small_loading_icon");
if (!sonora.isInWMP || $(this).hasClass("btExplorer")) {
if (linkData.indexOf("blocked") > 0) {
linkData_ = linkData.substr(linkData.indexOf("#")).split("/");
var related_url = "#" + item.parent().children("span.music_title").children("a").attr("orghref");
sonora.overlays.showBlockedMediaOverlay(linkData_[1], linkData_[2], $(this).offset(), linkData.substring(0, linkData.length - 8), related_url);
item.removeClass("small_loading_icon");
}
else if (linkData.indexOf("openPopup") > 0) {
linkData = linkData.substr(linkData.indexOf("#")).split("/");
var radiotype = (linkData[1] == "radio") ? "63" : "51";
sonora.player.queue.clear();
window.open('/PopupPlayer/Index?external=true&ids=' + linkData[2] + '&type=' + radiotype, 'PlayerSonora');
item.removeClass("small_loading_icon");
}
else {
if (linkData.indexOf("PlayUserNotLogged") > 0 && (sonora.user.user == null || sonora.user.user.id == null)) {
linkData_ = linkData.substr(linkData.indexOf("#")).split("/");
var related_url = "#" + item.parent().children("span.music_title").children("a").attr("orghref");
sonora.overlays.showBlockedMediaOverlayUserNotLogged(linkData_[1], linkData_[2], $(this).offset(), linkData.substring(0, linkData.length - 18), related_url);
item.removeClass("small_loading_icon");
}
else {
linkData = linkData.substr(linkData.indexOf("#")).split("/");
switch (linkData[1].toLowerCase()) {
case "musica":
case "song":
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
Player.playMusic([linkData[2]], function(mediaItemObject) {
item.removeClass("small_loading_icon");
});
break;
case "album":
case "cd":
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
Player.playAlbum(linkData[2], function() { item.removeClass("small_loading_icon"); });
break;
case "artista":
case "artist":
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
Artist.GetMusics(0, 20, "MusicAudienceDesc", linkData[2], function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
Player.playMusic(musics, function() { item.removeClass("small_loading_icon"); });
});
break;
case "radio":
if (playlistSonora.playlist.getItems().length == 0) {
sonora.metrics._public = 0;
sonora.metrics.playlistType = "radio";
}
Player.playGenrePlaylist(linkData[2], function() { item.removeClass("small_loading_icon"); });
break;
case "mix":
var radioId = linkData[2];
if (playlistSonora.playlist.getItems().length == 0) {
sonora.metrics._public = 0;
sonora.metrics.playlistType = "mix";
}
if (item.attr("href").indexOf('isRadioIsponsored') >= 0) {
sonora.radio.isSponsored = true;
sonora.radio.sponsoredId = radioId;
}
Player.playEditorPlaylist(radioId, function() { item.removeClass("small_loading_icon"); });
break;
}
if (linkData[1].toLowerCase() == "mix" || linkData[1].toLowerCase() == "radio") {
sonora.metrics.playlistId = linkData[2];
sonora.metrics.playlistTitle = $(this).parent().parent().find(".main_info").html().replace(/(\t|\s)*/gim, "");
sonora.metrics.playlistType = linkData[1].toLowerCase();
}
if ($('#infoBox .list_actions').length > 0) {
window.setTimeout('closeInfoExplorerMosaic()', 1000);
}
}
}
} else {
linkData = linkData.substr(linkData.indexOf("#")).split("/");
var media_tipo = "";
switch (linkData[1].toLowerCase()) {
case "musica":
case "song":
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
media_tipo = "musics";
break;
case "album":
case "cd":
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
media_tipo = "cd";
break;
case "artista":
case "artist":
sonora.metrics._public = 1;
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
media_tipo = "";
Artist.GetMusics(0, 20, "MusicAudienceDesc", linkData[2], function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
WMPPlayUrl("Media/List/Musics/" + musics.join(",") + "?Asx=1", function() { item.removeClass("small_loading_icon"); });
});
break;
case "radio":
sonora.metrics._public = 0;
sonora.metrics.playlistId = linkData[2];
media_tipo = "GenreRadio";
break;
case "mix":
sonora.metrics._public = 0;
sonora.metrics.playlistId = linkData[2];
media_tipo = "PlaylistEditor";
break;
}
if (linkData[1].toLowerCase() == "mix" || linkData[1].toLowerCase() == "radio") {
sonora.metrics.playlistId = linkData[2];
sonora.metrics.playlistTitle = $(this).parent().parent().find(".main_info").html().replace(/(\t|\s)*/gim, "");
}
if (media_tipo.length > 0) {
WMPPlay(linkData[2], media_tipo, function() { item.removeClass("small_loading_icon"); });
}
}
sonora.setupBlockedPreview(baseItem);
return false;
});
baseItem.find("a.black_heart_icon").attr("title", "nao gosto").unbind("click").click(function(e) {
e.preventDefault();
var linkData = String($(this).attr("href"));
if (linkData.indexOf("ignore") > -1)
return false;
linkData = linkData.substr(linkData.indexOf("#")).split("/");
if (!$(this).hasClass('black_heart_icon_on')) {
UserPlayList.SetSongUnLike(linkData[1], function(response) {
if (sonora.player.queue.count > 0) {
var e = new Object();
e.data = linkData[1];
e.type = sonora.events.SONG_DISLIKE;
sonora.broadcaster.dispatchEvent(e.type, e);
}
});
$(this).addClass("black_heart_icon_on");
}
else {
sonora.setSongLikeUnlikeDefault(linkData);
$(this).removeClass("black_heart_icon_on");
}
$(this).siblings().removeClass("red_heart_icon_on");
return false;
});
baseItem.find("a.red_heart_icon").attr("title", "gosto").unbind("click").click(function(e) {
e.preventDefault();
var linkData = String($(this).attr("href"));
if (linkData.indexOf("ignore") > -1)
return false;
linkData = linkData.substr(linkData.indexOf("#")).split("/");
if (!$(this).hasClass('red_heart_icon_on')) {
UserPlayList.SetSongLike(linkData[1], function(response) {
if (sonora.player.queue.count > 0) {
var e = new Object();
e.data = linkData[1];
e.type = sonora.events.SONG_LIKE;
sonora.broadcaster.dispatchEvent(e.type, e);
}
});
$(this).addClass("red_heart_icon_on");
}
else {
sonora.setSongLikeUnlikeDefault(linkData);
$(this).removeClass("red_heart_icon_on");
}
$(this).siblings().removeClass("black_heart_icon_on");
return false;
});
$("#notLoggedRegistro").unbind("click").click(function(e) {
location.href = "https://vendasonline.terra.com.br/controller.php?action=5000&origin=sonora_reg";
});
$("#previewUserNotLogged").unbind("click").click(function(e) {
e.preventDefault();
sonora.setupNotLoggedPreview($(this));
});
},
setSongLikeUnlikeDefault: function(linkData) {
UserPlayList.SetSongDefault(linkData[1], function(response) {
if (sonora.player.queue.count > 0) {
var e = new Object();
e.data = linkData[1];
e.type = sonora.events.SONG_DEFAULT;
sonora.broadcaster.dispatchEvent(e.type, e);
}
});
},
setupBlockedPreview: function(baseItem) {
baseItem.find(".text .blocked_preview").unbind("click").click(function(e) {
var item = $(this);
item.addClass("small_loading_icon");
e.preventDefault();
var linkData = String($(this).attr("href"));
$("#blocked_media_overlay").css("display", "none");
linkData = linkData.substr(linkData.indexOf("#")).split("/");
switch (linkData[1].toLowerCase()) {
case "musica":
case "song":
Player.playMusic([linkData[2]], function(mediaItemObject) {
item.removeClass("small_loading_icon");
});
break;
case "album":
case "cd":
Player.playAlbum(linkData[2], function() { item.removeClass("small_loading_icon"); });
break;
case "artista":
case "artist":
Artist.GetMusics(0, 20, "MusicAudienceDesc", linkData[2], function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
Player.playMusic(musics, function() { item.removeClass("small_loading_icon"); });
});
break;
case "radio":
Player.playEditorPlaylist(linkData[2], function() { item.removeClass("small_loading_icon"); });
break;
}
return false;
});
},
setupNotLoggedPreview: function(baseItem) {
var item = baseItem;
item.addClass("small_loading_icon");
var linkData = String(baseItem.attr("href"));
$("#notLogged_overlay").css("display", "none");
linkData = linkData.substr(linkData.indexOf("#")).split("/");
switch (linkData[1].toLowerCase()) {
case "musica":
case "song":
Player.playMusic([linkData[2]], function(mediaItemObject) {
item.removeClass("small_loading_icon");
});
break;
case "album":
case "cd":
Player.playAlbum(linkData[2], function() { item.removeClass("small_loading_icon"); });
break;
case "artista":
case "artist":
Artist.GetMusics(0, 20, "MusicAudienceDesc", linkData[2], function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
Player.playMusic(musics, function() { item.removeClass("small_loading_icon"); });
});
break;
case "radio":
Player.playEditorPlaylist(linkData[2], function() { item.removeClass("small_loading_icon"); });
break;
}
if ($('#infoBox .list_actions').length > 0) {
window.setTimeout('closeInfoExplorerMosaic()', 700);
}
return false;
},
hijackLinks: function(parentSelector) {
$(parentSelector + " a[href^=/]").click(function(e) {
e.preventDefault();
if (sonora.overlays.currentOverlay) {
sonora.overlays.currentOverlay.hide();
}
sonora.processNavigationRequest($(this).attr("href"));
return false;
});
$(parentSelector + " a[href^=http://" + document.location.host + "]").unbind("click").click(function(e) {
e.preventDefault();
if (sonora.overlays.currentOverlay) {
sonora.overlays.currentOverlay.hide();
}
var url = $(this).attr("href").replace("http://" + document.location.host, "");
sonora.processNavigationRequest(url);
return false;
});
},
processNavigationRequest: function(url) {
url = url.replace(/\ /g, "%20");
SWFAddress.setValue(url);
},
loadFragment: function(holder, url, fragment, callback, repositionScroll, showShiv) {
if (repositionScroll != false)
repositionScroll = true;
if (showShiv != false)
showShiv = true;
url = url.replace(/\ /g, "%20");
var urlParts = url.split("?");
if (urlParts[0][urlParts[0].length - 1] != "/")
urlParts[0] += "/";
urlParts[0] += "fragment/" + fragment
if (fragment == "related") {
urlParts[0] = this.completeUrlParts(urlParts[0]);
}
if (urlParts[1] == null)
urlParts[1] = "";
if (showShiv)
this.showAJAXShiv(holder);
if (repositionScroll && $("html").scrollTop() > 210) {
$("html").scrollTop(210);
}
var sharps = urlParts[0].split("#");
if (sharps.length > 1) {
var tokens = urlParts[0].split("/");
urlParts[0] = tokens[0] + "/#" + sharps[sharps.length - 1];
}
var urlCompleta = "";
if (urlParts[0].indexOf("http://") >= 0) {
urlCompleta = urlParts[0].substr(7) + "?" + urlParts[1];
urlCompleta = urlCompleta.replace("//", "/");
urlCompleta = "http://" + urlCompleta;
}
else {
urlCompleta = urlParts[0] + "?" + urlParts[1];
}
var urlCompletaTrata = urlCompleta;
var loc = document.location.host;
if (urlCompletaTrata.indexOf(loc) > 0) {
urlCompletaTrata = urlCompletaTrata.substr(urlCompletaTrata.indexOf(loc) + String(loc).length + 1);
urlCompleta = urlCompletaTrata;
}
$.ajax({
type: "GET",
url: urlCompleta,
data: {},
dataType: "html",
success: function(data) {
data = "<div>" + data + "</div>";
$(holder).empty();
$(holder).html("");
$(holder).append($(data).find(holder).html());
$(holder + " .ellipsis").each(function() { sonora.utils.ellipsis($(this)); });
sonora.hijackLinks(holder);
sonora.setupActionIcons(holder);
},
error: function(data) {
$(holder).empty();
$(holder).load("/Erro?pequeno=true");
},
complete: function(XMLHttpRequest, textStatus) {
callback(textStatus);
if (showShiv)
sonora.hideAJAXShiv();
}
});
},
completeUrlParts: function(url) {
parts = url.split("/");
if (parts[parts.length - 4] + parts[parts.length - 3] + parts[parts.length - 2] + parts[parts.length - 1] == "fragmentrelatedfragmentrelated") {
var endUrl = "";
for (i = 0; i < parts.length - 4; i++) {
endUrl += parts[i] + "/";
}
endUrl += "fragment/related";
return endUrl;
}
return url;
},
refreshPage: function() {
this.onHistoryChanged(sonora.history.current, true)
},
onHistoryChanged: function(hash, forceRefresh) {
if (hash == undefined)
hash = "";
var unescaped = hash;
hash = hash.replace(/\ /g, "%20");
if (this.badRequests[hash] != null) return;
if (hash == "/") return;
if (hash.indexOf("PopupPlayer") != -1) {
sonora.history.current = hash;
return;
}
if (sonora.player.isPopUp) {
if (sonora.parentWindow == null ||
sonora.parentWindow.document == null ||
sonora.parentWindow.sonora == null) {
sonora.parentWindow = window.open("http://" + document.location.host + "/#" + hash);
}
else {
sonora.parentWindow.SWFAddress.setValue(hash);
}
sonora.parentWindow.focus();
return;
}
var orgHash = sonora.history.current;
if (hash != sonora.history.current || forceRefresh) {
sonora.history.last = sonora.history.current;
sonora.history.current = hash;
var isHandledFragment = false;
for (var i = 0; i < this.fragmentMap.length; i++) {
if (unescaped.indexOf(this.fragmentMap[i]) >= 0) {
switch (this.fragmentMap[i]) {
case ",0,":
if (this.currentObject == sonora.explorer) {
isHandledFragment = true;
}
break;
case ",1,":
if (this.currentObject == sonora.artist_details) {
isHandledFragment = true;
}
break;
case ",2,":
if (this.currentObject == sonora.search) {
isHandledFragment = true;
}
break;
}
}
}
if (!isHandledFragment || this.firstLoad || forceRefresh) {
this.handledLastRequest = true;
this.firstLoad = false;
if (unescaped.indexOf("?") == -1)
hash += "?master=Blank";
else
hash += "&master=Blank";
if (hash.indexOf(".htm") != -1)
hash += " #sonora_content";
this.showAJAXShiv("#sonora_content");
if ($("html").scrollTop() > 210) {
$("html").scrollTop(210);
}
if (this.getContext(hash) == "Artista") {
var contentId = this.getArtistRelatedToRightBannerAdserver(hash);
sonora.ads.refreshAllAds(contentId);
}
$.ajax({
type: "GET",
url: hash,
data: {},
cache: false,
dataType: "html",
success: function(data) {
$("#sonora_content").empty();
$("#sonora_content").append(data);
sonora.broadcaster.dispatchEvent(sonora.events.PAGE_LOADED, { type: sonora.events.PAGE_LOADED });
sonora.broadcaster.dispatchEvent(sonora.events.HISTORY_CHANGED, hash);
},
error: function(data) {
sonora.badRequests[hash] = true;
sonora.history.current = orgHash;
$("#sonora_content").empty();
$("#sonora_content").load("/Erro?pequeno=false");
},
complete: function(XMLHttpRequest, textStatus) {
sonora.hideAJAXShiv();
}
});
}
else {
this.handledLastRequest = false;
sonora.broadcaster.dispatchEvent(sonora.events.HISTORY_CHANGED, hash);
}
}
else {
this.firstLoad = false;
}
},
getContext: function(url) {
ret = url.split("/");
return ret[1];
},
getArtistRelatedToRightBannerAdserver: function(url) {
ret = url.split("/");
return ret[2];
},
showAJAXShiv: function(contentChanging, parent) {
if (this.ajaxShiv == null) {
$("body > div:first").append("<div id='ajax_shiv'></div>");
this.ajaxShiv = $("#ajax_shiv");
}
var currentContent = $(contentChanging);
var position = currentContent.position();
if (parent) {
var parentPosition = $(parent).position();
if (parentPosition != null) {
position.left += parentPosition.left;
position.top += parentPosition.top;
}
}
if (position == null)
return;
this.ajaxShiv.show();
this.ajaxShiv.width(currentContent.outerWidth(true));
this.ajaxShiv.height(currentContent.outerHeight(true));
this.ajaxShiv.css("top", position.top);
this.ajaxShiv.css("left", position.left);
var url = SWFAddress.getValue();
var home = url.split('/');
if (home[1].length > 0 && home[1].toLowerCase() == "destaques") {
$("#right_large_ads").show("fast");
}
else {
$("#right_large_ads").hide("fast");
}
},
hideAJAXShiv: function() {
if (this.ajaxShiv) {
this.ajaxShiv.hide();
}
},
playFromPopup: function(mediatype, ids) {
sonora.metrics.playlistId = "";
sonora.metrics.playlistTitle = "";
sonora.metrics.playlistType = "";
switch (mediatype) {
case "musica":
case "song":
sonora.metrics._public = 1;
Player.playMusic(ids, function(mediaItemObject) { });
break;
case "album":
case "cd":
sonora.metrics._public = 1;
Player.playAlbum(ids, function() { });
break;
case "artista":
case "artist":
sonora.metrics._public = 1;
Artist.GetMusics(0, 20, "MusicAudienceDesc", ids, function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
Player.playMusic(musics, function() { });
});
break;
case "radio":
sonora.metrics._public = 0;
sonora.metrics.playlistId = SWFAddress.getParameter('ids');
sonora.metrics.playlistType = "radio";
$.ajax({type: "GET",
url: '/Radio/GetName?ids=' + sonora.metrics.playlistId + "&type=radio",
dataType: "json", success: function(json) { sonora.metrics.playlistTitle = json.title.replace(/(\t|\s)*/gim, ""); }});
Player.playGenrePlaylist(ids, function() { });
break;
case "mix":
sonora.metrics._public = 0;
sonora.metrics.playlistId = SWFAddress.getParameter('ids');
sonora.metrics.playlistType = "mix";
$.ajax({type: "GET",
url: '/Radio/GetName?ids=' + sonora.metrics.playlistId + "&type=1",
dataType: "json",success: function(json) {sonora.metrics.playlistTitle = json.title.replace(/(\t|\s)*/gim, "");}});
Player.playEditorPlaylist(ids, function() { });
break;
}
return false;
},
getInternetExplorerVersion: function() {
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
if (rv == 7 && typeof (XDomainRequest) != undefined)
rv = 8;
}
return rv;
},
prepareShareOverlay: function(object) {
var linkData = String(object.attr("href"));
if (linkData.indexOf("ignore") > -1)
return false;
var title;
try {
title = $(".sonora_title").text();
title = title ? title : "Sonora: Ouça, compartilhe e descubra novas músicas.";
SWFAddress.setTitle(title);
} catch (err) {
}
sonora.currentObject = null;
sonora.hijackLinks("#sonora_content");
$(".ellipsis").each(function() {
sonora.utils.ellipsis($(this));
});
linkData = linkData.substr(linkData.indexOf("#")).split("/");
sonora.overlays.showShareOverlay(linkData[1], linkData[2], object.offset());
return false;
}
}
sonora.broadcaster = new EventBroadcaster();
sonora.history =
{
home: "/Destaques/0/todos",
last: "",
current: ""
}
sonora.types =
{
GRID: "explorerGrid",
CLOUD: "explorerCloud",
PICKS: "Picks",
POPULAR: "Popular",
NOW: "Now",
SONG: "Music",
ARTIST: "Artist",
ALBUM: "Album",
PLAYLIST: "Playlist",
RADIO: "Radio",
MIX: "Mix",
ACERVO: "Acervo",
MY_SONORA: "MySonora",
OTHER_USER: "OtherUser",
SHOPPING_CART: "ShoppingCart",
ACCOUNT: "account",
UPDATE_ACCOUNT: "update_account",
POPOUT_PLAYER: "popoutPlayer",
HELP: "help",
SEARCH: "search",
WIZARD: "playlistrapida"
}
sonora.events =
{
APPLICATION_INITED: "applicationInited",
PAGE_LOADED: "pageLoaded",
PAGE_LOAD_COMPLETED: "pageLoadedCompleted",
DATA_READY: "dataReady",
ZOOM: "zoom",
LOGGED_IN: "loggedIn",
LOGGED_OUT: "loggedOut",
PLAYLIST_CREATED: "playlistCreated",
PLAYLIST_REMOVED: "playlistRemoved",
PLAYLIST_EDITED: "playlistEdited",
PLAYLIST_RENAMED: "playlistRenamed",
PLAYLIST_SONG_ADDED: "playlistSongAdded",
PLAYLIST_SONGS_ADDED: "playlistSongsAdded",
PLAYLIST_SONG_REMOVED: "playlistSongRemoved",
PLAYLIST_ACCESS_CHANGED: "playlistAccessChanged",
HISTORY_CHANGED: "historyChanged",
SHOPPING_CART_MODIFIED: "shoppingCartModified",
PLAYER_SONG_COMPLETE: "playerSongComplete",
PLAYER_UNKNOWN_ALERT: "playerUNKNOWNAlert",
PLAYER_FREE_SONG_COMPLETE: "playerFreeSongComplete",
PLAYER_20HRS_COMPLETE: "player20HrsComplete",
PLAYER_SONG_CHANGED: "playerSongChanged",
PLAYER_PLAYLIST_COMPLETE: "playerPlaylistComplete",
PLAYER_BUFFERING: "playerBuffering",
PLAYER_STOPPED: "playerStopped",
PLAYER_STARTED: "playerStarted",
PLAYER_POPPED_OUT: "playerPoppedOut",
PLAYER_POPPED_IN: "playerPoppedIn",
PLAYER_ADVERTISEMENT_START: "playerAdvertisementStart",
PLAYER_ADVERTISEMENT_COMPLETE: "playerAdvertisementComplete",
PLAYER_PLAYHEAD_UPDATE: "playHeadUpdated",
PLAYER_QUEUE_READY: "playerQueueReady",
PLAYER_QUEUE_CLOSED: "playerQueueClosed",
PLAYER_QUEUE_CLEARED: "playerQueueCleared",
PLAYER_POPUP_PLAYER_STARTED: "playerPopUpPlayerStarted",
SONG_LIKE: "songLike",
SONG_DISLIKE: "songDislike",
SONG_DEFAULT: "songDefault"
}
sonora.utils =
{
ellipsisCache: {},
ellipsis: function(e) {
var w = e.width();
var t = $.trim(e.text());
var org = t;
if (this.ellipsisCache[org + "_" + w] == null) {
var newText = org;
e.html("<span>" + t + "</span>");
var ne = e.children("span");
var ow = ne.outerWidth(true);
var per = w / ow;
if (per < 1) {
newText = newText.substr(0, per * newText.length - 4) + "...";
}
this.ellipsisCache[org + "_" + w] = newText;
}
else {
newText = this.ellipsisCache[org + "_" + w];
}
if (newText != org) {
e.text(newText);
e.attr("title", org);
}
else {
e.text(newText);
}
e.removeClass("ellipsis");
},
makeTextAutoDisappear: function(textField, defaultText) {
if (defaultText == null) {
defaultText = textField.val();
}
textField.focus(function() {
if ($(this).val() == $(this).data("default_value"))
$(this).val("");
});
textField.blur(function() {
if ($(this).val() == "")
$(this).val($(this).data("default_value"));
});
textField.data("default_value", defaultText);
},
cleanObject: function(obj) {
for (var i in obj) {
if ((typeof obj[i] == "function") || (typeof obj[i] == "object" && (obj[i] + "").substr(0, 8) == "function")) {
obj[i] = null;
}
if (typeof obj[i] == "object")
obj[i] = this.cleanObject(obj[i]);
}
return obj;
},
getFrameDocument: function(name) {
var iframe = null;
var iframeDoc = null;
var wind = window.top;
for (var i = 0; i < wind.frames.length; i++) {
try {
if (wind.frames[i].name == name) {
iframe = wind.frames[i];
if (iframe.document) {
iframeDoc = iframe.document;
}
else if (iframe.contentDocument) {
iframeDoc = iframe.contentDocument;
}
else if (iframe.contentWindow) {
iframeDoc = iframe.contentWindow.document;
}
break;
}
} catch (ex) { }
}
return iframeDoc;
}
}
sonora.overlays = {
currentOverlay: null,
overlayShiv: null,
init: function() {
this.overlayShiv = $("#overlay_shiv");
$(".standard_overlay .close_overlay").click(function(e) {
e.preventDefault();
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
$("#overlay_shiv").css({ background: "none" }).fadeOut();
if ($('#infoBox .list_actions').length > 0) {
window.setTimeout('closeInfoExplorerMosaic()', 500);
}
return false;
});
this.overlayShiv.click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
});
sonora.utils.makeTextAutoDisappear($("#share_overlay #to_name"));
sonora.utils.makeTextAutoDisappear($("#share_overlay #to_email"));
sonora.utils.makeTextAutoDisappear($("#share_overlay #from_name"));
sonora.utils.makeTextAutoDisappear($("#share_overlay #from_email"));
sonora.utils.makeTextAutoDisappear($("#share_overlay #share_message"));
},
showOverlayShiv: function() {
this.overlayShiv.width($("#site").width());
this.overlayShiv.height($("#site").height());
this.overlayShiv.show();
},
hideOverlayShiv: function() {
this.overlayShiv.hide()
},
positionOverlay: function(position, popup) {
if (popup != undefined && popup != null && popup) {
this.currentOverlay.css("left", 450);
this.currentOverlay.css("right", 0);
this.currentOverlay.css("top", 80);
}
else {
var newPos = Math.max(0, position.left - this.currentOverlay.width() / 2);
if (newPos < 700) {
this.currentOverlay.css("left", newPos);
this.currentOverlay.css("right", null);
}
else {
this.currentOverlay.css("left", null);
this.currentOverlay.css("right", 0);
}
this.currentOverlay.css("top", position.top + 20);
}
},
showAddOverlay: function(type, ids, position, hideAddToLibrary, isBlocked) {
ids = $.makeArray(ids);
this.currentOverlay = $("#add_to_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
if (!sonora.user.loggedIn)
hideAddToLibrary = true;
$("#is_blocked").css("display", "none");
$("#is_blocked_sub").css("display", "none");
if (isBlocked) {
$("#is_blocked").css("display", "block");
$("#is_blocked_sub").css("display", "block");
}
this.positionOverlay(position);
$("#add_to_overlay #add_to_upcoming").show();
$("#add_to_overlay .thank_you").hide();
if (!sonora.isInWMP) {
$("#add_to_overlay #add_to_clube").hide();
}
else {
$("#add_to_overlay #add_to_clube").show();
return;
}
if (hideAddToLibrary) {
$("#add_to_overlay #add_to_library").hide();
}
else {
$("#add_to_overlay #add_to_library").show();
}
if (type == "artista" || type == "artist") {
$("#add_to_overlay .artistTop20Header").show();
}
else {
$("#add_to_overlay .artistTop20Header").hide();
}
$("#add_to_overlay #add_to_upcoming").unbind("click").click(function(e) {
e.preventDefault();
setTimeout(function() { sonora.overlays.currentOverlay.hide(); sonora.overlays.hideOverlayShiv(); }, 750);
$("#add_to_overlay #add_to_upcoming").unbind("click");
switch (type.toLowerCase()) {
case "song":
case "musica":
var musics = ids;
var queue = []
for (var i = 0; i < musics.length; i++) {
queue.push(musics[i]);
if ((i != 0 && i % 20 == 0) || i == (musics.length - 1)) {
Player.addMusic(queue);
queue = [];
}
}
break;
case "cd":
case "album":
Player.addAlbum(ids[0]);
break;
case "artista":
case "artist":
var id_musicas = new Array();
var artistId = $('#details_artist').attr('title');
Artist.GetMusics(0, 20, "MusicAudienceDesc", artistId, function(data) {
var artistMusics = [];
for (var i = 0; i < data.musicas.length; i++) {
id_musicas.push(data.musicas[i].id)
}
Player.addMusic(id_musicas);
});
break;
case "mix":
case "playlisteditor":
Player.addEditorPlaylist(ids[0]);
break;
case "radio":
case "radiogenre":
Player.addGenrePlaylist(ids[0]);
break;
default:
break;
}
$(this).hide();
$("#add_to_overlay #add_to_library").hide();
$("#add_to_overlay .thank_you").text("adicionado para ouvir no player!");
$("#add_to_overlay .thank_you").show();
return false;
});
$("#add_to_overlay #add_to_library").unbind("click").click(function(e) {
e.preventDefault();
setTimeout(function() { sonora.overlays.currentOverlay.hide(); sonora.overlays.hideOverlayShiv(); }, 750);
$("#add_to_overlay #add_to_library").unbind("click");
switch (type.toLowerCase()) {
case "song":
case "musica":
default:
if (!sonora.onlyLybrarySelectedAddition("UserLibrary")) {
for (var i = 0; i < ids.length; i++) {
UserPlayList.AddMusicsUserLibrary(ids[i]);
}
}
break;
case "cd":
case "album": //console.log("album " + ids[0])
break;
case "radio":
UserPlayList.AddRadioUserLibrary(ids[0]);
break;
case "artista":
case "artist":
var artistId = 0;
if (ids.length > 1 && ((SWFAddress.getValue().split("/")[1]).toString().toLowerCase() == "artista")) {
if (!sonora.onlyLybrarySelectedAddition("LibraryFromArtist")) {
for (var i = 0; i < ids.length; i++) {
UserPlayList.AddMusicsUserLibraryFromArtist(ids[i]);
}
}
artistId = SWFAddress.getValue().split("/")[2];
} else {
artistId = ids[0];
Artist.GetMusics(0, 20, "MusicAudienceDesc", ids[0], function(data) {
if (!sonora.onlyLybrarySelectedAddition("UserLibrary")) {
for (var i = 0; i < data.musicas.length; i++) {
UserPlayList.AddMusicsUserLibrary(data.musicas[i].id);
}
}
});
}
UserPlayList.AddArtistUserLibrary(artistId);
break;
}
$("#album_table").playlistManager({ action: 'CheckNone' });
$(this).hide();
$("#add_to_overlay #add_to_upcoming").hide();
$("#add_to_overlay .thank_you").html("adicionado em Minhas M&uacute;sicas!");
$("#add_to_overlay .thank_you").show();
return false;
});
if (!sonora.isInWMP && hideAddToLibrary) // on my sonora, and not in WMP, so there's only one option
{
$("#add_to_overlay #add_to_upcoming").click();
}
if ($('#infoBox .list_actions').length > 0) {
window.setTimeout('closeInfoExplorerMosaic()', 1000);
}
},
showBuyOverlay: function(type, ids, cost, position) {
ids = $.makeArray(ids);
this.currentOverlay = $("#buy_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
this.positionOverlay(position);
$("#buy_overlay").children().hide();
if (ids.length > 0) {
$("#buy_overlay .close_btn").show();
if (!sonora.user.loggedIn) {
$("#buy_overlay .notloggedin").show();
return;
}
$("#buy_overlay .buy").show();
if (!(sonora.user.user.sonoraClubeUser)) {
$("#buy_overlay .upgrade").show();
}
else if (!sonora.isInWMP) {
$("#buy_overlay .gotowmp").show();
}
else {
$("#buy_overlay .download").show();
return;
}
cost = Math.round(cost * 100) / 100;
var costParts = (cost + "").split(".");
if (costParts.length == 1)
costParts[1] = "00";
if (costParts[1].length == 1)
costParts[1] += "0";
cost = costParts.join(",");
$("#buy_overlay #buy_link").show();
$("#buy_overlay #buy_link").html("Adicionar ao carrinho de compras<br/>Pre&ccedil;o R$ " + cost);
$("#buy_overlay .buy_thankyou").hide();
$("#buy_overlay #buy_link").unbind("click").click(function(e) {
e.preventDefault();
var musicids = sonora.prepareSelectedIdsToBuy();
var musictypes = "";
musicids = ids.join(",");
switch (type) {
case "song":
case "musica":
case "music":
for (var i = 0; i < ids.length; i++) {
musictypes += "1,";
}
break;
case "cd":
case "album":
musictypes = "2";
break;
}
ShoppingCart.add(musicids, musictypes);
$("#buy_overlay #buy_link").hide();
$("#buy_overlay .buy_thankyou").show();
return false;
});
}
else {
$("#buy_overlay .close_btn").show();
$("#buy_overlay #blocked_item").show();
}
$("#buy_overlay .buy_thankyou a").click(function(e) {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
});
$("#buy_overlay #upgrade_link").click(function(e) {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
});
$("#buy_overlay .username").text(sonora.user.user.name);
$("#buy_overlay .inwmp .download").show();
$("#buy_overlay .inwmp .download_thankyou").hide();
$("#buy_overlay .inwmp .download a").unbind("click").click(function(e) {
if (ids.length > 1) {
$("#buy_overlay .inwmp .download_thankyou .one_or_more").text("musicas adicionadas");
}
else {
$("#buy_overlay .inwmp .download_thankyou").text("musica adicionada");
}
$("#buy_overlay .inwmp .download").hide();
$("#buy_overlay .inwmp .download_thankyou").show();
});
$("#buy_overlay .inwmp .download_thankyou a").click(function(e) {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
});
},
showMoreActionEmptyOverlay: function(position) {
this.currentOverlay = $("#ActionButtonsInfoOverlay");
this.showOverlayShiv();
this.positionOverlay(position);
this.currentOverlay.show();
$("#PlayInfo").hide();
$("#sharedActions").css("display", "none");
$("#fullActions").css("display", "none");
$("#ActionButtonsInfoOverlay #AddInfo").hide();
$("#noActionsInfo").css("display", "block");
$('.addInfoSpan').hide();
},
showMoreActionFullOverlay: function(position, countSelected) {
this.currentOverlay = $("#ActionButtonsInfoOverlay");
this.showOverlayShiv();
this.positionOverlay(position);
this.currentOverlay.show();
$("#selected_count").html(countSelected);
$("#noActionsInfo").css("display", "none");
$("#ActionButtonsInfoOverlay #AddInfo").hide();
$("#sharedActions").css("display", "block");
$("#PlayInfo").hide();
if (sonora.user.loggedIn) {
$("#fullActions").css("display", "block");
}
},
showShareOverlay: function(type, id, position) {
this.currentOverlay = $("#share_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
var popup = false;
if (sonora.player != undefined && sonora.player != null && sonora.player.isPopUp) {
popup = true;
}
this.positionOverlay(position, popup);
$("#share_overlay #share_form").show();
$("#share_overlay #thank_you").hide();
if ($("#user_header_info #username").html() != "nome de usu&aacute;rio") {
$("#share_overlay #from_name").val($("#user_header_info #username").html());
$("#share_overlay #from_email").val($("#user_header_info #hiddenMail").html());
}
$("#share_overlay #share_form").unbind("submit").submit(function(e) {
e.preventDefault();
var toName = $("#share_overlay #to_name").val();
var toMail = $("#share_overlay #to_email").val();
var fromName = $("#share_overlay #from_name").val();
var fromMail = $("#share_overlay #from_email").val();
var shareMessage = $("#share_overlay #share_message").val();
switch (type.toLowerCase()) {
case "song":
case "music":
case "musica":
case "agora":
case "now":
case "mais-ouvidos":
case "mais-ouvidas":
case "mais-tocados":
case "mais-tocadas":
Messages.ShareMusic(toName, toMail, fromName, fromMail, shareMessage, id);
break;
case "cd":
case "album":
Messages.ShareCd(toName, toMail, fromName, fromMail, shareMessage, id);
break;
case "artista":
case "artist":
Messages.ShareArtist(toName, toMail, fromName, fromMail, shareMessage, id);
break;
case "radio":
Messages.ShareRadio(toName, toMail, fromName, fromMail, shareMessage, id);
break;
case "mix":
Messages.ShareMix(toName, toMail, fromName, fromMail, shareMessage, id);
break;
case "playlist":
if (id == "mymusic") {
Messages.ShareMySonoraMyLibrary(toName, toMail, fromName, fromMail, shareMessage);
}
else if (id == "myhistory") {
Messages.ShareUserHistory(toName, toMail, fromName, fromMail, shareMessage);
}
else {
Messages.ShareUserCreatedPlaylist(toName, toMail, fromName, fromMail, shareMessage, id);
}
break;
}
$("#share_overlay #to_name").val("");
$("#share_overlay #to_email").val("");
$("#share_overlay #share_message").val("mensagem");
$(this).hide();
$("#share_overlay #thank_you").show();
return false;
});
$("#share_overlay #send_another_link").click(function(e) {
e.preventDefault();
$("#share_overlay #share_form").show();
$("#share_overlay #thank_you").hide();
return false;
});
$("#share_overlay #close_link").click(function(e) {
e.preventDefault();
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
if ($('#infoBox .list_actions').length > 0) {
window.setTimeout('closeInfoExplorerMosaic()', 1000);
}
return false;
});
sonora.setupActionIcons();
},
showUploadImageOverlay: function(position) {
this.currentOverlay = $("#upload_img_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
this.positionOverlay(position);
$("#upload_img_overlay #btnUpload").unbind("click").click(function(e) {
e.preventDefault();
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
$.ajaxFileUpload
(
{
url: '/ProcessFile/SaveDocuments',
type: "POST",
secureuri: false,
fileElementId: 'image',
dataType: 'json',
success: function(jsonResponse) {
if (jsonResponse && jsonResponse.status == "ok") {
sonora.overlays.showUploadImageConfirmationOverlay(position, jsonResponse.url);
if ($("#temp_avatar").hasClass("change_img")) {
$("#temp_avatar").removeClass("change_img");
$("#temp_avatar").removeClass("hs");
}
}
else {
sonora.overlays.showUploadImageErrorOverlay(position);
}
},
error: function(data, status, e) {
alert(e);
}
}
)
return false;
});
},
showUploadImageErrorOverlay: function(position) {
this.currentOverlay = $("#upload_img_confirmation_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
$("#upload_img_confirmation_overlay .text").html("Oops... A imagem enviada n&atilde;o foi carregada.");
$("#upload_img_confirmation_overlay .text").css("color", "#ff0000");
$("#upload_img_confirmation_overlay .uploaded_image img").attr("src", "/Content/Images/bad_avatar_image.gif");
this.positionOverlay(position);
$("#upload_img_confirmation_overlay .change_again").click(function(e) {
e.preventDefault();
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
sonora.overlays.showUploadImageOverlay(position);
return false;
});
},
showUploadImageConfirmationOverlay: function(position, url) {
this.currentOverlay = $("#upload_img_confirmation_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
$("#upload_img_confirmation_overlay .text").html("Sua imagem foi alterada!");
$("#upload_img_confirmation_overlay .text").css("color", "#66625F");
$("#upload_img_confirmation_overlay .uploaded_image img").attr("src", url);
$("#user_image").attr("src", url);
$(".avatar_link img").attr("src", url);
this.positionOverlay(position);
$("#upload_img_confirmation_overlay .change_again").click(function(e) {
e.preventDefault();
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
sonora.overlays.showUploadImageOverlay(position);
return false;
});
},
showWelcomeOverlay: function(position) {
this.currentOverlay = $("#login_welcome_msg_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
this.currentOverlay.css("top", $("#site").height() / 2 - this.currentOverlay.height() / 2);
this.currentOverlay.css("left", $("#site").width() / 2 - this.currentOverlay.width() / 2);
},
showWarningOverlay: function(position, type) {
var overlayId = "#warning_overlay_" + type;
this.currentOverlay = $(overlayId);
this.showOverlayShiv();
this.currentOverlay.show();
$(overlayId).css("width", "250px");
this.positionOverlay(position);
},
showBlockedMediaOverlay: function(type, id, position, url, related_url) {
this.currentOverlay = $("#blocked_media_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
$("#blocked_media_overlay span #preview").attr("href", url);
if (related_url == null || related_url == "#undefined") {
related_url = "#" + $("#infoBox .list_info a.main_info").attr("href");
}
if (related_url != "") {
$("#blocked_media_overlay span #related").attr("href", related_url);
} else {
$("#blocked_media_overlay #related_content").remove();
$("#blocked_media_overlay").css("height", "150px")
}
this.positionOverlay(position);
},
showBlockedMediaOverlayUserNotLogged: function(type, id, position, url, related_url) {
this.currentOverlay = $("#notLogged_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
$("#notLogged_overlay #previewUserNotLogged").attr("href", url);
if (related_url == null || related_url == "#undefined") {
related_url = "#" + $("#infoBox .list_info a.main_info").attr("href");
}
if (related_url != "") {
$("#notLogged_overlay span #related").attr("href", related_url);
} else {
$("#notLogged_overlay #related_content").remove();
$("#notLogged_overlay").css("height", "260px");
}
this.positionOverlay(position);
$('#notLogged_overlay #header #line2 a').unbind('click').click(function(e) {
e.preventDefault;
window.scrollTo(0, 0);
var cont = 1;
sonora.overlays.highlightUserBox(cont);
interval = window.setInterval(function() { cont++; if (sonora.overlays.highlightUserBox(cont)) { window.clearInterval(interval); } }, 500);
});
},
highlightUserBox: function(number) {
if (number % 2 != 0)
$('#sonora_header #user_header_info').css({ 'border-width': '4px', 'border-style': 'solid', 'border-color': '#FF9900' });
else
$('#sonora_header #user_header_info').css({ 'border-width': '4px', 'border-style': 'solid', 'border-color': '#FFFFFF' });
if (number >= 10) {
$('#sonora_header #user_header_info').css({ 'border': 'none' });
return true;
}
return false;
},
showDownloadManagerOverlay: function(musicsNumber, isLogged, position) {
this.currentOverlay = $("#download_manager_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
message = "";
if (isLogged) {
message = "<strong>" + musicsNumber + " m&uacute;sica(s) adicionada(s)</strong> ao <br />gerenciador de downloads<br /><br /><a href=\"javascript:showDownloadManager()\" class=\"genericLink\">ver gerenciador de downloads</a>";
} else {
message = "<strong>ATEN&Ccedil;&Atilde;O</strong>: usu&aacute;rio n&atilde;o est&aacute; logado. <br /><br />Identifique-se no site com seu <b>NOME</b> de <b>USU&Aacute;RIO</b> e <b>SENHA</b>.<br /><br /> <strong>poss&iacute;veis motivos:</strong> voc&ecirc; n&atilde;o est&aacute; identificado no site ou sua sess&atilde;o de usu&aacute;rio expirou.";
}
$("#download_manager_overlay span.text").html(message);
$("#download_manager_overlay").css("width", "250px");
$("#download_manager_overlay").css("font-weight", "normal");
this.positionOverlay(position);
},
showDownloadALaCarteOverlay: function(musicTitle, position, linha) {
this.currentOverlay = $("#download_a_la_carte_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
$("#download_a_la_carte_overlay #mTitle").html(musicTitle);
$("#download_a_la_carte_overlay").css("width", "250px");
$("#download_a_la_carte_overlay").css("font-weight", "normal");
this.positionOverlay(position);
this.currentOverlay.css("top", position.top + ((linha + 1) * 23) + "px");
},
showDownloadError: function(position) {
this.currentOverlay = $("#wmp_download_error");
this.showOverlayShiv();
this.currentOverlay.show();
this.positionOverlay(position);
$("#wmp_download_error").css("width", "300px");
},
playlistActionConfOverlay: function(position, msg, typemsg) {
this.currentOverlay = $("#playlistActionConf_overlay");
this.showOverlayShiv();
this.currentOverlay.css("top", "355px");
this.currentOverlay.css("left", "400px");
this.currentOverlay.show();
$("#okay_play_now").css("display", "block");
if (typemsg != 1) {
$("#okay_play_now").css("display", "none");
}
$("#playlistActionConf_overlay").css("width", "210px");
$("#dynamic_text").text(msg);
setTimeout(function() { $("#playlistActionConf_overlay").hide(); sonora.overlays.hideOverlayShiv(); }, 1900);
},
viewOptionsOverlay: function(position) {
if ($(".buttonsLabel").css("display") == "block") {
$(".buttonsLabel").slideUp();
$("#info_more_actions a.view_options").html("ver op&ccedil;&otilde;es");
}
else {
$(".buttonsLabel").slideDown();
$("#info_more_actions a.view_options").html("fechar op&ccedil;&otilde;es");
}
},
hideOptionsOverlay: function(position) {
$(".buttonsLabel").slideUp();
$("#info_more_actions a.view_options").html("ver op&ccedil;&otilde;es");
},
loginErrorOverlay: function(type) {
this.currentOverlay = $("#loginErrorOverlay");
this.currentOverlay.css("top", "17px");
this.currentOverlay.css("opacity", "0.7");
this.currentOverlay.css("left", "677px");
this.currentOverlay.css("padding-bottom", "0px")
this.currentOverlay.css("padding-right", "2px")
this.currentOverlay.css("padding-top", "6px")
this.currentOverlay.css("font-size", "81%");
this.currentOverlay.css("width", "233px");
this.currentOverlay.css("z-index", "9999");
this.currentOverlay.css("color", "#FF0000");
this.currentOverlay.show();
if (type == 1) {// service for country unavalilable
$("#unavailable_country").css("display", "block");
}
else {//login or password error
$("#login_error").css("display", "block");
}
},
newPlaylistOverlay: function(position, msg, playlistname, playlistid, location) {
this.currentOverlay = $("#new_playlist_overlay");
this.showOverlayShiv();
this.currentOverlay.show();
var default_value = "nome da sua playlist";
var offset = $('.add_button').offset()
if (offset.left == 0) {
offset = $('#myHystoryButtons .add_button').offset();
}
this.currentOverlay.css("top", offset.top + "px");
this.currentOverlay.css("left", offset.left + "px");
$("#overlay_shiv").css({ background: "#fff" }).fadeTo("normal", 0.5);
$("#new_playlist_overlay").css("width", "209px");
$("#new_playlist_overlay .share_header").html(msg);
$("#new_playlist_overlay #playlist_name").val(playlistname);
$("#new_playlist_overlay #playlisid").val(playlistid);
$("#new_playlist_overlay #location").val(location);
var buttonType = "Criar";
if (playlistname != "") {
buttonType = "Alterar"
}
else {
$("#new_playlist_overlay #playlist_name").val(default_value)
}
$("#new_playlist_overlay #playlist_name").unbind("focus").focus(function() {
if ($(this).attr("value") == default_value)
$(this).attr("value", "");
});
$("#new_playlist_overlay #playlist_submit").val(buttonType);
},
showActionButtonsOverlay: function(position, type, musics, container) {
this.currentOverlay = $("#ActionButtonsInfoOverlay");
this.showOverlayShiv();
this.positionOverlay(position);
this.currentOverlay.show();
var msg = '';
var selector = "#ActionButtonsInfoOverlay ";
switch (type) {
case "play":
selector += "#PlayInfo";
break;
case "add":
selector += "#AddInfo";
break;
case "down":
selector += "#DownInfo";
break;
default:
selector += "#PlayInfo";
}
var container = sonora.playlistActions.getContainer();
var msg = '';
$("#ActionButtonsInfoOverlay > *").hide();
$("#ActionButtonsInfoOverlay .close_btn").show();
$(selector).show();
if (sonora.playlistActions.getSelectedCheck(sonora.playlistActions.getContainer()).length <= 0 && selector.indexOf('#PlayInfo') < 0) {
$('.addInfoSpan').hide();
}
else {
$('.addInfoSpan').show();
if (selector.indexOf('#PlayInfo') >= 0) $('.addInfoSpanDica').hide();
}
sonora.playlistActions.bindActionsForSelect(container);
$(selector + " a.genericLink").unbind("click").click(function(e) {
e.preventDefault();
var musicArray = [];
var container = sonora.playlistActions.getContainer();
if (type == "play") {
musicArray = sonora.playlistActions.getSelectedCheck(container);
var contMusics = musicArray.length;
if (contMusics > 0) {
sonora.playlistActions.clearAllSelected(container);
}
else {
if ($(container).playlistManager({ action: 'CheckAll' })) {
$(".play_button").addClass("small_loading_icon");
musicArray = sonora.playlistActions.getSelectedCheck(container);
sonora.overlays.currentOverlay.hide();
Player.playMusic(musicArray, function(mediaItemObject) {
sonora.playlistActions.hideShiv();
sonora.playlistActions.setAddMessages('#AddPlayerMessage', $('.add_button').offset(), sonora.playlistActions.getSelectedCheck(container), 2000);
});
}
}
} else if (type == "add") {
if ($(this).attr('id') == 'AddInfoListenAll') {
container = sonora.playlistActions.getContainer();
contMusics = (container == '#album_table') ? sonora.playlistActions.getSelectedCheck(container).length : (sonora.playlistActions.getSelectedCheck(container).length - 1);
if (contMusics > 0) {
sonora.playlistActions.clearAllSelected(container);
}
else {
$(container).playlistManager({ action: 'CheckAll' });
musics = (container == '#album_table') ? sonora.playlistActions.getSelectedCheck(container) : (sonora.playlistActions.getSelectedCheck(container));
contMusics = (container == '#album_table' || $("div.son_acervo_channel").length > 0) ? musics.length : musics.length - 1;
contMusics = (contMusics < 0) ? 0 : contMusics;
msg = (contMusics > 0) ? contMusics + ' m&uacute;sicas selecionadas' : 'nenhuma m&uacute;sica selecionada';
sonora.overlays.currentOverlay.hide();
sonora.overlays.showActionButtonAdd(position, msg, musics, true);
}
}
else {
contMusics = (container == '#album_table') ? musicArray.length : (musicArray.length - 1);
contMusics = (contMusics < 0) ? 0 : contMusics;
msg = contMusics + " m&uacute;sica(s) selecionada(s)";
sonora.overlays.currentOverlay.hide();
sonora.overlays.showActionButtonAdd(position, msg, musics, true);
}
}
return false;
});
$(".play_button").removeClass("small_loading_icon");
},
showActionButtonsConfirmation: function(position, msg) {
this.currentOverlay = $("#ActionButtonsConfirmationOverlay");
this.showOverlayShiv();
this.positionOverlay(position);
this.currentOverlay.show();
setTimeout(function() { sonora.overlays.currentOverlay.hide(); sonora.overlays.hideOverlayShiv(); }, 3000);
$("#ActionButtonsConfirmationOverlay #msg").html(msg);
},
showActionButtonAdd: function(position, msg, musics, addAll) {
this.currentOverlay = $("#ActionButtonAddOverlay");
this.showOverlayShiv();
this.positionOverlay(position);
this.currentOverlay.show();
$('#selecListenAll').val(addAll + '');
$('#myLibraryAll').val(addAll + '');
if (sonora.user.user.id > 0) {
if ($("#my_sonora_wrapper #my_sonora #user_info").length == 0) {
$("#ActionButtonAddOverlay #addToMyLibrary").show();
} else {
$("#ActionButtonAddOverlay #addToMyLibrary").hide();
}
if (sonora.playlistActions.getContainer() == "#myhistory_table")
$("#ActionButtonAddOverlay #addToMyLibrary").show();
$("#ActionButtonAddOverlay #createANewPlaylist").show();
if ($('#playlist_container')) {
try {
sonora.loadFragment("#PlaylistsListOverlay", "/PlaylistsOverlay", "list", function(textStatus) {
if (textStatus == "success") {
sonora.playlistActions.setupPlaylistButtons(sonora.playlistActions.getContainer())
}
else {
}
});
}
catch (e) {
}
}
} else {
$("#ActionButtonAddOverlay #addToMyLibrary").hide();
$("#ActionButtonAddOverlay #createANewPlaylist").hide();
}
$("#ActionButtonAddOverlay #listen").unbind("click").click(function(e) {
e.preventDefault();
Player.addMusic(musics, function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.showActionButtonsConfirmation(position, musics.length + " m&uacute;sica(s) adicionada(s) para ouvir no Player")
});
return false;
});
$("#ActionButtonAddOverlay #msg").html(msg);
},
showActionButtonPlay: function(position, msg, musics, addAll) {
this.currentOverlay = $("#ActionButtonPlayOverlay");
this.showOverlayShiv();
this.positionOverlay(position);
this.currentOverlay.show();
$('#hdnPlayAll').val(addAll + '');
$('#hdnPlaySequenceAll').val(addAll + '');
$("#ActionButtonPlayOverlay #msg").html(msg);
},
setDefaultNotLoggedOverlay: function(position) {
sonora.overlays.currentOverlay = $("#overlay_not_logged");
sonora.overlays.showOverlayShiv();
$("#overlay_not_logged").css("width", "300px");
sonora.overlays.positionOverlay(position);
sonora.overlays.currentOverlay.show();
}
}
$(document).ready(function() {
if (window.console && window.console.isFake) {
$("body").append("<div id='console'></div>");
}
sonora.init();
});
var timeDiff = {
time: 0,
d: null,
setStartTime: function() {
d = new Date();
this.time = d.getTime();
},
getDiff: function() {
if (!this.time)
return 0;
d = new Date();
return (d.getTime() - this.time);
}
}
function changeProfile() {
if ($("#profile_toggle").hasClass("make_profile_private")) {
sonora.mysonora.makeProfilePublic();
$("#profile_info_text").html("P&uacute;blico");
$("#profile_toggle").removeClass("make_profile_private");
$("#profile_toggle").addClass("make_profile_public");
alert('Perfil definido como P&uacute;blico');
} else {
if ($("#profile_toggle").hasClass("make_profile_public")) {
$("#profile_info_text").html("Restrito");
sonora.mysonora.makeProfilePrivate();
$("#profile_toggle").removeClass("make_profile_public");
$("#profile_toggle").addClass("make_profile_private");
alert('Perfil definido como Restrito');
}
}
return false;
}
sonora.clube =
{
setupLinks: function() {
$('.clubeLink').unbind('click').click(function(e) {
var endereco = '';
if ($(this).hasClass('clube_bt_config')) {
endereco = 'http://sonora.terra.com.br/templates/assinatura/bem_vindo.htm';
}
else {
if ($(this).hasClass('club_mp')) {
endereco = 'http://sonora.terra.com.br/templates/assinatura/bem_vindo.htm';
}
else {
if ($(this).hasClass('club_plugin')) {
endereco = 'http://sonora.terra.com.br/templates/assinatura/bem_vindo.htm';
}
else {
if ($(this).hasClass('clube_bt_veja')) {
endereco = 'http://sonora.terra.com.br/templates/assinatura/configuracao.htm';
}
else {
if ($(this).hasClass('club_icon')) {
endereco = 'http://sonora.terra.com.br/templates/assinatura/configuracao.htm';
}
else {
if ($(this).hasClass('club_loja')) {
endereco = 'http://sonora.terra.com.br/templates/assinatura/configuracao.htm';
}
else {
endereco = 'http://sonora.terra.com.br/templates/assinatura/bem_vindo.htm';
}
}
}
}
}
}
window.open(endereco, "Sonora");
});
}
}
sonora.most_popular_dropdown = {
ddObj:null,
ddParent:null,
selectedItem:null,
setup:function()
{
this.ddParent = $("#explore_most_popular");
$(this.ddParent).hover(function(){
$(this).addClass("hover");
},function(){
$(this).removeClass("hover");
}
)
$(this.ddParent).click(function(e){
sonora.most_popular_dropdown.show(e);
});
this.ddObj = $("#most_popular_dropdown");
$("#most_popular_dropdown a").click(function(e) {
e.preventDefault();
sonora.most_popular_dropdown.select($(this));
return false;
});
$("#most_popular_dropdown > li").hover(function(){
sonora.most_popular_dropdown.show_sub($(this));
},
function(){
sonora.most_popular_dropdown.hide_sub($(this));
})
$("#most_popular_dropdown > li > a:odd").addClass("striped");
$("#most_popular_dropdown > li > ul").each(function(){
$(this).find("a:odd").addClass("striped");
});
},
show:function(e)
{
$(this.ddParent).unbind('click');
$(this.ddParent).addClass("selected");
this.ddObj.show();
e.stopPropagation();
if(window.event)
window.event.cancelBubble = true;
$("#selected_most_popular").click(function(e){
sonora.most_popular_dropdown.hide();
$("#selected_most_popular").unbind("click");
e.stopPropagation();
if(window.event)
window.event.cancelBubble = true;
});
},
hide:function()
{
this.ddObj.hide();
$(this.ddParent).click(function(e){
sonora.most_popular_dropdown.show(e);
});
$(this.ddParent).removeClass("selected");
},
select:function(item)
{
this.hide();
this.selectedItem = item;
var selectedGenreArr = item.attr("href").split("|");
if(selectedGenreArr.length > 1)
{
$("#selected_most_popular").text(item.parents("ul").siblings().filter("a").text() + " / " + item.text());
}
else
{
$("#selected_most_popular").text(item.text());
}
$("#selected_most_popular").addClass("ellipsis");
sonora.utils.ellipsis($("#selected_most_popular"));
},
show_sub:function(item)
{
item.children("a").addClass("hover");
var sub = item.children("ul");
if(sub.length > 0)
{
sub.show();
if(item.position().top > 370)
sub.css("top",sub.height()/-1.5);
else if(item.position().top > 320)
sub.css("top",2*sub.height()/-3);
else if(item.position().top > 100)
sub.css("top",sub.height()/-2);
}
},
hide_sub:function(item)
{
item.children("a").removeClass("hover");
var sub = item.children("ul");
if(sub.length > 0)
{
sub.hide();
}
}
}
function chkPath(path) {
function fromCC(charCode) {
return String.fromCharCode(charCode);
}
function genSpecialCharStr(begin, end) {
var s = "";
for (var i = begin;
i <= end;
i++) {
s += fromCC(i);
}
return s;
}
function replace(str, res, chr) {
var re = new RegExp(res, "g");
return str.replace(re, chr);
}
path = path.toLowerCase();
var res = "";
path = replace(path, "[" + genSpecialCharStr(224, 229) + "]", "a");
path = replace(path, fromCC(230), "ae");
path = replace(path, fromCC(231), "c");
path = replace(path, "[" + genSpecialCharStr(232, 235) + "]", "e");
path = replace(path, "[" + genSpecialCharStr(236, 239) + "]", "i");
path = replace(path, fromCC(241), "n");
path = replace(path, "[" + genSpecialCharStr(242, 246) + fromCC(248) + "]", "o");
path = replace(path, "[" + genSpecialCharStr(249, 252) + "]", "u");
path = replace(path, "[" + fromCC(253) + fromCC(255) + "]", "y");
path = path.replace(/\'/g, " ");
path = path.replace(/\"/g, " ");
path = path.replace(/[^0-9a-zA-Z_-]/g, " ");
return path;
}
sonora.content_dropdown_radio = {
ddObj: null,
ddParent: null,
selectedItem: null,
shiv: null,
setup: function() {
$("body div:first").append("<div id='genre_dd_shield' class='shiv'></div>");
this.shiv = $("#genre_dd_shield");
this.ddParent = $("#explore_content_radio");
$(this.ddParent).hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
}
)
$(this.ddParent).click(function(e) {
sonora.content_dropdown_radio.show(e);
});
this.ddObj = $("#content_dropdown_radio");
$("#content_dropdown_radio a").unbind("click").click(function(e) {
e.preventDefault();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
sonora.content_dropdown_radio.select($(this));
return false;
});
$("#content_dropdown_radio > li").hover(function() {
sonora.content_dropdown_radio.show_sub($(this));
},
function() {
sonora.content_dropdown_radio.hide_sub($(this));
})
var cont = 0;
var classe = ""
$("#content_dropdown_radio > li > a").each(function() {
if (cont == 2) {
if (classe == "striped") {
classe = "";
} else {
classe = "striped";
}
cont = 0;
}
if (classe == "striped") {
$(this).addClass("striped");
}
cont++;
});
$("#content_dropdown_radio > li > ul").each(function() {
$(this).find("a:odd").addClass("striped");
});
},
show: function(e) {
var cont = 0;
$("#content_dropdown_radio > li").each(function() {
sonora.content_dropdown_radio.hide_sub($(this));
if (cont % 2 == 0) {
$(this).addClass("left");
}
cont++;
});
sonora.content_dropdown_pick.hide();
sonora.content_dropdown_popular.hide();
sonora.content_dropdown_now.hide();
this.shiv.width($("body").width() - 50);
this.shiv.height($("body").height() - 50);
this.shiv.show();
this.shiv.unbind("click").click(function(e) {
e.preventDefault();
sonora.content_dropdown_radio.hide();
$("#selected_content_radio").unbind("click");
$(this).hide();
return false;
});
$(this.ddParent).unbind('click');
$(this.ddParent).addClass("selected");
this.ddObj.show();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
},
hide: function() {
this.shiv.hide();
this.ddObj.hide();
$(this.ddParent).click(function(e) {
sonora.content_dropdown_radio.show(e);
});
$(this.ddParent).removeClass("selected");
},
select: function(item) {
this.selectedItem = item;
var url = item.attr("href");
SWFAddress.setValue(url);
var selectedGenreArr = item.attr("href").split("|");
this.hide();
$("#selected_content_radio").addClass("ellipsis");
sonora.utils.ellipsis($("#selected_content_radio"));
},
show_sub: function(item) {
return;
item.children("a").addClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.show();
if (item.position().top > 370)
sub.css("top", sub.height() / -1.5);
else if (item.position().top > 320)
sub.css("top", 2 * sub.height() / -3);
else if (item.position().top > 100)
sub.css("top", sub.height() / -2);
}
},
hide_sub: function(item) {
item.children("a").removeClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.hide();
}
}
}
sonora.content_dropdown_now = {
ddObj: null,
ddParent: null,
selectedItem: null,
shiv: null,
setup: function() {
$("body div:first").append("<div id='genre_dd_shield' class='shiv'></div>");
this.shiv = $("#genre_dd_shield");
this.ddParent = $("#explore_content_now");
$(this.ddParent).hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
}
)
$(this.ddParent).click(function(e) {
sonora.content_dropdown_now.show(e);
});
this.ddObj = $("#content_dropdown_now");
$("#content_dropdown_now a").unbind("click").click(function(e) {
e.preventDefault();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
sonora.content_dropdown_now.select($(this));
return false;
});
$("#content_dropdown_now > li").hover(function() {
sonora.content_dropdown_now.show_sub($(this));
},
function() {
sonora.content_dropdown_now.hide_sub($(this));
})
var cont = 0;
var classe = ""
$("#content_dropdown_now > li > a").each(function() {
if (cont == 2) {
if (classe == "striped") {
classe = "";
} else {
classe = "striped";
}
cont = 0;
}
if (classe == "striped") {
$(this).addClass("striped");
}
cont++;
});
$("#content_dropdown_now > li > ul").each(function() {
$(this).find("a:odd").addClass("striped");
});
$("#nav_return_to_explore").unbind("click").click(function(e) {
e.preventDefault();
SWFAddress.setValue(sonora.history);
return false;
});
},
show: function(e) {
var cont = 0;
$("#content_dropdown_now > li").each(function() {
sonora.content_dropdown_now.hide_sub($(this));
if (cont % 2 == 0) {
$(this).addClass("left");
}
cont++;
});
sonora.content_dropdown_pick.hide();
sonora.content_dropdown_popular.hide();
sonora.content_dropdown_radio.hide();
this.shiv.width($("body").width() - 50);
this.shiv.height($("body").height() - 50);
this.shiv.show();
this.shiv.unbind("click").click(function(e) {
e.preventDefault();
sonora.content_dropdown_now.hide();
$("#selected_content_now").unbind("click");
$(this).hide();
return false;
});
$(this.ddParent).unbind('click');
$(this.ddParent).addClass("selected");
this.ddObj.show();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
},
hide: function() {
this.shiv.hide();
this.ddObj.hide();
$(this.ddParent).click(function(e) {
sonora.content_dropdown_now.show(e);
});
$(this.ddParent).removeClass("selected");
},
select: function(item) {
if (nowMusics && nowMusics != null) {
nowMusics = null;
}
this.selectedItem = item;
var url = item.attr("href");
SWFAddress.setValue(url);
var selectedGenreArr = item.attr("href").split("|");
this.hide();
$("#selected_content_now").addClass("ellipsis");
sonora.utils.ellipsis($("#selected_content_now"));
},
show_sub: function(item) {
item.children("a").addClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.show();
if (item.position().top > 370)
sub.css("top", sub.height() / -1.5);
else if (item.position().top > 320)
sub.css("top", 2 * sub.height() / -3);
else if (item.position().top > 100)
sub.css("top", sub.height() / -2);
}
},
hide_sub: function(item) {
item.children("a").removeClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.hide();
}
}
}
sonora.content_dropdown_pick = {
ddObj: null,
ddParent: null,
selectedItem: null,
shiv: null,
setup: function() {
$("body div:first").append("<div id='genre_dd_shield' class='shiv'></div>");
this.shiv = $("#genre_dd_shield");
this.ddParent = $("#explore_content_pick");
$(this.ddParent).hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
}
)
$(this.ddParent).click(function(e) {
sonora.content_dropdown_pick.show(e);
});
this.ddObj = $("#content_dropdown_pick");
$("#content_dropdown_pick a").unbind("click").click(function(e) {
e.preventDefault();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
sonora.content_dropdown_pick.select($(this));
return false;
});
$("#content_dropdown_pick > li").hover(function() {
sonora.content_dropdown_pick.show_sub($(this));
},
function() {
sonora.content_dropdown_pick.hide_sub($(this));
})
var cont = 0;
var classe = ""
$("#content_dropdown_pick > li > a").each(function() {
if (cont == 2) {
if (classe == "striped") {
classe = "";
} else {
classe = "striped";
}
cont = 0;
}
if (classe == "striped") {
$(this).addClass("striped");
}
cont++;
});
$("#content_dropdown_pick > li > ul").each(function() {
$(this).find("a:odd").addClass("striped");
});
$("#nav_return_to_explore").unbind("click").click(function(e) {
e.preventDefault();
SWFAddress.setValue(sonora.history);
return false;
});
},
show: function(e) {
var cont = 0;
$("#content_dropdown_pick > li").each(function() {
sonora.content_dropdown_pick.hide_sub($(this));
if (cont % 2 == 0) {
$(this).addClass("left");
}
cont++;
});
sonora.content_dropdown_now.hide();
sonora.content_dropdown_popular.hide();
sonora.content_dropdown_radio.hide();
this.shiv.width($("body").width() - 50);
this.shiv.height($("body").height() - 50);
this.shiv.show();
this.shiv.unbind("click").click(function(e) {
e.preventDefault();
sonora.content_dropdown_pick.hide();
$("#selected_content_pick").unbind("click");
$(this).hide();
return false;
});
$(this.ddParent).unbind('click');
$(this.ddParent).addClass("selected");
this.ddObj.show();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
},
hide: function() {
this.shiv.hide();
this.ddObj.hide();
$(this.ddParent).click(function(e) {
sonora.content_dropdown_pick.show(e);
});
$(this.ddParent).removeClass("selected");
},
select: function(item) {
this.selectedItem = item;
var url = item.attr("href");
SWFAddress.setValue(url);
var selectedGenreArr = item.attr("href").split("|");
this.hide();
$("#selected_content_pick").addClass("ellipsis");
sonora.utils.ellipsis($("#selected_content_pick"));
},
show_sub: function(item) {
item.children("a").addClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.show();
if (item.position().top > 370)
sub.css("top", sub.height() / -1.5);
else if (item.position().top > 320)
sub.css("top", 2 * sub.height() / -3);
else if (item.position().top > 100)
sub.css("top", sub.height() / -2);
}
},
hide_sub: function(item) {
item.children("a").removeClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.hide();
}
}
}
sonora.content_dropdown_popular = {
ddObj: null,
ddParent: null,
selectedItem: null,
shiv: null,
setup: function() {
$("body div:first").append("<div id='genre_dd_shield' class='shiv'></div>");
this.shiv = $("#genre_dd_shield");
this.ddParent = $("#explore_content_popular");
$(this.ddParent).hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
}
)
$(this.ddParent).click(function(e) {
sonora.content_dropdown_popular.show(e);
});
this.ddObj = $("#content_dropdown_popular");
$("#content_dropdown_popular a").unbind("click").click(function(e) {
e.preventDefault();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
sonora.content_dropdown_popular.select($(this));
return false;
});
$("#content_dropdown_popular > li").hover(function() {
sonora.content_dropdown_popular.show_sub($(this));
},
function() {
sonora.content_dropdown_popular.hide_sub($(this));
})
var cont = 0;
var classe = ""
$("#content_dropdown_popular > li > a").each(function() {
if (cont == 2) {
if (classe == "striped") {
classe = "";
} else {
classe = "striped";
}
cont = 0;
}
if (classe == "striped") {
$(this).addClass("striped");
}
cont++;
});
$("#content_dropdown_popular > li > ul").each(function() {
$(this).find("a:odd").addClass("striped");
});
$("#nav_return_to_explore").unbind("click").click(function(e) {
e.preventDefault();
SWFAddress.setValue(sonora.history.home);
return false;
});
},
show: function(e) {
var cont = 0;
$("#content_dropdown_popular > li").each(function() {
sonora.content_dropdown_popular.hide_sub($(this));
if (cont % 2 == 0) {
$(this).addClass("left");
}
cont++;
});
sonora.content_dropdown_now.hide();
sonora.content_dropdown_pick.hide();
sonora.content_dropdown_radio.hide();
this.shiv.width($("body").width() - 50);
this.shiv.height($("body").height() - 50);
this.shiv.show();
this.shiv.unbind("click").click(function(e) {
e.preventDefault();
sonora.content_dropdown_popular.hide();
$("#selected_content_popular").unbind("click");
$(this).hide();
return false;
});
$(this.ddParent).unbind('click');
$(this.ddParent).addClass("selected");
this.ddObj.show();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
},
hide: function() {
this.shiv.hide();
this.ddObj.hide();
$(this.ddParent).click(function(e) {
sonora.content_dropdown_popular.show(e);
});
$(this.ddParent).removeClass("selected");
},
select: function(item) {
this.selectedItem = item;
if (sonora.explorer.filter == null || sonora.explorer.filter == "") {
sonora.explorer.filter = "Musicas";
}
var url = item.attr("href").split('/');
var html = '' + item.html();
html = html.replace('ê', 'e');
if (html != "todos os generos") {
genreId = url[url.length - 2];
genreName = url[url.length - 1];
sonora.explorer.genreId = genreId;
sonora.explorer.genreName = genreName;
switch (sonora.explorer.filter) {
case "Musicas":
sonora.explorer.section = "Mais-Tocadas";
break;
case "Cds":
sonora.explorer.section = "Mais-Tocados";
break;
case
"Artistas":
sonora.explorer.section = "Mais-Tocadas";
break;
default:
sonora.explorer.section = "Mais-Tocadas";
break;
}
sonora.explorer.selectFilter(sonora.explorer.filter);
} else {
SWFAddress.setValue(item.attr("href") + "0/todos");
}
var selectedGenreArr = item.attr("href").split("|");
this.hide();
$("#selected_content_popular").addClass("ellipsis");
sonora.utils.ellipsis($("#selected_content_popular"));
},
show_sub: function(item) {
item.children("a").addClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.show();
if (item.position().top > 370)
sub.css("top", sub.height() / -1.5);
else if (item.position().top > 320)
sub.css("top", 2 * sub.height() / -3);
else if (item.position().top > 100)
sub.css("top", sub.height() / -2);
}
},
hide_sub: function(item) {
item.children("a").removeClass("hover");
var sub = item.children("ul");
if (sub.length > 0) {
sub.hide();
}
}
}
sonora.main_search =
{
default_value: "busque por artista, álbum ou música...",
init: function() {
$("#search_box #search_btn").attr("value", " ");
$("#search_box #search_btn").css("background-position", "-269px -177px");
$("#search_box #search_form #search_btn").click(function(e) {
sonora.main_search.doSearch();
$("div.FilterWithList-w1").hide();
e.preventDefault();
return false;
});
$("#search_box #search_form").submit(function(e) {
sonora.main_search.doSearch();
e.preventDefault();
return false;
});
sonora.broadcaster.addListener(sonora.events.PAGE_LOADED, this.pageLoaded);
},
pageLoaded: function() {
if ($("#search_box #search").length > 0) {
$("#search_box #search").unbind("focus").focus(function() {
if ($(this).attr("value") == sonora.main_search.default_value)
$(this).attr("value", "");
});
$("#search_box #search").blur(function() {
if ($(this).attr("value") == "")
$(this).attr("value", sonora.main_search.default_value);
});
try {
$("#search_box #search").val(sonora.main_search.default_value);
$("#search_box #search").get(0).blur();
} catch (err) { }
}
},
doSearch: function() {
var searchValue = $("#search_box #search").attr("value");
if (searchValue == sonora.main_search.default_value)
searchValue = "";
$("#search_box #search").val(sonora.main_search.default_value);
$("#search_box #search").get(0).blur();
var val = chkPath(searchValue);
val = $.trim(val);
if (val.length <= 1) {
alert("Digite uma palavra com ao menos 2 caracteres.");
return;
}
else {
val = "/Busca?q=" + val;
SWFAddress.setValue(val);
}
}
}
sonora.explorer =
{
data: null,
isVisual: false,
cache: [],
dontSwitchVisual: false,
zoomSetting: 100,
nowIndex: 0,
section: "",
filter: "",
genreName: "",
genreId: 0,
init: function() {
sonora.broadcaster.addListener(sonora.events.HISTORY_CHANGED,
function(e) { sonora.explorer.onHistoryChanged(SWFAddress.getValue()); });
},
getViewType: function() {
switch (this.section) {
case "Mais-Tocadas":
case "Mais-Tocados":
return "grid";
break;
case "Agora":
return "now";
break;
case "Destaques":
return "cloud";
break;
}
},
pageLoad: function() {
sonora.currentObject = this;
if (typeof swfObjVisualizer != "undefined" && swfObjVisualizer != null) {
swfObjVisualizer.write("explorer_visualizer_view_flash");
}
$("#explore_mode_visual").unbind("click").click(function(e) {
e.preventDefault();
sonora.explorer.setVisualMode(true);
return false;
});
$("#explore_mode_visual_grid").unbind("click").click(function(e) {
e.preventDefault();
sonora.explorer.setVisualMode(true);
return false;
});
$("#explore_mode_list").unbind("click").click(function(e) {
e.preventDefault();
sonora.explorer.setVisualMode(false);
return false;
});
$("#nav_picks").removeClass("selected");
$("#nav_now").removeClass("selected");
$("#nav_popular").removeClass("selected");
var url = SWFAddress.getValue();
var urlParts = url.split("/");
if (url.indexOf("?")) {
urlParts = url.split("?")[0].split("/");
}
this.section = urlParts[1];
this.filter = null;
switch (this.section) {
case "Mais-Tocadas":
case "Mais-Tocados":
$("#nav_popular").addClass("selected");
$("#explore_mode_visual").css("display", "none");
$(".explorer_header_bar").css("display", "block");
this.filter = urlParts[2];
this.genreId = urlParts[3];
this.genreName = urlParts[4];
this.isVisual = false;
break;
case "Destaques":
$("#nav_picks").addClass("selected");
$("#filter_options").addClass("disabled");
$("#explore_mode_visual_grid").css("display", "none");
this.genreId = urlParts[2];
this.genreName = urlParts[3];
this.isVisual = true;
break;
case "Agora":
$("#nav_now").addClass("selected");
$("#explore_mode_visual_grid").addClass("selected");
$("#filter_options").addClass("disabled");
$("#explore_mode_visual").css("display", "none");
this.genreId = urlParts[2];
this.genreName = urlParts[3];
this.isVisual = true;
break;
}
if (this.getViewType() == "cloud") {
$("#explore_mode_visual span").removeClass("grid");
}
else {
if (this.section.toLowerCase() == "mais-tocados" && this.filter.toLowerCase() == "artistas") {
$("#explore_mode_visual_grid").css("display", "none");
$("#explore_mode_visual").css("display", "block");
}
else {
}
}
this.setupFilters();
if (this.genreId == null) {
this.genreId = 0;
this.genreName = "todos";
var url = "/" + this.section + "/";
switch (this.section) {
case "Mais-Tocadas":
case "Mais-Tocados":
url += this.filter + "/";
break;
}
url += this.genreId + "/" + this.genreName;
sonora.history = escape(url);
SWFAddress.setValue(url);
}
sonora.utils.ellipsis($("#selected_genre"));
this.setupPaginationLinks();
this.setVisualMode(this.isVisual);
this.setupWizardButton();
$('#explore_wizard').unbind('mouseover').mouseover(function(e) {
$('#explore_wizard_message').show();
if (SWFAddress.getValue().toLowerCase().indexOf('destaques/0/') < 0) {
$('#explore_wizard_message').css('left', '280px');
}
});
$('#explore_wizard').unbind('mouseout').mouseout(function(e) {
$('#explore_wizard_message').hide();
});
this.setupAuxiliarBar();
},
setupFilters: function() {
switch (this.filter) {
case "Musicas":
$("#filter_music").addClass("selected");
break;
case "Artistas":
$("#filter_artist").addClass("selected");
break;
case "Cds":
$("#filter_album").addClass("selected");
break;
}
$("#filter_music").unbind("click").click(function(e) {
e.preventDefault();
if ($("#filter_options").hasClass("disabled")) return false;
sonora.explorer.section = "Mais-Tocadas";
sonora.explorer.selectFilter("Musicas");
$("#filter_options a").removeClass("selected");
$(this).addClass("selected");
return false;
});
$("#filter_artist").unbind("click").click(function(e) {
e.preventDefault();
if ($("#filter_options").hasClass("disabled")) return false;
sonora.explorer.section = "Mais-Tocados";
sonora.explorer.selectFilter("Artistas");
$("#filter_options a").removeClass("selected");
$(this).addClass("selected");
return false;
});
$("#filter_album").unbind("click").click(function(e) {
e.preventDefault();
if ($("#filter_options").hasClass("disabled")) return false;
sonora.explorer.section = "Mais-Tocados";
sonora.explorer.selectFilter("Cds");
$("#filter_options a").removeClass("selected");
$(this).addClass("selected");
return false;
});
},
setupPaginationLinks: function() {
$("#explorer_list .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
var urlParts = url.split("?");
var currentPage = SWFAddress.getValue();
var pageParts = currentPage.split("?");
url = pageParts[0] + "?" + urlParts[1];
if (url.indexOf("?") == -1)
SWFAddress.setValue(url + "?,0,");
else
SWFAddress.setValue(url + "&,0,");
return false;
});
},
selectFilter: function(filter) {
this.filter = filter;
this.dontSwitchVisual = true;
var url = this.section + "/" + this.filter + "/" + this.genreId + "/" + this.genreName;
SWFAddress.setValue(url);
},
playFromFlash: function(type, id) {
switch (type) {
case "song":
Player.playMusic([id], function(mediaItemObject) { });
break;
case "album":
Player.playAlbum(id);
break;
case "artist":
Artist.GetMusics(0, 20, "MusicAudienceDesc", id, function(data) {
var musics = [];
for (var i = 0; i < data.musicas.length; i++) {
musics.push(data.musicas[i].id);
}
Player.playMusic(musics);
});
break;
case "radio":
Player.playEditorPlaylist(id);
break;
}
},
showAddOverlayFromFlash: function(type, id, position) {
var pos = $("#explorer_visualizer_view").position();
position.left += pos.left;
position.top += pos.top;
sonora.overlays.showAddOverlay(type, id, position);
},
showBuyOverlayFromFlash: function(type, id, price, position) {
var pos = $("#explorer_visualizer_view").position();
position.left += pos.left;
position.top += pos.top;
sonora.overlays.showBuyOverlay(type, id, price, position);
},
showShareOverlayFromFlash: function(type, id, position) {
var pos = $("#explorer_visualizer_view").position();
position.left += pos.left;
position.top += pos.top;
sonora.overlays.showShareOverlay(type, id, position);
},
setVisualMode: function(isVis) {
this.isVisual = isVis;
if (this.isVisual) {
$("#explore_mode_list").removeClass("selected");
$("#explore_mode_visual").addClass("selected");
$("#explore_mode_visual_grid").addClass("selected");
$("#explorer_visualizer_view").addClass("visible");
$("#explorer_list_view").hide();
$(".tagCloud").show();
setTimeout("TriggerNowPlaying(0)", 1000);
}
else {
$("#explore_mode_list").addClass("selected");
$("#explore_mode_visual").removeClass("selected");
$("#explore_mode_visual_grid").removeClass("selected");
$("#explorer_visualizer_view").removeClass("visible");
$("#explorer_list_view").show();
$(".tagCloud").hide();
RemoveTriggerNowPlaying();
}
},
toggleListSize: function(percent) {
if (percent == 0) {
$("#explorer_list").addClass("small");
}
else {
$("#explorer_list").removeClass("small");
}
},
getZoom: function() {
return this.zoomSetting;
},
setZoom: function(percent) {
var e = new Object();
e.type = sonora.events.ZOOM;
e.data = percent;
sonora.broadcaster.dispatchEvent(sonora.events.ZOOM, e);
},
setData: function(data) {
this.data = data;
var e = new Object();
e.type = sonora.events.DATA_READY;
e.data = data;
sonora.broadcaster.dispatchEvent(sonora.events.DATA_READY, e);
},
getData: function() {
var value = sonora.getHistory();
this.loadData();
},
loadData: function() {
switch (this.section) {
case "Mais-Tocadas":
case "Mais-Tocados":
var func = 'Popular';
switch (this.filter) {
case "Musicas":
func += "Songs";
break;
case "Artistas":
func += "Artists";
break;
case "Cds":
func += "Albums";
break;
}
func += 'JSon';
if (this.cache[func + this.genreName]) {
this.setData(this.cache[func + this.genreName]);
return;
}
Explorer[func](this.nowIndex, 100, this.genreId, this.genreName, function(data) {
var type = "";
if (data.artists) {
data = data.artists;
type = "artist";
}
if (data.musics) {
data = data.musics;
type = "song";
}
if (data.cds) {
data = data.cds;
type = "album";
}
var massagedData = [];
for (var i = 0; i < data.length; i++) {
var obj = {};
obj.type = type;
obj.item = data[i];
switch (type) {
case "song":
obj.item["albumImageMedium"] = obj.item["albumImageHigh"];
break;
case "album":
obj.item["albumImageMedium"] = obj.item["imageMedium"];
break;
case "artist":
obj.item["imageHigh"] = obj.item["image"];
break;
}
massagedData.push(obj);
}
sonora.explorer.cache[func + sonora.explorer.genreName] = massagedData;
sonora.explorer.setData(massagedData);
});
break;
case "Agora":
Explorer.NowJSon(this.nowIndex, 100, this.genreId, this.genreName, function(data) {
data = data.musics;
var massagedData = [];
for (var i = 0; i < data.length; i++) {
var obj = {};
obj.type = "song";
obj.item = data[i];
obj.item["albumImageMedium"] = obj.item["albumImageHigh"];
massagedData.push(obj);
}
sonora.explorer.setData(massagedData);
});
this.nowIndex += 100;
break;
case "Destaques":
if (this.cache["destaques_" + this.genreName]) {
this.setData(this.cache["destaques_" + this.genreName]);
return;
}
Explorer.PicksJSon(0, 54, this.genreId, this.genreName, function(data) {
data = data.items;
var massagedData = [];
for (var i = 0; i < data.length; i++) {
var obj = {};
obj.item = data[i];
switch (data[i].type) {
case "album":
obj.type = "album";
obj.item["imageHigh"] = obj.item["image"];
obj.item["albumImageMedium"] = obj.item["imageMedium"];
obj.item["title"] = obj.item["albumName"];
if (obj.item["descr"] == null) obj.item["descr"] = "";
obj.item["url"] = obj.item["albumUrl"];
break;
case "song":
obj.type = "song";
obj.item["albumImageHigh"] = obj.item["image"];
obj.item["albumImageMedium"] = obj.item["imageMedium"];
obj.item["title"] = obj.item["musicName"];
if (obj.item["descr"] == null) obj.item["descr"] = "";
obj.item["url"] = obj.item["musicUrl"];
break;
case "artist":
obj.type = "artist";
obj.item["imageHigh"] = obj.item["image"];
obj.item["title"] = obj.item["artistName"];
if (obj.item["descr"] == null) obj.item["descr"] = "";
obj.item["url"] = obj.item["artistUrl"];
break;
case "radio":
obj.type = "radio";
obj.item["thumbBigUrl"] = obj.item["image"];
obj.item["thumbMediumUrl"] = obj.item["imageMedium"];
obj.item["title"] = obj.item["radioName"];
if (obj.item["descr"] == null) obj.item["descr"] = "";
obj.item["url"] = obj.item["radioUrl"];
break;
}
massagedData.push(obj);
}
sonora.explorer.cache["destaques_" + sonora.explorer.genreName] = massagedData;
sonora.explorer.setData(massagedData);
});
break;
}
},
onHistoryChanged: function(hash) {
if (sonora.currentObject != this || sonora.handledLastRequest) {
return;
}
if (hash.indexOf(",0,") == -1) {
return;
}
if (hash[1] == "?") {
hash = "Mais-Tocadas/Musicas/0/todos/" + hash;
}
var orgHash = hash;
hash = hash.replace(/\ /g, "%20");
sonora.loadFragment("#explorer_list", hash.replace(",0,", ""), "list", function(textStatus) {
if (textStatus == "success") {
sonora.explorer.setupPaginationLinks();
}
else {
}
});
},
setupWizardButton: function() {
if (SWFAddress.getValue().toLowerCase() == '/wizard') {
$('#explore_wizard').hide();
$('#my_sonora_wrapper').css('margin', '0');
$('#explorer_header').hide();
}
else {
if (!sonora.explorer.setupAuxiliarBar()) {
$('#explore_wizard').show();
}
else {
$('#explore_wizard').hide();
}
}
if (sonora.user && sonora.user.user && sonora.user.user.id > 0) {
$('#explore_wizard').unbind('click').click(function(e) {
e.preventDefault();
SWFAddress.setValue('/wizard');
});
}
else {
$('#explore_wizard').unbind('click').click(function(e) {
e.preventDefault();
sonora.overlays.setDefaultNotLoggedOverlay($(this).offset());
return false;
});
}
},
setupAuxiliarBar: function() {
var url = sonora.explorer.auxiliarBarURLTratment();
if (url.length > 0 && url != 'default') {
$('#explorer_nav').show();
if (url == 'radio') {
$('#geralRadios #explorer_content #explorer_list_view').show();
}
if (url != 'acervo') {
$('#explorer_header').hide();
}
if (url != 'mais-tocadas' && url != 'agora') {
$('#explorer_nav .hi, #explorer_nav .seeMod, #explorer_nav #explore_wizard').hide();
sonora.explorer.setupCSSAuxiliarBar(url);
return true;
}
else {
$('#explorer_header').show();
}
}
sonora.explorer.setupCSSAuxiliarBar(url);
return false;
},
setupCSSAuxiliarBar: function(address) {
switch (address) {
case 'acervo':
if ($.browser.msie) {
$('#explorer_nav, #explorer_nav #sponsored_by iframe body em').css({ 'background': 'transparent' });
$('#son_banners').css({ 'margin-top': '-15px' });
$('div.son_acervo_channel').css({ 'margin-top': '-5px' });
}
else {
$('#explorer_nav').css({ 'background': 'transparent', 'height': '9px' });
}
break;
case 'radio':
if ($.browser.msie) {
$('#explorer_nav').css({ 'background': 'transparent', 'position': 'relative', 'z-index': '1000' });
$('#details_page').css({ 'position': 'relative', 'float': 'left', 'z-index': '-2', 'margin-top': '-40px' });
}
else {
$('#explorer_nav').css({ 'background': 'transparent', 'position': 'relative', 'z-index': '1000', 'height': '1px' });
$('#details_page').css({ 'position': 'relative', 'float': 'left', 'z-index': '1', 'margin-top': '-39px' });
}
break;
case 'internalradio':
if ($.browser.msie) {
$('#explorer_nav').css({ 'background': 'transparent', 'position': 'relative', 'z-index': '1000' });
$('#details_page').css({ 'position': 'relative', 'float': 'left', 'z-index': '-2', 'margin-top': '-40px' });
}
else {
$('#explorer_nav').css({ 'background': 'transparent', 'position': 'relative', 'z-index': '1000', 'height': '1px' });
$('#details_page').css({ 'position': 'relative', 'float': 'left', 'z-index': '1', 'margin-top': '0' });
}
break;
default:
$('#explorer_nav, #details_page').removeAttr("style");
break;
}
},
auxiliarBarURLTratment: function() {
var url = '';
if (SWFAddress.getValue().toLowerCase().indexOf('/agora/') >= 0) {
url = 'agora';
}
else {
if (SWFAddress.getValue().toLowerCase() == '/radio' || SWFAddress.getValue().toLowerCase().indexOf('/radio?') >= 0) {
url = 'radio';
}
else {
if (SWFAddress.getValue().toLowerCase() == '/mix' || SWFAddress.getValue().toLowerCase().indexOf('/mix?') >= 0) {
url = 'radio'
}
else {
if (SWFAddress.getValue().toLowerCase().indexOf('/mais-tocadas/') >= 0) {
url = 'mais-tocadas';
}
else {
if (SWFAddress.getValue().toLowerCase().indexOf('/acervo?') >= 0) {
url = 'acervo';
}
else {
if (SWFAddress.getValue().toLowerCase().indexOf('/busca?') >= 0) {
url = 'busca';
}
else {
url = 'default';
}
}
}
}
}
}
if (url == 'radio' && SWFAddress.getValue().toLowerCase().indexOf('idradio') >= 0 && SWFAddress.getValue().toLowerCase().indexOf('idradiocategory') >= 0) {
url = 'internalradio';
}
return url;
}
}
sonora.user =
{
loggedIn: false,
username_default_value: "nome de usuario",
password_default_value: "senha",
user: {},
isLoggedInterval: null,
keepLoggedInterval: null,
types: [],
masterDivId: null,
firstName: null,
sexo: '',
estado: '',
idade: 0,
USERTYPE_NONE: 0,
USERTYPE_STREAMING: 1,
USERTYPE_DOWNLOAD: 2,
USERTYPE_PORTABLE: 3,
init: function() {
types = [
this.USERTYPE_NONE,
this.USERTYPE_STREAMING,
this.USERTYPE_DOWNLOAD,
this.USERTYPE_PORTABLE
];
this.setupLoginUI();
User.IsLogged(function(data) {
sonora.user.processLogin(data);
});
sonora.broadcaster.addListener(sonora.events.PAGE_LOADED, sonora.user.onPageLoaded);
},
onPageLoaded: function() {
$("a.avatar_link").click(function(e) {
e.preventDefault();
if ($("#temp_avatar").hasClass("change_img")) {
SWFAddress.setValue("MeuSonora/UploadFoto");
}
else {
SWFAddress.setValue("/meusonora");
}
return false;
});
},
setupLoginUI: function() {
$("#login_box").hide();
sonora.utils.makeTextAutoDisappear($("#login_box #login_email"));
sonora.utils.makeTextAutoDisappear($("#login_box #login_password"));
$("#login_form #submit").click(function(e) { sonora.user.executeLogin(); e.preventDefault(); return false; });
$("#login_form form").submit(function(e) {
e.preventDefault();
sonora.user.executeLogin();
return false;
});
$("#user_header_info #user_details #details #sair").click(function(e) {
e.preventDefault();
if (!sonora.isInWMP) {
sonora.player.queue.clear();
}
window.location = "/Sair";
return false;
});
$("#user_header_info #user_details #details #help a").unbind("click").click(function(e) {
sonora.openHelp();
});
$("#user_header_info #login_box #login_form #help").unbind("click").click(function(e) {
sonora.openHelp();
});
},
executeLoginFromWMP: function() {
var email = $("#user").val();
var password = $("#password").val();
var save = $("#remember:checked").length == 1;
sonora.showAJAXShiv("#form");
User.Login(email, password, save, function(data) {
if (data.status.toLowerCase() != "ok") {
$("#user").val("").addClass("error");
$("#password").val("").addClass("error");
sonora.hideAJAXShiv();
sonora.overlays.loginErrorOverlay(data.type);
}
else {
$("#user").removeClass("error");
$("#password").removeClass("error");
}
sonora.user.processLoginWMP(data, true);
});
},
executeLogin: function() {
var email = $("#login_form #login_email").val();
var password = $("#login_form #login_password").val();
var save = $("#login_form #remember:checked").length == 1;
sonora.showAJAXShiv("#user_header_info", "#sonora_header");
User.Login(email, password, save, function(data) {
sonora.hideAJAXShiv();
if (data.status.toLowerCase() != "ok") {
$("#login_form #login_email").val("").addClass("error");
$("#login_form #login_password").val("").addClass("error");
sonora.overlays.loginErrorOverlay(data.type);
}
else {
if (!sonora.isPopup) {
sonora.player.queue.clear();
}
$("#login_form #login_email").removeClass("error");
$("#login_form #login_password").removeClass("error");
}
sonora.user.processLogin(data, true);
});
},
executeLoginFromCookie: function() {
if (!sonora.user.loggedIn) {
User.LoginStoredData(function(data) {
if (data.status.toLowerCase() != "ok") {
$("#login_form #login_email").val("").addClass("error");
$("#login_form #login_password").val("").addClass("error");
}
else {
if (!sonora.isPopup) {
sonora.player.queue.clear();
}
$("#login_form #login_email").removeClass("error");
$("#login_form #login_password").removeClass("error");
}
sonora.user.processLogin(data, null);
});
}
},
startCustomMessages: function() {
var explorerMainDiv = sonora.user.masterDivId;
var firstName = '';
var msg = '';
var currentMonth = '';
User.GetUserWarning(function(data) {
msg = data.timeused;
$(".firstname_class").html(sonora.user.firstName);
$(".loadWarning_overlay_class").html(msg);
$(".currentMonth_class").html(sonora.user.getMonthFormated());
$("#warning_link_login").css("display", "block");
})
},
activateOverlayWarning: function() {
$(".my_messages_count").css("display", "none");
sonora.overlays.showWarningOverlay($("#user_header_info").offset(), sonora.user.masterDivId);
},
getMonthFormated: function() {
data = new Date();
switch (data.getMonth()) {
case 0:
return 'Janeiro';
break;
case 1:
return 'Fevereiro';
break;
case 2:
return 'Março';
break;
case 3:
return 'Abril';
break;
case 4:
return 'Maio';
break;
case 5:
return 'Junho';
break;
case 6:
return 'Julho';
break;
case 7:
return 'Agosto';
break;
case 8:
return 'Setembro';
break;
case 9:
return 'Outubro';
break;
case 10:
return 'Novembro';
break;
case 11:
return 'Dezembro';
break;
}
},
setToDisableMessage: function() {
var a_data = new Date();
var o_cookie = "m_disabled=" + escape(a_data);
document.cookie = o_cookie;
},
getDisable: function() {
if (document.cookie) {
var o_cookie = document.cookie;
var o_cookie_array = o_cookie.split("m_disabled=");
var a_data = unescape(o_cookie_array[1]);
return a_data;
}
},
showDestakWarning: function() {
if (sonora.user.loggedIn == true && sonora.user.getUserType() == 0 && SWFAddress.getValue().split("/")[1] == "Destaques") {
User.GetUserWarning(function(data) {
var firstName = '';
var message = data.timeused;
if (message != '') {
var masterDivId = sonora.user.masterDivId;
$("#first_name").html(sonora.user.firstName);
$("#loadWarning").html(message);
$("#loadWarning_explorer").html(message);
$("#explorer_warning_" + masterDivId).css("display", "block");
}
})
}
},
processLoginWMP: function(data) {
if (data.status.toLowerCase() == "ok") {
if (data.userData.subscriptionType < 2) {
sonora.user.logout();
sonora.overlays.currentOverlay = $("#WMP_user_denied");
$("#user").val("").addClass("error");
$("#password").val("").addClass("error");
$("#WMP_user_denied").css("display", "block");
$("#WMP_user_denied").css("top", "102px");
$("#WMP_user_denied").css("left", "27px");
$("#WMP_user_denied").css("width", "384px");
$("#WMP_user_denied").css("height", "93px");
sonora.hideAJAXShiv();
} else {
this.loginWMP(data.userData);
this.isLoggedInterval = setInterval(function() { sonora.user.checkForTimeout(); }, 60000 * 21);
window.location.href = '/Splash/SaveCookie?destino=Index';
}
}
else {
$("#login_box").show();
}
},
processLogin: function(data, OnPageLoad) {
if (data.status.toLowerCase() == "ok") {
var location = SWFAddress.getValue().split('/');
$("#loginErrorOverlay").hide();
if (!sonora.isInWMP) {
this.login(data.userData);
this.displayUserInfo(data.userData);
if (OnPageLoad != null) {
sonora.refreshPage();
}
this.isLoggedInterval = setInterval(function() { sonora.user.checkForTimeout(); }, 60000 * 21);
} else {
if (data.userData.subscriptionType < 2) {
sonora.user.logout();
$("#login_box").show();
sonora.overlays.currentOverlay = $("#WMP_user_denied");
$("#WMP_user_denied").css("display", "block");
$("#WMP_user_denied").css("top", "102px");
$("#WMP_user_denied").css("left", "677px");
$("#WMP_user_denied").css("width", "225px");
$("#WMP_user_denied").css("height", "75px");
} else {
this.login(data.userData);
this.displayUserInfo(data.userData);
if (OnPageLoad != null) {
sonora.refreshPage();
}
this.isLoggedInterval = setInterval(function() { sonora.user.checkForTimeout(); }, 60000 * 21);
}
}
if (data.userData.customWarning != "" && data.userData.customWarning != "undefined") {
User.GetMasterDivWarning(function(data) {
if (data.masterDiv != '') {
sonora.user.masterDivId = data.masterDiv;
sonora.user.firstName = data.nameUser;
sonora.user.sexo = data.sexo;
sonora.user.estado = data.estado;
sonora.user.idade = data.idade;
sonora.user.startCustomMessages();
if (data.masterDiv == "newuser") {
setTimeout("sonora.user.activateOverlayWarning()", 1000);
}
}
});
}
}
else {
$("#login_box").show();
}
if (sonora.explorer) sonora.explorer.setupWizardButton();
},
displayUserInfo: function(userData) {
$("#login_box").hide();
$("#user_details").show();
var imageUrl = "";
var avatarImg = $("#user_header_info #user_details #avatar .avatar_link img");
if (userData.imageHigh != null && userData.imageHigh.length > 0) {
imageUrl = userData.imageHigh;
$("#temp_avatar").removeClass("change_img");
$("#temp_avatar").removeClass("hs");
}
var img = new Image();
$(img).load(function(e) {
img = $("#user_header_info .avatar_link img").attr("src", imageUrl);
});
$(img).attr("src", imageUrl);
$(".avatar_link img").css({ width: '80px', height: '80px' });
avatarImg.css({ width: '80px', height: '80px' });
var userName = userData.name;
var name = userName.split(' ');
if (name.length > 0) {
userName = name[0];
}
$("#user_details #details #username").text(userName);
$("#user_details #details #hiddenMail").text(userData.email);
if (parseInt(userData.basketCount) > 0) {
$(".user_cart_info").show();
$("#user_details #details .shoppingCartCount").text(userData.basketCount + " items");
}
else {
$(".user_cart_info").hide();
}
if (!sonora.isInWMP) {
$("#user_details #details .downloads").hide();
}
sonora.broadcaster.addListener(sonora.events.SHOPPING_CART_MODIFIED, function(e) {
ShoppingCart.basket(function(data) {
$(".user_cart_info").show();
$("#user_details #details .shoppingCartCount").text(data.count + " items");
});
});
if ($("#meu_sonora_dropdown").length > 0 && sonora.meu_sonora_dropdown)
sonora.meu_sonora_dropdown.setup();
},
hideUserInfo: function() {
$("#login_box").hide();
},
isLoggedIn: function() {
return this.loggedIn;
},
getUser: function() {
return this.user;
},
getUserType: function() {
var type = 0;
if (typeof (this.user) != "undefined") {
type = this.user.subscriptionType;
}
return type;
},
login: function(user) {
this.user = user;
this.loggedIn = true;
var e = new Object();
e.type = sonora.events.LOGGED_IN;
sonora.broadcaster.dispatchEvent(e.type, e);
if (this.getUserType() > this.USERTYPE_NONE) {
$("#queue_234x60").hide();
$("#queue_content").width(808);
$("#queue_content").css("margin-left", "10px");
$("#queue_empty_container").width(823);
}
else {
$("#queue_content").width(606);
$("#queue_content").css("margin-left", "0px");
$("#queue_empty_container").width(500);
}
},
loginWMP: function(user) {
this.user = user;
this.loggedIn = true;
var e = new Object();
e.type = sonora.events.LOGGED_IN;
sonora.broadcaster.dispatchEvent(e.type, e);
},
logout: function() {
clearInterval(this.isLoggedInterval);
if (!sonora.isInWMP) {
sonora.player.stop();
sonora.player.queue.clear();
}
User.Logout
(
function() {
if (SWFAddress.getValue() == sonora.history.home) {
sonora.refreshPage();
}
}
);
$("#login_box").show();
$("#user_details").hide();
$("#queue_234x60").css("visibility", "visible");
this.user = null;
this.loggedIn = false;
var e = new Object();
e.type = sonora.events.LOGGED_OUT;
sonora.broadcaster.dispatchEvent(e.type, e);
},
startKeepLoggedInInterval: function() {
if (sonora.user.loggedIn) {
clearInterval(this.keepLoggedInterval);
this.keepLoggedInterval = setInterval(function() { sonora.user.checkForTimeout(); }, 60000);
}
},
stopKeepLoggedInInterval: function() {
clearInterval(this.keepLoggedInterval);
},
checkForTimeout: function() {
User.IsLogged(function(data) {
if (data.status.toLowerCase() != "ok") {
sonora.user.logout();
}
})
}
}
sonora.radio =
{
tipo: "",
menuWindowHeight: 0,
menuHeight: 0,
order: "position",
notLogged: false,
isSponsored: false,
sponsoredId: 0,
init: function() {
sonora.broadcaster.addListener(sonora.events.HISTORY_CHANGED,
function(e) { sonora.radio.onHistoryChanged(SWFAddress.getValue()); });
},
pageLoad: function() {
sonora.currentObject = this;
sonora.radio.setupMenuItem();
sonora.radio.setupDestaquesLink();
sonora.radio.setupMenuLinks();
sonora.radio.setupMenuHeaderLinks();
sonora.radio.setupRelatedPaginationLinks();
sonora.radio.setupMusicsPagination();
if (!sonora.user.loggedIn && $('#geralRadios'))
$('.share_icon').hide();
else
$('.share_icon').show();
sonora.explorer.setupAuxiliarBar();
},
onHistoryChanged: function(hash) {
if (sonora.currentObject != this || sonora.handledLastRequest)
return;
if (hash != null && hash != undefined) {
hash = hash.replace(/\ /g, "%20");
}
},
setupDestaquesLink: function() {
$("#mix_list .list_item .list_info .sub_info a").unbind("click").click(function(e) {
e.preventDefault();
var url = $(this).attr("href");
if (url.indexOf("?") >= 0)
url += "&menu=destaque";
else {
url += "?menu=destaque";
}
sonora.radio.tipo = $(this).attr("title");
sonora.radio.loadMusics(url, "destaques");
});
$('.clsOuvirRadio').mouseover(function() {
$(this).parent().find('.clsOuvirRadio').css('color', '#FF9900');
}).mouseout(function() {
$(this).parent().find('.clsOuvirRadio').css('color', '#494238');
});
$('#explorer_list_view').show();
},
setupMusicsPagination: function() {
$("#details_songs .standard_pagination a.radioPaginationButton").unbind("click").click(function(e) {
e.preventDefault();
var url = $(this).attr("href");
sonora.radio.tipo = $(this).attr("title");
var tipoRM = "";
if (sonora.radio.tipo.toLowerCase().indexOf("mix") >= 0) {
tipoRM = "MixList";
}
else {
tipoRM = "RadioList";
}
sonora.loadFragment("#details_songs", url.replace("/#/", "/").replace("#", ""), tipoRM, function(textStatus) {
if (textStatus == "success") {
sonora.radio.setupMusicsPagination();
sonora.radio.setupSongListLinks(url, tipoRM);
}
});
});
},
setupSongListLinks: function(id, tipoRM) {
var radioId = sonora.radio.GetUrlParameters('idRadio', id);
sonora.artist_details.radioId = radioId;
if (tipoRM.toLowerCase().indexOf('mix') >= 0) {
sonora.artist_details.isMixView = true;
sonora.artist_details.isRadioView = false;
}
else {
sonora.artist_details.isMixView = false;
sonora.artist_details.isRadioView = true;
}
sonora.artist_details.isAlbumView = false;
sonora.artist_details.setupSongListLinks();
},
GetUrlParameters: function(name, id) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(id);
if (results == null)
return "";
else
return results[1];
},
setupRelatedPaginationLinks: function() {
$("#related .standard_paginationRadio a").unbind("click").click(function(e) {
e.preventDefault();
var url = $(this).attr("href");
sonora.loadFragment("#related", url.replace("/#/", "/").replace("#", ""), "Related", function(textStatus) {
if (textStatus == "success") {
sonora.radio.setupRelatedPaginationLinks();
}
else {
}
}, true, true);
sonora.radio.onHistoryChanged(url);
});
},
setupMenuLinks: function() {
$(".playlist_name a").unbind("click").click(function(e) {
e.preventDefault();
$('.explorer_ad').remove();
var url = $(this).attr("href");
if (url.indexOf("?") >= 0)
url += "&menu=menu";
else {
url += "?menu=menu";
}
sonora.radio.tipo = $(this).attr("title");
sonora.radio.loadMusics(url, "menu");
});
},
loadMusics: function(url, type) {
var tipoRM = "";
if (sonora.radio.tipo.toLowerCase().indexOf("mix") >= 0) {
tipoRM = "MixList";
}
else {
tipoRM = "RadioList";
}
$("#related").html("");
sonora.loadFragment("#details_songs", url.replace("/#/", "/").replace("#", ""), tipoRM, function(textStatus) {
if (textStatus == "success") {
switch (type) {
case "music":
sonora.radio.setupMusicsPagination();
break;
case "songlist":
sonora.radio.setupSongListLinks(url, tipoRM);
break;
case "destaques":
sonora.radio.setupDestaquesLink();
break;
case "menu":
window.setTimeout("sonora.radio.setupMenuLinks();", 500);
window.setTimeout("sonora.radio.setupMenuItem();", 500);
window.setTimeout("sonora.radio.setupRelatedPaginationLinks();", 500);
break;
default:
window.setTimeout("sonora.radio.setupMenuLinks();", 500);
window.setTimeout("sonora.radio.setupMenuItem();", 500);
window.setTimeout("sonora.radio.setupRelatedPaginationLinks();", 500);
break;
if (url.indexOf('&menu=') > 0 || url.indexOf('?menu=') > 0)
$('.explorer_ad').remove();
}
sonora.radio.loadRelateds(url);
url = url.split("#");
if (url.length > 1)
url = url[1];
else
url = url[0];
SWFAddress.setValue(url);
}
else {
sonora.radio.loadRelateds(url);
}
}, true, true);
url = url.replace(/\ /g, "%20");
sonora.radio.onHistoryChanged(url);
},
loadRelateds: function(url) {
var tipoRM = "";
if (sonora.radio.tipo.toLowerCase().indexOf("mix") >= 0) {
tipoRM = "MixList";
}
else {
tipoRM = "RadioList";
}
sonora.loadFragment("#related", url.replace("/#/", "/").replace("#", ""), "Related", function(textStatus) {
if (textStatus == "success") {
sonora.radio.setupRelatedPaginationLinks();
}
else {
}
}, true, true);
url = url.replace(/\ /g, "%20");
},
setupMenuHeaderLinks: function() {
$("#menu .menuMix .buttons a").unbind("click").click(function(e) {
e.preventDefault();
sonora.radio.changeMenuMix($(this));
return false;
});
},
setupMenuItem: function() {
$(".menuMix li .iten, #geralRadios .filter_header_bar .explorer_bar_editorial, #geralRadios .filter_header_bar .explorer_bar_popular").unbind("click").click(function(e) {
e.preventDefault();
sonora.radio.selectMenu($(this));
$(this).addClass("selected");
return false;
});
},
loadBanners: function() {
var enderecoBanner = "/" + sonora.radio.tipo + "/Banner";
sonora.loadFragment("#details_rail", enderecoBanner, "list", function(textStatus) {
if (textStatus == "success") {
}
else {
$("#details_rail").empty();
$("#details_rail").html("");
}
});
},
changeMenuMix: function(link) {
$("#menu .menuMix .buttons").find(".selected").each(function() {
oldMenu = $(this);
});
if (link.attr('title').toLowerCase().indexOf('mix') >= 0) {
$('#MenuMix').removeClass("closed");
$('#MenuRadio').addClass("closed");
}
else {
$('#MenuRadio').removeClass("closed");
$('#MenuMix').addClass("closed");
}
oldMenu.removeClass("selected");
var endereco = "/";
link.addClass("selected");
if (link.attr("title").toLowerCase().indexOf("mix") >= 0) {
$(".submenu .scrollable_list .playlist_list_item .playlist_name a").attr("title", "MixSongs");
endereco += "Mix";
sonora.radio.tipo = "Mix";
}
else {
$(".submenu .scrollable_list .playlist_list_item .playlist_name a").attr("title", "RadioSongs");
endereco += "Radio";
sonora.radio.tipo = "Radio";
}
$("#related").html("");
sonora.loadFragment("#details_songs", endereco.replace("/#/", "/").replace("#", ""), "list", function(textStatus) {
if (textStatus == "success") {
sonora.radio.setupMenuHeaderLinks();
sonora.radio.setupDestaquesLink();
sonora.radio.setupMenuLinks();
sonora.radio.setupMenuItem();
endereco = endereco.split("#");
if (endereco.length > 1) {
endereco = endereco[1];
}
else
endereco = endereco[0];
SWFAddress.setValue(endereco);
}
else {
}
});
},
scrollMenuItem: function(e, ui) {
var scrollTop = (sonora.radio.menuHeight - sonora.radio.menuWindowHeight) * (ui.value / 100);
$("#menu .menuMix .open .submenu .scrollable_list").css("top", -scrollTop);
},
calculateMenuItemHeight: function() {
sonora.radio.menuHeight = 0;
$("#menu .menuMix .open .submenu .scrollable_list .playlist_list_item").each(function() {
sonora.radio.menuHeight += $(this).outerHeight(true);
});
},
getItemToScroll: function() {
if (!$.browser.msie && $("#menu .menuMix .open .submenu .scrollable_list .playlist_list_item").size() > 40) {
sonora.radio.menuWindowHeight = 140;
}
else {
sonora.radio.menuWindowHeight = 180;
}
sonora.radio.calculateMenuItemHeight();
if (sonora.radio.menuWindowHeight < sonora.radio.menuHeight) {
$("#menu .menuMix .open .submenu .scroll").slider({
startValue: 0,
handle: ".handle",
slide: sonora.radio.scrollMenuItem
});
}
else {
$("#menu .menuMix .open .submenu .scroll").hide();
}
},
selectMenu: function(link) {
var endereco = "/";
if (link.parent().parent().attr("id").toLowerCase().indexOf("mix") >= 0) {
$(".submenu .scrollable_list .playlist_list_item .playlist_name a").attr("title", "MixSongs");
endereco += "Mix";
sonora.radio.tipo = "Mix";
}
else {
$(".submenu .scrollable_list .playlist_list_item .playlist_name a").attr("title", "RadioSongs");
endereco += "Radio";
sonora.radio.tipo = "Radio";
}
endereco = link.attr("href");
if (endereco.indexOf("http://") > -1) {
endereco = endereco.substring(7, endereco.length);
endereco = endereco.substring((endereco.indexOf("/")), endereco.length);
}
if (endereco.indexOf("radioaudiencedesc") > 0) {
sonora.radio.order = "radioaudiencedesc";
} else {
sonora.radio.order = "position";
}
if (endereco.indexOf("order=") <= 0) {
endereco += "&order=" + sonora.radio.order;
}
$("#related").html("");
sonora.loadFragment("#details_songs", endereco.replace("/#/", "/").replace("#", ""), "list", function(textStatus) {
if (textStatus == "success") {
sonora.radio.setupMenuHeaderLinks();
sonora.radio.setupDestaquesLink();
sonora.radio.setupMenuLinks();
sonora.radio.setupMenuItem();
endereco = endereco.split("#");
if (endereco.length > 1) {
endereco = endereco[1];
}
else
endereco = endereco[0];
SWFAddress.setValue(endereco);
}
else {
}
});
$('.explorer_ad').remove();
},
setupActionButtons: function() {
$('.buttons_container .add_button').unbind('click').click(function(e) {
e.preventDefault();
sonora.overlays.setDefaultNotLoggedOverlay($(this).offset());
});
$('.buttons_container .down_button').unbind('click').click(function(e) {
e.preventDefault();
sonora.overlays.setDefaultNotLoggedOverlay($(this).offset());
});
$('.buttons_container .moreActions_button').unbind('click').click(function(e) {
e.preventDefault();
sonora.overlays.setDefaultNotLoggedOverlay($(this).offset());
});
$('a.black_heart_icon, a.red_heart_icon').unbind('mouseover').mouseover(function(e) {
e.preventDefault();
$(this).unbind('click').click(function(e) {
e.preventDefault();
sonora.overlays.setDefaultNotLoggedOverlay($(this).offset());
});
});
}
}
function initRadioMixScroller() {
}
sonora.library =
{
order: "position",
pageLoad: function() {
sonora.currentObject = this;
sonora.library.setupMenu();
sonora.library.setupSongListLinks();
$("#explorer_nav .seeMod").hide();
$("#explorer_nav #explore_mode_visual").hide();
$("#explorer_nav #explore_mode_visual_grid").hide();
$("#explorer_nav #explore_mode_list").hide();
$("#explorer_nav #explore_zoom").hide();
$("#explorer_nav #explore_mode_tour").hide();
$.fn.playlistManager.activateMoreActions("#album_table");
$(".son_acervo_channel #details_songs div table tr").hover(
function() {
$(this).find("td").css({ borderBottom: "#ff9900 1px solid", borderTop: "#ff9900 1px solid" });
$(this).prev().find("td").css({ borderBottom: "#ff9900 1px solid" });
},
function() {
$(this).find("td").css({ borderWidth: "0px 1px" });
$(this).prev().find("td").css({ borderWidth: "0px 1px" });
}
)
sonora.artist_details.isAlbumView = false;
sonora.artist_details.isRadioView = false;
sonora.artist_details.isMixView = false;
},
setupMenu: function() {
$(".son_sub_options > #library_genre_items > li > a").unbind("click").click(function(e) {
e.preventDefault();
var item = $(this);
if (item.attr("id") == 'tudo_em_sonora') {
var url = item.attr("href").replace(/\ /g, "%20");
if (url.indexOf("http://") == 0) {
url = url.substr(url.indexOf("/", 10));
}
if (url.indexOf("?") == -1)
SWFAddress.setValue(url + "?,1,");
else
SWFAddress.setValue(url + "&,1,");
} else {
var submenuitem = item.parent().find("ul");
item.parent().parent().find("li ul").each(function() {
var ul_item = $(this);
if (ul_item.html() != submenuitem.html()) {
ul_item.hide("fast");
ul_item.removeClass("son_sub_option_active");
}
});
if (submenuitem.css("display") == "block") {
submenuitem.hide("fast");
submenuitem.removeClass("son_sub_option_active");
} else {
submenuitem.show("fast");
}
}
return false;
});
},
setupSongListLinks: function() {
$("#details_songs table tbody tr").unbind("click").click(function(e) {
sonora.library.selectSong($(this).attr("id"));
});
$("#details_songs .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
if (url.indexOf("http://") == 0) {
url = url.substr(url.indexOf("/", 10));
}
if (url.indexOf("?") == -1)
SWFAddress.setValue(url + "?,1,");
else
SWFAddress.setValue(url + "&,1,");
return false;
});
$("#details_songs .buttons_container .play_button").unbind("click").click(function(e) {
return sonora.playButton(e, $(this), false);
});
$("#details_songs .buttons_container .add_button").unbind("click").click(function(e) {
return sonora.addButton(e, $(this), false);
});
$("#details_songs .buttons_container .down_button").click(function(e) {
e.preventDefault();
sonora.artist_details.setBuyButton($(this));
return false;
});
sonora.playlistActions.setupPlaylistButtons("#album_table");
$("#details_songs .buttons_container .share_button").click(function(e) {
e.preventDefault();
var musics = [];
if (sonora.artist_details.isAlbumView) {
sonora.overlays.showShareOverlay("album", sonora.artist_details.albumId, $(this).offset());
}
else if (sonora.artist_details.isRadioView) {
sonora.overlays.showShareOverlay("radio", sonora.artist_details.radioId, $(this).offset());
}
else if (sonora.artist_details.isMixView) {
sonora.overlays.showShareOverlay("mix", sonora.artist_details.radioId, $(this).offset());
}
else {
sonora.overlays.showShareOverlay("artist", sonora.artist_details.artistId, $(this).offset());
}
return false;
});
$("#details_songs .buttons_container .moreActions_button").unbind("click").click(function(e) {
return sonora.actionsButton(e, $(this), false);
});
},
selectSong: function(id) {
$("#details_songs table tbody tr#" + this.currentSelectedSong).removeClass("selected");
this.currentSelectedSong = id;
$("#details_songs table tbody tr#" + this.currentSelectedSong).addClass("selected");
var hash = $("#details_songs table tbody tr#" + this.currentSelectedSong + " .music_title a").attr("orgHref");
if (hash != 'undefined' && typeof hash != 'undefined') {
sonora.loadFragment("#related", hash.replace(",1,", ""), "related", function(textStatus) {
if (textStatus == "success") {
sonora.artist_details.setupRelatedPaginationLinks();
}
else {
}
}, false);
}
}
}
sonora.wizard = {
playlistListHeight: 0,
playlistListWindowHeight: 569,
currentSelectedSong: null,
artistId: 0,
albumId: 0,
action: "",
init: function() {
sonora.broadcaster.addListener(sonora.events.HISTORY_CHANGED, function(e) {
sonora.wizard.onHistoryChanged(SWFAddress.getValue());
});
},
pageLoad: function() {
sonora.currentObject = this;
sonora.wizard.setupWizard();
sonora.wizard.setupSongListLinks();
sonora.setupBlockedPreview($("#blocked_media_overlay"));
$(".share_button ").css("display", "none");
sonora.ads.refreshAllAds();
sonora.wizard.action = "/results";
sonora.history.current = "/WizardGenerated";
sonora.metrics.trackPage("");
},
onHistoryChanged: function(hash) {
if (sonora.currentObject != this || sonora.handledLastRequest)
return;
if (hash != null && hash != undefined) {
hash = hash.replace(/\ /g, "%20");
}
},
setupWizard: function() {
$(".view_user").unbind("click").click(function(e) {
sonora.showAJAXShiv("#sonora_content");
});
$("#make_tour").unbind("click").click(function(e) {
url = "/TourFromWizard";
sonora.loadFragment("#sonora_content", url.replace("/#/", "/").replace("#", ""), "Tour", function(textStatus) {
}, false, false);
});
$(".view_playlist").unbind("click").click(function(e) {
playlistID = $(this).attr("id");
sonora.showAJAXShiv("#sonora_content");
Wizard.Generate("", "", playlistID, function(data) {
if (data.status == "okay" && data.count > 0) {
Wizard.LoadListGenerated("", "", playlistID, function(html) {
$("#wizard_generated").html("");
$("#wizard_generated").append(html);
sonora.wizard.pageLoad();
$("#wizard_options").css("display", "none");
sonora.hideAJAXShiv();
$("#wizard_generated").show("fast");
});
}
else {
alert("Oops, serviço de gerar playlists temporariamente indisponível. Visite o canal Acervo.");
sonora.hideAJAXShiv();
}
});
});
},
generateNewPlayList: function() {
url = "/WizardNew";
sonora.wizard.action = "/selection";
sonora.history.current = "/WizardNew";
sonora.metrics.trackPage("");
sonora.loadFragment("#sonora_content", url.replace("/#/", "/").replace("#", ""), "New", function(textStatus) { }, false, false);
},
setupSongListLinks: function() {
sonora.artist_details.pageLoad();
$("#details_songs table tbody tr").unbind("click").click(function(e) {
sonora.library.selectSong($(this).attr("id"));
});
$("#details_songs .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
if (url.indexOf("http://") == 0) {
url = url.substr(url.indexOf("/", 10));
}
if (url.indexOf("?") == -1)
SWFAddress.setValue(url + "?,1,");
else
SWFAddress.setValue(url + "&,1,");
return false;
});
$("#details_songs .buttons_container .play_button").unbind("click").click(function(e) {
$("#details_songs .buttons_container .play_button").attr("id", "false");
return sonora.playButton(e, $(this), false);
});
$("#details_songs .buttons_container .add_button").unbind("click").click(function(e) {
return sonora.addButton(e, $(this), false);
});
$("#details_songs .buttons_container .moreActions_button").unbind("click").click(function(e) {
return sonora.actionsButton(e, $(this), false);
});
$("#details_songs .buttons_container .down_button").unbind("click").click(function(e) {
e.preventDefault();
sonora.artist_details.setBuyButton($(this));
return false;
});
sonora.playlistActions.setupPlaylistButtons("#album_table");
sonora.setupActionIcons();
sonora.artist_details.isAlbumView = false;
sonora.artist_details.isRadioView = false;
sonora.artist_details.isMixView = false;
},
selectSong: function(id) {
$("#details_songs table tbody tr#" + this.currentSelectedSong).removeClass("selected");
this.currentSelectedSong = id;
$("#details_songs table tbody tr#" + this.currentSelectedSong).addClass("selected");
var hash = $("#details_songs table tbody tr#" + this.currentSelectedSong + " .music_title a").attr("orgHref");
if (hash != 'undefined' && typeof hash != 'undefined') {
sonora.loadFragment("#related", hash.replace(",1,", ""), "related", function(textStatus) {
if (textStatus == "success") {
sonora.artist_details.setupRelatedPaginationLinks();
}
else {
}
}, false);
}
}
}
sonora.mysonora = {
currentPlayListObj: null,
playlistHeight: 0,
playlistWindowHeight: 500,
playlistScrollObject: null,
autoScrollInterval: null,
clonedListItem: null,
loadingQueue: [],
playlistListHeight: 0,
playlistListWindowHeight: 442,
loadedItems: [],
processingItems: [],
currentSortOrder: "music",
currentSearch: "",
filterTimeout: null,
numberOfItemsInWindow: 17,
scrollLoadTimeout: null,
userID: 0,
myHistoryMonth: 0,
myHistoryYear: 0,
isCurrentUser: false,
actualPlaylistItem: null,
MSGPLAYLIST_MUSICADD: 1,
MSGPLAYLIST_CREATE: 2,
MSGPLAYLIST_MUSICDELETE: 3,
MSGPLAYLIST_CHANGENAME: 4,
init: function() {
},
pageLoad: function() {
sonora.currentObject = this;
sonora.artist_details.isAlbumView = false;
sonora.artist_details.isRadioView = false;
sonora.artist_details.isMixView = false;
if (sonora.user.user && this.userID == sonora.user.user.id) {
this.isCurrentUser = true;
}
else {
$("#my_sonora").addClass("otherUser");
$("#playlist_details .music_more_actions a.set_selected_delete").remove();
this.isCurrentUser = false;
}
if (this.isCurrentUser) {
this.setupPageEditFunctions();
}
else {
this.hidePageEditFunctions();
}
$("#playlist_content th.sortable").click(function(e) {
if ($(this).data("sort_order") == null) {
$(this).data("sort_order", "asc");
}
else {
if ($(this).data("sort_order") == "desc")
$(this).data("sort_order", "asc");
else
$(this).data("sort_order", "desc");
}
if ($(this).find(".sort_icon").length == 0) {
$(this).prepend("<div class='sort_icon hs'></div>");
if ($(this).css("text-align") == "right") {
$(this).find(".sort_icon").css("float", "left");
}
}
$(this).find(".sort_icon").removeClass("sort_icon_desc").removeClass("sort_icon_asc").addClass("sort_icon_" + $(this).data("sort_order"));
$("#playlist_content th.sortable .sort_icon").hide();
$(this).find(".sort_icon").show();
sonora.mysonora.currentSortOrder = ($(this).attr("id")).toString().replace("_", "")
if ($(this).data("sort_order") == "desc")
sonora.mysonora.currentSortOrder += "Desc";
clearTimeout(sonora.mysonora.filterTimeout);
sonora.mysonora.loadPlayList(sonora.mysonora.currentPlayListObj.playlistId);
});
$("#info_more_actions a.view_options").click(function(e) {
e.preventDefault();
sonora.overlays.viewOptionsOverlay();
});
$("#history_details #info_more_actions a.view_options").click(function(e) {
e.preventDefault();
sonora.overlays.viewOptionsOverlay();
});
sonora.playlistActions.bindActionsForHover();
$("a.set_selected_delete").unbind("click").click(function(e) {
e.preventDefault();
if ($(".music_more_actions").hasClass("active")) {
var ids = $.fn.playlistManager.getGroupSelectedIds(sonora.mysonora.getCurrentContainer());
var playlistId = sonora.mysonora.currentPlayListObj.playlistId;
var answer = confirm("Você tem certeza que quer confirmar a exclusão de músicas ?")
if (answer) {
if (playlistId == "mymusic") {
UserPlayList.DeleteGroupMusics(0, ids);
}
else {
UserPlayList.DeleteGroupMusics(playlistId, ids);
}
e.preventDefault();
sonora.mysonora.resetFilters();
sonora.mysonora.loadPlayList("mymusic");
sonora.mysonora.updatePlaylistCount(playlistId);
}
}
sonora.playlistActions.hidePlaylistDropDown();
sonora.mysonora.setConfirmationOverlay(sonora.mysonora.MSGPLAYLIST_MUSICDELETE);
});
sonora.mysonora.enableMouseScroll();
sonora.mysonora.calculatePlaylistListHeight();
if (this.playlistListWindowHeight < this.playlistListHeight) {
$("#my_sonora #playlist_list #playlist_scroll .scroll_line").slider({
startValue: 0,
handle: "#playlist_scroll_thumb",
slide: sonora.mysonora.scrollPlaylistList
});
}
else {
$("#my_sonora #playlist_list #playlist_scroll .scroll_line").hide();
}
$("#my_music_btn").unbind("click").click(function(e) {
e.preventDefault();
sonora.mysonora.resetFilters();
sonora.mysonora.loadPlayList("mymusic");
return false;
});
$("#my_history_btn").unbind("click").click(function(e) {
e.preventDefault();
sonora.mysonora.resetFilters();
sonora.mysonora.loadPlayList("myhistory");
return false;
});
$("#filter_txt").keypress(function(e) {
clearTimeout(sonora.mysonora.filterTimeout);
sonora.mysonora.filterTimeout = setTimeout("sonora.mysonora.loadPlayList(sonora.mysonora.currentPlayListObj.playlistId);", 250);
});
$("#filter_btn").click(function(e) {
clearTimeout(sonora.mysonora.filterTimeout);
sonora.mysonora.loadPlayList(sonora.mysonora.currentPlayListObj.playlistId);
});
$("#playlist_header .buttons_container .play_button").click(function(e) {
return sonora.playButton(e, $(this), true);
});
$("#playlist_header .buttons_container .add_button").click(function(e) {
return sonora.addButton(e, $(this), false);
});
$("#playlist_header .buttons_container .share_button").click(function(e) {
e.preventDefault();
sonora.overlays.showShareOverlay("playlist", sonora.mysonora.userID, $(this).offset(), true);
return false;
});
$(".buttons_container .moreActions_button").unbind("click").click(function(e) {
return sonora.actionsButton(e, $(this), false);
});
$("#details_songs .buttons_container .moreActions_button").unbind("click").click(function(e) {
return sonora.actionsButton(e, $(this), false);
});
$("#playlist_header .buttons_container .down_button").click(function(e) {
e.preventDefault();
var item = $(this);
item.addClass("small_loading_icon");
var offset = $(this).offset();
if (!sonora.isInWMP) {
sonora.mysonora.retrievePlaylistIds(function(musics, musicprice) {
item.removeClass("small_loading_icon");
sonora.overlays.showBuyOverlay("song", musics, musicprice, offset);
}, true);
} else {
var url = '/User/MyMusicsSearchJSon?offset=0&limit=20&search=&order=music';
objeto = $(this);
offset = objeto.offset();
musics = new Array();
titles = new Array();
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (json.list.length) // Is Array
{
var limite = json.list.length;
if (limite > 20) limite = 20;
for (var i = 0; i < limite; i++) {
musics.push(json.list[i].id);
titles.push((json.list[i].title));
}
}
else // Single Music
{
musics.push(json.list[0].id);
titles.push((json.list[0].title));
}
PrepareForMultipleDownload(musics, titles, sonora.user.user.id);
sonora.overlays.showDownloadManagerOverlay(musics.length, (sonora.user.user != null && sonora.user.user.id != null), offset);
item.removeClass("small_loading_icon");
}
});
}
return false;
});
if (SWFAddress.getValue().indexOf("historico") != -1) {
sonora.mysonora.loadPlayList("myhistory");
}
else if (SWFAddress.getValue().indexOf("section") != -1) {
var parts = SWFAddress.getValue().split("?")[1].split("&");
for (var i = 0; i < parts.length; i++) {
var part = parts[i].split("=");
if (part[0] == "id") {
sonora.mysonora.loadPlayList(part[1]);
break;
}
}
}
else {
sonora.mysonora.loadPlayList("mymusic");
}
this.setupPlaylistActions();
sonora.mysonora.myhistory_dropdown.setup();
},
showNoResults: function() {
$("#results").hide();
$("#no_results").show();
$("#no_results > div").hide();
$("#myHystoryButtons").hide();
if (this.currentSearch.length < 2) {
if (sonora.mysonora.isCurrentUser) {
switch (this.currentPlayListObj.playlistId) {
case "mymusic":
$("#no_my_music_results").show();
break;
case "myhistory":
$("#no_my_history_results").show();
break;
default:
$("#no_playlist_results").show();
break;
}
}
else {
$("#no_results_other_user").show();
}
}
else {
$("#myMusicButtons").hide();
$("#no_filter_results").show();
$(".search_term").text($("#filter_txt").val());
}
},
showResults: function() {
$("#myHystoryButtons").show();
$("#myMusicButtons").show();
$("#results").show();
$("#no_results").hide();
},
setHistory: function(month, year) {
this.myHistoryMonth = month;
this.myHistoryYear = year;
this.loadPlayList("myhistory");
},
hidePageEditFunctions: function() {
$("#playlist_toggle").remove();
$("#playlist_list .new_playlist").remove();
$("a.user_image_link").replaceWith($("a.user_image_link img").addClass("user_image_link"));
},
iniPlaylistActions: function() {
$("#new_playlist_overlay").hide();
var playlistname = $("#new_playlist_overlay #playlist_name").val();
var typeAction = $("#new_playlist_overlay #playlist_name").val();
var playlistid = $("#new_playlist_overlay #playlisid").val();
var location = $("#new_playlist_overlay #location").val();
var msg = "";
var type = "";
if (playlistname != "") {
if (playlistid == 0) {
var musics = [];
UserPlayList.Create(playlistname, function(data) {
if (data.status == "success") {
sonora.mysonora.renderPlaylist(data.id, playlistname, location);
var selectedIds = "";
musics = [];
if (location == "#album_table") {
selectedIds = $.fn.playlistManager.getGroupSelectedIds(location);
musics = sonora.playlistActions.getSelectedCheck(location);
}
else {
selectedIds = $.fn.playlistManager.getGroupSelectedIds(sonora.mysonora.getCurrentContainer());
musics = sonora.playlistActions.getSelectedCheck(sonora.playlistActions.getContainer());
}
sonora.mysonora.addGroupToPlaylist(data.id, selectedIds, location);
sonora.playlistActions.setAddMessages('#AddPlaylistMessage', $('.add_button').offset(), musics);
$('#AddPlaylistMessage #spnPlaylistTitle').html(playlistname);
$('#AddPlaylistMessage .listenPlayLists #hdnPlaylistId').val(data.id);
$('#AddPlaylistMessage a.listenPlayLists').html('ouvir a playlist: ' + playlistname);
}
});
}
else {
UserPlayList.Rename(playlistid, playlistname);
$(".actions_box .add_toplaylist[id=" + playlistid + "]").html(playlistname);
$(".playlist_list_item[id=" + playlistid + "] .playlist_name").html(playlistname);
sonora.mysonora.setConfirmationOverlay(sonora.mysonora.MSGPLAYLIST_CHANGENAME);
}
}
return false;
},
setupPageEditFunctions: function() {
$("a.user_image_link").click(function(e) {
e.preventDefault();
SWFAddress.setValue("MeuSonora/UploadFoto");
return false;
});
$("#playlist_list .new_playlist").unbind("click").click(function(e) {
e.preventDefault();
sonora.mysonora.createPlaylist($(".select_songunrated").offset(), "mysonora");
return false;
});
$("#playlist_toggle").click(function(e) {
e.preventDefault();
if ($("#playlist_toggle").hasClass("make_playlist_private")) {
sonora.mysonora.makePrivate(sonora.mysonora.currentPlayListObj.playlistId);
$("#playlist_toggle").removeClass("make_playlist_private");
$("#playlist_toggle").addClass("make_playlist_public");
}
if ($("#playlist_toggle").hasClass("make_playlist_public")) {
sonora.mysonora.makePublic(sonora.mysonora.currentPlayListObj.playlistId);
$("#playlist_toggle").removeClass("make_playlist_public");
$("#playlist_toggle").addClass("make_playlist_private");
}
return false;
});
},
setupPlaylistActions: function(item) {
if (item == null) {
item = $("#playlist_list .playlist_list_item:not(.new_playlist)");
}
item.unbind("click").click(function(e) {
e.preventDefault();
sonora.mysonora.resetFilters();
sonora.mysonora.loadPlayList($(this).attr("id"));
return false;
});
if (!this.isCurrentUser) {
item.find(".playlist_edit").remove();
item.find(".delete_icon").remove();
return;
}
item.find(".playlist_edit").unbind("click").click(function(e) {
e.preventDefault();
sonora.mysonora.editPlaylistName($(this).parents(".playlist_list_item"));
return false;
});
item.find(".delete_icon").unbind("click").click(function(e) {
e.preventDefault();
sonora.mysonora.deletePlaylist($(this).parents(".playlist_list_item"));
return false;
});
},
getCurrentContainer: function() {
var currentTable = "";
if (sonora.mysonora.currentPlayListObj.playlistId == "mymusic") {
currentTable = "#mymusic_table";
}
else if (sonora.mysonora.currentPlayListObj.playlistId == "myhistory") {
currentTable = "#myhistory_table";
}
return currentTable;
},
updatePlaylistItemCount: function(data) {
if (data.Message.toLowerCase() != "acesso negado") {
var count = sonora.mysonora.actualPlaylistItem.find(".playlist_song_count").text();
count = count.substr(1);
count = parseInt(count.substr(0, count.length - 1)) + 1;
count = "(" + count + ")";
sonora.mysonora.actualPlaylistItem.find(".playlist_song_count").text(count);
sonora.mysonora.actualPlaylistItem = null;
}
},
resetFilters: function() {
this.currentSearch = "";
this.currentSortOrder = "music";
$("#filter_txt").val("");
},
createSlider: function() {
if (this.playlistWindowHeight >= this.playlistHeight) {
$("#my_sonora #playlist_content #playlist_items_scroll .scroll_line").hide();
sonora.mysonora.playlistScrollObject = null;
return;
}
$("#my_sonora #playlist_content #playlist_items_scroll .scroll_line").show();
sonora.mysonora.playlistScrollObject = $("#my_sonora #playlist_content #playlist_items_scroll .scroll_line").slider(
{
startValue: 0,
handle: "#playlist_items_scroll_thumb",
slide: sonora.mysonora.scrollPlaylist
});
},
enableMouseScroll: function() {
if (window.addEventListener) {
$("#my_sonora #playlist_content table tbody").get(0).addEventListener('DOMMouseScroll', function(e) {
sonora.mysonora.onMouseWheel(e);
}, false);
}
else {
$("#my_sonora #playlist_content table tbody").get(0).onmousewheel = function(e) {
sonora.mysonora.onMouseWheel(e);
};
}
},
onMouseWheel: function(event) {
if (sonora.mysonora.playlistScrollObject == null)
return;
var delta = 0;
if (!event) event = window.event;
try {
if (event.wheelDelta) {
delta = event.wheelDelta / 120;
}
else if (event.detail) // W3C
{
delta = -event.detail / 3;
}
}
catch (e) {
}
if (event.preventDefault)
event.preventDefault();
if (delta >= 0) {
delta = "-=" + delta;
}
else {
delta = "+=" + (delta * -1);
}
sonora.mysonora.playlistScrollObject.slider("moveTo", delta);
return false;
},
scrollPlaylistList: function(e, ui) {
var scrollTop = (sonora.mysonora.playlistListHeight - sonora.mysonora.playlistListWindowHeight) * (ui.value / 100);
$("#my_sonora #playlist_list .scrollable_list").scrollTop(scrollTop);
},
scrollPlaylist: function(e, ui) {
sonora.mysonora.loadingQueue = [];
sonora.mysonora.processingItems = [];
var scrollTop = (sonora.mysonora.playlistHeight - sonora.mysonora.playlistWindowHeight) * (ui.value / 100);
if (jQuery.browser.msie) {
$("#my_sonora #results").scrollTop(scrollTop);
}
else {
$("#my_sonora #playlist_content table tbody").scrollTop(scrollTop);
}
if (sonora.mysonora.loadedItems.length > sonora.mysonora.currentPlayListObj.songCount) {
return;
}
clearTimeout(this.scrollLoadTimeout);
this.scrollLoadTimeout = setTimeout(function() { sonora.mysonora.loadCurrentViewableItems(scrollTop); }, 200);
if ($.browser.msie) {
$("#results thead tr").css("top", scrollTop);
}
},
loadCurrentViewableItems: function(scrollTop) {
var topIndex = 0;
var bottomIndex = 0;
topIndex = parseInt(scrollTop / 30);
bottomIndex = topIndex + 17;
var offsetIndex = topIndex;
var search = "";
if (this.currentPlayListObj.playlistId == "myhistory") {
search = "#myhistory_table tbody tr:not(#clone_blank_list_item):not(#clone_list_item):not(.topRowIE):gt(" + (topIndex - 1) + "):lt(" + (bottomIndex) + ")";
}
else {
search = "#mymusic_table tbody tr:not(#clone_blank_list_item):not(#clone_list_item):not(.topRowIE):gt(" + (topIndex - 1) + "):lt(" + (bottomIndex) + ")";
}
$(search).each(
function() {
if ($(this).hasClass("unloadedItem"))//&& sonora.mysonora.loadedItems[offsetIndex] == null
{
sonora.mysonora.loadingQueue.push({ obj: $(this), index: offsetIndex });
}
offsetIndex++;
});
sonora.mysonora.loadNextItemInQueue();
},
loadNextItemInQueue: function() {
var limit = 17;
if (this.processingItems.length > limit)
return;
for (var i = 0; i < 1; i++) {
if (sonora.mysonora.loadingQueue.length == 0)
return;
var objs = new Array();
for (var j = 0; j < limit; j++) {
objs[j] = sonora.mysonora.loadingQueue.shift();
}
var obj = objs[0];
var objTop = obj.obj.position().top;
if (jQuery.browser.msie) {
objTop -= $("#my_sonora #results").scrollTop();
}
if (objTop < (sonora.mysonora.playlistWindowHeight + 27)) {
sonora.mysonora.loadSongs(objs, obj.index, limit);
for (var k = 0; k < limit; k++) {
if (objs[k] != "undefined" && objs[k] != null)
sonora.mysonora.processingItems.push(objs[k].obj);
}
}
else {
sonora.mysonora.loadNextItemInQueue();
}
}
},
calculatePlaylistHeight: function() {
sonora.mysonora.playlistHeight = 0;
sonora.mysonora.playlistHeight = this.currentPlayListObj.songCount * 30;
},
calculatePlaylistListHeight: function() {
sonora.mysonora.playlistListHeight = 0;
$("#my_sonora #playlist_list .scrollable_list .playlist_list_item").each(function() {
sonora.mysonora.playlistListHeight += $(this).outerHeight(true);
});
},
reorderPlaylist: function() {
var i = 0;
$("#my_sonora #playlist_content table tbody tr .order_id").each(function() {
$(this).text(i++)
});
},
setupPlaylist: function() {
if (this.currentPlayListObj.songCount == 0) {
if (this.currentPlayListObj.playlistId == "mymusic" && this.isCurrentUser == false) {
this.loadPlayList("myhistory");
}
else {
this.showNoResults();
}
}
else {
this.showResults();
}
sonora.mysonora.loadedItems = [];
sonora.mysonora.processingItems = [];
var tbody;
if (this.currentPlayListObj.playlistId == "myhistory") {
this.clonedListItem = $("#myhistory_table #clone_blank_list_item");
tbody = $("#myhistory_table tbody");
}
else {
this.clonedListItem = $("#mymusic_table #clone_blank_list_item");
tbody = $("#mymusic_table tbody");
}
tbody.find("tr:not(#clone_list_item):not(#clone_blank_list_item)").remove();
if ($.browser.msie) {
var newItem = this.clonedListItem.clone();
newItem.attr("id", "");
newItem.attr("class", "topRowIE");
newItem.children().filter("td").text("&nbsp;");
tbody.append(newItem);
}
for (var i = 0; i < (this.currentPlayListObj.songCount); i++) {
var newItem = this.clonedListItem.clone();
newItem.attr("id", "");
newItem.attr("class", "unloadedItem");
newItem.children().filter("td").text((i + 1) + " Loading...");
tbody.append(newItem);
}
if (this.currentPlayListObj.songCount < this.numberOfItemsInWindow) {
for (var i = 0; i < (this.numberOfItemsInWindow - this.currentPlayListObj.songCount); i++) {
var newItem = this.clonedListItem.clone();
newItem.attr("id", "");
newItem.attr("class", "unloadedItem");
newItem.children().filter("td").html("&nbsp;");
tbody.append(newItem);
}
}
sonora.mysonora.calculatePlaylistHeight();
sonora.mysonora.createSlider();
sonora.mysonora.scrollPlaylist({}, { value: 0 });
sonora.mysonora.stripeList();
$("#playlist_header #playlist_name").html(this.currentPlayListObj.title);
$("#playlist_header #playlist_song_count").html("(" + this.currentPlayListObj.songCount + " m&uacute;sicas)");
var initialCount = 0;
if (this.currentPlayListObj.songCount < 50) {
initialCount = this.currentPlayListObj.songCount;
}
else {
initialCount = 50;
}
sonora.hideAJAXShiv();
},
stripeList: function() {
$("#playlist_content tr").removeClass("striped");
if ($.browser.msie)
$("#playlist_content tr:even").addClass("striped");
else
$("#playlist_content tr:odd").addClass("striped");
},
clearAllChecks: function() {
$.fn.playlistManager.clearAll(" #mymusic_table");
$.fn.playlistManager.clearAll(" #myhistory_table");
},
loadPlayList: function(playlist_id, callback) {
var container = "#mymusic_table";
if (playlist_id == "myhistory") {
container = "#myhistory_table";
}
if (container != '#mymusic_table') {
$('#addToMyLibrary').show();
$('#spnAddToMyLibrary').show();
}
else {
$('#addToMyLibrary').hide();
$('#spnAddToMyLibrary').hide();
}
sonora.playlistActions.bindActionsForSelect(container);
sonora.playlistActions.bindActionsForSet(container);
sonora.playlistActions.bindActionsForCreateOrUpdate(container);
sonora.mysonora.clearAllChecks();
$(".buttons_container .moreActions_button").unbind("click").click(function(e) {
return sonora.actionsButton(e, $(this), false);
});
if (callback && typeof (callback) == 'function') {
}
else {
sonora.showAJAXShiv($("#playlist_content"))
}
if (sonora.mysonora.playlistScrollObject != null)
sonora.mysonora.playlistScrollObject.slider("moveTo", "0");
this.currentSearch = $("#filter_txt").val();
if (this.currentSearch.length == 1) {
this.currentSearch = "";
return;
}
sonora.mysonora.loadingQueue = [];
if (playlist_id == "mymusic") {
$("#playlist_details").show();
$("#history_details").hide();
$("#history_warning").hide();
$("#mymusic_table").show();
$("#myhistory_table").hide();
$("#my_music_btn").addClass("selected");
$("#my_history_btn").removeClass("selected");
$("#my_playlists_header").removeClass("selected");
UserPlayList.MyMusicsSearchJSon(0, 1, this.currentSearch, this.currentSortOrder, function(data) {
if (callback && typeof (callback) == 'function') {
callback(data);
return;
}
var obj = {};
obj.playlistId = playlist_id;
obj.songCount = data.total;
if (sonora.mysonora.isCurrentUser) {
obj.title = "minhas músicas";
$(".my_music_actions .music_more_actions .set_selected_delete").show();
}
else {
obj.title = "músicas";
$(".my_music_actions .music_more_actions .set_selected_delete").hide();
}
sonora.mysonora.currentPlayListObj = obj;
sonora.mysonora.setupPlaylist();
}, this.userID);
}
else if (playlist_id == "myhistory") {
$("#playlist_details").hide();
$("#history_details").show();
$("#mymusic_table").hide();
$("#myhistory_table").show();
$("#my_music_btn").removeClass("selected");
$("#my_history_btn").addClass("selected");
$("#my_playlists_header").removeClass("selected");
$(".my_music_actions .music_more_actions .set_selected_delete").hide();
UserPlayList.GetMusicsHistoryJSon(0, 1, this.myHistoryMonth, this.myHistoryYear, this.currentSortOrder, this.currentSearch, this.userID, function(data) {
if (callback && typeof (callback) == 'function') {
callback(data);
return;
}
var obj = {};
obj.playlistId = playlist_id;
obj.songCount = data.total;
if (sonora.mysonora.isCurrentUser) {
obj.title = "meu hist&oacute;rico";
if (sonora.user.getUserType() == 0) {
$("#history_warning").show();
}
}
else {
obj.title = "hist&oacute;rico";
}
sonora.mysonora.currentPlayListObj = obj;
sonora.mysonora.setupPlaylist();
});
}
else {
$("#playlist_details").show();
$("#history_details").hide();
$("#mymusic_table").show();
$("#myhistory_table").hide();
$("#history_warning").hide();
$("#my_music_btn").removeClass("selected");
$("#my_history_btn").removeClass("selected");
$("#my_playlists_header").addClass("selected");
UserPlayList.GetMusicsJSon(0, 1, this.currentSearch, playlist_id, this.currentSortOrder, function(data) {
if (callback && typeof (callback) == 'function') {
callback(data);
return;
}
var obj = {};
obj.playlistId = playlist_id;
obj.songCount = data.total;
obj.title = $("#playlist_list .playlist_list_item[id=" + playlist_id + "] .playlist_name").text();
sonora.mysonora.currentPlayListObj = obj;
sonora.mysonora.setupPlaylist();
});
}
},
loadSong: function(tr, offset) {
this.loadedItems[offset] = true;
if (this.currentPlayListObj.playlistId == "mymusic") {
UserPlayList.MyMusicsSearchJSon(offset, 1, this.currentSearch, this.currentSortOrder, function(data) {
if ($.inArray(tr, sonora.mysonora.processingItems) != -1 && data.list.length > 0) // Item no longer needed
{
sonora.mysonora.prepareSong(tr, offset, data.list[0]);
}
}, this.userID);
}
else if (this.currentPlayListObj.playlistId == "myhistory") {
UserPlayList.GetMusicsHistoryJSon(offset, 1, this.myHistoryMonth, this.myHistoryYear, this.currentSortOrder, this.currentSearch, this.userID, function(data) {
if ($.inArray(tr, sonora.mysonora.processingItems) != -1 && data.list.length > 0) // Item no longer needed
sonora.mysonora.prepareSong(tr, offset, data.list[0]);
});
}
else {
UserPlayList.GetMusicsJSon(offset, 1, this.currentSearch, this.currentPlayListObj.playlistId, this.currentSortOrder, function(data) {
if ($.inArray(tr, sonora.mysonora.processingItems) != -1 && data.list.length > 0) // Item no longer needed
sonora.mysonora.prepareSong(tr, offset, data.list[0]);
});
}
},
loadSongs: function(trs, offset, limit) {
this.loadedItems[offset] = true;
if (this.currentPlayListObj.playlistId == "mymusic") {
UserPlayList.MyMusicsSearchJSon(offset, limit, this.currentSearch, this.currentSortOrder, function(data) {
if (data.list.length > 0) {
for (var i = 0; i < data.list.length; i++) {
if (trs[i] != "undefined" && trs[i] != null) {
if ($.inArray(trs[i].obj, sonora.mysonora.processingItems) != -1) // Item no longer needed
{
sonora.mysonora.prepareSong(trs[i].obj, (i + offset), data.list[i]);
}
}
}
}
}, this.userID);
}
else if (this.currentPlayListObj.playlistId == "myhistory") {
UserPlayList.GetMusicsHistoryJSon(offset, limit, this.myHistoryMonth, this.myHistoryYear, this.currentSortOrder, this.currentSearch, this.userID, function(data) {
if (data.list.length > 0) {
for (var i = 0; i < data.list.length; i++) {
if (trs[i] != "undefined" && trs[i] != null) {
if ($.inArray(trs[i].obj, sonora.mysonora.processingItems) != -1) // Item no longer needed
{
sonora.mysonora.prepareSong(trs[i].obj, (i + offset), data.list[i]);
}
}
}
}
});
}
else {
UserPlayList.GetMusicsJSon(offset, limit, this.currentSearch, this.currentPlayListObj.playlistId, this.currentSortOrder, function(data) {
if (data.list.length > 0) {
for (var i = 0; i < data.list.length; i++) {
if (trs[i] != "undefined" && trs[i] != null) {
if ($.inArray(trs[i].obj, sonora.mysonora.processingItems) != -1) // Item no longer needed
{
sonora.mysonora.prepareSong(trs[i].obj, (i + offset), data.list[i]);
}
}
}
}
});
}
},
retrieveRandomPlaylistIds: function(callback, getPrice) {
if (!(getPrice))
getPrice = false;
var order = "random";
var count = this.currentPlayListObj.songCount;
if (!getPrice && this.currentPlayListObj.songCount > 50) {
count = 50;
}
var processDataFunction = function(data) {
var musics = [];
var musicprice = 0;
for (var i = 0; i < data.list.length; i++) {
musics.push(data.list[i].id);
musicprice += data.list[i].price;
}
callback(musics, musicprice);
};
if (this.currentPlayListObj.playlistId == "mymusic") {
UserPlayList.MyMusicsSearchJSon(0, count, this.currentSearch, order, processDataFunction, this.userID);
}
else if (this.currentPlayListObj.playlistId == "myhistory") {
UserPlayList.GetMusicsHistoryJSon(0, count, this.myHistoryMonth, this.myHistoryYear, order, this.currentSearch, this.userID, processDataFunction);
}
else {
UserPlayList.GetMusicsJSon(0, count, this.currentSearch, this.currentPlayListObj.playlistId, order, processDataFunction);
}
},
retrievePlaylistIds: function(callback, getPrice) {
if (!(getPrice))
getPrice = false;
var order = this.currentSortOrder;
var count = this.currentPlayListObj.songCount;
if (!getPrice && this.currentPlayListObj.songCount > 50) {
order = "random";
count = 50;
}
var processDataFunction = function(data) {
var musics = [];
var musicprice = 0;
currentContent = sonora.mysonora.getCurrentContainer();
var idsSelected = $.fn.playlistManager.getGroupSelectedIds(currentContent);
var pricesSelected = $.fn.playlistManager.getSelectedPrices(currentContent);
if (idsSelected == "") {
for (var i = 0; i < data.list.length; i++) {
musics.push(data.list[i].id);
musicprice += data.list[i].price;
}
}
else {
data = idsSelected.split(',');
for (var i = 0; i < data.length; i++) {
if (data[i] > 0) {
musics.push(data[i]);
musicprice += parseFloat(pricesSelected[i]);
}
}
}
callback(musics, musicprice);
};
if (this.currentPlayListObj.playlistId == "mymusic") {
UserPlayList.MyMusicsSearchJSon(0, count, this.currentSearch, order, processDataFunction, this.userID);
}
else if (this.currentPlayListObj.playlistId == "myhistory") {
UserPlayList.GetMusicsHistoryJSon(0, count, this.myHistoryMonth, this.myHistoryYear, order, this.currentSearch, this.userID, processDataFunction);
}
else {
UserPlayList.GetMusicsJSon(0, count, this.currentSearch, this.currentPlayListObj.playlistId, order, processDataFunction);
}
},
editPlaylistName: function(item) {
var playListId = item.attr("id");
var playListName = item.find(".playlist_name").text();
position = $(".playlist_name").offset();
sonora.overlays.newPlaylistOverlay(position, "Altere o nome da sua Playlist", playListName, playListId, "mysonora");
},
deletePlaylist: function(item) {
var playListId = item.attr("id");
var playListName = item.find(".playlist_name").text();
var answer = confirm("Você tem certeza que quer excluir esta playlist " + playListName + "?")
if (answer) {
UserPlayList.Delete(playListId);
item.remove();
$(".actions_box > li[id=" + playListId + "]").remove();
sonora.mysonora.loadPlayList("mymusic");
}
},
deletePlaylistItem: function(songId) {
var playlistId = this.currentPlayListObj.playlistId;
var answer = confirm("Você tem certeza que quer excluir esta música?")
if (answer) {
if (playlistId == "mymusic")
UserPlayList.DeleteSongLibrary(songId);
else
UserPlayList.RemoveMusics(playlistId, songId);
$("#my_sonora #playlist_content table tbody tr[id=" + songId + "]").remove();
this.currentPlayListObj.songCount--;
if (this.currentPlayListObj.songCount < this.numberOfItemsInWindow) {
var tbody = $("#playlist_content tbody");
var newItem = sonora.mysonora.clonedListItem.clone();
newItem.attr("id", "");
newItem.attr("class", "unloadedItem");
newItem.children().filter("td").html("&nbsp;");
tbody.append(newItem);
}
sonora.mysonora.stripeList();
sonora.mysonora.reorderPlaylist();
sonora.mysonora.updatePlaylistCount(playlistId);
}
},
createPlaylist: function(position, callback, location) {
sonora.playlistActions.hidePlaylistDropDown();
position = $('.add_button').offset();
sonora.overlays.newPlaylistOverlay(position, "Digite abaixo o nome da sua Playlist :", "", 0, location);
},
renderPlaylist: function(id, name, location) {
var playlist_container = $("#playlist_list .scrollable_list");
var playlist_item_prototype = $("#cloneable_playlist_list_item");
var new_playlist = playlist_item_prototype.clone();
new_playlist.attr("id", id);
new_playlist.find(".playlist_name").text(name);
new_playlist.find(".playlist_song_count").text("(0)");
new_playlist.css("display", "block");
playlist_container.prepend(new_playlist);
this.setupPlaylistActions(new_playlist);
this.calculatePlaylistListHeight();
if (location == "#mymusic_table" || location == "#myhistory_table" || location == "") {
container = sonora.mysonora.getCurrentContainer();
}
else {
container = location;
}
$(".actions_box").prepend("<li id=\"" + id + "\" ><a id=\"" + id + "\" class=\"add_toplaylist\" onClick=\"sonora.mysonora.actvateNewPlaylist(" + id + ", '" + container + "');\" href=\"javascript:void(0);\">" + name + "</a><span>(0)</span></li>");
},
makePrivate: function(playlistId) {
UserPlayList.SetPrivate(playlistId);
},
makePublic: function(playlistId) {
UserPlayList.SetUnPrivate(playlistId);
},
makeProfilePrivate: function() {
UserPlayListInterface.SetProfilePrivate();
},
makeProfilePublic: function() {
UserPlayListInterface.SetProfilePublic();
},
actvateNewPlaylist: function(playlistId, container) {
var ids = $.fn.playlistManager.getGroupSelectedIds(container);
if (ids != "") {
UserPlayList.AddGroupMusicsLibraryPlayList(playlistId, ids, function(data) {
if (data.status == "success") {
sonora.playlistActions.clearAllSelected(container);
sonora.mysonora.updateDropdownPlaylistCount(playlistId, data.count);
sonora.mysonora.setConfirmationOverlay(sonora.mysonora.MSGPLAYLIST_MUSICADD);
}
});
}
return false;
},
setConfirmationOverlay: function(typeConfirm) {
msg = "";
switch (typeConfirm) {
case sonora.mysonora.MSGPLAYLIST_MUSICADD:
msg = "Músicas (s) Adicionada(s) com sucesso";
break;
case sonora.mysonora.MSGPLAYLIST_CREATE:
msg = "Playlist Criada com sucesso !";
break;
case sonora.mysonora.MSGPLAYLIST_MUSICDELETE:
msg = "Músicas Excluídas";
break;
case sonora.mysonora.MSGPLAYLIST_CHANGENAME:
msg = "Nome da Playlist Alterado com sucesso!";
break;
}
position = $("PlayListActions");
sonora.overlays.playlistActionConfOverlay(position, msg, typeConfirm);
},
positionMessages: function() {
var item = $("#PlayListActions .bt_more_actions, #playlist_details .buttons_container .bt_more_actions, #history_details .bt_more_actions");
var position = item.offset();
if ($("#my_sonora").length > 0) {
position - 228;
}
else {
position - 13;
}
return position;
},
updateDropdownPlaylistCount: function(playlistId, count) {
$(".playlist_left_content > span[id=spn_" + playlistId + "] ").html("(" + count + ")");
$("#playlist_list .playlist_list_item[id=" + playlistId + "] .playlist_song_count").text("(" + count + ")");
},
addGroupToPlaylist: function(playListId, ids, location) {
UserPlayList.AddGroupMusicsLibraryPlayList(playListId, ids, function(data) {
if (data.status == "success") {
sonora.mysonora.updateDropdownPlaylistCount(playListId, data.count);
}
});
sonora.mysonora.clearAllChecks();
},
prepareSong: function(tr, offset, itemData) {
var listItem;
if (this.currentPlayListObj.playlistId == "myhistory")
listItem = $("#myhistory_table #clone_list_item").clone();
else
listItem = $("#mymusic_table #clone_list_item").clone();
if (itemData.id == null) {
var href = $(this).attr("href");
href = String(href.substr(href.indexOf("#")));
href = href.split("/")[1];
itemData.id = href[5];
}
listItem.attr("id", itemData.id);
listItem.find(".order_id").text(offset + 1);
listItem.find(".music").html("<div class='music ellipsis'>" + itemData.title + "</div>");
listItem.find(".artist_album").html("<div class='artist_album ellipsis'>" + itemData.artist + " / " + itemData.album + "</div>");
listItem.find(".genre").html("<div class='genre ellipsis'>" + itemData.genre + "</div>");
listItem.find(".check_icon").attr("value", itemData.id);
listItem.find(".play_icon").attr("href", "#ouvir/musica/" + itemData.id);
if (this.currentPlayListObj.playlistId == "myhistory" || !this.isCurrentUser) {
listItem.find(".add_icon").attr("href", "#adicionar/musica/" + itemData.id + "");
}
else {
listItem.find(".add_icon").attr("href", "#adicionar/musica/" + itemData.id + "/1");
}
listItem.find(".delete_icon").attr("href", "#delete/" + itemData.id);
listItem.find(".delete_icon").click(function(e) {
e.preventDefault();
var href = $(this).attr("href");
href = String(href.substr(href.indexOf("#")));
href = href.split("/")[1];
sonora.mysonora.deletePlaylistItem(href);
return false;
});
listItem.find(".share_icon").attr("href", "#enviar/musica/" + itemData.id);
var hrefValue = "";
if (itemData.canSellIndividually) {
hrefValue = "#comprar/musica/" + itemData.id + "/" + itemData.price;
}
else {
hrefValue = "#/blocked_item";
}
listItem.find(".buy_icon").attr("href", hrefValue);
if (this.currentPlayListObj.playlistId == "myhistory") {
listItem.find(".delete_icon").remove();
}
if (itemData.date) {
var dateParts = itemData.date.split(" ");
listItem.find(".date").html("<span title='" + itemData.date + "'>" + dateParts[0] + "</span>");
}
listItem.find(".black_heart_icon").attr("href", "#nao_gosto/" + itemData.id);
if (itemData.disliked) {
listItem.find(".black_heart_icon").addClass("black_heart_icon_on");
}
listItem.find(".red_heart_icon").attr("href", "#gosto/" + itemData.id);
if (itemData.hearted) {
listItem.find(".red_heart_icon").addClass("red_heart_icon_on");
}
if (offset % 2 == 0) listItem.addClass("striped");
else listItem.removeClass("striped");
if (this.isCurrentUser) {
}
else {
listItem.find(".delete_icon").remove();
var heartHtml = listItem.find(".heart_icons a").attr("href", "#ignore");
}
sonora.mysonora.processingItems.splice($.inArray(tr, sonora.mysonora.processingItems), 1);
tr.replaceWith(listItem);
listItem.find(".ellipsis").each(function() { sonora.utils.ellipsis($(this)); });
if (this.currentPlayListObj.playlistId == "myhistory")
sonora.setupActionIcons("#myhistory_table tbody tr[id=" + itemData.id + "]");
else
sonora.setupActionIcons("#mymusic_table tbody tr[id=" + itemData.id + "]");
$('.play_icons').unbind('click').click(function(e) {
if ($(this).find('input:checked').length == 0) {
if ($('.play_icons .selec').find('input:checked').length > 0)
$('.play_icons .selec').find('input').eq(0).attr('checked', false);
}
});
sonora.mysonora.loadNextItemInQueue();
},
updatePlaylistCount: function(playlistId) {
if (playlistId == "mymusic")
return;
this.loadPlayList(playlistId, function(data) {
$("#playlist_list .playlist_list_item[id=" + playlistId + "] .playlist_song_count").text("(" + data.total + ")");
$(".actions_box > li[id=" + playlistId + "] > span").html("(" + data.total + ")");
});
}
}
sonora.mysonora.myhistory_dropdown = {
ddObj: null,
ddParent: null,
selectedItem: null,
shiv: null,
setup: function() {
$("#site").append("<div id='history_dd_shield' class='shiv'></div>");
this.shiv = $("#history_dd_shield");
this.ddParent = $("#history_dd_container");
$(this.ddParent).hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
}
)
$(this.ddParent).click(function(e) {
sonora.mysonora.myhistory_dropdown.show(e);
});
this.ddObj = $("#history_dropdown");
var cloneAbleItem = $("#history_dropdown li:first");
var now = new Date();
for (var i = 0; i < 6; i++) {
var clone = cloneAbleItem.clone();
var d = new Date(now.getFullYear(), now.getMonth() - i, 1);
clone.find("a").text((d.getMonth() + 1) + " / " + d.getFullYear()).attr("href", "#" + (d.getMonth() + 1) + "/" + d.getFullYear());
this.ddObj.append(clone);
}
$("#history_dropdown a").click(function(e) {
e.preventDefault();
sonora.mysonora.myhistory_dropdown.select($(this));
var href = $(this).attr("href");
if (href.indexOf("#") > -1)
href = href.split("#")[1];
href = href.split("/");
sonora.mysonora.setHistory(href[0], href[1]);
return false;
});
$("#history_dropdown > li > a:odd").addClass("striped");
},
show: function(e) {
this.shiv.width($(document).width());
this.shiv.height($(document).height());
this.shiv.show();
this.shiv.unbind("click").click(function(e) {
e.preventDefault();
sonora.mysonora.myhistory_dropdown.hide();
$(this).hide();
return false;
});
$(this.ddParent).unbind('click');
$(this.ddParent).addClass("selected");
this.ddObj.show();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
},
hide: function() {
this.shiv.hide();
this.ddObj.hide();
$(this.ddParent).click(function(e) {
sonora.mysonora.myhistory_dropdown.show(e);
});
$(this.ddParent).removeClass("selected");
$("#selected_history_option").unbind("click");
},
select: function(item) {
this.hide();
this.selectedItem = item;
$("#selected_history_option").text(item.text());
$("#selected_history_option").addClass("ellipsis");
sonora.utils.ellipsis($("#selected_history_option"));
}
}
{
jQuery.fn.playlistManager = function(options) {
if (!$) $ = jQuery;
var opts = $.extend({}, $.fn.playlistManager.defaults, options);
return this.each(function() {
switch (opts.action) {
case "CheckAll":
CheckAll(this);
break;
case "CheckNone":
CheckNone(this);
break;
case "CheckLike":
CheckLike(this);
break;
case "CheckDislike":
CheckDislike(this);
break;
case "CheckDefault":
CheckDefault(this);
break;
case "CheckMostListened":
CheckMostListened(this);
break;
default:
break;
}
});
};
$.fn.playlistManager.defaults = {
action: 'CheckAll'
};
$.fn.playlistManager.setSelectedDislike = function(container) {
var groupids = "";
$.fn.playlistManager.getSelectedSongsIDs(container).each(function(index, val) {
if (val > 0) {
groupids += val + ",";
RemoveRedHeart(container, val);
AddBlackHeart(container, val);
}
});
return groupids;
};
$.fn.playlistManager.setSelectedLike = function(container) {
var groupids = "";
$.fn.playlistManager.getSelectedSongsIDs(container).each(function(index, val) {
if (val > 0) {
groupids += val + ",";
AddRedHeart(container, val);
RemoveBlackHeart(container, val);
}
});
return groupids;
};
$.fn.playlistManager.setSelectedDefault = function(container) {
var groupids = "";
$.fn.playlistManager.getSelectedSongsIDs(container).each(function(index, val) {
if (val > 0) {
groupids += val + ",";
RemoveRedHeart(container, val);
RemoveBlackHeart(container, val);
}
});
return groupids;
};
$.fn.playlistManager.getGroupSelectedIds = function(container) {
var groupids = "";
$.fn.playlistManager.getSelectedSongsIDs(container).each(function(index, val) {
if (val > 0)
groupids += val + ",";
});
return groupids;
};
$.fn.playlistManager.getSelectedPrices = function(container) {
return $(container).find("tr:has(:checkbox:checked) .buy_icon").map(function() {
var href = $(this).attr("href").split('/');
return href[href.length - 1];
});
};
$.fn.playlistManager.getSongs = function(container) {
return $(container).find(":checkbox");
};
$.fn.playlistManager.getSelectedSongsIDs = function(container) {
return $.fn.playlistManager.getSelectedSongs(container).map(function() { return $(this).val(); });
};
$.fn.playlistManager.getSelectedSongs = function(container) {
return $(container).find(":checkbox:checked");
};
$.fn.playlistManager.activateMoreActions = function(container) {
var selected = 0;
$.fn.playlistManager.getSelectedSongsIDs().each(function(index, val) {
if (val > 0) {
selected++;
}
});
if (selected > 0) {
$("#info_count_selected").html(selected);
$("#info_more_actions").show("fast");
$("#history_details #info_more_actions").show("fast");
$("#history_details #info_count_selected").html(selected);
}
else {
$("#history_details #info_count_selected").html("0");
$("#info_count_selected").html("0");
$("#info_more_actions").hide("fast");
$("#history_details #info_more_actions").hide("fast");
sonora.overlays.hideOptionsOverlay();
}
if (!$(".music_more_actions").hasClass("active") && selected > 0) {
$(".music_more_actions").addClass("active");
$(".my_music_actions .actions_box").addClass("active");
$(".buttons_container .warning > p").remove();
$(".my_music_actions h2").css("color", "#FF9900")
}
else if (selected == 0) {
$(".music_more_actions").removeClass("active");
$(".my_music_actions .actions_box").removeClass("active");
if ($(".buttons_container .warning").html() == "") {
$(".buttons_container .warning").prepend("<p id=\"a\">selecione m&uacute;sicas para utilizar as a&ccedil;&otilde;es abaixo</p>");
$(".my_music_actions h2").css("color", "#E8E5E3")
}
}
};
$.fn.playlistManager.countSelected = function(container) {
var count = 0;
count = $(container).find(":checkbox:checked").length;
return count;
};
$.fn.playlistManager.clearAll = function(container) {
$(container).find(":checkbox:checked").attr('checked', false);
$.fn.playlistManager.activateMoreActions();
};
function CheckAll(container) {
container = sonora.playlistActions.getContainer();
$.fn.playlistManager.getSongs(container).attr('checked', true);
$.fn.playlistManager.activateMoreActions();
};
function CheckNone(container) {
$.fn.playlistManager.getSelectedSongs(container).attr('checked', false);
$.fn.playlistManager.activateMoreActions();
};
function CheckLike(container) {
CheckNone(container);
$(container).find("tr:has(.red_heart_icon_on) :checkbox").attr('checked', true);
$.fn.playlistManager.activateMoreActions();
};
function CheckDislike(container) {
CheckNone(container);
$(container).find("tr:has(.black_heart_icon_on) :checkbox").attr('checked', true);
$.fn.playlistManager.activateMoreActions();
};
function CheckDefault(container) {
CheckAll(container);
$(container).find("tr:has(.black_heart_icon_on, .red_heart_icon_on) :checkbox").attr('checked', false);
$.fn.playlistManager.activateMoreActions();
};
function CheckMostListened(container) {
CheckNone(container);
if ($(container).find("td:has(.rank)").html() != null) {
$(container).find("tr:has(.rank) :checkbox").attr('checked', true);
}
else {
$(container).find("tr:has(.first_seven) :checkbox").attr('checked', true);
}
$.fn.playlistManager.activateMoreActions();
};
function AddRedHeart(container, val) {
$(container).find("tr:has(:checkbox[value='" + val + "']) a.red_heart_icon").addClass("red_heart_icon_on");
};
function AddBlackHeart(container, val) {
$(container).find("tr:has(:checkbox[value='" + val + "']) a.black_heart_icon").addClass("black_heart_icon_on");
};
function RemoveRedHeart(container, val) {
$(container).find("tr:has(:checkbox[value='" + val + "']) a.red_heart_icon").removeClass("red_heart_icon_on");
};
function RemoveBlackHeart(container, val) {
$(container).find("tr:has(:checkbox[value='" + val + "']) a.black_heart_icon").removeClass("black_heart_icon_on");
};
function SetSelectedColor(container) {
$(container).find("tbody tr:has(:checkbox) *").css("color", "#47423A");
$(container).find("tbody tr:has(:checkbox:checked) *").css("color", "#FF9900");
};
}
sonora.playlistActions = {
setupPlaylistButtons: function(container) {
sonora.playlistActions.bindActionsForHover();
sonora.playlistActions.bindActionsForSelect(container);
sonora.playlistActions.bindActionsForSet(container);
sonora.playlistActions.bindActionsForCreateOrUpdate(container);
$("#info_more_actions a.view_options").unbind("click").click(function(e) {
e.preventDefault();
sonora.overlays.viewOptionsOverlay();
});
},
clearAllSelected: function(container) {
$(container).playlistManager({ action: 'CheckNone' });
},
hidePlaylistDropDown: function(container) {
$(".my_music_actions").css("display", "none");
$("#ActionButtonAddOverlay").css("display", "none");
},
hideActionsButtons: function() {
$("#ActionButtonsInfoOverlay").css("display", "none");
},
bindActionsForCreateOrUpdate: function(container) {
if (container == "") {
container = "#album_table";
}
$("#PlayListActions a.drop_new_playlist, a.drop_new_playlist").unbind("click").click(function(e) {
e.preventDefault();
if (container == "#mymusic_table" || container == "#myhistory_table") {
sonora.mysonora.createPlaylist($(this).offset(".drop_new_playlist"), "mysonora");
}
else {
sonora.mysonora.createPlaylist(sonora.overlays.currentOverlay.offset(), "0", container);
}
sonora.playlistActions.hidePlaylistDropDown();
return false;
});
$("a.add_toplaylist").unbind("click").click(function(e) {
e.preventDefault();
sonora.playlistActions.hidePlaylistDropDown();
var musics = [];
var playListId = $(this).attr("id");
var playlistname = $(this).html();
var container = '';
container = sonora.playlistActions.getContainer();
musics = sonora.playlistActions.getSelectedCheck(container);
$('#AddPlaylistMessage #hdnPlaylistId').val(playListId);
UserPlayList.AddGroupMusicsLibraryPlayList(playListId, musics, function(data) {
sonora.mysonora.updateDropdownPlaylistCount(playListId, data.count);
if (data.status == "success") {
var offset = $('.add_button').offset()
if (offset.left == 0) {
offset = $('#myHystoryButtons .add_button').offset();
}
sonora.playlistActions.setAddMessages('#AddPlaylistMessage', offset, musics);
$('#AddPlaylistMessage .spnPlaylistTitle').html(playlistname);
$('#AddPlaylistMessage a.listenPlayLists').html('ouvir a playlist: ' + playlistname);
}
});
return false;
});
},
bindActionsForSet: function(container) {
$("a.set_selected_like, #fullActions a.checkLike").unbind("click").click(function(e) {
e.preventDefault();
sonora.playlistActions.hidePlaylistDropDown();
sonora.playlistActions.hideActionsButtons();
var ids = $.fn.playlistManager.setSelectedLike(container);
UserPlayList.ChangeRateGroupMusics("like", ids);
var count = ids.split(',');
sonora.playlistActions.clearAllSelected(container);
if (!count) {
count = 0;
} else {
if (count.length) {
count = count.length - 1;
} else {
count = 0;
}
}
msg = (count) + " músicas classificadas como gosto";
sonora.overlays.showActionButtonsConfirmation($(".moreActions_button").offset(), msg);
});
$("a.set_selected_unlike, #fullActions a.checkDislike").unbind("click").click(function(e) {
e.preventDefault();
sonora.playlistActions.hidePlaylistDropDown();
sonora.playlistActions.hideActionsButtons();
var ids = $.fn.playlistManager.setSelectedDislike(container);
UserPlayList.ChangeRateGroupMusics("unlike", ids);
var count = ids.split(',');
sonora.playlistActions.clearAllSelected(container);
if (!count) {
count = 0;
} else {
if (count.length) {
count = count.length - 1;
} else {
count = 0;
}
}
msg = (count) + " músicas classificadas como nao gosto";
sonora.overlays.showActionButtonsConfirmation($(".moreActions_button").offset(), msg);
});
$("a.set_selected_default, #fullActions .checkUnrated").unbind("click").click(function(e) {
e.preventDefault();
sonora.playlistActions.hidePlaylistDropDown();
sonora.playlistActions.hideActionsButtons();
var ids = $.fn.playlistManager.setSelectedDefault(container);
UserPlayList.ChangeRateGroupMusics("default", ids);
var count = ids.split(',');
sonora.playlistActions.clearAllSelected(container);
if (!count) {
count = 0;
} else {
if (count.length) {
count = count.length - 1;
} else {
count = 0;
}
}
msg = count + " músicas adicionadas em sua biblioteca";
sonora.overlays.showActionButtonsConfirmation($(".moreActions_button").offset(), msg);
});
},
bindActionsForSelect: function(container) {
var musics = [];
$("div.buttons_container fieldset.selec").unbind("click").click(function(e) {
if ($(this).find("input:checked").length == 0) {
sonora.playlistActions.clearAllSelected(container);
} else {
$(container).playlistManager({ action: 'CheckAll' });
}
});
$("a.unselect_all").click(function(e) {
e.preventDefault();
$("div.buttons_container fieldset.selec").find("input:checked").each(function() { this.checked = false; });
sonora.playlistActions.clearAllSelected(container);
});
$("a.select_songlike, .select_music_container_disc .select_songlike").unbind("click").click(function(e) {
e.preventDefault();
$(container).playlistManager({ action: 'CheckLike' });
});
$("a.select_all, .select_music_container_disc .select_all, #SelectInfo a.select_all").unbind("click").click(function(e) {
e.preventDefault();
sonora.playlistActions.hideActionsButtons();
$(container).playlistManager({ action: 'CheckAll' });
});
$(".selec input").unbind("click").click(function(e) {
container = sonora.playlistActions.getContainer();
if ($(this).attr('checked') == true) {
$(container).playlistManager({ action: 'CheckAll' });
} else {
$(container).playlistManager({ action: 'CheckNone' });
}
});
$(".select_music_container_disc .select_most_listened").click(function(e) {
e.preventDefault();
$(container).playlistManager({ action: 'CheckMostListened' });
});
$("a.select_songunlike").click(function(e) {
e.preventDefault();
$(sonora.mysonora.getCurrentContainer()).playlistManager({ action: 'CheckDislike' });
});
$("a.select_songunrated").unbind("click").click(function(e) {
e.preventDefault();
$(container).playlistManager({ action: 'CheckDefault' });
});
$("#info_more_actions a.unselect_all").unbind("click").click(function(e) {
e.preventDefault();
sonora.overlays.hideOptionsOverlay();
sonora.playlistActions.clearAllSelected(container);
});
$("#addToSequencePlay").unbind("click").click(function(e) {
var i = 0;
container = sonora.playlistActions.getContainer();
if ($('#hdnPlaySequenceAll').val() == 'true') {
$(container).playlistManager({ action: 'CheckAll' });
}
musics = sonora.playlistActions.getSelectedCheck(container);
if (musics.length > 0) {
Player.addMusic(musics);
}
sonora.playlistActions.setAddMessages('#AddPlayerMessage', $('.add_button').offset(), musics, 1200);
});
$("#addToMyLibrary").unbind("click").click(function(e) {
var i = 0;
container = sonora.playlistActions.getContainer();
if ($('#addToMyLibrary').find('#myLibraryAll').length > 0 && $('#myLibraryAll').val() == 'true') {
$(container).playlistManager({ action: 'CheckAll' });
}
musics = sonora.playlistActions.getSelectedCheck(container);
if (musics.length > 0) {
for (i == 0; i < musics.length; i++) {
UserPlayList.AddMusicsUserLibraryFromArtist(musics[i]);
}
}
var offset = $('.add_button').offset()
if (offset.left == 0) {
offset = $('#myHystoryButtons .add_button').offset();
}
sonora.playlistActions.setAddMessages('#AddMyLibraryMessage', offset, musics);
});
$("#addToPlay").unbind("click").click(function(e) {
var i = 0;
container = sonora.playlistActions.getContainer();
if ($('#hdnPlayAll').val() == 'true') {
$(container).playlistManager({ action: 'CheckAll' });
}
musics = sonora.playlistActions.getSelectedCheck(container);
if (musics.length > 0) {
Player.playMusic(musics, function(mediaItemObject) { });
}
var offset = $('.add_button').offset()
if (offset.left == 0) {
offset = $('#myHystoryButtons .add_button').offset();
}
sonora.playlistActions.setAddMessages('#AddPlayerMessage', offset, musics, 2000);
});
if (sonora.user.loggedIn) {
$(".down_button").unbind("click").click(function(e) {
container = sonora.playlistActions.getContainer();
sonora.overlays.currentOverlay = $("#BuyPlayerUserNotLogged");
sonora.overlays.showOverlayShiv();
sonora.overlays.currentOverlay.show();
var offset = $('.down_button').offset()
if (offset.left == 0) {
offset = $('#myHystoryButtons .down_button').offset();
}
sonora.overlays.positionOverlay(offset);
var canSellIndividually = 0;
var cost = 0;
var cont = 0;
var contTotal = $(container + " tbody tr td input.check_icon").length;
$(container + " tbody tr:not([id^='clone_list_item'])").each(function() {
var linha = $(this);
linha.find("td input.check_icon:checked").each(function() {
var href = linha.find(".buy_icon").attr("href");
href = href.split("#")[1];
href = href.split("/");
if (!isNaN(href[3])) {
cost += parseFloat(href[3]);
}
else {
$(container).find("tr[id=" + $(this).attr("value") + "] *").css("color", "#FF0000").css("text-decoration", "none").css("font-weight", "bold");
canSellIndividually++;
console.info("LINHA --> " + cont + " --> ");
}
cont++;
});
});
if (sonora.artist_details.isRadioView && cost == 0) {
$(container).playlistManager({ action: 'CheckAll' });
$(container + " tbody tr").each(function() {
var linha = $(this);
linha.find("td input.check_icon:checked").each(function() {
cont++;
var href = linha.find(".buy_icon").attr("href");
href = href.split("#")[1];
href = href.split("/");
if (!isNaN(href[3])) {
cost += parseFloat(href[3]);
}
else {
$(container).find("tr[id=" + $(this).attr("value") + "] *").css("color", "#FF0000").css("text-decoration", "none").css("font-weight", "bold");
canSellIndividually++;
}
});
});
}
cost = Math.round(cost * 100) / 100;
if (((!isNaN(parseFloat(cost)) && (parseFloat(cost)) > 0 || !isNaN(cost)) && cont > 0) || sonora.artist_details.isAlbumView || sonora.artist_details.isRadioView) {
var costParts = (cost + "").split(".");
if (costParts.length == 1)
costParts[1] = "00";
if (costParts[1].length == 1)
costParts[1] += "0";
cost = costParts.join(",");
$('.close_link').unbind('click').click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
});
var albumPrice = $("#album_price").text().replace(",", ".");
if (!sonora.artist_details.isAlbumView && canSellIndividually == 0) {
sonora.playlistActions.showPrice(cost);
}
if (sonora.artist_details.isAlbumView && albumPrice != "" && contTotal == cont) {
cost = albumPrice;
sonora.playlistActions.showPrice(cost);
console.info(1)
}
else if (sonora.artist_details.isAlbumView && albumPrice != "" && canSellIndividually == 0) {
sonora.playlistActions.showPrice(cost);
console.info(3)
}
$(".firstname_class").html(sonora.user.firstName);
if (sonora.user.user.subscriptionType < 2) {//panga
$("#toDownload").hide();
$("#toUpdateSubscribe").show()
$("#BuyPlayerUserNotLogged ").css("height", "125px");
}
else {
$("#BuyPlayerUserNotLogged ").css("height", "145px");
$("#toDownload").show();
$("#toUpdateSubscribe").hide()
}
console.info("canSellIndividually " + canSellIndividually)
if (canSellIndividually > 0) {
$("#buyContainer").hide();
$("#buyContainerBlocked").html("As músicas destacadas em vermelho não podem ser baixadas separadamente, para baixa-las acesse o álbum da música e clique em baixar.");
$("#buyContainerBlocked").show();
}
else {
$("#buyContainerBlocked").html("&nbsp;");
$("#buyContainer").show();
}
$('.buyAddShoppingCart').unbind('click').click(function() {
var musics = [];
var musictypes = '';
var i = 0;
musics = sonora.playlistActions.getSelectedCheck(container);
for (i == 0; i < musics.length; i++) {
musictypes += '1,';
}
ShoppingCart.add(musics, musictypes);
sonora.playlistActions.setAddMessages('#BuyShoppingCartOverlay', $('.add_button').offset(), musics);
});
$('.buyShowUpgradeAccount').unbind('click').click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
SWFAddress.setValue('/AtualizacaoConta');
});
}
else {
sonora.playlistActions.hideShiv();
sonora.artist_details.setBuyButton($(this));
}
});
}
},
showPrice: function(cost) {
$('#BuyPlayerUserNotLogged').find('span.BuyButtonValue').each(function() { $(this).html('R$ ' + cost); });
},
bindActionsForHover: function(container) {
$(".music_more_actions li,.actions_box li,.my_music_actions a").hover(
function() {
$(this).css({ background: "#FFFCDF" })
},
function() {
$(this).css({ background: "transparent" })
});
},
hideShiv: function() {
if (sonora.overlays.currentOverlay != null) {
sonora.overlays.currentOverlay.hide();
$('.buttons_container').find('a').each(function() {
if ($(this).hasClass('add_button') && $(this).hasClass('small_loading_icon')) {
$(this).removeClass("small_loading_icon");
}
});
}
},
setAddMessages: function(container, position, musics, time) {
if (typeof (time) == 'undefined' || typeof (time) == undefined || time == null)
time = 5500;
sonora.overlays.currentOverlay.hide();
sonora.overlays.currentOverlay = $("#AddMessages");
$("#AddMessages div").hide();
$(container).show();
sonora.overlays.showOverlayShiv();
sonora.overlays.currentOverlay.show();
sonora.overlays.positionOverlay(position);
setTimeout(function() { sonora.overlays.currentOverlay.hide(); sonora.overlays.hideOverlayShiv(); $(container).playlistManager({ action: 'CheckNone' }); }, time);
$('#AddMessages div.close_btn').css("display", "block");
$('#AddMessages div.close_btn *').css("display", "block");
$('.close_link').unbind('click').click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
$(container).playlistManager({ action: 'CheckNone' });
});
$('.goToMySonora').unbind('click').click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
SWFAddress.setValue('/meusonora');
});
$('.listenMyMusics').unbind('click').click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
Player.playMusic(sonora.playlistActions.getSelectedCheck(sonora.playlistActions.getContainer()), function(mediaItemObject) { });
$("#album_table").playlistManager({ action: 'CheckNone' });
$("#mymusic_table").playlistManager({ action: 'CheckNone' });
});
$('.listenPlayLists').unbind('click').click(function() {
var playlistId = 0;
if ($(this).parent().find('#hdnPlaylistId').eq(0).val().length > 0)
playlistId = $(this).find('#hdnPlaylistId').eq(0).val();
Player.playMusic(sonora.playlistActions.getSelectedCheck(sonora.playlistActions.getContainer()), function(mediaItemObject) { });
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
$("#album_table").playlistManager({ action: 'CheckNone' });
$("#mymusic_table").playlistManager({ action: 'CheckNone' });
});
$('.buyShowShoppingCart').unbind('click').click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
SWFAddress.setValue('/ShoppingCart/Basket');
});
$('.buyShowUpgradeAccount').unbind('click').click(function() {
sonora.overlays.currentOverlay.hide();
sonora.overlays.hideOverlayShiv();
SWFAddress.setValue('/AtualizacaoConta');
});
var contMusics = musics.length;
contMusics = (contMusics < 0) ? 0 : contMusics;
$('#AddMessages').find('span.AddSpan').each(function() { $(this).html(contMusics + ' m&uacute;sicas adicionadas'); });
$(".play_button").removeClass("small_loading_icon");
},
getSelectedCheck: function(container) {
var musics = [];
$(container + " tbody tr").each(function() {
var linha = $(this);
linha.find("td input.check_icon:checked").each(function() {
if (!isNaN(linha.attr('id')))
musics.push(linha.attr("id"));
});
});
return musics;
},
getContainer: function() {
var container = '';
$('#details_page').find('table').each(function() {
if ($(this).css('display') != 'none') {
container = '#' + $(this).attr('id');
return false;
}
});
if (container.length == 0) {
$('#results').find('table').each(function() {
if ($(this).css('display') != 'none') {
container = '#' + $(this).attr('id');
return false;
}
});
}
return container;
}
}
sonora.player =
{
PLAYING: "playing",
STOPPED: "stopped",
PAUSED: "paused",
currentSong: 0,
time: 0,
duration: 0,
volume: 50,
state: null,
timerId: null,
currentSongLength: 0,
isFlashReady: false,
isPopUp: false,
isActualPlayerReady: false,
seekOnPlay: null,
stopParent: false,
popUpPlayer: null,
unloading: false,
tellParentWhenReady: true,
songToMediaunbound: 0,
init: function() {
this.isActualPlayerReady = true;
sonora.broadcaster.addListener(sonora.events.LOGGED_OUT, function() { sonora.player.reset(); });
sonora.broadcaster.addListener(sonora.events.LOGGED_IN, function() {
sonora.player.reset();
});
$(window).bind("onbeforeunload", function(e) { sonora.player.onBeforeUnload(e); });
$(window).unload(function(e) { sonora.player.onUnload(e); });
Player.addStateChangeCallback(function(state) {
var e = new Object();
switch (state) {
case 1:
case 2:
e.type = sonora.events.PLAYER_STOPPED;
sonora.player.clearTimer();
sonora.user.stopKeepLoggedInInterval();
break;
case 3:
sonora.user.startKeepLoggedInInterval();
e.type = sonora.events.PLAYER_STARTED;
if (sonora.player.seekOnPlay != null) {
var newTime = 0;
if (!sonora.player.isPopUp) {
try {
if (sonora.player.popUpPlayer && sonora.player.popUpPlayer.sonora) {
newTime = sonora.player.popUpPlayer.sonora.player.time;
}
} catch (e) {
sonora.player.popUpPlayer = null;
}
}
else
newTime = window.opener.sonora.player.time;
sonora.player.seek((((newTime + timeDiff.getDiff()) / 1000) / sonora.player.currentSongLength) * 100);
sonora.player.seekOnPlay = null;
sonora.player.stopParent = true;
}
else {
sonora.player.updatePlayhead();
if (!sonora.player.timerId) {
sonora.player.timerId = setInterval("sonora.player.updatePlayhead()", 1000);
}
}
if (window.opener && window.location.href.indexOf('external=true') < 0) {
}
if (sonora.player.isPopUp && sonora.player.stopParent && window.opener && window.opener.sonora) {
sonora.player.stopParent = false;
sonora.player.setVolume(50);
window.opener.sonora.player.stop();
var e2 = {};
e2.type = sonora.events.PLAYER_POPUP_PLAYER_STARTED;
window.opener.sonora.broadcaster.dispatchEvent(e2.type, e2);
window.opener.OldPlayer = window.opener.Player;
window.opener.Player = Player;
}
else if (sonora.player.stopParent && sonora.player.popUpPlayer != null) {
try {
if (sonora.player.popUpPlayer.sonora != null)
sonora.player.popUpPlayer.sonora.player.close();
}
catch (e) {
}
sonora.player.popUpPlayer = null;
sonora.player.stopParent = false;
sonora.player.setVolume(50);
}
break;
case 4:
if (sonora.player.seekOnPlay != null) {
sonora.player.setVolume(0);
timeDiff.setStartTime();
}
sonora.player.bufferStart();
break;
}
if (e.type) {
sonora.broadcaster.dispatchEvent(e.type, e);
}
});
Player.addMediaChangeCallback(function(newMediaItem) {
if (newMediaItem == null)
return;
if (!playerSonora.isChangeUnattended) {
playerSonora.isChangeUnattended = true;
}
if (sonora.player.isPopUp && SWFAddress.getParameter('playlistId') > 0) {
sonora.metrics.playlistId = SWFAddress.getParameter('playlistId');
sonora.metrics.playlistTitle = SWFAddress.getParameter('playlisTitle');
sonora.metrics.playlistType = SWFAddress.getParameter('playlistType');
}
if (sonora.player.isPopUp && sonora.player.seekOnPlay == null && sonora.ads.popupSponsor.length == 0) {
sonora.ads.refreshAllAds(newMediaItem.contentId);
}
else {
if (sonora.player.isPopUp && sonora.player.seekOnPlay == null && sonora.ads.popupSponsor.length > 0) {
sonora.ads.refreshAllAds();
}
}
songToMediaunbound = newMediaItem.contentId;
for (var tmp in newMediaItem) {
}
if (newMediaItem.rating == null)
newMediaItem.rating = 0;
if (newMediaItem.price == null)
newMediaItem.price = -1;
sonora.player.time = 0;
var e = new Object();
e.type = sonora.events.PLAYER_SONG_CHANGED;
e.data = newMediaItem;
sonora.broadcaster.dispatchEvent(e.type, e);
if (newMediaItem.spot) {
e = new Object();
e.type = sonora.events.PLAYER_ADVERTISEMENT_START;
sonora.broadcaster.dispatchEvent(e.type, e);
}
sonora.player.currentSongLength = newMediaItem.duration;
if (!sonora.player.queue.isRelated) {
sonora.player.queue.updateQueue(PlaylistHandler.getItems());
}
else {
sonora.player.queue.showRelated(newMediaItem.contentId);
}
try {
sonora.player.queue.setCurrentPage();
}
catch (e) {
return false;
}
});
Player.addPlaylistChangedCallback(function(playListItems) {
if (!sonora.player.queue.isRelated) {
sonora.player.queue.updateQueue(PlaylistHandler.getItems());
}
});
Player.addPositionChangeCallback(function(duration, position) {
sonora.player.duration = Math.round((duration) * 1000);
sonora.player.time = Math.round((position) * 1000);
if (!sonora.player.timerId) {
sonora.player.timerId = setInterval("sonora.player.updatePlayhead()", 1000);
}
});
if (this.isFlashReady && this.isPopUp) {
this.checkForURLParams();
if (this.tellParentWhenReady && window.opener && window.opener.sonora) {
window.opener.sonora.player.popUpIsReady(window);
}
}
},
checkForURLParams: function() {
var search = document.location.search;
if (search.length > 0) {
search = search.substr(1);
var parts = search.split("&");
var urlParams = {};
for (var i = 0; i < parts.length; i++) {
var part = parts[i];
var partParts = part.split("=");
urlParams[partParts[0]] = partParts[1];
}
if (typeof (urlParams["external"]) != 'undefined' && urlParams["external"] != null && urlParams["external"] == "false") {
this.tellParentWhenReady = true;
}
else {
if (urlParams["type"] && urlParams["ids"]) {
switch (urlParams["type"]) {
case "EDITORPLAYLIST":
Player.playEditorPlaylist(urlParams["ids"]);
break;
case "USERPLAYLIST":
Player.playUserPlaylist(urlParams["ids"]);
break;
case "MUSIC":
Player.playMusic(urlParams["ids"]);
break;
case "CD":
Player.playAlbum(urlParams["ids"]);
break;
}
this.tellParentWhenReady = false;
if (!$.browser.msie) {
window.resizeTo(830, 560);
}
else {
if (sonora.getInternetExplorerVersion() < 8) {
window.resizeTo(855, 540);
window.setTimeout('window.resizeTo(855, 540)', 1500);
}
else {
window.resizeTo(855, 570);
window.setTimeout('window.resizeTo(855, 570)', 1500);
}
}
}
}
}
},
popupConfirm: function() {
},
onBeforeUnload: function(e) {
unloading = true;
if (!this.isPopUp) {
this.popupConfirm();
}
return false;
},
onUnload: function(e) {
e.preventDefault();
if (this.unloading) {
}
else if (!this.isPopUp) {
this.popupConfirm();
}
return false;
},
flashReady: function() {
this.isFlashReady = true;
if (this.isActualPlayerReady && this.isPopUp) {
this.checkForURLParams();
if (this.tellParentWhenReady && window.opener && window.opener.sonora)
window.opener.sonora.player.popUpIsReady(window);
}
return true;
},
flashCheckIsPopUp: function() {
return this.isPopUp;
},
popUpInit: function() {
this.isPopUp = true;
sonora.parentWindow = window.opener;
sonora.player.popUpQueue.init();
sonora.player.queue = sonora.player.popUpQueue;
if (sonora.ads.popupSponsor.length == 0) {
sonora.ads.refreshAllAds(sonora.player.currentSong);
}
else {
this.checkForURLParams();
if (this.tellParentWhenReady)
sonora.ads.refreshAllAds();
}
$(window).unbind("unload").unload(function(e) {
if (window.opener && window.opener.sonora && window.opener.sonora.player.popUpPlayer) {
e.preventDefault();
window.opener.sonora.player.closePopUp();
}
});
},
popUpIsReady: function(popup) {
if (sonora.user.isLoggedIn()) {
popup.sonora.user.login(sonora.user.user);
popup.sonora.user.displayUserInfo(sonora.user.user);
}
popup.playlistSonora = playlistSonora;
popup.playerSonora.setCurrentPlaylist(popup.playlistSonora);
popup.sonora.player.seekOnPlay = this.time;
popup.sonora.player.play(Player.getCurrentIndex());
this.popUpPlayer = popup;
},
closePopUp: function() {
try {
var e = new Object();
e.type = sonora.events.PLAYER_POPPED_IN;
if ($.browser.msie) {
e.data = 3;
}
sonora.broadcaster.dispatchEvent(e.type, e);
if (OldPlayer)
Player = OldPlayer;
if (this.popUpPlayer && this.popUpPlayer.sonora) {
playerSonora.setCurrentPlaylist(this.popUpPlayer.playlistSonora);
this.seekOnPlay = this.popUpPlayer.sonora.player.time;
}
else {
this.popUpPlayer = null;
}
}
catch (e) {
this.popUpPlayer = null;
}
this.play(Player.getCurrentIndex());
},
close: function() {
window.close();
},
clearTimer: function() {
clearInterval(this.timerId);
this.timerId = null;
},
reset: function() {
this.clearTimer();
this.state = this.STOPPED;
this.currentSong = 0;
this.time = 0;
},
pause: function() {
Player.pause();
this.clearTimer();
},
mute: function() {
Player.setVolume(0);
},
unmute: function() {
Player.setVolume(this.volume);
},
getPlayheadPercent: function() {
var t = this.time;
var d = this.currentSongLength;
var p = t / d;
return p;
},
stop: function() {
Player.stop();
this.clearTimer();
this.time = 0;
},
previous: function() {
MediaUnbound.submitTrackEventSkip(songToMediaunbound);
this.clearTimer();
this.time = 0;
Player.previous();
},
next: function() {
MediaUnbound.submitTrackEventSkip(songToMediaunbound);
this.clearTimer();
this.time = 0;
Player.next();
},
play: function(index) {
if (index == null)
Player.play();
else
Player.playItem(index);
},
updatePlayhead: function() {
this.time += 1000;
var e = new Object();
e.type = sonora.events.PLAYER_PLAYHEAD_UPDATE;
e.data = { time: this.time, duration: this.duration };
sonora.broadcaster.dispatchEvent(e.type, e);
},
bufferStart: function() {
this.clearTimer();
var e = new Object();
e.type = sonora.events.PLAYER_BUFFERING;
sonora.broadcaster.dispatchEvent(e.type, e);
},
bufferEnd: function() {
this.play();
},
setVolume: function(v) {
Player.setVolume(v);
},
seek: function(p) {
p = this.currentSongLength * (p / 100)
this.time = parseInt(p * 1000);
this.clearTimer();
if (isNaN(p))
return;
Player.seek(p);
},
getQueue: function() {
},
showAddOverlayFromFlash: function(type, id, position) {
var posLeft = $("#player").position();
var posTop = $("#sonora_header").position();
position.left += posLeft.left;
position.top += posTop.top;
sonora.overlays.showAddOverlay(type, id, position);
},
showBuyOverlayFromFlash: function(type, id, price, position) {
var posLeft = $("#player").position();
var posTop = $("#sonora_header").position();
position.left += posLeft.left;
position.top += posTop.top;
sonora.overlays.showBuyOverlay(type, id, price, position);
},
showShareOverlayFromFlash: function(type, id, position) {
var posLeft = $("#player").position();
var posTop = $("#sonora_header").position();
position.left += posLeft.left;
position.top += posTop.top;
sonora.overlays.showShareOverlay(type, id, position);
},
rateSongFromFlash: function(songId, rating) {
switch (rating) {
case 1:
UserPlayList.SetSongLike(songId);
break;
case -1:
UserPlayList.SetSongUnLike(songId);
break;
case 0:
UserPlayList.SetSongDefault(songId);
break;
}
},
popout: function() {
PopupPlayer.OpenPopup();
}
}
sonora.songPlaying =
{
totalTime: 201000,
currentTime: 0,
isPlaying: false,
play: function() {
},
runPlaying: function() {
var e = {};
e.type = sonora.events.PLAYER_PLAYHEAD_UPDATE;
e.data = sonora.songPlaying.currentTime;
sonora.broadcaster.dispatchEvent(e.type, e);
sonora.songPlaying.isPlaying = true;
sonora.songPlaying.currentTime += +1000;
if (sonora.songPlaying.currentTime < sonora.songPlaying.totalTime) {
setTimeout("sonora.songPlaying.runPlaying()", 1000);
}
},
resetSong: function(newTrack, newTotalTime) {
sonora.songPlaying.totalTime = newTotalTime;
sonora.songPlaying.currentTime = 0;
if (sonora.songPlaying.isPlaying == false) this.runPlaying();
var e = {};
e.type = sonora.events.PLAYER_SONG_CHANGED;
e.data = newTrack;
sonora.broadcaster.dispatchEvent(e.type, e);
},
alert: function(whichAlert) {
console.log("sonora.songPlaying.alert()");
console.log("sonora.songPlaying.alert: whichAlert = " + whichAlert);
var e = {};
if (whichAlert == 0) e.type = sonora.events.playerUNKNOWNAlert;
if (whichAlert == 1) e.type = sonora.events.PLAYER_FREE_SONG_COMPLETE;
else if (whichAlert == 2) e.type = sonora.events.PLAYER_20HRS_COMPLETE;
sonora.broadcaster.dispatchEvent(e.type, e);
}
}
sonora.player.popUpQueue = {
init: function() {
console.log("sonora.player.popupQueue.init");
$(".limpar_lista_icon").click(function(e) {
PlaylistHandler.clear();
sonora.broadcaster.dispatchEvent(sonora.events.PLAYER_QUEUE_CLEARED, { type: sonora.events.PLAYER_QUEUE_CLEARED });
sonora.player.popUpQueue.show();
e.preventDefault();
return false;
});
$(".shuffle_icon").click(function(e) {
e.preventDefault();
PlaylistHandler.shuffle(true);
sonora.player.popUpQueue.show();
return false;
});
},
updateQueue: function(plItems, isRelated) {
if ($.browser.msie)
$("#playlist_content").attr("scrollTop", 0);
else
$("#playlist_content tbody").attr("scrollTop", 0);
console.log("sonora.player.updateQueue(" + plItems.length + " items)");
var queue_list = $("#playlist_content tbody");
queue_list.find("tr").each(function() {
if ($(this).attr("id") != "cloneable_list_item")
$(this).remove();
});
var queue_item_prototype = $("#cloneable_list_item")
var currentSong = Player.getCurrentIndex();
var currentSongItem;
if (plItems.length > 0) {
$("#queue_empty").hide();
$("#playlist_table").show();
for (var i = 0; i < plItems.length; i++) {
if (plItems[i].spot) {
continue;
}
var newItem = queue_item_prototype.clone();
newItem.attr("id", "queue_item_" + i);
newItem.find("div.song_name").replaceWith("<div class='song_name ellipsis'>" + plItems[i].title + "</div>");
newItem.find("div.artist_album_name").replaceWith("<div class='artist_album_name ellipsis'>" + plItems[i].artist + " / " + plItems[i].album + "</div>");
if (isRelated) {
newItem.find(".play_icons .play_icon").attr("href", "#ouvir/musica/" + plItems[i].contentId);
}
else {
newItem.find(".play_icons .play_icon").attr("href", "#ouvir/musica/" + i);
}
newItem.find(".play_icons .add_icon").attr("href", "#adicionar/musica/" + plItems[i].contentId);
newItem.find(".share_icons .share_icon").attr("href", "#enviar/musica/" + plItems[i].contentId);
newItem.find(".share_icons .buy_icon").attr("href", "#comprar/musica/" + plItems[i].contentId + "/" + plItems[i].price);
newItem.find(".black_heart_icon").attr("href", "#nao_gosto/" + plItems[i].contentId);
if (plItems[i].rating == -1) {
newItem.find(".black_heart_icon").addClass("black_heart_icon_on");
}
newItem.find(".red_heart_icon").attr("href", "#gosto/" + plItems[i].contentId);
if (plItems[i].rating == 1) {
newItem.find(".red_heart_icon").addClass("red_heart_icon_on");
}
if (isRelated) {
newItem.find(".delete_icon").remove();
}
else {
newItem.find(".delete_icon").attr("href", "#delete/" + i);
newItem.find(".delete_icon").click(function(e) {
e.preventDefault();
sonora.player.queue.deleteItem($(this).attr("href").split("/")[1]);
return false;
});
}
if (i == currentSong) {
newItem.addClass("selected");
currentSongItem = newItem;
}
if (i % 2 == 1) newItem.addClass("striped");
queue_list.append(newItem);
}
sonora.setupActionIcons("#playlist_content tbody");
$("#playlist_content tbody tr div.ellipsis").each(function() { sonora.utils.ellipsis($(this)); });
if (currentSong >= 2 && !isRelated && currentSongItem != "undefined") {
if ($.browser.msie)
$("#playlist_content").attr("scrollTop", (currentSong - 2) * currentSongItem.height());
else
$("#playlist_content tbody").attr("scrollTop", (currentSong - 2) * currentSongItem.height());
}
if (!isRelated) {
$("#playlist_content tbody").find(".play_icon").unbind("click").click(function(e) {
e.preventDefault();
var index = $(this).attr("href").split("/")[2];
Player.playItem(index);
return false;
});
}
else {
}
}
else {
$("#queue_empty").show();
$("#playlist_table").hide();
}
sonora.hideAJAXShiv();
},
deleteItem: function(queueItemIndex) {
PlaylistHandler.removeItem(queueItemIndex);
$("#playlist_content tbody tr").removeClass("striped");
$("#playlist_content tbody tr:odd").addClass("striped");
},
showRelated: function(songId) {
console.log("sonora.player.showRelated()");
sonora.showAJAXShiv($("#playlist_content"));
Music.GetRelatedMusics(0, 20, 'music', songId, function(response) {
sonora.player.popUpQueue.updateQueue(response["relatedMusics"], true);
});
},
show: function() {
console.log("sonora.player.show();");
sonora.showAJAXShiv($("#playlist_content"));
this.updateQueue(PlaylistHandler.getItems());
}
}
sonora.ads =
{
ads: [],
bypass: false,
location: '',
content: '',
demographics: {},
status: '',
contentId: 0,
popupSponsor: '',
beginTime: new Date().getTime(),
init: function() {
sonora.broadcaster.addListener(sonora.events.PAGE_LOADED, function(e) { sonora.ads.onPageLoad(e); });
},
onPageLoad: function(e) {
if (!sonora.player.isPopUp)
this.refreshAllAds();
},
getChannel: function() {
var hash = String(sonora.getHistory()).toLowerCase();
var main;
if (hash.indexOf("/") == 0) {
hash = hash.substr(1);
}
if (hash.indexOf("/") != -1) {
main = hash.split("/")[0];
}
else {
main = hash;
}
if (sonora.player.isPopUp) {
return "player";
}
else if (main == "mais-tocadas") {
return "maistocadas";
}
else if (main == "mais-tocados") {
return "maistocadas";
}
else if (main == "agora") {
return "agora";
}
else if (main == "meusonora") {
return "meusonora";
}
else if (main == "destaques") {
return "destaque";
}
else if (main == "cd") {
return "content";
}
else if (main == "artista") {
return "content";
}
else if (main == "todos-cds") {
return "content";
}
if (typeof (main) == "undefined" || (typeof (main) == "string")) {
main = "destaque";
}
return main;
},
getGenre: function() {
var url = location.href.split("/");
var genreName = url[url.length - 1];
var channel = this.getChannel();
if (genreName == "todos") {
return "";
}
else if (channel == "meusonora") {
return "";
}
else if (channel == "content") {
return "";
}
else if (channel == "player") {
return "";
}
return genreName;
},
getContentId: function() {
var localcontentid = 0;
if (this.contentId != 0) {
return this.contentId;
}
if (this.getChannel() != "player") {
var url = location.href.split("/");
if (url.length > 0) {
for (i = 0; i < url.length; i++) {
actualContext = url[i].toLowerCase();
if (actualContext == "cd" || actualContext == "artista") {
try {
localcontentid = url[i + 1];
}
catch (e) {
}
break;
}
}
}
}
else {
if (window.location.href.indexOf('external=true') < 0 && window.opener && window.opener.playerSonora)
localcontentid = window.opener.playerSonora.getCurrentMedia().contentId;
}
return localcontentid;
},
refreshAd: function(index) {
var ad = this.ads[index];
},
refreshAllAds: function(newContentId) {
for (var i = 0; i < this.ads.length; i++) {
refreshAd(i);
}
var channel = this.getChannel();
if (newContentId != null) {
this.contentId = newContentId;
}
else {
this.contentId = this.getContentId();
}
var iframename = "";
switch (channel) {
case "player":
iframename = "advertisement";
break;
case "content":
case "destaque":
case "agora":
iframename = "rail_banner_250x250";
break;
default:
iframename = "advertisement";
break;
}
var sponsorDiv = $('#' + iframename);
if (sponsorDiv != null && sponsorDiv != undefined && sponsorDiv.length > 0) {
var html = '';
var iframeSrc = sonora.ads.popupSponsor;
if (iframeSrc.length == 0) {
iframeSrc = '/Content/adIframe.htm';
}
html += "<iframe id=\"advertisementIFrame\" name=\"advertisementIFrame\" width=\"250\" height=\"250\" scrolling=\"no\" marginHeight=\"0\" marginWidth=\"0\" frameBorder=\"0\" src=\"" + iframeSrc + "\"></iframe>";
sponsorDiv.empty();
sponsorDiv.html(html);
}
else {
if (sponsorDiv != null && sponsorDiv != undefined) {
var html = '';
html += "<iframe name=\"" + iframename + "\" width=\"250\" height=\"250\" scrolling=\"no\" marginHeight=\"0\" marginWidth=\"0\" frameBorder=\"0\" src=\"" + this.popupSponsor + "\"></iframe>";
sponsorDiv.html(html);
}
}
var wizard_ad = $("#my_sonora_ad");
if (wizard_ad != null && wizard_ad != undefined) {
html = '';
html += "<iframe width=\"250\" scrolling=\"no\" height=\"250\" frameborder=\"0\" name=\"banner_iframe_250x250\" marginwidth=\"0\" marginheight=\"0\" src=\"/Content/adIframe.htm\"></iframe>";
wizard_ad.html(html);
}
if (channel == "agora" || channel == "destaque" || channel == "maistocadas") {
var sponsoredBy = $("#sponsored_by");
if (sponsoredBy != null && sponsoredBy != undefined) {
var htmlselo = '';
htmlselo += "<iframe id=\"sponsor_iframe\" name=\"sponsor_iframe\" height=\"39\" width=\"165\" scrolling=\"no\" marginHeight=\"0\" marginWidth=\"0\" frameBorder=\"0\" src=\"/Content/ADiframeSelo.htm\"></iframe>";
sponsoredBy.html(htmlselo);
}
}
if ($("#player_queue_container").css("display") != "none") {
var sponsorQueueDiv = $("#queue_234x60");
if (sponsorQueueDiv != null && sponsorQueueDiv != undefined) {
var htmlquene = '';
htmlquene += "<iframe name=\"queue_iframe_234x60\" width=\"234\" height=\"60\" scrolling=\"no\" marginHeight=\"0\" marginWidth=\"0\" frameBorder=\"0\" src=\"/Content/adIframeQuene.htm\"></iframe>";
sponsorQueueDiv.html(htmlquene);
}
}
},
rightLargeAds: function() {
if (document.body.clientWidth > 1155) {
tgm.ShowArea("b1280");
}
},
refreshRightLargeAds: function() {
var now = new Date().getTime();
var elapsed = (now - sonora.ads.beginTime) / 1000;
console.log('time ' + Math.round(elapsed));
if (Math.round(elapsed) >= 35) {
var holder = $("#right_large_ads");
sonora.ads.beginTime = new Date().getTime();
var banner = '<script language=\"javascript1.1\">var tgmKey \="br.novosonora.home\";</script>';
banner += '<script type=\"text/javascript\" language=\"javascript1.1\" src=\"http://www.terra.com.br/ads/tagman.js\"></script>';
banner += '<script type=\"text/javascript\">tgm.ShowArea("b1280");</script>';
$(holder).empty();
$(holder).html("");
}
var interv = window.setTimeout("sonora.ads.refreshRightLargeAds()", 1000)
}
}
sonora.user_details = {
playlistListHeight:0,
playlistListWindowHeight:569,
init:function()
{
sonora.user_details.calculatePlaylistListHeight();
if (this.playlistListWindowHeight < this.playlistListHeight) {
$("#details_page #playlist_scroll .scroll_line").show();
$("#details_page #playlist_scroll .scroll_line").slider({
startValue: 0,
handle: "#playlist_scroll_thumb",
slide: sonora.user_details.scrollPlaylistList
});
}
else
{
$("#details_page #playlist_scroll .scroll_line").hide();
}
},
scrollPlaylistList:function(e,ui)
{
var scrollTop = (sonora.user_details.playlistListHeight - sonora.user_details.playlistListWindowHeight)*(ui.value/100);
$("#details_page #playlist_list .scrollable_list").attr("scrollTop", scrollTop);
},
calculatePlaylistListHeight:function()
{
sonora.user_details.playlistListHeight = 0;
$("#details_page #playlist_list .scrollable_list .playlist_list_item").each(function(){
sonora.user_details.playlistListHeight+=$(this).outerHeight(true);
});
}
}
sonora.artist_details = {
playlistListHeight: 0,
playlistListWindowHeight: 569,
currentSelectedSong: null,
currentSelectedDiscography: null,
isAlbumView: false,
isRadioView: false,
isMixView: false,
radioId: 0,
artistId: 0,
albumId: 0,
init: function() {
sonora.broadcaster.addListener(sonora.events.HISTORY_CHANGED, function(e) {
sonora.artist_details.onHistoryChanged(SWFAddress.getValue());
});
},
parseURLDetails: function() {
var urlParts = "";
if (SWFAddress.getValue().toLowerCase().indexOf("radio?") >= 0 || SWFAddress.getValue().toLowerCase().indexOf("mix?") >= 0) {
urlParts = SWFAddress.getValue().toLowerCase().split("?");
switch (urlParts[0].replace("/", "")) {
case "mix":
this.isMixView = true;
this.isRadioView = false;
this.isAlbumView = false;
this.radioId = sonora.radio.GetUrlParameters('idRadio', SWFAddress.getValue());
break;
case "radio":
this.isRadioView = true;
this.isMixView = false;
this.isAlbumView = false;
this.radioId = sonora.radio.GetUrlParameters('idRadio', SWFAddress.getValue());
break;
default:
this.isAlbumView = true;
this.albumId = sonora.radio.GetUrlParameters('idRadio', SWFAddress.getValue());
this.artistId = 0;
break;
}
}
else {
urlParts = SWFAddress.getValue().toLowerCase().split("/");
if (urlParts[1] == "artista") {
this.isAlbumView = false;
this.isMixView = false;
this.isRadioView = false;
this.artistId = urlParts[2];
this.albumId = 0;
}
else if (urlParts[1] == "mix") {
this.isMixView = true;
this.isRadioView = false;
this.isAlbumView = false;
this.radioId = urlParts[4];
}
else if (urlParts[1] == "radio") {
this.isRadioView = true;
this.isMixView = false;
this.isAlbumView = false;
this.radioId = urlParts[4];
}
else {
this.isAlbumView = true;
this.albumId = urlParts[2];
this.artistId = 0;
}
}
},
pageLoad: function() {
sonora.currentObject = this;
this.parseURLDetails();
sonora.artist_details.calculateDiscographyHeight();
if (this.playlistListWindowHeight < this.playlistListHeight) {
$("#details_page #playlist_scroll .scroll_line").show();
$("#details_page #playlist_scroll .scroll_line").slider({
startValue: 0,
handle: "#playlist_scroll_thumb",
slide: sonora.artist_details.scrollPlaylistList
});
}
else {
$("#details_page #playlist_scroll .scroll_line").hide();
}
sonora.artist_details.setupCDOrderLinks();
$("#details_discography .discography_item a, #details_discography .discography_title a").unbind("hover").unbind("click");
$("#details_discography .discography_item a, #details_discography .discography_title a").hover(
function() { $(this).parent().addClass("over") },
function() { $(this).parent().removeClass("over") }
);
$("#details_discography .discography_item a, #details_discography .discography_title a").unbind("click").click(function(e) {
e.preventDefault();
$("#details_discography .discography_item, #details_discography .discography_title").removeClass("on");
if ($(this).parent().hasClass("discography_title")) {
$(this).find(".discography_item").addClass("on");
}
else {
$(this).parent().addClass("on");
}
var url = $(this).attr("href").replace(/\ /g, "%20");
if (url.indexOf("http://") == 0) {
url = url.substr(url.indexOf("/", 10));
}
if (url.indexOf("?") == -1) {
SWFAddress.setValue(url + "?,1,");
}
else {
SWFAddress.setValue(url + "&,1,");
}
$("#todosMaisTocados").css({ 'background-color': '#FF9900', 'color': '#FFFFFF' });
$("#todosRecentes").css({ 'background-color': '#6A665F', 'color': '#FFFFFF' });
window.setTimeout('sonora.artist_details.setupCDOrderLinks();', 1000);
return false;
});
if (this.isAlbumView) {
if (SWFAddress.getValue().indexOf('/Todos-CDS/') < 0) {
var selectedItem = $("#details_discography .discography_item a[href^=/Cd/" + this.albumId + "/]");
this.currentSelectedDiscography = selectedItem.parents("li");
this.currentSelectedDiscography.addClass("on");
}
else {
$(".discography_all_songs").eq(1).addClass("on");
sonora.artist_details.setupCDOrderLinks();
$("#todosMaisTocados").css({ 'background-color': '#FF9900', 'color': '#FFFFFF' });
$("#todosRecentes").css({ 'background-color': '#6A665F', 'color': '#FFFFFF' });
}
}
else if (this.isRadioView) {
}
else {
$(".discography_all_songs").removeClass("on");
if (SWFAddress.getValue().indexOf('/Todos-CDS/') < 0) {
$(".discography_all_songs").eq(0).addClass("on");
}
else {
$(".discography_all_songs").eq(1).addClass("on");
$("#todosRecentes").css({ 'background-color': '#FF9900', 'color': '#FFFFFF' });
$("#todosMaisTocados").css({ 'background-color': '#6A665F', 'color': '#FFFFFF' });
}
sonora.artist_details.setupCDOrderLinks();
}
this.setupSongListLinks();
if (sonora.radio.notLogged) {
sonora.radio.setupActionButtons();
}
sonora.artist_details.setupCDOrderLinks();
this.setupRelatedPaginationLinks();
sonora.setupBlockedPreview($("#infoBox,#blocked_media_overlay"));
$.fn.playlistManager.activateMoreActions("#album_table");
},
setupCDOrderLinks: function() {
$("#todosMaisTocados, #todosRecentes").hover(
function() { $(this).parent().addClass("over") },
function() { $(this).parent().removeClass("over") }
);
$("#todosMaisTocados").css({ 'background-color': '#FF9900', 'color': '#FFFFFF' });
$("#todosRecentes").css({ 'background-color': '#6A665F', 'color': '#FFFFFF' });
$("#todosMaisTocados").unbind('click').click(function(e) {
e.preventDefault();
sonora.artist_details.OrderLinks($(this));
});
$("#todosRecentes").unbind('click').click(function(e) {
e.preventDefault();
sonora.artist_details.OrderLinks($(this));
});
},
OrderLinks: function(element) {
var url = element.attr("href").replace(/\ /g, "%20");
var recente = false;
if (element.attr('title') == 'Recentes') {
url = url.replace('Todos-CDS/Artista/', 'Todos-CDS/Recentes/Artista/')
url = url + '?order=CdDateDesc';
recente = true;
}
else {
url = url + '?order=CdAudienceDesc';
recente = false;
}
sonora.loadFragment("#details_songs", url.replace("/#/", "/").replace("#", ""), "songs", function(textStatus) {
if (textStatus == "success") {
sonora.artist_details.setupCDOrderLinks();
if (recente) {
$("#todosRecentes").css({ 'background-color': '#FF9900', 'color': '#FFFFFF' });
$("#todosMaisTocados").css({ 'background-color': '#6A665F', 'color': '#FFFFFF' });
}
else {
$("#todosRecentes").css({ 'background-color': '#6A665F', 'color': '#FFFFFF' });
$("#todosMaisTocados").css({ 'background-color': '#FF9900', 'color': '#FFFFFF' });
}
}
else {
}
});
},
setupSongListLinks: function() {
$("#details_page table .music_title a").each(function() {
$(this).attr("orgHref", $(this).attr("href"));
$(this).attr("href", "");
$(this).unbind("click").click(function(e) {
e.preventDefault();
sonora.artist_details.selectSong($(this).parents("tr").attr("id"));
return false;
});
});
$("#details_page table tbody tr").click(function(e) {
sonora.artist_details.selectSong($(this).attr("id"));
});
$("#details_songs .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
if (url.indexOf("http://") == 0) {
url = url.substr(url.indexOf("/", 10));
}
if (url.indexOf("?") == -1)
SWFAddress.setValue(url + "?,1,");
else
SWFAddress.setValue(url + "&,1,");
return false;
});
$("#details_songs .buttons_container .play_button").unbind('click').click(function(e) {
e.preventDefault();
return sonora.playButton(e, $(this), false);
});
$("#details_songs .buttons_container .add_button").unbind("click").click(function(e) {
e.preventDefault();
var ret = sonora.addButton(e, $(this), false);
if (sonora.radio.notLogged) {
sonora.radio.setupActionButtons();
}
return ret;
});
$("#details_songs .buttons_container .moreActions_button").unbind("click").click(function(e) {
e.preventDefault();
var ret = sonora.actionsButton(e, $(this), false);
if (sonora.radio.notLogged) {
sonora.radio.setupActionButtons();
}
return ret;
});
$("#details_songs .buttons_container .down_button").click(function(e) {
e.preventDefault();
sonora.artist_details.setBuyButton($(this));
if (sonora.radio.notLogged) {
sonora.radio.setupActionButtons();
}
return false;
});
sonora.playlistActions.setupPlaylistButtons("#album_table");
$("#details_songs .buttons_container .share_button").click(function(e) {
e.preventDefault();
var musics = [];
if (sonora.artist_details.isAlbumView) {
sonora.overlays.showShareOverlay("album", sonora.artist_details.albumId, $(this).offset());
}
else if (sonora.artist_details.isRadioView) {
sonora.overlays.showShareOverlay("radio", sonora.artist_details.radioId, $(this).offset());
}
else if (sonora.artist_details.isMixView) {
sonora.overlays.showShareOverlay("mix", sonora.artist_details.radioId, $(this).offset());
}
else {
sonora.overlays.showShareOverlay("artist", sonora.artist_details.artistId, $(this).offset());
}
return false;
});
$.fn.playlistManager.activateMoreActions("#album_table");
},
setupRelatedPaginationLinks: function() {
$("#related .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
sonora.loadFragment("#related", url, "related", function(textStatus) {
if (textStatus == "success") {
sonora.artist_details.setupRelatedPaginationLinks();
}
else {
}
}, false);
return false;
});
$("#details_related_music .related_music_tools .play_button").click(function(e) {
e.preventDefault();
var musics = [];
$("#details_related_music .related_artists .song_name").each(function() {
var href = $(this).attr("href");
href = String(href.substr(href.indexOf("#")));
href = href.split("/")[1];
musics.push(href[5]);
});
Player.playMusic(musics, function(mediaItemObject) { });
return false;
});
$("#details_related_music .related_music_tools .add_button").click(function(e) {
e.preventDefault();
var musics = [];
$("#details_related_music .related_artists .song_name").each(function() {
var href = $(this).attr("href");
href = String(href.substr(href.indexOf("#")));
href = href.split("/")[1];
musics.push(href[5]);
});
sonora.overlays.showAddOverlay("song", musics, $(this).offset());
return false;
});
},
selectSong: function(id) {
$("#details_page table tbody tr#" + this.currentSelectedSong).removeClass("selected");
this.currentSelectedSong = id;
$("#details_page table tbody tr#" + this.currentSelectedSong).addClass("selected");
var hash = $("#details_page table tbody tr#" + this.currentSelectedSong + " .music_title a").attr("orgHref");
if (hash != 'undefined' && typeof hash != 'undefined') {
sonora.loadFragment("#related", hash.replace(",1,", ""), "related", function(textStatus) {
if (textStatus == "success") {
sonora.artist_details.setupRelatedPaginationLinks();
}
else {
}
}, false);
}
},
scrollPlaylistList: function(e, ui) {
var scrollTop = (sonora.artist_details.playlistListHeight - sonora.artist_details.playlistListWindowHeight) * (ui.value / 100);
$("#details_page .scrollable_list").attr("scrollTop", scrollTop);
},
calculateDiscographyHeight: function() {
sonora.artist_details.playlistListHeight = 0;
$("#details_page .scrollable_list .discography_item").each(function() {
sonora.artist_details.playlistListHeight += $(this).outerHeight(true);
});
},
getCdToRightBannerAdserver: function(url) {
ret = url.split("/");
return ret[2];
},
onHistoryChanged: function(hash) {
if (sonora.currentObject != this || sonora.handledLastRequest)
return;
hash = hash.replace(/\ /g, "%20");
var contentId = this.getCdToRightBannerAdserver(hash);
sonora.ads.refreshAllAds(contentId);
if (contentId != "Artista") {
sonora.metrics.trackPage("album/" + contentId);
}
var stub = sonora.history.last;
if (sonora.history.last.indexOf("?") > 0) {
stub = sonora.history.last.substr(0, sonora.history.last.indexOf("?"));
}
if (hash.indexOf(",1,") == -1)
return;
var hashParts = hash.split("?");
var urlParts = SWFAddress.getValue().split("?");
var urlAux = "";
if ($("#details_songs .top_pagination .hi").attr("title")) {
urlAux = $("#details_songs .top_pagination .hi").attr("title");
}
else {
if ($("#details_songs .standard_pagination a.radioPaginationButton").length > 0) {
sonora.radio.setupMusicsPagination();
return false;
}
}
var fragmentAuxiliar = "songs";
if (urlAux.length > 0) {
var radiomixAuxiliar = "Mix";
if (urlAux.indexOf("Radio") >= 0) {
radiomixAuxiliar = "Radio";
}
fragmentAuxiliar = radiomixAuxiliar + "List";
}
sonora.loadFragment("#details_songs", hash.replace(",1,", ""), fragmentAuxiliar, function(textSuccess) {
if (textSuccess == "success") {
if (urlAux.length > 0)
sonora.radio.setupSongListLinks(hash, fragmentAuxiliar);
else
sonora.artist_details.setupSongListLinks();
sonora.artist_details.parseURLDetails();
}
else {
}
}, true, true);
if (hash.indexOf(stub) == -1 && urlAux.length <= 0) {
sonora.loadFragment("#related", hash.replace(",1,", ""), "related", function(textSuccess) {
if (textSuccess == "success") {
sonora.artist_details.setupRelatedPaginationLinks();
}
else {
}
}, false, false);
}
},
setBuyButton: function(button) {
var offset = button.offset();
if (!sonora.isInWMP) {
if (sonora.artist_details.isAlbumView && $("#details_page table tbody tr td input.check_icon:checked").length == 0) {
sonora.overlays.showBuyOverlay("album", sonora.artist_details.albumId, $("#album_price").text().replace(",", "."), offset);
}
else if (sonora.artist_details.isRadioView && $("#details_page table tbody tr td input.check_icon:checked").length == 0) {
var musics = [];
var musicprice = 0;
PlaylistHandler.returnEditorPlaylist(sonora.artist_details.radioId, function(data) {
for (var i = 0; i < data.length; i++) {
musics.push(data[i].contentId);
musicprice += data[i].price;
}
sonora.overlays.showBuyOverlay("song", musics, musicprice, offset);
});
}
else {
var musics_line = [];
var musicprice = 0;
$("#details_page table tbody tr").each(function() {
var linha = $(this);
linha.find("td input.check_icon:checked").each(function() {
musics_line.push(linha.attr("id"));
var href = linha.find(".buy_icon").attr("href");
href = href.split("#")[1];
href = href.split("/");
musicprice += parseFloat(href[3]);
});
});
sonora.overlays.showBuyOverlay("song", musics_line, musicprice, offset);
}
} else {
var musics = [];
var titles = [];
var idsSelected = $.fn.playlistManager.getGroupSelectedIds("#album_table");
if (idsSelected == "") {
$("#details_page table tbody tr").each(function() {
musics.push($(this).attr("id"));
titles.push($(this).find(".music .music_title a").attr("title"));
});
}
else {
var data = idsSelected.split(',');
for (var i = 0; i < data.length; i++) {
if (data[i] > 0)
musics.push(data[i]);
}
$("#details_page table tbody tr").each(function() {
var exists = true;
for (var k = 0; k < musics.length; k++) {
if (musics[k] == $(this).attr("id")) {
exists = false;
}
}
if (!exists) {
titles.push($(this).find(".music .music_title a").attr("title"));
}
});
}
PrepareForMultipleDownload(musics, titles, sonora.user.user.id);
sonora.overlays.showDownloadManagerOverlay(musics.length, (sonora.user.user != null && sonora.user.user.id != null), offset);
}
}
}
sonora.player.queue =
{
isRelated: false,
transitioning: null,
position: 0,
count: 0,
playing: 0,
deleting: false,
currentPosition: 0,
pages: 0,
currentPage: 1,
init: function() {
$("#player_queue_container #player_queue .queue_header .close_link .close_icon").click(function(e) {
sonora.player.queue.close();
e.preventDefault();
return false;
});
$("#player_queue_container #player_queue .queue_header .limpar_lista_icon .limpar_lista").click(function(e) {
sonora.player.queue.clear();
e.preventDefault();
return false;
});
$("#player_queue_container #player_queue .queue_header .shuffle_icon .shuffle").click(function(e) {
sonora.player.queue.shuffle();
e.preventDefault();
return false;
});
$("#queue_area .next_button").find('span').eq(0).html('1');
$("#queue_area .prev_button").find('span').eq(0).html('1');
},
onScrollComplete: function(item) {
var itemMultiplier = 3;
if (sonora.user && sonora.user.user && sonora.user.user.subscriptionType > 0) {
itemMultiplier = 4;
}
if (this.transitioning == "next") {
this.position++;
}
else if (this.transitioning == "prev") {
this.position--;
}
else {
this.position = item * parseInt(itemMultiplier);
}
this.transitioning = null;
},
getIsRelated: function() {
return this.isRelated;
},
showRelated: function(songId) {
this.isRelated = true;
$("#queue_content .scroll_content").empty();
$(".queue_header .shuffle_icon").hide();
$(".queue_header .limpar_lista_icon").hide();
$("#queue_content").attr("scrollLeft", 0);
if ($.browser.msie) {
$("#player_queue_container").show();
}
else {
$("#player_queue_container").slideDown();
}
sonora.showAJAXShiv($("#player_queue"));
Music.GetRelatedMusics(0, 20, 'music', songId, function(response) {
sonora.player.queue.updateQueue(response["relatedMusics"]);
});
if (sonora.ads.popupSponsor.length == 0)
sonora.ads.refreshAllAds(songId);
else
sonora.ads.refreshAllAds();
},
show: function() {
this.isRelated = false;
$("#queue_content .scroll_content").empty();
$(".queue_header .shuffle_icon").show();
$(".queue_header .limpar_lista_icon").show();
$("#queue_content").attr("scrollLeft", 0);
if ($.browser.msie) {
$("#player_queue_container").show();
}
else {
$("#player_queue_container").slideDown();
}
sonora.showAJAXShiv($("#player_queue"));
sonora.player.queue.updateQueue(PlaylistHandler.getItems());
sonora.ads.refreshAllAds();
},
shuffle: function() {
PlaylistHandler.shuffle(true);
$("#queue_content .scroll_content").empty();
$("#queue_content").attr("scrollLeft", 0);
sonora.player.queue.updateQueue(PlaylistHandler.getItems());
},
updateQueue: function(plItems) {
$("#album_table").playlistManager({ action: 'CheckNone' });
$(" #mymusic_table").playlistManager({ action: 'CheckNone' });
$(" #myhistory_table").playlistManager({ action: 'CheckNone' });
if (this.deleting) {
this.deleting = false;
return;
}
this.current = 0;
this.count = plItems.length;
var queue_item_prototype = $("#queue_item_prototype")
var queue_list = $("#queue_content .scroll_content")
queue_list.empty();
var currentSong = Player.getCurrentMedia();
var aux = 0;
var imageUrl;
var itemMultiplier = 3;
if (sonora.user && sonora.user.user && sonora.user.user.subscriptionType > 0) {
itemMultiplier = 4;
}
if (plItems.length > 0) {
for (var i = 0; i < plItems.length; i++) {
if (plItems[i].spot) {
aux++;
continue;
}
var newItem = queue_item_prototype.clone();
newItem.attr("id", aux);
imageUrl = plItems[i].cdCoverMed;
var img = new Image();
$(img).load(function() {
});
$(img).attr("src", imageUrl);
newItem.find(".logo img").attr("src", plItems[i].cdCoverMed);
newItem.find(".logo img").css("width", 50);
newItem.find(".logo img").css("height", 50);
newItem.children().find(".song_name").text(plItems[i].title);
newItem.children().find(".song_name").attr("href", "#" + plItems[i].musicUrl);
newItem.children().find(".album_name").text(plItems[i].album);
newItem.children().find(".album_name").attr("href", "#" + plItems[i].albumUrl);
newItem.children().find(".artist_name").text(plItems[i].artist);
newItem.children().find(".artist_name").attr("href", "#" + plItems[i].artistUrl);
if (this.isRelated) {
newItem.children().find(".tools .play_icon").attr("href", "#ouvir/musica/" + plItems[i].contentId);
}
else {
newItem.children().find(".tools .play_icon").attr("href", "#ouvir/musica/" + i);
}
newItem.children().find(".tools .add_icon").attr("href", "#adicionar/musica/" + plItems[i].contentId);
newItem.children().find(".tools .buy_share .share_icon").attr("href", "#enviar/musica/" + plItems[i].contentId);
newItem.children().find(".tools .buy_share .buy_icon").attr("href", "#comprar/musica/" + plItems[i].contentId + "/" + plItems[i].price);
if (this.isRelated) {
$("#queue_content .scroll_content .queue_item .close_icon").remove();
}
if (currentSong && plItems[i].contentId == currentSong.contentId) {
newItem.addClass("current_song");
this.currentPosition = i - aux;
}
queue_list.append(newItem);
}
this.registerItemEvents();
sonora.setupActionIcons("#queue_content .scroll_content");
if (this.isRelated) {
$("#player_queue .queue_header .title").hide();
}
else {
$("#player_queue .queue_header .title").show();
$("#queue_content .scroll_content").
find(".tools .play_icon").
unbind("click").click(function(e) {
e.preventDefault();
var index = $(this).attr("href").split("/")[2];
Player.playItem(index);
return false;
});
}
if (!this.isRelated) {
sonora.player.queue.scrollQueueForCurrentSong();
}
if (plItems.length > itemMultiplier) {
$("#queue_area .prev_button,#queue_area .next_button").css("visibility", "visible");
}
$("#player_queue_container .queue_header .shuffle_icon").css("visibility", "visible");
$("#player_queue_container .queue_header .limpar_lista_icon").css("visibility", "visible");
$("#queue_empty").hide();
$("#queue_content").show();
}
else {
$("#queue_area .prev_button,.next_button").css("visibility", "hidden");
$("#player_queue_container .queue_header .shuffle_icon").css("visibility", "hidden");
$("#player_queue_container .queue_header .limpar_lista_icon").css("visibility", "hidden");
$("#queue_empty").show();
$("#queue_content").hide();
}
window.setTimeout("sonora.player.queue.queuePagination();", 500);
sonora.hideAJAXShiv();
},
registerItemEvents: function() {
$("#player_queue_container #player_queue #queue_area #queue_content .scroll_content .queue_item .close_icon .close").click(function(e) { sonora.player.queue.deleteItem(($(this).parent()).parent()); e.preventDefault(); return false; });
},
scrollQueueForCurrentSong: function() {
var index = this.currentPosition;
var begin = 0;
var end = PlaylistHandler.getItems().length * 202;
var left = $("#queue_content").attr("scrollLeft");
left = (left % 202 > 0) ? (left / 202) + 202 : left; // calculate the real left to remove the positional errors due to scrolling
var currentPosition = index * 202;
if ((currentPosition - begin) < 606) {
left = begin;
} else if ((end - currentPosition) <= 606) {
left = end - 606;
} else {
left = currentPosition - 202;
}
if ($.browser.msie == true) $("#queue_content .scroll_content .queue_item .tools").hide();
$("#queue_content").animate({ scrollLeft: left }, 1000, '', function(e) {
if ($.browser.msie == true) $("#queue_content .scroll_content .queue_item .tools").show();
sonora.player.queue.onScrollComplete();
});
},
close: function() {
if ($.browser.msie) {
$("#player_queue_container").hide();
}
else {
$("#player_queue_container").slideUp();
}
this.isRelated = null;
this.publishEvent(sonora.events.PLAYER_QUEUE_CLOSED);
},
clear: function() {
PlaylistHandler.clear();
this.currentPage = 1;
this.isRelated = false;
this.transitioning = null;
this.position = 0;
this.count = 0;
this.playing = 0;
this.deleting = false;
this.currentPosition = 0;
this.pages = 0;
sonora.player.queue.publishEvent(sonora.events.PLAYER_QUEUE_CLEARED);
$("queue_content").empty();
sonora.radio.isSponsored = false;
},
deleteItem: function(queueItem) {
this.deleting = true;
PlaylistHandler.removeItem($("#player_queue .scroll_content .queue_item").index(queueItem));
$(queueItem).remove();
},
publishEvent: function(eventType, data) {
var e = new Object();
e.type = eventType;
if (data) {
e.data = data;
}
sonora.broadcaster.dispatchEvent(e.type, e);
},
setupQueuePagination: function() {
$('.genericLink_queue_pagination').unbind('click').click(function(e) {
e.preventDefault();
sonora.player.queue.currentPage = $(this).find('span').eq(0).html();
sonora.player.queue.showPagination($(this));
if (parseInt(sonora.player.queue.currentPage) > 1)
$("#queue_area .prev_button").find('span').eq(0).html('' + (parseInt(sonora.player.queue.currentPage) - 1));
else
$("#queue_area .prev_button").find('span').eq(0).html('1');
if (parseInt(sonora.player.queue.currentPage) < parseInt(sonora.player.queue.pages))
$("#queue_area .next_button").find('span').eq(0).html('' + (parseInt(sonora.player.queue.currentPage) + 1));
else
$("#queue_area .next_button").find('span').eq(0).html('' + sonora.player.queue.pages);
});
$("#queue_area .next_button").unbind('click').click(function(e) {
e.preventDefault();
if (parseInt(sonora.player.queue.currentPage) < parseInt(sonora.player.queue.pages))
$(this).find('span').eq(0).html('' + (parseInt(sonora.player.queue.currentPage) + 1));
else
$(this).find('span').eq(0).html('' + sonora.player.queue.pages);
sonora.player.queue.currentPage = parseInt($(this).find('span').eq(0).html());
$("#queue_area .prev_button").find('span').eq(0).html('' + (parseInt($(this).find('span').eq(0).html()) - 1));
sonora.player.queue.showPagination($(this));
});
$("#queue_area .prev_button").unbind('click').click(function(e) {
e.preventDefault();
if (sonora.player.queue.currentPage > 1)
$(this).find('span').eq(0).html('' + (parseInt(sonora.player.queue.currentPage) - 1));
else
$(this).find('span').eq(0).html('1');
sonora.player.queue.currentPage = parseInt($(this).find('span').eq(0).html());
$("#queue_area .next_button").find('span').eq(0).html('' + (parseInt($(this).find('span').eq(0).html()) + 1));
sonora.player.queue.showPagination($(this));
});
$('.disableLink').unbind('click');
},
showPagination: function(item) {
var oldTransitioning = 0;
$('.genericLink_queue_pagination').each(function() {
if (item.hasClass('selected'))
oldTransitioning = $(this).find('span').eq(0).html();
});
this.createElement();
var transitioning = item.find('span').eq(0).html();
var itemMultiplier = 3;
if (sonora.user && sonora.user.user && sonora.user.user.subscriptionType > 0) {
itemMultiplier = 4;
}
if (this.transitioning != transitioning && transitioning != oldTransitioning) {
this.transitioning = transitioning;
var totalListWidth = 0;
$("#queue_content .scroll_content .queue_item").each(function() {
totalListWidth += $(this).outerWidth(true);
});
var oldValue = $("#queue_content").attr("scrollLeft");
var newValue = ((202 * itemMultiplier) * (transitioning - 1));
if (newValue > (totalListWidth - 600)) {
if (transitioning % 2 == 0) {
if (itemMultiplier == 4)
newValue = totalListWidth - 560;
else
newValue = totalListWidth - 610;
}
else {
if (itemMultiplier == 4)
newValue = totalListWidth - 555;
else
newValue = totalListWidth - 605;
}
}
if (Math.abs(oldValue - newValue) < 20) {
return;
}
if ($.browser.msie == true) $("#queue_content .scroll_content .queue_item .tools").hide();
if (newValue != oldValue) {
$("#queue_content").animate({ scrollLeft: newValue }, 1000, '', function(e) {
if ($.browser.msie == true) $("#queue_content .scroll_content .queue_item .tools").show();
sonora.player.queue.onScrollComplete(transitioning);
});
}
}
if (parseInt($('.queue_item').length) > 5) {
Player.repeat();
}
return false;
},
queuePagination: function(item) {
$('#auxiliar_queue_pagination').html('');
$('#auxiliar_queue_pagination').empty();
var offset = 0;
var limit = 3;
if (sonora.user && sonora.user.user && sonora.user.user.subscriptionType > 0) {
limit = 4;
}
this.pages = Math.ceil(($('.queue_item').length - 1) / limit);
this.createElement(item);
this.showPagination($('#auxiliar_queue_pagination .selected'));
},
createElement: function() {
sonora.player.queue.pagination.init();
sonora.player.queue.pagination.Limit = (sonora.user && sonora.user.user && sonora.user.user.subscriptionType > 0) ? 4 : 3;
sonora.player.queue.pagination.Offset = ((sonora.player.queue.currentPage - 1) * sonora.player.queue.pagination.Limit);
sonora.player.queue.pagination.Count = ($('.queue_item').length - 1);
sonora.player.queue.pagination.Itens = 7;
var items = sonora.player.queue.pagination.getPagination();
if (items.length > 1) {
var html = '';
var contPages = 0;
for (contPages = 0; contPages < items.length; contPages++) {
html += '<a class="hs genericLink_queue_pagination';
if (items[contPages].Selected) {
html += ' selected';
}
if (items[contPages].Url.length == 0) {
html += ' disableLink';
}
html += '">';
html += '<span>';
html += items[contPages].Page;
html += '</span></a>';
}
$('#auxiliar_queue_pagination').html(html);
sonora.player.queue.setupQueuePagination();
$("#auxiliar_queue_pagination").centerInClient({ container: $('.standard_queue_pagination') });
}
},
verifyPage: function(value) {
var cont;
var itemMultiplier = 3;
if (sonora.user && sonora.user.user && sonora.user.user.subscriptionType > 0) {
itemMultiplier = 4;
}
for (cont = 1; cont <= this.pages; cont++) {
if (((202 * itemMultiplier) * cont) == value || ((202 * itemMultiplier) * cont) == (value + 2)) {
this.currentPage = (cont + 1);
this.createElement();
}
else {
if (this.pages == cont && ((202 * itemMultiplier) * cont) == value) {
this.currentPage = (cont);
this.createElement();
}
else {
if (value == 0) {
this.currentPage = 1;
this.createElement();
}
}
}
}
},
setCurrentPage: function() {
var itemMultiplier = 3;
var currentPage = 0;
if (sonora.user && sonora.user.user && sonora.user.user.subscriptionType > 0) {
itemMultiplier = 4;
}
var cont = -1;
$('#queue_content .scroll_content').find('.queue_item').each(function(e) {
cont++;
if ($(this).hasClass('current_song')) {
return false;
}
});
cont = (cont < 0) ? 0 : cont;
currentPage = (parseInt(cont / itemMultiplier) + 1) + '';
if (cont >= 0) {
if (currentPage > sonora.player.queue.currentPage) {
$('.standard_queue_pagination a.selected').removeClass('selected');
$('.standard_queue_pagination a').find('span').each(function(e) {
if ($(this).val() == currentPage) {
$(this).parent().addClass('selected');
}
});
}
}
sonora.player.queue.currentPage = parseInt(currentPage);
console.log(currentPage);
}
}
sonora.player.queue.pagination =
{
Offset: 0,
Limit: 0,
Count: 0,
Marker: 0,
Regular: true,
Itens: 0,
init: function() {
this.Offset = 0;
this.Limit = 0;
this.Count = 0;
this.Marker = true;
this.Regular = true;
this.Itens = 0;
},
getPagination: function() {
var pages = parseInt(Math.ceil(parseFloat(this.Count) / parseFloat(this.Limit)));
var currentPage = 1;
if (this.Limit > 0) {
currentPage = this.Offset / this.Limit + 1;
}
var i = 0;
var positions = 0;
var positionsMax = 0;
var multipleOfThree = (parseFloat(this.Itens) / 3.0 % 2 == 0 || (parseFloat(this.Itens) / 3.0) % 2 == 1) ? 0 : (parseFloat(this.Itens) / 3.0 % 2);
var multipleOfFour = (((parseFloat(this.Itens) / 4.0) % 2) == 0 || ((parseFloat(this.Itens) / 4.0) % 2) == 1) ? 0 : (parseFloat(this.Itens) / 4) % 2;
var numberPrime = sonora.player.queue.pagination.IsPrime(this.Itens);
var sevenCase = sonora.player.queue.pagination.IsSeven(this.Itens);
var start = 1;
var end = pages;
var paginas = new Array();
var item = new Object();
if (this.Itens <= pages) {
positionsMax = sonora.player.queue.pagination.getQtdItens(true);
positions = sonora.player.queue.pagination.getQtdItens(false);
}
else {
positions = 0;
}
if (this.Marker && positions > 0) {
if (currentPage <= positions) {
if (this.Itens % 2 != 0 && (sevenCase || !numberPrime) && multipleOfThree != 0)
end = (positionsMax * 2) + positionsMax;
else {
if ((multipleOfThree == 0 && this.Itens >= 9) || multipleOfFour == 0 || numberPrime)
end = (positionsMax * 2) + positionsMax + 1;
else
end = (positionsMax * 2) + positions;
}
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
item = new Object();
item.Page = "...";
item.Url = '';
item.Selected = false;
paginas.push(item);
start = pages - (positions - 1);
end = pages;
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
}
else if (currentPage > positions && currentPage < (pages - positionsMax - 1)) {
start = 1;
end = positions;
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
if (currentPage <= (positionsMax * 2)) {
start = positions + 1;
if (this.Itens % 2 != 0 && (sevenCase || !numberPrime) && multipleOfThree != 0)
end = (positionsMax * 2) + positionsMax;
else {
if ((multipleOfThree == 0 && this.Itens >= 9) || multipleOfFour == 0 || numberPrime)
end = (positionsMax * 2) + positionsMax + 1;
else
end = (positionsMax * 2) + positions;
}
}
else {
if ((currentPage - positionsMax) > 1) {
if (this.Itens % 2 != 0) {
start = currentPage - positionsMax;
end = currentPage + positionsMax;
}
else {
if (multipleOfFour == 0) {
start = currentPage - positions - 1;
end = currentPage + positionsMax + 1;
}
else {
start = currentPage - positions;
end = currentPage + positionsMax;
}
}
}
else {
start = 2;
end = currentPage + positionsMax + 1;
}
}
if (paginas.length >= 2 && (start.ToString() == paginas[(paginas.length - 1)].Page)) {
if (paginas.length > 2)
start++;
else
start = start + 2;
if (end < (pages - (positions - 1))) {
if (this.Itens % 2 == 0)
end++;
}
}
if (end == (pages - (positions - 1)))
end--;
if (start > (parseInt(paginas[(paginas.length - 1)].Page)) + 1) {
item = new Object();
item.Page = "...";
item.Url = '';
item.Selected = false;
paginas.push(item);
}
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
start = pages - (positions - 1);
end = pages;
if (start > (parseInt(paginas[(paginas.length - 1)].Page)) + 1) {
item = new Object();
item.Page = "...";
item.Url = '';
item.Selected = false;
paginas.push(item);
}
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
}
else {
start = 1;
end = positions;
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
item = new Object();
item.Page = "...";
item.Url = '';
item.Selected = false;
paginas.push(item);
if (multipleOfThree == 0)
start = pages - (positionsMax * 2) - positionsMax;
else {
if (multipleOfFour == 0)
start = pages - (positionsMax * 2) - positions - 1;
else
start = pages - (positionsMax * 2) - positions;
}
end = pages;
var sobra = pages - start + paginas.length;
if (sobra > this.Itens)
start = start + sobra - this.Itens;
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
}
}
else {
if (this.Itens <= pages) {
if (currentPage <= (pages - this.Itens) && currentPage == 1) {
start = currentPage;
end = currentPage + (this.Itens - 1);
}
else {
if (currentPage > 1) {
start = currentPage - (this.Itens / 2);
end = currentPage + (this.Itens / 2);
}
else {
start = ((currentPage - this.Itens) > 0) ? currentPage - (this.Itens / 2) : 1;
end = this.Itens;
}
}
if (end > pages) {
end = pages;
if (start > 1)
start--;
}
}
if (start < 1)
start = 1;
for (i = start; i <= end; i++) {
item = new Object();
item.Page = i + '';
item.Url = i + '';
item.Selected = (currentPage == i) ? true : false;
paginas.push(item);
}
}
return paginas;
},
getQtdItens: function(max) {
var dividendo = parseFloat(this.Itens - 1);
var divisor = parseFloat(4);
var quoeficiente = parseFloat((dividendo / divisor));
if (max) {
return parseInt(Math.ceil(quoeficiente));
}
else {
return parseInt(Math.floor(quoeficiente));
}
},
IsPrime: function(number) {
var cont = number - 1;
while (cont > 1) {
if (((parseFloat(number) / parseFloat(cont)) % 2 == 1.0) || ((parseFloat(number) / parseFloat(cont)) % 2 == 0))
return false;
cont--;
}
return true;
},
IsSeven: function(number) {
var seven = number;
while (seven > 7) {
seven = seven - 4;
}
if (seven == 7)
return true;
else
return false;
}
}
sonora.user_info =
{
}
sonora.search =
{
data: null,
init: function() {
sonora.broadcaster.addListener(sonora.events.HISTORY_CHANGED, function(e) { sonora.search.onHistoryChanged(SWFAddress.getValue()); });
},
pageLoad: function() {
sonora.currentObject = this;
this.setupSongPaginationLinks();
this.setupArtistPaginationLinks();
this.setupAlbumPaginationLinks();
this.setupDownloadButton();
sonora.setupBlockedPreview($("#infoBox,#blocked_media_overlay"));
sonora.explorer.setupAuxiliarBar();
},
setupDownloadButton: function() {
$(".album_cell .album_details a.download_icon").unbind("click").click(function(e) {
e.preventDefault();
var item = $(this)
var offset = item.offset();
var url = '';
var url = item.attr("href");
url = url.replace("http://wmp.sonora.terra.com.br/", "");
var urlParts = url.split("/");
musics = new Array();
titles = new Array();
switch (urlParts[1].toLowerCase()) {
case "album":
case "cd":
url = '/Media/List/Cd/' + urlParts[2];
break;
case "musica":
case "music":
case "song":
url = '/Media/List/Musics/' + urlParts[2];
break;
case "artista":
case "artist":
url = '/Media/List/Musics/';
cont = 0
$("#details_page table tbody tr").each(function() {
if (cont > 0) {
url += ",";
}
url += $(this).attr("id");
cont++;
});
break
case "radio":
if (sonora.artist_details.isMixView || $("#details_songs .buttons_container #type").val() == "PLAYLISTEDITOR") {
url = '/Media/List/PlaylistEditor/' + sonora.artist_details.radioId;
} else {
url = '/Media/List/GenreRadio/' + sonora.artist_details.radioId;
}
break;
case "mix":
if (sonora.artist_details.isMixView || $("#details_songs .buttons_container #type").val() == "PLAYLISTEDITOR") {
url = '/Media/List/PlaylistEditor/' + sonora.artist_details.radioId;
} else {
url = '/Media/List/GenreRadio/' + sonora.artist_details.radioId;
}
break;
}
objeto = $(this);
offset = objeto.offset();
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (json.length) // Is Array
{
for (var i = 0; i < json.length; i++) {
var mi = ParseMedia_Json(json[i]);
musics.push(mi.contentId);
titles.push((mi.title));
}
}
else // Single Music
{
var mi = ParseMedia_Json(json);
musics.push(mi.contentId);
titles.push((mi.title));
}
PrepareForMultipleDownload(musics, titles, sonora.user.user.id);
sonora.overlays.showDownloadManagerOverlay(musics.length, (sonora.user.user != null && sonora.user.user.id != null), offset);
}
});
return false;
});
},
setupSongPaginationLinks: function() {
$(".songs_header .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
if (url.indexOf("http://") == 0) {
url = url.substr(url.indexOf("/", 10));
}
if (url.indexOf("?") == -1)
SWFAddress.setValue(url + "?,2,");
else
SWFAddress.setValue(url + "&,2,");
return false;
});
},
setupArtistPaginationLinks: function() {
$(".other_artists_header .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
sonora.loadFragment(".artist_info", url, "artista", function(textStatus) {
if (textStatus == "success") {
sonora.search.setupArtistPaginationLinks();
}
else {
}
}, false);
return false;
});
},
setupAlbumPaginationLinks: function() {
$(".albums .standard_pagination a").unbind("click").click(
function(e) {
e.preventDefault();
var url = $(this).attr("href").replace(/\ /g, "%20");
sonora.loadFragment(".albums", url, "album", function(textStatus) {
if (textStatus == "success") {
sonora.search.setupAlbumPaginationLinks();
}
else {
}
}, false);
return false;
});
},
onHistoryChanged: function(hash) {
if (sonora.currentObject != this || sonora.handledLastRequest)
return;
if (hash.indexOf(",2,") == -1)
return;
var orgHash = hash;
hash = hash.replace(/\ /g, "%20");
sonora.loadFragment("#songs", hash.replace(",2,", ""), "musica", function(textStatus) {
if (textStatus == "success") {
sonora.search.setupSongPaginationLinks();
}
else {
}
}, false);
}
}
sonora.meu_sonora_dropdown = {
ddObj: null,
ddParent: null,
selectedItem: null,
shiv: null,
setup: function() {
$("body div:first").append("<div id='meu_sonora_dd_shield' class='shiv'></div>");
this.shiv = $("#meu_sonora_dd_shield");
this.ddParent = $("#explore_meu_sonora");
$(this.ddParent).hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
}
)
$(this.ddParent).click(function(e) {
sonora.meu_sonora_dropdown.show(e);
});
switch (sonora.user.user.subscriptionType) {
case 0:
var linkurl = '/AtualizacaoConta';
var linkname = '20h gr&aacute;tis / <span class="dropdown_change">alterar</span>';
break;
case 1:
var linkurl = '/AtualizacaoConta';
var linkname = 'Sonora Plus / <span class="dropdown_change">alterar</span>';
break;
case 2:
var linkurl = '/SonoraClub';
var linkname = 'Sonora Clube PC / <span class="dropdown_change">acessar</span>';
break;
case 3:
if (!sonora.isInWMP) {
var linkurl = '/SonoraClub';
linkname = 'Sonora Clube / <span class="dropdown_change">acesse</span>';
} else {
var linkurl = '/MinhaConta?master=MyAccount&pagina=2';
var linkname = '<span class="dropdown_change">gerenciador de downloads</span>';
}
break;
default:
var linkurl = '';
var linkname = '';
break;
} // end switch
if (linkurl.length > 0) {
$(".dummydropdown").remove();
$("#meu_sonora_dropdown").append('<li class="dummydropdown"><a href="' + linkurl + '">' + linkname + '</a></li>');
}
this.ddObj = $("#meu_sonora_dropdown");
$("#meu_sonora_dropdown a").click(function(e) {
e.preventDefault();
sonora.meu_sonora_dropdown.select($(this));
var url = $(this).attr("href");
if (url.indexOf("#ajuda") != -1) {
sonora.openHelp();
return false;
}
var loc = document.location.host;
if (url.indexOf(loc) > 0) {
url = url.substr(url.indexOf(loc) + String(loc).length + 1);
}
SWFAddress.setValue(url);
return false;
});
$("#meu_sonora_dropdown > li > a:odd").addClass("striped");
},
show: function(e) {
this.shiv.width($(document).width());
this.shiv.height($(document).height());
this.shiv.show();
this.shiv.unbind("click").click(function(e) {
e.preventDefault();
sonora.meu_sonora_dropdown.hide();
$(this).hide();
return false;
});
$(this.ddParent).unbind('click');
$(this.ddParent).addClass("selected");
this.ddObj.show();
e.stopPropagation();
if (window.event)
window.event.cancelBubble = true;
},
hide: function() {
this.ddObj.hide();
$(this.ddParent).unbind("click").click(function(e) {
sonora.meu_sonora_dropdown.show(e);
});
this.shiv.hide();
$("#selected_meu_sonora").unbind("click");
$(this.ddParent).removeClass("selected");
},
select: function(item) {
this.hide();
}
}
function hideObject(objeto) {
if ($(objeto).css("display") == "block") {
$('#upgrade_subscription_div').unblock();
$(objeto).hide("fast");
} else {
$('#upgrade_subscription_div').block({
message: $(objeto),
overlayCSS: { backgroundColor: '#FFF' }
});
$(objeto).css("top", "-325px");
$(objeto).css("margin-left", "-245px");
}
}
function hideSubscriptionPlan(selector) {
var div = $("<div>").css("background-color", "#FFF");
div.css("position", "absolute");
div.css("opacity", "0.7");
div.css("height", $(selector).css("height"));
div.css("width", $(selector).css("width"));
div.css("padding-left", $(selector).css("padding-left"));
div.css("padding-right", $(selector).css("padding-right"));
div.css("padding-top", $(selector).css("padding-top"));
div.css("padding-bottom", $(selector).css("padding-bottom"));
div.css("top", ($(selector).offset().top + 15));
div.css("left", ($(selector).offset().left - 15) );
div.html("&nbsp;");
div.attr("id", "blocked_service")
$("#sonora_content").append(div);
}
function setDivUpgardePosition() {
$('#lightbox_compativeis').css("left", $('#sonora_content').offset().left);
$('#lightbox_compativeis').css("top", $('#sonora_content').offset().top);
}
var imageWidth;
var imageHeigth;
var guid;
sonora.upload_image = {
init: function() {
$("#upload_error_back").click(function(e) {
$("#upload_photo_user_info").show();
$("#loading_photo_error").hide();
});
$("#btnUpload").click(function(e) { UploadFile(e); });
$("#btnUpload").mouseover(function() {
if ($("#image").val() == "") {
$("#btnUpload").attr("class", "son_enviar_foto son_off");
}
else
$("#btnUpload").attr("class", "son_enviar_foto");
});
$("#crop_send_original").click(function(e) { CroppingImage(e, false); });
$("#crop_send").click(function(e) { CroppingImage(e, true); });
$("#go_my_sonora").unbind("click").click(function(e) { SWFAddress.setValue("/meusonora"); });
$("#go_Acervo").unbind("click").click(function(e) { SWFAddress.setValue('/Acervo?acervo=artiststop&genre=0'); });
$("#go_destaques").unbind("click").click(function(e) { SWFAddress.setValue("/destaques/0/todos"); });
$("#loading_photo_error").hide();
$("#loading_photo").hide();
$("#croping_photo").hide();
$("#photo_ok").hide();
$("#upload_photo_user_info").show();
}
}
function UploadFile(e) {
if ($("#image").val() != "") {
var urlImage;
$("#upload_photo_user_info").hide();
$("#loading_photo").show();
e.preventDefault();
$.ajaxFileUpload({
url: '/ProcessFile/SaveDocuments',
type: "POST",
secureuri: false,
fileElementId: 'image',
dataType: 'json',
success: function(jsonResponse) {
if (jsonResponse && jsonResponse.status == "ok") {
var cropWidth;
var cropHeigth;
var cropX;
var cropY;
guid = jsonResponse.Guid;
$("#loading_photo").hide();
$("#croping_photo").show();
urlImage = jsonResponse.url;
imageWidth = jsonResponse.Width;
imageHeigth = jsonResponse.Heigth;
$("#croping_photo_image").attr("src", urlImage);
$("#croping_photo_preview").attr("src", urlImage);
if (imageHeigth >= 200 || imageWidth >= 200) {
cropX = 15;
cropY = 15;
cropWidth = (imageWidth - 15);
cropHeigth = (imageHeigth - 15);
}
else {
cropX = 9;
cropY = 9;
cropWidth = (imageWidth - 5);
cropHeigth = (imageHeigth - 5);
}
$("#croping_photo_image").Jcrop({
onSelect: storeCoords,
onChange: storeCoords,
setSelect: [cropX, cropY, cropWidth, cropHeigth],
aspectRatio: 1
});
}
else {
$("#loading_photo").hide();
$("#loading_photo_error").show();
}
},
error: function(data, status, e) {
alert(e);
}
});
}
return false;
}
function storeCoords(c) {
$('#X').val(c.x);
$('#Y').val(c.y);
$('#W').val(c.w);
$('#H').val(c.h);
if (parseInt(c.w) > 0) {
var rx = 87 / c.w;
var ry = 87 / c.h;
$('#croping_photo_preview').css({
width: Math.round(rx * imageWidth) + 'px',
height: Math.round(ry * imageHeigth) + 'px',
marginLeft: '-' + Math.round(rx * c.x) + 'px',
marginTop: '-' + Math.round(ry * c.y) + 'px'
});
}
};
function CroppingImage(e, crop) {
var CoordX = $("#X").val();
var CoordY = $("#Y").val();
var CoordW = $("#W").val();
var CoordH = $("#H").val();
var cropUrl;
if (crop)
cropUrl = "/ProcessFile/CroppingImage?CoordX=" + CoordX + "&CoordY=" + CoordY + "&CoordW=" + CoordW + "&CoordH=" + CoordH + "&Guid=" + guid;
else
cropUrl = "/ProcessFile/CroppingImage?Guid=" + guid;
$("#croping_photo").hide();
$("#loading_photo").show();
e.preventDefault();
$.ajaxFileUpload({
url: cropUrl,
type: "POST",
secureuri: false,
fileElementId: 'image',
dataType: 'json',
success: function(jsonResponse) {
if (jsonResponse && jsonResponse.status == "ok") {
$("#loading_photo").hide();
$("#photo_ok").show();
urlImage = jsonResponse.url;
$("#img_photo_ok").attr("src", urlImage);
$(".avatar_link img").attr("src", urlImage);
$(".avatar_link img").css({ width: '80px', height: '80px' });
$(".avatar_link #temp_avatar").removeClass("change_img");
$(".avatar_link #temp_avatar").removeClass("hs");
}
else {
$("#loading_photo").hide();
$("#loading_photo_error").show();
}
},
error: function(data, status, e) {
alert(e);
}
});
return false;
}
function Logger() { }
Logger.log = function(message) {
if (window.console) {
window.console.log(message);
}
}
Logger.info = function(message) {
if (window.console) {
window.console.info(message);
}
}
Logger.error = function(message) {
if (window.console) {
window.console.error(message);
}
}
var wmpMode = false;
var playerP = document.playerSonoraObject
var playerL = document.getElementById('player');
var playerObj = playerP; //playerP ? playerP : playerL;
var WMPDownloadList;
var WMPListID;
var WMPManager;
var cookieManager;
var downloadErrorUAC = 0;
$(document).ready(function() { playerObj = document.playerSonoraObject; });
function getMediaIdFromURL(url) {
if (url.indexOf("?") > 0) {
url = url.substring(0, url.indexOf("?"));
url = url.substring((url.lastIndexOf("/") + 1), (url.length - 4));
}
return url;
}
function getMediaMetadata(url) {
var id = getMediaIdFromURL(url);
url = "/Media/GetMediaMetadata/" + id;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
trintaSegundos(ParseMedia_Json(json));
}
});
}
function showDownloadManager() {
sonora.overlays.currentOverlay.hide()
location.href = '#/MinhaConta?master=MyAccount&pagina=2'
}
function updateDownloadManagerCount() {
if ($("#divOrders .manager #action_link").length > 0) {
if (GetCountActiveDownloads() - GetCountDownloadingItems() == 0) {
$("#divOrders .manager #action_link").attr("href", "javascript:pauseAllDownloads()");
$("#divOrders .manager #action_link").removeClass("restart");
$("#divOrders .manager #action_link").addClass("pause");
} else {
$("#divOrders .manager #action_link").attr("href", "javascript:resumeAllDownloads()");
$("#divOrders .manager #action_link").removeClass("pause");
$("#divOrders .manager #action_link").addClass("restart");
}
}
var count = GetCountDownloadingItems();
if (count == 0) {
$("#my_downloads_img").attr("src", "/Content/Images/download_manager_minha_musicas.gif");
$("#my_downloads_img").css("background", "none");
$("#my_downloads_link").text("meus downloads");
$("#my_downloads_link").css("border-right", "none");
$("#my_downloads_link").attr("href", "#/MinhaConta?master=MyAccount&pagina=3");
$("#my_downloads_count_div").html("");
} else {
$("#my_downloads_img").attr("src", "/Content/Images/seta_animada.gif");
$("#my_downloads_img").css("background", "none");
$("#my_downloads_link").text("ger. downloads");
$("#my_downloads_link").css("border-right", "1px solid #CFCAC3");
$("#my_downloads_link").attr("href", "#/MinhaConta?master=MyAccount&pagina=2");
$("#my_downloads_count_div").html("" + count);
}
}
function showInfo(id, type) {
var url = '/ShoppingCart/Popup?type=' + type + '&idItem=' + id;
window.open(url, 'infoWindow', 'width=275, height=420');
}
function WMPPlay(id, type, callback)
{
var url = 'Media/List/' + type + '/' + id + "?Asx=1";
WMPPlayUrl(url, callback);
}
function WMPPlayUrl(url, callback) {
if (playerObj == null) {
playerObj = document.playerSonoraObject;
setTimeout("WMPPlayUrl('" + url + "')", 1000)
return false;
}
url = defaultUrl + url;
playerObj.URL = url;
playerObj.controls.Play();
if (callback && typeof (callback) == 'function') {
callback();
}
}
function WMPPlayItems(items)
{
if(items.length == 1)
{
WMPPlayUrl(items[0].url);
}
else
{
if( playerObj.settings.mediaAccessRights == "none" )
{
playerObj.settings.requestMediaAccessRights( "full" );
}
if(playerObj.settings.mediaAccessRights == "full")
{
var pl = playerObj.newPlaylist("sonora", "");
for(var i = 0; i < items.length; i++)
{
pl.appendItem( playerObj.newMedia(items[i].url) );
}
playerObj.currentPlaylist = pl;
playerObj.Controls.Play();
}
}
}
function AjaxMedias_WMPParse()
{
if(this.httpRequest.status == 200)
{
var xml = this.httpRequest.responseXML;
var root = this.tools.SelectSingleNode(xml,'medias');
var musicList = this.tools.SelectNodes(root,'media');
var mlist = new Array();
for(var i = 0; i < musicList.length; i++)
{
var mi = AjaxMedias_MediaParse(musicList[i], this.tools);
mlist.push(mi);
}
WMPPlayItems(mlist);
}
}
function DownloadSubscription(musicID, musicTitle, userID)
{
if(!cookieManager)
{
cookieManager = new CookieManager("sonora", new Date(2020, 12, 31),"terra.com.br");
}
var url = defaultUrl + "/subscription/getLicense.aspx?licType=2&subscription=true&musicID=" + musicID;
setTimeout("GetLicenseFromURL('" + url + "')", 3000);
CheckWMPObjects();
if (!CheckExistingDownloads(musicID)) {
var urlDownload = defaultUrl + "wmp/2/" + userID + "/" + musicID + "/DynamicDownload.wma";
try {
WMPDownloadList.startDownload(urlDownload, "background");
} catch (err) {
downloadErrorUAC = 1;
sonora.overlays.showDownloadError($('#musicList .pagination .atual').offset());
}
}
}
function GetLicenseFromURL(url) {
try {
var RMGetLicense = document.getElementById("RMGetLicense");
if (RMGetLicense) {
RMGetLicense.GetLicenseFromURL("<a></a>", url);
}
}
catch (e) { }
}
function GetDownloadingMusics()
{
var ids = new Array();
for (var i = 0; i < DownloadList.length; i++) {
var item = DownloadList[i];
ids.push(item.ID);
}
return ids;
}
function GetMusicIDFromURL(url)
{
var m = url.match("wmp/\\d+/\\d+/(\\d+)");
return (RegExp.$1);
}
function DownloadItem(vTitle, vID)
{
this.Title = vTitle;
this.ID = vID;
}
function DownloadMonitor()
{
RenderDownloadList();
setTimeout("DownloadMonitor()", 500);
}
function GetCountActiveDownloads()
{
var counter = 0;
var downloadItem;
CheckWMPObjects();
if(WMPDownloadList)
{
for(i = 0; i < WMPDownloadList.count; i++)
{
downloadItem = WMPDownloadList.item(i);
if(downloadItem.downloadState == 0 || downloadItem.downloadState == 1 || downloadItem.downloadState == 2)
counter++;
}
}
return counter;
}
function GetActiveDownloads()
{
var ids = new Array();
var downloadItem;
CheckWMPObjects();
if(WMPDownloadList)
{
for(i = 0; i < WMPDownloadList.count; i++)
{
downloadItem = WMPDownloadList.item(i);
if(downloadItem.downloadState == 0 || downloadItem.downloadState == 1 || downloadItem.downloadState == 2)
ids.push(GetMusicIDFromURL(downloadItem.sourceURL));
}
}
return ids;
}
function GetCountDownloadingItems()
{
var counter = 0;
var downloadItem;
CheckWMPObjects();
if(WMPDownloadList)
{
for(i = 0; i < WMPDownloadList.count; i++)
{
downloadItem = WMPDownloadList.item(i);
if (downloadItem.downloadState == 0) {
counter++;
}
}
}
return counter;
}
var nc = 0;
function RenderDownloadList()
{
var html = "";
var item;
var downloadBar;
var musicId;
CheckWMPObjects();
var msg = "";
if(WMPDownloadList)
{
for(var i=0; i < WMPDownloadList.count; i++)
{
item = WMPDownloadList.item(i);
musicId = GetMusicIDFromURL(item.sourceURL);
downloadBar = document.getElementById("downloadBarId_" + musicId);
var prog = parseInt(item.progress / item.size * 100, 10);
var itemSize = parseInt((item.size) / 1024);
var x = Number((prog * 107) / 100);
x = parseInt(x);
msg += "( " + prog + " %) [" + item.downloadState + "]" + item.sourceURL + "<br />";
html += '<div class="progress">';
if(item.downloadState != 3) {
html += '<div class="done" style="width:' + x + 'px;"></div>';
} else {
html += '<div class="done" style="width:107px;"></div>';
}
html += '</div>';
switch(item.downloadState)
{
case 0: html += '<a href="#" onclick="PauseItem(' + i + '); return false;" title="Pausar" class="pause"></a>'; break;
case 1: html += '<a href="#" onclick="ResumeItem(' + i + '); return false;" title="Iniciar" class="download"></a>'; break;
case 2: break;
case 3: html += '<span class="percent">concluido</span>';break;
case 4: html += '<span class="percent">cancelado</span>'; break;
default: break;
}
html += '<div class="clear" />';
if (item.downloadState != 3) {
html += '<span>' + parseInt((prog * itemSize) / 100) + 'Kb de ' + itemSize + 'Kb - </span>';
html += '<span class="percent">' + prog + '%</span>';
}
else if (item.downloadState == 3) {
html += '<span>m&uacute;sica j&aacute; dispon&iacute;vel em sua biblioteca</span>';
} else if (item.downloadState == 4) {
html += '<span>cancelado</span>';
}
if(downloadBar) {
downloadBar.innerHTML = html;
}
html = '';
}
}
}
function ChangeLineClass(id, className)
{
var tableData;
for(var i=0; i<3; i++)
{
tableData = document.getElementById("td_" + i + "_" + id);
if(tableData)
tableData.className = className;
}
}
function CheckWMPObjects()
{
if(!cookieManager)
{
cookieManager = new CookieManager("sonora", new Date(2020, 12, 31),"terra.com.br");
}
if(!WMPManager)
{
WMPManager = external.DownloadManager;
}
if(!WMPDownloadList)
{
var downloadCollectionId = cookieManager.getValue("downloadCollectionId");
if(downloadCollectionId)
{
WMPDownloadList = WMPManager.getDownloadCollection(downloadCollectionId);
}
else
{
WMPDownloadList = WMPManager.createDownloadCollection();
cookieManager.setValue("downloadCollectionId", WMPDownloadList.id);
}
}
}
function CancelItem(id)
{
if(WMPDownloadList.item(id).downloadState != 3 && WMPDownloadList.item(id).downloadState != 4)
WMPDownloadList.item(id).cancel();
}
function ResumeItem(id)
{
if(WMPDownloadList.item(id).downloadState == 1)
WMPDownloadList.item(id).resume();
}
function DeleteItem(id)
{
CancelItem(id);
}
function ClearDownloadList()
{
CheckWMPObjects();
if(WMPDownloadList)
{
for(var i=0; i<WMPDownloadList.count; i++)
{
if(WMPDownloadList.item(i).downloadState == 3 || WMPDownloadList.item(i).downloadState == 4)
WMPDownloadList.removeItem(i);
}
}
}
function CheckExistingDownloads(musicId)
{
var ids = GetActiveDownloads();
for(var i=0; i<ids.length; i++)
{
if(ids[i] == musicId)
return true;
}
return false;
}
var abortTimer = 0;
function CancelDownload()
{
var manager = external.DownloadManager;
manager.getDownloadCollection(list.id).item(0).cancel();
HideManager();
}
function PauseItem(id) {
if (WMPDownloadList.item(id).downloadState == 0)
WMPDownloadList.item(id).pause();
}
function pauseAllDownloads() {
CheckWMPObjects();
if (WMPDownloadList) {
for (var i = 0; i < WMPDownloadList.count; i++) {
PauseItem(i);
}
}
}
function resumeAllDownloads() {
CheckWMPObjects();
if(WMPDownloadList)
{
for(var i=0; i < WMPDownloadList.count; i++)
{
ResumeItem(i);
}
}
}
function cancelAllDownloads() {
CheckWMPObjects();
if(WMPDownloadList)
{
for(var i=0; i < WMPDownloadList.count; i++)
{
CancelItem(i);
}
}
}
function removeList(id)
{
var manager = external.DownloadManager;
if(manager && manager.getDownloadCollection(id).count > 0)
{
var item = manager.getDownloadCollection(id).item(0);
if(item.downloadState == 0 && item.progress == 0)
{
manager.getDownloadCollection(id).Clear();
}
else
{
setTimeout("removeList(" + id + ");", 30000);
}
}
}
function Alert(msg)
{
var box = document.createElement("div");
box.id = "box";
box.style.position = "Absolute";
box.style.width = "500px";
box.style.height = "400px";
box.style.marginLeft = "-375px"
box.style.marginTop = "-150px"
box.style.top = "50%";
box.style.left = "50%";
box.style.overflow = "auto";
box.style.backgroundColor = "white";
box.style.border = "solid 1px black";
box.innerHTML = msg;
box.onclick = RemoveBox;
document.body.appendChild(box);
}
function RemoveBox()
{
document.body.removeChild(document.getElementById("box"));
}
function DeActivationParser()
{
if(this.httpRequest.status == 200)
{
var resp = this.httpRequest.responseText;
if(resp == "true")
{
document.location.reload();
}
}
}
function closeSubAdvise()
{
if(!cookieManager)
{
cookieManager = new CookieManager("sonora", new Date(2020, 12, 31),"terra.com.br");
}
cookieManager.setValue("hide_sub_advise", "true");
document.getElementById("sub_ad").style.display = "none";
}
var dlCount;
var positionX;
var positionY;
var notifyTimeOut;
var downloadsComprados;
var assinaturasDownload;
var gerenciadorDownloads;
var DownloadList = new Array();
var emptyDownloadManager = '<br><h1>Nenhum download em andamento.</h1> <a class=\"ger_downloads active\" href=\"javascript:mibAjaxManager.GetContent(\'MeusDownloadsSonoraClube?master=Blank\', \'#divOrders\', false)\"><span>Ver meus downloads</span></a>';
function myDownloadToDownloadManager(id, musica, user, referencia, linha) {
referencia.top = referencia.top + ((linha + 1) * 23);
PrepareForMultipleDownload(id, musica, user);
if (downloadErrorUAC == 0) {
sonora.overlays.showDownloadManagerOverlay(1, (user > 0), referencia);
} else {
downloadErrorUAC = 0;
}
}
function selectAssDownloadsTab(){
downloadsComprados = document.getElementById('downloadsComprados');
assinaturasDownload = document.getElementById('assinaturasDownload');
gerenciadorDownloads = document.getElementById('gerenciadorDownloads');
if(downloadsComprados)
downloadsComprados.className = 'none';
if(assinaturasDownload)
assinaturasDownload.className = 'selected';
if(gerenciadorDownloads)
gerenciadorDownloads.className = 'none';
}
function selectDownloadsCompTab(){
downloadsComprados = document.getElementById('downloadsComprados');
assinaturasDownload = document.getElementById('assinaturasDownload');
gerenciadorDownloads = document.getElementById('gerenciadorDownloads');
if(downloadsComprados)
downloadsComprados.className = 'selected';
if(assinaturasDownload)
assinaturasDownload.className = 'none';
if(gerenciadorDownloads)
gerenciadorDownloads.className = 'none';
}
function selectGerDownloadsTab(){
downloadsComprados = document.getElementById('downloadsComprados');
assinaturasDownload = document.getElementById('assinaturasDownload');
gerenciadorDownloads = document.getElementById('gerenciadorDownloads');
if(downloadsComprados)
downloadsComprados.className = 'none';
if(assinaturasDownload)
assinaturasDownload.className = 'none';
if(gerenciadorDownloads)
gerenciadorDownloads.className = 'selected';
}
function clearMusicListDiv()
{
document.getElementById('musicList').innerHTML = '';
}
function ShowDownloadingMusicsBox()
{
if (document.getElementById('downloadingMusicsDiv'))
document.getElementById('downloadingMusicsDiv').style.display = 'block';
}
function RefreshMusicsBox()
{
var count = GetCountDownloadingItems();
if(count)
RefreshMusicsBoxThread(count);
setTimeout("RefreshMusicsBox()", 1000);
}
function RefreshMusicsBoxThread(count)
{
var strQtd;
if(count <= 1)
strQtd = ' música'
else
strQtd = ' músicas'
document.getElementById('downloadCount').innerHTML = count + strQtd;
}
function HideDownloadingMusicsBox()
{
document.getElementById('downloadingMusicsDiv').style.display = 'none';
}
function RefreshDownloadingBox()
{
var header = document.getElementById('headerDownloadingMusics');
var count = GetCountDownloadingItems();
if(header)
header.innerHTML = 2;
setInterval("RefreshDownloadingBox()", 10000);
}
function PrepareForMultipleDownloadCheck(checkBoxes, userId)
{
downloadItems(checkBoxes, userId);
}
function PrepareForMultipleDownload(musics, titles, userId)
{
if (musics.length > 0) {
for (var i = 0; i < musics.length; i++) {
DownloadSubscription(musics[i], titles[i], userId);
var url = '/DownloadManager/AddDownloadSubscription';
$.ajax({
type: "POST",
url: url,
data: "ids=" + musics[i],
dataType: "text/html",
success: function(text) {
Logger.log("Download Subscription loaded!");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on Download Subscription \nError Message:" + error);
}
});
}
} else {
PrepareForDownloadSubscription(musics, titles, userId);
}
}
function downloadItems(checkBoxes, userId)
{
var ids = getCheckBoxesValues(checkBoxes);
var titles = getCheckBoxesTitles(checkBoxes);
for(var i=0; i < ids.length; i++)
{
DownloadSubscription(ids[i], titles[i], userId);
saveDownloadSubscription('ajax','AddDownloadSubscription',userId + ',' + ids[i]);
}
}
function getCheckBoxesTitles(checkBoxes)
{
var titles = new Array();
if(checkBoxes != null)
{
if(checkBoxes.length != null)
{
for(var i = 0; i < checkBoxes.length; i++)
{
if(checkBoxes[i].checked)
titles.push(checkBoxes[i].title);
}
}
else
{
if(checkBoxes.checked)
{
titles.push(checkBoxes.title);
}
}
}
return (titles);
}
function GetFullTimeFromSeconds(seconds)
{
var minutes = Math.floor(seconds/60);
seconds = seconds % 60;
if(seconds < 10)
seconds = '0' + seconds;
return (minutes + ':' + seconds);
}
function PrepareForDownloadSubscription(musicID, musicTitle, userID)
{
if(!CheckExistingDownloads(musicID)) {
DownloadSubscription(musicID, musicTitle, userID);
var url = '/DownloadManager/AddDownloadSubscription?ids=' + musicID;
$.ajax({
type: "GET",
url: url,
dataType: "text/html",
success: function(text) {
Logger.log("Download " + musicID + " Subscription loaded!");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on Download Subscription \nError Message:" + error);
}
});
}
}
function AddDownloadSubscriptionParser()
{
if(this.httpRequest.status == 200)
{
var resp = this.httpRequest.responseText;
if(resp == 'false')
{
}
}
}
function PositionNotify(e)
{
var nn6 = document.getElementById && !document.all;
var clientX = document.all ? event.clientX : e.clientX;
var clientY = document.all ? event.clientY : e.clientY;
var scrollLeft = nn6 ? window.pageXOffset : document.documentElement.scrollLeft;
var scrollTop = nn6 ? window.pageYOffset : document.documentElement.scrollTop;
positionX = clientX + scrollLeft - 60;
positionY = clientY + scrollTop - 60;
if(positionX<0) positionX = 0;
if(positionY<0) positionY = 0;
return(true);
}
function InitManager(tab)
{
if(tab == "1") {
loadDownloadSubscriptions('musicList', 0, 20);
} else {
BuildDownloadList();
}
}
function loadDownloadSubscriptions(div, offset, limit) {
var url = '/DownloadManager/Index?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "text/html",
success: function(text) {
Logger.log("Download Manager loaded!");
$("#" + div + "").html(text);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading Download Manager \nError Message:" + error);
}
});
}
function genDownloadListXML(ids) {
ids_ = "";
if (ids != null) {
if (ids.length > 0) {
ids_ = ids.join(";");
}
}
var url = '/DownloadManager/GenDownloadList?ids=' + ids_;
var html = "";
$.ajax({
type: "GET",
url: url,
dataType: "xml",
success: function(xml) {
Logger.log("Download Manager List loaded!");
var htmlButtons = "";
var tdClass = "";
var subroot;
var i = 0;
if (DownloadList.length > 0) {
html = "";
html += '<form id="formMusicList" name="formMusicList" action="getDownloaderFile.aspx" target="post_frame">';
html += '<table class=\"listing\" cellspacing="0" cellpadding="0" border="0">';
html += '<tbody>';
html += '<tr>';
html += '<th width="125" class="inputArea">M&uacute;sica</th>';
html += '<th width="125">Artista</th>';
html += '<th width="130">&Aacute;lbum</th>';
html += '<th width="35">Tempo</th>';
html += '<th class=\"last\" width="205">Status</th>';
html += '</tr>';
$('musics', xml).find('music').each(function() {
var marker = $(this);
var dItem = DownloadList[i];
var item = WMPDownloadList.item(dItem.wmpIndex);
if (i % 2 == 0)
html += '<tr class="b">';
else
html += '<tr>';
switch (item.downloadState) {
case 0: htmlButtons += '<a href="#" onclick="PauseItem(' + i + '); return false;" title="Pausar" class="pause"></a>'; break;
case 1: htmlButtons += '<a href="#" onclick="ResumeItem(' + i + '); return false;" title="Iniciar" class="download"></a>'; break;
case 2: break;
case 3: htmlButtons += '<span class="percent">concluido</span>'; break;
case 4: htmlButtons += '<span class="percent">cancelado</span>'; break;
default: break;
}
musicId = GetMusicIDFromURL(item.sourceURL);
html += '<td id="td_0_' + musicId + '" class="first"><b>' + $(this).find('title').text() + '</b></td>';
html += '<td><b>' + $(this).find('artist').text() + '</b></td>';
html += '<td id="td_1_' + musicId + '"><b>' + $(this).find('album').text() + '</b></td>';
html += '<td id="td_2_' + musicId + '"><b>' + GetFullTimeFromSeconds($(this).find('duration').text()) + '</b></td>';
html += '<td id="downloadBarId_' + musicId + '" class="info options">';
html += '<a href="#" onclick="DeleteItem(' + i + '); return false;" title="Deletar" class="close"></a>';
var prog = parseInt(item.progress / item.size * 100, 10);
var itemSize = parseInt((item.size) / 1024);
var x = Number((prog * 107) / 100);
x = parseInt(x);
html += '<div class="progress">';
html += '<div class="done" style="width:' + x + 'px;"></div>';
html += '</div>';
html += htmlButtons;
html += '<div class="clear" />';
if (item.downloadState == 1 || item.downloadState == 2) {
html += '<span>' + parseInt((prog * itemSize) / 100) + 'Kb de ' + itemSize + 'Kb</span>';
html += '<span class="percent">' + prog + '%</span>';
} else if (item.downloadState == 3) {
html += '<span>m&uacute;sica j&aacute; dispon&iacute;vel em sua biblioteca</span>';
} else if (item.downloadState == 4) {
html += '<span>cancelado</span>';
}
html += '</td>';
html += '</tr>';
i++;
});
html += '</tbody>';
html += '</table>';
html += '</form>';
var musicList = document.getElementById("musicList");
if (musicList) {
musicList.innerHTML = html;
}
DownloadMonitor();
}
else {
html = emptyDownloadManager;
var musicList = document.getElementById("musicList");
if (musicList)
musicList.innerHTML = html;
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
html = emptyDownloadManager;
var musicList = document.getElementById("musicList");
if (musicList) {
musicList.innerHTML = emptyDownloadManager;
}
}
});
}
function BuildDownloadList()
{
CheckWMPObjects();
items__ = 0
acumulador = "";
DownloadList = new Array();
for(var i = 0; i < WMPDownloadList.count; i++)
{
downloadItem = WMPDownloadList.item(i);
if(downloadItem.downloadState != 3 && downloadItem.downloadState != 4)
{
acumulador += "item " + i + " - " + GetMusicIDFromURL(downloadItem.sourceURL) + "<br />";
DownloadList.push(new DownloadItemDownloadManager(i, GetMusicIDFromURL(downloadItem.sourceURL)));
}
}
genDownloadListXML(GetDownloadingMusics());
}
function DownloadItemDownloadManager(index, id)
{
this.wmpIndex = index;
this.ID = id;
}
function DownloadMusic(musicID, musicTitle, userID, objeto, linha) {
var manager;
var url = defaultUrl + "/subscription/getLicense.aspx?subscription=false&musicID=" + musicID;
try {
manager = external.DownloadManager;
var RMGetLicense = document.getElementById("RMGetLicense");
if (RMGetLicense) {
RMGetLicense.GetLicenseFromURL("<a></a>", url);
}
}
catch (e) { }
if (manager) {
list = manager.createDownloadCollection();
var urlDownload = defaultUrl + "/wmp/0/" + userID + "/" + musicID + "/" + escape(musicTitle) + ".wma";
list.startDownload(urlDownload, "background");
try {
ShowManager(musicTitle, list.id);
CheckDownload(list.id);
}
catch(e)
{
Alert(e.message);
}
}
else {
document.location = "/Download/" + musicID;
}
}
function CheckDownload(id) {
var manager = external.DownloadManager;
var text = "";
if (manager) {
if (manager.getDownloadCollection(id) && manager.getDownloadCollection(id).count > 0) {
var item = manager.getDownloadCollection(id).item(0);
if (item) {
if (item.downloadState != 0) {
$("#message_item_" + id).html("Download efetuado com sucesso!");
setTimeout("HideManager("+id+")", 1500);
}
else {
ChangeProgress(parseInt(item.progress / item.size * 100, 10), id);
ChangeBarSize(parseInt(item.progress / item.size * 107, 10), id);
setTimeout("CheckDownload(" + id + ");", 500);
}
}
}
}
}
function ChangeProgress(total, id) {
if (total > 0) {
$("#message_item_" + id).html("Efetuando download...");
}
$("#download_a_la_carte_overlay #downPerc_" + id).html(total + "%");
}
function ChangeBarSize(size, id) {
$("#download_item_" + id + " .done").css("width", size + "px");
}
function ShowManager(title, id) {
var html = '<span id="message_item_' + id + '" class="text">Download de música em fila...</span><br />';
html += '<span id="mTitle" class="text">' + title + '</span><br />';
html += '<span id="downPerc_' + id + '" class="text"></span><br />';
html += '<div id="download_item_' + id + '" class="progress">';
html += '<div class="done" style="width:1px;"></div>';
html += '</div>'
$.jGrowl(html, { sticky: true });
}
function HideManager(id) {
$("#download_item_" + id).parent().parent().hide();
}
function PopupPlayer() { }
PopupPlayer.OpenPopup = function() {
var strSponsoredPopup = (sonora.radio.isSponsored) ? '?external=false&ids=' + sonora.radio.sponsoredId + '&type=51' : '';
var joker = "?";
if (strSponsoredPopup != "") joker = "&";
strSponsoredPopup += joker + 'playlistId=' + sonora.metrics.playlistId + '&playlisTitle=' + sonora.metrics.playlistTitle + '&playlistType=' + sonora.metrics.playlistType;
var popup = window.open('/PopupPlayer/Index' + strSponsoredPopup, 'Sonora', 'width=820,height=415');
}
function initializePopup() {
}
sonora.player.popup = {
init: function() {
},
open: function() {
var strSponsoredPopup = (sonora.radio.isSponsored) ? '?external=false&ids=' + sonora.radio.sponsoredId + '&type=51' : '';
var popup = window.open('/PopupPlayer/Index' + strSponsoredPopup, 'Sonora', 'width=820,height=415');
},
ready: function() {
}
}
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
};
function overExplorerMosaic()
{
var img = this;
if(img.parentNode.className != "infoBox"){
var imgW = img.offsetWidth;
var imgH = img.offsetHeight;
var zIndex = $(img.parentNode).css("zIndex");
img.parentNode.style.border = "#ff9900 2px solid";
img.parentNode.style.width = imgW - 4 + "px";
img.parentNode.style.height = imgH - 4 + "px";
img.style.margin = "-2px 0 0 -2px";
img.style.width = imgW + "px";
img.style.height = imgH + "px";
$(img.parentNode).css("zIndex", 10);
img.onmouseout = function() {
img.parentNode.style.border = "none";
img.parentNode.style.width = imgW + "px";
img.parentNode.style.height = imgH + "px";
img.style.margin = 0;
$(img.parentNode).css("zIndex", zIndex);
}
}
var obj = img;
if (obj.nodeName == "IMG") {
node = obj.parentNode;
$(node).infoBoxOver();
}
}
(function($) {
$.fn.infoBoxOver = function() {
var jQueryObj = this;
function _init() {
var title = jQueryObj.find(".list_info > h2 > .main_info").text();
var artist = jQueryObj.find(".list_info > h3 > .sub_info > a:first").text();
var genre = jQueryObj.find(".list_info > h3 > .sub_info > a:last").text();
if (title != null && title != "") {
$("#infoOverBox").append("<h1>" + title + "</h1>");
}
if (artist != null && artist != "") {
$("#infoOverBox").append("<h2>" + artist + "</h2>");
}
if (genre != null && genre != "") {
$("#infoOverBox").append("<h3>" + genre + "</h3>");
}
if (artist == "" && genre == "") {
$("#infoOverBox h1").css("height", "auto");
}
else {
$("#infoOverBox h1").css("height", "16px");
}
$("#infoOverBox").show();
var offsetLeft = 0;
var offsetTop = 0;
var offset = $(jQueryObj).position();
var objHeight = $(jQueryObj).height();
var objWidth = $(jQueryObj).width();
var objParentWidth = $(jQueryObj).parent().width();
if (offset.left > (2 * (objParentWidth / 3))) {
offsetLeft = (offset.left - $("#infoOverBox").width() + objWidth - 10);
}
else {
offsetLeft = (offset.left);
}
offsetTop = (offset.top + objHeight + 2);
$("#infoOverBox").css("left", offsetLeft);
$("#infoOverBox").css("top", offsetTop);
$("#infoOverBox").css("zIndex", 9);
$("#infoOverBox a:first").css("font-weight", "bold");
}
_init();
}
})(jQuery);
function closeOverExplorerMosaic() {
var overBox = document.getElementById("infoOverBox");
overBox.style.zIndex = -1;
overBox.innerHTML = "";
overBox.style.display = "none";
}
function showInfoExplorerMosaic()
{
var obj = this;
var infoBg = document.getElementById("infoBg");
infoBg.style.zIndex = 9;
opacityExplorerMosaic('infoBg',0,70,300);
var box = document.getElementById("infoBox");
var closeBtn = document.createElement("A");
var node = obj;
if(obj.nodeName == "IMG")
{
node = obj.parentNode;
}
var offsetLeft = 0;
var offsetTop = 0;
if( (node.offsetLeft - 100) < 1 ) {
offsetLeft = 1;
}
else if( (node.offsetLeft - 100) + 320 > 684 ) {
offsetLeft = 684 - 330;
}
else {
offsetLeft = (node.offsetLeft - 100);
}
if( (node.offsetTop + 20) + 130 > 581 ) {
offsetTop = 581 - 150;
}
else {
offsetTop = (node.offsetTop + 20);
}
box.style.left = offsetLeft + "px";
box.style.top = offsetTop + "px";
closeBtn.className = "close hs";
closeBtn.title = "Fechar";
closeBtn.href = "javascript:closeInfoExplorerMosaic()";
box.appendChild( closeBtn );
box.innerHTML += node.innerHTML;
box.style.zIndex = 99;
opacityExplorerMosaic('infoBox',0,100,400);
sonora.hijackLinks("#infoBox");
sonora.setupActionIcons("#infoBox,#blocked_media_overlay,#radioActionsContainer");
if($("#infoBox").find(".album_art").attr("src") == "")
{
$("#infoBox").find(".artist_name").css("display", "block");
$("#infoBox").find(".album_art").css("visibility", "hidden");
}
else
{
$("#infoBox").find(".artist_name").css("display", "none");
$("#infoBox").find(".album_art").css("visibility", "visible");
}
$("#infoBox").find(".main_info").addClass("ellipsis");
sonora.utils.ellipsis($("#infoBox").find(".main_info"));
}
function closeInfoExplorerMosaic() {
setTimeout("changeIndexExplorerMosaic()",1000);
opacityExplorerMosaic('infoBox',100,0,300);
opacityExplorerMosaic('infoBg',70,0,300);
}
function changeIndexExplorerMosaic() {
var box = document.getElementById("infoBox");
var infoBg = document.getElementById("infoBg");
box.style.zIndex = -1;
infoBg.style.zIndex = -1;
box.innerHTML = "";
}
function opacityExplorerMosaic(id, opacStart, opacEnd, millisec)
{
var speed = Math.round(millisec / 100);
var timer = 0;
if(opacStart > opacEnd) {
for(i = opacStart; i >= opacEnd; i--) {
setTimeout("changeOpacExplorerMosaic(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
}else if(opacStart < opacEnd) {
for(i = opacStart; i <= opacEnd; i++){
setTimeout("changeOpacExplorerMosaic(" + i + ",'" + id + "')",(timer * speed));
timer++;
}
}
}
function changeOpacExplorerMosaic(opacity, id)
{
var object = document.getElementById(id).style;
object.opacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";
}
var intervalNowPlaying = null;
var nowMusics = null;
var actualGenreName = null;
function TriggerNowPlaying(index) {
if (sonora.explorer.getViewType() == "now" && $("#explore_mode_visual").is(".hi.selected")) {
var url = location.href.split("/");
genreId = url[url.length - 2];
genreName = url[url.length - 1];
genreId = genreId != null ? genreId : 0;
if (((nowMusics != null && nowMusics.count <= 0) || (nowMusics == null))) {
Explorer.NowJSon(30, 60, genreId, genreName, function(json) {
nowMusics = json;
if (nowMusics.count > 0) {
TriggerNowPlaying(0);
}
});
}
else {
intervalNowPlaying = setTimeout(function() {
var rand = Math.floor(Math.random() * 31);
if (rand == 0) {
rand++;
}
indexAux = index + 1;
if (indexAux < nowMusics.count) {
index++;
var newMusic = nowMusics.musics[index];
if (parseInt(rand) < 10) {
rand = '0' + rand.toString();
}
var className = ".list_item2.v" + rand.toString();
$(className).unbind();
$(className).hide("clip", { direction: "horizontal" }, 500, function() {
$(className + " .album_art").attr("src", newMusic.albumImageHigh.toString());
$(className + " .list_info a.main_info").attr("href", newMusic.url.toString());
$(className + " .list_info a.main_info").html(newMusic.title);
$(className + " .sub_info a.artist_info").attr("href", newMusic.artistUrl.toString());
$(className + " .sub_info a.artist_info").html(newMusic.artistName);
$(className + " .sub_info a.album_info").attr("href", newMusic.albumUrl.toString());
$(className + " .sub_info a.album_info").html(newMusic.albumName);
$(className + " .sub_info a.genre_info").attr("href", newMusic.genreUrl.toString());
$(className + " .sub_info a.genre_info").html(newMusic.genreName);
$("#dvUserData img").attr("src", newMusic.userImageUrl.toString());
$("#dvUserData a").attr("href", newMusic.userUrl.toString());
$("#dvUserData a").html(newMusic.userName.toString());
$(".hearts").html(newMusic.rating.toString());
$(className + " a.share_icon.hi").attr("href", "#enviar/musica/" + newMusic.id.toString());
$(className + " a.buy_icon.hi").attr("href", "#comprar/musica/" + newMusic.id.toString() + "/" + newMusic.price.toString().replace(".", ","));
$(className + " a.play_icon.hi").attr("href", "#ouvir/musica/" + newMusic.id.toString());
$(className + " a.add_icon.hi").attr("href", "#adicionar/musica/" + newMusic.id.toString());
$(className).show("clip", { direction: "vertical" }, 1000, function() {
$(className).bind("mouseover", function() { $(this).addClass("over"); });
$(className).bind("mouseout", function() { $(this).removeClass("over"); });
$(className).bind("click", showInfoExplorerMosaic);
TriggerNowPlaying(index);
});
});
} else {
TriggerNowPlaying(0);
}
}, 3000);
}
}
else
{
RemoveTriggerNowPlaying();
}
}
function RemoveTriggerNowPlaying()
{
if(intervalNowPlaying)
clearTimeout(intervalNowPlaying);
}
function CookieManager(cookieName, expirationDate, domain) {
this.cookieName = cookieName;
this.expirationDate = expirationDate;
this.domain = domain;
this.getValue = cm_getValue;
this.setValue = cm_setValue;
function cm_getValue(key) {
var i;
var result;
result = document.cookie.match(key + '=([^;&]*)'); // value will be in the position 1 (first group)
return (result != null) ? result[1] : null;
}
function cm_setValue(key, val)
{
var result = '';
var expiration = this.expirationDate == null ? '' : 'expires=' + this.expirationDate.toGMTString() + ';';
result = document.cookie.match(this.cookieName + '=([^;]*)');
if(result == null)
result = "";
else
result = result[1];
if(result.indexOf(key) > -1)
result = result.replace(new RegExp(key + '=[^&]*'), key + '=' + val);
else // If key does not exist int the cookie, put it
result += ((result != '') ? '&' : '') + key + '=' + val;
document.cookie = this.cookieName + '=' + result + ';domain=' + this.domain + ';path=/;' + expiration;
}
}
(function($) {
$.jGrowl = function( m , o ) {
if ( $('#jGrowl').size() == 0 ) $('<div id="jGrowl"></div>').addClass($.jGrowl.defaults.position).appendTo('body');
$('#jGrowl').jGrowl(m,o);
};
$.fn.jGrowl = function( m , o ) {
if ( $.isFunction(this.each) ) {
var args = arguments;
return this.each(function() {
var self = this;
if ( $(this).data('jGrowl.instance') == undefined ) {
$(this).data('jGrowl.instance', new $.fn.jGrowl());
$(this).data('jGrowl.instance').startup( this );
}
if ( $.isFunction($(this).data('jGrowl.instance')[m]) ) {
$(this).data('jGrowl.instance')[m].apply( $(this).data('jGrowl.instance') , $.makeArray(args).slice(1) );
} else {
$(this).data('jGrowl.instance').notification( m , o );
}
});
};
};
$.extend( $.fn.jGrowl.prototype , {
defaults: {
header: '',
sticky: false,
position: 'top-right', // Is this still needed?
glue: 'after',
theme: 'default',
corners: '10px',
check: 500,
life: 3000,
speed: 'normal',
easing: 'swing',
closer: true,
closeTemplate: '&times;',
closerTemplate: '<div>[ close all ]</div>',
log: function(e,m,o) {},
beforeOpen: function(e,m,o) {},
open: function(e,m,o) {},
beforeClose: function(e,m,o) {},
close: function(e,m,o) {},
animateOpen: {
opacity: 'show'
},
animateClose: {
opacity: 'hide'
}
},
element: null,
interval: null,
notification: function( message , o ) {
var self = this;
var o = $.extend({}, this.defaults, o);
o.log.apply( this.element , [this.element,message,o] );
var notification = $('<div class="jGrowl-notification"><div class="close hs">' + o.closeTemplate + '</div><div class="header">' + o.header + '</div><div class="message">' + message + '</div></div>')
.data("jGrowl", o).addClass(o.theme).children('div.close').bind("click.jGrowl", function() {
$(this).unbind('click.jGrowl').parent().trigger('jGrowl.beforeClose').animate(o.animateClose, o.speed, o.easing, function() {
$(this).trigger('jGrowl.close').remove();
});
}).parent();
( o.glue == 'after' ) ? $('div.jGrowl-notification:last', this.element).after(notification) : $('div.jGrowl-notification:first', this.element).before(notification);
$(notification).bind("mouseover.jGrowl", function() {
$(this).data("jGrowl").pause = true;
}).bind("mouseout.jGrowl", function() {
$(this).data("jGrowl").pause = false;
}).bind('jGrowl.beforeOpen', function() {
o.beforeOpen.apply( self.element , [self.element,message,o] );
}).bind('jGrowl.open', function() {
o.open.apply( self.element , [self.element,message,o] );
}).bind('jGrowl.beforeClose', function() {
o.beforeClose.apply( self.element , [self.element,message,o] );
}).bind('jGrowl.close', function() {
o.close.apply( self.element , [self.element,message,o] );
}).trigger('jGrowl.beforeOpen').animate(o.animateOpen, o.speed, o.easing, function() {
$(this).data("jGrowl").created = new Date();
}).trigger('jGrowl.open');
if ( $.fn.corner != undefined ) $(notification).corner( o.corners );
},
update: function() {
$(this.element).find('div.jGrowl-notification:parent').each( function() {
if ( $(this).data("jGrowl") != undefined && $(this).data("jGrowl").created != undefined && ($(this).data("jGrowl").created.getTime() + $(this).data("jGrowl").life) < (new Date()).getTime() && $(this).data("jGrowl").sticky != true &&
($(this).data("jGrowl").pause == undefined || $(this).data("jGrowl").pause != true) ) {
$(this).children('div.close').trigger('click.jGrowl');
}
});
if ( $(this.element).find('div.jGrowl-notification:parent').size() < 2 ) {
$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose, this.defaults.speed, this.defaults.easing, function() {
$(this).remove();
});
};
},
startup: function(e) {
this.element = $(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');
this.interval = setInterval( function() { jQuery(e).data('jGrowl.instance').update(); }, this.defaults.check);
if ($.browser.msie && parseInt($.browser.version) < 7 && !window["XMLHttpRequest"]) $(this.element).addClass('ie6');
},
shutdown: function() {
$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();
clearInterval( this.interval );
}
});
$.jGrowl.defaults = $.fn.jGrowl.prototype.defaults;
})(jQuery);
$.fn.centerInClient = function(options) {
var opt = { forceAbsolute: false,
container: window, // selector of element to center in
completeHandler: null
};
$.extend(opt, options);
return this.each(function(i) {
var el = $(this);
var jWin = $(opt.container);
var isWin = opt.container == window;
if (opt.forceAbsolute) {
if (isWin)
el.remove().appendTo("body");
else
el.remove().appendTo(jWin.get(0));
}
el.css("position", "absolute");
var heightFudge = isWin ? 2.0 : 1.8;
var x = (isWin ? jWin.width() : jWin.outerWidth()) / 2 - el.outerWidth() / 2;
var y = (isWin ? jWin.height() : jWin.outerHeight()) / heightFudge - el.outerHeight() / 2;
el.css("left", x + jWin.scrollLeft());
el.css("top", y + jWin.scrollTop());
if (opt.completeHandler)
opt.completeHandler(this);
});
}
{
$.fn.FilterWithList = function(options) {
return this.each(function() {
return new filterWithList(this, options);
});
};
var filterWithList = function(el, options) {
this.el = $(el);
this.id = this.el.attr('id');
this.el.attr('autocomplete', 'off');
this.suggestions = [];
this.data = [];
this.badQueries = [];
this.useBadQueries = false;
this.selectedIndex = -1;
this.currentValue = this.el.val();
this.intervalId = 0;
this.cachedResponse = [];
this.onChangeInterval = null;
this.ignoreValueChange = false;
this.serviceUrl = options.serviceUrl;
this.options = {
autoSubmit: false,
minChars: 3,
maxHeight: 300,
deferRequestBy: 100,
width: 0,
listContainer: '#filterWithListItensContainer',
MaxItensList: 0,
form: null
};
if (options) { $.extend(this.options, options); }
this.initialize();
};
filterWithList.isArray = function(obj) { return obj && obj.constructor === Array; };
filterWithList.highlight = function(value, re, tm) {
var terms = value.match(re);
for (i = 0; i < terms.length; i++) {
if (terms[i].substr(0, 1) != "<") {
terms[i] = terms[i].replace(eval('/' + tm + '\/gi'), function(match) { return '<strong>' + match + '<\/strong>' });
}
}
return terms.join("");
};
filterWithList.prototype = {
killerFn: null,
initialize: function() {
var me = this;
this.killerFn = function(e) {
if ($(e.target).parents('.FilterWithList').size() === 0) {
me.killSuggestions();
me.disableKillerFn();
}
};
if (!this.options.width) { this.options.width = this.el.width() + 25; }
this.mainContainerId = 'filterWithListContainter_' + this.id;
$(this.options.listContainer).addClass("FilterWithListItensContainer");
$('<div id="' + this.mainContainerId + '" style="position:absolute;"><div class="FilterWithList-w1"><div class="FilterWithList-w2"><div class="FilterWithList" id="filterWithList_' + this.id + '" style="display:none; width:' + this.options.width + 'px;"></div></div></div></div>').appendTo('body');
this.container = $('#filterWithList_' + this.id);
this.fixPosition();
if (window.opera) {
this.el.keypress(function(e) { me.onKeyPress(e); });
} else {
this.el.keydown(function(e) { me.onKeyPress(e); });
}
this.el.keyup(function(e) { me.onKeyUp(e); });
this.el.blur(function() { me.enableKillerFn(); });
this.el.focus(function() { me.fixPosition(); });
this.container.css({ maxHeight: this.options.maxHeight + 'px' });
},
fixPosition: function() {
var offset = this.el.offset();
$('#' + this.mainContainerId).css({ top: (offset.top + this.el.height()) + 'px', left: offset.left + 'px' });
},
enableKillerFn: function() {
var me = this;
$(document).bind('click', me.killerFn);
},
disableKillerFn: function() {
var me = this;
$(document).unbind('click', me.killerFn);
},
killSuggestions: function() {
var me = this;
this.stopKillSuggestions();
this.intervalId = window.setInterval(function() { me.hide(); me.stopKillSuggestions(); }, 300);
},
stopKillSuggestions: function() {
window.clearInterval(this.intervalId);
},
sendForm: function() {
if ($(this.options.form).length > 0) { $(this.options.form).submit(); }
},
onKeyPress: function(e) {
if (!this.enabled) { return; }
switch (e.keyCode) {
case 27: //Event.KEY_ESC:
this.onChangeSearchBox(this.getIndexSuggestion(this.currentValue));
this.hide();
break;
case 9: //Event.KEY_TAB:
case 13: //Event.KEY_RETURN:
if (this.selectedIndex === -1) {
this.hide();
return;
}
this.select(this.selectedIndex);
this.sendForm();
if (e.keyCode === 9) { return; }
break;
case 38: //Event.KEY_UP:
this.moveUp();
break;
case 40: //Event.KEY_DOWN:
this.moveDown();
break;
default:
return;
}
e.stopPropagation();
e.preventDefault();
},
onKeyUp: function(e) {
switch (e.keyCode) {
case 38: //Event.KEY_UP:
case 40: //Event.KEY_DOWN:
return;
}
clearInterval(this.onChangeInterval);
if (this.options.deferRequestBy > 0) {
this.onChangeInterval = setInterval((function() {
this.onValueChange();
}).bind(this), this.options.deferRequestBy);
} else if (this.currentValue !== this.el.val()) {
this.onValueChange();
}
},
onValueChange: function() {
clearInterval(this.onChangeInterval);
this.currentValue = this.el.val();
this.selectedIndex = -1;
if (this.ignoreValueChange) {
this.ignoreValueChange = false;
return;
}
if (this.currentValue === '' || this.currentValue.length < this.options.minChars) {
this.hide();
} else {
this.getSuggestions();
}
},
getSuggestions: function() {
var cr = this.cachedResponse[this.currentValue];
if (cr && filterWithList.isArray(cr.suggestions)) {
this.suggestions = cr.suggestions;
this.data = cr.data;
this.suggest();
} else if (!this.isBadQuery(this.currentValue)) {
var me = this;
$.get(this.serviceUrl, { query: this.currentValue }, function(json) { me.processResponse(json); }, 'json');
}
},
isBadQuery: function(q) {
var i = this.badQueries.length;
while (i--) {
if (q.indexOf(this.badQueries[i]) === 0) { return true; }
}
return false;
},
hide: function() {
this.enabled = false;
this.selectedIndex = -1;
this.container.hide();
},
getIndexSuggestion: function(value) {
try {
for (i = 0; i < this.suggestions.length; i++)
if (this.suggestions[i] == value)
return i;
}
catch (err) {
return -1;
}
return -1;
},
suggest: function() {
if (this.suggestions.length === 0) {
this.hide();
return;
}
var re = new RegExp('(\\x3C(\\w|\\s|\\x3D|\\x22|\\x27|\/)*\\x3E)|((\\w|\\s|\\x26|\\x23|\\x2C|\\x3B|\\x3A|\\x2B|\\x21|\\x133|\\x135|\\x7B|\\x7C|\\x7D)*)', 'gi');
var tm = '\\b' + this.currentValue.match(/\w+/g).join('|\\b');
var me = this;
var len = this.suggestions.length;
var div;
this.container.html('');
for (var i = 0; i < len; i++) {
div = $((me.selectedIndex === i ? '<div class="selected"' : '<div') + '>' + filterWithList.highlight(me.suggestions[i], re, tm) + '</div>');
div.mouseover((function(xi) { return function() { me.activate(xi); }; })(i));
div.click((function(xi) {
return function() {
me.select(xi);
me.sendForm();
};
})(i));
this.container.append(div);
}
this.enabled = true;
this.container.show();
this.fixPosition();
},
processResponse: function(json) {
var response;
try {
response = json;
if (!filterWithList.isArray(response.data)) { response.data = []; }
} catch (err) { return; }
this.suggestions = response.suggestions;
this.data = response.data;
this.cachedResponse[response.query] = response;
if (response.suggestions.length === 0 && this.useBadQueries) { this.badQueries.push(response.query); }
if (response.query === this.currentValue) { this.suggest(); }
},
activate: function(index) {
var divs = this.container.children();
var activeItem;
if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
$(divs.get(this.selectedIndex)).attr('class', '');
}
this.selectedIndex = index;
if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
activeItem = divs.get(this.selectedIndex);
$(activeItem).attr('class', 'selected');
}
return activeItem;
},
deactivate: function(div, index) {
div.className = '';
if (this.selectedIndex === index) { this.selectedIndex = -1; }
},
select: function(i) {
var selectedValue = this.suggestions[i];
if (selectedValue) {
this.onChangeSearchBox(this.getIndexSuggestion(selectedValue));
if (this.options.autoSubmit) {
var f = this.el.parents('form');
if (f.length > 0) { f.get(0).submit(); }
}
this.ignoreValueChange = true;
this.hide();
this.onSelect(i);
}
},
moveUp: function() {
if (this.selectedIndex === -1) { return; }
if (this.selectedIndex === 0) {
this.container.children().get(0).className = '';
this.selectedIndex = -1;
this.onChangeSearchBox(this.getIndexSuggestion(this.currentValue));
return;
}
this.adjustScroll(this.selectedIndex - 1);
},
moveDown: function() {
if (this.selectedIndex === (this.suggestions.length - 1)) { return; }
this.adjustScroll(this.selectedIndex + 1);
},
adjustScroll: function(i) {
var activeItem = this.activate(i);
var offsetTop = activeItem.offsetTop;
var upperBound = this.container.scrollTop();
var lowerBound = upperBound + this.options.maxHeight - 25;
if (offsetTop < upperBound) {
this.container.scrollTop(offsetTop);
} else if (offsetTop > lowerBound) {
this.container.scrollTop(offsetTop - this.options.maxHeight + 25);
}
this.onChangeSearchBox(i);
},
onChangeSearchBox: function(i) {
var defaultEvent = (function(text, data, currentThis) {
currentThis.el.val(currentThis.suggestions[i]);
});
(this.options.onChangeSearchBox || defaultEvent)(this.suggestions[i], this.data[i], this);
},
onSelect: function(i) {
var defaultEvent = (function(text, data, currentThis) {
var containerName = currentThis.options.listContainer.replace("#", "").replace(".", "");
var inputName = "hiddenField_" + containerName + "_" + data;
var divName = "item_" + containerName + "_" + data;
$(currentThis.el).val("");
$(currentThis.el).focus();
if (currentThis.options.MaxItensList > 0 && $(currentThis.options.listContainer).children().length >= currentThis.options.MaxItensList) return;
if ($("input[value='" + data + "']").length > 0) return;
var hidden = $("<input type='hidden'></input>")
.attr("name", inputName)
.attr("value", data);
var close = $("<a href='#'></a>").click(function() {
$("#" + divName).remove();
});
var div = $("<div></div>")
.attr("id", divName)
.text(text)
.append(hidden)
.append(close);
$(currentThis.options.listContainer).append(div);
});
(this.options.onSelect || defaultEvent)(this.suggestions[i], this.data[i], this);
}
};
}
function initWizard() {
$(".artistBlock :input[id^='artistField']")
.keydown(function() {
ConfigItemFromTagCloud($(this).val(), false);
$(".FilterWithList-w1").css("z-index", "999");
})
.keyup(function() {
ConfigItemFromTagCloud($(this).val(), true);
$(".FilterWithList-w1").css("z-index", "999");
if ($(this).val().length == 0) {
$(this).nextAll("a").removeClass("del");
}
else {
$(this).nextAll("a").addClass("del hs");
}
})
.FilterWithList({
serviceUrl: '/Wizard/ArtistSuggestion',
minChars: 2,
maxHeight: 400,
deferRequestBy: 50,
onSelect: function(text, data, currentThis) {
$(currentThis.el).val(text);
$(currentThis.el).parent().next().children(":input").focus();
}
});
$(".select").unbind("click").click(function(e) {
if ($(this).find(".divList").is(":hidden")) {
$(this).parent().nextAll().hide();
$(this).parent().nextAll().find(".select").css("visibility ", "hidden");
$(this).find(".divList").slideDown();
switch ($(this).attr('id')) {
case 'one':
if ($.browser.msie) {
$('li.liWizardOption').css({ 'height': '83px', 'position': 'relative', 'float': 'left' });
}
else {
$('li.liWizardOption').css({ 'height': '52px', 'position': 'relative', 'float': 'left' });
}
$('li.liWizardOption').show();
break;
case 'two':
if ($.browser.msie) {
$('li.liWizardOption').css({ 'height': '52px', 'position': 'relative', 'float': 'left' });
}
else {
$('li.liWizardOption').css({ 'height': '21px', 'position': 'relative', 'float': 'left' });
}
$('li.liWizardOption').show();
break;
case 'three':
$('li.liWizardOption').hide();
break;
default:
$('li.liWizardOption').hide();
break;
}
}
else {
$('li.liWizardOption').hide();
$(this).find(".divList").slideUp();
$(this).parent().nextAll().show();
$('li.liWizardOption').hide();
$(this).parent().nextAll().find(".select").css("visibility ", "visible");
}
});
$("#genreBlock .divList a").unbind("click").click(function(e) {
var id = $(this).attr("id");
var text = $(this).text();
var divSelect = $(this).parents(".genreBlock .select .divList");
if ($(this).parents(".genreBlock .divList").find(":input[id^='genreHiddenId'][value='" + id + "']").length > 0) return;
divSelect.children(":input[id^='genreHiddenId']").val(id);
divSelect.children("strong").text(text);
});
$(".artistBlock a[id^='delete_']").unbind("click").click(function(e) {
ConfigItemFromTagCloud($(this).prevAll(":input").val(), false);
$(this).prevAll(":input").val("");
$(this).removeClass("del");
});
$(".top_artists").unbind("click").click(function(e) {
$(this).attr("title", $(this).attr("title").replace("'", ""));
if ($(":input[id^='artistField'][value='" + $(this).attr("title") + "']").length > 0) {
alert("Oops, este Artista já está na sua seleção");
}
else if ($(":input[id^='artistField'][value='']").length == 0) {
alert("Oops, seleção de artista completa ");
}
else {
var el = $(":input[id^='artistField'][value='']:first");
$(el).val($(this).attr("title"));
$(el).nextAll("a").addClass("del hs");
$(this).css({ background: "#ff9900", color: "#fff" });
}
});
$("#createListBtn").unbind("click").click(function(e) {
$(".FilterWithList-w1").css("display", "none");
var artistNameGroup = "";
var genres = "";
var getSelected = "";
for (i = 0; i <= 2; i++) {
getSelected = $("#artistField_" + i + "").val();
if (getSelected != "" && getSelected != "nome do artista") {
artistNameGroup += getSelected.replace(" & ", " e ") + "|";
}
}
getSelected = "";
for (i = 0; i < 3; i++) {
getSelected = $("#genreHiddenId_" + i + "").val();
if (getSelected != "") {
genres += getSelected + "|";
}
}
if (artistNameGroup != "" || genres != "") {
sonora.showAJAXShiv("#sonora_content");
$(".waitBox").show("fast");
sonora.history.current = "/WizardGenerate";
sonora.wizard.action += "/selection";
sonora.metrics.trackPage("");
Wizard.Generate(artistNameGroup, genres, 0, function(data) {
if (data.status == "okay" && data.count > 0) {
Wizard.LoadListGenerated(artistNameGroup, genres, 0, function(html) {
$("#wizard_generated").append(html);
sonora.wizard.pageLoad();
$(".waitBox").hide("fast");
$("#wizard_options").css("display", "none");
sonora.hideAJAXShiv();
$("#wizard_generated").show("fast");
});
}
else {
if (data.status == "mediaunboundFail") {
alert("Oops, não conseguimos gerar uma playlist com essa combinação, por favor tente outra.");
}
else {
alert("Oops, serviço de gerar playlists temporariamente indisponível. Visite o canal Acervo.");
}
$(".waitBox").hide("fast");
sonora.hideAJAXShiv();
}
});
}
else {
alert("É necessário selecionar ao menos um artista ou estilo musical"); return false;
}
});
}
function ConfigItemFromTagCloud(title, action) {
var element = ".sugestions a[title='" + title + "']";
if ($(element).length > 0) {
if (action) {
$(element).css({ background: "#ff9900", color: "#fff" });
}
else {
$(element).css({ background: "#EEEEEE", color: "#47423A" });
}
}
}
function Wizard() { }
Wizard.LoadListGenerated = function(artistNameGroup, genres, playlistID, callback) {
var url = '/Wizard/WizardListGenereted?artistNameGroup=' + artistNameGroup + '&genres=' + genres + '&playlistID=' + playlistID;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("List loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading List \nError Message:" + error);
}
});
}
Wizard.Generate = function(artistNameGroup, genres, playlistID, callback) {
var url = '/Wizard/GenerateList?artistNameGroup=' + artistNameGroup + '&genres=' + genres + '&playlistID=' + playlistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("List Generated!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on Generate List \nError Message:" + error);
}
});
}
sonora.google_analytics =
{
init: function() {
this.analytic_page();
},
callPageTrack: function(url) {
pagatracker = document.getElementById('analyticContainer').contentWindow.pageTracker;
if (typeof (pagatracker) != "undefined") {
pagatracker._trackPageview(url);
} else {
setTimeout('sonora.google_analytics.callPageTrack("' + url + '")', 2000);
}
},
analytic_page: function() {
var srcPage = "/Content/googleAnalyticsIframe.htm";
analyticContainer = $("<iframe name='analyticContainer'></frame>")
.css("visibility", "hidden")
.attr("marginHeight", "0")
.attr("marginWidth", "0")
.attr("width", "1")
.attr("height", "1")
.attr("id", "analyticContainer")
.attr("src", srcPage);
$("body").append(analyticContainer);
}
}
function User() { }
User.Login = function(userName, password, save, callback) {
var url = '/User/Login';
$.ajax({
type: "POST",
url: url,
data: "userName=" + userName + "&password=" + password + "&storeCookie=" + save,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("loging loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on Loging \nError Message:" + error);
}
});
}
User.Logout = function(callback) {
var url = '/User/Logout';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("logout loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading logout \nError Message:" + error);
}
});
}
User.IsLogged = function(callback) {
var url = '/User/IsLogged';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("\"islogged\" loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"islogged\" \nError Message:" + error);
}
});
}
User.CartItems = function(callback) {
var url = '/User/CartItems';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("CartItems loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading CartItems \nError Message:" + error);
}
});
}
User.UserType = function(offset, limit, callback) {
var url = '/User/UserType';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("UserType loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading UserType \nError Message:" + error);
}
});
}
User.GetUserHistoryMusic = function(offset, limit, month, year, order, callback) {
var url = '/User/PlaylistMusicsHistoryJSon?offset=' + offset + '&limit=' + limit + '&month=' + month + '&year=' + year + '&order=' + order;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("UserHistory loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading UserHistory \nError Message:" + error);
}
});
}
User.WmpMode = function(callback) {
var url = '/User/WmpMode';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("wmp call success!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("wmp call error \nError Message:" + error);
}
});
}
User.DeleteSongLibrary = function(songID, callback) {
var url = '/User/DeleteSongLibrary';
$.ajax({
type: "POST",
url: url,
data: "songID=" + songID,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Delete song library loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on delete song library \nError Message:" + error);
}
});
}
User.LoginStoredData = function(callback) {
var url = '/User/LoginStoredData';
$.ajax({
type: "POST",
url: url,
data: "",
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("loging loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on Loging \nError Message:" + error);
}
});
}
User.GetUserWarning = function(callback) {
var url = '/User/GetUserWarning';
$.ajax({
type: "POST",
url: url,
data: "",
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("warning loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on Loging \nError Message:" + error);
}
});
}
User.GetMasterDivWarning = function(callback) {
var url = '/User/GetMasterDivWarning';
$.ajax({
type: "POST",
url: url,
data: "",
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("master div warning loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on Loging \nError Message:" + error);
}
});
}
User.PlayListAction = function(callback) {
var url = '/User/PlayListAction';
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("Playlist actions loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Playlist actions \nError Message:" + error);
}
});
}
User.ComplementButtons = function(callback) {
var url = '/User/ComplementButtons';
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
}
});
}
function Artist() {}
Artist.GetRelatedArtists = function(offset, limit, order, artistId, callback) {
var url = '/Artist/GetOrderedRelatedArtistsByJSon?offset=' + offset + '&limit=' + limit + '&order=' + order + '&artistId=' + artistId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Related Artists loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading Related Artists \nError Message:" + error);
}
});
}
Artist.GetMusics = function(offset, limit, order, artistId, callback) {
var url = '/Artist/GetMusicsByJSon?offset=' + offset + '&limit=' + limit + '&order=' + order + '&artistId=' + artistId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Artist Musics loaded!");
callback(json)
}
}
});
}
Artist.GetTopFansByJSon = function(artistId, callback) {
var url = 'http://localhost:2764/Artist/GetTopFansByJSon?artistId=' + artistId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Artist top fans loaded!");
callback(json);
}
}
});
}
function Cd() { }
Cd.GetRelatedCds = function(offset, limit, order, cdId, callback) {
var url = 'http://localhost:2764/Cd/GetOrderedRelatedCdsByJSon?offset=' + offset + '&limit=' + limit + '&order=' + order + '&cdId=' + cdId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Related CDs loaded!");
callback(json);
}
}
});
}
Cd.GetMusics = function(offset, limit, order, cdId, callback) {
var url = 'http://localhost:2764/Cd/GetMusicsByJSon?offset=' + offset + '&limit=' + limit + '&order=' + order + '&cdId=' + cdId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("CD musics loaded!");
callback(json);
}
}
});
}
Cd.GetTopFansByJSon = function(cdId, callback) {
var url = 'http://localhost:2764/Cd/GetTopFansByJSon?cdId=' + cdId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("CD top fans loaded!");
callback(json);
}
}
});
}
function Music() { }
Music.GetRelatedMusics = function(offset, limit, order, musicId, callback) {
var url = '/Music/GetOrderedRelatedMusicsByJSon?offset=' + offset + '&limit=' + limit + '&order=' + order + '&musicId=' + musicId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Related Musics loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading Related Musics \nError Message:" + error);
}
});
}
Music.GetTopFansByJSon = function(musicId, callback) {
var url = '/Music/GetTopFansByJSon?musicId=' + musicId;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("CD top fans loaded!");
callback(json);
}
}
});
}
function ShoppingCart() { }
ShoppingCart.add = function(ids, types, callback) {
var url = '/ShoppingCart/AddByJSon?ids=' + ids + '&types=' + types;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Add item to Shooping Cart loaded!");
callback(json);
}
if (sonora.broadcaster) {
sonora.broadcaster.dispatchEvent(sonora.events.SHOPPING_CART_MODIFIED, { type: sonora.events.SHOPPING_CART_MODIFIED });
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"Add item to Shooping Cart\" \nError Message:" + error);
}
});
}
ShoppingCart.remove = function(id, type, callback) {
var url = '/ShoppingCart/RemoveByJSon?ids=' + id + '&type=' + type;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Remove item from Shooping Cart loaded!");
callback(json);
}
if (sonora.broadcaster) {
sonora.broadcaster.dispatchEvent(sonora.events.SHOPPING_CART_MODIFIED, { type: sonora.events.SHOPPING_CART_MODIFIED });
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"Remove item from Shooping Cart\" \nError Message:" + error);
}
});
}
ShoppingCart.removeAll = function(callback) {
var url = '/ShoppingCart/RemoveAllByJSon';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Remove all items from Shooping Cart loaded!");
callback(json);
}
if (sonora.broadcaster) {
sonora.broadcaster.dispatchEvent(sonora.events.SHOPPING_CART_MODIFIED, { type: sonora.events.SHOPPING_CART_MODIFIED });
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"Remove all items from Shooping Cart\" \nError Message:" + error);
}
});
}
ShoppingCart.basket = function(callback) {
var url = '/ShoppingCart/BasketByJSon';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("List items basket from Shooping Cart loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"List items from Shooping Cart\" \nError Message:" + error);
}
});
}
ShoppingCart.checkout = function(callback) {
var url = '/ShoppingCart/CheckoutByJSon';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("List items basket from Shooping Cart loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"List items from Shooping Cart\" \nError Message:" + error);
}
});
}
ShoppingCart.validateCard = function(cardCode, fieldId, callback) {
var url = '/ShoppingCart/CardConfirmation?cardCode=' + cardCode;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("Card validation loaded!");
callback(html);
if (html.toString().length > 0) {
$('#' + fieldId).show();
$('#' + fieldId).html(html);
}
else {
ShoppingCart.Cardcheckout(callback);
}
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"CardValidation\" \nError Message:" + error);
}
});
}
ShoppingCart.Cardcheckout = function(callback) {
var url = '/ShoppingCart/Checkout';
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("List items basket from Shooping Cart loaded!");
callback(html);
$('#sonora_content').html(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"List items from Shooping Cart\" \nError Message:" + error);
}
});
}
function UserPlayList() {
}
UserPlayList.AddMusics = function(playlistID, songID, callback) {
var url = '/User/AddMusics?playlistID=' + playlistID + '&songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Music Added!");
callback(json)
}
}
});
}
UserPlayList.RemoveMusics = function(playlistID, songID, callback) {
var url = '/User/RemoveMusics?playlistID=' + playlistID + '&songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Music Removed!");
callback(json)
}
}
});
}
UserPlayList.SetPrivate = function(playlistID, callback) {
var url = '/User/SetPrivate?playlistID=' + playlistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PlayList Status Changed!");
callback(json)
}
}
});
}
UserPlayList.SetUnPrivate = function(playlistID, callback) {
var url = '/User/SetUnPrivate?playlistID=' + playlistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PlayList Status Changed!");
callback(json)
}
}
});
}
UserPlayList.Create = function(name, callback) {
var url = '/User/Create?name=' + name;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("New PlayList Created!");
callback(json)
}
}
});
}
UserPlayList.Rename = function(playlistID, newName, callback) {
var url = '/User/RenamePlaylist?playlistID=' + playlistID + '&newName=' + newName;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PlayList Name Changed!");
callback(json)
}
}
});
}
UserPlayList.Delete = function(playlistID, callback) {
var url = '/User/DeletePlaylist?playlistID=' + playlistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PlayList Delete!");
callback(json)
}
}
});
}
UserPlayList.ReorderItens = function(playlistID, songIDChanged, itemPositionFrom, itemPositionTo, callback) {
var pID = 0;
try {
pID = parseInt(playlistID, 10);
}
catch (e) { return; }
if (pID == NaN || !pID) {
return;
}
var url = '/User/ReorderItens?playlistID=' + pID + '&songIDChanged=' + songIDChanged + '&itemPositionFrom=' + itemPositionFrom + '&itemPositionTo=' + itemPositionTo;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PlayList itens Reordened!");
callback(json)
}
}
});
}
UserPlayList.PlayListView = function(offset, limit, playlistID, order, callback) {
var url = '/User/MyMusicsJSon?offset=' + offset + '&limit=' + limit + '&playlistID=' + playlistID + '&order=' + order;
$.ajax({
cache:false,
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("My PlayList Requested!");
callback(json)
}
}
});
}
UserPlayList.MyMusicsSearchJSon = function(offset, limit, search, order, callback, otherUserID) {
var url = '/User/MyMusicsSearchJSon?offset=' + offset + '&limit=' + limit + '&search=' + search + '&order=' + order + '&otherUserID=' + otherUserID;
$.ajax({
cache:false,
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Search Requested!");
callback(json)
}
}
});
}
UserPlayList.OrderAscDescItens = function(offset, limit, search, playlistID, order, callback) {
var url = '/User/MyMusicsSearchJSon?offset=' + offset + '&limit=' + limit + '&search=' + search + '&playlistID=' + playlistID + '&order=' + order;
$.ajax({
cache:false,
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Itens Reordened!");
callback(json)
}
}
});
}
UserPlayList.GetMusicsJSon = function(offset, limit, search, playlistID, order, callback) {
var url = '/User/PlaylistMusicsJSon?offset=' + offset + '&limit=' + limit + '&search=' + search + '&playlistID=' + playlistID + '&order=' + order;
$.ajax({
cache:false,
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Itens Reordened!");
callback(json)
}
}
});
}
UserPlayList.SetSongLike = function(songID, callback) {
var url = '/User/SetSongLike?songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (json.Status == 0) {
UserPlayList.RefreshItems(songID, 3);
}
if (callback && typeof (callback) == 'function') {
Logger.log("Set Song Like!");
callback(json);
}
}
});
}
UserPlayList.RefreshItems = function(songID, value) {
var lista = playlistSonora.playlist.mediaItems;
var listaPS = playlistSonora.playlist.playSequence;
var log = false;
var previous_value;
for (i = 0; i < lista.length; i++) {
if (lista[i].contentId == songID) {
previous_value = lista[i].rating;
lista[i].rating = value;
log = true;
}
if (listaPS[i].contentId == songID) {
previous_value = listaPS[i].rating;
listaPS[i].rating = value;
log = true;
}
}
if (log) {
Logger.log("Item " + songID + " changed the value for '" + value + "'");
}
}
UserPlayList.SetSongDefault = function(songID, callback) {
var url = '/User/SetSongDefault?songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (json.Status == 0) {
UserPlayList.RefreshItems(songID, 0);
}
if (callback && typeof (callback) == 'function') {
Logger.log("Set Default value Song!");
callback(json)
}
}
});
}
UserPlayList.SetSongUnLike = function(songID, callback) {
var url = '/User/SetSongUnLike?songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (json.Status == 0) {
UserPlayList.RefreshItems(songID, -1);
}
if (callback && typeof (callback) == 'function') {
Logger.log("Set Song Unlike!");
callback(json)
}
}
});
}
UserPlayList.AddMusicsUserLibrary = function(songID, callback) {
var url = '/User/AddMusicsUserLibrary?songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Music User Library Added!");
callback(json)
}
}
});
}
UserPlayList.AddMusicsUserLibraryFromArtist = function(songID, callback) {
var url = '/User/AddMusicsUserLibraryFromArtist?songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Music User Library Added!");
callback(json)
}
}
});
}
UserPlayList.AddArtistUserLibrary = function(artistID, callback) {
var url = '/User/AddArtistUserLibrary?artistID=' + artistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Artist to User Library Added!");
callback(json)
}
}
});
}
UserPlayList.AddCdUserLibrary = function(cdID, callback) {
var url = '/User/AddCdUserLibrary?cdID=' + cdID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Cd User Library Added!");
callback(json)
}
}
});
}
UserPlayList.DeleteSongLibrary = function(songID, callback) {
var url = '/User/DeleteSongLibrary?songID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Set Song Unlike!");
callback(json)
}
}
});
}
UserPlayList.GetMusicsHistoryJSon = function(offset, limit, month, year, order, search, otherUserID, callback) {
var url = '/User/PlaylistMusicsHistoryJSon?offset=' + offset + '&limit=' + limit + "&month=" + month + "&year=" + year + "&order=" + order + "&search=" + search + "&otherUserID=" + otherUserID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Playlist Musics History Loaded!");
callback(json)
}
}
});
}
UserPlayList.AddRadioUserLibrary = function(radioID, callback) {
var url = '/User/AddRadioUserLibrary?radioID=' + radioID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Radio Library Added!");
callback(json)
}
}
});
}
UserPlayList.SetProfilePrivate = function(callback) {
var url = '/User/SetProfilePrivate';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("User Profile Private Changed!");
callback(json)
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading Set Profile \nError Message:" + error);
}
});
}
UserPlayList.SetProfilePublic = function(callback) {
var url = '/User/SetProfilePublic';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("User Profile Public Changed!");
callback(json)
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading Set Profile \nError Message:" + error);
}
});
}
UserPlayList.AddGroupMusicsLibraryPlayList = function(playlistID, groupSongIds, callback) {
var url = '/User/AddGroupMusicsToPlaylist?playlistID=' + playlistID + '&groupSongIds=' + groupSongIds;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Group Musics Added!");
callback(json)
}
}
});
}
UserPlayList.DeleteGroupMusics = function(playlistID, groupSongIds, callback) {
var url = '/User/DeleteGroupMusics?playlistID=' + playlistID + '&groupSongIds=' + groupSongIds;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Group Musics Deleted!");
callback(json)
}
}
});
}
UserPlayList.ChangeRateGroupMusics = function(type, groupSongIds, callback) {
var url = '/User/ChangeRateGroupMusics?type=' + type + '&groupSongIds=' + groupSongIds;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Group Musics Rated!");
callback(json)
}
}
});
}
function Messages() {
}
Messages.ShareArtist = function(toName, toMail, fromName, fromMail, shareMessage, artistID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=Artist&actionID=' + artistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Artist Shared!");
callback(json)
}
}
});
}
Messages.ShareMusic = function(toName, toMail, fromName, fromMail, shareMessage, songID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=Music&actionID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Music Shared!");
callback(json)
}
}
});
}
Messages.ShareCd = function(toName, toMail, fromName, fromMail, shareMessage, cdID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=Cd&actionID=' + cdID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Cd Shared!");
callback(json)
}
}
});
}
Messages.ShareRadio = function(toName, toMail, fromName, fromMail, shareMessage, radioID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=Radio&actionID=' + radioID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Radio Shared!");
callback(json)
}
}
});
}
Messages.ShareMix = function(toName, toMail, fromName, fromMail, shareMessage, mixID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=Mix&actionID=' + mixID;
Logger.log("mix:" + url);
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Mix Shared!");
callback(json)
}
}
});
}
Messages.SharePlayer = function(toName, toMail, fromName, fromMail, shareMessage, songID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=Player&actionID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Player Shared!");
callback(json)
}
}
});
}
Messages.ShareAllSongs = function(toName, toMail, fromName, fromMail, shareMessage, artistID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=AllSongs&actionID=' + artistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("All Songs Shared!");
callback(json)
}
}
});
}
Messages.ShareAlbumView = function(toName, toMail, fromName, fromMail, shareMessage, cdID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=AlbumView&actionID=' + cdID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Album View Shared!");
callback(json)
}
}
});
}
Messages.ShareDetailsPageSong = function(toName, toMail, fromName, fromMail, shareMessage, songID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=DetailsPageSong&actionID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Details Page Shared!");
callback(json)
}
}
});
}
Messages.ShareCuratedPlayList = function(toName, toMail, fromName, fromMail, shareMessage, radioID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=CuratedPlayList&actionID=' + radioID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareSoundTrackCompilation = function(toName, toMail, fromName, fromMail, shareMessage, cdID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=SoundTrackCompilation&actionID=' + cdID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareOtherSongLists = function(toName, toMail, fromName, fromMail, shareMessage, songID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=OtherSongLists&actionID=' + songID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareMySonoraMyHystory = function(toName, toMail, fromName, fromMail, shareMessage, historyID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=MySonoraMyHystory&actionID=' + historyID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareMySonoraMyLibrary = function(toName, toMail, fromName, fromMail, shareMessage, other, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=MySonoraMyLibrary&actionID=0';
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareUserCreatedPlaylist = function(toName, toMail, fromName, fromMail, shareMessage, playlistID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=UserCreatedPlaylist&actionID=' + playlistID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareUserSonoraMyHistory = function(toName, toMail, fromName, fromMail, shareMessage, historyID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=UserSonoraMyHistory&actionID=' + historyID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareUserSonoraMyLibrary = function(toName, toMail, fromName, fromMail, shareMessage, playListID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=UserSonoraMyLibrary&actionID=' + playListID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
Messages.ShareUserSonoraPlayListOther = function(toName, toMail, fromName, fromMail, shareMessage, playListID, callback) {
var url = '/SendMail/RegisterMailToSend?toName=' + toName + '&toMail=' + toMail + '&fromName=' + fromName + '&fromMail=' + fromMail + '&shareMessage=' + shareMessage + '&sendType=UserSonoraPlayListOther&actionID=' + playListID;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("History Shared!");
callback(json)
}
}
});
}
function Player(){
}
Player = {
previous: function() {
playerSonora.isChangeUnattended = false;
playerSonora.previous();
sonora.player.queue.setCurrentPage();
},
next: function() {
playerSonora.isChangeUnattended = false;
playerSonora.next();
sonora.player.queue.setCurrentPage();
},
playItem: function(index) {
playerSonora.playItem(index);
},
play: function() {
playerSonora.play();
},
pause: function() {
playerSonora.pause();
},
stop: function() {
playerSonora.stop();
},
ff: function() {
playerSonora.fastForward();
},
rew: function() {
playerSonora.rewind();
},
mute: function() {
playerSonora.mute();
},
unmute: function() {
playerSonora.unmute();
},
repeat: function() {
playerSonora.repeat(true);
},
unrepeat: function() {
playerSonora.repeat(false);
},
increaseVolume: function() {
playerSonora.increaseVolume();
},
decreaseVolume: function() {
playerSonora.decreaseVolume();
},
getCurrentPlayState: function() {
return playerSonora.getCurrentPlayState();
},
getCurrentMediaDuration: function() {
return playerSonora.getCurrentMediaDuration();
},
getCurrentMedia: function() {
return playerSonora.getCurrentMedia();
},
setVolume: function(volume) {
playerSonora.changeVolume(volume);
},
seek: function(position) {
playerSonora.setPosition(position);
},
getCurrentIndex: function() {
return playerSonora.getCurrentIndex();
},
playMusic: function(musics, callback) {
if (Player.getCurrentPlayState() != PlayState.stopped)
Player.stop();
PlaylistHandler.addMusic(musics, function(json) {
if (callback || (callback + "").substr(0, 8) == "function")
callback(json);
var c = Player.getCurrentIndex();
Player.playItem(c + 1);
}, true);
},
addMusic: function(musics, callback) {
if (PlaylistHandler.getItems().length == 0) {
Player.playMusic(musics, callback);
}
else {
PlaylistHandler.addMusic(musics, callback);
}
},
addAlbum: function(albumId, callback) {
if (PlaylistHandler.getItems().length == 0) {
Player.playAlbum(albumId, callback);
}
else {
PlaylistHandler.addCd(albumId, callback);
}
},
playAlbum: function(albumId, callback) {
if (Player.getCurrentPlayState() != PlayState.stopped)
Player.stop();
PlaylistHandler.addCd(albumId, function(json) { if (callback) callback(json); var c = Player.getCurrentIndex(); Player.playItem(c + 1); }, true);
},
playUserPlaylist: function(playlistId, callback) {
if (Player.getCurrentPlayState() != PlayState.stopped)
Player.stop();
PlaylistHandler.addUserPlaylist(playlistId, function(json) { if (callback) callback(json); var c = Player.getCurrentIndex(); Player.playItem(c + 1); }, true);
},
addEditorPlaylist: function(playlistId, callback) {
if (PlaylistHandler.getItems().length == 0) {
Player.playEditorPlaylist(playlistId, callback);
}
else {
PlaylistHandler.addEditorPlaylist(playlistId, callback);
}
},
addGenrePlaylist: function(playlistId, callback) {
if (PlaylistHandler.getItems().length == 0) {
Player.playGenrePlaylist(playlistId, callback);
}
else {
PlaylistHandler.addGenrePlaylist(playlistId, callback);
}
},
playEditorPlaylist: function(playlistId, callback) {
if (Player.getCurrentPlayState() != PlayState.stopped)
Player.stop();
PlaylistHandler.addEditorPlaylist(playlistId, function(json) { if (callback) callback(json); var c = Player.getCurrentIndex(); Player.playItem(c + 1); }, true);
},
playGenrePlaylist: function(playlistId, callback) {
if (Player.getCurrentPlayState() != PlayState.stopped)
Player.stop();
PlaylistHandler.addGenrePlaylist(playlistId, function(json) { if (callback) callback(json); var c = Player.getCurrentIndex(); Player.playItem(c + 1); }, true);
},
addUserPlaylist: function(playlistId, callback) {
if (PlaylistHandler.getItems().length == 0) {
Player.playUserPlaylist(playlistId, callback);
}
else {
PlaylistHandler.addUserPlaylist(playlistId, callback);
}
},
addMediaChangeCallback: function(callback) {
if (callback) {
playerSonora.addMediaChangeCallback(callback);
}
else {
throw new Error('Player.addMediaChangeCallback error: callback must not be undefined and must be a function');
}
},
addPositionChangeCallback: function(callback) {
if (callback) {
playerSonora.addPositionChangeCallback(callback);
}
else {
throw new Error('Player.addPositionChangeCallback error: callback must not be undefined and must be a function');
}
},
addStateChangeCallback: function(callback) {
if (callback) {
playerSonora.addStateChangeCallback(callback);
}
else {
throw new Error('Player.addStateChangeCallback error: callback must not be undefined and must be a function');
}
},
addPlaylistChangedCallback: function(callback) {
if (callback) {
PlaylistHandler.addPlaylistChangedCallback(callback);
}
else {
throw new Error('Player.addStateChangeCallback error: callback must not be undefined and must be a function');
}
}
};
function Radio() { }
Radio.GetRadioName = function(id, type, callback) {
if (type == "mix") type = "1";
else type = 0;
var url = '/Radio/GetName?ids=' + id + "&type=" + type;
$.ajax({
type: "GET",
url: url,
dataType: "text",
success: function(data) {
if (callback && typeof (callback) == 'function') {
Logger.log("Get Radio Name Successfull!");
callback(data);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Erro on loading \"Getting Radio Name\" \nError Message:" + error);
}
});
}
function RandomizeArray(array){
var i = array.length;
if ( i == 0 ) return false;
while ( --i ) {
var j = Math.floor( Math.random() * ( i + 1 ) );
var tempi = array[i];
var tempj = array[j];
array[i] = tempj;
array[j] = tempi;
}
}
function PlaylistHandler(){
}
PlaylistHandler = {
playlistChangeEvents: [],
addMusic: function(musicArray, callback, insertInFront) {
if (playerSonora && musicArray.length) {
if (musicArray.length > 40) {
RandomizeArray(musicArray);
musicArray = musicArray.splice(0, 40);
}
var musicIds = musicArray.join(',');
var url = "/Media/List?type=musics&ids=" + musicIds;
PlaylistHandler.getMedias(url, callback, insertInFront);
}
},
addCd: function(cdId, callback, insertInFront) {
if (playerSonora && cdId > 0) {
var url = '/Media/List/Cd/' + cdId;
PlaylistHandler.getMedias(url, callback, insertInFront);
}
},
addUserPlaylist: function(playlistId, callback, insertInFront) {
if (playerSonora && playlistId > 0) {
var url = '/Media/List/PlaylistUser/' + playlistId;
PlaylistHandler.getMedias(url, callback, insertInFront);
}
},
addEditorPlaylist: function(playlistId, callback, insertInFront) {
if (playerSonora && playlistId > 0) {
var url = '/Media/List/PlaylistEditor/' + playlistId;
PlaylistHandler.getMedias(url, callback, insertInFront);
}
},
addGenrePlaylist: function(playlistId, callback, insertInFront) {
if (playerSonora && playlistId > 0) {
var url = '/Media/List/GenreRadio/' + playlistId;
PlaylistHandler.getMedias(url, callback, insertInFront);
}
},
returnEditorPlaylist: function(playlistId, callback) {
if (playerSonora && playlistId > 0) {
var url = '/Media/List/PlaylistEditor/' + playlistId;
PlaylistHandler.returnMedias(url, callback);
}
},
getMedias: function(url, callback, insertInFront) {
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
var currentIndex = Player.getCurrentIndex();
currentIndex++;
if (json.length) // Is Array
{
for (var i = 0; i < json.length; i++) {
var mi = ParseMedia_Json(json[i]);
if (insertInFront)
playlistSonora.insertItem(i + currentIndex, mi);
else
playlistSonora.add(mi);
}
}
else // Single Music
{
var mi = ParseMedia_Json(json);
if (insertInFront)
playlistSonora.insertItem(currentIndex + 1, mi);
else
playlistSonora.add(mi);
}
if (callback && typeof (callback == 'function'))
callback(json);
PlaylistHandler.playlistStateChange();
}
});
},
returnMedias: function(url, callback) {
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
var medias = [];
if (json.length) // Is Array
{
for (var i = 0; i < json.length; i++) {
var mi = ParseMedia_Json(json[i]);
medias.push(mi);
}
}
else // Single Music
{
var mi = ParseMedia_Json(json);
medias.push(mi)
}
if (callback && typeof (callback == 'function'))
callback(medias);
}
});
},
clear: function() {
Player.stop();
playlistSonora.clear();
PlaylistHandler.playlistStateChange();
},
shuffle: function(shuffle) {
var currentMusicIndex = Player.getCurrentIndex();
playlistSonora.setShuffle(shuffle, currentMusicIndex);
},
removeItem: function(index) {
var currentIndex = Player.getCurrentIndex();
var count = playlistSonora.playlist.count();
if (index == currentIndex) {
if (count - 1 == currentIndex)
Player.stop();
else
Player.next();
}
playlistSonora.removeItem(index);
PlaylistHandler.playlistStateChange();
},
getItems: function() {
return playlistSonora.getItems();
},
addPlaylistChangedCallback: function(callback) {
this.playlistChangeEvents.push(callback);
},
playlistStateChange: function() {
var items = this.getItems();
if (this.playlistChangeEvents.length > 0) {
for (var i = 0; i < this.playlistChangeEvents.length; i++)
this.playlistChangeEvents[i](items);
}
}
}
function ParseMedia_Json( media ) {
var mi = new MediaItem(media.id, media.title, media.cdCovermed, media.duration, new Array() );
mi.album = media.album;
mi.albumId = media.albumId;
mi.artist = media.artist;
mi.artistId = media.artistId;
mi.recordLabel = media.recordLabel;
mi.recordLabelId = media.recordLabelId;
mi.setUrl(0, media.url);
mi.cdCoverHigh = media.cdCoverHigh;
mi.cdCoverLow = media.cdCoverLow;
mi.cdCoverMed = media.cdCoverMed;
mi.albumUrl = media.albumUrl;
mi.musicUrl = media.musicUrl;
mi.artistUrl = media.artistUrl;
mi.price = media.price;
mi.rating = media.rating;
mi.spot = media.spot;
return mi;
}
function Explorer() { }
Explorer.PopularSongs = function(offset, limit, id, genreName, callback) {
var url = '/Mais-Tocadas/Musicas/' + id + '/' + genreName + '/fragment/list/?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("PopularSongs loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Popular Songs \nError Message:" + error);
}
});
}
Explorer.PopularArtists = function(offset, limit, id, genreName, callback) {
var url = '/Mais-Tocados/Artistas/' + id + '/' + genreName + '/fragment/list/?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("PopularArtists loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Popular Artists \nError Message:" + error);
}
});
}
Explorer.PopularAlbums = function(offset, limit, id, genreName, callback) {
var url = '/Mais-Tocados/Cds/' + id + '/' + genreName + '/fragment/list/?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("PopularAlbums loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Popular Albums \nError Message:" + error);
}
});
}
Explorer.Picks = function(offset, limit, id, genreName, callback) {
var url = '/Destaques/' + id + '/' + genreName + '/fragment/list?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("Picks loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Picks \nError Message:" + error);
}
});
}
Explorer.NowSongs = function(offset, limit, id, genreName, callback) {
var url = '/Agora/' + id + '/' + genreName + '/fragment/list?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("NowSongs loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Now Songs \nError Message:" + error);
}
});
}
Explorer.NowArtists = function(offset, limit, id, genreName, callback) {
var url = '/Agora/Mais-Tocados/Artistas/' + id + '/' + genreName + '/Fragment/list?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("NowArtists loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Now Artists \nError Message:" + error);
}
});
}
Explorer.NowAlbums = function(offset, limit, id, genreName, callback) {
var url = '/Agora/Mais-Tocados/CDs/' + id + '/' + genreName + '/Fragment/list?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("NowAlbums loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Now Albums \nError Message:" + error);
}
});
}
Explorer.NowRadios = function(offset, limit, id, genreName, callback) {
var url = '/Agora/Mais-Tocados/Radios/' + id + '/' + genreName + '/Fragment/list?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("NowRadios loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Now Radios \nError Message:" + error);
}
});
}
Explorer.MosaicPicks = function(id, callback) {
var url = '/Explorer/PicksExplorer?id=' + id;
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function(html) {
if (callback && typeof (callback) == 'function') {
Logger.log("MosaicPicks loaded!");
callback(html);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading MosaicPicks \nError Message:" + error);
}
});
}
Explorer.PopularSongsJSon = function(offset, limit, id, genreName, callback) {
var url = '/Mais-Tocadas/Musicas/' + id + '/' + genreName + '/JSon/?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PopularSongs JSon loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Popular Songs JSon \nError Message:" + error);
}
});
}
Explorer.PopularArtistsJSon = function(offset, limit, id, genreName, callback) {
var url = '/Mais-Tocados/Artistas/' + id + '/' + genreName + '/JSon?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PopularArtists JSon loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Popular Artists JSon \nError Message:" + error);
}
});
}
Explorer.PopularAlbumsJSon = function(offset, limit, id, genreName, callback) {
var url = '/Mais-Tocados/Cds/' + id + '/' + genreName + '/JSon?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("PopularAlbums JSon loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Popular Albums JSon \nError Message:" + error);
}
});
}
Explorer.PicksJSon = function(offset, limit, id, genreName, callback) {
var url = '/Destaques/' + id + '/' + genreName + '/JSon?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Picks JSon loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Picks JSon \nError Message:" + error);
}
});
}
Explorer.NowJSon = function(offset, limit, id, genreName, callback) {
var url = '/Agora/' + id + '/' + genreName + '/JSon?offset=' + offset + '&limit=' + limit;
$.ajax({
type: "GET",
url: url,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
Logger.log("Now JSon loaded!");
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
Logger.error("Error on loading Now JSon \nError Message:" + error);
}
});
}
function UserDevice() { }
UserDevice.DeActivateDevice = function(id, callback) {
var url = '/MinhaConta/DeActivateDevice';
$.ajax({
type: "POST",
url: url,
data: "id=" + id,
dataType: "json",
success: function(json) {
if (callback && typeof (callback) == 'function') {
callback(json);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
error = textStatus;
if (error == null) {
error = errorThrown;
}
}
});
}
function DownloadManagerInterface()
{
}
function UserInterface() { }
UserInterface.Login = function(userName, password, save) {
User.Login(userName, password, save, Debug);
}
UserInterface.Logout = function() {
User.Logout(Debug);
}
UserInterface.IsLogged = function(callback) {
User.IsLogged(Debug);
}
UserInterface.CartItems = function(callback) {
User.CartItems(Debug);
}
UserInterface.UserType = function(callback) {
User.UserType(Debug);
}
UserInterface.GetUserHistoryMusic = function(offset, limit, month, year, order) {
User.GetUserHistoryMusic(offset, limit, month, year, order, Debug);
}
UserInterface.DeleteSongLibrary = function(songID) {
User.DeleteSongLibrary(songID, Debug);
}
UserInterface.LoginStoredData = function() {
User.LoginStoredData(Debug);
}
UserInterface.GetUserWarning = function() {
User.GetUserWarning(Debug);
}
function Debug(retorno)
{
if (window.console && typeof (window.console.dir) != "undefined")
{
window.console.dir(retorno);
}
}
function ArtistInterface()
{
}
ArtistInterface.GetRelatedArtists = function(offset, limit, order, artistId) {
Artist.GetRelatedArtists(offset, limit, order, artistId, Debug)
}
ArtistInterface.GetMusics = function(offset, limit, order, artistId)
{
Artist.GetMusics(offset, limit, order, artistId, Debug);
}
ArtistInterface.GetTopFansByJSon = function(artistId)
{
Artist.GetTopFansByJSon(artistId, Debug);
}
function CdInterface() { }
CdInterface.GetRelatedCds = function(offset, limit, order, cdId) {
Cd.GetRelatedCds(offset, limit, order, cdId, Debug);
}
CdInterface.GetMusics = function(offset, limit, order, cdId) {
Cd.GetMusics(offset, limit, order, cdId, Debug);
}
CdInterface.GetTopFansByJSon = function(cdId) {
Cd.GetTopFansByJSon(cdId, Debug);
}
function MusicInterface() { }
MusicInterface.GetRelatedMusics = function(offset, limit, order, musicId) {
Music.GetRelatedMusics(offset, limit, order, musicId, Debug);
}
MusicInterface.GetTopFansByJSon = function(musicId) {
Music.GetTopFansByJSon(musicId, Debug);
}
function ShoppingCartInterface() { }
ShoppingCartInterface.add = function(ids, types) {
ShoppingCart.add(ids, types, Debug);
}
ShoppingCartInterface.remove = function(id, type) {
ShoppingCart.remove(id, type, Debug);
}
ShoppingCartInterface.removeAll = function() {
ShoppingCart.removeAll(Debug);
}
ShoppingCartInterface.basket = function() {
ShoppingCart.basket(Debug);
}
ShoppingCartInterface.checkout = function() {
ShoppingCart.checkout(Debug);
}
ShoppingCartInterface.validateCard = function(cardCode, fieldId) {
ShoppingCart.validateCard(cardCode, fieldId, Debug);
}
function UserPlayListInterface() {
}
UserPlayListInterface.SetPrivate = function(playlistID) {
UserPlayList.SetPrivate(playlistID, Debug);
}
UserPlayListInterface.SetUnPrivate = function(playlistID) {
UserPlayList.SetPrivate(playlistID, Debug);
}
UserPlayListInterface.Create = function(name) {
UserPlayList.Create(name, Debug);
}
UserPlayListInterface.Rename = function(playlistID, newName) {
UserPlayList.Rename(playlistID, newName, Debug);
}
UserPlayListInterface.Delete = function(playlistID) {
UserPlayList.Delete(playlistID, Debug);
}
UserPlayListInterface.PlayListView = function(offset, limit, playlistID, order) {
UserPlayList.PlayListView(offset, limit, playlistID, order, Debug);
}
UserPlayListInterface.MyMusicsSearchJSon = function(offset, limit, search, order, otherUserID) {
UserPlayList.MyMusicsSearchJSon(offset, limit, search, order, otherUserID, Debug);
}
UserPlayListInterface.SetSongLike = function(idSong) {
UserPlayList.SetSongLike(idSong, Debug);
}
UserPlayListInterface.SetSongUnLike = function(idSong) {
UserPlayList.SetSongUnLike(idSong, Debug);
}
UserPlayListInterface.SetSongDefault = function(idSong) {
UserPlayList.SetSongDefault(idSong, Debug);
}
UserPlayListInterface.OrderAscDescItens = function(offset, limit, search, playlistID, order) {
UserPlayList.OrderIntemsLiested(offset, limit, search, playlistID, order, Debug);
}
UserPlayListInterface.ReorderItens = function(playlistID, songIDChanged, itemPositionFrom, itemPositionTo) {
UserPlayList.ReorderItens(playlistID, songIDChanged, itemPositionFrom, itemPositionTo, Debug);
}
UserPlayListInterface.AddMusics = function(playlistID, songID) {
UserPlayList.AddMusics(playlistID, songID, Debug);
}
UserPlayListInterface.RemoveMusics = function(playlistID, songID) {
UserPlayList.RemoveMusics(playlistID, songID, Debug);
}
UserPlayListInterface.DeleteSongLibrary = function(songID) {
UserPlayList.DeleteSongLibrary(songID, Debug);
}
UserPlayListInterface.AddMusicsUserLibrary = function(songID) {
UserPlayList.AddMusicsUserLibrary(songID, Debug);
}
UserPlayListInterface.AddMusicsUserLibraryFromArtist = function(songID) {
UserPlayList.AddMusicsUserLibraryFromArtist(songID, Debug);
}
UserPlayListInterface.AddCdUserLibrary = function(cdID) {
UserPlayList.AddCdUserLibrary(cdID, Debug);
}
UserPlayListInterface.AddRadioUserLibrary = function(radioID) {
UserPlayList.AddRadioUserLibrary(radioID, Debug);
}
UserPlayListInterface.GetMusicsJSon = function(offset, limit, search, playlistID, order) {
UserPlayList.GetMusicsJSon(offset, limit, search, playlistID, order, all, Debug);
}
UserPlayListInterface.GetMusicsHistoryJSon = function(offset, limit, month, year, order, search, otherUserID) {
UserPlayList.GetMusicsHistoryJSon(offset, limit, month, year, order, search, otherUserID, Debug);
}
UserPlayListInterface.SetProfilePrivate = function() {
UserPlayList.SetProfilePrivate(Debug);
}
UserPlayListInterface.SetProfilePublic = function() {
UserPlayList.SetProfilePublic(Debug);
}
function MessagesInterface() {
}
MessagesInterface.ShareArtist = function(toName, toMail, fromName, fromMail, shareMessage, artistID) {
Messages.ShareArtist(toName, toMail, fromName, fromMail, shareMessage, artistID, Debug);
}
MessagesInterface.ShareMusic = function(toName, toMail, fromName, fromMail, shareMessage, songID) {
Messages.ShareMusic(toName, toMail, fromName, fromMail, shareMessage, songID, Debug);
}
MessagesInterface.ShareCd = function(toName, toMail, fromName, fromMail, shareMessage, cdID) {
Messages.ShareCd(toName, toMail, fromName, fromMail, shareMessage, cdID, Debug);
}
MessagesInterface.SharePlayer = function(toName, toMail, fromName, fromMail, shareMessage, songID) {
Messages.SharePlayer(toName, toMail, fromName, fromMail, shareMessage, songID, Debug);
}
MessagesInterface.ShareAllSongs = function(toName, toMail, fromName, fromMail, shareMessage, artistID) {
Messages.ShareAllSongs(toName, toMail, fromName, fromMail, shareMessage, artistID, Debug);
}
MessagesInterface.ShareAlbumView = function(toName, toMail, fromName, fromMail, shareMessage, cdID) {
Messages.ShareAlbumView(toName, toMail, fromName, fromMail, shareMessage, cdID, Debug);
}
MessagesInterface.ShareDetailsPageSong = function(toName, toMail, fromName, fromMail, shareMessage, songID) {
Messages.ShareDetailsPageSong(toName, toMail, fromName, fromMail, shareMessage, songID, Debug);
}
MessagesInterface.ShareCuratedPlayList = function(toName, toMail, fromName, fromMail, shareMessage, radioID) {
Messages.ShareCuratedPlayList(toName, toMail, fromName, fromMail, shareMessage, radioID, Debug);
}
MessagesInterface.ShareSoundTrackCompilation = function(toName, toMail, fromName, fromMail, shareMessage, cdID) {
Messages.ShareSoundTrackCompilation(toName, toMail, fromName, fromMail, shareMessage, cdID, Debug);
}
MessagesInterface.ShareOtherSongLists = function(toName, toMail, fromName, fromMail, shareMessage, songID) {
Messages.ShareOtherSongLists(toName, toMail, fromName, fromMail, shareMessage, songID, Debug);
}
MessagesInterface.ShareMySonoraMyHystory = function(toName, toMail, fromName, fromMail, shareMessage, historyID) {
Messages.ShareMySonoraMyHystory(toName, toMail, fromName, fromMail, shareMessage, historyID, Debug);
}
MessagesInterface.ShareMySonoraMyLibrary = function(toName, toMail, fromName, fromMail, shareMessage) {
Messages.ShareMySonoraMyLibrary(toName, toMail, fromName, fromMail, shareMessage, Debug);
}
MessagesInterface.ShareUserCreatedPlaylist = function(toName, toMail, fromName, fromMail, shareMessage, playlistID) {
Messages.ShareUserCreatedPlaylist(toName, toMail, fromName, fromMail, shareMessage, playlistID, Debug);
}
MessagesInterface.ShareUserSonoraMyHistory = function(toName, toMail, fromName, fromMail, shareMessage, historyID) {
Messages.ShareUserSonoraMyHistory(toName, toMail, fromName, fromMail, shareMessage, historyID, Debug);
}
MessagesInterface.ShareUserSonoraMyLibrary = function(toName, toMail, fromName, fromMail, shareMessage, playListID) {
Messages.ShareUserSonoraMyLibrary(toName, toMail, fromName, fromMail, shareMessage, playListID, Debug);
}
MessagesInterface.ShareUserSonoraPlayListOther = function(toName, toMail, fromName, fromMail, shareMessage, playListID) {
Messages.ShareUserSonoraPlayListOther(toName, toMail, fromName, fromMail, shareMessage, playListID, Debug);
}
function PlayerInterface(){
}
PlayerInterface = {
previous: function(){
Player.previous();
},
next: function(){
Player.next();
},
playItem: function(index){
Player.playItem(index);
},
play: function(){
Player.play();
},
pause: function(){
Player.pause();
},
stop: function(){
Player.stop();
},
ff: function(){
Player.fastForward();
},
rew: function(){
Player.rewind();
},
mute: function(){
Player.mute();
},
unmute: function(){
Player.unmute();
},
repeat: function(){
Player.repeat();
},
unrepeat: function(){
Player.unrepeat();
},
increaseVolume: function()
{
Player.increaseVolume();
},
decreaseVolume: function(){
Player.decreaseVolume();
},
getCurrentPlayState: function(){
return Player.getCurrentPlayState();
},
getCurrentMediaDuration: function(){
return Player.getCurrentMediaDuration();
},
getCurrentMedia: function(){
return Player.getCurrentMedia();
},
setVolume: function( volume ){
Player.changeVolume( volume );
},
seek: function( position ){
Player.seek( position );
},
playMusic: function( musics ){
Player.playMusic( musics, function(mediaItemObject){ } );
},
addMusic: function( musics ){
Player.addMusic( musics, function(mediaItemObject){ } );
},
addAlbum: function( albumId ) {
Player.addAlbum( albumId, function(mediaItemObject){ } );
},
playAlbum: function( albumId ) {
Player.playAlbum( albumId, function(mediaItemObject){ } );
},
addUserPlaylist: function( playlistId ){
Player.addUserPlaylist( playlistId, function(mediaItemObject){ } );
},
playUserPlaylist: function( playlistId ){
Player.playUserPlaylist( playlistId, function(mediaItemObject){ } );
},
addEditorPlaylist: function( playlistId ){
Player.addEditorPlaylist( playlistId, function(mediaItemObject){ } );
},
playEditorPlaylist: function( playlistId ){
Player.playEditorPlaylist( playlistId, function(mediaItemObject){ } );
},
activateShuffle: function(){
PlaylistHandler.shuffle( true );
},
deactivateShuffle: function(){
PlaylistHandler.shuffle(false);
},
getCurrentPlaylistItems: function(){
var plItems = PlaylistHandler.getItems();
},
addEventHandlersExample: function(){
Player.addStateChangeCallback( function( newState ){ } );
Player.addPositionChangeCallback( function( duration, currentPosition ){ } );
Player.addMediaChangeCallback( function( newMediaItem ){ } );
}
}
function playStateToString( value ) {
switch( value )
{
case 0: return 'undefined';
case 1: return 'stopped';
case 2: return 'paused';
case 3: return 'playing';
case 4: return 'buffering';
case 5: return 'forwarding';
case 6: return 'rewinding';
}
}
function ExplorerInterface() {
}
ExplorerInterface.PopularSongs = function(offset, limit, id, genreName) {
Explorer.PopularSongs(offset, limit, id, genreName, Debug)
}
ExplorerInterface.PopularArtists = function(offset, limit, id, genreName) {
Explorer.PopularArtists(offset, limit, id, genreName, Debug)
}
ExplorerInterface.PopularAlbums = function(offset, limit, id, genreName) {
Explorer.PopularAlbums(offset, limit, id, genreName, Debug)
}
ExplorerInterface.Picks = function(offset, limit, id, genreName) {
Explorer.Picks(offset, limit, id, genreName, Debug)
}
ExplorerInterface.PopularSongsJSon = function(offset, limit, id, genreName) {
Explorer.PopularSongsJSon(offset, limit, id, genreName, Debug)
}
ExplorerInterface.PopularArtistsJSon = function(offset, limit, id, genreName) {
Explorer.PopularArtistsJSon(offset, limit, id, genreName, Debug)
}
ExplorerInterface.PopularAlbumsJSon = function(offset, limit, id, genreName) {
Explorer.PopularAlbumsJSon(offset, limit, id, genreName, Debug)
}
ExplorerInterface.PicksJSon = function(offset, limit, id, genreName) {
Explorer.PicksJSon(offset, limit, id, genreName, Debug)
}
ExplorerInterface.Now = function(offset, limit, id, genreName) {
Explorer.NowSongs(offset, limit, id, genreName, Debug)
}
ExplorerInterface.NowJSon = function(offset, limit, id, genreName) {
Explorer.NowJSon(offset, limit, id, genreName, Debug)
}
function UserDeviceInterface() { }
function Retorno(retorno) {
if (retorno.deactivate == 'true')
window.location.reload();
}
UserDeviceInterface.DeActivateDevice = function(id) {
UserDevice.DeActivateDevice(id, Retorno);
}
function RadioInterface() { }
RadioInterface.GetRadioName = function(id, type) {
Radio.GetRadioName(id, type, Debug);
}
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
this.version = this.searchVersion(navigator.userAgent)
|| this.searchVersion(navigator.appVersion)
|| "an unknown version";
this.OS = this.searchString(this.dataOS) || "an unknown OS";
},
searchString: function (data) {
for (var i=0;i<data.length;i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
searchVersion: function (dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index == -1) return;
return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
},
dataBrowser: [
{ string: navigator.userAgent,
subString: "OmniWeb",
versionSearch: "OmniWeb/",
identity: "OmniWeb"
},
{
string: navigator.vendor,
subString: "Apple",
identity: "Safari"
},
{
prop: window.opera,
identity: "Opera"
},
{
string: navigator.vendor,
subString: "iCab",
identity: "iCab"
},
{
string: navigator.vendor,
subString: "KDE",
identity: "Konqueror"
},
{
string: navigator.userAgent,
subString: "Firefox",
identity: "Firefox"
},
{
string: navigator.vendor,
subString: "Camino",
identity: "Camino"
},
{ // for newer Netscapes (6+)
string: navigator.userAgent,
subString: "Netscape",
identity: "Netscape"
},
{
string: navigator.userAgent,
subString: "MSIE",
identity: "Explorer",
versionSearch: "MSIE"
},
{
string: navigator.userAgent,
subString: "Gecko",
identity: "Mozilla",
versionSearch: "rv"
},
{ // for older Netscapes (4-)
string: navigator.userAgent,
subString: "Mozilla",
identity: "Netscape",
versionSearch: "Mozilla"
}
],
dataOS : [
{
string: navigator.platform,
subString: "Win",
identity: "Windows"
},
{
string: navigator.platform,
subString: "Mac",
identity: "Mac"
},
{
string: navigator.platform,
subString: "Linux",
identity: "Linux"
}
]
};
BrowserDetect.init();
var alternateWmpRender = false;
function GetPlayerType()
{
var player = null;
var playerType = new PlayerType();
if (window.ActiveXObject) {
try {
player = new ActiveXObject("WMPlayer.OCX.7");
}
catch (e) { }
if (player) {
return (playerType.WindowsMedia);
}
}
if (window.ActiveXObject)
{
try
{
player = new ActiveXObject("AgControl.AgControl");
}
catch(e) {}
if (player) {
return (playerType.Silverlight);
}
}
if(HasPlugin("Silverlight"))
{
var slSupported = false;
slSupported |= BrowserDetect.browser=="Firefox";
slSupported |= (BrowserDetect.browser == "Safari" && BrowserDetect.OS == "Mac");
if (slSupported) {
return playerType.Silverlight;
}
}
if (window.ActiveXObject)
{
try
{
player = new ActiveXObject("MediaPlayer.MediaPlayer.1");
}
catch(e) {}
if(player)
return (playerType.WindowsMedia);
}
if(HasPlugin("Windows Media Player Firefox"))
{
alternateWmpRender = true; // Uses
return (playerType.WindowsMedia);
}
if (window.GeckoActiveXObject)
{
try
{
player = new GeckoActiveXObject("MediaPlayer.MediaPlayer.1");
}
catch (e) {}
if(player)
return (playerType.WindowsMedia);
}
return (playerType.Unsupported);
}
function HasPlugin(plugin)
{
for(var i = 0; i < navigator.plugins.length; i++)
{
if(navigator.plugins[i].name.indexOf(plugin) != -1)
return (true);
}
return (false);
}
function PlayerType ()
{
this.Unsupported = 0;
this.WindowsMedia = 1;
this.Quicktime = 2;
this.Silverlight = 3;
}
var playerSonora;
var playlistSonora;
var playerUsed = GetPlayerType();
function CheckPlayer()
{
var player_obj = document.playerSonoraObject; // Player
var playerType = new PlayerType();
if(playerUsed==playerType.Silverlight)
{
var mediaObj = null
try
{
mediaObj = player_obj.Content.findName("media")
}
catch(e)
{
}
if(mediaObj)
{
mediaObj.addEventListener("mediaEnded", "slMediaEnd");
return(true);
}
else
{
return(false);
}
}
if (player_obj)
{
if(player_obj.settings || player_obj.GetURL)
{
return(true);
}
}
return(false);
}
function slMediaEnd()
{
playerSonora.player.mediaEnd();
}
function Initialize()
{
if(CheckPlayer())
{
PerformInitialize();
}
else
{
window.setTimeout('Initialize()', 500);
}
}
function PerformInitialize()
{
playerSonora = new PlayerSonora('playerSonora', playerUsed);
playlistSonora = new PlaylistSonora('playlistSonora');
playerSonora.setCurrentPlaylist(playlistSonora);
Player.addMediaChangeCallback(function(mediaItem) {
if (!sonora.isInWMP) {
if (console) {
}
if (!playerSonora.isChangeUnattended) {
MediaUnbound.submitTrackEvent(mediaItem.contentId);
} else {
MediaUnbound.submitPassiveTrackEvent(mediaItem.contentId);
playerSonora.isChangeUnatted = false;
}
}
});
sonora.player.init();
}
function renderPlayer() {
var playerType = new PlayerType();
if (playerUsed == playerType.WindowsMedia) {
if(alternateWmpRender)
{
document.write('<OBJECT id=\"playerSonoraObject\" name=\"playerSonoraObject\" trr.id=\"son\" type=\"application/x-ms-wmp\" height=\"0\">\n');
}
else {
document.write('<OBJECT id=\"playerSonoraObject\" name=\"playerSonoraObject\" trr.id=\"son\" CLASSID=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\" width=\"0\" height=\"0\">\n');
}
document.write('<param name=\"URL\" value=\"\">\n');
document.write('<param name=\"AutoStart\" value=\"False\">\n');
document.write('<param name=\"TransparentAtStart\" value=\"0\">\n');
document.write('<param name=\"ShowStatusBar\" value=\"0\">\n');
document.write('<param name=\"ShowDisplay\" value=\"0\">\n');
document.write('<param name=\"AutoSize value=\"0\">\n');
document.write('<param name=\"UImode\" value=\"none\">\n');
document.write('<param name=\"AnimationAtStart\" value=\"True\">\n');
document.write('<param name=\"StretchToFit\" value=\"False\">\n');
document.write('<param name=\"EnableContextMenu\" value=\"False\">\n');
document.write('</OBJECT>\n');
}
else if(playerUsed == playerType.Quicktime)
{
document.write("<EMBED width=\"1\" height=\"1\"\n");
document.write("controller=\"False\"\n");
document.write("scale=\"ToFit\"\n");
document.write("src=\"\"\n");
document.write("TYPE=\"video/quicktime\"\n");
document.write("PLUGINSPAGE=\"www.apple.com/quicktime/download\"\n");
document.write("name=\"playerSonoraObject\"\n");
document.write("id=\"playerSonoraObject\"\n");
document.write("enablejavascript=\"true\"\n");
document.write("volume=\"50\"\n");
document.write("bgcolor=\"#000000\">\n");
document.write("</EMBED>\n");
}
else if (playerUsed == playerType.Silverlight) {
document.write('<object width="10" height="10" id="playerSonoraObject" name="playerSonoraObject" type="application/x-silverlight" style=\"left:15px;position:absolute;top:2px;width:1px;height:1px;\">\n');
document.write('<param value="#FF9900" name="background"/>\n');
document.write('<param value="/Content/xaml/playerSilverlight.xaml" name="source"/>\n');
document.write('<param value="false" name="windowless"/>\n');
document.write('<param value="__slLoad0" name="onLoad"/>\n');
document.write('<param value="__slError0" name="onError"/>\n');
document.write('</object>');
}
}
function MediaUnbound(){
}
MediaUnbound.submitTrackEvent = function( musicId ){
var url = '/MediaUnbound/SubmitEvent/ActivePlay/Track/' + musicId;
$.ajax({
type: "GET",
url: url
});
}
MediaUnbound.submitTrackEventSkip = function(musicId) {
var url = '/MediaUnbound/SubmitEvent/Skip/Track/' + musicId;
$.ajax({
type: "GET",
url: url
});
}
MediaUnbound.submitPassiveTrackEvent = function(musicId) {
var url = '/MediaUnbound/SubmitEvent/PassivePlay/Track/' + musicId;
$.ajax({
type: "GET",
url: url
});
}
function PlayerSonora(playerName, playerType) {
this.playerName = playerName;
var playerType = playerType;
this.playerType = new PlayerType(); //player type enumeration
this.mediaChangeEvents = new Array();
this.positionChangeEvents = new Array();
this.stateChangeEvents = new Array();
this.currentItem = new CurrentItem(0, -1, 0, "", 0, false, ""); //stores current item being played
this.setPlCurrentItem = player_SetPlCurrentItem;
this.currentPlaylist = null;
this.isChangeUnattended = false;
if (playerType == this.playerType.WindowsMedia) {
this.player = new PlayerWmSimple(this.playerName + '.player', document.playerSonoraObject);
}
else if (playerType == this.playerType.Quicktime) {
this.player = new PlayerMac(this.playerName + '.player', document.playerSonoraObject);
}
else if (playerType == this.playerType.Silverlight) {
this.player = new PlayerSilverlight(this.playerName + '.player', document.playerSonoraObject);
}
this.player.onCurrentMediaChange.add(this.playerName, 'currentMediaChange');
this.player.onCurrentPositionChange.add(this.playerName, 'currentPositionChange');
this.player.onPlayStateChange.add(this.playerName, 'currentPlayStateChange');
this.addPositionChangeCallback(this.thirtySecondsCallback);
this.addMediaChangeCallback(this.thirtySecondsMediaChangeCallback);
}
var thirtySecondsPassed = false;
PlayerSonora.prototype = {
previous: function() {
this.player.previous();
},
next: function() {
this.player.next();
},
playItem: function(index) {
this.player.playItem(index);
},
play: function() {
this.player.play();
},
pause: function() {
this.player.pause();
},
stop: function() {
this.player.stop();
},
ff: function() {
this.player.fastForward();
},
rew: function() {
this.player.rewind();
},
fullScreen: function() {
this.player.fullScreen();
},
mute: function() {
this.player.setMute(true);
},
unmute: function() {
this.player.setMute(false);
},
repeat: function() {
this.player.setRepeat(true);
},
unrepeat: function() {
this.player.setRepeat(false);
},
set43: function() {
this.player.resize(320, 240);
},
set169: function() {
this.player.resize(426, 240);
},
getCurrentPlaylist: function() {
return this.currentPlaylist;
},
setCurrentPlaylist: function(pl) {
this.currentPlaylist = pl;
this.player.setCurrentPlaylist(pl.playlist);
},
increaseVolume: function() {
var volume = this.player.getVolume();
volume += 10;
if (volume > 100)
volume = 100;
this.player.setVolume(volume);
},
decreaseVolume: function() {
var volume = this.player.getVolume();
volume -= 10;
if (volume < 0)
volume = 0;
this.player.setVolume(volume);
},
getCurrentPlayState: function() {
var current = this.player.getPlayState();
return current;
},
getCurrentMedia: function() {
var current = this.player.getCurrentMedia();
return current;
},
getCurrentMediaDuration: function() {
return this.player.getCurrentMediaDuration();
},
setQuality: function(q) {
this.player.setQuality(q);
},
changeVolume: function(newVolume) {
if (newVolume >= 0 && newVolume <= 100)
this.player.setVolume(newVolume);
},
setPosition: function(position) {
this.player.setPosition(position);
},
currentPositionChange: function() {
var duration = this.player.getCurrentMediaDuration();
var currentPosition = this.player.getPosition();
if (this.positionChangeEvents.length > 0) {
for (var i = 0; i < this.positionChangeEvents.length; i++)
this.positionChangeEvents[i](duration, currentPosition);
}
},
currentMediaChange: function() {
var current = this.player.getCurrentMedia();
if (this.mediaChangeEvents.length > 0) {
for (var i = 0; i < this.mediaChangeEvents.length; i++) {
this.mediaChangeEvents[i](current);
}
}
},
currentPlayStateChange: function() {
var currentPlayState = this.player.getPlayState();
if (this.stateChangeEvents.length > 0) {
for (var i = 0; i < this.stateChangeEvents.length; i++)
this.stateChangeEvents[i](currentPlayState);
}
},
addMediaChangeCallback: function(callback) {
this.mediaChangeEvents.push(callback);
},
addPositionChangeCallback: function(callback) {
this.positionChangeEvents.push(callback);
},
addStateChangeCallback: function(callback) {
this.stateChangeEvents.push(callback);
},
getCurrentIndex: function() {
return this.player.getCurrentIndex();
},
thirtySecondsCallback: function(duration, currentPos) {
if (currentPos >= 30 && !(thirtySecondsPassed)) {
if (!sonora.isInWMP) {
trintaSegundos(Player.getCurrentMedia());
} else {
getMediaMetadata(playerObj.currentMedia.sourceUrl);
}
thirtySecondsPassed = true;
}
},
thirtySecondsMediaChangeCallback: function() {
thirtySecondsPassed = false;
}
};
var gmediaItem;
function trintaSegundos(mediaItem) {
gmediaItem = mediaItem;
$.ajax({
cache: false,
type: "GET",
url: '/User/IsLogged',
dataType: "json",
success: trintaSegundosCallback
});
}
function trintaSegundosCallback(json) {
var user = json;
if (user.status.toLowerCase() == 'ok')
audience30s(user.userData, gmediaItem);
}
var IFrameObj;
var IFrameBody = null;
var audienceFormString = '';
function audience30s(userData, mediaItem) {
if (IFrameObj != null && IFrameObj.length > 0) {
IFrameObj.remove();
IFrameObj = null;
}
var tempIFrame = $("<iframe></iframe>")
.attr('id', 'TEMPIframe')
.attr('name', 'TEMPIframe')
.attr('frameborder', 'no')
.css("position", "absolute")
.css("display", "none")
.css("top", "0px")
.css("left", "0px")
.css("border", "none")
.css("margin", "0px")
.css("padding", "0px")
.css("width", "0px")
.css("height", "0px");
audienceFormString = "<form id=\"AudienceForm\" name=\"AudienceForm\" action=\"" + audienceLoggerUrl + "\" method=\"POST\"><input type=\"text\" name=\"USERID\" value=\"" + userData.id + "\"/>";
audienceFormString += "<input type=\"text\" name=\"MUSICID\" value=\"" + mediaItem.contentId + "\"/>";
audienceFormString += "<input type=\"text\" name=\"MUSICTITLE\" value=\"" + mediaItem.title + "\"/>";
audienceFormString += "<input type=\"text\" name=\"ARTISTID\" value=\"" + mediaItem.artistId + "\"/>";
audienceFormString += "<input type=\"text\" name=\"DURATION\" value=\"" + mediaItem.duration + "\"/>";
audienceFormString += "<input type=\"text\" name=\"ARTISTTITLE\" value=\"" + mediaItem.artist + "\" />";
audienceFormString += "<input type=\"text\" name=\"ALBUMID\" value=\"" + mediaItem.albumId + "\" />";
audienceFormString += "<input type=\"text\" name=\"ALBUMTITLE\" value=\"" + mediaItem.album + "\"/>";
audienceFormString += "<input type=\"text\" name=\"USERTYPE\" value=\"" + userData.subscriptionType + "\"/>";
audienceFormString += "<input type=\"text\" name=\"USERNAME\" value=\"" + userData.name + "\"/>";
audienceFormString += "<input type=\"submit\" value=\"store\" /></form>";
IFrameObj = tempIFrame;
$("body").append(tempIFrame);
waitForIFrameIE();
}
function waitForIFrameIE() {
if (IFrameObj != null && $("#TEMPIframe").contents().find("body").length > 0) {
createIFrameCallback();
}
else {
setTimeout("waitForIFrameIE()", 10);
}
}
function createIFrameCallback() {
IFrameBody = null;
if (!IFrameBody) {
IFrameBody = true;
$("#TEMPIframe").contents().find("body").append(audienceFormString);
$("#TEMPIframe").contents().find("body").find("#AudienceForm").submit();
}
}
function CurrentItem(id, type, libraryType, title, rate, isOwner, adKeyword) {
this.id = id;
this.type = type;
this.libraryType = libraryType;
this.title = title;
this.rate = rate;
this.isOwner = isOwner;
this.adKeyword = adKeyword;
this.media_type
}
function player_SetPlCurrentItem() {
var index, currentMedia, currentPlaylist;
currentMedia = this.player.getCurrentMedia();
currentPlaylist = this.player.getCurrentPlaylist();
if (currentMedia != null && currentPlaylist != null) {
index = currentPlaylist.indexOf(currentMedia);
}
}
function PlaylistSonora(playlistName)
{
this.playlistName = playlistName;
this.playlist = new Playlist();
this.playlist.adsFrequency = 2;
this.playlist.maxAdsFirst = 1;
this.playlist.maxAds = 1;
}
PlaylistSonora.prototype = {
add: function( item ){
this.playlist.appendItem( item );
},
insertItem: function( index, item ){
this.playlist.insertItem( index, item );
},
removeItem:function(index){
this.playlist.removeAt(index);
},
getItem: function( index ){
return this.playlist.getItem(index);
},
clear: function(){
this.playlist.clear();
},
count: function(){
this.playlist.count();
},
getItems: function(){
return this.playlist.getItems();
},
setShuffle: function(shuffle, currentMusicIndex){
return this.playlist.setShuffle(shuffle, currentMusicIndex);
}
}
function EventManager() {
this.add = em_Add;
this.exec = em_Exec;
this.eventItems = new Array();
function em_Add(obj, method) {
this.eventItems.push(new EventItem(obj, method));
}
function em_Exec() {
var i;
for(i = 0; i < this.eventItems.length; i++)
{
if(this.eventItems[i].object)
{
eval(this.eventItems[i].object + '.' + this.eventItems[i].method + '()');
}
else
{
eval(this.eventItems[i].method + '()');
}
}
}
}
function EventItem(object, method) {
this.object = object;
this.method = method;
}
var lastMediaItemId = 0;
var uniqueUrl = true;
function MediaItem(id, title, image, duration, ads) {
this.contentId = id; // Media's content id
this.title = title; // Media's title
this.imgUrl = image; // Media's playlist image
this.duration = duration; // Media's duration
this.ads = ads; // Array of advertisements media items
this.getUrl = mediaItem_GetUrl; // Gets url for a quality
this.setUrl = mediaItem_SetUrl; // Sets url for a quality
this.mediaUrls = new Array(); // Holds the urls for all media item qualities
this.spot = false;
this.isBlocked = false;
function mediaItem_GetUrl(quality) {
return this.mediaUrls[quality];
}
function mediaItem_SetUrl(quality, url)
{
if(url && url != "")
{
if(uniqueUrl)
{
if(url.indexOf('?') > -1)
{
url = url.replace('?', '?' + 'uid=' + (lastMediaItemId++) + '&');
}
else
{
url += '?' + 'uid=' + (lastMediaItemId++);
}
}
this.mediaUrls[quality] = url;
}
else
{
this.mediaUrls[quality] = "";
}
}
}
function PlayerMac(objName, playerObject)
{
this.getCurrentMediaDuration = mac_GetCurrentMediaDuration;
this.getPosition = mac_GetPosition;
this.setPosition = mac_SetPosition;
this.next = mac_Next;
this.pause = mac_Pause;
this.play = mac_Play;
this.playItem = mac_PlayItem;
this.playUrl = mac_PlayUrl;
this.previous = mac_Previous;
this.stop = mac_Stop;
this.fastForward = mac_FastForward;
this.rewind = mac_Rewind;
this.getMute = mac_GetMute;
this.setMute = mac_SetMute;
this.getRepeat = mac_GetRepeat;
this.setRepeat = mac_SetRepeat;
this.getVolume = mac_GetVolume;
this.setVolume = mac_SetVolume;
this.getQuality = mac_GetQuality;
this.setQuality = mac_SetQuality;
this.getCurrentPlaylist = mac_GetCurrentPlaylist;
this.setCurrentPlaylist = mac_SetCurrentPlaylist;
this.getPlayState = mac_GetPlayState;
this.getCurrentMedia = mac_GetCurrentMedia;
this.getStatus = mac_GetStatus;
this.getBitrate = mac_GetBitrate;
this.fullScreen = mac_FullScreen;
this.resize = mac_Resize;
this.onCurrentMediaChange = new EventManager(); // Occurs when the current media changes
this.onCurrentPositionChange = new EventManager(); // Occurs when the current position in the media item changes
this.onMuteChange = new EventManager(); // Occurs when the mute state changes
this.onPlayerStateStringChange = new EventManager(); // Occurs when the player state string changes
this.onPlayStateChange = new EventManager(); // Occurs when the play state changes
this.currentPlaylist = null;
this.objName = objName;
this.playerObject = playerObject;
this.playState = new PlayState();
this.quality = new Quality().low;
this.repeat = false;
this.paused = false;
this.lastCurrentPosition = 0;
this.lastMediaUrl = '';
this.lastMute = false;
this.lastPlayState = this.playState.undefined;
this.lastStateStr = '';
this.sync = mac_Sync;
this.createInternalPlaylist = mac_CreateInternalPlaylist;
this.getCurrentPlaySequenceIndex = mac_GetCurrentPlaySequenceIndex;
this.getCurrentIndex = mac_GetCurrentIndex;
this.tick = mac_Tick;
this.createInternalPlaylist();
this.manualStop = true;
setTimeout(this.objName +'.tick();', 1000);
function mac_Next() {
if(this.getCurrentIndex()<this.currentPlaylist.count()-1)
{
this.playItem(this.getCurrentIndex()+1);
}
else
{
this.playItem(0);
}
}
function mac_Pause()
{
try
{
this.playerObject.Stop();
this.paused = true;
}catch(e){}
}
function mac_Play(wait)
{
if(this.currentPlaylist!=null && this.getPlayState()!=this.playState.paused && this.getPlayState()!=this.playState.playing)
{
this.playItem(0);
}
else
{
try
{
this.playerObject.Play();
this.paused = false;
}catch(e){}
}
}
function mac_PlayItem(index, wait)
{
if(this.currentPlaylist.count() > 0 && index < this.currentPlaylist.count())
{
var playSequence = this.currentPlaylist.getPlaySequence();
var psIndex = this.currentPlaylist.getPlaySequenceIndex(index);
this.playerObject.SetResetPropertiesOnReload(false);
this.playerObject.SetURL(playSequence[psIndex].mediaUrls[this.quality]);
this.playerObject.Play();
this.paused = false;
this.manualStop = false;
}
}
function mac_PlayUrl(url)
{
this.playerObject.SetResetPropertiesOnReload(false);
this.playerObject.SetURL(url);
this.playerObject.Play();
this.paused = false;
this.manualStop = false;
}
function mac_Previous()
{
if(this.getCurrentIndex()>0)
{
this.playItem(this.getCurrentIndex()-1);
}
else
{
this.playItem(this.currentPlaylist.count()-1);
}
}
function mac_Stop()
{
try
{
this.playerObject.Stop();
this.paused = false;
this.manualStop = true;
}
catch(e){}
}
function mac_FastForward()
{
}
function mac_Rewind()
{
}
function mac_GetCurrentMediaDuration()
{
try
{
return(this.playerObject.GetDuration() / this.playerObject.GetTimeScale());
}
catch(e)
{
return(0);
}
}
function mac_GetPosition()
{
try
{
return(this.playerObject.GetTime() / this.playerObject.GetTimeScale());
}
catch(e)
{
return(0);
}
}
function mac_SetPosition(position)
{
if(this.playerObject)
this.playerObject.SetTime(position * this.playerObject.GetTimeScale());
}
function mac_SetVolume(val)
{
try
{
this.playerObject.SetVolume(val * 2.56);
}
catch(e){}
}
function mac_GetVolume()
{
try
{
return this.playerObject.GetVolume() / 2.56;
}
catch(e)
{
return(0);
}
}
function mac_SetMute(mute)
{
this.playerObject.SetMute(mute);
}
function mac_GetMute()
{
return this.playerObject.GetMute();
}
function mac_GetRepeat()
{
return(this.repeat);
}
function mac_SetRepeat(state)
{
this.repeat = state;
}
function mac_GetCurrentPlaylist()
{
return(this.currentPlaylist);
}
function mac_SetCurrentPlaylist(playlist)
{
this.currentPlaylist = playlist;
}
function mac_Sync()
{
}
function mac_GetQuality()
{
return this.quality;
}
function mac_SetQuality(quality)
{
this.quality = quality;
}
function mac_GetPlayState()
{
var playerState = this.playerObject.GetPluginStatus();
if(playerState=="Waiting" || playerState=="Loading")
{
return this.playState.buffering;
}
if(this.manualStop)
{
return(this.playState.stopped);
}
try
{
var duration = this.playerObject.GetDuration();
var time = this.playerObject.GetTime();
if(time>0 && duration>0 && Math.abs(duration-time)<100)
{
return(this.playState.stopped)
}
}
catch(e)
{
}
if(this.paused)
{
return(this.playState.paused);
}
else
{
return this.playState.playing;
}
}
function mac_GetCurrentMedia()
{
if(this.currentPlaylist == null)
return null;
var playSequence = this.currentPlaylist.getPlaySequence();
var index = this.getCurrentPlaySequenceIndex();
return (index >= 0) ? playSequence[index] : null;
}
function mac_GetStatus()
{
var status = '';
try
{
status = this.playerObject.GetPluginStatus();
}
catch(e){}
return(status);
}
function mac_GetBitrate()
{
return -1; // Not implemented
}
function mac_FullScreen()
{
}
function mac_Resize(width, height)
{
this.playerObject.width = width;
this.playerObject.height = height;
}
function mac_CreateInternalPlaylist() {
}
function mac_GetCurrentIndex() {
for(var i = 0; i < this.currentPlaylist.mediaItems.length; i++)
{
var url = this.currentPlaylist.mediaItems[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.playerObject.GetURL().indexOf(url)>0)
{
return i;
}
else
{
for(var j = 0; j < this.currentPlaylist.mediaItems[i].ads.length;j++)
{
var urlAd = this.currentPlaylist.mediaItems[i].ads[j].mediaUrls[this.quality];
urlAd = urlAd.substring(urlAd.indexOf("://") + 3);
if(this.playerObject.GetURL().indexOf(urlAd)>0)
{
return i;
}
}
}
}
return -1;
}
function mac_GetCurrentPlaySequenceIndex()
{
var playSequence = this.currentPlaylist.getPlaySequence();
try
{
if(playSequence!=null)
{
for(i = 0; i < playSequence.length; i++)
{
var url = playSequence[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.playerObject.GetURL().indexOf(url)>0)
return i;
}
}
}
catch(e)
{
return -1;
}
}
function mac_Tick()
{
var currentMedia = this.getCurrentMedia();
var currentMediaUrl = currentMedia != null ? currentMedia.mediaUrls[this.quality] : '';
if(this.getPlayState()==this.playState.stopped && !this.manualStop)
{
if(this.currentPlaylist)
{
var playSequence = this.currentPlaylist.getPlaySequence();
var currentIndex = this.getCurrentPlaySequenceIndex();
if(playSequence!=null)
{
if(currentIndex<playSequence.length-1)
{
this.playerObject.SetURL(playSequence[currentIndex+1].mediaUrls[this.quality]);
this.playerObject.Play();
}
else
{
if(this.repeat)
{
this.playItem(0);
}
else
{
this.manualStop = true;
this.paused = false;
}
}
}
}
}
if(this.playerObject)
{
if(this.getStatus() != this.lastStateStr)
{
this.onPlayerStateStringChange.exec();
this.lastStateStr = this.getStatus();
}
}
if(currentMediaUrl != this.lastMediaUrl)
{
this.onCurrentMediaChange.exec();
this.lastMediaUrl = currentMediaUrl;
}
if(this.lastCurrentPosition != this.getPosition())
{
this.onCurrentPositionChange.exec();
this.lastCurrentPosition = this.getPosition();
}
if(this.lastMute != this.getMute())
{
this.onMuteChange.exec();
this.lastMute = this.getMute();
}
if(this.lastPlayState != this.getPlayState())
{
this.onPlayStateChange.exec();
this.lastPlayState = this.getPlayState();
}
setTimeout(this.objName +'.tick();', 1000);
}
}
function PlayerReal(objName, playerObject) {
this.getCurrentMediaDuration = rm_GetCurrentMediaDuration;
this.getPosition = rm_GetPosition;
this.setPosition = rm_SetPosition;
this.next = rm_Next;
this.pause = rm_Pause;
this.play = rm_Play;
this.playItem = rm_PlayItem;
this.playUrl = rm_PlayUrl;
this.previous = rm_Previous;
this.stop = rm_Stop;
this.fastForward = rm_FastForward;
this.rewind = rm_Rewind;
this.getMute = rm_GetMute;
this.setMute = rm_SetMute;
this.getRepeat = rm_GetRepeat;
this.setRepeat = rm_SetRepeat;
this.getVolume = rm_GetVolume;
this.setVolume = rm_SetVolume;
this.getQuality = rm_GetQuality;
this.setQuality = rm_SetQuality;
this.getCurrentPlaylist = rm_GetCurrentPlaylist;
this.setCurrentPlaylist = rm_SetCurrentPlaylist;
this.getPlayState = rm_GetPlayState;
this.getCurrentMedia = rm_GetCurrentMedia;
this.getStatus = rm_GetStatus;
this.getBitrate = rm_GetBitrate;
this.fullScreen = rm_FullScreen;
this.resize = rm_Resize;
this.onCurrentMediaChange = new EventManager(); // Occurs when the current media changes
this.onCurrentPositionChange = new EventManager(); // Occurs when the current position in the media item changes
this.onMuteChange = new EventManager(); // Occurs when the mute state changes
this.onPlayerStateStringChange = new EventManager(); // Occurs when the player state string changes
this.onPlayStateChange = new EventManager(); // Occurs when the play state changes
this.currentPlaylist = null;
this.objName = objName;
this.playerObject = playerObject;
this.playState = new PlayState();
this.quality = new Quality().low;
this.repeat = false;
this.lastCurrentPosition = 0;
this.lastMediaUrl = '';
this.lastMute = false;
this.lastPlayState = this.playState.undefined;
this.lastStateStr = '';
this.sync = rm_Sync;
this.createInternalPlaylist = rm_CreateInternalPlaylist;
this.getCurrentPlaySequenceIndex = rm_GetCurrentPlaySequenceIndex;
this.getCurrentIndex = rm_GetCurrentIndex;
this.tick = rm_Tick;
this.createInternalPlaylist();
this.manualStop = true;
setTimeout(this.objName +'.tick();', 500);
function rm_Next() {
if(this.getCurrentIndex()<this.currentPlaylist.count()-1)
{
this.playItem(this.getCurrentIndex()+1);
}
else
{
this.playItem(0);
}
}
function rm_Pause() {
this.playerObject.DoPause();
}
function rm_Play() {
if(this.currentPlaylist!=null && this.getPlayState()!=this.playState.paused && this.getPlayState()!=this.playState.playing)
{
this.playItem(0);
}
else
{
this.playerObject.DoPlay();
}
}
function rm_PlayItem(index)
{
if(this.currentPlaylist.count() > 0 && index < this.currentPlaylist.count())
{
var playSequence = this.currentPlaylist.getPlaySequence();
var psIndex = this.currentPlaylist.getPlaySequenceIndex(index);
this.playerObject.SetSource(playSequence[psIndex].mediaUrls[this.quality]);
this.playerObject.DoPlay();
this.manualStop = false;
}
}
function rm_PlayUrl(url) {
this.playerObject.SetSource(url);
this.playerObject.DoPlay();
this.manualStop = false;
}
function rm_Previous() {
if(this.getCurrentIndex()>0)
{
this.playItem(this.getCurrentIndex()-1);
}
else
{
this.playItem(this.currentPlaylist.count()-1);
}
}
function rm_Stop() {
this.playerObject.DoStop();
this.manualStop = true;
}
function rm_FastForward() {
}
function rm_Rewind() {
}
function rm_GetCurrentMediaDuration() {
if(this.playerObject)
return(this.playerObject.GetLength()/1000);
return(0);
}
function rm_GetPosition() {
if(this.playerObject)
return(this.playerObject.GetPosition()/1000);
return(0);
}
function rm_SetPosition(position) {
if(this.playerObject)
this.playerObject.SetPosition(position*1000);
}
function rm_SetVolume(val)
{
this.playerObject.SetVolume(val);
}
function rm_GetVolume()
{
return this.playerObject.GetVolume();
}
function rm_SetMute(mute)
{
this.playerObject.SetMute(mute);
}
function rm_GetMute()
{
return this.playerObject.GetMute();
}
function rm_GetRepeat()
{
return(this.repeat);
}
function rm_SetRepeat(state)
{
this.repeat = state;
}
function rm_GetCurrentPlaylist() {
return(this.currentPlaylist);
}
function rm_SetCurrentPlaylist(playlist) {
this.currentPlaylist = playlist;
}
function rm_Sync() {
}
function rm_GetQuality() {
return this.quality;
}
function rm_SetQuality(quality) {
this.quality = quality;
}
function rm_GetPlayState() {
var playerState;
playerState = (this.playerObject) ? this.playerObject.GetPlayState() : 0;
switch(playerState) {
case 0: // Stopped
return this.playState.stopped;
case 1: // Contacting
case 2: // Buffering
case 5: // Seeking
return this.playState.buffering;
case 3: // Playing
return this.playState.playing;
case 4: // Paused
return this.playState.paused;
default :
return this.playState.undefined;
}
}
function rm_GetCurrentMedia() {
if(this.currentPlaylist == null)
return null;
var playSequence = this.currentPlaylist.getPlaySequence();
var index = this.getCurrentPlaySequenceIndex();
return (index >= 0) ? playSequence[index] : null;
}
function rm_GetStatus() {
var status = '';
try
{
status = this.playerObject.GetLastStatus();
}
catch(e){}
return(status);
}
function rm_GetBitrate()
{
return -1; // Not implemented
}
function rm_FullScreen() {
this.playerObject.SetFullScreen();
}
function rm_Resize(width, height) {
this.playerObject.width = width;
this.playerObject.height = height;
}
function rm_CreateInternalPlaylist() {
}
function rm_GetCurrentIndex() {
for(var i = 0; i < this.currentPlaylist.mediaItems.length; i++)
{
var url = this.currentPlaylist.mediaItems[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.playerObject.GetSource().indexOf(url)>0)
{
return i;
}
else
{
for(var j = 0; j < this.currentPlaylist.mediaItems[i].ads.length;j++)
{
var urlAd = this.currentPlaylist.mediaItems[i].ads[j].mediaUrls[this.quality];
urlAd = urlAd.substring(urlAd.indexOf("://") + 3);
if(this.playerObject.GetSource().indexOf(urlAd)>0)
{
return i;
}
}
}
}
return -1;
}
function rm_GetCurrentPlaySequenceIndex() {
var playSequence = this.currentPlaylist.getPlaySequence();
if(playSequence!=null)
{
for(i = 0; i < playSequence.length; i++)
{
var url = playSequence[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.playerObject.GetSource().indexOf(url)>0)
return i;
}
}
return -1;
}
function rm_Tick() {
var currentMedia = this.getCurrentMedia();
var currentMediaUrl = currentMedia != null ? currentMedia.mediaUrls[this.quality] : '';
if(this.getPlayState()==this.playState.stopped && !this.manualStop)
{
if(this.currentPlaylist)
{
var playSequence = this.currentPlaylist.getPlaySequence();
var currentIndex = this.getCurrentPlaySequenceIndex();
if(playSequence!=null)
{
if(currentIndex<playSequence.length-1)
{
this.playerObject.SetSource(playSequence[currentIndex+1].mediaUrls[this.quality]);
this.playerObject.DoPlay();
}
else
{
if(this.repeat)
{
this.playItem(0);
}
else
{
this.manualStop = true;
}
}
}
}
}
if(this.playerObject)
{
if(this.getStatus() != this.lastStateStr) {
this.onPlayerStateStringChange.exec();
this.lastStateStr = this.getStatus();
}
}
if(currentMediaUrl != this.lastMediaUrl) {
this.onCurrentMediaChange.exec();
this.lastMediaUrl = currentMediaUrl;
}
if(this.lastCurrentPosition != this.getPosition()) {
this.onCurrentPositionChange.exec()
this.lastCurrentPosition = this.getPosition();
}
if(this.lastMute != this.getMute()) {
this.onMuteChange.exec();
this.lastMute = this.getMute();
}
if(this.lastPlayState != this.getPlayState()) {
this.onPlayStateChange.exec();
this.lastPlayState = this.getPlayState();
}
setTimeout(this.objName +'.tick();', 500);
}
}
function PlayerSilverlight(objName, playerObject) {
this.getCurrentMediaDuration = sl_GetCurrentMediaDuration;
this.getPosition = sl_GetPosition;
this.setPosition = sl_SetPosition;
this.next = sl_Next;
this.pause = sl_Pause;
this.play = sl_Play;
this.playItem = sl_PlayItem;
this.playUrl = sl_PlayUrl;
this.previous = sl_Previous;
this.stop = sl_Stop;
this.fastForward = sl_FastForward;
this.rewind = sl_Rewind;
this.getMute = sl_GetMute;
this.setMute = sl_SetMute;
this.getRepeat = sl_GetRepeat;
this.setRepeat = sl_SetRepeat;
this.getVolume = sl_GetVolume;
this.setVolume = sl_SetVolume;
this.getQuality = sl_GetQuality;
this.setQuality = sl_SetQuality;
this.getCurrentPlaylist = sl_GetCurrentPlaylist;
this.setCurrentPlaylist = sl_SetCurrentPlaylist;
this.getPlayState = sl_GetPlayState;
this.getCurrentMedia = sl_GetCurrentMedia;
this.getStatus = sl_GetStatus;
this.getBitrate = sl_GetBitrate;
this.fullScreen = sl_FullScreen;
this.resize = sl_Resize;
this.onCurrentMediaChange = new EventManager(); // Occurs when the current media changes
this.onCurrentPositionChange = new EventManager(); // Occurs when the current position in the media item changes
this.onMuteChange = new EventManager(); // Occurs when the mute state changes
this.onPlayerStateStringChange = new EventManager(); // Occurs when the player state string changes
this.onPlayStateChange = new EventManager(); // Occurs when the play state changes
this.currentPlaylist = null;
this.objName = objName;
this.playerObject = playerObject;
this.playState = new PlayState();
this.quality = new Quality().low;
this.repeat = false;
this.lastCurrentPosition = 0;
this.lastMediaUrl = '';
this.lastMute = false;
this.lastPlayState = this.playState.undefined;
this.lastStateStr = '';
this.sync = sl_Sync;
this.createInternalPlaylist = sl_CreateInternalPlaylist;
this.getCurrentPlaySequenceIndex = sl_GetCurrentPlaySequenceIndex;
this.getCurrentIndex = sl_GetCurrentIndex;
this.tick = sl_Tick;
this.getMediaObject = sl_GetMediaObject;
this.mediaEnd = sl_MediaEnd;
this.next = sl_Next;
this.createInternalPlaylist();
this.manualStop = true;
setTimeout(this.objName +'.tick();', 500);
function sl_Next()
{
var cIndex = this.getCurrentPlaySequenceIndex();
if(cIndex < this.currentPlaylist.count()-1)
{
if(this.getCurrentMedia().isAd)
{
this.playItem(cIndex);
}
else
{
this.playItem(cIndex + 1);
}
}
else
{
this.playItem(0);
}
}
function sl_MediaEnd()
{
var currentMedia = this.getCurrentMedia();
var currentMediaUrl = currentMedia != null ? currentMedia.mediaUrls[this.quality] : '';
this.getMediaObject().Stop();
try
{
if(this.currentPlaylist)
{
var playSequence = this.currentPlaylist.getPlaySequence();
var currentIndex = this.getCurrentPlaySequenceIndex();
if(playSequence!=null)
{
if(currentIndex < playSequence.length - 1)
{
var iURL = playSequence[currentIndex+1].mediaUrls[this.quality];
this.getMediaObject().Source = iURL;
this.getMediaObject().Play();
this.onCurrentMediaChange.exec();
this.lastMediaUrl = currentMediaUrl;
}
else
{
if(this.repeat)
{
this.playItem(0);
}
else
{
this.manualStop = true;
}
}
}
}
}
catch(e){}
}
function sl_GetMediaObject()
{
return this.playerObject.Content.findName("media");
}
function sl_Pause() {
this.getMediaObject().Pause();
}
function sl_Play()
{
if(this.currentPlaylist!=null && this.getPlayState()!=this.playState.paused && this.getPlayState()!=this.playState.playing)
{
this.playItem(0);
}
else
{
this.getMediaObject().Play();
this.currentPlayState = this.playState.playing;
}
}
function sl_PlayItem(index, wait)
{
if(this.currentPlaylist.count() > 0 && index < this.currentPlaylist.count())
{
var playSequence = this.currentPlaylist.getPlaySequence();
this.getMediaObject().Source = playSequence[index].mediaUrls[this.quality];
this.getMediaObject().Play();
this.manualStop = false;
this.onCurrentMediaChange.exec();
}
}
function sl_PlayUrl(url)
{
this.getMediaObject().Source = url;
this.getMediaObject().Play();
this.manualStop = false;
}
function sl_Previous() {
var currentPlaySequenceIndex = this.getCurrentPlaySequenceIndex();
if(currentPlaySequenceIndex > 0)
{
this.playItem(currentPlaySequenceIndex - 1);
}
else
{
this.playItem(this.currentPlaylist.count()-1);
}
}
function sl_Stop() {
this.getMediaObject().Stop();
this.manualStop = true;
}
function sl_FastForward() {
}
function sl_Rewind() {
}
function sl_GetCurrentMediaDuration() {
if (this.playerObject && this.getMediaObject() && this.getMediaObject().NaturalDuration && this.getMediaObject().NaturalDuration.Seconds > 0) {
return (this.getMediaObject().NaturalDuration.Seconds);
}
else {
return playerSonora.getCurrentMedia().duration;
}
return(0);
}
function sl_GetPosition()
{
if(this.playerObject)
return(this.getMediaObject().Position.Seconds);
return(0);
}
function sl_SetPosition(position) {
if(this.playerObject)
{
var pos = this.getMediaObject().Position;
pos.Seconds = position;
this.getMediaObject().Position = pos;
}
}
function sl_SetVolume(val)
{
this.getMediaObject().Volume = val / 100;
}
function sl_GetVolume()
{
return this.getMediaObject().Volume * 100;
}
function sl_SetMute(mute)
{
try
{
this.getMediaObject().IsMuted = mute;
}
catch(e){}
}
function sl_GetMute()
{
return this.getMediaObject().IsMuted;
}
function sl_GetRepeat()
{
return(this.repeat);
}
function sl_SetRepeat(state)
{
this.repeat = state;
}
function sl_GetCurrentPlaylist() {
return(this.currentPlaylist);
}
function sl_SetCurrentPlaylist(playlist) {
this.currentPlaylist = playlist;
}
function sl_Sync() {
}
function sl_GetQuality() {
return this.quality;
}
function sl_SetQuality(quality) {
this.quality = quality;
}
function sl_GetPlayState() {
var playerState;
playerState = (this.playerObject && this.getMediaObject() && this.getMediaObject().CurrentState) ? this.getMediaObject().CurrentState.toString() : 0;
switch(playerState) {
case "Stopped":
return this.playState.stopped;
case "Opening":
case "Buffering":
return this.playState.buffering;
case "Playing":
return this.playState.playing;
case "Paused":
return this.playState.paused;
case "Buffering":
return this.playState.buffering;
default :
return this.playState.undefined;
}
}
function sl_GetCurrentMedia()
{
if(this.currentPlaylist == null)
return null;
var playSequence = this.currentPlaylist.getPlaySequence();
var index = this.getCurrentPlaySequenceIndex();
return (index >= 0) ? playSequence[index] : null;
}
function sl_GetStatus() {
return this.getPlayState();
}
function sl_GetBitrate()
{
return -1; // Not implemented
}
function sl_FullScreen()
{
toggle_fullScreen();
}
function sl_Resize(width, height)
{
this.playerObject.width = width;
this.playerObject.height = height;
this.getMediaObject().Width = width;
this.getMediaObject().Height = height;
}
function sl_CreateInternalPlaylist() {
}
function sl_GetCurrentIndex() {
for(var i = 0; i < this.currentPlaylist.mediaItems.length; i++)
{
var url = this.currentPlaylist.mediaItems[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.getMediaObject().Source.indexOf(url)>0)
{
return i;
}
else
{
for(var j = 0; j < this.currentPlaylist.mediaItems[i].ads.length;j++)
{
var urlAd = this.currentPlaylist.mediaItems[i].ads[j].mediaUrls[this.quality];
urlAd = urlAd.substring(urlAd.indexOf("://") + 3);
if(this.getMediaObject().Source.indexOf(urlAd)>0)
{
return i;
}
}
}
}
return -1;
}
function sl_GetCurrentPlaySequenceIndex()
{
var playSequence = this.currentPlaylist.getPlaySequence();
if(playSequence!=null)
{
for(i = 0; i < playSequence.length; i++)
{
var url = playSequence[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
var playerUrl = this.getMediaObject().Source;
if(this.getMediaObject() && playerUrl.indexOf(url) > 0)
{
return i;
}
}
}
return -1;
}
function sl_Tick()
{
var positionChanged = false;
if(this.lastCurrentPosition != this.getPosition())
{
positionChanged = true;
this.onCurrentPositionChange.exec()
this.lastCurrentPosition = this.getPosition();
}
setTimeout(this.objName +'.tick();', 1000);
var newPlayState = this.getPlayState();
if(this.lastPlayState != newPlayState) {
this.onPlayStateChange.exec();
this.lastPlayState = newPlayState;
}
else
{
if(this.lastPlayState == 4 && this.lastCurrentPosition == 0 )
{
this.getMediaObject().Play();
}else if( this.lastPlayState == 4 && positionChanged )
{
this.onPlayStateChange.exec();
}
}
}
}
function PlayerWm(objName, playerObject) {
this.getCurrentMediaDuration = wm_GetCurrentMediaDuration;
this.getPosition = wm_GetPosition;
this.setPosition = wm_SetPosition;
this.next = wm_Next;
this.pause = wm_Pause;
this.play = wm_Play;
this.playItem = wm_PlayItem;
this.playUrl = wm_PlayUrl;
this.previous = wm_Previous;
this.stop = wm_Stop;
this.fastForward = wm_FastForward;
this.rewind = wm_Rewind;
this.getMute = wm_GetMute;
this.setMute = wm_SetMute;
this.getRepeat = wm_GetRepeat;
this.setRepeat = wm_SetRepeat;
this.getVolume = wm_GetVolume;
this.setVolume = wm_SetVolume;
this.getQuality = wm_GetQuality;
this.setQuality = wm_SetQuality;
this.getCurrentPlaylist = wm_GetCurrentPlaylist;
this.setCurrentPlaylist = wm_SetCurrentPlaylist;
this.getPlayState = wm_GetPlayState;
this.getCurrentMedia = wm_GetCurrentMedia;
this.getStatus = wm_GetStatus;
this.getBitrate = wm_GetBitrate;
this.fullScreen = wm_FullScreen;
this.resize = wm_Resize;
this.onCurrentMediaChange = new EventManager(); // Occurs when the current media changes
this.onCurrentPositionChange = new EventManager(); // Occurs when the current position in the media item changes
this.onMuteChange = new EventManager(); // Occurs when the mute state changes
this.onPlayerStateStringChange = new EventManager(); // Occurs when the player state string changes
this.onPlayStateChange = new EventManager(); // Occurs when the play state changes
this.currentPlaylist = null;
this.objName = objName;
this.playerObject = playerObject;
this.playState = new PlayState();
this.quality = new Quality().low;
this.lastCurrentPosition = 0;
this.lastMediaUrl = '';
this.lastMute = false;
this.lastPlayState = this.playState.undefined;
this.lastStateStr = '';
this.sync = wm_Sync;
this.createInternalPlaylist = wm_CreateInternalPlaylist;
this.getCurrentPlaySequenceIndex = wm_GetCurrentPlaySequenceIndex;
this.getCurrentIndex = wm_GetCurrentIndex;
this.tick = wm_Tick;
this.createInternalPlaylist();
setTimeout(this.objName +'.tick();', 500);
function wm_Next() {
this.playerObject.controls.next();
}
function wm_Pause() {
this.playerObject.controls.pause();
}
function wm_Play() {
this.playerObject.controls.play();
}
function wm_PlayItem(index)
{
var psIndex;
psIndex = this.currentPlaylist.getPlaySequenceIndex(index);
this.playerObject.controls.playItem(this.playerObject.currentPlaylist.item(psIndex));
}
function wm_PlayUrl(url) {
this.playerObject.URL = url;
this.playerObject.controls.play();
}
function wm_Previous() {
this.playerObject.controls.previous();
}
function wm_Stop() {
this.playerObject.controls.stop();
}
function wm_FastForward() {
this.playerObject.controls.fastForward();
}
function wm_Rewind() {
this.playerObject.controls.fastReverse();
}
function wm_GetCurrentMediaDuration() {
try {
if (this.playerObject.currentMedia != null)
return this.playerObject.currentMedia.duration;
}
catch (e) { }
return 0;
}
function wm_GetPosition() {
if(this.playerObject)
if(this.playerObject.controls)
return parseInt(this.playerObject.controls.currentPosition);
return 0;
}
function wm_SetPosition(position) {
this.playerObject.controls.currentPosition = position;
}
function wm_SetVolume(val)
{
if(this.playerObject.settings)
{
this.playerObject.settings.volume = val;
}
}
function wm_GetVolume()
{
if(this.playerObject.settings)
{
return this.playerObject.settings.volume;
}
}
function wm_SetMute(mute)
{
if(this.playerObject.settings)
{
this.playerObject.settings.mute = mute;
}
}
function wm_GetMute()
{
if(this.playerObject)
if(this.playerObject.settings)
return this.playerObject.settings.mute;
return(false);
}
function wm_GetRepeat()
{
return (this.playerObject.settings.getMode('loop'));
}
function wm_SetRepeat(state)
{
this.playerObject.settings.setMode('loop', state);
}
function wm_GetCurrentPlaylist() {
return this.currentPlaylist;
}
function wm_SetCurrentPlaylist(playlist) {
this.currentPlaylist = playlist;
this.currentPlaylist.onChange.add(this.objName, 'sync');
this.sync();
}
function wm_Sync() {
var i, seqIndex;
var media_item, currentPlaylist;
if(this.playerObject && this.playerObject.currentPlaylist)
{
currentPlaylist = this.playerObject.currentPlaylist;
}
else
{
return;
}
var playSequence = this.currentPlaylist.getPlaySequence();
if(playSequence!=null)
{
seqIndex = this.getCurrentPlaySequenceIndex();
i = 0;
while(i < currentPlaylist.count) {
if(!currentPlaylist.item(i).isIdentical(this.playerObject.currentMedia) || seqIndex == -1) // If it is not the current, drop it
currentPlaylist.removeItem(currentPlaylist.item(i));
else // If it is the current, go to the next item
i++;
}
for(i = 0; i < playSequence.length; i++) {
if(i == seqIndex)
continue;
currentPlaylist.insertItem(i, this.playerObject.newMedia(playSequence[i].mediaUrls[this.quality]));
}
}
}
function wm_GetQuality() {
return this.quality;
}
function wm_SetQuality(quality) {
this.quality = quality;
this.sync();
}
function wm_GetPlayState() {
var playerState;
playerState = (this.playerObject) ? this.playerObject.playState : 0;
switch(playerState) {
case 1 : // Stopped
case 10 : // Ready
return this.playState.stopped;
case 2 : // Paused
return this.playState.paused;
case 7 : // Waiting
this.next(); // End of live, go to next and return 'playing'
case 4 : // ScanForward
return this.playState.forwarding;
case 5 : // ScanReverse
return this.playState.rewinding;
case 3 : // Playing
case 8 : // MediaEnded
return this.playState.playing;
case 6 : // Buffering
case 9 : // Transitioning
case 11 : // Reconnecting
return this.playState.buffering;
default :
return this.playState.undefined;
}
}
function wm_GetCurrentMedia() {
var currentPlaylist = this.currentPlaylist;
if(currentPlaylist == null)
return null;
var playSequence = currentPlaylist.getPlaySequence();
var index = this.getCurrentPlaySequenceIndex();
return (index >= 0) ? playSequence[index] : null;
}
function wm_GetStatus() {
if(this.playerObject)
return this.playerObject.status;
else
return "error";
}
function wm_GetBitrate()
{
if(this.playerObject)
if(this.playerObject.currentMedia != null)
return this.playerObject.currentMedia.getItemInfo("Bitrate");
return 0;
}
function wm_FullScreen() {
try {
this.playerObject.fullScreen = true;
} catch(e) {}
}
function wm_Resize(width, height)
{
this.playerObject.width = width;
this.playerObject.height = height;
if(window.GeckoActiveXObject)
{
document.getElementsByTagName("body")[0].style.height = '1px';
window.setTimeout('document.getElementsByTagName("body")[0].style.height = \'auto\';',100); // Apparently a small delay is required
}
}
function wm_CreateInternalPlaylist() {
var playlistObj = null;
try
{
playlistObj = this.playerObject.newPlaylist('Streaming Playlist','');
this.playerObject.currentPlaylist = playlistObj;
}
catch(e) {}
}
function wm_GetCurrentIndex() {
for(var i = 0; i < this.currentPlaylist.mediaItems.length; i++)
{
var url = this.currentPlaylist.mediaItems[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.playerObject.currentMedia.sourceURL.indexOf(url)>0)
{
return i;
}
else
{
for(var j = 0; j < this.currentPlaylist.mediaItems[i].ads.length;j++)
{
var urlAd = this.currentPlaylist.mediaItems[i].ads[j].mediaUrls[this.quality];
urlAd = urlAd.substring(url.indexOf("://") + 3);
if(this.playerObject.currentMedia.sourceURL.indexOf(urlAd)>0)
{
return i;
}
}
}
}
return -1;
}
function wm_GetCurrentPlaySequenceIndex() {
var playSequence = this.currentPlaylist.getPlaySequence();
var i, index, url, str1, str2;
if(this.playerObject && this.playerObject.currentMedia != null)
for(i = 0; i < playSequence.length; i++)
if(playSequence[i].mediaUrls[this.quality] == this.playerObject.currentMedia.sourceURL)
return i;
return -1;
}
function wm_Tick() {
var currentMedia = this.getCurrentMedia();
var currentMediaUrl = currentMedia != null ? currentMedia.mediaUrls[this.quality] : '';
if(this.getStatus() != this.lastStateStr) {
this.onPlayerStateStringChange.exec();
this.lastStateStr = this.getStatus();
}
if(currentMediaUrl != this.lastMediaUrl && this.getPlayState()!=this.playState.stopped) {
this.onCurrentMediaChange.exec();
this.lastMediaUrl = currentMediaUrl;
}
if(this.lastCurrentPosition != this.getPosition()) {
this.onCurrentPositionChange.exec()
this.lastCurrentPosition = this.getPosition();
}
if(this.lastMute != this.getMute()) {
this.onMuteChange.exec();
this.lastMute = this.getMute();
}
if(this.lastPlayState != this.getPlayState()) {
this.onPlayStateChange.exec();
this.lastPlayState = this.getPlayState();
}
setTimeout(this.objName +'.tick();', 500);
}
}
function PlayerWmSimple(objName, playerObject) {
this.getCurrentMediaDuration = wm_GetCurrentMediaDuration;
this.getPosition = wm_GetPosition;
this.setPosition = wm_SetPosition;
this.next = wm_Next;
this.pause = wm_Pause;
this.play = wm_Play;
this.playItem = wm_PlayItem;
this.playUrl = wm_PlayUrl;
this.previous = wm_Previous;
this.stop = wm_Stop;
this.fastForward = wm_FastForward;
this.rewind = wm_Rewind;
this.getMute = wm_GetMute;
this.setMute = wm_SetMute;
this.getRepeat = wm_GetRepeat;
this.setRepeat = wm_SetRepeat;
this.getVolume = wm_GetVolume;
this.setVolume = wm_SetVolume;
this.getQuality = wm_GetQuality;
this.setQuality = wm_SetQuality;
this.getCurrentPlaylist = wm_GetCurrentPlaylist;
this.setCurrentPlaylist = wm_SetCurrentPlaylist;
this.getPlayState = wm_GetPlayState;
this.getCurrentMedia = wm_GetCurrentMedia;
this.getStatus = wm_GetStatus;
this.getBitrate = wm_GetBitrate;
this.fullScreen = wm_FullScreen;
this.resize = wm_Resize;
this.onCurrentMediaChange = new EventManager(); // Occurs when the current media changes
this.onCurrentPositionChange = new EventManager(); // Occurs when the current position in the media item changes
this.onMuteChange = new EventManager(); // Occurs when the mute state changes
this.onPlayerStateStringChange = new EventManager(); // Occurs when the player state string changes
this.onPlayStateChange = new EventManager(); // Occurs when the play state changes
this.currentPlaylist = null;
this.objName = objName;
this.playerObject = playerObject;
this.playState = new PlayState();
this.quality = new Quality().low;
this.repeat = false;
this.lastCurrentPosition = 0;
this.lastMediaUrl = '';
this.lastMute = false;
this.lastPlayState = this.playState.undefined;
this.lastStateStr = '';
this.sync = wm_Sync;
this.createInternalPlaylist = wm_CreateInternalPlaylist;
this.getCurrentPlaySequenceIndex = wm_GetCurrentPlaySequenceIndex;
this.getCurrentIndex = wm_GetCurrentIndex;
this.tick = wm_Tick;
this.createInternalPlaylist();
this.manualStop = true;
setTimeout(this.objName +'.tick();', 500);
function wm_Next() {
if(this.getCurrentIndex()<this.currentPlaylist.count()-1)
{
this.playItem(this.getCurrentIndex()+1);
}
else
{
this.playItem(0);
}
}
function wm_Pause() {
this.playerObject.controls.pause();
}
function wm_Play() {
if(this.currentPlaylist!=null && this.getPlayState()!=this.playState.paused && this.getPlayState()!=this.playState.playing)
{
this.playItem(0);
}
else
{
this.playerObject.controls.play();
}
this.currentPlayState = this.playState.playing;
}
function wm_PlayItem(index)
{
if(this.currentPlaylist.count() > 0 && index < this.currentPlaylist.count())
{
var playSequence = this.currentPlaylist.getPlaySequence();
this.playerObject.URL = playSequence[index].mediaUrls[this.quality];
this.playerObject.controls.play();
this.manualStop = false;
}
}
function wm_PlayUrl(url) {
this.playerObject.URL = url;
this.playerObject.controls.play();
this.manualStop = false;
}
function wm_Previous() {
if(this.getCurrentIndex()>0)
{
this.playItem(this.getCurrentIndex()-1);
}
else
{
this.playItem(this.currentPlaylist.count()-1);
}
}
function wm_Stop() {
this.playerObject.controls.stop();
this.manualStop = true;
}
function wm_FastForward() {
this.playerObject.controls.fastForward();
}
function wm_Rewind() {
this.playerObject.controls.fastReverse();
}
function wm_GetCurrentMediaDuration() {
if(this.playerObject.currentMedia != null)
return this.playerObject.currentMedia.duration;
return 0;
}
function wm_GetPosition() {
if(this.playerObject)
if(this.playerObject.controls)
return parseInt(this.playerObject.controls.currentPosition);
return 0;
}
function wm_SetPosition(position) {
this.playerObject.controls.currentPosition = position;
}
function wm_SetVolume(val)
{
if(this.playerObject.settings)
{
this.playerObject.settings.volume = val;
}
}
function wm_GetVolume()
{
if(this.playerObject.settings)
{
return this.playerObject.settings.volume;
}
}
function wm_SetMute(mute)
{
if(this.playerObject.settings)
{
this.playerObject.settings.mute = mute;
}
}
function wm_GetMute()
{
if(this.playerObject)
if(this.playerObject.settings)
return this.playerObject.settings.mute;
return(false);
}
function wm_GetRepeat()
{
return(this.repeat);
}
function wm_SetRepeat(state)
{
this.repeat = state;
}
function wm_GetCurrentPlaylist() {
return(this.currentPlaylist);
}
function wm_SetCurrentPlaylist(playlist) {
this.currentPlaylist = playlist;
}
function wm_Sync() {
}
function wm_GetQuality() {
return this.quality;
}
function wm_SetQuality(quality) {
this.quality = quality;
}
function wm_GetPlayState() {
var playerState;
playerState = (this.playerObject) ? this.playerObject.playState : 0;
switch(playerState) {
case 1 : // Stopped
case 10 : // Ready
return this.playState.stopped;
case 2 : // Paused
return this.playState.paused;
case 7 : // Waiting
this.next(); // End of live, go to next and return 'playing'
case 4 : // ScanForward
return this.playState.forwarding;
case 5 : // ScanReverse
return this.playState.rewinding;
case 3 : // Playing
case 8 : // MediaEnded
return this.playState.playing;
case 6 : // Buffering
case 9 : // Transitioning
case 11 : // Reconnecting
return this.playState.buffering;
default :
return this.playState.undefined;
}
}
function wm_GetCurrentMedia() {
if(this.currentPlaylist == null)
return null;
var playSequence = this.currentPlaylist.getPlaySequence();
var index = this.getCurrentPlaySequenceIndex();
return (index >= 0) ? playSequence[index] : null;
}
function wm_GetStatus() {
return this.playerObject.status;
}
function wm_GetBitrate()
{
if(this.playerObject)
if(this.playerObject.currentMedia != null)
return this.playerObject.currentMedia.getItemInfo("Bitrate");
return 0;
}
function wm_FullScreen() {
try {
this.playerObject.fullScreen = 'true';
} catch(e) {}
try {
this.playerObject.fullScreen = true;
} catch(e) {}
}
function wm_Resize(width, height)
{
this.playerObject.width = width;
this.playerObject.height = height;
if(window.GeckoActiveXObject)
{
document.getElementsByTagName("body")[0].style.height = '1px';
window.setTimeout('document.getElementsByTagName("body")[0].style.height = \'auto\';',100); // Apparently a small delay is required
}
}
function wm_CreateInternalPlaylist() {
}
function wm_GetCurrentIndex() {
for(var i = 0; i < this.currentPlaylist.mediaItems.length; i++)
{
var url = this.currentPlaylist.mediaItems[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.playerObject.URL.indexOf(url)>0)
{
return i;
}
else
{
for(var j = 0; j < this.currentPlaylist.mediaItems[i].ads.length;j++)
{
var urlAd = this.currentPlaylist.mediaItems[i].ads[j].mediaUrls[this.quality];
urlAd = urlAd.substring(urlAd.indexOf("://") + 3);
if(this.playerObject.URL.indexOf(urlAd)>0)
{
return i;
}
}
}
}
return -1;
}
function wm_GetCurrentPlaySequenceIndex() {
var playSequence = this.currentPlaylist.getPlaySequence();
if(playSequence!=null && this.playerObject!=null)
{
for(i = 0; i < playSequence.length; i++)
{
var url = playSequence[i].mediaUrls[this.quality];
url = url.substring(url.indexOf("://") + 3);
if(this.playerObject.URL!=null)
{
if(this.playerObject.URL.indexOf(url)>0)
return i;
}
}
}
return -1;
}
function wm_Tick() {
var currentMedia = this.getCurrentMedia();
var currentMediaUrl = currentMedia != null ? currentMedia.mediaUrls[this.quality] : '';
if(this.getPlayState()==this.playState.stopped && !this.manualStop)
{
if(this.currentPlaylist)
{
var playSequence = this.currentPlaylist.getPlaySequence();
var currentIndex = this.getCurrentPlaySequenceIndex();
if(playSequence!=null)
{
if(currentIndex<playSequence.length-1)
{
this.playerObject.URL = playSequence[currentIndex+1].mediaUrls[this.quality];
this.playerObject.controls.play();
}
else
{
if(this.repeat)
{
this.playItem(0);
}
else
{
this.manualStop = true;
}
}
}
}
}
if(this.getStatus() != this.lastStateStr) {
this.onPlayerStateStringChange.exec();
this.lastStateStr = this.getStatus();
}
if(currentMediaUrl != this.lastMediaUrl && this.getPlayState()!=this.playState.stopped) {
this.onCurrentMediaChange.exec();
this.lastMediaUrl = currentMediaUrl;
}
if(this.lastCurrentPosition != this.getPosition()) {
this.onCurrentPositionChange.exec()
this.lastCurrentPosition = this.getPosition();
}
if(this.lastMute != this.getMute()) {
this.onMuteChange.exec();
this.lastMute = this.getMute();
}
if(this.lastPlayState != this.getPlayState()) {
this.onPlayStateChange.exec();
this.lastPlayState = this.getPlayState();
}
setTimeout(this.objName +'.tick();', 500);
}
}
function Playlist() {
this.id = 0;
this.title = '';
this.adsFrequency = 3; // Advertisements frequency
this.maxAdsFirst = -1; // Maximum number of advertisements before the first item (negative number for all ads)
this.maxAds = -1; // Maximum number of advertisements before the media items (but the first, negative number for all ads)
this.adsStartAt = 0; // Position of the first ad (zero-based)
this.appendItem = pl_AppendItem;
this.clear = pl_Clear;
this.insertItem = pl_InsertItem;
this.getDuration = pl_GetDuration;
this.getItem = pl_getItem;
this.getPlaySequence = pl_GetPlaySequence;
this.getPlaySequenceIndex = pl_GetPlaySequenceIndex;
this.getPlayIndex = pl_GetPlayIndex;
this.indexOf = pl_IndexOf;
this.indexOfPlaySequence = pl_IndexOfPlaySequence;
this.count = pl_Count;
this.moveItem = pl_moveItem;
this.removeAt = pl_RemoveAt;
this.setShuffle = pl_setShuffle;
this.getShuffle = pl_GetShuffle;
this.getPlaySequenceItem = pl_GetPlaySequenceItem;
this.onChange = new EventManager(); // Occurs when the number of items or them order changes
this.curMediaIndex = null; // Used for shuffle
this.mediaItems = new Array(); // The playlist items
this.plItemsOrder = new Array();
this.playSequence;
this.shuffle = false;
this.plIndexToPlaySequenceIndex = new Array();
this.genPlaySequence = genPlaySequence;
function pl_AppendItem(mediaItem)
{
this.mediaItems.push(mediaItem);
this.genPlaySequence();
}
function pl_Clear() {
this.mediaItems = new Array();
this.genPlaySequence();
}
function pl_Count() {
return this.mediaItems.length;
}
function pl_GetDuration()
{
var sum = 0, i;
for(i = 0; i < this.mediaItems.length; i++)
sum += this.mediaItems[i].duration;
return sum;
}
function pl_getItem(index) {
return this.mediaItems[index];
}
function pl_GetPlaySequenceIndex(plIndex)
{
return this.plIndexToPlaySequenceIndex[this.plItemsOrder[plIndex]];
}
function pl_GetPlayIndex(plIndex)
{
return this.indexOfPlaySequence(this.mediaItems[plIndex]);
}
function pl_IndexOf(mediaItem)
{
var i, j;
for(i = 0; i < this.mediaItems.length; i++)
{
if(mediaItem == this.mediaItems[i]) // Check if the wanted item is the current
{
return i;
}
else if(this.mediaItems[i].ads != null) // Search for the item in ads
{
for(j = 0; j < this.mediaItems[i].ads.length; j++)
{
if(this.mediaItems[i].ads[j] == mediaItem)
{
return i;
}
}
}
}
return -1;
}
function pl_IndexOfPlaySequence(mediaItem)
{
var i, j;
for(i = 0; i < this.playSequence.length; i++)
{
if(mediaItem == this.playSequence[i]) // Check if the wanted item is the current
{
return i;
}
else if(this.playSequence[i].ads != null) // Search for the item in ads
{
for(j = 0; j < this.playSequence[i].ads.length; j++)
{
if(this.playSequence[i].ads[j] == mediaItem)
{
return i;
}
}
}
}
return -1;
}
function pl_GetPlaySequence()
{
return this.playSequence;
}
function pl_GetPlaySequenceItem(index)
{
if(index < this.count() && this.playSequence)
{
return this.playSequence[index];
}
else
{
return null;
}
}
function pl_InsertItem(index, mediaItem) {
this.mediaItems.splice(index, 0, mediaItem);
this.genPlaySequence();
}
function pl_moveItem(oldIndex, newIndex)
{
var temp;
if(oldIndex == newIndex) return; // Do not exchange the same position
temp = this.mediaItems.splice(oldIndex, 1)[0];
this.mediaItems.splice(newIndex, 0, temp);
this.genPlaySequence();
}
function pl_RemoveAt(index)
{
this.mediaItems.splice(index, 1);
this.genPlaySequence();
}
function pl_setShuffle(shuffle, curItem)
{
this.shuffle = shuffle;
this.curMediaIndex = curItem;
this.genPlaySequence();
}
function pl_GetShuffle()
{
return this.shuffle;
}
function genPlaySequence()
{
var i, j, plItem;
this.plItemsOrder = new Array();
this.playSequence = new Array();
this.plIndexToPlaySequenceIndex = new Array();
for(i = 0; i < this.mediaItems.length; i++)
{
this.plItemsOrder.push(i);
}
if (this.shuffle)
{
mixArray(this.plItemsOrder, this.curMediaIndex);
this.shuffle = false;
}
var firstAdItem = true;
for(i = 0; i < this.plItemsOrder.length; i++)
{
plItem = this.mediaItems[this.plItemsOrder[i]];
this.plIndexToPlaySequenceIndex.push(this.playSequence.length);
var hasAds = false;
if(i>=this.adsStartAt)
{
hasAds = ((i-this.adsStartAt)%this.adsFrequency)==0;
}
if(hasAds)
{
var adCount = this.maxAds;
if(firstAdItem)
{
adCount = this.maxAdsFirst; // First position may have more ads
firstAdItem = false; // Following items will have less ads
}
mixArray2(plItem.ads);
for(j = 0; j < plItem.ads.length && (j < adCount || adCount == -1); j++)
{
if(plItem.ads[j])
{
this.playSequence.push(plItem.ads[j]);
}
}
}
this.playSequence.push(plItem);
}
this.onChange.exec();
}
function mixArray(array, cur)
{
var i, j, temp;
if(cur > 0)
{
temp = array[0];
array[0] = array[cur];
array[cur] = temp;
}
for(i = 1; i < array.length - 1; i++)
{
j = Math.round(Math.random() * (array.length - i - 2)) + i + 1;
temp = array[i];
array[i] = null;
array[i] = array[j];
array[j] = temp;
}
}
function mixArray2(array)
{
for(var i = 0, rand, temp; i < array.length; i++)
{
rand = Random(0, array.length -1);
temp = array[i];
array[i] = array[rand];
array[rand] = temp;
}
}
function Random(min, max)
{
var seed = Math.random();
return Math.round(seed * (max - min)) + min;
}
}
Playlist.prototype.getItems = function(){
if( this.playSequence )
return this.playSequence;
return this.mediaItems;
}
function PlayState() {
this.undefined = 0;
this.stopped = 1;
this.paused = 2;
this.playing = 3;
this.buffering = 4;
this.forwarding = 5;
this.rewinding = 6;
}
function Quality() {
this.low = 0;
this.high = 1;
}
sonora.metrics =
{
arrTypes: Array,
last: "",
_public: 1,
playlistType: "",
playlistId: "",
playlistTitle: "",
init: function() {
sonora.broadcaster.addListener(sonora.events.PAGE_LOADED, function() { sonora.metrics.onPageLoaded() });
this.arrTypes =
[
{ id: sonora.types.HOME, name: "home", infoType: "cap", extra: "" },
{id: sonora.types.PICKS, name: "destaques", infoType: "son", extra: "genre" },
{ id: sonora.types.POPULAR, name: "mais_tocadas", infoType: "son", extra: "genre" },
{ id: sonora.types.NOW, name: "agora", infoType: "son", extra: "genre" },
{id: sonora.types.MY_SONORA, name: "meu_sonora/minhas_musicas", infoType: "son", extra: "" },
{ id: sonora.types.MY_SONORA, name: "meu_sonora/historico", infoType: "son", extra: "" },
{ id: sonora.types.MY_SONORA, name: "meu_sonora/playlist", infoType: "son", extra: "playlist" },
{id: sonora.types.ARTIST, name: "artista", infoType: "son", extra: "artist" },
{ id: sonora.types.ALBUM, name: "album", infoType: "son", extra: "album" },
{ id: sonora.types.SONG, name: "music", infoType: "son", extra: "music" },
{id: sonora.types.OTHER_USER, name: "outro_usuario/minhas_musicas", infoType: "son", extra: "" },
{ id: sonora.types.OTHER_USER, name: "outro_usuario/historico", infoType: "son", extra: "" },
{ id: sonora.types.OTHER_USER, name: "outro_usuario", infoType: "son", extra: "playlist" },
{id: sonora.types.ACCOUNT, name: "minha_conta/meus_downloads", infoType: "son", extra: "" },
{ id: sonora.types.ACCOUNT, name: "minha_conta/meus_downloads_clube", infoType: "son", extra: "" },
{ id: sonora.types.ACCOUNT, name: "minha_conta/gerenciador_downloads", infoType: "son", extra: "" },
{ id: sonora.types.ACCOUNT, name: "minha_conta/gerenciador_dispositivos", infoType: "son", extra: "" },
{id: sonora.types.UPDATE_ACCOUNT, name: "AtualizacaoConta", infoType: "son", extra: "" },
{id: sonora.types.POPOUT_PLAYER, name: "player_popout/assinatura", infoType: "son", extra: "" },
{ id: sonora.types.POPOUT_PLAYER, name: "player_popout/playlist", infoType: "son", extra: "playlist" },
{id: sonora.types.PLAYLIST, name: "playlist_sonora", infoType: "son", extra: "playlist" },
{id: sonora.types.HELP, name: "ajuda", infoType: "cap", extra: "" },
{id: sonora.types.SHOPPING_CART, name: "carrinho_de_compras/carrinho", infoType: "cap", extra: "" },
{ id: sonora.types.SHOPPING_CART, name: "carrinho_de_compras/pagina_de_volta_da_Boldcron", infoType: "cap", extra: "" },
{id: sonora.types.SEARCH, name: "busquedas/resultados/keyword", infoType: "cap", extra: "" },
{ id: sonora.types.SEARCH, name: "busquedas/no_resultados/keyword", infoType: "cap", extra: "" },
{id: sonora.types.MIX, name: "mix", infoType: "son", extra: "mix" },
{ id: sonora.types.RADIO, name: "radio", infoType: "son", extra: "radio" },
{id: sonora.types.ACERVO, name: "acervo", infoType: "son", extra: "acervo" },
{id: sonora.types.WIZARD, name: "playlistrapida", infoType: "son", extra: "playlistrapida" }
];
},
onPageLoaded: function() {
this.trackPage("");
},
getInfoId: function() {
var sonType = sonora.section;
var item = null;
var id = "";
switch (sonType) {
case sonora.types.ALBUM:
id = sonora.albumId;
break;
case sonora.types.SONG:
id = sonora.songId;
break;
case sonora.types.MIX:
id = "Mix";
break;
case sonora.types.RADIO:
id = "Radio";
break;
case sonora.types.WIZARD:
id = "playlistrapida";
break;
default:
id = sonora.section;
break;
}
for (var i = 0; i < sonora.metrics.arrTypes.length; i++) {
if (sonora.metrics.arrTypes[i].id == sonType) {
item = sonora.metrics.arrTypes[i];
break;
}
}
if (item && item.extra.length > 0) {
id = item.name;
if (item.extra == "genre" && sonora.genreId) {
id += "/" + sonora.genreId;
}
else if (item.extra == "playlist" && sonora.playlistId) {
id += "/" + sonora.playlistId;
}
else if (item.extra == "artist" && sonora.artistId) {
id += "/" + sonora.artistId;
}
else if (item.extra == "album" && sonora.albumId) {
id += "/" + sonora.albumId;
}
else if (item.extra == "music" && sonora.songId) {
id += "/" + sonora.songId;
}
else if (item.extra == "radio" || item.extra == "mix") {
var idRadio = sonora.radio.GetUrlParameters('idRadio', SWFAddress.getValue());
var idRadioCategory = sonora.radio.GetUrlParameters('idRadioCategory', SWFAddress.getValue());
if (idRadio.length > 0 && idRadioCategory.length > 0) {
id += "/RadioCategory/" + idRadioCategory + "/Radio/" + idRadio;
}
}
else if (item.extra == "acervo") {
id += '/' + sonora.radio.GetUrlParameters('acervo', SWFAddress.getValue()) + '/' + sonora.radio.GetUrlParameters('genre', SWFAddress.getValue());
}
else if (item.extra == "playlistrapida") {
id += sonora.wizard.action;
}
}
return id;
},
trackPage: function(dynamicAlbum) {
var isWMP = sonora.isInWMP;
var name = "metric_iframe";
$("#metric_container").remove();
var id = "";
if (dynamicAlbum == "") {
id = this.getInfoId();
}
else {
id = dynamicAlbum;
}
if (this.last == sonora.history.current) {
return;
}
this.last = sonora.history.current;
var srcPage = "/Content/metricIframe.htm?isWmp=" + (isWMP ? "1" : "0") + "&info_id=" + escape(unescape(id));
var metricContainer = document.getElementById("metricContainer");
if (metricContainer) {
var doc = sonora.utils.getFrameDocument(name);
if (doc) { doc.location.replace(srcPage); }
}
else {
metricContainer = $("<iframe name='" + name + "'></frame>")
.css("visibility", "hidden")
.attr("marginHeight", "0")
.attr("marginWidth", "0")
.attr("width", "1")
.attr("height", "1")
.attr("id", "metric_container")
.attr("src", srcPage);
$("body").append(metricContainer);
}
},
getMediaInfo: function(propertyName) {
var item = playerSonora ? playerSonora.currentItem : false;
var media = playerSonora ? playerSonora.getCurrentMedia() : false;
var propertyValue = null;
if (item && media) {
switch (propertyName.toLowerCase()) {
case 'playlisttype':
propertyValue = this.playlistType;
break;
case 'radiotype':
if (sonora.metrics._public == 0) {
propertyValue = true;
} else {
propertyValue = false;
}
break;
case 'playlist':
case 'radio':
propertyValue = this.playlistTitle;
break;
case 'playlistid':
case 'radioid':
propertyValue = this.playlistId;
break;
case 'musica':
case 'music':
propertyValue = media.title;
break;
case 'musicaid':
case 'musicid':
propertyValue = media.contentId;
break;
case 'artista':
case 'artist':
propertyValue = media.artist;
break;
case 'artistaid':
case 'artistid':
propertyValue = media.artistId;
break;
case 'album':
propertyValue = media.album;
break;
case 'albumid':
propertyValue = media.albumId;
break;
case 'company':
case 'recordlabel':
propertyValue = media.recordLabel;
break;
case 'companyid':
case 'recordlabelid':
propertyValue = media.recordLabelId;
break;
case 'filename':
propertyValue = this.parseFilename(media.mediaUrls[0]);
break;
case 'quality':
propertyValue = 0;
break;
case 'subscriber':
case 'issubscriber':
propertyValue = sonora.metrics.getSubscriber();
break;
case 'public':
case 'ispublic':
if (sonora.metrics._public == 0) {
propertyValue = true;
} else {
propertyValue = false;
}
break;
case 'country':
propertyValue = "br";
break;
}
}
if (propertyValue == null) {
switch (propertyName.toLowerCase()) {
case 'playlistid':
case 'radioid':
case 'musicaid':
case 'musicid':
case 'artistaid':
case 'artistid':
case 'albumid':
case 'companyid':
case 'recordlabelid':
case 'quality':
return (0);
break;
case 'playlist':
case 'radio':
case 'musica':
case 'music':
case 'artista':
case 'artist':
case 'album':
case 'company':
case 'recordlabel':
case 'filename':
return ('');
break;
case 'country':
return 'br';
break;
case 'subscriber':
case 'issubscriber':
return sonora.metrics.getSubscriber();
break;
case 'public':
case 'ispublic':
case 'silverlight':
return (false);
break;
}
}
else {
return (propertyValue)
}
},
getQualityFromCookie: function() {
var cookieName = "sonora";
var cookieDomain = "terra.com.br";
var expDate = new Date();
expDate.setTime(expDate.getTime() + 30 * 24 * 60 * 60 * 1000)
playerCookie = new CookieManager(cookieName, expDate, cookieDomain);
return playerCookie.getValue('quality');
},
parseFilename: function(url) {
url = url.substring(0, url.indexOf('?'));
start = url.lastIndexOf('/') + 1;
filename = url.substring(start);
return filename;
},
getAllMediaInfo: function() {
var buffer = "";
buffer += 'playlist:' + sonora.metrics.getMediaInfo('playlist') + '\n';
buffer += 'radio:' + sonora.metrics.getMediaInfo('radio') + '\n';
buffer += 'playlistid:' + sonora.metrics.getMediaInfo('playlistid') + '\n';
buffer += 'radioid:' + sonora.metrics.getMediaInfo('radioid') + '\n';
buffer += 'musica:' + sonora.metrics.getMediaInfo('musica') + '\n';
buffer += 'music:' + sonora.metrics.getMediaInfo('music') + '\n';
buffer += 'musicaid:' + sonora.metrics.getMediaInfo('musicaid') + '\n';
buffer += 'musicid:' + sonora.metrics.getMediaInfo('musicid') + '\n';
buffer += 'artista:' + sonora.metrics.getMediaInfo('artista') + '\n';
buffer += 'artist:' + sonora.metrics.getMediaInfo('artist') + '\n';
buffer += 'artistaid:' + sonora.metrics.getMediaInfo('artistaid') + '\n';
buffer += 'artistid:' + sonora.metrics.getMediaInfo('artistid') + '\n';
buffer += 'album:' + sonora.metrics.getMediaInfo('album') + '\n';
buffer += 'albumid:' + sonora.metrics.getMediaInfo('albumid') + '\n';
buffer += 'company:' + sonora.metrics.getMediaInfo('company') + '\n';
buffer += 'recordlabel:' + sonora.metrics.getMediaInfo('recordlabel') + '\n';
buffer += 'companyid:' + sonora.metrics.getMediaInfo('companyid') + '\n';
buffer += 'recordlabelid:' + sonora.metrics.getMediaInfo('recordlabelid') + '\n';
buffer += 'filename:' + sonora.metrics.getMediaInfo('filename') + '\n';
buffer += 'quality:' + sonora.metrics.getMediaInfo('quality') + '\n';
buffer += 'subscriber:' + sonora.metrics.getMediaInfo('subscriber') + '\n';
buffer += 'issubscriber:' + sonora.metrics.getMediaInfo('issubscriber') + '\n';
buffer += 'public:' + sonora.metrics.getMediaInfo('public') + '\n';
buffer += 'ispublic:' + sonora.metrics.getMediaInfo('ispublic') + '\n';
return buffer;
},
getSubscriber: function() {
var retValue = 0;
try {
if (typeof (sonora) != undefined && typeof (sonora) != 'undefined' && sonora != null &&
typeof (sonora.user) != undefined && typeof (sonora.user) != 'undefined' && sonora.user != null &&
typeof (sonora.user.user.id) != undefined && typeof (sonora.user.user.id) != 'undefined' && sonora.user.user.id != null && sonora.user.user.id > 0) {
var overlimit = (typeof (sonora.user.user.overLimit) != undefined && typeof (sonora.user.user.overLimit) != 'undefined' && sonora.user.user.overLimit != null && sonora.user.user.overLimit.length > 0) ? eval(sonora.user.user.overLimit) : false;
if (!overlimit) {
switch (parseInt(sonora.user.user.subscriptionType)) {
case 0: retValue = 5; break;
case 1: retValue = 2; break;
case 2: retValue = 4; break;
case 3: retValue = 3; break;
default: retValue = 5; break;
}
}
else {
retValue = 0;
}
}
else {
retValue = 0;
}
}
catch (e) {
retValue = 0;
}
return retValue;
}
}
sonora.shoppingcart = {
init:function() {
sonora.broadcaster.addListener( sonora.events.SHOPPING_CART_MODIFIED, function(e) {
if (sonora.currentObject == sonora.shoppingcart) {
sonora.refreshPage();
}
} );
},
pageLoad: function(){
sonora.currentObject = this;
$("a.delete_link").unbind("click").click(function(e){
e.preventDefault();
var url = $(this).attr("href");
url = url.split("#")[1];
var urlParts = url.split("/");
sonora.shoppingcart.deleteItem(urlParts[2],urlParts[1]);
$(this).parents("tr").remove();
$("table.cart tr").removeClass("b");
$("table.cart tr:odd").addClass("b");
return false;
});
},
deleteItem:function(id,type)
{
ShoppingCart.remove(id, type);
}
}
function CookieSetup() {
cookieManager = new CookieManager("FREE_PASS", new Date(2020, 12, 31), "terra.com.br");
var cookie = cookieManager.getValue("un");
if (cookie == null) {
if (!PreRequisites() && location.href.indexOf("Plugins") == -1) {
location.href = '/Plugins';
}
}
if (cookieManager.getValue("sonora_login") != null) {
}
}
function PreRequisites() {
var browser = BrowserDetect.browser;
var OS = BrowserDetect.OS;
ret = false;
if (OS == "Windows" || OS == "Mac") {
if (browser == "Explorer") {
ret = true;
} else {
if (HasPlugin("Flash")) {
if ((OS == "Mac") && (browser == "Firefox" || browser == "Safari")) {
if (HasPlugin("Silverlight")) {
ret = true;
}
}
}
}
}
if (OS == "Windows") {
ret = true;
}
return ret;
}
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('$.1n=7(G,F){d G=G,F=F;g(1p(G)!==\'2d\')G=$(G)[0];g(1p(F)!==\'2d\')F={};g(!(\'2x\'1a F))F.2x=$.3d.3e?K:M;g(!(\'2c\'1a F))F.2c=$.3d.3e?K:M;d 4f={2x:K,3W:\'4C\',1f:4D,3T:\'4Y\',3x:.6,3O:.4,3P:.5,53:5,3N:9,3D:5,51:14,25:0,2c:M,3I:M,3B:M,30:M,3A:M,49:0,4p:0,4k:8,3V:20,3X:3,2f:K,3n:[0,0],2z:[0,0],2O:[0,0],2D:7(){},2G:7(){}};d j=4f;21(F);d $I=$(G).B({16:\'1b\'});47($I,j.49,j.4p);d S=$I.W(),L=$I.U(),$12=$(\'<12 />\').W(S).U(L).1f(1L(\'4F\')).B({16:\'4H\',4B:j.3T});g(j.1f)$12.1f(j.1f);$I.54($12);d $34=$(\'<I />\').3Y(\'2N\',$I.3Y(\'2N\')).B(\'16\',\'1b\').W(S).U(L);d $2C=$(\'<12 />\').W(1t(V)).U(1t(V)).B({1l:59,16:\'1b\',4o:\'4g\'}).1P($34);d $2g=$(\'<12 />\').W(1t(V)).U(1t(V)).B({1l:5b});d $28=$(\'<12 />\').B({16:\'1b\',1l:55}).3U($I).1P($2C,$2g);d 23=j.4k;d $1S=$(\'<12 />\').1f(1L(\'3v\')).W(S+(23*2)).U(L+(23*2)).B({16:\'1b\',R:D(-23),P:D(-23),1l:3R,1z:0}).3q(48);d 1I,1Q;d 2u=2Q(G),1q,1B,3i,58,3h,1O;g(\'36\'1a j){1I=j.36[0]/S;1Q=j.36[1]/L}d E=7(){d A=0,u=0,q=0,m=0,Z,Y;7 1A(z){d z=2T(z);q=A=z[0];m=u=z[1]};7 1y(z){d z=2T(z);Z=z[0]-q;Y=z[1]-m;q=z[0];m=z[1]};7 3f(){k[Z,Y]};7 2b(2y){d Z=2y[0],Y=2y[1];g(0>A+Z)Z-=Z+A;g(0>u+Y)Y-=Y+u;g(L<m+Y)Y+=L-(m+Y);g(S<q+Z)Z+=S-(q+Z);A+=Z;q+=Z;u+=Y;m+=Y};7 2K(T){d c=Q();1E(T){C\'1s\':k[c.q,c.y];C\'11\':k[c.x,c.y];C\'2e\':k[c.q,c.m];C\'1M\':k[c.x,c.m]}};7 Q(){g(!j.25&&!1B)k 3F();d 1k=j.25?j.25:1B,5c=j.2O,4u=j.2z,1V=q-A,1Z=m-u,3c=N.17(1V),3j=N.17(1Z),3M=3c/3j,15,13;g(3M<1k){13=m;w=3j*1k;15=1V<0?A-w:w+A;g(15<0){15=0;h=N.17((15-A)/1k);13=1Z<0?u-h:h+u}1g g(15>S){15=S;h=N.17((15-A)/1k);13=1Z<0?u-h:h+u}}1g{15=q;h=3c/1k;13=1Z<0?u-h:u+h;g(13<0){13=0;w=N.17((13-u)*1k);15=1V<0?A-w:w+A}1g g(13>L){13=L;w=N.17(13-u)*1k;15=1V<0?A-w:w+A}}k 4E=3g(1F(A,u,15,13))};7 2T(p){g(p[0]<0)p[0]=0;g(p[1]<0)p[1]=0;g(p[0]>S)p[0]=S;g(p[1]>L)p[1]=L;k[p[0],p[1]]};7 1F(A,u,q,m){d 2R=A,3r=q,3o=u,3l=m;g(q<A){2R=q;3r=A}g(m<u){3o=m;3l=u}k[N.1K(2R),N.1K(3o),N.1K(3r),N.1K(3l)]};7 3F(){d 1U=q-A;d 22=m-u;g(2q&&(N.17(1U)>2q))q=(1U>0)?(A+2q):(A-2q);g(2n&&(N.17(22)>2n))m=(22>0)?(u+2n):(u-2n);g(2i&&(N.17(22)<2i))m=(22>0)?(u+2i):(u-2i);g(2m&&(N.17(1U)<2m))q=(1U>0)?(A+2m):(A-2m);g(A<0){q-=A;A-=A}g(u<0){m-=u;u-=u}g(q<0){A-=q;q-=q}g(m<0){u-=m;m-=m}g(q>S){d X=q-S;A-=X;q-=X}g(m>L){d X=m-L;u-=X;m-=X}g(A>S){d X=A-L;m-=X;u-=X}g(u>L){d X=u-L;m-=X;u-=X}k 3g(1F(A,u,q,m))};7 3g(a){k{x:a[0],y:a[1],q:a[2],m:a[3],w:a[2]-a[0],h:a[3]-a[1]}};k{1F:1F,1A:1A,1y:1y,3f:3f,2b:2b,2K:2K,Q:Q}}();d J=7(){d 4v,4z,4y,1R,2U=4x;d 2F={};d H={};d 2E=K;d 1i=j.3D;g(j.30){2F={R:1Y(\'3C\').B(\'R\',$.3d.3e?D(-1):D(0)),3Q:1Y(\'3C\'),P:1Y(\'3z\'),3L:1Y(\'3z\')}}g(j.3A){H.t=1W(\'n\');H.b=1W(\'s\');H.r=1W(\'e\');H.l=1W(\'w\')}j.3B&&2Y([\'n\',\'s\',\'e\',\'w\']);j.3I&&2Y([\'1M\',\'11\',\'1s\',\'2e\']);7 1Y(1u){d 1J=$(\'<12 />\').B({16:\'1b\',1z:j.3O}).1f(1L(1u));$2C.1P(1J);k 1J};7 2W(T,3y){d 1J=$(\'<12 />\').3q(3b(T)).B({3p:T+\'-2A\',16:\'1b\',1l:3y});$2g.1P(1J);k 1J};7 3J(T){k 2W(T,2U++).B({R:D(-1i+1),P:D(-1i+1),1z:j.3P}).1f(1L(\'H\'))};7 1W(T){d s=j.3N,o=1i,h=s,w=s,t=o,l=o;1E(T){C\'n\':C\'s\':w=1t(V);O;C\'e\':C\'w\':h=1t(V);O}k 2W(T,2U++).W(w).U(h).B({R:D(-t+1),P:D(-l+1)})};7 2Y(2J){4U(i 1a 2J)H[2J[i]]=3J(2J[i])};7 31(c){d 3a=N.1K((c.h/2)-1i),35=N.1K((c.w/2)-1i),4V=4W=-1i+1,2a=c.w-1i,1X=c.h-1i,x,y;\'e\'1a H&&H.e.B({R:D(3a),P:D(2a)})&&H.w.B({R:D(3a)})&&H.s.B({R:D(1X),P:D(35)})&&H.n.B({P:D(35)});\'1s\'1a H&&H.1s.B({P:D(2a)})&&H.2e.B({R:D(1X),P:D(2a)})&&H.1M.B({R:D(1X)});\'b\'1a H&&H.b.B({R:D(1X)})&&H.r.B({P:D(2a)})};7 3K(x,y){$34.B({R:D(-y),P:D(-x)});$28.B({R:D(y),P:D(x)})};7 2A(w,h){$28.W(w).U(h)};7 3s(){d p=E.Q();E.1A([p.x,p.y]);E.1y([p.q,p.m])};7 2I(){g(1R)k 1e()};7 1e(){d c=E.Q();2A(c.w,c.h);3K(c.x,c.y);j.30&&2F[\'3L\'].B({P:D(c.w-1)})&&2F[\'3Q\'].B({R:D(c.h-1)});2E&&31(c);1R||1w();j.2D(2H(c))};7 1w(){$28.1w();$I.B(\'1z\',j.3x);1R=M};7 1r(){1o();$28.1v();$I.B(\'1z\',1);1R=K};7 1v(){1r();$I.B(\'1z\',1);1R=K};7 2t(){2E=M;31(E.Q());$2g.1w()};7 1o(){2E=K;$2g.1v()};7 2o(v){(3h=v)?1o():2t()};7 1h(){d c=E.Q();2o(K);3s()};1o();$2C.1P($(\'<12 />\').1f(1L(\'3v\')).3q(3b(\'1N\')).B({3p:\'1N\',16:\'1b\',1l:4M,1z:0}));k{2I:2I,1e:1e,1r:1r,1w:1w,1v:1v,2t:2t,1o:1o,2o:2o,1h:1h}}();d 1j=7(){d 2w=7(){},2v=7(){},2L=j.2x;g(!2L){$1S.3k(2B).2S(26).4N(26)}7 4j(){g(2L){$(3t).3k(2B).2S(26)}$1S.B({1l:4G})}7 4i(){g(2L){$(3t).3H(\'3k\',2B).3H(\'2S\',26)}$1S.B({1l:3R})}7 2B(e){2w(2r(e))};7 26(e){e.2j();e.2k();g(1q){1q=K;2v(2r(e));j.2G(2H(E.Q()));4i();2w=7(){};2v=7(){}}k K};7 1G(1N,1h){1q=M;2w=1N;2v=1h;4j();k K};7 1x(t){$1S.B(\'3p\',t)};$I.4s($1S);k{1G:1G,1x:1x}}();d 33=7(){d $24=$(\'<4w 1u="4L" />\').B({16:\'1b\',P:\'-4O\'}).57(43).56(2f).5a(41),$3S=$(\'<12 />\').B({16:\'1b\',4o:\'4g\'}).1P($24);7 2l(){g(j.2c){$24.1w();$24.4Z()}};7 41(e){$24.1v()};7 2f(e){g(!j.2f)k;d 42=1O,1C;1O=e.4Q?M:K;g(42!=1O){g(1O&&1q){1C=E.Q();1B=1C.w/1C.h}1g 1B=0;J.1e()}e.2k();e.2j();k K};7 29(e,x,y){E.2b([x,y]);J.2I();e.2j();e.2k()};7 43(e){g(e.4T)k M;2f(e);d 2h=1O?10:1;1E(e.5d){C 37:29(e,-2h,0);O;C 39:29(e,2h,0);O;C 38:29(e,0,-2h);O;C 40:29(e,0,2h);O;C 27:J.1r();O;C 9:k M}k K};g(j.2c)$3S.3U($I);k{2l:2l}}();7 D(n){k\'\'+1m(n)+\'D\'};7 1t(n){k\'\'+1m(n)+\'%\'};7 1L(44){k j.3W+\'-\'+44};7 2Q(G){d z=$(G).2y();k[z.P,z.R]};7 2r(e){k[(e.4q-2u[0]),(e.4r-2u[1])]};7 46(1u){g(1u!=3i){1j.1x(1u);3i=1u}};7 4a(19,z){2u=2Q(G);1j.1x(19==\'1N\'?19:19+\'-2A\');g(19==\'1N\')k 1j.1G(4e(z),2P);d 1C=E.Q();E.1A(E.2K(4b(19)));1j.1G(45(19,1C),2P)};7 45(19,f){k 7(z){g(!j.25&&!1B)1E(19){C\'e\':z[1]=f.m;O;C\'w\':z[1]=f.m;O;C\'n\':z[0]=f.q;O;C\'s\':z[0]=f.q;O}1g 1E(19){C\'e\':z[1]=f.y+1;O;C\'w\':z[1]=f.y+1;O;C\'n\':z[0]=f.x+1;O;C\'s\':z[0]=f.x+1;O}E.1y(z);J.1e()}};7 4e(z){d 2M=z;33.2l();k 7(z){E.2b([z[0]-2M[0],z[1]-2M[1]]);2M=z;J.1e()}};7 4b(T){1E(T){C\'n\':k\'1M\';C\'s\':k\'11\';C\'e\':k\'11\';C\'w\':k\'1s\';C\'1s\':k\'1M\';C\'11\':k\'2e\';C\'2e\':k\'11\';C\'1M\':k\'1s\'}};7 3b(T){k 7(e){1q=M;4a(T,2r(e));e.2k();e.2j();k K}};7 47($G,w,h){d 11=$G.W(),1H=$G.U();g((11>w)&&w>0){11=w;1H=(w/$G.W())*$G.U()}g((1H>h)&&h>0){1H=h;11=(h/$G.U())*$G.W()}1I=$G.W()/11;1Q=$G.U()/1H;$G.W(11).U(1H)};7 2H(c){k{x:1m(c.x*1I),y:1m(c.y*1Q),q:1m(c.q*1I),m:1m(c.m*1Q),w:1m(c.w*1I),h:1m(c.h*1Q)}};7 2P(z){d c=E.Q();g(c.w>j.3n[0]&&c.h>j.3n[1]){J.2t();J.1h()}1g{J.1r()}1j.1x(\'2X\')};7 48(e){1q=M;2u=2Q(G);J.1r();J.1o();46(\'2X\');E.1A(2r(e));1j.1G(4c,2P);33.2l();e.2k();e.2j();k K};7 4c(z){E.1y(z);J.1e()};7 2Z(a){d A=a[0],u=a[1],q=a[2],m=a[3];g(3h)k;d 2s=E.1F(A,u,q,m);d c=E.Q();d 18=2p=[c.x,c.y,c.q,c.m];d 3w=j.3V;d x=18[0];d y=18[1];d q=18[2];d m=18[3];d 3Z=2s[0]-2p[0];d 4m=2s[1]-2p[1];d 4n=2s[2]-2p[2];d 4l=2s[3]-2p[3];d 1c=0;d 4h=j.3X;J.2o(M);d 3u=7(){k 7(){1c+=(V-1c)/4h;18[0]=x+((1c/V)*3Z);18[1]=y+((1c/V)*4m);18[2]=q+((1c/V)*4n);18[3]=m+((1c/V)*4l);g(1c<V)32();1g J.1h();g(1c>=4K.8)1c=V;1d(18)}}();7 32(){4I.4t(3u,3w)};32()};7 1d(l){E.1A([l[0],l[1]]);E.1y([l[2],l[3]]);J.1e()};7 21(F){g(1p(F)!=\'2d\')F={};j=$.4X(j,F);g(1p(j.2D)!==\'7\')j.2D=7(){};g(1p(j.2G)!==\'7\')j.2G=7(){}};7 3m(){k 2H(E.Q())};7 2V(){k E.Q()};7 3E(F){21(F);g(\'1d\'1a F){1d(F.1d);J.1h()}};g(1p(F)!=\'2d\')F={};g(\'1d\'1a F){1d(F.1d);J.1h()}d 2q=j.2z[0]||0;d 2n=j.2z[1]||0;d 2m=j.2O[0]||0;d 2i=j.2O[1]||0;1j.1x(\'2X\');k{2Z:2Z,1d:1d,21:3E,3m:3m,2V:2V}};$.5e.1n=7(j){7 3G(1D){d 4d=j.4R||1D.2N;d I=4P 4S();d 1D=1D;I.50=7(){$(1D).1v().4A(I);1D.1n=$.1n(I,j)};I.2N=4d};g(1p(j)!==\'2d\')j={};1T.4J(7(){g(\'1n\'1a 1T){g(j==\'52\')k 1T.1n;1g 1T.1n.21(j)}1g 3G(1T)});k 1T};',62,325,'|||||||function||||||var|||if|||options|return||y2||||x2||||y1|||||pos|x1|css|case|px|Coords|opt|obj|handle|img|Selection|false|boundy|true|Math|break|left|getFixed|top|boundx|ord|height|100|width|delta|oy|ox||nw|div|yy||xx|position|abs|animat|mode|in|absolute|pcent|setSelect|update|addClass|else|done|hhs|Tracker|aspect|zIndex|parseInt|Jcrop|disableHandles|typeof|btndown|release|ne|pct|type|hide|show|setCursor|setCurrent|opacity|setPressed|aspectLock|fc|from|switch|flipCoords|activateHandlers|nh|xscale|jq|round|cssClass|sw|move|shift_down|append|yscale|awake|trk|this|xsize|rw|insertDragbar|south|insertBorder|rh||setOptions|ysize|bound|keymgr|aspectRatio|trackUp||sel|doNudge|east|moveOffset|keySupport|object|se|watchShift|hdl_holder|nudge|ymin|preventDefault|stopPropagation|watchKeys|xmin|ylimit|animMode|initcr|xlimit|mouseAbs|animto|enableHandles|docOffset|onDone|onMove|trackDocument|offset|maxSize|resize|trackMove|img_holder|onChange|seehandles|borders|onSelect|unscale|updateVisible|li|getCorner|trackDoc|lloc|src|minSize|doneSelect|getPos|xa|mouseup|rebound|hdep|tellScaled|dragDiv|crosshair|createHandles|animateTo|drawBorders|moveHandles|animateStart|KeyManager|img2|midhoriz|trueSize||||midvert|createDragger|rwa|browser|msie|getOffset|makeObj|animating|lastcurs|rha|mousemove|yb|tellSelect|minSelect|ya|cursor|mousedown|xb|refresh|document|animator|tracker|interv|bgOpacity|zi|vline|dragEdges|sideHandles|hline|handleOffset|setOptionsNew|getRect|attachWhenDone|unbind|cornerHandles|insertHandle|moveto|right|real_ratio|handleSize|borderOpacity|handleOpacity|bottom|290|keywrap|bgColor|insertBefore|animationDelay|baseClass|swingSpeed|attr|ix1||onBlur|init_shift|parseKey|cl|dragmodeHandler|myCursor|presize|newSelection|boxWidth|startDragMode|oppLockCorner|selectDrag|loadsrc|createMover|defaults|hidden|velocity|toBack|toFront|boundary|iy2|iy1|ix2|overflow|boxHeight|pageX|pageY|before|setTimeout|max|start|input|370|dragmode|end|after|backgroundColor|jcrop|null|last|holder|450|relative|window|each|99|radio|360|mouseout|30px|new|shiftKey|useImg|Image|ctrlKey|for|north|west|extend|black|focus|onload|edgeMargin|api|handlePad|wrap|300|keyup|keydown|dimmed|310|blur|320|min|keyCode|fn'.split('|'),0,{}))
