var Prototype={Version:"1.6.0.2",Browser:{IE:!!(window.attachEvent&&!window.opera),Opera:!!window.opera,WebKit:navigator.userAgent.indexOf("AppleWebKit/")>-1,Gecko:navigator.userAgent.indexOf("Gecko")>-1&&navigator.userAgent.indexOf("KHTML")==-1,MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)},BrowserFeatures:{XPath:!!document.evaluate,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:document.createElement("div").__proto__&&document.createElement("div").__proto__!==document.createElement("form").__proto__},ScriptFragment:"<script[^>]*>([\\S\\s]*?)<\/script>",JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(A){return A
}};
if(Prototype.Browser.MobileSafari){Prototype.BrowserFeatures.SpecificElementExtensions=false
}var Class={create:function(){var E=null,D=$A(arguments);
if(Object.isFunction(D[0])){E=D.shift()
}function A(){this.initialize.apply(this,arguments)
}Object.extend(A,Class.Methods);
A.superclass=E;
A.subclasses=[];
if(E){var B=function(){};
B.prototype=E.prototype;
A.prototype=new B;
E.subclasses.push(A)
}for(var C=0;
C<D.length;
C++){A.addMethods(D[C])
}if(!A.prototype.initialize){A.prototype.initialize=Prototype.emptyFunction
}A.prototype.constructor=A;
return A
}};
Class.Methods={addMethods:function(G){var C=this.superclass&&this.superclass.prototype;
var B=Object.keys(G);
if(!Object.keys({toString:true}).length){B.push("toString","valueOf")
}for(var A=0,D=B.length;
A<D;
A++){var F=B[A],E=G[F];
if(C&&Object.isFunction(E)&&E.argumentNames().first()=="$super"){var H=E,E=Object.extend((function(I){return function(){return C[I].apply(this,arguments)
}
})(F).wrap(H),{valueOf:function(){return H
},toString:function(){return H.toString()
}})
}this.prototype[F]=E
}return this
}};
var Abstract={};
Object.extend=function(A,C){for(var B in C){A[B]=C[B]
}return A
};
Object.extend(Object,{inspect:function(A){try{if(Object.isUndefined(A)){return"undefined"
}if(A===null){return"null"
}return A.inspect?A.inspect():String(A)
}catch(B){if(B instanceof RangeError){return"..."
}throw B
}},toJSON:function(A){var C=typeof A;
switch(C){case"undefined":case"function":case"unknown":return ;
case"boolean":return A.toString()
}if(A===null){return"null"
}if(A.toJSON){return A.toJSON()
}if(Object.isElement(A)){return 
}var B=[];
for(var E in A){var D=Object.toJSON(A[E]);
if(!Object.isUndefined(D)){B.push(E.toJSON()+": "+D)
}}return"{"+B.join(", ")+"}"
},toQueryString:function(A){return $H(A).toQueryString()
},toHTML:function(A){return A&&A.toHTML?A.toHTML():String.interpret(A)
},keys:function(A){var B=[];
for(var C in A){B.push(C)
}return B
},values:function(B){var A=[];
for(var C in B){A.push(B[C])
}return A
},clone:function(A){return Object.extend({},A)
},isElement:function(A){return A&&A.nodeType==1
},isArray:function(A){return A!=null&&typeof A=="object"&&"splice" in A&&"join" in A
},isHash:function(A){return A instanceof Hash
},isFunction:function(A){return typeof A=="function"
},isString:function(A){return typeof A=="string"
},isNumber:function(A){return typeof A=="number"
},isUndefined:function(A){return typeof A=="undefined"
}});
Object.extend(Function.prototype,{argumentNames:function(){var A=this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip");
return A.length==1&&!A[0]?[]:A
},bind:function(){if(arguments.length<2&&Object.isUndefined(arguments[0])){return this
}var A=this,C=$A(arguments),B=C.shift();
return function(){return A.apply(B,C.concat($A(arguments)))
}
},bindAsEventListener:function(){var A=this,C=$A(arguments),B=C.shift();
return function(D){return A.apply(B,[D||window.event].concat(C))
}
},curry:function(){if(!arguments.length){return this
}var A=this,B=$A(arguments);
return function(){return A.apply(this,B.concat($A(arguments)))
}
},delay:function(){var A=this,B=$A(arguments),C=B.shift()*1000;
return window.setTimeout(function(){return A.apply(A,B)
},C)
},wrap:function(B){var A=this;
return function(){return B.apply(this,[A.bind(this)].concat($A(arguments)))
}
},methodize:function(){if(this._methodized){return this._methodized
}var A=this;
return this._methodized=function(){return A.apply(null,[this].concat($A(arguments)))
}
}});
Function.prototype.defer=Function.prototype.delay.curry(0.01);
Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+"-"+(this.getUTCMonth()+1).toPaddedString(2)+"-"+this.getUTCDate().toPaddedString(2)+"T"+this.getUTCHours().toPaddedString(2)+":"+this.getUTCMinutes().toPaddedString(2)+":"+this.getUTCSeconds().toPaddedString(2)+'Z"'
};
var Try={these:function(){var C;
for(var B=0,D=arguments.length;
B<D;
B++){var A=arguments[B];
try{C=A();
break
}catch(E){}}return C
}};
RegExp.prototype.match=RegExp.prototype.test;
RegExp.escape=function(A){return String(A).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")
};
var PeriodicalExecuter=Class.create({initialize:function(B,A){this.callback=B;
this.frequency=A;
this.currentlyExecuting=false;
this.registerCallback()
},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000)
},execute:function(){this.callback(this)
},stop:function(){if(!this.timer){return 
}clearInterval(this.timer);
this.timer=null
},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;
this.execute()
}finally{this.currentlyExecuting=false
}}}});
Object.extend(String,{interpret:function(A){return A==null?"":String(A)
},specialChar:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\\":"\\\\"}});
Object.extend(String.prototype,{gsub:function(E,C){var A="",D=this,B;
C=arguments.callee.prepareReplacement(C);
while(D.length>0){if(B=D.match(E)){A+=D.slice(0,B.index);
A+=String.interpret(C(B));
D=D.slice(B.index+B[0].length)
}else{A+=D,D=""
}}return A
},sub:function(C,A,B){A=this.gsub.prepareReplacement(A);
B=Object.isUndefined(B)?1:B;
return this.gsub(C,function(D){if(--B<0){return D[0]
}return A(D)
})
},scan:function(B,A){this.gsub(B,A);
return String(this)
},truncate:function(B,A){B=B||30;
A=Object.isUndefined(A)?"...":A;
return this.length>B?this.slice(0,B-A.length)+A:String(this)
},strip:function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")
},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,"")
},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"")
},extractScripts:function(){var B=new RegExp(Prototype.ScriptFragment,"img");
var A=new RegExp(Prototype.ScriptFragment,"im");
return(this.match(B)||[]).map(function(C){return(C.match(A)||["",""])[1]
})
},evalScripts:function(){return this.extractScripts().map(function(script){return eval(script)
})
},escapeHTML:function(){var A=arguments.callee;
A.text.data=this;
return A.div.innerHTML
},unescapeHTML:function(){var A=new Element("div");
A.innerHTML=this.stripTags();
return A.childNodes[0]?(A.childNodes.length>1?$A(A.childNodes).inject("",function(B,C){return B+C.nodeValue
}):A.childNodes[0].nodeValue):""
},toQueryParams:function(B){var A=this.strip().match(/([^?#]*)(#.*)?$/);
if(!A){return{}
}return A[1].split(B||"&").inject({},function(E,F){if((F=F.split("="))[0]){var C=decodeURIComponent(F.shift());
var D=F.length>1?F.join("="):F[0];
if(D!=undefined){D=decodeURIComponent(D)
}if(C in E){if(!Object.isArray(E[C])){E[C]=[E[C]]
}E[C].push(D)
}else{E[C]=D
}}return E
})
},toArray:function(){return this.split("")
},succ:function(){return this.slice(0,this.length-1)+String.fromCharCode(this.charCodeAt(this.length-1)+1)
},times:function(A){return A<1?"":new Array(A+1).join(this)
},camelize:function(){var D=this.split("-"),A=D.length;
if(A==1){return D[0]
}var C=this.charAt(0)=="-"?D[0].charAt(0).toUpperCase()+D[0].substring(1):D[0];
for(var B=1;
B<A;
B++){C+=D[B].charAt(0).toUpperCase()+D[B].substring(1)
}return C
},capitalize:function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase()
},underscore:function(){return this.gsub(/::/,"/").gsub(/([A-Z]+)([A-Z][a-z])/,"#{1}_#{2}").gsub(/([a-z\d])([A-Z])/,"#{1}_#{2}").gsub(/-/,"_").toLowerCase()
},dasherize:function(){return this.gsub(/_/,"-")
},inspect:function(B){var A=this.gsub(/[\x00-\x1f\\]/,function(C){var D=String.specialChar[C[0]];
return D?D:"\\u00"+C[0].charCodeAt().toPaddedString(2,16)
});
if(B){return'"'+A.replace(/"/g,'\\"')+'"'
}return"'"+A.replace(/'/g,"\\'")+"'"
},toJSON:function(){return this.inspect(true)
},unfilterJSON:function(A){return this.sub(A||Prototype.JSONFilter,"#{1}")
},isJSON:function(){var A=this;
if(A.blank()){return false
}A=this.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,"");
return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(A)
},evalJSON:function(sanitize){var json=this.unfilterJSON();
try{if(!sanitize||json.isJSON()){return eval("("+json+")")
}}catch(e){}throw new SyntaxError("Badly formed JSON string: "+this.inspect())
},include:function(A){return this.indexOf(A)>-1
},startsWith:function(A){return this.indexOf(A)===0
},endsWith:function(A){var B=this.length-A.length;
return B>=0&&this.lastIndexOf(A)===B
},empty:function(){return this==""
},blank:function(){return/^\s*$/.test(this)
},interpolate:function(A,B){return new Template(this,B).evaluate(A)
}});
if(Prototype.Browser.WebKit||Prototype.Browser.IE){Object.extend(String.prototype,{escapeHTML:function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")
},unescapeHTML:function(){return this.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">")
}})
}String.prototype.gsub.prepareReplacement=function(B){if(Object.isFunction(B)){return B
}var A=new Template(B);
return function(C){return A.evaluate(C)
}
};
String.prototype.parseQuery=String.prototype.toQueryParams;
Object.extend(String.prototype.escapeHTML,{div:document.createElement("div"),text:document.createTextNode("")});
with(String.prototype.escapeHTML){div.appendChild(text)
}var Template=Class.create({initialize:function(A,B){this.template=A.toString();
this.pattern=B||Template.Pattern
},evaluate:function(A){if(Object.isFunction(A.toTemplateReplacements)){A=A.toTemplateReplacements()
}return this.template.gsub(this.pattern,function(D){if(A==null){return""
}var F=D[1]||"";
if(F=="\\"){return D[2]
}var B=A,G=D[3];
var E=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
D=E.exec(G);
if(D==null){return F
}while(D!=null){var C=D[1].startsWith("[")?D[2].gsub("\\\\]","]"):D[1];
B=B[C];
if(null==B||""==D[3]){break
}G=G.substring("["==D[3]?D[1].length:D[0].length);
D=E.exec(G)
}return F+String.interpret(B)
})
}});
Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;
var $break={};
var Enumerable={each:function(C,B){var A=0;
C=C.bind(B);
try{this._each(function(E){C(E,A++)
})
}catch(D){if(D!=$break){throw D
}}return this
},eachSlice:function(D,C,B){C=C?C.bind(B):Prototype.K;
var A=-D,E=[],F=this.toArray();
while((A+=D)<F.length){E.push(F.slice(A,A+D))
}return E.collect(C,B)
},all:function(C,B){C=C?C.bind(B):Prototype.K;
var A=true;
this.each(function(E,D){A=A&&!!C(E,D);
if(!A){throw $break
}});
return A
},any:function(C,B){C=C?C.bind(B):Prototype.K;
var A=false;
this.each(function(E,D){if(A=!!C(E,D)){throw $break
}});
return A
},collect:function(C,B){C=C?C.bind(B):Prototype.K;
var A=[];
this.each(function(E,D){A.push(C(E,D))
});
return A
},detect:function(C,B){C=C.bind(B);
var A;
this.each(function(E,D){if(C(E,D)){A=E;
throw $break
}});
return A
},findAll:function(C,B){C=C.bind(B);
var A=[];
this.each(function(E,D){if(C(E,D)){A.push(E)
}});
return A
},grep:function(D,C,B){C=C?C.bind(B):Prototype.K;
var A=[];
if(Object.isString(D)){D=new RegExp(D)
}this.each(function(F,E){if(D.match(F)){A.push(C(F,E))
}});
return A
},include:function(A){if(Object.isFunction(this.indexOf)){if(this.indexOf(A)!=-1){return true
}}var B=false;
this.each(function(C){if(C==A){B=true;
throw $break
}});
return B
},inGroupsOf:function(B,A){A=Object.isUndefined(A)?null:A;
return this.eachSlice(B,function(C){while(C.length<B){C.push(A)
}return C
})
},inject:function(A,C,B){C=C.bind(B);
this.each(function(E,D){A=C(A,E,D)
});
return A
},invoke:function(B){var A=$A(arguments).slice(1);
return this.map(function(C){return C[B].apply(C,A)
})
},max:function(C,B){C=C?C.bind(B):Prototype.K;
var A;
this.each(function(E,D){E=C(E,D);
if(A==null||E>=A){A=E
}});
return A
},min:function(C,B){C=C?C.bind(B):Prototype.K;
var A;
this.each(function(E,D){E=C(E,D);
if(A==null||E<A){A=E
}});
return A
},partition:function(D,B){D=D?D.bind(B):Prototype.K;
var C=[],A=[];
this.each(function(F,E){(D(F,E)?C:A).push(F)
});
return[C,A]
},pluck:function(B){var A=[];
this.each(function(C){A.push(C[B])
});
return A
},reject:function(C,B){C=C.bind(B);
var A=[];
this.each(function(E,D){if(!C(E,D)){A.push(E)
}});
return A
},sortBy:function(B,A){B=B.bind(A);
return this.map(function(D,C){return{value:D,criteria:B(D,C)}
}).sort(function(F,E){var D=F.criteria,C=E.criteria;
return D<C?-1:D>C?1:0
}).pluck("value")
},toArray:function(){return this.map()
},zip:function(){var B=Prototype.K,A=$A(arguments);
if(Object.isFunction(A.last())){B=A.pop()
}var C=[this].concat(A).map($A);
return this.map(function(E,D){return B(C.pluck(D))
})
},size:function(){return this.toArray().length
},inspect:function(){return"#<Enumerable:"+this.toArray().inspect()+">"
}};
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,filter:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray,every:Enumerable.all,some:Enumerable.any});
function $A(C){if(!C){return[]
}if(C.toArray){return C.toArray()
}var B=C.length||0,A=new Array(B);
while(B--){A[B]=C[B]
}return A
}if(Prototype.Browser.WebKit){$A=function(C){if(!C){return[]
}if(!(Object.isFunction(C)&&C=="[object NodeList]")&&C.toArray){return C.toArray()
}var B=C.length||0,A=new Array(B);
while(B--){A[B]=C[B]
}return A
}
}Array.from=$A;
Object.extend(Array.prototype,Enumerable);
if(!Array.prototype._reverse){Array.prototype._reverse=Array.prototype.reverse
}Object.extend(Array.prototype,{_each:function(B){for(var A=0,C=this.length;
A<C;
A++){B(this[A])
}},clear:function(){this.length=0;
return this
},first:function(){return this[0]
},last:function(){return this[this.length-1]
},compact:function(){return this.select(function(A){return A!=null
})
},flatten:function(){return this.inject([],function(B,A){return B.concat(Object.isArray(A)?A.flatten():[A])
})
},without:function(){var A=$A(arguments);
return this.select(function(B){return !A.include(B)
})
},reverse:function(A){return(A!==false?this:this.toArray())._reverse()
},reduce:function(){return this.length>1?this:this[0]
},uniq:function(A){return this.inject([],function(D,C,B){if(0==B||(A?D.last()!=C:!D.include(C))){D.push(C)
}return D
})
},intersect:function(A){return this.uniq().findAll(function(B){return A.detect(function(C){return B===C
})
})
},clone:function(){return[].concat(this)
},size:function(){return this.length
},inspect:function(){return"["+this.map(Object.inspect).join(", ")+"]"
},toJSON:function(){var A=[];
this.each(function(B){var C=Object.toJSON(B);
if(!Object.isUndefined(C)){A.push(C)
}});
return"["+A.join(", ")+"]"
}});
if(Object.isFunction(Array.prototype.forEach)){Array.prototype._each=Array.prototype.forEach
}if(!Array.prototype.indexOf){Array.prototype.indexOf=function(C,A){A||(A=0);
var B=this.length;
if(A<0){A=B+A
}for(;
A<B;
A++){if(this[A]===C){return A
}}return -1
}
}if(!Array.prototype.lastIndexOf){Array.prototype.lastIndexOf=function(B,A){A=isNaN(A)?this.length:(A<0?this.length+A:A)+1;
var C=this.slice(0,A).reverse().indexOf(B);
return(C<0)?C:A-C-1
}
}Array.prototype.toArray=Array.prototype.clone;
function $w(A){if(!Object.isString(A)){return[]
}A=A.strip();
return A?A.split(/\s+/):[]
}if(Prototype.Browser.Opera){Array.prototype.concat=function(){var E=[];
for(var B=0,C=this.length;
B<C;
B++){E.push(this[B])
}for(var B=0,C=arguments.length;
B<C;
B++){if(Object.isArray(arguments[B])){for(var A=0,D=arguments[B].length;
A<D;
A++){E.push(arguments[B][A])
}}else{E.push(arguments[B])
}}return E
}
}Object.extend(Number.prototype,{toColorPart:function(){return this.toPaddedString(2,16)
},succ:function(){return this+1
},times:function(A){$R(0,this,true).each(A);
return this
},toPaddedString:function(C,B){var A=this.toString(B||10);
return"0".times(C-A.length)+A
},toJSON:function(){return isFinite(this)?this.toString():"null"
}});
$w("abs round ceil floor").each(function(A){Number.prototype[A]=Math[A].methodize()
});
function $H(A){return new Hash(A)
}var Hash=Class.create(Enumerable,(function(){function A(B,C){if(Object.isUndefined(C)){return B
}return B+"="+encodeURIComponent(String.interpret(C))
}return{initialize:function(B){this._object=Object.isHash(B)?B.toObject():Object.clone(B)
},_each:function(C){for(var B in this._object){var D=this._object[B],E=[B,D];
E.key=B;
E.value=D;
C(E)
}},set:function(B,C){return this._object[B]=C
},get:function(B){return this._object[B]
},unset:function(B){var C=this._object[B];
delete this._object[B];
return C
},toObject:function(){return Object.clone(this._object)
},keys:function(){return this.pluck("key")
},values:function(){return this.pluck("value")
},index:function(C){var B=this.detect(function(D){return D.value===C
});
return B&&B.key
},merge:function(B){return this.clone().update(B)
},update:function(B){return new Hash(B).inject(this,function(C,D){C.set(D.key,D.value);
return C
})
},toQueryString:function(){return this.map(function(D){var C=encodeURIComponent(D.key),B=D.value;
if(B&&typeof B=="object"){if(Object.isArray(B)){return B.map(A.curry(C)).join("&")
}}return A(C,B)
}).join("&")
},inspect:function(){return"#<Hash:{"+this.map(function(B){return B.map(Object.inspect).join(": ")
}).join(", ")+"}>"
},toJSON:function(){return Object.toJSON(this.toObject())
},clone:function(){return new Hash(this)
}}
})());
Hash.prototype.toTemplateReplacements=Hash.prototype.toObject;
Hash.from=$H;
var ObjectRange=Class.create(Enumerable,{initialize:function(C,A,B){this.start=C;
this.end=A;
this.exclusive=B
},_each:function(A){var B=this.start;
while(this.include(B)){A(B);
B=B.succ()
}},include:function(A){if(A<this.start){return false
}if(this.exclusive){return A<this.end
}return A<=this.end
}});
var $R=function(C,A,B){return new ObjectRange(C,A,B)
};
var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest()
},function(){return new ActiveXObject("Msxml2.XMLHTTP")
},function(){return new ActiveXObject("Microsoft.XMLHTTP")
})||false
},activeRequestCount:0};
Ajax.Responders={responders:[],_each:function(A){this.responders._each(A)
},register:function(A){if(!this.include(A)){this.responders.push(A)
}},unregister:function(A){this.responders=this.responders.without(A)
},dispatch:function(D,B,C,A){this.each(function(E){if(Object.isFunction(E[D])){try{E[D].apply(E,[B,C,A])
}catch(F){}}})
}};
Object.extend(Ajax.Responders,Enumerable);
Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++
},onComplete:function(){Ajax.activeRequestCount--
}});
Ajax.Base=Class.create({initialize:function(A){this.options={method:"post",asynchronous:true,contentType:"application/x-www-form-urlencoded",encoding:"UTF-8",parameters:"",evalJSON:true,evalJS:true};
Object.extend(this.options,A||{});
this.options.method=this.options.method.toLowerCase();
if(Object.isString(this.options.parameters)){this.options.parameters=this.options.parameters.toQueryParams()
}else{if(Object.isHash(this.options.parameters)){this.options.parameters=this.options.parameters.toObject()
}}}});
Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,B,A){$super(A);
this.transport=Ajax.getTransport();
this.request(B)
},request:function(B){this.url=B;
this.method=this.options.method;
var D=Object.clone(this.options.parameters);
if(!["get","post"].include(this.method)){D._method=this.method;
this.method="post"
}this.parameters=D;
if(D=Object.toQueryString(D)){if(this.method=="get"){this.url+=(this.url.include("?")?"&":"?")+D
}else{if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){D+="&_="
}}}try{var A=new Ajax.Response(this);
if(this.options.onCreate){this.options.onCreate(A)
}Ajax.Responders.dispatch("onCreate",this,A);
this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);
if(this.options.asynchronous){this.respondToReadyState.bind(this).defer(1)
}this.transport.onreadystatechange=this.onStateChange.bind(this);
this.setRequestHeaders();
this.body=this.method=="post"?(this.options.postBody||D):null;
this.transport.send(this.body);
if(!this.options.asynchronous&&this.transport.overrideMimeType){this.onStateChange()
}}catch(C){this.dispatchException(C)
}},onStateChange:function(){var A=this.transport.readyState;
if(A>1&&!((A==4)&&this._complete)){this.respondToReadyState(this.transport.readyState)
}},setRequestHeaders:function(){var E={"X-Requested-With":"XMLHttpRequest","X-Prototype-Version":Prototype.Version,Accept:"text/javascript, text/html, application/xml, text/xml, */*"};
if(this.method=="post"){E["Content-type"]=this.options.contentType+(this.options.encoding?"; charset="+this.options.encoding:"");
if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005){E.Connection="close"
}}if(typeof this.options.requestHeaders=="object"){var C=this.options.requestHeaders;
if(Object.isFunction(C.push)){for(var B=0,D=C.length;
B<D;
B+=2){E[C[B]]=C[B+1]
}}else{$H(C).each(function(F){E[F.key]=F.value
})
}}for(var A in E){this.transport.setRequestHeader(A,E[A])
}},success:function(){var A=this.getStatus();
return !A||(A>=200&&A<300)
},getStatus:function(){try{return this.transport.status||0
}catch(A){return 0
}},respondToReadyState:function(A){var C=Ajax.Request.Events[A],B=new Ajax.Response(this);
if(C=="Complete"){try{this._complete=true;
(this.options["on"+B.status]||this.options["on"+(this.success()?"Success":"Failure")]||Prototype.emptyFunction)(B,B.headerJSON)
}catch(D){this.dispatchException(D)
}var E=B.getHeader("Content-type");
if(this.options.evalJS=="force"||(this.options.evalJS&&this.isSameOrigin()&&E&&E.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))){this.evalResponse()
}}try{(this.options["on"+C]||Prototype.emptyFunction)(B,B.headerJSON);
Ajax.Responders.dispatch("on"+C,this,B,B.headerJSON)
}catch(D){this.dispatchException(D)
}if(C=="Complete"){this.transport.onreadystatechange=Prototype.emptyFunction
}},isSameOrigin:function(){var A=this.url.match(/^\s*https?:\/\/[^\/]*/);
return !A||(A[0]=="#{protocol}//#{domain}#{port}".interpolate({protocol:location.protocol,domain:document.domain,port:location.port?":"+location.port:""}))
},getHeader:function(A){try{return this.transport.getResponseHeader(A)||null
}catch(B){return null
}},evalResponse:function(){try{return eval((this.transport.responseText||"").unfilterJSON())
}catch(e){this.dispatchException(e)
}},dispatchException:function(A){(this.options.onException||Prototype.emptyFunction)(this,A);
Ajax.Responders.dispatch("onException",this,A)
}});
Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];
Ajax.Response=Class.create({initialize:function(C){this.request=C;
var D=this.transport=C.transport,A=this.readyState=D.readyState;
if((A>2&&!Prototype.Browser.IE)||A==4){this.status=this.getStatus();
this.statusText=this.getStatusText();
this.responseText=String.interpret(D.responseText);
this.headerJSON=this._getHeaderJSON()
}if(A==4){var B=D.responseXML;
this.responseXML=Object.isUndefined(B)?null:B;
this.responseJSON=this._getResponseJSON()
}},status:0,statusText:"",getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||""
}catch(A){return""
}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders()
}catch(A){return null
}},getResponseHeader:function(A){return this.transport.getResponseHeader(A)
},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders()
},_getHeaderJSON:function(){var A=this.getHeader("X-JSON");
if(!A){return null
}A=decodeURIComponent(escape(A));
try{return A.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin())
}catch(B){this.request.dispatchException(B)
}},_getResponseJSON:function(){var A=this.request.options;
if(!A.evalJSON||(A.evalJSON!="force"&&!(this.getHeader("Content-type")||"").include("application/json"))||this.responseText.blank()){return null
}try{return this.responseText.evalJSON(A.sanitizeJSON||!this.request.isSameOrigin())
}catch(B){this.request.dispatchException(B)
}}});
Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,A,C,B){this.container={success:(A.success||A),failure:(A.failure||(A.success?null:A))};
B=Object.clone(B);
var D=B.onComplete;
B.onComplete=(function(E,F){this.updateContent(E.responseText);
if(Object.isFunction(D)){D(E,F)
}}).bind(this);
$super(C,B)
},updateContent:function(D){var C=this.container[this.success()?"success":"failure"],A=this.options;
if(!A.evalScripts){D=D.stripScripts()
}if(C=$(C)){if(A.insertion){if(Object.isString(A.insertion)){var B={};
B[A.insertion]=D;
C.insert(B)
}else{A.insertion(C,D)
}}else{C.update(D)
}}}});
Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,A,C,B){$super(B);
this.onComplete=this.options.onComplete;
this.frequency=(this.options.frequency||2);
this.decay=(this.options.decay||1);
this.updater={};
this.container=A;
this.url=C;
this.start()
},start:function(){this.options.onComplete=this.updateComplete.bind(this);
this.onTimerEvent()
},stop:function(){this.updater.options.onComplete=undefined;
clearTimeout(this.timer);
(this.onComplete||Prototype.emptyFunction).apply(this,arguments)
},updateComplete:function(A){if(this.options.decay){this.decay=(A.responseText==this.lastText?this.decay*this.options.decay:1);
this.lastText=A.responseText
}this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency)
},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options)
}});
function $(B){if(arguments.length>1){for(var A=0,D=[],C=arguments.length;
A<C;
A++){D.push($(arguments[A]))
}return D
}if(Object.isString(B)){B=document.getElementById(B)
}return Element.extend(B)
}if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(F,A){var C=[];
var E=document.evaluate(F,$(A)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);
for(var B=0,D=E.snapshotLength;
B<D;
B++){C.push(Element.extend(E.snapshotItem(B)))
}return C
}
}if(!window.Node){var Node={}
}if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12})
}(function(){var A=this.Element;
this.Element=function(D,C){C=C||{};
D=D.toLowerCase();
var B=Element.cache;
if(Prototype.Browser.IE&&C.name){D="<"+D+' name="'+C.name+'">';
delete C.name;
return Element.writeAttribute(document.createElement(D),C)
}if(!B[D]){B[D]=Element.extend(document.createElement(D))
}return Element.writeAttribute(B[D].cloneNode(false),C)
};
Object.extend(this.Element,A||{})
}).call(window);
Element.cache={};
Element.Methods={visible:function(A){return $(A).style.display!="none"
},toggle:function(A){A=$(A);
Element[Element.visible(A)?"hide":"show"](A);
return A
},hide:function(A){$(A).style.display="none";
return A
},show:function(A){$(A).style.display="";
return A
},remove:function(A){A=$(A);
A.parentNode.removeChild(A);
return A
},update:function(A,B){A=$(A);
if(B&&B.toElement){B=B.toElement()
}if(Object.isElement(B)){return A.update().insert(B)
}B=Object.toHTML(B);
A.innerHTML=B.stripScripts();
B.evalScripts.bind(B).defer();
return A
},replace:function(B,C){B=$(B);
if(C&&C.toElement){C=C.toElement()
}else{if(!Object.isElement(C)){C=Object.toHTML(C);
var A=B.ownerDocument.createRange();
A.selectNode(B);
C.evalScripts.bind(C).defer();
C=A.createContextualFragment(C.stripScripts())
}}B.parentNode.replaceChild(C,B);
return B
},insert:function(C,E){C=$(C);
if(Object.isString(E)||Object.isNumber(E)||Object.isElement(E)||(E&&(E.toElement||E.toHTML))){E={bottom:E}
}var D,F,B,G;
for(var A in E){D=E[A];
A=A.toLowerCase();
F=Element._insertionTranslations[A];
if(D&&D.toElement){D=D.toElement()
}if(Object.isElement(D)){F(C,D);
continue
}D=Object.toHTML(D);
B=((A=="before"||A=="after")?C.parentNode:C).tagName.toUpperCase();
G=Element._getContentFromAnonymousElement(B,D.stripScripts());
if(A=="top"||A=="after"){G.reverse()
}G.each(F.curry(C));
D.evalScripts.bind(D).defer()
}return C
},wrap:function(B,C,A){B=$(B);
if(Object.isElement(C)){$(C).writeAttribute(A||{})
}else{if(Object.isString(C)){C=new Element(C,A)
}else{C=new Element("div",C)
}}if(B.parentNode){B.parentNode.replaceChild(C,B)
}C.appendChild(B);
return C
},inspect:function(B){B=$(B);
var A="<"+B.tagName.toLowerCase();
$H({id:"id",className:"class"}).each(function(F){var E=F.first(),C=F.last();
var D=(B[E]||"").toString();
if(D){A+=" "+C+"="+D.inspect(true)
}});
return A+">"
},recursivelyCollect:function(A,C){A=$(A);
var B=[];
while(A=A[C]){if(A.nodeType==1){B.push(Element.extend(A))
}}return B
},ancestors:function(A){return $(A).recursivelyCollect("parentNode")
},descendants:function(A){return $(A).select("*")
},firstDescendant:function(A){A=$(A).firstChild;
while(A&&A.nodeType!=1){A=A.nextSibling
}return $(A)
},immediateDescendants:function(A){if(!(A=$(A).firstChild)){return[]
}while(A&&A.nodeType!=1){A=A.nextSibling
}if(A){return[A].concat($(A).nextSiblings())
}return[]
},previousSiblings:function(A){return $(A).recursivelyCollect("previousSibling")
},nextSiblings:function(A){return $(A).recursivelyCollect("nextSibling")
},siblings:function(A){A=$(A);
return A.previousSiblings().reverse().concat(A.nextSiblings())
},match:function(B,A){if(Object.isString(A)){A=new Selector(A)
}return A.match($(B))
},up:function(B,D,A){B=$(B);
if(arguments.length==1){return $(B.parentNode)
}var C=B.ancestors();
return Object.isNumber(D)?C[D]:Selector.findElement(C,D,A)
},down:function(B,C,A){B=$(B);
if(arguments.length==1){return B.firstDescendant()
}return Object.isNumber(C)?B.descendants()[C]:B.select(C)[A||0]
},previous:function(B,D,A){B=$(B);
if(arguments.length==1){return $(Selector.handlers.previousElementSibling(B))
}var C=B.previousSiblings();
return Object.isNumber(D)?C[D]:Selector.findElement(C,D,A)
},next:function(C,D,B){C=$(C);
if(arguments.length==1){return $(Selector.handlers.nextElementSibling(C))
}var A=C.nextSiblings();
return Object.isNumber(D)?A[D]:Selector.findElement(A,D,B)
},select:function(){var A=$A(arguments),B=$(A.shift());
return Selector.findChildElements(B,A)
},adjacent:function(){var A=$A(arguments),B=$(A.shift());
return Selector.findChildElements(B.parentNode,A).without(B)
},identify:function(B){B=$(B);
var C=B.readAttribute("id"),A=arguments.callee;
if(C){return C
}do{C="anonymous_element_"+A.counter++
}while($(C));
B.writeAttribute("id",C);
return C
},readAttribute:function(C,A){C=$(C);
if(Prototype.Browser.IE){var B=Element._attributeTranslations.read;
if(B.values[A]){return B.values[A](C,A)
}if(B.names[A]){A=B.names[A]
}if(A.include(":")){return(!C.attributes||!C.attributes[A])?null:C.attributes[A].value
}}return C.getAttribute(A)
},writeAttribute:function(E,C,F){E=$(E);
var B={},D=Element._attributeTranslations.write;
if(typeof C=="object"){B=C
}else{B[C]=Object.isUndefined(F)?true:F
}for(var A in B){C=D.names[A]||A;
F=B[A];
if(D.values[A]){C=D.values[A](E,F)
}if(F===false||F===null){E.removeAttribute(C)
}else{if(F===true){E.setAttribute(C,C)
}else{E.setAttribute(C,F)
}}}return E
},getHeight:function(A){return $(A).getDimensions().height
},getWidth:function(A){return $(A).getDimensions().width
},classNames:function(A){return new Element.ClassNames(A)
},hasClassName:function(A,B){if(!(A=$(A))){return 
}var C=A.className;
return(C.length>0&&(C==B||new RegExp("(^|\\s)"+B+"(\\s|$)").test(C)))
},addClassName:function(A,B){if(!(A=$(A))){return 
}if(!A.hasClassName(B)){A.className+=(A.className?" ":"")+B
}return A
},removeClassName:function(A,B){if(!(A=$(A))){return 
}A.className=A.className.replace(new RegExp("(^|\\s+)"+B+"(\\s+|$)")," ").strip();
return A
},toggleClassName:function(A,B){if(!(A=$(A))){return 
}return A[A.hasClassName(B)?"removeClassName":"addClassName"](B)
},cleanWhitespace:function(B){B=$(B);
var C=B.firstChild;
while(C){var A=C.nextSibling;
if(C.nodeType==3&&!/\S/.test(C.nodeValue)){B.removeChild(C)
}C=A
}return B
},empty:function(A){return $(A).innerHTML.blank()
},descendantOf:function(D,C){D=$(D),C=$(C);
var F=C;
if(D.compareDocumentPosition){return(D.compareDocumentPosition(C)&8)===8
}if(D.sourceIndex&&!Prototype.Browser.Opera){var E=D.sourceIndex,B=C.sourceIndex,A=C.nextSibling;
if(!A){do{C=C.parentNode
}while(!(A=C.nextSibling)&&C.parentNode)
}if(A&&A.sourceIndex){return(E>B&&E<A.sourceIndex)
}}while(D=D.parentNode){if(D==F){return true
}}return false
},scrollTo:function(A){A=$(A);
var B=A.cumulativeOffset();
window.scrollTo(B[0],B[1]);
return A
},getStyle:function(B,C){B=$(B);
C=C=="float"?"cssFloat":C.camelize();
var D=B.style[C];
if(!D){var A=document.defaultView.getComputedStyle(B,null);
D=A?A[C]:null
}if(C=="opacity"){return D?parseFloat(D):1
}return D=="auto"?null:D
},getOpacity:function(A){return $(A).getStyle("opacity")
},setStyle:function(B,C){B=$(B);
var E=B.style,A;
if(Object.isString(C)){B.style.cssText+=";"+C;
return C.include("opacity")?B.setOpacity(C.match(/opacity:\s*(\d?\.?\d*)/)[1]):B
}for(var D in C){if(D=="opacity"){B.setOpacity(C[D])
}else{E[(D=="float"||D=="cssFloat")?(Object.isUndefined(E.styleFloat)?"cssFloat":"styleFloat"):D]=C[D]
}}return B
},setOpacity:function(A,B){A=$(A);
A.style.opacity=(B==1||B==="")?"":(B<0.00001)?0:B;
return A
},getDimensions:function(C){C=$(C);
var G=$(C).getStyle("display");
if(G!="none"&&G!=null){return{width:C.offsetWidth,height:C.offsetHeight}
}var B=C.style;
var F=B.visibility;
var D=B.position;
var A=B.display;
B.visibility="hidden";
B.position="absolute";
B.display="block";
var H=C.clientWidth;
var E=C.clientHeight;
B.display=A;
B.position=D;
B.visibility=F;
return{width:H,height:E}
},makePositioned:function(A){A=$(A);
var B=Element.getStyle(A,"position");
if(B=="static"||!B){A._madePositioned=true;
A.style.position="relative";
if(window.opera){A.style.top=0;
A.style.left=0
}}return A
},undoPositioned:function(A){A=$(A);
if(A._madePositioned){A._madePositioned=undefined;
A.style.position=A.style.top=A.style.left=A.style.bottom=A.style.right=""
}return A
},makeClipping:function(A){A=$(A);
if(A._overflow){return A
}A._overflow=Element.getStyle(A,"overflow")||"auto";
if(A._overflow!=="hidden"){A.style.overflow="hidden"
}return A
},undoClipping:function(A){A=$(A);
if(!A._overflow){return A
}A.style.overflow=A._overflow=="auto"?"":A._overflow;
A._overflow=null;
return A
},cumulativeOffset:function(B){var A=0,C=0;
do{A+=B.offsetTop||0;
C+=B.offsetLeft||0;
B=B.offsetParent
}while(B);
return Element._returnOffset(C,A)
},positionedOffset:function(B){var A=0,D=0;
do{A+=B.offsetTop||0;
D+=B.offsetLeft||0;
B=B.offsetParent;
if(B){if(B.tagName=="BODY"){break
}var C=Element.getStyle(B,"position");
if(C!=="static"){break
}}}while(B);
return Element._returnOffset(D,A)
},absolutize:function(B){B=$(B);
if(B.getStyle("position")=="absolute"){return 
}var D=B.positionedOffset();
var F=D[1];
var E=D[0];
var C=B.clientWidth;
var A=B.clientHeight;
B._originalLeft=E-parseFloat(B.style.left||0);
B._originalTop=F-parseFloat(B.style.top||0);
B._originalWidth=B.style.width;
B._originalHeight=B.style.height;
B.style.position="absolute";
B.style.top=F+"px";
B.style.left=E+"px";
B.style.width=C+"px";
B.style.height=A+"px";
return B
},relativize:function(A){A=$(A);
if(A.getStyle("position")=="relative"){return 
}A.style.position="relative";
var C=parseFloat(A.style.top||0)-(A._originalTop||0);
var B=parseFloat(A.style.left||0)-(A._originalLeft||0);
A.style.top=C+"px";
A.style.left=B+"px";
A.style.height=A._originalHeight;
A.style.width=A._originalWidth;
return A
},cumulativeScrollOffset:function(B){var A=0,C=0;
do{A+=B.scrollTop||0;
C+=B.scrollLeft||0;
B=B.parentNode
}while(B);
return Element._returnOffset(C,A)
},getOffsetParent:function(A){if(A.offsetParent){return $(A.offsetParent)
}if(A==document.body){return $(A)
}while((A=A.parentNode)&&A!=document.body){if(Element.getStyle(A,"position")!="static"){return $(A)
}}return $(document.body)
},viewportOffset:function(D){var A=0,C=0;
var B=D;
do{A+=B.offsetTop||0;
C+=B.offsetLeft||0;
if(B.offsetParent==document.body&&Element.getStyle(B,"position")=="absolute"){break
}}while(B=B.offsetParent);
B=D;
do{if(!Prototype.Browser.Opera||B.tagName=="BODY"){A-=B.scrollTop||0;
C-=B.scrollLeft||0
}}while(B=B.parentNode);
return Element._returnOffset(C,A)
},clonePosition:function(B,D){var A=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});
D=$(D);
var E=D.viewportOffset();
B=$(B);
var F=[0,0];
var C=null;
if(Element.getStyle(B,"position")=="absolute"){C=B.getOffsetParent();
F=C.viewportOffset()
}if(C==document.body){F[0]-=document.body.offsetLeft;
F[1]-=document.body.offsetTop
}if(A.setLeft){B.style.left=(E[0]-F[0]+A.offsetLeft)+"px"
}if(A.setTop){B.style.top=(E[1]-F[1]+A.offsetTop)+"px"
}if(A.setWidth){B.style.width=D.offsetWidth+"px"
}if(A.setHeight){B.style.height=D.offsetHeight+"px"
}return B
}};
Element.Methods.identify.counter=1;
Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});
Element._attributeTranslations={write:{names:{className:"class",htmlFor:"for"},values:{}}};
if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(D,B,C){switch(C){case"left":case"top":case"right":case"bottom":if(D(B,"position")==="static"){return null
}case"height":case"width":if(!Element.visible(B)){return null
}var E=parseInt(D(B,C),10);
if(E!==B["offset"+C.capitalize()]){return E+"px"
}var A;
if(C==="height"){A=["border-top-width","padding-top","padding-bottom","border-bottom-width"]
}else{A=["border-left-width","padding-left","padding-right","border-right-width"]
}return A.inject(E,function(F,G){var H=D(B,G);
return H===null?F:F-parseInt(H,10)
})+"px";
default:return D(B,C)
}});
Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(C,A,B){if(B==="title"){return A.title
}return C(A,B)
})
}else{if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(C,B){B=$(B);
var A=B.getStyle("position");
if(A!=="static"){return C(B)
}B.setStyle({position:"relative"});
var D=C(B);
B.setStyle({position:A});
return D
});
$w("positionedOffset viewportOffset").each(function(A){Element.Methods[A]=Element.Methods[A].wrap(function(E,C){C=$(C);
var B=C.getStyle("position");
if(B!=="static"){return E(C)
}var D=C.getOffsetParent();
if(D&&D.getStyle("position")==="fixed"){D.setStyle({zoom:1})
}C.setStyle({position:"relative"});
var F=E(C);
C.setStyle({position:B});
return F
})
});
Element.Methods.getStyle=function(A,B){A=$(A);
B=(B=="float"||B=="cssFloat")?"styleFloat":B.camelize();
var C=A.style[B];
if(!C&&A.currentStyle){C=A.currentStyle[B]
}if(B=="opacity"){if(C=(A.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/)){if(C[1]){return parseFloat(C[1])/100
}}return 1
}if(C=="auto"){if((B=="width"||B=="height")&&(A.getStyle("display")!="none")){return A["offset"+B.capitalize()]+"px"
}return null
}return C
};
Element.Methods.setOpacity=function(B,E){function F(G){return G.replace(/alpha\([^\)]*\)/gi,"")
}B=$(B);
var A=B.currentStyle;
if((A&&!A.hasLayout)||(!A&&B.style.zoom=="normal")){B.style.zoom=1
}var D=B.getStyle("filter"),C=B.style;
if(E==1||E===""){(D=F(D))?C.filter=D:C.removeAttribute("filter");
return B
}else{if(E<0.00001){E=0
}}C.filter=F(D)+"alpha(opacity="+(E*100)+")";
return B
};
Element._attributeTranslations={read:{names:{"class":"className","for":"htmlFor"},values:{_getAttr:function(A,B){return A.getAttribute(B,2)
},_getAttrNode:function(A,C){var B=A.getAttributeNode(C);
return B?B.value:""
},_getEv:function(A,B){B=A.getAttribute(B);
return B?B.toString().slice(23,-2):null
},_flag:function(A,B){return $(A).hasAttribute(B)?B:null
},style:function(A){return A.style.cssText.toLowerCase()
},title:function(A){return A.title
}}}};
Element._attributeTranslations.write={names:Object.extend({cellpadding:"cellPadding",cellspacing:"cellSpacing"},Element._attributeTranslations.read.names),values:{checked:function(A,B){A.checked=!!B
},style:function(A,B){A.style.cssText=B?B:""
}}};
Element._attributeTranslations.has={};
$w("colSpan rowSpan vAlign dateTime accessKey tabIndex encType maxLength readOnly longDesc").each(function(A){Element._attributeTranslations.write.names[A.toLowerCase()]=A;
Element._attributeTranslations.has[A.toLowerCase()]=A
});
(function(A){Object.extend(A,{href:A._getAttr,src:A._getAttr,type:A._getAttr,action:A._getAttrNode,disabled:A._flag,checked:A._flag,readonly:A._flag,multiple:A._flag,onload:A._getEv,onunload:A._getEv,onclick:A._getEv,ondblclick:A._getEv,onmousedown:A._getEv,onmouseup:A._getEv,onmouseover:A._getEv,onmousemove:A._getEv,onmouseout:A._getEv,onfocus:A._getEv,onblur:A._getEv,onkeypress:A._getEv,onkeydown:A._getEv,onkeyup:A._getEv,onsubmit:A._getEv,onreset:A._getEv,onselect:A._getEv,onchange:A._getEv})
})(Element._attributeTranslations.read.values)
}else{if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(A,B){A=$(A);
A.style.opacity=(B==1)?0.999999:(B==="")?"":(B<0.00001)?0:B;
return A
}
}else{if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(A,B){A=$(A);
A.style.opacity=(B==1||B==="")?"":(B<0.00001)?0:B;
if(B==1){if(A.tagName=="IMG"&&A.width){A.width++;
A.width--
}else{try{var D=document.createTextNode(" ");
A.appendChild(D);
A.removeChild(D)
}catch(C){}}}return A
};
Element.Methods.cumulativeOffset=function(B){var A=0,C=0;
do{A+=B.offsetTop||0;
C+=B.offsetLeft||0;
if(B.offsetParent==document.body){if(Element.getStyle(B,"position")=="absolute"){break
}}B=B.offsetParent
}while(B);
return Element._returnOffset(C,A)
}
}}}}if(Prototype.Browser.IE||Prototype.Browser.Opera){Element.Methods.update=function(B,C){B=$(B);
if(C&&C.toElement){C=C.toElement()
}if(Object.isElement(C)){return B.update().insert(C)
}C=Object.toHTML(C);
var A=B.tagName.toUpperCase();
if(A in Element._insertionTranslations.tags){$A(B.childNodes).each(function(D){B.removeChild(D)
});
Element._getContentFromAnonymousElement(A,C.stripScripts()).each(function(D){B.appendChild(D)
})
}else{B.innerHTML=C.stripScripts()
}C.evalScripts.bind(C).defer();
return B
}
}if("outerHTML" in document.createElement("div")){Element.Methods.replace=function(C,E){C=$(C);
if(E&&E.toElement){E=E.toElement()
}if(Object.isElement(E)){C.parentNode.replaceChild(E,C);
return C
}E=Object.toHTML(E);
var D=C.parentNode,B=D.tagName.toUpperCase();
if(Element._insertionTranslations.tags[B]){var F=C.next();
var A=Element._getContentFromAnonymousElement(B,E.stripScripts());
D.removeChild(C);
if(F){A.each(function(G){D.insertBefore(G,F)
})
}else{A.each(function(G){D.appendChild(G)
})
}}else{C.outerHTML=E.stripScripts()
}E.evalScripts.bind(E).defer();
return C
}
}Element._returnOffset=function(B,C){var A=[B,C];
A.left=B;
A.top=C;
return A
};
Element._getContentFromAnonymousElement=function(C,B){var D=new Element("div"),A=Element._insertionTranslations.tags[C];
if(A){D.innerHTML=A[0]+B+A[1];
A[2].times(function(){D=D.firstChild
})
}else{D.innerHTML=B
}return $A(D.childNodes)
};
Element._insertionTranslations={before:function(A,B){A.parentNode.insertBefore(B,A)
},top:function(A,B){A.insertBefore(B,A.firstChild)
},bottom:function(A,B){A.appendChild(B)
},after:function(A,B){A.parentNode.insertBefore(B,A.nextSibling)
},tags:{TABLE:["<table>","</table>",1],TBODY:["<table><tbody>","</tbody></table>",2],TR:["<table><tbody><tr>","</tr></tbody></table>",3],TD:["<table><tbody><tr><td>","</td></tr></tbody></table>",4],SELECT:["<select>","</select>",1]}};
(function(){Object.extend(this.tags,{THEAD:this.tags.TBODY,TFOOT:this.tags.TBODY,TH:this.tags.TD})
}).call(Element._insertionTranslations);
Element.Methods.Simulated={hasAttribute:function(A,C){C=Element._attributeTranslations.has[C]||C;
var B=$(A).getAttributeNode(C);
return B&&B.specified
}};
Element.Methods.ByTag={};
Object.extend(Element,Element.Methods);
if(!Prototype.BrowserFeatures.ElementExtensions&&document.createElement("div").__proto__){window.HTMLElement={};
window.HTMLElement.prototype=document.createElement("div").__proto__;
Prototype.BrowserFeatures.ElementExtensions=true
}Element.extend=(function(){if(Prototype.BrowserFeatures.SpecificElementExtensions){return Prototype.K
}var A={},B=Element.Methods.ByTag;
var C=Object.extend(function(F){if(!F||F._extendedByPrototype||F.nodeType!=1||F==window){return F
}var D=Object.clone(A),E=F.tagName,H,G;
if(B[E]){Object.extend(D,B[E])
}for(H in D){G=D[H];
if(Object.isFunction(G)&&!(H in F)){F[H]=G.methodize()
}}F._extendedByPrototype=Prototype.emptyFunction;
return F
},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(A,Element.Methods);
Object.extend(A,Element.Methods.Simulated)
}}});
C.refresh();
return C
})();
Element.hasAttribute=function(A,B){if(A.hasAttribute){return A.hasAttribute(B)
}return Element.Methods.Simulated.hasAttribute(A,B)
};
Element.addMethods=function(C){var I=Prototype.BrowserFeatures,D=Element.Methods.ByTag;
if(!C){Object.extend(Form,Form.Methods);
Object.extend(Form.Element,Form.Element.Methods);
Object.extend(Element.Methods.ByTag,{FORM:Object.clone(Form.Methods),INPUT:Object.clone(Form.Element.Methods),SELECT:Object.clone(Form.Element.Methods),TEXTAREA:Object.clone(Form.Element.Methods)})
}if(arguments.length==2){var B=C;
C=arguments[1]
}if(!B){Object.extend(Element.Methods,C||{})
}else{if(Object.isArray(B)){B.each(H)
}else{H(B)
}}function H(F){F=F.toUpperCase();
if(!Element.Methods.ByTag[F]){Element.Methods.ByTag[F]={}
}Object.extend(Element.Methods.ByTag[F],C)
}function A(L,K,F){F=F||false;
for(var N in L){var M=L[N];
if(!Object.isFunction(M)){continue
}if(!F||!(N in K)){K[N]=M.methodize()
}}}function E(L){var F;
var K={OPTGROUP:"OptGroup",TEXTAREA:"TextArea",P:"Paragraph",FIELDSET:"FieldSet",UL:"UList",OL:"OList",DL:"DList",DIR:"Directory",H1:"Heading",H2:"Heading",H3:"Heading",H4:"Heading",H5:"Heading",H6:"Heading",Q:"Quote",INS:"Mod",DEL:"Mod",A:"Anchor",IMG:"Image",CAPTION:"TableCaption",COL:"TableCol",COLGROUP:"TableCol",THEAD:"TableSection",TFOOT:"TableSection",TBODY:"TableSection",TR:"TableRow",TH:"TableCell",TD:"TableCell",FRAMESET:"FrameSet",IFRAME:"IFrame"};
if(K[L]){F="HTML"+K[L]+"Element"
}if(window[F]){return window[F]
}F="HTML"+L+"Element";
if(window[F]){return window[F]
}F="HTML"+L.capitalize()+"Element";
if(window[F]){return window[F]
}window[F]={};
window[F].prototype=document.createElement(L).__proto__;
return window[F]
}if(I.ElementExtensions){A(Element.Methods,HTMLElement.prototype);
A(Element.Methods.Simulated,HTMLElement.prototype,true)
}if(I.SpecificElementExtensions){for(var J in Element.Methods.ByTag){var G=E(J);
if(Object.isUndefined(G)){continue
}A(D[J],G.prototype)
}}Object.extend(Element,Element.Methods);
delete Element.ByTag;
if(Element.extend.refresh){Element.extend.refresh()
}Element.cache={}
};
document.viewport={getDimensions:function(){var A={};
var C=Prototype.Browser;
$w("width height").each(function(E){var B=E.capitalize();
A[E]=(C.WebKit&&!document.evaluate)?self["inner"+B]:(C.Opera)?document.body["client"+B]:document.documentElement["client"+B]
});
return A
},getWidth:function(){return this.getDimensions().width
},getHeight:function(){return this.getDimensions().height
},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop)
}};
var Selector=Class.create({initialize:function(A){this.expression=A.strip();
this.compileMatcher()
},shouldUseXPath:function(){if(!Prototype.BrowserFeatures.XPath){return false
}var A=this.expression;
if(Prototype.Browser.WebKit&&(A.include("-of-type")||A.include(":empty"))){return false
}if((/(\[[\w-]*?:|:checked)/).test(this.expression)){return false
}return true
},compileMatcher:function(){if(this.shouldUseXPath()){return this.compileXPathMatcher()
}var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m;
if(Selector._cache[e]){this.matcher=Selector._cache[e];
return 
}this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];
while(e&&le!=e&&(/\S/).test(e)){le=e;
for(var i in ps){p=ps[i];
if(m=e.match(p)){this.matcher.push(Object.isFunction(c[i])?c[i](m):new Template(c[i]).evaluate(m));
e=e.replace(m[0],"");
break
}}}this.matcher.push("return h.unique(n);\n}");
eval(this.matcher.join("\n"));
Selector._cache[this.expression]=this.matcher
},compileXPathMatcher:function(){var E=this.expression,F=Selector.patterns,B=Selector.xpath,D,A;
if(Selector._cache[E]){this.xpath=Selector._cache[E];
return 
}this.matcher=[".//*"];
while(E&&D!=E&&(/\S/).test(E)){D=E;
for(var C in F){if(A=E.match(F[C])){this.matcher.push(Object.isFunction(B[C])?B[C](A):new Template(B[C]).evaluate(A));
E=E.replace(A[0],"");
break
}}}this.xpath=this.matcher.join("");
Selector._cache[this.expression]=this.xpath
},findElements:function(A){A=A||document;
if(this.xpath){return document._getElementsByXPath(this.xpath,A)
}return this.matcher(A)
},match:function(H){this.tokens=[];
var L=this.expression,A=Selector.patterns,E=Selector.assertions;
var B,D,F;
while(L&&B!==L&&(/\S/).test(L)){B=L;
for(var I in A){D=A[I];
if(F=L.match(D)){if(E[I]){this.tokens.push([I,Object.clone(F)]);
L=L.replace(F[0],"")
}else{return this.findElements(document).include(H)
}}}}var K=true,C,J;
for(var I=0,G;
G=this.tokens[I];
I++){C=G[0],J=G[1];
if(!Selector.assertions[C](H,J)){K=false;
break
}}return K
},toString:function(){return this.expression
},inspect:function(){return"#<Selector:"+this.expression.inspect()+">"
}});
Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:"/following-sibling::*",tagName:function(A){if(A[1]=="*"){return""
}return"[local-name()='"+A[1].toLowerCase()+"' or local-name()='"+A[1].toUpperCase()+"']"
},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(A){A[1]=A[1].toLowerCase();
return new Template("[@#{1}]").evaluate(A)
},attr:function(A){A[1]=A[1].toLowerCase();
A[3]=A[5]||A[6];
return new Template(Selector.xpath.operators[A[2]]).evaluate(A)
},pseudo:function(A){var B=Selector.xpath.pseudos[A[1]];
if(!B){return""
}if(Object.isFunction(B)){return B(A)
}return new Template(Selector.xpath.pseudos[A[1]]).evaluate(A)
},operators:{"=":"[@#{1}='#{3}']","!=":"[@#{1}!='#{3}']","^=":"[starts-with(@#{1}, '#{3}')]","$=":"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']","*=":"[contains(@#{1}, '#{3}')]","~=":"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]","|=":"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{"first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","only-child":"[not(preceding-sibling::* or following-sibling::*)]",empty:"[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",checked:"[@checked]",disabled:"[@disabled]",enabled:"[not(@disabled)]",not:function(B){var H=B[6],G=Selector.patterns,A=Selector.xpath,E,C;
var F=[];
while(H&&E!=H&&(/\S/).test(H)){E=H;
for(var D in G){if(B=H.match(G[D])){C=Object.isFunction(A[D])?A[D](B):new Template(A[D]).evaluate(B);
F.push("("+C.substring(1,C.length-1)+")");
H=H.replace(B[0],"");
break
}}}return"[not("+F.join(" and ")+")]"
},"nth-child":function(A){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",A)
},"nth-last-child":function(A){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",A)
},"nth-of-type":function(A){return Selector.xpath.pseudos.nth("position() ",A)
},"nth-last-of-type":function(A){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",A)
},"first-of-type":function(A){A[6]="1";
return Selector.xpath.pseudos["nth-of-type"](A)
},"last-of-type":function(A){A[6]="1";
return Selector.xpath.pseudos["nth-last-of-type"](A)
},"only-of-type":function(A){var B=Selector.xpath.pseudos;
return B["first-of-type"](A)+B["last-of-type"](A)
},nth:function(E,C){var F,G=C[6],B;
if(G=="even"){G="2n+0"
}if(G=="odd"){G="2n+1"
}if(F=G.match(/^(\d+)$/)){return"["+E+"= "+F[1]+"]"
}if(F=G.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(F[1]=="-"){F[1]=-1
}var D=F[1]?Number(F[1]):1;
var A=F[2]?Number(F[2]):0;
B="[((#{fragment} - #{b}) mod #{a} = 0) and ((#{fragment} - #{b}) div #{a} >= 0)]";
return new Template(B).evaluate({fragment:E,a:D,b:A})
}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(A){A[3]=(A[5]||A[6]);
return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(A)
},pseudo:function(A){if(A[6]){A[6]=A[6].replace(/"/g,'\\"')
}return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(A)
},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:{laterSibling:/^\s*~\s*/,child:/^\s*>\s*/,adjacent:/^\s*\+\s*/,descendant:/^\s/,tagName:/^\s*(\*|[\w\-]+)(\b|$)?/,id:/^#([\w\-\*]+)(\b|$)/,className:/^\.([\w\-\*]+)(\b|$)/,pseudo:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,attrPresence:/^\[([\w]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/},assertions:{tagName:function(A,B){return B[1].toUpperCase()==A.tagName.toUpperCase()
},className:function(A,B){return Element.hasClassName(A,B[1])
},id:function(A,B){return A.id===B[1]
},attrPresence:function(A,B){return Element.hasAttribute(A,B[1])
},attr:function(B,C){var A=Element.readAttribute(B,C[1]);
return A&&Selector.operators[C[2]](A,C[5]||C[6])
}},handlers:{concat:function(B,A){for(var C=0,D;
D=A[C];
C++){B.push(D)
}return B
},mark:function(A){var D=Prototype.emptyFunction;
for(var B=0,C;
C=A[B];
B++){C._countedByPrototype=D
}return A
},unmark:function(A){for(var B=0,C;
C=A[B];
B++){C._countedByPrototype=undefined
}return A
},index:function(A,D,G){A._countedByPrototype=Prototype.emptyFunction;
if(D){for(var B=A.childNodes,E=B.length-1,C=1;
E>=0;
E--){var F=B[E];
if(F.nodeType==1&&(!G||F._countedByPrototype)){F.nodeIndex=C++
}}}else{for(var E=0,C=1,B=A.childNodes;
F=B[E];
E++){if(F.nodeType==1&&(!G||F._countedByPrototype)){F.nodeIndex=C++
}}}},unique:function(B){if(B.length==0){return B
}var D=[],E;
for(var C=0,A=B.length;
C<A;
C++){if(!(E=B[C])._countedByPrototype){E._countedByPrototype=Prototype.emptyFunction;
D.push(Element.extend(E))
}}return Selector.handlers.unmark(D)
},descendant:function(A){var D=Selector.handlers;
for(var C=0,B=[],E;
E=A[C];
C++){D.concat(B,E.getElementsByTagName("*"))
}return B
},child:function(A){var E=Selector.handlers;
for(var D=0,C=[],F;
F=A[D];
D++){for(var B=0,G;
G=F.childNodes[B];
B++){if(G.nodeType==1&&G.tagName!="!"){C.push(G)
}}}return C
},adjacent:function(A){for(var C=0,B=[],E;
E=A[C];
C++){var D=this.nextElementSibling(E);
if(D){B.push(D)
}}return B
},laterSibling:function(A){var D=Selector.handlers;
for(var C=0,B=[],E;
E=A[C];
C++){D.concat(B,Element.nextSiblings(E))
}return B
},nextElementSibling:function(A){while(A=A.nextSibling){if(A.nodeType==1){return A
}}return null
},previousElementSibling:function(A){while(A=A.previousSibling){if(A.nodeType==1){return A
}}return null
},tagName:function(A,H,C,B){var I=C.toUpperCase();
var E=[],G=Selector.handlers;
if(A){if(B){if(B=="descendant"){for(var F=0,D;
D=A[F];
F++){G.concat(E,D.getElementsByTagName(C))
}return E
}else{A=this[B](A)
}if(C=="*"){return A
}}for(var F=0,D;
D=A[F];
F++){if(D.tagName.toUpperCase()===I){E.push(D)
}}return E
}else{return H.getElementsByTagName(C)
}},id:function(B,A,H,F){var G=$(H),D=Selector.handlers;
if(!G){return[]
}if(!B&&A==document){return[G]
}if(B){if(F){if(F=="child"){for(var C=0,E;
E=B[C];
C++){if(G.parentNode==E){return[G]
}}}else{if(F=="descendant"){for(var C=0,E;
E=B[C];
C++){if(Element.descendantOf(G,E)){return[G]
}}}else{if(F=="adjacent"){for(var C=0,E;
E=B[C];
C++){if(Selector.handlers.previousElementSibling(G)==E){return[G]
}}}else{B=D[F](B)
}}}}for(var C=0,E;
E=B[C];
C++){if(E==G){return[G]
}}return[]
}return(G&&Element.descendantOf(G,A))?[G]:[]
},className:function(B,A,C,D){if(B&&D){B=this[D](B)
}return Selector.handlers.byClassName(B,A,C)
},byClassName:function(C,B,F){if(!C){C=Selector.handlers.descendant([B])
}var H=" "+F+" ";
for(var E=0,D=[],G,A;
G=C[E];
E++){A=G.className;
if(A.length==0){continue
}if(A==F||(" "+A+" ").include(H)){D.push(G)
}}return D
},attrPresence:function(C,B,A,G){if(!C){C=B.getElementsByTagName("*")
}if(C&&G){C=this[G](C)
}var E=[];
for(var D=0,F;
F=C[D];
D++){if(Element.hasAttribute(F,A)){E.push(F)
}}return E
},attr:function(A,I,H,J,C,B){if(!A){A=I.getElementsByTagName("*")
}if(A&&B){A=this[B](A)
}var K=Selector.operators[C],F=[];
for(var E=0,D;
D=A[E];
E++){var G=Element.readAttribute(D,H);
if(G===null){continue
}if(K(G,J)){F.push(D)
}}return F
},pseudo:function(B,C,E,A,D){if(B&&D){B=this[D](B)
}if(!B){B=A.getElementsByTagName("*")
}return Selector.pseudos[C](B,E,A)
}},pseudos:{"first-child":function(B,F,A){for(var D=0,C=[],E;
E=B[D];
D++){if(Selector.handlers.previousElementSibling(E)){continue
}C.push(E)
}return C
},"last-child":function(B,F,A){for(var D=0,C=[],E;
E=B[D];
D++){if(Selector.handlers.nextElementSibling(E)){continue
}C.push(E)
}return C
},"only-child":function(B,G,A){var E=Selector.handlers;
for(var D=0,C=[],F;
F=B[D];
D++){if(!E.previousElementSibling(F)&&!E.nextElementSibling(F)){C.push(F)
}}return C
},"nth-child":function(B,C,A){return Selector.pseudos.nth(B,C,A)
},"nth-last-child":function(B,C,A){return Selector.pseudos.nth(B,C,A,true)
},"nth-of-type":function(B,C,A){return Selector.pseudos.nth(B,C,A,false,true)
},"nth-last-of-type":function(B,C,A){return Selector.pseudos.nth(B,C,A,true,true)
},"first-of-type":function(B,C,A){return Selector.pseudos.nth(B,"1",A,false,true)
},"last-of-type":function(B,C,A){return Selector.pseudos.nth(B,"1",A,true,true)
},"only-of-type":function(B,D,A){var C=Selector.pseudos;
return C["last-of-type"](C["first-of-type"](B,D,A),D,A)
},getIndices:function(B,A,C){if(B==0){return A>0?[A]:[]
}return $R(1,C).inject([],function(D,E){if(0==(E-A)%B&&(E-A)/B>=0){D.push(E)
}return D
})
},nth:function(A,L,N,K,C){if(A.length==0){return[]
}if(L=="even"){L="2n+0"
}if(L=="odd"){L="2n+1"
}var J=Selector.handlers,I=[],B=[],E;
J.mark(A);
for(var H=0,D;
D=A[H];
H++){if(!D.parentNode._countedByPrototype){J.index(D.parentNode,K,C);
B.push(D.parentNode)
}}if(L.match(/^\d+$/)){L=Number(L);
for(var H=0,D;
D=A[H];
H++){if(D.nodeIndex==L){I.push(D)
}}}else{if(E=L.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(E[1]=="-"){E[1]=-1
}var O=E[1]?Number(E[1]):1;
var M=E[2]?Number(E[2]):0;
var P=Selector.pseudos.getIndices(O,M,A.length);
for(var H=0,D,F=P.length;
D=A[H];
H++){for(var G=0;
G<F;
G++){if(D.nodeIndex==P[G]){I.push(D)
}}}}}J.unmark(A);
J.unmark(B);
return I
},empty:function(B,F,A){for(var D=0,C=[],E;
E=B[D];
D++){if(E.tagName=="!"||(E.firstChild&&!E.innerHTML.match(/^\s*$/))){continue
}C.push(E)
}return C
},not:function(A,D,I){var G=Selector.handlers,J,C;
var H=new Selector(D).findElements(I);
G.mark(H);
for(var F=0,E=[],B;
B=A[F];
F++){if(!B._countedByPrototype){E.push(B)
}}G.unmark(H);
return E
},enabled:function(B,F,A){for(var D=0,C=[],E;
E=B[D];
D++){if(!E.disabled){C.push(E)
}}return C
},disabled:function(B,F,A){for(var D=0,C=[],E;
E=B[D];
D++){if(E.disabled){C.push(E)
}}return C
},checked:function(B,F,A){for(var D=0,C=[],E;
E=B[D];
D++){if(E.checked){C.push(E)
}}return C
}},operators:{"=":function(B,A){return B==A
},"!=":function(B,A){return B!=A
},"^=":function(B,A){return B.startsWith(A)
},"$=":function(B,A){return B.endsWith(A)
},"*=":function(B,A){return B.include(A)
},"~=":function(B,A){return(" "+B+" ").include(" "+A+" ")
},"|=":function(B,A){return("-"+B.toUpperCase()+"-").include("-"+A.toUpperCase()+"-")
}},split:function(B){var A=[];
B.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(C){A.push(C[1].strip())
});
return A
},matchElements:function(F,G){var E=$$(G),D=Selector.handlers;
D.mark(E);
for(var C=0,B=[],A;
A=F[C];
C++){if(A._countedByPrototype){B.push(A)
}}D.unmark(E);
return B
},findElement:function(B,C,A){if(Object.isNumber(C)){A=C;
C=false
}return Selector.matchElements(B,C||"*")[A||0]
},findChildElements:function(E,G){G=Selector.split(G.join(","));
var D=[],F=Selector.handlers;
for(var C=0,B=G.length,A;
C<B;
C++){A=new Selector(G[C].strip());
F.concat(D,A.findElements(E))
}return(B>1)?F.unique(D):D
}});
if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(B,A){for(var C=0,D;
D=A[C];
C++){if(D.tagName!=="!"){B.push(D)
}}return B
},unmark:function(A){for(var B=0,C;
C=A[B];
B++){C.removeAttribute("_countedByPrototype")
}return A
}})
}function $$(){return Selector.findChildElements(document,$A(arguments))
}var Form={reset:function(A){$(A).reset();
return A
},serializeElements:function(G,B){if(typeof B!="object"){B={hash:!!B}
}else{if(Object.isUndefined(B.hash)){B.hash=true
}}var C,F,A=false,E=B.submit;
var D=G.inject({},function(H,I){if(!I.disabled&&I.name){C=I.name;
F=$(I).getValue();
if(F!=null&&(I.type!="submit"||(!A&&E!==false&&(!E||C==E)&&(A=true)))){if(C in H){if(!Object.isArray(H[C])){H[C]=[H[C]]
}H[C].push(F)
}else{H[C]=F
}}}return H
});
return B.hash?D:Object.toQueryString(D)
}};
Form.Methods={serialize:function(B,A){return Form.serializeElements(Form.getElements(B),A)
},getElements:function(A){return $A($(A).getElementsByTagName("*")).inject([],function(B,C){if(Form.Element.Serializers[C.tagName.toLowerCase()]){B.push(Element.extend(C))
}return B
})
},getInputs:function(G,C,D){G=$(G);
var A=G.getElementsByTagName("input");
if(!C&&!D){return $A(A).map(Element.extend)
}for(var E=0,H=[],F=A.length;
E<F;
E++){var B=A[E];
if((C&&B.type!=C)||(D&&B.name!=D)){continue
}H.push(Element.extend(B))
}return H
},disable:function(A){A=$(A);
Form.getElements(A).invoke("disable");
return A
},enable:function(A){A=$(A);
Form.getElements(A).invoke("enable");
return A
},findFirstElement:function(B){var C=$(B).getElements().findAll(function(D){return"hidden"!=D.type&&!D.disabled
});
var A=C.findAll(function(D){return D.hasAttribute("tabIndex")&&D.tabIndex>=0
}).sortBy(function(D){return D.tabIndex
}).first();
return A?A:C.find(function(D){return["input","select","textarea"].include(D.tagName.toLowerCase())
})
},focusFirstElement:function(A){A=$(A);
A.findFirstElement().activate();
return A
},request:function(B,A){B=$(B),A=Object.clone(A||{});
var D=A.parameters,C=B.readAttribute("action")||"";
if(C.blank()){C=window.location.href
}A.parameters=B.serialize(true);
if(D){if(Object.isString(D)){D=D.toQueryParams()
}Object.extend(A.parameters,D)
}if(B.hasAttribute("method")&&!A.method){A.method=B.method
}return new Ajax.Request(C,A)
}};
Form.Element={focus:function(A){$(A).focus();
return A
},select:function(A){$(A).select();
return A
}};
Form.Element.Methods={serialize:function(A){A=$(A);
if(!A.disabled&&A.name){var B=A.getValue();
if(B!=undefined){var C={};
C[A.name]=B;
return Object.toQueryString(C)
}}return""
},getValue:function(A){A=$(A);
var B=A.tagName.toLowerCase();
return Form.Element.Serializers[B](A)
},setValue:function(A,B){A=$(A);
var C=A.tagName.toLowerCase();
Form.Element.Serializers[C](A,B);
return A
},clear:function(A){$(A).value="";
return A
},present:function(A){return $(A).value!=""
},activate:function(A){A=$(A);
try{A.focus();
if(A.select&&(A.tagName.toLowerCase()!="input"||!["button","reset","submit"].include(A.type))){A.select()
}}catch(B){}return A
},disable:function(A){A=$(A);
A.blur();
A.disabled=true;
return A
},enable:function(A){A=$(A);
A.disabled=false;
return A
}};
var Field=Form.Element;
var $F=Form.Element.Methods.getValue;
Form.Element.Serializers={input:function(A,B){switch(A.type.toLowerCase()){case"checkbox":case"radio":return Form.Element.Serializers.inputSelector(A,B);
default:return Form.Element.Serializers.textarea(A,B)
}},inputSelector:function(A,B){if(Object.isUndefined(B)){return A.checked?A.value:null
}else{A.checked=!!B
}},textarea:function(A,B){if(Object.isUndefined(B)){return A.value
}else{A.value=B
}},select:function(D,A){if(Object.isUndefined(A)){return this[D.type=="select-one"?"selectOne":"selectMany"](D)
}else{var C,F,G=!Object.isArray(A);
for(var B=0,E=D.length;
B<E;
B++){C=D.options[B];
F=this.optionValue(C);
if(G){if(F==A){C.selected=true;
return 
}}else{C.selected=A.include(F)
}}}},selectOne:function(B){var A=B.selectedIndex;
return A>=0?this.optionValue(B.options[A]):null
},selectMany:function(D){var A,E=D.length;
if(!E){return null
}for(var C=0,A=[];
C<E;
C++){var B=D.options[C];
if(B.selected){A.push(this.optionValue(B))
}}return A
},optionValue:function(A){return Element.extend(A).hasAttribute("value")?A.value:A.text
}};
Abstract.TimedObserver=Class.create(PeriodicalExecuter,{initialize:function($super,A,B,C){$super(C,B);
this.element=$(A);
this.lastValue=this.getValue()
},execute:function(){var A=this.getValue();
if(Object.isString(this.lastValue)&&Object.isString(A)?this.lastValue!=A:String(this.lastValue)!=String(A)){this.callback(this.element,A);
this.lastValue=A
}}});
Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element)
}});
Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element)
}});
Abstract.EventObserver=Class.create({initialize:function(A,B){this.element=$(A);
this.callback=B;
this.lastValue=this.getValue();
if(this.element.tagName.toLowerCase()=="form"){this.registerFormCallbacks()
}else{this.registerCallback(this.element)
}},onElementEvent:function(){var A=this.getValue();
if(this.lastValue!=A){this.callback(this.element,A);
this.lastValue=A
}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback,this)
},registerCallback:function(A){if(A.type){switch(A.type.toLowerCase()){case"checkbox":case"radio":Event.observe(A,"click",this.onElementEvent.bind(this));
break;
default:Event.observe(A,"change",this.onElementEvent.bind(this));
break
}}}});
Form.Element.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element)
}});
Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element)
}});
if(!window.Event){var Event={}
}Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45,cache:{},relatedTarget:function(B){var A;
switch(B.type){case"mouseover":A=B.fromElement;
break;
case"mouseout":A=B.toElement;
break;
default:return null
}return Element.extend(A)
}});
Event.Methods=(function(){var A;
if(Prototype.Browser.IE){var B={0:1,1:4,2:2};
A=function(D,C){return D.button==B[C]
}
}else{if(Prototype.Browser.WebKit){A=function(D,C){switch(C){case 0:return D.which==1&&!D.metaKey;
case 1:return D.which==1&&D.metaKey;
default:return false
}}
}else{A=function(D,C){return D.which?(D.which===C+1):(D.button===C)
}
}}return{isLeftClick:function(C){return A(C,0)
},isMiddleClick:function(C){return A(C,1)
},isRightClick:function(C){return A(C,2)
},element:function(D){var C=Event.extend(D).target;
return Element.extend(C.nodeType==Node.TEXT_NODE?C.parentNode:C)
},findElement:function(D,F){var C=Event.element(D);
if(!F){return C
}var E=[C].concat(C.ancestors());
return Selector.findElement(E,F,0)
},pointer:function(C){return{x:C.pageX||(C.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)),y:C.pageY||(C.clientY+(document.documentElement.scrollTop||document.body.scrollTop))}
},pointerX:function(C){return Event.pointer(C).x
},pointerY:function(C){return Event.pointer(C).y
},stop:function(C){Event.extend(C);
C.preventDefault();
C.stopPropagation();
C.stopped=true
}}
})();
Event.extend=(function(){var A=Object.keys(Event.Methods).inject({},function(B,C){B[C]=Event.Methods[C].methodize();
return B
});
if(Prototype.Browser.IE){Object.extend(A,{stopPropagation:function(){this.cancelBubble=true
},preventDefault:function(){this.returnValue=false
},inspect:function(){return"[object Event]"
}});
return function(B){if(!B){return false
}if(B._extendedByPrototype){return B
}B._extendedByPrototype=Prototype.emptyFunction;
var C=Event.pointer(B);
Object.extend(B,{target:B.srcElement,relatedTarget:Event.relatedTarget(B),pageX:C.x,pageY:C.y});
return Object.extend(B,A)
}
}else{Event.prototype=Event.prototype||document.createEvent("HTMLEvents").__proto__;
Object.extend(Event.prototype,A);
return Prototype.K
}})();
Object.extend(Event,(function(){var B=Event.cache;
function C(J){if(J._prototypeEventID){return J._prototypeEventID[0]
}arguments.callee.id=arguments.callee.id||1;
return J._prototypeEventID=[++arguments.callee.id]
}function G(J){if(J&&J.include(":")){return"dataavailable"
}return J
}function A(J){return B[J]=B[J]||{}
}function F(L,J){var K=A(L);
return K[J]=K[J]||[]
}function H(K,J,L){var O=C(K);
var N=F(O,J);
if(N.pluck("handler").include(L)){return false
}var M=function(P){if(!Event||!Event.extend||(P.eventName&&P.eventName!=J)){return false
}Event.extend(P);
L.call(K,P)
};
M.handler=L;
N.push(M);
return M
}function I(M,J,K){var L=F(M,J);
return L.find(function(N){return N.handler==K
})
}function D(M,J,K){var L=A(M);
if(!L[J]){return false
}L[J]=L[J].without(I(M,J,K))
}function E(){for(var K in B){for(var J in B[K]){B[K][J]=null
}}}if(window.attachEvent){window.attachEvent("onunload",E)
}return{observe:function(L,J,M){L=$(L);
var K=G(J);
var N=H(L,J,M);
if(!N){return L
}if(L.addEventListener){L.addEventListener(K,N,false)
}else{L.attachEvent("on"+K,N)
}return L
},stopObserving:function(L,J,M){L=$(L);
var O=C(L),K=G(J);
if(!M&&J){F(O,J).each(function(P){L.stopObserving(J,P.handler)
});
return L
}else{if(!J){Object.keys(A(O)).each(function(P){L.stopObserving(P)
});
return L
}}var N=I(O,J,M);
if(!N){return L
}if(L.removeEventListener){L.removeEventListener(K,N,false)
}else{L.detachEvent("on"+K,N)
}D(O,J,M);
return L
},fire:function(L,K,J){L=$(L);
if(L==document&&document.createEvent&&!L.dispatchEvent){L=document.documentElement
}var M;
if(document.createEvent){M=document.createEvent("HTMLEvents");
M.initEvent("dataavailable",true,true)
}else{M=document.createEventObject();
M.eventType="ondataavailable"
}M.eventName=K;
M.memo=J||{};
if(document.createEvent){L.dispatchEvent(M)
}else{L.fireEvent(M.eventType,M)
}return Event.extend(M)
}}
})());
Object.extend(Event,Event.Methods);
Element.addMethods({fire:Event.fire,observe:Event.observe,stopObserving:Event.stopObserving});
Object.extend(document,{fire:Element.Methods.fire.methodize(),observe:Element.Methods.observe.methodize(),stopObserving:Element.Methods.stopObserving.methodize(),loaded:false});
(function(){var B;
function A(){if(document.loaded){return 
}if(B){window.clearInterval(B)
}document.fire("dom:loaded");
document.loaded=true
}if(document.addEventListener){if(Prototype.Browser.WebKit){B=window.setInterval(function(){if(/loaded|complete/.test(document.readyState)){A()
}},0);
Event.observe(window,"load",A)
}else{document.addEventListener("DOMContentLoaded",A,false)
}}else{document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
$("__onDOMContentLoaded").onreadystatechange=function(){if(this.readyState=="complete"){this.onreadystatechange=null;
A()
}}
}})();
Hash.toQueryString=Object.toQueryString;
var Toggle={display:Element.toggle};
Element.Methods.childOf=Element.Methods.descendantOf;
var Insertion={Before:function(A,B){return Element.insert(A,{before:B})
},Top:function(A,B){return Element.insert(A,{top:B})
},Bottom:function(A,B){return Element.insert(A,{bottom:B})
},After:function(A,B){return Element.insert(A,{after:B})
}};
var $continue=new Error('"throw $continue" is deprecated, use "return" instead');
var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;
this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0
},within:function(B,A,C){if(this.includeScrollOffsets){return this.withinIncludingScrolloffsets(B,A,C)
}this.xcomp=A;
this.ycomp=C;
this.offset=Element.cumulativeOffset(B);
return(C>=this.offset[1]&&C<this.offset[1]+B.offsetHeight&&A>=this.offset[0]&&A<this.offset[0]+B.offsetWidth)
},withinIncludingScrolloffsets:function(B,A,D){var C=Element.cumulativeScrollOffset(B);
this.xcomp=A+C[0]-this.deltaX;
this.ycomp=D+C[1]-this.deltaY;
this.offset=Element.cumulativeOffset(B);
return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+B.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+B.offsetWidth)
},overlap:function(B,A){if(!B){return 0
}if(B=="vertical"){return((this.offset[1]+A.offsetHeight)-this.ycomp)/A.offsetHeight
}if(B=="horizontal"){return((this.offset[0]+A.offsetWidth)-this.xcomp)/A.offsetWidth
}},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(A){Position.prepare();
return Element.absolutize(A)
},relativize:function(A){Position.prepare();
return Element.relativize(A)
},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(B,C,A){A=A||{};
return Element.clonePosition(C,B,A)
}};
if(!document.getElementsByClassName){document.getElementsByClassName=function(B){function A(C){return C.blank()?null:"[contains(concat(' ', @class, ' '), ' "+C+" ')]"
}B.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(C,E){E=E.toString().strip();
var D=/\s/.test(E)?$w(E).map(A).join(""):A(E);
return D?document._getElementsByXPath(".//*"+D,C):[]
}:function(E,F){F=F.toString().strip();
var G=[],H=(/\s/.test(F)?$w(F):null);
if(!H&&!F){return G
}var C=$(E).getElementsByTagName("*");
F=" "+F+" ";
for(var D=0,J,I;
J=C[D];
D++){if(J.className&&(I=" "+J.className+" ")&&(I.include(F)||(H&&H.all(function(K){return !K.toString().blank()&&I.include(" "+K+" ")
})))){G.push(Element.extend(J))
}}return G
};
return function(D,C){return $(C||document.body).getElementsByClassName(D)
}
}(Element.Methods)
}Element.ClassNames=Class.create();
Element.ClassNames.prototype={initialize:function(A){this.element=$(A)
},_each:function(A){this.element.className.split(/\s+/).select(function(B){return B.length>0
})._each(A)
},set:function(A){this.element.className=A
},add:function(A){if(this.include(A)){return 
}this.set($A(this).concat(A).join(" "))
},remove:function(A){if(!this.include(A)){return 
}this.set($A(this).without(A).join(" "))
},toString:function(){return $A(this).join(" ")
}};
Object.extend(Element.ClassNames.prototype,Enumerable);
Element.addMethods();(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)
}
})
})();$.noConflict();(function(D){D.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(F,E){D.fx.step[E]=function(G){if(G.state==0){G.start=C(G.elem,E);
G.end=B(G.end)
}G.elem.style[E]="rgb("+[Math.max(Math.min(parseInt((G.pos*(G.end[0]-G.start[0]))+G.start[0]),255),0),Math.max(Math.min(parseInt((G.pos*(G.end[1]-G.start[1]))+G.start[1]),255),0),Math.max(Math.min(parseInt((G.pos*(G.end[2]-G.start[2]))+G.start[2]),255),0)].join(",")+")"
}
});
function B(F){var E;
if(F&&F.constructor==Array&&F.length==3){return F
}if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return[parseInt(E[1]),parseInt(E[2]),parseInt(E[3])]
}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return[parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55]
}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return[parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16)]
}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return[parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16)]
}return A[D.trim(F).toLowerCase()]
}function C(G,E){var F;
do{F=D.curCSS(G,E);
if(F!=""&&F!="transparent"||D.nodeName(G,"body")){break
}E="backgroundColor"
}while(G=G.parentNode);
return B(F)
}var A={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]}
})(jQuery);if(!cssAddress){var cssAddress="css/"
}if(!jsAddress){var jsAddress="js/"
}if(!INCLUDE_CSS){var INCLUDE_CSS=["epg.css","grid.css","list.css","filtering.css","search.css","bubble.css","authentication.css","modalDialogue.css","skin-sky.css"]
}for(var x=0,j=INCLUDE_CSS.length;
x<j;
x++){document.write('<link type="text/css"  rel="stylesheet" href="'+cssAddress+INCLUDE_CSS[x]+'" />')
};function testBench(){};document.domain=location.host.match(/\w+\.com/);
jQuery.browser.chrome=/chrome/.test(navigator.userAgent.toLowerCase());
epg.staticcontent={};
epg.init=function(){if(epg.config.siteId==4&&!epg.tools.supportedBrowser()){jQuery("body").append('<div id="unsupportedBrowser"><p>Sky Player TV Guide is not currently available in this browser. Supported browsers include Internet Explorer 6.0, Firefox 2.0 and Safari 3.0 and more recent versions of each.</p><p><a href="https://skyplayer.sky.com/aboutskyplayer/internet-tv-browser.html" target="_blank">More about technical requirements</a></p>');
return false
}var A=epg.data.UserCookie.getCookie("epg_channelPrefs"+epg.config.cookieSuffix,"obj");
if(A&&A.provider!=0){epg.data.UserCookie.setCookieRaw("epg_channelPrefs"+epg.config.cookieSuffix,"data%20%3D%20%7B%22provider%22%3A%200%7D")
}if(epg.config.general.enable_survey){epg.getSurvey()
}setTimeout(epg.data.UserCookie.init,0);
setTimeout(epg.stateMachine.init,0);
setTimeout(epg.Authentication.init,0);
setTimeout(epg.ui.init,0);
setTimeout(epg.filtering.init,0);
setTimeout(epg.search.init,0);
setTimeout(epg.data.init,0);
setTimeout(epg.date.init,0);
setTimeout(epg.grid.init,0);
setTimeout(epg.list.init,0);
try{void (document.execCommand("BackgroundImageCache",false,true))
}catch(B){}};
epg.reloadEPG=function(){epg.data.UserCookie.hardReset();
epg.stateMachine.hardReset();
epg.Authentication.hardReset();
epg.ui.hardReset();
epg.filtering.hardReset();
epg.search.hardReset();
epg.data.hardReset();
epg.date.hardReset();
epg.list.hardReset();
epg.data.init();
if(jQuery("#epg_bubble").length>0){intBubbleX=parseInt(jQuery("#epg_bubble").css("left").replace("px",""),10)-epg.bubble.properties.iBubbleXOffset;
intBubbleY=parseInt(jQuery("#epg_bubble").css("top").replace("px",""),10)-epg.bubble.properties.iBubbleYOffset;
var A=epg.data._showid;
var B=epg.data._channelid;
epg.bubble.closeBubble();
setTimeout(function(){epg.data.getProgram(A,B,epg.date.currentDay,epg.config.deepLinking.getProgramStartTime);
if(epg.Authentication.trigger=="remoterecord"){epg.remoterecord.display(B,A);
epg.Authentication.trigger=""
}},1500)
}};
epg.getSurvey=function(){var B=new Date();
var A=epg.data.UserCookie.getCookie("surveyEPG"+epg.config.cookieSuffix,"plain");
if(A){if(A.substring(0,1)=="W"){datCookie=new Date(A.substring(1,A.length));
datCookie.setDate(datCookie.getDate()+14);
if(datCookie<=B){parent.ecos_ver="";
parent.ecos_i=function(){window.ecos_nc=parent.ecos_nc;
window.ecos_sid=parent.ecos_sid;
window.ecos_altsid=parent.ecos_altsid;
window.ecos_pm=parent.ecos_pm;
window.ecos_ver+=parent.ecos_ver;
window.ecos_go=parent.ecos_go;
window.ecos_i()
};
jQuery.getScript(window.ecos_url);
B.setDate(B.getDate()+76);
epg.data.UserCookie.setCookieRaw("surveyEPG"+epg.config.cookieSuffix,"D","; expires="+B.toGMTString())
}}}else{epg.data.UserCookie.setCookieRaw("surveyEPG"+epg.config.cookieSuffix,"W"+escape(B.toGMTString()))
}};
jQuery(window).unload(function(A){if((epg.config.siteId==4&&epg.tools.supportedBrowser())||(epg.config.siteId!=4)){epg.grid.clear();
epg.grid.unLoad();
if($(epg.ui.Dropdowns.providers.element_id)){Event.stopObserving($(epg.ui.Dropdowns.providers.element_id),"click",epg.ui.Dropdowns.providers.display)
}if($("epg_filter_special")){Event.stopObserving($("epg_filter_special"),"click",epg.search.ajaxEditorsPickSearch)
}if($("epg_filter_main")){Event.stopObserving($("epg_filter_main"),"click",epg.filtering.quickBrowse)
}if($("epg_filter_off")){Event.stopObserving($("epg_filter_off"),"click",epg.filtering.removeFiltering)
}if($("epg_filter_favourites")){Event.stopObserving($("epg_filter_favourites"),"click",epg.ui.Toolbars.toolbar3.goToFavourites)
}if($(epg.ui.Dropdowns.times.element_id)){Event.stopObserving($(epg.ui.Dropdowns.times.element_id),"click",epg.ui.Dropdowns.times.display)
}if($("epg.config.eInfoCloseDrag")){Event.stopObserving($("epg.config.eInfoCloseDrag"),"click",epg.ui.Info.closeDragInfo)
}if($("epg_next_day")){Event.stopObserving($("epg_next_day"),"click",epg.grid.scrollToNextMorning)
}if($(epg.ui.Dropdowns.listViewByChannel.element_id)){Event.stopObserving($(epg.ui.Dropdowns.listViewByChannel.element_id),"click",epg.ui.Dropdowns.listViewByChannel.display)
}if($(epg.config.eInfoCloseDrag)){Event.stopObserving($(epg.config.eInfoCloseDrag),"click",epg.ui.Info.closeDragInfo)
}if($(epg.ui.Dropdowns.listViewByChannel.element_id)){Event.stopObserving($(epg.ui.Dropdowns.listViewByChannel.element_id),"click",epg.ui.Dropdowns.listViewByChannel.display)
}if($(epg.ui.Dropdowns.listViewByGenre.element_id)){Event.stopObserving($(epg.ui.Dropdowns.listViewByGenre.element_id),"click",epg.ui.Dropdowns.listViewByGenre.display)
}if($(epg.list.properties.sRadioChannelId)){Event.stopObserving($(epg.list.properties.sRadioTimeId),"click",epg.list.changeView)
}if($(epg.list.properties.sRadioChannelId)){Event.stopObserving($(epg.list.properties.sRadioChannelId),"click",epg.list.changeView)
}if(epg.search.search_form){Event.stopObserving(epg.search.search_form,"submit",epg.search.submit)
}if(epg.search.search_field){Event.stopObserving(epg.search.search_field,"focus",epg.search.enableSuggestions)
}if($("epg_bubble_inner")){Event.stopObserving($("epg_bubble_inner"),"mouseover",epg.bubble.setMouseStateOver);
Event.stopObserving($("epg_bubble_inner"),"mouseout",epg.bubble.setMouseStateOut)
}if($("epg_bubble")){Event.stopObserving($("epg_bubble"),"mousemove",epg.grid.getShowHover);
Event.stopObserving($("epg_bubble"),"mouseup",epg.grid.getShowClick)
}delete epg
}});epg.strings={unexpectedError:"Unexpected error. If this issue continues please contact customer services.",selectReminderOption:"Please choose how you would like a reminder to be sent to you",sessionTimeout:"Your session has timed out. Please refresh this page and try again."};if(_hbPageView===undefined){var _hbPageView=function(){};
var _hbPageView=function(){};
var _hbLink=function(){}
}epg.hitbox={send:function(B,A){switch(B){case"select_day":_hbPageView("select_day"+(A==0?"_today":"_"+A),epg.config.hitbox_root+"/ajax/");
break;
case"select_time":_hbPageView("select_time_"+A,epg.config.hitbox_root+"/ajax/");
break;
case"searchresults":_hbPageView("search_results",epg.config.hitbox_root+"/ajax/");
break;
case"maintab_grid":_hbPageView("maintab_grid",epg.config.hitbox_root+"/ajax/");
break;
case"maintab_detailed_grid":_hbPageView("maintab_detailed_grid",epg.config.hitbox_root+"/ajax/");
break;
case"maintab_list":_hbPageView("maintab_list",epg.config.hitbox_root+"/ajax/");
break;
case"listingbubble":_hbPageView("listingbubble",epg.config.hitbox_root+"/ajax/");
break;
case"datadrag":_hbPageView("datadrag",epg.config.hitbox_root+"/ajax/");
break;
case"remoterecord":_hbLink(epg.config.hitbox_root2+"_ajax_remoterecord");
break;
case"selectprovider":_hbPageView("selectprovider",epg.config.hitbox_root+"/ajax/");
break;
case"searchsuggestion":_hbLink(epg.config.hitbox_root2+"_ajax_searchsuggestion");
break;
case"getmoreinfo":_hbLink(epg.config.hitbox_root2+"_ajax_getmoreinfo");
break;
case"favouritechannels":_hbLink(epg.config.hitbox_root2+"_ajax_favouritechannels");
break;
case"applyfilter":_hbPageView("applyfilter",epg.config.hitbox_root+"/ajax/");
break;
case"personalfilter":_hbPageView("personalfilter",epg.config.hitbox_root+"/ajax/");
break;
case"pre-setfilter":_hbPageView("pre-setfilter",epg.config.hitbox_root+"/ajax/");
break;
case"seemorefromsky":_hbLink(epg.config.hitbox_root2+"_ajax_seemorefromsky");
break;
case"skyplayerlivetv":_hbLink(epg.config.hitbox_root2+"_ajax_skyplayerlivetv");
break;
case"skyplayervod":_hbLink(epg.config.hitbox_root2+"_ajax_skyplayervod");
break;
case"epg search":break
}}};epg.tools={init:function(){},arrayify:function(A){if(A.constructor==Array){return A
}return[A]
},cookieToData:function(B){if(!B){B={}
}if(epg.config.general.enableChannelPrefs){var A=epg.data.UserCookie.getCookie("epg_channelPrefs"+epg.config.cookieSuffix);
if(A){if(A.packages){B.packages=epg.tools.arrayify(A.packages).join(",")
}if(A.provider){B.providerId=A.provider
}if(A.region){B.bouquetId=A.region.split("_")[0];
B.subbouquetId=A.region.split("_")[1]
}}}return B
},supportedBrowser:function(){if(jQuery.browser.chrome||(jQuery.browser.safari&&parseInt(jQuery.browser.version)<=522)){return false
}return true
},isArray:function(A){return A&&A.constructor==Array
},isEmpty:function(A){for(var B in A){return false
}return true
},doAjax:function(A){if(!A){A={}
}if(!A.data){A.data={}
}A.data.siteId=epg.config.siteId;
return jQuery.ajax(A)
},killAjax:function(){Ajax.abortAll()
},popwin:function(A,B){if(B){window.open(A,"newSkyWindow","location=yes,directories=yes,menubar=yes,scrollbars=yes,status=yes,toolbar=yes,resizable=yes,top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight)
}else{window.open(A)
}return false
},createSrpUrl:function(C,A){var B=C+"?source=epg&formaction="+escape(A)+"&srp=";
var D=top.location.href;
if(jQuery("#epg_bubble").length>0){if(D.indexOf("?")!=-1){D=D.substr(0,D.indexOf("?"))
}D+="?eventId="+epg.data._showid+"&channelId="+epg.data._channelid
}B+=escape(D);
return B
},sortObject:function(D,B){var C=new Array();
for(E in D){C[C.length]={K:E,V:D[E]}
}if(B){C=C.sort(B)
}else{C=C.sort(function(H,G){return H.V-G.V
})
}var F={};
var A=C.length;
for(var E=0;
E<A;
E++){F[C[E].K]=C[E].V
}delete C;
delete A;
delete E;
delete p;
return F
},cancelBubble:function(B){var A=(B||window.event);
if(!A||A=="undefined"){debug(B);
return 
}A.returnValue=false;
A.cancelBubble=true;
if(A.stopPropagation){A.stopPropagation()
}if(A.preventDefault){A.preventDefault()
}return false
},getTarget:function(D){var A=(D||window.event);
var B=A.srcElement||A.target;
while(B.nodeType!=1){B=B.parentNode
}try{var C=B.parentNode;
while(C.nodeType!=1){C=C.parentNode
}if(C.tagName.toLowerCase()=="a"){B=C
}}catch(D){}return B
},getParentByProperty:function(C,H,G,A){var B=null;
if(typeof G=="string"){if(A){if(A.indexOf("-strict")>-1){var D=new RegExp("(^|\\s)"+G+"(\\s|$)")
}}else{var D=new RegExp(G,"i")
}}else{if(!G){console(1);
clearTimeout(this.stackInt);
return false
}var D=G
}var E;
do{try{E=C[H]||C.getAttribute(H);
E=""+E;
if(D.test(E)){return C
}}catch(F){}C=C.parentNode||C
}while(C.parentNode);
return false
},getPosition:function(D,I){var J,A,G,J,C,K,F,E;
J=T=A=G=C=K=F=E=0;
C=D.offsetWidth;
K=D.offsetHeight;
if(D.offsetParent){J=D.offsetLeft;
T=D.offsetTop;
while(D=D.offsetParent){if(I&&I==D){break
}J+=D.offsetLeft;
T+=D.offsetTop
}}A=T+K;
G=J+C;
F=J+(C/2);
E=T+(K/2);
return{top:T,left:J,right:G,bottom:A,middle:{x:F,y:E},width:C,height:K}
},generateDOM:function(C){var D=document.createElement(C.sNodeType[0]);
if(C.sId){D.id=C.sId
}if(C.sHref){D.href=C.sHref
}if(C.aClasses!==undefined){$(D).className=C.aClasses.join(" ")
}var B=D;
var K=[D];
var A=C.sNodeType.length;
for(var J=1;
J<A;
J++){K[J]=document.createElement(C.sNodeType[J]);
B.appendChild(K[J]);
B=K[J]
}if(C.aAttributes){for(var I=0,G=C.aAttributes.length;
I<G;
I++){if(C.aAttributes[I]!=null){K[C.aAttributes[I].iNodeNo].setAttribute([C.aAttributes[I].sAttribute],C.aAttributes[I].sValue)
}}}if(C.aBehaviours){for(var I=0,G=C.aBehaviours.length;
I<G;
I++){K[C.aBehaviours[I].iNodeNo]["on"+C.aBehaviours[I].sEvent]=C.aBehaviours[I].fCallBack
}}var N=[];
if(!Object.isString(C.oContents)&&C.oContents!=""){var H=C.oContents.length;
for(var J=0;
J<H;
J++){if(Object.isElement(C.oContents[J])){B.appendChild(C.oContents[J])
}else{if((C.oContents[J]) instanceof Object){var L=this.generateDOM(C.oContents[J]);
if(Object.isArray(L)){for(var G=0,F=L.length;
G<F;
G++){B.appendChild(L[G])
}}else{if(C.oContents[J]!=""){B.appendChild(L)
}}}else{if(C.oContents[J]!=""){var E=C.oContents[J];
var M=Object.clone(C);
M.oContents=E;
N[J]=this.generateDOM(M);
N[J].generatedNodeNo=J;
D=N
}}}}}else{if(C.sNodeType[0]!="input"&&C.oContents!=""){B.appendChild(this.createTextNode(C.oContents))
}}return D
},createTextNode:function(A){var B=document.createTextNode(A);
if(Object.isElement(B)){console("yes")
}return B
}};
Element.Methods.positionedFromOffset=function(B,C){var A={top:0,left:0,width:0,height:0};
A.width=B.offsetWidth;
A.height=B.offsetHeight;
if(B.offsetParent){A.left=B.offsetLeft;
A.top=B.offsetTop;
while(B=B.offsetParent){if(C&&C==B){break
}A.left+=B.offsetLeft;
A.top+=B.offsetTop
}}A[0]=A.left;
A[1]=A.top;
return A
};
Element.Methods.epgGetElementsByClassName=function(B,E){if(B.getElementsByClassName){return B.getElementsByClassName(E)
}var A=new Array();
function G(){var K=B.all||B.getElementsByTagName("*");
var J=new RegExp("(^|\\s)"+E+"(\\s|$)");
for(var I=0,L=K.length;
I<L;
I++){if(J.test(K[I].className)){A[A.length]=K[I]
}}}if(document.evaluate){try{var D=".//*[contains(concat(' ', @class, ' '), ' "+E+" ')]";
var H=document.evaluate(D,B,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
var C=H.iterateNext();
while(C){A[A.length]=C;
C=H.iterateNext()
}}catch(F){G()
}}else{G()
}return A
};
Element.Methods.appendChildrenFromObject=function(B,D){for(var A=0,F=D.length;
A<F;
A++){var E=0;
var C=null;
for(var H in D[A]){if(E++==0){var G=document.createElement(H);
if(typeof D[A][H]=="string"){G.appendChild(document.createTextNode(D[A][H]))
}else{if(D[A][H]){Element.appendChildrenFromObject(G,D[A][H])
}}}else{if(C=H.match(/^on([a-z]+)$/)){Event.observe(G,C[1],D[A][H])
}else{G.setAttribute(H,D[A][H]);
if(H=="class"){G.className=D[A][H]
}}}}B.appendChild(G)
}};
Element.addMethods();
Ajax.Request.abort=function(A){A.transport.onreadystatechange=Prototype.emptyFunction;
A.transport.abort();
$A(Ajax.Responders.responders).each(function(B){if(B.onAbort){B.onAbort(A)
}});
if(!A._complete&&A._complete!="undefined"){Ajax.activeRequestCount--
}Ajax.RequestRegister=Ajax.RequestRegister.without(A)
};
Ajax.abortAll=function(){$A(Ajax.RequestRegister).each(Ajax.Request.abort);
Ajax.RequestRegister=[]
};
Ajax.allRequestsComplete=function(){for(var A in Ajax.RequestRegister){if(Ajax.RequestRegister[A]._complete!=undefined&&Ajax.RequestRegister[A]._complete!==true){return false
}}return true
};
epg.baseAjaxResponders={onCreate:function(A){if(!Ajax.RequestRegister){Ajax.RequestRegister=[]
}Ajax.RequestRegister[Ajax.RequestRegister.length]=A
},onException:function(B,A){if(B.transport){Ajax.Request.abort(B)
}else{Ajax.abortAll()
}}};
Ajax.Responders.register(epg.baseAjaxResponders);
Ajax.Responders.register({onCreate:function(A){epg.ui.infoPane.displayLoader()
},onComplete:function(A){if(Ajax.allRequestsComplete()){epg.ui.infoPane.hideLoader()
}},onException:function(B,A){if(Ajax.allRequestsComplete()){epg.ui.infoPane.hideLoader()
}},onAbort:function(A){if(Ajax.allRequestsComplete()){epg.ui.infoPane.hideLoader()
}}});
Ajax.Responders.register({onException:function(B,A){},on500:function(B,A){}});
Number.prototype.pad=String.prototype.pad=function(C,B){var A=this.toString(B||10);
while(A.length<C){A="0"+A
}return A
};
String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"")
};
String.prototype.toWord=function(){return this.replace(/\s+([a-z]{1})/ig,function(A){return A.toUpperCase()
}).replace(/\s+/g,"")
};
String.prototype.createDOMElement=function(){var J=this;
var I;
var K;
var E;
var H=new Array();
var G;
while(J.charAt(0)!="<"){J=J.substr(1)
}while(J.length){var F=J.match(/^<([a-z0-9]+)/);
var D=J.match(/^([a-z]+)="([^"]+)"/i);
var C=J.match(/^(>)/);
var B=J.match(/^<\/([a-z0-9]+)/);
var A=J.match(/^\/>/);
var L=J.match(/^([^<]+)/);
if(F){E=document.createElement(F[1]);
if(!I){I=E
}else{K.appendChild(E)
}K=E;
J=J.replace("<"+F[1],"")
}else{if(D){E.setAttribute(D[1],D[2]);
if(D[1]=="class"){E.className=D[2]
}J=J.replace(D[1]+'="'+D[2]+'"',"")
}else{if(C){J=J.replace(C[1],"")
}else{if(B){if(K.parentNode){K=K.parentNode
}J=J.replace("</"+B[1]+">","")
}else{if(A){if(K.parentNode){K=K.parentNode
}J=J.replace("/>","")
}else{if(L){K.appendChild(document.createTextNode(L[1]));
J=J.replace(L[1],"")
}}}}}}J=J.replace(/^\s+|\s+$/,"")
}return I
};epg.date={dServerTime:0,currentDay:0,dLocalTime:0,iLocalTimeOffset:0,init:function(){if(epg.stateMachine.storedCurrentTime===false){epg.date.setCurrentTime((new Date()).setDate((new Date()).getDate()+epg.config.api.toolbar.dates.initial));
traceCurrentTime(0)
}else{epg.date.setCurrentTime(epg.stateMachine.storedCurrentTime);
traceCurrentTime(1)
}for(var A=0;
A<20;
A++){var B;
B=new Date();
B.setDate(B.getDate()+A);
B.setMinutes(0);
B.setSeconds(0);
B.setMilliseconds(0);
B.setHours(0);
epg.date.aEpgDate[A]=B;
delete B
}},aEpgDate:[],hardReset:function(){epg.date.init()
},dateToURL:function(F,A){F.setHours((F.getHours()));
var B=F.getMinutes();
while(B%15!=0){B++
}if(B!=0){}F.setMinutes(B);
if(A){return""+F.getTime()
}var H=F.getFullYear().toString();
var E=(F.getMonth()+1).toPaddedString(2);
var C=F.getDate().toPaddedString(2);
var I=F.getHours().toPaddedString(2);
var D=F.getMinutes().toPaddedString(2);
var G=H+E+C+I+D;
return G
},dateToMidnight:function(A){A.setDate(A.getDate());
A.setMinutes(0);
A.setSeconds(0);
A.setMilliseconds(0);
A.setHours(0);
return A
},nixToEpg:function(C){var B=epg.date.nixToMidnight(C);
var A;
for(iDay=0,j=epg.config.constants.maxDays;
iDay<j;
iDay++){A=epg.date.epgDateNix(iDay);
if(B===A){return iDay
}}return false
},nixToMidnight:function(B){var A=new Date;
A.setTime(B);
A.setDate(A.getDate());
A.setMinutes(0);
A.setSeconds(0);
A.setMilliseconds(0);
A.setHours(0);
return epg.date.dateToNix(A)
},nixToDate:function(B){var A=new Date;
A.setTime(B);
return A
},dateToNix:function(A){return A.getTime()
},epgDate:function(A){return epg.date.aEpgDate[A]
},epgDateNix:function(A){return epg.date.dateToNix(epg.date.epgDate(A))
},dateToString:function(G){var H=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
var F=new Date;
F.setTime(G);
var E=F.getHours();
var B=F.getMinutes().toPaddedString(2);
var A=F.getDate();
var D=H[F.getDay()];
var C=E<12?"am":"pm";
E=(E<12?E:E-12);
E=E==0?12:E;
E=(E+":"+B+""+C);
E=E.replace(/:00/,"");
A+=(A==1||A==21||A==31)?"st":(A==2||A==22)?"nd":(A==3||A==23)?"rd":"th";
return D+", "+A+", "+E
},dateToStringList:function(D){var E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var B=["January","February","March","April","May","June","July","August","September","October","November","December"];
var C=new Date;
C.setTime(D);
var A=C.getDate();
A+=(A==1||A==21||A==31)?"st":(A==2||A==22)?"nd":(A==3||A==23)?"rd":"th";
return E[C.getDay()]+", "+B[C.getMonth()]+" "+A
},timeSTR:function(E){var D=new Date;
D.setTime(E);
var C=D.getHours();
var A=D.getMinutes().toPaddedString(2);
var B=C<12?"am":"pm";
C=(C<12?C:C-12);
C=C==0?12:C;
C=(C+":"+A+""+B);
if(!epg.config.grid.showFullTimeBarTime){C=C.replace(/:00/,"")
}return C
},timeFromOffairStr:function(A){return epg.date.timeFromString(A,true)
},timeFromString:function(C,B){if(isNaN(C)){var F=/[^0-9]*([0-9]{1,2})[\.\s]*([0-9]*)\s*([pa]m).*/i;
if(!F.test(C)){return false
}var D=parseInt(C.replace(F,"$1"),10);
var G=C.replace(F,"$3")||"";
if(G.toLowerCase()=="pm"&&D<12){D+=12
}if(G.toLowerCase()=="am"&&D==12){D=0
}var A=C.replace(F,"$2");
A=typeof A=="string"&&A!=""?parseInt(A,10):0
}else{var D=parseInt(C);
var A=0
}var E=new Date();
if(D<epg.date.currentTime.getHours()&&B){E.setMonth(epg.date.currentTime.getMonth(),epg.date.currentTime.getDate()+1)
}else{E.setMonth(epg.date.currentTime.getMonth(),epg.date.currentTime.getDate())
}E.setHours(D);
E.setMinutes(A);
return E
},now:new Date(),currentTime:new Date(),setCurrentTime:function(C){var D=C;
if(C.setTime){D=C.getTime()
}epg.stateMachine.storedCurrentTime=D;
epg.date.currentTime.setTime(parseInt(D,10));
epg.ui.Toolbars.toolbar2.setDay(epg.date.currentTime.getDate());
epg.date.timeOfDayDate=epg.date.getTimeOfDay();
if(!epg.ui.Dropdowns.times.all_day&&arguments[1]!==undefined){epg.ui.Dropdowns.times.update(D)
}var B=new Date();
B.setHours(0);
B.setMinutes(0);
B.setSeconds(0);
B=B.getTime();
var E=new Date();
E.setTime(epg.date.currentTime.getTime());
E.setHours(0);
E.setMinutes(0);
E.setSeconds(0);
E=E.getTime();
var A=Math.round((E-B)/(24*60*60*1000));
if(epg.date.currentDay!==A){epg.bubble.closeBubble()
}epg.date.currentDay=A
},selectedDayIsToday:function(){var A=new Date();
time=A.getTime();
return epg.date.nixToMidnight(epg.stateMachine.storedCurrentTime)==epg.date.nixToMidnight(time)
},getTimeOfDay:function(G){var H=epg.date.timeOfDay();
var C=epg.date.currentTime.getHours();
var B=new Date();
B.setTime(epg.date.currentTime.getTime());
var A;
var F;
for(F=0,j=H.length;
F<j;
F++){var E=H[(F+1)]?H[(F+1)].hour:24-H[0].hour;
if(C>=H[F].hour){if(C<E){B.setHours(H[F].hour);
break
}}B.setMinutes(0,0,0)
}if(G){var D={startval:B,textval:epg.date.timeOfDay()[F].text,duration:epg.date.timeOfDay()[F].duration};
return D
}return B
},timeOfDayDate:new Date(),timeOfDay:function(){return epg.config.general.timeOfDay_format
}};epg.list={init:function(){traceList("init",arguments);
var A=epg.data.UserCookie.getCookie("epg_listsorttype"+epg.config.cookieSuffix)||epg.config.api.list.sort_type.initial;
if((A===0&&!epg.config.api.list.sort_type.enabled.channel)||(A==1&&!epg.config.api.list.sort_type.enabled.time)){A=epg.config.api.list.sort_type.initial
}epg.list.tracking.sortType=A;
Event.observe($(epg.list.properties.sRadioTimeId),"click",epg.list.changeView);
Event.observe($(epg.list.properties.sRadioChannelId),"click",epg.list.changeView)
},properties:{sRadioTimeId:"epg_listTime",sRadioChannelId:"epg_listChannel",sNextChannelView:"Next channels",sPrevChannelView:"Previous channels",sNextTimeView:"Later",sPrevTimeView:"Earlier",sEmptyList:"epg_emptyList"},filters:"",listViewScrollerTop:0,listViewScrollerHeight:0,iCurrentDur:null,iCurrentStart:null,aChannels:[],aListFilterCurrent:[],bListFilterEnabled:false,bIsFavourites:false,oEventJump:null,lastViewedTime:false,tracking:{currentBlock:0,sortType:0,getCurrentCallDuration:function(){traceList("getCurrentCallDuration",arguments);
var B;
if(epg.list.tracking.sortType===0){if(!epg.ui.Dropdowns.times.all_day){var C=epg.date.getTimeOfDay(true);
B=C.duration-1
}else{B=1680
}}if(epg.list.tracking.sortType===1){var A=40;
B=(A/epg.list.aChannels.length);
B=Math.ceil(B);
B=B>6?6:B;
B*=60;
B-=1
}return B
}},changeView:function(C){traceList("changeView",arguments);
epg.tools.killAjax();
epg.list.makeEmpty();
if(typeof C!="string"&&typeof C!="number"){var F=epg.tools.getTarget(C);
var E=F.id.toString();
var A=(E==epg.list.properties.sRadioChannelId)?0:1;
if(E==epg.list.properties.sRadioChannelId){$(E).checked=true;
$(epg.list.properties.sRadioTimeId).checked=false
}else{$(E).checked=true;
$(epg.list.properties.sRadioChannelId).checked=false
}epg.list.tracking.sortType=A
}else{C=C.toString();
epg.list.tracking.sortType=C
}if(epg.list.tracking.sortType===1&&epg.ui.Dropdowns.times.all_day===true){epg.ui.Dropdowns.times.all_day=false;
var B=new Date();
epg.date.setCurrentTime(B.valueOf());
traceCurrentTime(15)
}var G;
var D;
if(epg.list.tracking.sortType===0){G=new Date();
G.setTime(epg.date.timeOfDayDate.getTime());
G.setMinutes(0);
G.setSeconds(0);
G.setMilliseconds(0);
D=G.getTime()
}else{G=new Date();
G.setTime(epg.date.currentTime.getTime());
G.setMinutes(0);
G.setSeconds(0);
G.setMilliseconds(0);
D=G.getTime()
}epg.data.UserData.saveData("epg_listsorttype",epg.list.tracking.sortType);
epg.list.load(D)
},load:function(H){traceList("load",arguments);
testBench({aspect:"Calculate_List",type:"start"});
var D=epg.config.deepLinking.checkDeepLink(true);
if(D){epg.data.getProgram(D[0],D[1],epg.date.currentDay,epg.config.deepLinking.getProgramStartTime);
return 
}epg.list.makeEmpty();
epg.list.show();
$(epg.config.eListMain).style.height=epg.list.listViewScrollerHeight+"px";
if(H){epg.date.setCurrentTime(H);
traceCurrentTime(14)
}epg.list.aProgStore=[];
epg.list.oProgHash={};
var K=[];
if(epg.stateMachine.isFilter()){K=epg.filtering.filters[epg.filtering.current_filter].channels||[]
}if(epg.stateMachine.isTvListing()){if(epg.list.bListFilterEnabled){K=epg.list.aListFilterCurrent
}else{K=epg.data.current
}}epg.list.aChannels=K;
var G=(epg.list.tracking.currentBlock)*epg.config.iMaxChannelsLists;
if(epg.stateMachine.isFilter()&&epg.list.lastViewedTime===false&&epg.list.tracking.sortType!==1){epg.list.lastViewedTime=epg.date.currentTime.getTime();
var P=epg.date.timeFromString("12am");
epg.date.setCurrentTime(P.valueOf());
traceCurrentTime(13);
document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML="All day";
epg.ui.Dropdowns.times.all_day=true
}var I=epg.date.currentDay;
var O=epg.list.receiveData;
var L=epg.list.tracking.getCurrentCallDuration();
var B=(epg.list.tracking.sortType===0)?epg.date.timeOfDayDate:epg.date.currentTime;
if(epg.ui.Dropdowns.times.all_day){epg.list.iCurrentDur=L;
var C=new Date();
C.setTime(B.getTime());
C.setHours(0);
C.setMinutes(0);
epg.list.iCurrentStart=C.getTime()
}else{epg.list.iCurrentDur=L;
epg.list.iCurrentStart=B.getTime()
}var M=G+(epg.config.iMaxChannelsLists-1);
var F;
if(epg.list.tracking.sortType===0){epg.data.requestType=0;
K=K.sortBy(function(Q){return epg.data.channels[(Q)].channelno
});
F=[];
var J=K.length;
for(var E=0;
E<J;
E++){if(E>=G&&E<=M){F[F.length]=K[E]
}}epg.list.fetchTotal=F.length
}if(epg.list.tracking.sortType==1){epg.data.requestType=1;
F=K;
var N=new Date();
N.setTime(epg.date.currentTime.getTime());
N.setMinutes(0);
epg.date.setCurrentTime(N);
traceCurrentTime(12);
var A=epg.date.dateToURL(epg.date.currentTime);
epg.list.fetchTotal=F.length
}epg.list.aChannels=F.slice();
if(!epg.stateMachine.isFilter()&&epg.list.aChannels.length===0&&!epg.stateMachine.isSearch()){epg.filtering.removeFiltering();
return 
}if(epg.stateMachine.isFilter()&&epg.list.aChannels.length===0&&!epg.stateMachine.isSearch()){if(!$(epg.config.eAlert)){epg.list.displayNoChannelsMessage()
}}else{if(epg.list.tracking.sortType==1&&epg.list.aChannels.length>0&&!epg.stateMachine.isSearch()){if($(epg.config.eAlert)){epg.ui.Alerts.alert.close()
}epg.data.getList(F,I,O,L,A)
}else{if(epg.list.tracking.sortType==0&&epg.list.aChannels.length>0&&!epg.stateMachine.isSearch()){if($(epg.config.eAlert)){epg.ui.Alerts.alert.close()
}epg.data.getList(F,I,O)
}}}testBench({aspect:"Calculate_List",type:"stop"})
},show:function(){traceList("show",arguments);
if(epg.list.bIsFavourites){epg.list.updateFilteredFavourites()
}Element.removeClassName($(epg.config.eList),"view_off");
if(!epg.stateMachine.isSearch()){$(epg.config.eListBar).style.display="";
$(epg.config.eListMain).style.display=""
}var A=epg.tools.getPosition($(epg.config.eList));
var B=epg.tools.getPosition($(epg.config.constants.listViewBarId));
epg.list.listViewScrollerHeight=(A.bottom-B.bottom)-2
},hide:function(){traceList("hide",arguments);
Element.addClassName($(epg.config.eList),"view_off")
},makeEmpty:function(){traceList("makeEmpty",arguments);
jQuery("#"+epg.config.eListMain).addClass(epg.list.properties.sEmptyList);
jQuery("#"+epg.config.eListScroller).remove()
},clear:function(){traceList("clear",arguments);
epg.tools.killAjax();
epg.data.requestType=0;
Element.addClassName($("epg_list"),"view_off");
var A=$(epg.config.constants.listwrapperId);
A.innerHTML=""
},aProgStore:[],oProgHash:{},iChannelsReceived:0,receiveData:function(D,F,H){traceList("receiveData",arguments);
var B;
var A=epg.list.iCurrentStart;
var M=epg.list.iCurrentStart+(epg.list.iCurrentDur*60*1000);
var I=new Date();
I.setTime(M);
if(I.getDate()!=epg.date.currentTime.getDate()){I.setDate(epg.date.currentTime.getDate());
I.setHours(23);
I.setMinutes(59);
M=I.getTime();
M=M+(1000*60*60*4)
}var E=epg.list.aProgStore;
var K,C;
var J=0;
var G=0;
if(epg.stateMachine.isFilter()){traceList("receiveData isFilter == true",arguments);
for(kProg in D){if(epg.list.oProgHash[kProg]===undefined&&D[kProg].filtermatch===""){K=D[kProg].start;
C=parseInt(K,10)+parseInt(D[kProg].dur*1000,10);
if(K<M&&K>=A){J++;
E[E.length]=D[kProg];
epg.list.oProgHash[kProg]=true
}if((K<A&&C>M)&&epg.list.tracking.sortType===0){J++;
E[E.length]=D[kProg];
epg.list.oProgHash[kProg]=true
}B=D[kProg].channelid
}}}else{traceList("receiveData isFilter == false",arguments);
for(kProg in D){if(epg.list.oProgHash[kProg]===undefined&&epg.list.oProgHash[kProg]===undefined){K=D[kProg].start;
C=parseInt(K,10)+parseInt(D[kProg].dur*1000,10);
if(K<M&&K>=A){J++;
E[E.length]=D[kProg];
epg.list.oProgHash[kProg]=true
}if((K<A&&C>M)&&epg.list.tracking.sortType===0){J++;
E[E.length]=D[kProg];
epg.list.oProgHash[kProg]=true
}B=D[kProg].channelid
}}}var L;
if(J===0&&epg.list.tracking.sortType===0){if(epg.data.channels[B]){L=E[E.length]=epg.data.channels[B].valueOf();
L.noData=true
}}if(E.length===0&&epg.list.tracking.sortType===1&&F>=(epg.list.aChannels.length-1)){if(epg.data.channels[B]){L=E[E.length]=epg.data.channels[B].valueOf();
L.noData=true
}}epg.list.iChannelsReceived++;
if(epg.list.fetchTotal===(F+1)&&epg.list.fetchTotal!==undefined&&epg.list.fetchTotal!==0){if(epg.list.tracking.sortType===0){epg.list.writeByChannel(epg.list.aProgStore)
}else{epg.list.writeByTime(epg.list.aProgStore)
}delete epg.list.fetchTotal
}},xhtml:{scroller:'<div id="epg_listViewScroller" class="epg_listViewScroller epg_stdList" style="height:XXXheightXXXpx;top:XXXtopXXXpx">XXXcontentsXXX</div>',channels:{std:'<!-- Listing header --><div class="epg_listRow_header" id="epg_listViewChannel_XXXchannelIDXXX"><div class="epg_channelNumber epg_type_2">XXXchannelnoXXX</div><div class="epg_channelName epg_type_1">XXXchannelnameXXX</div>  XXXfavouriteXXX  </div><br clear="all" style="clear:both;" /><!-- END: Listing header -->',time:'<!-- Listing header --><div class="epg_listRow_header epg_timeView"><div class="epg_channelTime epg_type_11">XXXtimeXXX</div></div><!-- END: Listing header -->'},program:{std:'<!-- Listing row --><div id="epg_event_XXXchannelidXXX_XXXeventidXXX" class="epg_listRow XXXdontmissXXX XXXoffairXXX"><div class="epg_time_order epg_type_1">XXXprogtimeXXX</div><div class="epg_programme">XXXgenreXXX<div class="epg_programmeTitle epg_type_5">XXXprogtitleXXX</div></div>XXXbubblelinkXXX</div><!-- END: Listing row -->',time:'<!-- Listing row --><div id="epg_event_XXXchannelidXXX_XXXeventidXXX" class="epg_listRow XXXdontmissXXX XXXoffairXXX"><div class="epg_time_order epg_type_1">XXXprogtimeXXX</div><div class="epg_programme">XXXgenreXXX<div class="epg_programmeTitle epg_type_5">XXXprogtitleXXX</div></div>             <div class="epg_timeListDetails">       XXXfavouriteXXX    <div class="epg_channelNumber epg_type_2">XXXchannelnoXXX</div>   <div class="epg_channelName epg_type_1">XXXchannelnameXXX</div>  </div>                  XXXbubblelinkXXX</div><!-- END: Listing row -->',genre:'<div class="epg_listGenre epg_type_12">XXXgenretxtXXX</div>',bubblelink:'<div class="epg_expand_show"><a href="#" class="epg_link_A">Expand</a></div>'},promo:'<!-- Promotion row --><div class="epg_promoRow" id="epg_list_promo_XXXchannelidXXX" style="background:transparent url(XXXimageurlXXX) repeat-x bottom left;"><div class="epg_promoImage"></div><div class="epg_promoHide"><a href="#"><span>Hide promo</span></a></div></div><!-- END: Promotion row -->',bubble:'<div style="clear:all;" class="epg_bubbleRow epg_emptyBubble epg_hidden_bubble"><div class="epg_bubbleTip"><img src="images/skin/assets/gif/bubble_L.gif" alt=" " /></div><div id="XXXbubbleidXXX" class="epg_bubbleRowWrapper"></div></div><br clear="all" style="clear:both;" />',favourite:'<div class="epg_addChannel"><a href="#" class="epg_XXXfavimageXXX" id="epg_favChannel_XXXfavIDXXX">&nbsp;</a></div>',favtxt:["add","remove"],nextprev:{wrapper:'<div class="epg_nextPrevious">XXXlinksXXX</div>',prevLink:'<a id="epg_list_previous" href="#" class="epg_link_J">XXXpreviousTEXTXXX</a>',nextLink:'<a id="epg_list_next" href="#" class="epg_link_J">XXXnextTEXTXXX</a>',prevLinkTop:'<a id="epg_list_previous_top" href="#" class="epg_link_J">XXXpreviousTEXTXXX</a>',nextLinkTop:'<a id="epg_list_next_top" href="#" class="epg_link_J">XXXnextTEXTXXX</a>'},nodata:'<div class="epg_listRow"><div class="epg_programme"><div class="epg_programmeTitle epg_type_5">Sorry. no programme information available</div></div></div>'},_writeProgram:function(E,G,C){traceList("_writeProgram",arguments);
var F,D,N="",J="",I="",K="";
chItem=epg.data.channels[G];
var H=epg.data.genre[E.genre];
H=H.display?H.name:false;
if(H){J='<div class="epg_listGenre epg_type_12">'+H+"</div>"
}var B=(E.edschoice=="true"?" "+epg.config.p_dontmiss:"");
var L=(E.offair?" "+epg.config.p_offair:"");
if(epg.list.tracking.sortType===0){if(E.start>epg.date.epgDateNix(epg.date.currentDay+1)){var A=" epg_listRowFiltered";
var M=epg.date.dateToStringList(E.start)
}else{var M="";
var A=""
}N='<div id="epg_event_'+E.channelid+"_"+E.eventid+'" class="epg_listRow'+B+L+A+'"><div class="epg_time_order epg_type_1">'+epg.date.timeSTR(E.start)+'</div><div class="epg_programme">'+J+'<div class="epg_programmeTitle epg_type_5">'+E.title+'</div><span class="epg_channelListFilterDay">'+M+"</span></div>"+(epg.config.api.bubble.enabled?epg.list.xhtml.program.bubblelink:"")+"</div>"
}if(epg.list.tracking.sortType==1){N='<div id="epg_event_'+E.channelid+"_"+E.eventid+'" class="epg_listRow'+B+L+'"><div class="epg_time_order epg_type_1">'+epg.date.timeSTR(E.start)+'</div><div class="epg_programme">'+J+'<div class="epg_programmeTitle epg_type_5">'+E.title+'</div></div><div class="epg_timeListDetails">'+epg.list._writeFavourite(chItem)+'<div class="epg_channelNumber epg_type_2">'+C+'</div><div class="epg_channelName epg_type_1">'+(chItem.title||"")+"</div></div>"+(epg.config.api.bubble.enabled?epg.list.xhtml.program.bubblelink:"")+"</div>"
}if(G==E.channelid){if(!E.offair&&epg.config.api.bubble.enabled){N+=epg.list.writeBubble(E)
}}return N
},_writeFavourite:function(A){traceList("_writeFavourite",arguments);
if(epg.config.api.favourites.enabled){return'<div class="epg_addChannel"><a href="#" class="epg_'+(epg.data.favourites[A.channelid]?"fav_1":"fav_0")+'" id="epg_favChannel_'+A.channelid+'">&nbsp;</a></div>'
}else{return""
}},writeByChannel:function(D){traceList("writeByChannel",arguments);
testBench({aspect:"Render_ListChannel",type:"start"});
var K=epg.config.iMaxTimeShows;
var N=[];
var I=true;
var A;
var G=null;
epg.grid.currentChannel=epg.list.aChannels[0];
var E=epg.list.tracking.currentBlock===0;
var F;
if(epg.stateMachine.isFilter()){F=(((epg.list.tracking.currentBlock+1)*epg.config.iMaxChannelsLists)<epg.filtering.filters[epg.filtering.current_filter].channels.length?false:true)
}else{F=(epg.list.tracking.currentBlock+1)*epg.config.iMaxChannelsLists>(epg.list.aListFilterCurrent.length>0?epg.list.aListFilterCurrent.length:epg.data.current.length)
}if(!document.getElementById(epg.config.eListScroller)){A=0;
epg.list.aListTimeLabels=[];
epg.list.iListPosition=0;
epg.list.iListPosition+=K;
N[N.length]='<div id="'+epg.config.eListScroller+'" class="epg_listViewScroller epg_stdList" style="height:'+epg.list.listViewScrollerHeight+"px;top:"+epg.list.listViewScrollerTop+'px">';
I=true
}else{A=epg.list.iListPosition;
epg.list.iListPosition+=K;
I=false
}if(I===true){if(E&&!F){N[N.length]='<div class="epg_nextPrevious"><a id="epg_list_next_top" href="#" class="epg_link_J">'+epg.list.properties.sNextChannelView+"</a></div>"
}else{if(!E&&!F){N[N.length]='<div class="epg_nextPrevious"><a id="epg_list_previous_top" href="#" class="epg_link_J">'+epg.list.properties.sPrevChannelView+'</a><a id="epg_list_next_top" href="#" class="epg_link_J">'+epg.list.properties.sNextChannelView+"</a></div>"
}else{if(!E&&F){N[N.length]='<div class="epg_nextPrevious"><a id="epg_list_previous_top" href="#" class="epg_link_J">'+epg.list.properties.sPrevChannelView+"</a></div>"
}}}}D=D.sortBy(function(O){if(epg.data.channels[O.channelid]){return epg.data.channels[O.channelid].channelno+O.start
}});
var B,G,J;
var C=epg.data.channels;
var H=0;
for(var M=0,L=D.length;
M<L;
M++){B=D[M];
if(G===null||G!=B.channelid){G=B.channelid;
N[N.length]='<div class="epg_listRow_header" id="epg_listViewChannel_'+(B.channelid||"")+'"><div class="epg_channelNumber epg_type_2">'+(C[B.channelid].channelno||"")+'</div><div class="epg_channelName epg_type_1">'+(epg.data.channels[B.channelid].title||"")+"</div>"+(epg.list._writeFavourite(B))+"</div>";
N[N.length]=epg.list._writePromo(B.channelid)
}if(B.noData===true){N[N.length]='<div class="epg_listRow"><div class="epg_programme"><div class="epg_programmeTitle epg_type_5" style="width:auto;">Sorry, there are no programmes matching your filter criteria at this time</div></div></div>';
continue
}if(!B.noData){N[N.length]=epg.list._writeProgram(B,B.channelid,C[B.channelid].channelno);
H++
}}if(I===true){if(E&&!F){N[N.length]='<div class="epg_nextPrevious"><a id="epg_list_next" href="#" class="epg_link_J">'+epg.list.properties.sNextChannelView+"</a></div>"
}else{if(!E&&!F){N[N.length]='<div class="epg_nextPrevious"><a id="epg_list_previous" href="#" class="epg_link_J">'+epg.list.properties.sPrevChannelView+'</a><a id="epg_list_next" href="#" class="epg_link_J">'+epg.list.properties.sNextChannelView+"</a></div>"
}else{if(!E&&F){N[N.length]='<div class="epg_nextPrevious"><a id="epg_list_previous" href="#" class="epg_link_J">'+epg.list.properties.sPrevChannelView+"</a></div>"
}}}N[N.length]="</div>";
$(epg.config.eListMain).insert(N.join(""))
}else{$(epg.config.eListScroller).insert(N.join(""),{position:"after"});
$(epg.config.eListScroller).appendChild($("showMeMore"));
$(epg.config.eListScroller).appendChild($("epg_nextPrevious"))
}epg.list.bindHeaderMethods();
epg.list.bindEventMethods(D,0,D.length);
epg.list.bindMethods(D,0,D.length);
$(epg.config.eListScroller).style.visibility="visible";
Element.removeClassName($(epg.config.eListMain),epg.list.properties.sEmptyList);
testBench({aspect:"Render_ListChannel",type:"stop"})
},iListPosition:0,aListTimeLabels:{},writeByTime:function(F){traceList("writeByTime",arguments);
if(epg.list.tracking.sortType==1){testBench({aspect:"Render_ListTime",type:"start"});
var M=epg.config.iMaxTimeShows;
var P=[];
var K=true;
var A;
var G=epg.list.tracking.currentBlock===0;
var H=(epg.list.tracking.currentBlock+1)*epg.config.iMaxChannelsLists>(epg.list.aListFilterCurrent.length>0?epg.list.aListFilterCurrent.length:epg.data.current.length);
if(F===undefined){F=epg.list.aProgStore
}if(!document.getElementById(epg.config.eListScroller)){A=0;
epg.list.aListTimeLabels=[];
epg.list.iListPosition=0;
epg.list.iListPosition+=M;
P[P.length]='<div id="'+epg.config.eListScroller+'" class="epg_listViewScroller epg_stdList" style="height:'+epg.list.listViewScrollerHeight+"px;top:"+epg.list.listViewScrollerTop+'px">';
K=true
}else{A=epg.list.iListPosition;
epg.list.iListPosition+=M;
K=false
}if(K===true){P[P.length]='<div class="epg_nextPrevious"><a id="epg_list_previous_top" href="#" class="epg_link_J">'+epg.list.properties.sPrevTimeView+'</a><a id="epg_list_next_top" href="#" class="epg_link_J">'+epg.list.properties.sNextTimeView+"</a></div>"
}var C;
var L=new Date();
var B;
var D=epg.data.channels;
var N=A;
function E(Q){return Math.round(Q/(60*1000))*(60*1000)
}F=F.sortBy(function(Q){return parseInt(E(Q.start)+""+epg.data.channels[Q.channelid].channelno,10)
});
var J=F.length;
while(N<(A+M)&&N>=A){if(F[N]){C=F[N];
L.setTime(C.start||epg.date.currentTime.getTime());
if(B!=L.getHours()){var O=new Date();
O.setHours(L.getHours());
O.setMinutes(0);
B=O.getHours();
if(epg.list.aListTimeLabels[B]===undefined){epg.list.aListTimeLabels[B]=true;
P[P.length]='<div class="epg_listRow_header epg_timeView"><div class="epg_channelTime epg_type_11">'+epg.date.timeSTR(O.getTime())+"</div></div>"
}}if(!C.noData){P[P.length]=epg.list._writeProgram(C,C.channelid,D[C.channelid].channelno);
P[P.length]=epg.list._writePromo(C.channelid);
epg.list.sLastId="epg_event_"+C.channelid+"_"+C.eventid
}else{P[P.length]=epg.list.xhtml.nodata;
N++;
continue
}}N++;
if(N>=F.length&&$("showMeMore")){$("showMeMore").hide()
}}if(K===true){var I="epg.list.writeByTime();";
if(J>M&&epg.list.iListPosition<J){P[P.length]='<div id="showMeMore" href="#"><a class="epg_type_5 epg_time_order" onClick="'+I+'return false;">Display '+(J-(epg.list.iListPosition+M)<0?(J-epg.list.iListPosition):M)+" more programmes..</a><br/><br/></div>"
}P[P.length]='<div class="epg_nextPrevious" id="epg_nextPrevious"><a id="epg_list_previous" href="#" class="epg_link_J">'+epg.list.properties.sPrevTimeView+'</a><a id="epg_list_next" href="#" class="epg_link_J">'+epg.list.properties.sNextTimeView+"</a></div>";
P[P.length]="</div>";
$(epg.config.eListMain).insert(P.join(""))
}else{$(epg.config.eListScroller).insert(P.join(""),{position:"after"});
$(epg.config.eListScroller).appendChild($("showMeMore"));
$(epg.config.eListScroller).appendChild($("epg_nextPrevious"))
}setTimeout(function(){epg.list.bindEventMethods(F,A,M)
},0);
if(K===true){setTimeout(function(){epg.list.bindHeaderMethods()
},0)
}setTimeout(function(){epg.list.bindMethods(F,A,M)
},0);
$(epg.config.eListScroller).style.visibility="visible";
Element.removeClassName($(epg.config.eListMain),epg.list.properties.sEmptyList);
testBench({aspect:"Render_ListTime",type:"stop"})
}},_writePromo:function(A){traceList("_writePromo",arguments);
var B=epg.data.promos[epg.date.currentDay][A]||false;
if(!B||B.hidden===true||!epg.config.api.promos.enabled){return""
}else{return'<div class="epg_promoRow" id="epg_list_promo_'+A+'" style="background:transparent url('+B.promo+') repeat-x bottom left;"><div class="epg_promoImage"></div><div class="epg_promoHide" id="epg_list_promo_hide_'+A+'"><a href="#"><span>Hide promo</span></a></div></div>'
}},writeBubble:function(A){return'<div style="clear:all;" class="epg_bubbleRow epg_emptyBubble epg_hidden_bubble"><div class="epg_bubbleTip"><img src="images/skin/assets/gif/bubble_L.gif" alt=" " /></div><div id="bubble_event_'+A.channelid+"_"+A.eventid+'" class="epg_bubbleRowWrapper"></div></div><br clear="all" style="clear:both;" />'
},bindHeaderMethods:function(){traceList("bindHeaderMethods",arguments);
var A=$("epg_list_next");
if(A){A.onclick=epg.list.next
}var C=$("epg_list_previous");
if(C){C.onclick=epg.list.previous
}var B=$("epg_list_next_top");
if(B){B.onclick=epg.list.next
}var D=$("epg_list_previous_top");
if(D){D.onclick=epg.list.previous
}},bindMethods:function(G,H,D){traceList("bindMethods",arguments);
var F=$$("#"+epg.config.constants.listwrapperId+" ."+epg.config.p_offair.strip());
var E=F.length;
n=0;
while(n<E){$$("#"+F[n].id+" .epg_programmeTitle")[0].onclick=epg.list.offairJump;
n++
}var B=H;
var C=epg.data.promos;
var A=epg.date.currentDay;
while(B<(H+D)&&B>=H){if(G[B]){if(G[B]&&!G[B].noData&&C[A]&&C[A][G[B].channelid]!==undefined){$("epg_list_promo_"+G[B].channelid).onclick=function(I){epg.promo.action(I,true)
};
$("epg_list_promo_hide_"+G[B].channelid).onclick=epg.promo.hide
}else{B++;
continue
}}B++
}},bindEventMethods:function(E,F,C){traceList("bindEventMethods",arguments);
var A=F;
if(epg.config.api.bubble.enabled){var D=new RegExp(epg.config.p_offair.strip(),"i");
while(A<(F+C)&&A>=F){if(E[A]){if(!E[A].noData){var B=document.getElementById("epg_event_"+E[A].channelid+"_"+E[A].eventid);
if(B&&!D.test(B.id.toString())){B.onclick=epg.list.showHideBubble
}if(document.getElementById("epg_favChannel_"+E[A].channelid)){document.getElementById("epg_favChannel_"+E[A].channelid).onclick=epg.list.addRemoveFavourites
}}else{A++;
continue
}}A++
}}else{while(A<(F+C)&&A>=F){if(E[A]){if(!E[A].noData){document.getElementById("epg_favChannel_"+E[A].channelid).onclick=epg.list.addRemoveFavourites
}else{A++;
continue
}}A++
}}},next:function(D){traceList("next",arguments);
var C;
epg.tools.cancelBubble(D);
if(epg.list.tracking.sortType===0){epg.list.tracking.currentBlock++;
C=epg.date.timeOfDayDate.getTime()
}if(epg.list.tracking.sortType===1){C=epg.date.currentTime.getTime();
var A=(epg.list.iCurrentDur+1)*60*1000;
C+=A
}epg.list.updateFilteredFavourites();
var B=new Date();
epg.list.gotoTime(C)
},previous:function(D){traceList("previous",arguments);
var C;
epg.tools.cancelBubble(D);
if(epg.list.tracking.sortType===0){epg.list.tracking.currentBlock--;
C=epg.date.timeOfDayDate.getTime()
}if(epg.list.tracking.sortType===1){C=epg.date.currentTime.getTime();
var A=((epg.list.iCurrentDur+1)*60*1000);
var B=epg.date.dateToNix(epg.date.epgDate(0));
if((C-A)<B){C=B
}else{C-=A
}}epg.list.updateFilteredFavourites();
epg.list.gotoTime(C)
},showHideBubble:function(H,D,K,L){traceList("showHideBubble",arguments);
var G;
if(D===undefined){G=this;
epg.tools.cancelBubble(H)
}else{G=$("epg_event_"+K+"_"+L)
}var C=/[^0-9]+([0-9]+)_([0-9]+)/;
var I=G.id.replace(C,"$1_$2");
var M=$(G).getElementsByClassName(epg.config.listCollapse)[0]||G.getElementsByClassName(epg.config.listExpand)[0];
var B=Element.cleanWhitespace(M).getElementsByTagName("a")[0];
var E="bubble_event_"+I;
var J=$(E);
J=epg.tools.getParentByProperty(J,"className",epg.config.listBubbleRow,"-strict");
if(G.getElementsByClassName(epg.config.listCollapse)[0]){if(D){return 
}J.focus()
}else{G.focus()
}var F=new RegExp(epg.config.listHiddenBubble,"g");
if(F.test(J.className)){jQuery(".epg_bubbleRow").not(J).addClass("epg_hidden_bubble").prev().find(".epg_expand_hide").addClass(epg.config.listExpand).removeClass(epg.config.listCollapse).find("a").html("Expand");
jQuery(J).removeClass(epg.config.listHiddenBubble);
jQuery(M).removeClass(epg.config.listExpand).addClass(epg.config.listCollapse);
jQuery(B).html("Collapse");
M.blur();
var A=G.id.split("_");
epg.data.getProgram(A[3],A[2],epg.date.currentDay,epg.bubble.processProgramData_list)
}else{jQuery(J).addClass(epg.config.listHiddenBubble);
jQuery(M).addClass(epg.config.listExpand).removeClass(epg.config.listCollapse);
jQuery(B).html("Expand");
M.blur()
}},gotoTime:function(D){traceList("gotoTime",arguments);
var C=epg.date.nixToEpg(D);
epg.date.setCurrentTime(D);
traceCurrentTime(11);
if(epg.date.currentDay!==C){epg.date.currentDay=C;
var A=epg.date.nixToDate(D);
epg.ui.Toolbars.toolbar2.setDay(A.getDate())
}var B=(epg.list.tracking.sortType===0)?epg.date.timeOfDayDate:epg.date.currentTime;
D=B.getTime();
epg.list.load(D)
},gotoDay:function(A){traceList("gotoDay",arguments);
epg.list.gotoTime(A)
},checkForEventJump:function(){traceList("checkForEventJump",arguments);
var A=epg.list.oEventJump;
if(A){epg.list.gotoEvent(A.eventid,A.channelid,A.iStart,A.bShowBubble)
}epg.list.oEventJump=null
},gotoEvent:function(G,E,A,J){traceList("gotoEvent",arguments);
var B=$("epg_event_"+E+"_"+G);
var F=$("bubble_event_"+E+"_"+G);
if(B){var C=$(epg.config.eListScroller);
var I=(Element.positionedOffset(B).top);
var D=1;
jQuery("#"+C).animate({scrollTop:I},(D*1000),"swing");
if(J){epg.list.showHideBubble(B,true,E,G)
}return 
}epg.list.resetFilters();
epg.views.gotoTime(A);
epg.list.lastViewedTime=epg.date.currentTime.getTime();
var H=epg.date.timeFromString("12am");
epg.date.setCurrentTime(H.valueOf());
traceCurrentTime(10);
document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML="All day";
epg.ui.Dropdowns.times.all_day=true;
epg.list.filterByChannel(parseInt(E,10));
setTimeout(function(){if($("epg_event_"+E+"_"+G)){epg.list.showHideBubble($("epg_event_"+E+"_"+G),true,E,G);
var K=$(epg.config.eListScroller);
var L=(Element.positionedOffset($("epg_event_"+E+"_"+G)).top);
var M=1000;
jQuery("#"+K).animate({scrollTop:L},M,"swing")
}},1000)
},offairJump:function(E){traceList("offairJump",arguments);
var D=epg.tools.getTarget(E);
if(D.childNodes&&D.childNodes[0]){var C=Element.cleanWhitespace(D).childNodes[0].nodeValue;
var B=new Date();
var A=epg.date.timeFromOffairStr(C);
if(A.getTime){epg.list.gotoTime(A.getTime())
}}},programInfo:function(F){traceList("programInfo",arguments);
var E;
var C=/[^0-9]*([0-9]+)_([0-9]+).*/;
E=epg.tools.getTarget(F);
if(!C.test(E.id.toString())){E=epg.tools.getParentByProperty(E,"id",C)
}var B=E.id.toString();
var A=B.replace(C,"$1");
var D=B.replace(C,"$2");
epg.ui.infoPane.displayInfo((epg.data.list[epg.date.currentDay][A][D].shortDesc).truncate(90,"..."))
},addRemoveFavourites:function(B){traceList("addRemoveFavourites",arguments);
epg.tools.cancelBubble(B);
var C=this.id;
C=C.split("_");
var A=C[2];
if(epg.data.favourites[A]){if($(this).removeClassName("epg_fav_1")){$(this).removeClassName("epg_fav_1")
}$(this).addClassName("epg_fav_0");
epg.data.removeFavourite(A)
}else{if($(this).removeClassName("epg_fav_0")){$(this).removeClassName("epg_fav_0")
}$(this).addClassName("epg_fav_1");
epg.data.addFavourite(A)
}},displayNoChannelsMessage:function(){traceList("displayNoChannelsMessage",arguments);
epg.ui.Alerts.alert.display(epg.filtering.text.error)
},filterByChannel:function(B){traceList("filterByChannel",arguments);
if(typeof B==="number"){B=epg.data.channels[B].title
}epg.tools.killAjax();
if(epg.stateMachine.isFilter()){epg.filtering.resetFilteringParameters()
}epg.list.tracking.currentBlock=0;
epg.stateMachine.set(2);
epg.list.bListFilterEnabled=(B!=epg.ui.Dropdowns.listViewByChannel.content[0]);
epg.ui.Dropdowns.listViewByChannel.bIsDefault=(B==epg.ui.Dropdowns.listViewByChannel.content[0]);
for(var A in epg.data.channels){if(epg.data.channels[A].title==B){epg.list.aListFilterCurrent=[A];
break
}}if(epg.ui.Dropdowns.listViewByChannel.bIsDefault){epg.ui.Dropdowns.listViewByGenre.reset()
}epg.list.load(epg.date.currentTime.getTime())
},filterByGenre:function(B){traceList("filterByGenre",arguments);
epg.tools.killAjax();
if(epg.stateMachine.isFilter()){epg.filtering.resetFilteringParameters()
}epg.list.tracking.currentBlock=0;
epg.ui.Dropdowns.listViewByChannel.reset();
epg.stateMachine.set(2);
epg.list.bListFilterEnabled=(B!=epg.ui.Dropdowns.listViewByGenre.content[0]);
epg.ui.Dropdowns.listViewByGenre.bIsDefault=(B==epg.ui.Dropdowns.listViewByGenre.content[0]);
var D=null;
var C=false;
B=B.unescapeHTML();
var A;
for(i in epg.data.epggenre){A=epg.data.epggenre[i].name.unescapeHTML();
if(A==B){D=epg.data.epggenre[i].genreid;
epg.list.bIsFavourites=(i=="fave");
break
}}epg.list.aListFilterCurrent=[];
epg.list.aListGenreCurrent=[];
if(epg.list.bIsFavourites){epg.list.updateFilteredFavourites()
}else{for(i in epg.data.channels){if(epg.data.channels[i].epggenre==D){epg.list.aListFilterCurrent[epg.list.aListFilterCurrent.length]=epg.data.channels[i].channelid
}}epg.list.aListGenreCurrent=epg.list.aListFilterCurrent.slice()
}epg.list.load(epg.date.currentTime.getTime())
},resetFilters:function(){traceList("resetFilters",arguments);
epg.ui.Dropdowns.listViewByChannel.reset();
epg.ui.Dropdowns.listViewByGenre.reset();
epg.list.bListFilterEnabled=false;
epg.list.bIsFavourites=false;
epg.list.aListFilterCurrent=[];
epg.list.aListGenreCurrent=[]
},updateFilteredFavourites:function(){traceList("updateFilteredFavourites",arguments);
if(epg.list.bIsFavourites){var B=epg.data.favourites;
epg.list.aListFilterCurrent=[];
for(var A in B){epg.list.aListFilterCurrent[epg.list.aListFilterCurrent.length]=A.toString()
}epg.list.aListGenreCurrent=epg.list.aListFilterCurrent.slice()
}},hardReset:function(){traceList("hardReset",arguments);
$$("#epg_list_filters .epg_dropDown_container").each(Element.remove);
epg.list.resetFilters();
epg.list.tracking.currentBlock=0;
epg.list.aProgStore=[];
epg.list.bIsFavourites=false
}};epg.xml={init:function(){},parseEPGInit:function(U){if(U===""||U.error){epg.ui.Alerts.mainError.display();
return 
}var c;
var C=epg.data.channels;
var I=epg.data.favourites;
var R=epg.data.current;
var P=epg.data.channelnoMap;
var E=epg.data.genre;
var N=epg.data.epggenre;
var G=epg.data.promos;
var b=epg.date.nixToEpg;
var D;
epg.data.userPreferences=U.userPreferences;
epg.Authentication.checkAuthenticated();
epg.bubble.rating.properties.stars_ratingstext=U.ratingstext.rating;
if(epg.search.reloadSearch){epg.search.reloadSearchTerm()
}if(epg.config.general.enable_favourites){N.fave={name:"Favourites",genreid:"fave"}
}N.all={name:"All channels",genreid:"all"};
if(epg.config.general.enable_favourites){C.special={channelno:false,epggenre:"fave",title:epg.config.sFaveHTML,height:31}
}var e=U.channels;
var L=U.genre;
var Z=U.epggenre;
var K=U.filters;
var W=epg.data.grid;
var Q=epg.data.list;
for(var H=0,V=epg.config.constants.maxDays;
H<V;
H++){if(!W[H]){W[H]={};
Q[H]={}
}}for(var T=0,V=epg.config.constants.maxDays;
T<V;
T++){if(!G[T]){G[T]={}
}}epg.staticcontent=U.staticcontent;
epg.Authentication.properties.sPasswordLink=epg.config.urlForgottenPassword;
epg.Authentication.properties.sUserNameLink=epg.config.urlForgottenUsername;
if(e&&e.length){for(var O=0,M=e.length;
O<M;
O++){C[e[O]["channelid"]]=e[O];
R[R.length]=e[O]["channelid"];
P[e[O]["channelno"]]=e[O]["channelid"];
if(e[O]["promo__program"]&&!e[O]["promo__program"].length){D=b(e[O]["promo__program"]["start"]);
if(!G[D]){G[D]={}
}G[D][e[O]["channelid"]]=e[O]["promo__program"];
delete C[e[O]["channelid"]]["promo__program"]
}else{if(e[O]["promo__program"]){for(var J=0,Y=J<e[O]["promo__program"].length;
J<Y;
J++){D=b(e[O]["promo__program"][J]["start"]);
if(!G[D]){G[D]={}
}G[D][e[O]["channelid"]]=e[O]["promo__program"][J]
}delete C[e[O]["channelid"]]["promo__program"]
}}}}var d=epg.data.UserCookie.getCookie("epg_favourites"+epg.config.cookieSuffix);
if(!d){d=[]
}if(epg.data.userPreferences&&epg.data.userPreferences.favouriteChannels&&epg.data.userPreferences.favouriteChannels.channels){if(epg.data.userPreferences.favouriteChannels.channels.channelid){var F=epg.data.userPreferences.favouriteChannels.channels.channelid;
var B=false;
for(var X=0,V=d.length;
X<V;
X++){if(d[X]==F){B=true
}}if(!B){d[d.length]=F
}}else{var S=epg.data.userPreferences.favouriteChannels.channels;
for(var a=0,A=S.length;
a<A;
a++){var F=S[a].channelid;
var B=false;
for(var X=0,V=d.length;
X<V;
X++){if(d[X]==F){B=true
}}if(!B){d[d.length]=F
}}}}if(d){for(a=0;
a<d.length;
a++){if(C[d[a]]){I[d[a]]=Object.clone(C[d[a]]);
I[d[a]].epggenre="fave"
}}}if(d&&d.length>0){delete C.special
}epg.data.UserData.saveData("epg_favourites",d);
if(L&&L.length){for(var O=0,M=L.length;
O<M;
O++){c=L[O]["genreid"];
E[c]=L[O];
if(c==6){E[c].name="Film";
E[c]["display"]=true
}if(c==7){E[c]["display"]=true
}}}if(Z.length===undefined){Z=[Z]
}if(Z&&Z.length){for(var O=0,M=Z.length;
O<M;
O++){N[Z[O]["genreid"]]=Z[O]
}}if(K&&K.length){for(var O=0,M=K.length;
O<M;
O++){epg.filtering.filters[K[O].k.toString().toWord()]={name:K[O].k,genres:K[O].v.split(","),channels:null}
}}epg.Authentication.checkAuthenticated();
epg.ui.Toolbars.toolbar1.setup();
epg.data.selectedRegion="London";
if(epg.stateMachine.isHDChannels===true){epg.data.selectedRegion="HD Channels"
}else{if(U.selectedRegion&&U.selectedRegion.shortName!==undefined){epg.data.selectedRegion=U.selectedRegion.shortName
}}document.getElementById(epg.ui.Dropdowns.providers.value_id).innerHTML=epg.data.selectedRegion
},parseProgram:function(B,D,C){if(B===""||B.error){return 
}var A=epg.data.events;
if(!A[C]){A[C]={}
}if(!A[C][D]){A[C][D]={}
}A[C][D]=B.all__details
},parseChannel:function(D,E){var H=D;
if(D===""||D.error){return 
}var A=epg.data.grid;
if(!A[E]){A[E]={}
}if(D.channels.constructor==Object){D.channels=[D.channels]
}if(D.channels&&typeof D.channels.length==="number"){for(var I=0,G=D.channels.length;
I<G;
I++){var F=D.channels[I]["program"];
var C=D.channels[I]["channelid"];
if(!A[E][C]){A[E][C]={}
}var B={};
for(iProgram=0,max=F.length;
iProgram<max;
iProgram++){A[E][C][F[iProgram]["eventid"]]=F[iProgram]
}}}},parseList:function(C,D){var H=C;
if(C===""||C.error){return 
}var E=epg.data.list;
if(!E[D]){E[D]={}
}if(C.channels.constructor==Object){C.channels=[C.channels]
}if(C.channels&&typeof C.channels.length==="number"){for(var I=0,G=C.channels.length;
I<G;
I++){var F=C.channels[I]["program"];
var B=C.channels[I]["channelid"];
if(!E[D][B]){E[D][B]={}
}var A={};
for(iProgram=0,max=F.length;
iProgram<max;
iProgram++){E[D][B][F[iProgram]["eventid"]]=F[iProgram]
}}}},parseFilterGenres:function(A){if(A&&A.category){epg.filtering.filter_genres=A.category
}else{epg.ui.Alerts.mainError.display()
}},parseFilterChannels:function(B,C){if(B){if(B.channels&&B.channels.length){var A=B.channels.split(",");
for(i=0;
i<A.length;
i++){if(epg.data.channels[A[i]]===undefined){delete A[i]
}}A=A.uniq();
A=A.compact();
epg.filtering.filters[C].channels=A
}else{epg.filtering.filters[C].channels=[]
}if($("epg_filterCloud")){setTimeout("epg.views.reloadCurrentView()",500)
}else{epg.views.reloadCurrentView()
}}else{epg.ui.Alerts.mainError.display()
}}};epg.promo={_findPromo:function(C){try{var B=/[^0-9]+_([0-9]+)$/;
var E=epg.tools.getParentByProperty(C,"id",B);
var A=E.id.toString().replace(B,"$1");
var F=epg.data.promos[epg.date.currentDay][A];
return F
}catch(D){return false
}},action:function(D,G,F){var C=epg.tools.getTarget(D);
F=F||epg.promo._findPromo(C);
var A;
if(G===true){var E;
if(F.promolink!==undefined){var B=epg.date.timeSTR(F.start);
B+=" on ";
B+=epg.data.channels[F.channelid].title;
epg.ui.Alerts.modalDialogue.open.promo(F.title,B,F.promolink,"_blank")
}else{var B=epg.date.timeSTR(F.start);
B+=" on ";
B+=epg.data.channels[F.channelid].title;
epg.ui.Alerts.modalDialogue.open.promo(F.title,B,epg.config.urlFindOutAboutGettingSky,"_parent")
}}else{epg.promo.finalAction(F)
}},finalAction:function(A){if(A.promolink!==undefined){document.location=A.promolink
}else{epg.views.gotoEvent(A.eventid,A.channelid,A.start,true)
}},hide:function(D){var B=this;
if(epg.stateMachine.isAnyGrid()){}if(epg.stateMachine.isList()){var A=/[^0-9]+_([0-9]+)$/;
var E=epg.tools.getParentByProperty(B,"id",A);
epg.tools.cancelBubble(D);
var F=epg.promo._findPromo(B);
F.hidden=true;
var C=E.id;
E=$(C);
while(E){Element.remove(E);
E=$(C)||false
}}}};epg.data={init:function(){traceData("epg.data.init");
if(!epg.stateMachine.isFilter()){if(epg.stateMachine.isAnyGrid()){epg.data.getInit(epg.grid.makeKey)
}else{if(epg.stateMachine.isList()){epg.data.getInit(epg.list.load)
}}}else{epg.data.getInit(function(){epg.data.getFilterChannels(epg.filtering.current_filter,epg.date.dateToURL(epg.date.currentTime))
})
}},hardReset:function(){traceData("epg.data.hardReset");
epg.data.channels={};
epg.data.current=[];
epg.data.channelnoMap={};
epg.data.genre={};
epg.data.epggenre={};
epg.data.grid={};
epg.data.events={};
epg.data.favourites={};
epg.data.promos={};
epg.data.filtered={};
epg.data.userPreferences={};
epg.data.requestType=0
},channels:{},current:[],channelnoMap:{},genre:{},epggenre:{},grid:{},list:{},events:{},favourites:{},promos:{},filtered:{},ratings:{},requestType:0,addFavourite:function(E){traceData("epg.data.addFavourite");
epg.data.favourites[E]=Object.clone(epg.data.channels[E]);
epg.data.favourites[E].epggenre="fave";
epg.grid.stripChannel(epg.data.favourites[E]);
epg.data.favourites[E].promo=undefined;
epg.data.favourites[E].promoKey=undefined;
if(epg.data.channels.special){epg.grid.removeChannel(epg.data.channels.special);
delete epg.data.channels.special;
var D=true
}if(epg.stateMachine.isAnyGrid()){var C;
if(epg.stateMachine.isextendedGrid()){C=epg.config.iExtendedHeight
}else{if(!epg.stateMachine.isextendedGrid()){C=epg.config.iGridHeight
}}epg.grid.addFavourite(E);
epg.grid.setChannelHeight();
epg.grid.getUpdate();
if(D){epg.grid.jumpTo($(epg.config.eSchedule).scrollLeft,$(epg.config.eSchedule).scrollTop+C-epg.config.iGridHeight)
}else{epg.grid.jumpTo($(epg.config.eSchedule).scrollLeft,$(epg.config.eSchedule).scrollTop+C)
}}var A=[];
for(var B in epg.data.favourites){A[A.length]=B
}epg.data.UserData.saveData("epg_favourites",A);
epg.hitbox.send("favouritechannels")
},removeFavourite:function(E){traceData("epg.data.removeFavourite");
if(epg.data.favourites[E].status===true){epg.grid.removeChannel(epg.data.favourites[E])
}delete epg.data.favourites[E];
if(!epg.data.channels.special&&Object.keys(epg.data.favourites).length===0){epg.data.channels.special={channelno:false,epggenre:"fave",title:epg.config.sFaveHTML,height:31};
var D=true
}if(epg.stateMachine.isAnyGrid()){epg.grid.removeFavourite(E);
var B;
if(epg.stateMachine.isextendedGrid()){B=epg.config.iExtendedHeight
}else{if(!epg.stateMachine.isextendedGrid()){B=epg.config.iGridHeight
}}epg.grid.setChannelHeight();
epg.grid.getUpdate();
if(D){epg.grid.jumpTo($(epg.config.eSchedule).scrollLeft,$(epg.config.eSchedule).scrollTop-B+epg.config.iGridHeight)
}else{epg.grid.jumpTo($(epg.config.eSchedule).scrollLeft,$(epg.config.eSchedule).scrollTop-B)
}}var A=[];
for(var C in epg.data.favourites){A[A.length]=C
}epg.data.UserData.saveData("epg_favourites",A);
epg.hitbox.send("favouritechannels")
},isFavourite:function(A){traceData("epg.data.isFavourite");
if(epg.data.favourites[A]){return true
}else{return false
}},getInit:function(B){traceData("epg.data.getInit");
testBench({aspect:"Server_Init",type:"start"});
var A=epg.tools.cookieToData();
epg.tools.doAjax({url:epg.config.fileInit,data:A,dataType:"json",type:"get",success:function(D){testBench({aspect:"Server_Init",type:"stop"});
function C(){var E=epg.tools.doAjax({url:epg.config.ajaxGetTime,type:"get",success:function(){epg.Authentication.checkAuthenticated();
epg.date.dServerTime=new Date(E.getResponseHeader("Date"));
epg.date.dLocalTime=new Date();
if(isNaN(epg.date.dServerTime)){epg.date.dServerTime=epg.date.dLocalTime
}epg.date.iLocalTimeOffset=Date.parse(epg.date.dServerTime)-Date.parse(epg.date.dLocalTime);
if(epg.stateMachine.haveServerTime===false){epg.date.setCurrentTime(epg.date.dServerTime);
traceCurrentTime(2);
epg.stateMachine.haveServerTime=true;
epg.ui.Toolbars.toolbar2.setup()
}else{epg.date.setCurrentTime(epg.stateMachine.storedCurrentTime);
traceCurrentTime("2b")
}epg.xml.parseEPGInit(D);
epg.ui.Toolbars.toolbar3.populate();
epg.ui.Toolbars.listFilterBar.setup();
if(typeof (B)==="function"){traceData(B);
B()
}}})
}if(epg.data.UserCookie.getCookie("skySSO","plain")&&epg.data.UserCookie.getCookie("skySSO","plain")!='""'){epg.tools.doAjax({url:epg.config.fileInitUser,data:A,dataType:"json",type:"get",success:function(E){if(E.result&&E.result.status!="error"){D.userPreferences=E.result.content;
epg.data.userPreferences=D.userPreferences
}C()
}})
}else{C()
}}})
},getProgram:function(F,C,B,E){if((C==0)&&epg.data._channelid){C=epg.data._channelid;
epg.data._channelid=0
}else{epg.data._channelid=C
}if((F==0)&&epg.data._showid){F=epg.data._showid;
epg.data._showid=0
}else{epg.data._showid=F
}traceData("epg.data.getProgram");
if(!epg.data.events[C]||!epg.data.events[C][F]){testBench({aspect:"Server_Programme",type:"start"});
var D={channelId:C,eventId:F};
D=epg.tools.cookieToData(D);
var A=function(){epg.tools.doAjax({url:epg.config.fileProgram,type:"get",data:D,dataType:"json",timeout:epg.config.ajaxTimeout,success:function(H){testBench({aspect:"Server_Programme",type:"stop"});
if(jQuery("#ajaxtimeoutdelaymodal").length>0||jQuery("#ajaxtimeoutfailuremodal").length>0){epg.ui.Alerts.modalDialogue.closeRawDialogue()
}function G(){epg.xml.parseProgram(H,F,C);
var K=getURLParam("epgSearchQuery");
var J=parseInt(epg.data.events[C][F].program.start)+(parseInt(epg.data.events[C][F].program.dur)*1000);
if(K&&epg.date.nixToEpg(J)===false){var I=false;
if(getURLParam("epgMethod")=="searchExact"){I=true
}epg.reloadEPG();
epg.search.ajaxSearch(K,I);
return 
}if(typeof (E)==="function"){traceData(E);
E(epg.data.events[C][F])
}}if(epg.Authentication.properties.iAuthState){epg.tools.doAjax({url:epg.config.fileProgramUser,type:"get",data:D,dataType:"json",success:function(I){for(var J in I.result.content){H.all__details.program[J]=I.result.content[J]
}G()
}})
}else{G()
}},error:function(I,J,H){if(J=="timeout"){if(!this.tryCount){this.tryCount=0
}if(this.tryCount<epg.config.ajaxTimeoutRetryLimit){this.tryCount++;
if(jQuery("#ajaxtimeoutdelaymodal").length==0){epg.ui.Alerts.modalDialogue.open.ajaxTimeoutDelay()
}epg.tools.doAjax(this);
return 
}if(this.tryCount==epg.config.ajaxTimeoutRetryLimit){if(jQuery("#ajaxtimeoutdelaymodal").length>0||jQuery("#ajaxtimeoutfailuremodal").length>0){epg.ui.Alerts.modalDialogue.closeRawDialogue()
}var G=this;
epg.ui.Alerts.modalDialogue.open.ajaxTimeoutFailure(function(){epg.tools.doAjax(G)
})
}return 
}if(I.status==500){if(getURLParam("epgSearchQuery")===null){epg.bubble.closeBubble();
epg.ui.Alerts.modalDialogue.open.alreadyBroadcast();
return 
}}epg.bubble.properties.iShow=F;
epg.bubble.properties.iChannel=C;
if(getURLParam("epgSearchQuery")!==null){epg.search.ajaxSearch(getURLParam("epgSearchQuery"),true)
}else{epg.bubble.closeBubble();
epg.ui.Alerts.modalDialogue.open.alreadyBroadcast()
}}})
};
setTimeout(A,200)
}else{if(typeof (E)==="function"){traceData(E);
E(epg.data.events[C][F])
}}},getGrid:function(J,E,M){traceData("epg.data.getGrid");
var B=epg.data.grid;
var G=epg.data.channels;
var K=[];
var C=[];
if(epg.stateMachine.isFilter()){var I=epg.filtering.filters[epg.filtering.current_filter].genres.join(",");
for(var A=0,F=J.length;
A<F;
A++){if(G[J[A]].filterGenre===I&&G[J[A]].filterDay===epg.date.currentDay){C[C.length]=J[A]
}else{G[J[A]].filterDay=epg.date.currentDay;
K[K.length]=J[A];
G[J[A]].filterGenre=I
}}}else{for(var A=0,F=J.length;
A<F;
A++){if(!B[E][J[A]]){K[K.length]=J[A]
}else{C[C.length]=J[A]
}}}if(K.length>0){K=K.compact();
var D={channels:J.join(","),time:epg.date.dateToURL(epg.date.epgDate(E)),dur:1680,detail:2};
if(epg.stateMachine.isFilter()){D.genres=epg.filtering.filters[epg.filtering.current_filter].genres.join(",")
}var H=testBench({aspect:"Server_Grid",type:"start",display:{average:"all"}});
epg.tools.doAjax({url:epg.config.fileGrid,data:D,type:"get",dataType:"json",success:function(P){testBench({aspect:"Server_Grid",type:"stop",index:H});
epg.xml.parseChannel(P,E);
if(typeof (M)==="function"){for(var O=0,N=K.length;
O<N;
O++){traceData(M);
M(B[E][K[O]],K[O])
}}}})
}if(typeof (M)==="function"){for(var L=0,F=C.length;
L<F;
L++){traceData(M);
M(B[E][C[L]],C[L])
}}},getList:function(I,E,L,K,C){traceData("epg.data.getList");
var H=epg.data.list;
var G=epg.data.channels;
var J=[];
var B=[];
for(var A=0,F=I.length;
A<F;
A++){if(epg.data.requestType==1||!H[E][I[A]]){J[J.length]=I[A]
}else{B[B.length]=I[A]
}}J=B.concat(J);
if(J.length>0){var D={channels:J.join(","),time:C||epg.date.dateToURL(epg.date.epgDate(E)),dur:K||1560,detail:K?1:2};
if(epg.stateMachine.isFilter()){D.genres=epg.filtering.filters[epg.filtering.current_filter].genres.join(",")
}testBench({aspect:"Server_List",type:"start"});
epg.tools.doAjax({url:epg.config.fileGrid,type:epg.config.sRPCMethod,data:D,dataType:"json",success:function(N){testBench({aspect:"Server_List",type:"stop"});
epg.xml.parseList(N,E);
var P=epg.data.list;
if(typeof (L)==="function"){for(var O=0,M=I.length;
O<M;
O++){traceData(L);
L(P[E][I[O]],O,I.length,I[O])
}}}})
}},getFilterGenres:function(A){traceData("epg.data.getFilterGenres");
testBench({aspect:"Server_Genres",type:"start"});
epg.tools.doAjax({url:epg.config.fileFilterGenres,type:epg.config.sRPCMethod,data:{},dataType:"json",success:function(B){testBench({aspect:"Server_Genres",type:"stop"});
epg.xml.parseFilterGenres(B);
if(A){traceData(A);
A()
}}})
},getFilterChannels:function(B,C){traceData("epg.data.getFilterChannels");
testBench({aspect:"Server_Filter",type:"start"});
var A=function(){var D={genres:epg.filtering.filters[B].genres.join(","),time:C};
D=epg.tools.cookieToData(D);
epg.tools.doAjax({url:epg.config.fileFilterChannels,type:epg.config.sRPCMethod,data:D,dataType:"json",success:function(E){testBench({aspect:"Server_Filter",type:"stop"});
epg.xml.parseFilterChannels(E,B)
}})
};
if(epg.stateMachine.isAnyGrid()){epg.grid.addLoader(A)
}else{A()
}},getPlayState:function(D,B){var C="";
D=epg.date.nixToDate(D);
var A=new Date(D);
A.setTime(A.getTime()+(parseInt(B)*1000));
now=new Date();
now=new Date(Date.parse(now)+epg.date.iLocalTimeOffset);
if(now>=D&&now<=A){C="PLAYING_NOW"
}if(A<now){C="FINISHED"
}if(D>now){C="NOT_STARTED"
}return C
}};epg.grid={aLoadCache:[],currentChannel:false,currentGridItem:null,gridWithBubbleOffsetX:epg.config.grid.gridWithBubbleOffsetX,gridWithBubbleOffsetY:epg.config.grid.gridWithBubbleOffsetY,dragging:false,scrolling:false,bFoundFilterShow:false,bIsFirstFilterGridView:true,aFirstFilterShow:[],init:function(){traceGrid("init",arguments);
Event.observe($(epg.config.eSchedule),"mousedown",epg.grid.startScheduleDrag);
Event.observe($(epg.config.eChannels),"mousedown",epg.grid.startChannelDrag);
Event.observe($(epg.config.eTimeline),"mousedown",epg.grid.startScheduleDrag);
Event.observe(document,"mouseup",epg.grid.docMouseUp);
epg.grid.addLoader(function(){epg.grid.makeTimeBar()
});
Event.observe($("epg_scrollE"),"mousedown",epg.grid.scrollEast);
Event.observe($("epg_scrollE"),"mousedown",epg.grid.beginScroll);
Event.observe($("epg_scrollW"),"mousedown",epg.grid.scrollWest);
Event.observe($("epg_scrollW"),"mousedown",epg.grid.beginScroll);
Event.observe($("epg_scrollN"),"mousedown",epg.grid.scrollNorth);
Event.observe($("epg_scrollN"),"mousedown",epg.grid.beginScroll);
Event.observe($("epg_scrollS"),"mousedown",epg.grid.scrollSouth);
Event.observe($("epg_scrollS"),"mousedown",epg.grid.beginScroll);
Event.observe($("epg_scrollE"),"mouseout",epg.grid.cancelScroll);
Event.observe($("epg_scrollW"),"mouseout",epg.grid.cancelScroll);
Event.observe($("epg_scrollN"),"mouseout",epg.grid.cancelScroll);
Event.observe($("epg_scrollS"),"mouseout",epg.grid.cancelScroll);
Event.observe($("epg_scrollE"),"mouseup",epg.grid.cancelScroll);
Event.observe($("epg_scrollW"),"mouseup",epg.grid.cancelScroll);
Event.observe($("epg_scrollN"),"mouseup",epg.grid.cancelScroll);
Event.observe($("epg_scrollS"),"mouseup",epg.grid.cancelScroll);
epg.grid.initLoaded=true;
if(!epg.config.api.channels.categories.enabled){epg.config.iTabHeight=0
}Event.observe($(epg.config.eTimeline),"mousemove",epg.grid.getShowHover);
Event.observe($(epg.config.eTimeline),"mouseup",epg.grid.getShowClick);
Event.observe($(epg.config.eChannels),"mouseover",epg.grid.channelAction);
Event.observe($(epg.config.eChannels),"mouseup",epg.grid.getChannelClick);
Event.observe($(epg.config.eWrapper),"mouseover",epg.grid.showAction);
Event.observe($(epg.config.eWrapper),"mousedown",epg.grid.showAction);
Event.observe($(epg.config.eWrapper),"mouseup",epg.grid.getShowClick);
jQuery("#"+epg.config.eWrapper).css("cursor","url(images/common/cur/grab.cur), -moz-grab")
},channelAction:function(B){traceGrid("channelAction",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){var A=Event.element(B);
var C;
if(A.id){C=A.id.match(/channel_([0-9]{1,})/,"$1");
if(C&&C[1]){epg.grid.iChannelHoverId=parseInt(C[1],10)
}}else{if(A.parentNode.id){C=A.parentNode.id.match(/channel_([0-9]{1,})/,"$1");
if(C&&C[1]){epg.grid.iChannelHoverId=parseInt(C[1],10)
}}else{epg.grid.iChannelHoverId=undefined
}}}},getChannelClick:function(A){traceGrid("getChannelClick",arguments);
if(epg.grid.aLoaderStatus===false){epg.grid.addLoader(function(){if(epg.grid.dragging!==true&&epg.grid.scrolling!==true&&epg.grid.iChannelHoverId!==undefined){epg.grid.adding=true;
if(epg.config.general.enable_favourites){if(epg.data.favourites[epg.grid.iChannelHoverId]){epg.data.removeFavourite(epg.grid.iChannelHoverId)
}else{epg.data.addFavourite(epg.grid.iChannelHoverId)
}}epg.bubble.closeBubble()
}})
}},docMouseUp:function(A){traceGrid("docMouseUp",arguments);
epg.grid.stopDrag();
jQuery("#"+epg.config.eWrapper).css("cursor","url(images/common/cur/grab.cur), -moz-grab");
Event.stopObserving(document,"mousemove",epg.grid.trackChannelDrag);
Event.stopObserving(document,"mousemove",epg.grid.trackScheduleDrag);
Event.stopObserving(document,"mousemove",epg.grid.trackTimelineDrag);
document.onselectstart=null
},showAction:function(F,E){traceGrid("showAction",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){var B=Event.element(F);
var A=B.tagName;
if(A!=="DIV"){B=B.parentNode
}var D=B.className.match(/nextDay/);
if(B&&B.id&&B!=document&&!D){var H=B.id.match(/([a-z]{1,})_([0-9]{1,})_([0-9]{1,})/,"$1");
if(H!==null&&epg.grid.iShowHoverId===undefined){epg.grid.iShowHoverId=[H[1],H[2],H[3]]
}if(H!==null&&document.getElementById(H[1]+"_"+H[2]+"_"+H[3])){if(epg.grid.iShowHoverId&&document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2])){$(document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2])).removeClassName("hover")
}$(H[1]+"_"+H[2]+"_"+H[3]).addClassName("hover");
if(epg.data.grid[epg.date.currentDay]&&epg.data.grid[epg.date.currentDay][H[2]]){var G=epg.data.grid[epg.date.currentDay][H[2]][H[3]];
var C=(G.dur/60);
if(epg.config.general.infoPane_trigger==0||E){epg.ui.infoPane.displayInfo(G.title,epg.date.timeSTR(G.start),Math.round(C)+"min",G.shortDesc,epg.data.channels[G.channelid].title,true,G)
}epg.grid.iShowHoverId=[H[1],H[2],H[3]]
}}}else{if(D&&B.hasNextDay===undefined){if(epg.config.general.infoPane_trigger==0){Event.observe($(B),"mousemove",epg.grid.getShowHover)
}B.hasNextDay=true
}}}},getShowClick:function(A){traceGrid("getShowClick",arguments);
if(epg.config.general.infoPane_trigger==1){epg.grid.showAction(A,true)
}if(epg.grid.dragging!==true&&epg.grid.scrolling!==true&&epg.config.api.bubble.enabled&&epg.grid.iShowHoverId&&document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2])&&!epg.bubble.properties.bubbleOver){jQuery("#epg_info_text img.rating").fadeOut();
if(epg.data.grid[epg.date.currentDay]&&epg.data.grid[epg.date.currentDay][epg.grid.iShowHoverId[1]][epg.grid.iShowHoverId[2]]){var I=epg.data.grid[epg.date.currentDay][epg.grid.iShowHoverId[1]][epg.grid.iShowHoverId[2]];
if(I.title.substring(0,2)===".."){var M=epg.data.grid[epg.date.currentDay][epg.grid.iShowHoverId[1]];
var E=0;
var B;
for(kShow in M){if(M[kShow].start>epg.data.grid[epg.date.currentDay][epg.grid.iShowHoverId[1]][epg.grid.iShowHoverId[2]].start){if(M[kShow].start<E||E===0){if(M[kShow].title.substring(0,2)!==".."){B=M[kShow];
E=M[kShow].start;
break
}}}}if(E===0){var D=I.title.match(/am$/)?true:false;
var C=I.title.match(/([0-9]{1,2})\.([0-9]{2})[apm]{2}$/);
var N=0;
if(D===true){N=epg.date.dateToNix(epg.date.epgDate(epg.date.currentDay+1))+(C[1]*60*60*1000)+(C[2]*60*1000)
}else{N=epg.date.dateToNix(epg.date.epgDate(epg.date.currentDay+1))+((C[1]+12)*60*60*1000)+(C[2]*60*1000)
}epg.data.getGrid([epg.grid.iShowHoverId[1]],epg.date.nixToEpg(N),function(R,O){var Q=0;
for(kShow in R){if(R[kShow].start<Q||Q===0){if(R[kShow].title.substring(0,2)!==".."){var P=R[kShow].eventid;
break
}}}epg.grid.gotoEvent(P,O,N,true)
})
}else{epg.grid.gotoEvent(B.eventid,B.channelid,E,true)
}}else{var G=document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2]);
var J=epg.date.epgDateNix(epg.date.currentDay);
var K=epg.date.epgDateNix(epg.date.currentDay+1);
var H=G.offsetLeft;
var F=G.parentNode.offsetTop+G.parentNode.parentNode.offsetTop;
var L=epg.grid.transBubblePosition([H,F]);
jQuery("#gridSchedule .channel .highlighted").removeClass("highlighted");
jQuery(G).addClass("highlighted");
epg.grid.scrollTo(L[0]+epg.grid.gridWithBubbleOffsetX,L[1]-$(epg.config.eTimeline).clientHeight+epg.grid.gridWithBubbleOffsetY,1);
epg.bubble.closeBubble();
epg.bubble.newBubble(L,"vertical",epg.grid.iShowHoverId[2],epg.grid.iShowHoverId[1])
}}}},hoverTimeout:null,getShowHover:function(R){traceGrid("getShowHover",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true&&epg.grid.hoverTimeout===null){function N(X,V,U){var W=X?X:0;
if(V&&(!W||(W>V))){W=V
}return U&&(!W||(W>U))?U:W
}function L(){return N(window.pageXOffset?window.pageXOffset:0,document.documentElement?document.documentElement.scrollLeft:0,document.body?document.body.scrollLeft:0)
}function J(){return N(window.pageYOffset?window.pageYOffset:0,document.documentElement?document.documentElement.scrollTop:0,document.body?document.body.scrollTop:0)
}epg.grid.hoverTimeout=true;
var T=epg.data.epggenre;
var H;
var Q=epg.data.grid;
var G=epg.date.currentDay;
var M;
var C;
var B;
var P=false;
var K=$(epg.config.eSchedule).scrollLeft;
var F=$(epg.config.eSchedule).scrollTop;
var D=$(epg.config.eSchedule).scrollLeft+$(epg.config.eSchedule).clientWidth;
if(epg.stateMachine.isextendedGrid()){iItemHeight=epg.config.iExtendedHeight
}else{if(!epg.stateMachine.isextendedGrid()){iItemHeight=epg.config.iGridHeight
}}var I=Event.pointerY(R);
var E=Event.pointerX(R);
var A=$(epg.config.eSchedule).viewportOffset();
A[0]=E-A[0]-L();
A[1]=I-A[1]-J();
for(keyGenre in T){if(P===false&&T[keyGenre].epgTop<=A[1]&&(T[keyGenre].epgTop+$("genreKey"+keyGenre).clientHeight)>=A[1]){if(keyGenre==="fave"){H=epg.data.favourites;
B="favourite"
}else{if(keyGenre==="all"){H=epg.data.filtered;
B="filter"
}else{H=epg.data.channels;
B="grid"
}}for(iChannel in H){if(P===false&&H[iChannel].epggenre===T[keyGenre].genreid&&A[1]>=(T[keyGenre].epgTop+H[iChannel].epgTop)&&A[1]<=((T[keyGenre].epgTop+H[iChannel].epgTop)+iItemHeight)){M=Q[G][iChannel];
for(iGridShow in M){if(A[0]<=(M[iGridShow].epgLeft+M[iGridShow].epgWidth)&&A[0]>=M[iGridShow].epgLeft){if(epg.grid.iShowHoverId===undefined){epg.grid.iShowHoverId=[B,iChannel,iGridShow]
}if(document.getElementById(B+"_"+iChannel+"_"+iGridShow)&&(epg.grid.iShowHoverId[0]!==B||epg.grid.iShowHoverId[1]!==iChannel||epg.grid.iShowHoverId[2]!==iGridShow)){if(epg.grid.iShowHoverId&&document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2])){$(document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2])).removeClassName("hover")
}$(B+"_"+iChannel+"_"+iGridShow).addClassName("hover");
var S=epg.data.grid[epg.date.currentDay][iChannel][iGridShow];
var O=(S.dur/60);
if(epg.config.general.infoPane_trigger==0){epg.ui.infoPane.displayInfo(S.title,epg.date.timeSTR(S.start),Math.round(O)+"min",S.shortDesc,false,S)
}epg.grid.iShowHoverId=[B,iChannel,iGridShow]
}P=true
}}}}}}}else{if(epg.grid.hoverTimeout===true){epg.grid.hoverTimeout=false;
setTimeout(function(){epg.grid.hoverTimeout=null
},50)
}}},startScheduleDrag:function(A){traceGrid("startScheduleDrag",arguments);
jQuery(epg.config.eTimeline).stop();
jQuery(epg.config.eSchedule).stop();
jQuery(epg.config.eChannels).stop();
jQuery("#"+epg.config.eWrapper).css("cursor","url(images/common/cur/grabbing.cur), -moz-grabbing");
if(epg.bubble.properties.bubbleOver!=1){var B=$(epg.config.eSchedule);
document.onselectstart=epg.grid.cancelSelect;
B.iStartX=Event.pointerX(A);
B.iStartY=Event.pointerY(A);
B.iStartScrollX=B.scrollLeft;
B.iStartScrollY=B.scrollTop;
Event.observe(document,"mousemove",epg.grid.trackScheduleDrag)
}},startChannelDrag:function(A){traceGrid("startChannelDrag",arguments);
jQuery(epg.config.eTimeline).stop();
jQuery(epg.config.eSchedule).stop();
jQuery(epg.config.eChannels).stop();
var B=$(epg.config.eSchedule);
document.onselectstart=epg.grid.cancelSelect;
B.iStartY=Event.pointerY(A);
B.iStartScrollY=B.scrollTop;
Event.observe(document,"mousemove",epg.grid.trackChannelDrag)
},trackScheduleDrag:function(C){traceGrid("trackScheduleDrag",arguments);
var D=document.getElementById(epg.config.eSchedule);
if(D.iStartX==Event.pointerX(C)&&D.iStartY==Event.pointerY(C)){return false
}var A=D.iStartScrollX+(D.iStartX-Event.pointerX(C));
var B=D.iStartScrollY+(D.iStartY-Event.pointerY(C));
epg.grid.dragging=true;
D.scrollLeft=A;
D.scrollTop=B;
document.getElementById(epg.config.eTimeline).scrollLeft=A;
document.getElementById(epg.config.eChannels).scrollTop=B
},stopDrag:function(B){traceGrid("stopDrag",arguments);
if(epg.grid.dragging===true){epg.grid.setGridMicroTime();
var A=epg.grid.gridMicroTime();
epg.date.setCurrentTime(epg.date.nixToDate(epg.date.epgDateNix(epg.date.currentDay)+A),"stopDrag");
traceCurrentTime(9);
Event.stopObserving($(epg.config.eSchedule),"mousemove",epg.grid.trackScheduleDrag);
Event.stopObserving($(epg.config.eChannels),"mousemove",epg.grid.trackChannelDrag);
Event.stopObserving($(epg.config.eTimeline),"mousemove",epg.grid.trackTimelineDrag);
epg.grid.triggerNextDay(A);
epg.grid.dragging=false;
epg.grid.hitboxPageChangeTest()
}},currentPage:0,pageWidth:300,hitboxPageChangeTest:function(){if(epg.stateMachine.isAnyGrid()){epg.grid.getUpdate();
var B=$(epg.config.eSchedule);
var A=Math.round(Math.abs(B.scrollLeft)/epg.grid.pageWidth)+Math.round(Math.abs(B.scrollTop)/epg.grid.pageWidth);
if(A!==epg.grid.currentPage){epg.hitbox.send("datadrag")
}epg.grid.currentPage=A
}},cancelScroll:function(){traceGrid("cancelScroll",arguments);
jQuery(".epg_scrollButton").css("opacity",1);
epg.grid.scrollDistance=1;
epg.grid.setGridMicroTime();
clearTimeout(epg.grid.timerScroll);
if(epg.grid.scrolling===true){var A=epg.grid.gridMicroTime();
epg.date.setCurrentTime(epg.date.nixToDate(epg.date.epgDateNix(epg.date.currentDay)+A),"cancel");
traceCurrentTime(8);
epg.grid.triggerNextDay(A);
epg.grid.scrolling=false;
epg.grid.getUpdate();
epg.grid.hitboxPageChangeTest()
}return false
},timerScroll:null,scrollDistance:1,beginScroll:function(){epg.grid.scrolling=true
},scrollNorth:function(){traceGrid("scrollNorth",arguments);
$(epg.config.eSchedule).scrollTop+=epg.grid.scrollDistance;
$(epg.config.eChannels).scrollTop+=epg.grid.scrollDistance;
clearTimeout(epg.grid.timerScroll);
epg.grid.timerScroll=setTimeout(epg.grid.scrollNorth,1000/epg.config.animation_frameRate);
if(epg.grid.scrollDistance<40){jQuery("#epg_scrollN").css("opacity",0.5);
epg.grid.scrollDistance=epg.grid.scrollDistance+1
}return false
},scrollSouth:function(){traceGrid("scrollSouth",arguments);
$(epg.config.eSchedule).scrollTop-=epg.grid.scrollDistance;
$(epg.config.eChannels).scrollTop-=epg.grid.scrollDistance;
clearTimeout(epg.grid.timerScroll);
epg.grid.timerScroll=setTimeout(epg.grid.scrollSouth,1000/epg.config.animation_frameRate);
if(epg.grid.scrollDistance<40){jQuery("#epg_scrollS").css("opacity",0.5);
epg.grid.scrollDistance=epg.grid.scrollDistance+1
}return false
},scrollEast:function(){traceGrid("scrollEast",arguments);
$(epg.config.eSchedule).scrollLeft-=epg.grid.scrollDistance;
$(epg.config.eTimeline).scrollLeft-=epg.grid.scrollDistance;
clearTimeout(epg.grid.timerScroll);
epg.grid.timerScroll=setTimeout(epg.grid.scrollEast,1000/epg.config.animation_frameRate);
if(epg.grid.scrollDistance<40){jQuery("#epg_scrollE").css("opacity",0.5);
epg.grid.scrollDistance=epg.grid.scrollDistance+1
}return false
},scrollWest:function(){traceGrid("scrollWest",arguments);
$(epg.config.eSchedule).scrollLeft+=epg.grid.scrollDistance;
$(epg.config.eTimeline).scrollLeft+=epg.grid.scrollDistance;
clearTimeout(epg.grid.timerScroll);
epg.grid.timerScroll=setTimeout(epg.grid.scrollWest,1000/epg.config.animation_frameRate);
if(epg.grid.scrollDistance<40){jQuery("#epg_scrollW").css("opacity",0.5);
epg.grid.scrollDistance=epg.grid.scrollDistance+1
}return false
},trackChannelDrag:function(B){traceGrid("trackChannelDrag",arguments);
var A=$(epg.config.eSchedule).iStartScrollY+($(epg.config.eSchedule).iStartY-Event.pointerY(B));
epg.grid.dragging=true;
$(epg.config.eSchedule).scrollTop=A;
$(epg.config.eChannels).scrollTop=A
},startTimelineDrag:function(A){traceGrid("startTimelineDrag",arguments);
var B=$(epg.config.eSchedule);
document.onselectstart=epg.grid.cancelSelect;
B.iStartX=Event.pointerX(A);
B.iStartScrollX=B.scrollLeft;
Event.observe(document,"mousemove",epg.grid.trackTimelineDrag)
},trackTimelineDrag:function(B){traceGrid("trackTimelineDrag",arguments);
var A=$(epg.config.eSchedule).iStartScrollX+($(epg.config.eSchedule).iStartX-Event.pointerX(B));
epg.grid.dragging=true;
$(epg.config.eSchedule).scrollLeft=A;
$(epg.config.eTimeline).scrollLeft=A
},cancelSelect:function(A){return false
},gotoDay:function(A){traceGrid("gotoDay",arguments);
epg.grid.gotoTime(epg.date.epgDateNix(epg.date.nixToEpg(A))+epg.grid.gridMicroTime())
},gotoTime:function(G){traceGrid("gotoTime",arguments);
var E=epg.date.nixToEpg(G);
var D;
if(epg.date.currentDay!==E){var B=epg.data.channels;
var F=epg.data.promos;
var C=epg.date.currentDay;
epg.date.currentDay=E;
D=(-(((epg.date.epgDateNix(E)+epg.grid.gridMicroTime())-G)*(epg.config.iChannelWidth/(24*60*60*1000))));
epg.grid.scrollTo($(epg.config.eSchedule).scrollLeft+D,false,2);
var A=epg.date.nixToDate(G);
epg.date.setCurrentTime(A.getTime(),"gotoTime");
traceCurrentTime(7);
epg.bubble.closeBubble();
return D
}else{D=(-(((epg.date.epgDateNix(E)+epg.grid.gridMicroTime())-G)*(epg.config.iChannelWidth/(24*60*60*1000))));
epg.grid.scrollTo($(epg.config.eSchedule).scrollLeft+D,false,2);
return D
}},gridMicroTime:function(){traceGrid("gridMicroTime",arguments);
return epg.grid.setGridMicroTime()
},setGridMicroTime:function(){traceGrid("setGridMicroTime",arguments);
epg.grid.iScrollLeft=$(epg.config.eSchedule).scrollLeft;
epg.grid.iScrollRight=epg.grid.iScrollLeft+$(epg.config.eSchedule).clientWidth;
var A=(epg.grid.iScrollLeft/epg.config.iChannelWidth)*(24*60*60*1000);
if(A>=(24*60*60*1000)){A=(24*60*59*1000)
}epg.grid.microTime=A;
return A
},microToPixel:function(A){traceGrid("microToPixel",arguments);
return(epg.config.iChannelWidth/(24*60*60*1000))*A
},gotoChannel:function(A){traceGrid("gotoChannel",arguments);
epg.grid.scrollTo(false,epg.grid.channelPosition(A)-40,2)
},gotoEvent:function(H,G,C,K){traceGrid("gotoEvent",arguments);
var E=epg.date.nixToEpg(C);
var A=$(epg.config.eSchedule).clientWidth;
if(epg.date.currentDay!==E){epg.date.currentDay=E;
epg.grid.setChannelHeight();
var J=epg.date.nixToDate(C);
epg.date.setCurrentTime(J.getTime(),"gotoEvent");
traceCurrentTime(6)
}epg.grid.currGridItem="#grid_"+G+"_"+H;
var B="#grid_"+G+"_"+H;
var D=epg.grid.eventPosition(H,G,C);
var F=epg.grid.transBubblePosition(D);
var I=0;
if(K){epg.grid.scrollTo(F[0]+epg.grid.gridWithBubbleOffsetX,F[1]-$(epg.config.eTimeline).clientHeight+epg.grid.gridWithBubbleOffsetY,2,null,function(){jQuery("#gridSchedule .channel .highlighted").removeClass("highlighted");
jQuery(B).addClass("highlighted")
});
epg.bubble.newBubble(F,"vertical",H,G)
}else{epg.grid.scrollTo(F[0],F[1]-$(epg.config.eTimeline).clientHeight-10,2,null,function(){jQuery("#gridSchedule .channel .highlighted").removeClass("highlighted");
jQuery(B).addClass("highlighted")
})
}},eventPosition:function(D,B,E){traceGrid("eventPosition",arguments);
var C=epg.date.nixToEpg(E);
var A=epg.grid.microToPixel(E-epg.date.epgDateNix(C));
return[A,epg.grid.channelPosition(B)]
},transBubblePosition:function(A){traceGrid("transBubblePosition",arguments);
iBubbleXOffset=epg.config.bubble.iBubbleXOffset===undefined?-230:epg.config.bubble.iBubbleXOffset;
iBubbleYOffset=epg.config.bubble.iBubbleYOffset===undefined?-35:epg.config.bubble.iBubbleYOffset;
var B=0;
if(epg.stateMachine.isSearch()){B=30
}if((A[0]-B)<iBubbleXOffset){A[0]=iBubbleXOffset
}else{A[0]=A[0]-B
}if(epg.config.grid.timelineInsideGrid){if(A[1]<($(epg.config.eTimeline).clientHeight)){A[1]=$(epg.config.eTimeline).clientHeight
}}return A
},channelPosition:function(A){traceGrid("channelPosition",arguments);
if(epg.stateMachine.isFilter()){if(epg.config.general.enable_favourites&&epg.data.favourites[A]!==undefined){return epg.data.favourites[A].epgTop+epg.data.epggenre.fave.epgTop
}else{if(epg.data.filtered[A]){return epg.data.filtered[A].epgTop+epg.data.epggenre[epg.data.filtered[A].epggenre].epgTop
}}}else{if(epg.data.channels[A]){if(epg.config.general.enable_favourites&&epg.data.favourites[A]!==undefined){return epg.data.favourites[A].epgTop+epg.data.epggenre.fave.epgTop
}else{return epg.data.channels[A].epgTop+epg.data.epggenre[epg.data.channels[A].epggenre].epgTop
}}}},scrollTo:function(G,E,H,J,D){traceGrid("scrollTo",arguments);
var F=$(epg.config.eSchedule).scrollLeft;
var I=$(epg.config.eSchedule).scrollTop;
var A=$(epg.config.eSchedule).clientWidth;
var B=epg.config.iChannelWidth+(epg.config.iChannelWidth/24*4);
if(G>(B-A)){G=(B-A)
}else{if(G<0){G=0
}}if(E===false&&G!==false&&F===G){epg.grid.scrolling=false;
epg.grid.setChannelHeight();
epg.grid.getUpdate()
}else{if((E!==false&&I===E)&&((G==0)||(G!==false&&F===G))){epg.grid.scrolling=false;
epg.grid.setChannelHeight();
epg.grid.getUpdate()
}else{var C={};
if(G!==false&&F!==G){C.scrollLeft=G
}if(E!==false&&I!==E){C.scrollTop=E
}jQuery("#"+epg.config.eSchedule+", #"+epg.config.eTimeline+", #"+epg.config.eChannels).animate(C,(H*1000),"swing",function(K){epg.grid.setGridMicroTime();
epg.grid.scrolling=false;
epg.grid.setChannelHeight();
epg.grid.getUpdate();
epg.date.setCurrentTime(epg.date.nixToDate(epg.date.epgDateNix(epg.date.currentDay)+epg.grid.gridMicroTime()),"scrollTo");
traceCurrentTime(5);
epg.grid.triggerNextDay();
epg.search.lockGotoEvent=false
});
epg.grid.scrolling=true
}}},jumpTo:function(C,B,D,A){traceGrid("jumpTo",arguments);
if(C){$(epg.config.eSchedule).scrollLeft=C;
$(epg.config.eTimeline).scrollLeft=C;
epg.grid.setGridMicroTime();
epg.date.setCurrentTime(epg.date.nixToDate(epg.date.epgDateNix(epg.date.currentDay)+epg.grid.gridMicroTime()),"jumpTo");
traceCurrentTime(4)
}if(B||B==0){$(epg.config.eSchedule).scrollTop=B;
$(epg.config.eChannels).scrollTop=B
}if(D===undefined||D===null){epg.grid.getUpdate(A)
}},jumpToTime:function(H,B){traceGrid("jumpToTime",arguments);
var F=epg.date.nixToEpg(H);
var E;
if(epg.date.currentDay!==F){var C=epg.data.channels;
var G=epg.data.promos;
var D=epg.date.currentDay;
epg.date.currentDay=F;
E=(-(((epg.date.epgDateNix(F)+epg.grid.gridMicroTime())-H)*(epg.config.iChannelWidth/(24*60*60*1000))));
epg.grid.setChannelHeight();
epg.grid.jumpTo($(epg.config.eSchedule).scrollLeft+E,null,null,false);
if(E===0){epg.grid.getUpdate(B)
}var A=epg.date.nixToDate(H);
epg.date.setCurrentTime(A.getTime(),"jumpToTime");
traceCurrentTime(3);
epg.bubble.closeBubble();
return E
}else{E=(-(((epg.date.epgDateNix(F)+epg.grid.gridMicroTime())-H)*(epg.config.iChannelWidth/(24*60*60*1000))));
epg.grid.jumpTo($(epg.config.eSchedule).scrollLeft+E,false,null,B);
return E
}},makeTimeBar:function(){traceGrid("makeTimeBar",arguments);
var A='<div class="epg_listRowTime_header"style="position:absolute;left:XXXleftXXX;width:XXXwidthXXX"><div class="epg_channelTime"><span>XXXtimeXXX</span></div></div>';
var C=(epg.config.iChannelWidth/24);
var F,E="",D=new Date();
D.setMinutes(0);
for(var B=0;
B<28;
B++){F=(C*B)+(C/2)+26+"px";
D.setHours(B);
E+=(A.replace(/XXXtimeXXX/,epg.date.timeSTR(D.getTime())).replace(/XXXleftXXX/,F).replace(/XXXwidthXXX/,(C-20)+"px"))
}$(epg.config.eTimeline).innerHTML=E;
$(epg.config.eTimeline).scrollLeft=$(epg.config.eSchedule).scrollLeft
},setGridClass:function(){traceGrid("setGridClass",arguments);
if(epg.stateMachine.isextendedGrid()){Element.addClassName($(epg.config.eWrapper),epg.config.extendedGrid);
Element.addClassName($(epg.config.eChannels),epg.config.sExtendedGridChannelsCSS)
}else{if(!epg.stateMachine.isextendedGrid()){Element.removeClassName($(epg.config.eWrapper),epg.config.extendedGrid);
Element.removeClassName($(epg.config.eChannels),epg.config.sExtendedGridChannelsCSS)
}}},makeGenres:function(){traceGrid("makeGenres",arguments);
var D=epg.data.epggenre;
var C=epg.config.iTabHeight;
var F=epg.config.iChannelWidth+(epg.config.iChannelWidth/24*4);
var A;
var B="";
var E="";
if(C-1<0){A=0
}else{A=C-1
}if(epg.stateMachine.isFilter()){for(kEpggenre in D){B+='<div class="genre" id="genreKey'+kEpggenre+'"><div class="showHide" style="height:'+A+'px;"><span class="label">'+D[kEpggenre].name+"</span></div></div>";
E+='<div class="genre" id="genre'+kEpggenre+'" style="width:'+F+'px;"><div class="showHide" style="width:'+F+"px;height:"+A+'px;"></div></div>'
}}else{for(kEpggenre in D){B+='<div class="genre" id="genreKey'+kEpggenre+'"><div class="showHide" onmouseup="epg.grid.genreAccordion(\''+kEpggenre+'\',this);" style="height:'+A+'px;"><span class="label">'+D[kEpggenre].name+"</span></div></div>";
E+='<div class="genre" id="genre'+kEpggenre+'" style="width:'+F+'px;"><div class="showHide" style="width:'+F+"px;height:"+A+'px;"></div></div>'
}}paddingBottom=epg.config.grid.paddingBottom;
if(jQuery.browser.msie){paddingBottom+=15
}$(epg.config.eChannels).innerHTML=B+'<div style="height: '+paddingBottom+'px;">&nbsp;</div>';
$(epg.config.eWrapper).innerHTML=E+'<div style="height: '+paddingBottom+'px;">&nbsp;</div>';
for(kEpggenre in D){D[kEpggenre].genreKey=$("genreKey"+kEpggenre);
D[kEpggenre].genre=$("genre"+kEpggenre)
}},setupFiltering:function(){traceGrid("setupFiltering",arguments);
var A=epg.data.channels;
var D=epg.data.filtered;
if(epg.stateMachine.isFilter()){$(epg.config.eSchedule).addClassName("filtered");
epg.grid.currentChannel=false;
delete epg.data.filtered;
epg.data.filtered={};
var B=epg.filtering.filters[epg.filtering.current_filter].channels;
try{B=B.sortBy(function(E){return parseInt(epg.data.channels[E].channelno,10)
})
}catch(C){}if(B&&B.length){for(kFilter=0;
kFilter<B.length;
kFilter++){if(A[B[kFilter]]){epg.data.filtered[B[kFilter]]=Object.clone(A[B[kFilter]]);
epg.data.filtered[B[kFilter]].epggenre="all";
epg.grid.stripChannel(epg.data.filtered[B[kFilter]])
}}}}else{$(epg.config.eSchedule).removeClassName("filtered");
for(kFilter in D){epg.grid.removeChannel(D[kFilter]);
delete D[kFilter]
}}},setInitView:function(){traceGrid("setInitView",arguments);
var A=epg.config.deepLinking.checkDeepLink(true);
var B;
if(A===false){if(epg.stateMachine.bubble===1){if(epg.data.grid[epg.date.currentDay]&&epg.data.grid[epg.date.currentDay][epg.bubble.properties.iChannel]){B=epg.grid.channelPosition(epg.bubble.properties.iChannel);
epg.grid.jumpTo(false,B-$(epg.config.eTimeline).clientHeight-10,null,true);
epg.grid.jumpToTime(epg.date.dateToNix(epg.date.currentTime),true)
}else{epg.grid.jumpToTime(epg.date.dateToNix(epg.date.currentTime),true)
}}else{if(epg.grid.currentChannel!==false&&epg.data.channelnoMap[epg.grid.currentChannel]){B=epg.grid.channelPosition(epg.data.channelnoMap[epg.grid.currentChannel]);
epg.grid.jumpTo(false,B,null,true);
epg.grid.jumpToTime(epg.date.dateToNix(epg.date.currentTime),true)
}else{$(epg.config.eSchedule).scrollTop=0;
$(epg.config.eChannels).scrollTop=0;
epg.grid.jumpToTime(epg.date.dateToNix(epg.date.currentTime),true)
}}}else{epg.data.getProgram(A[0],A[1],epg.date.currentDay,epg.config.deepLinking.getProgramStartTime)
}},makeKey:function(){traceGrid("makeKey",arguments);
epg.grid.setGridClass();
epg.grid.makeGenres();
epg.grid.setupFiltering();
epg.grid.setChannelHeight();
if(epg.stateMachine.bubble===1){$("epg_bubble").style.top=epg.grid.channelPosition(epg.bubble.properties.iChannel)+epg.bubble.properties.iBubbleYOffset+"px"
}epg.grid.setInitView();
epg.grid.getUpdate()
},genreAccordion:function(C,A){traceGrid("genreAccordion",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){var D=epg.data.epggenre;
var B=epg.config.iTabHeight;
$("genre"+C).genreId=C;
epg.bubble.closeBubble();
if(D[C].hidden===undefined||D[C].hidden===false){D[C].epgHeight=$(A.parentNode).getHeight();
$(A.parentNode.childNodes[0]).addClassName("showHideOpen");
jQuery("#genre"+C+", #genreKey"+C).animate({height:B},500,"swing",function(){epg.data.epggenre[C].hidden=true;
epg.grid.scrolling=false;
epg.grid.setChannelHeight();
epg.grid.getUpdate()
});
D[C].hidden=true
}else{if(D[C].hidden===true){$(A.parentNode.childNodes[0]).removeClassName("showHideOpen");
epg.grid.scrolling=true;
jQuery("#genre"+C+", #genreKey"+C).animate({height:D[C].epgHeight},500,"swing");
jQuery("#"+epg.config.eSchedule+", #"+epg.config.eChannels).animate({scrollTop:D[C].genre.offsetTop},1000,"swing",function(){epg.data.epggenre[C].hidden=false;
epg.grid.scrolling=false;
epg.grid.setChannelHeight();
epg.grid.getUpdate()
})
}}}},createChannelKeyPromo:function(F,A,E){traceGrid("createChannelKeyPromo",arguments);
var D=document.createElement("DIV");
D.className="promo";
D.style.top=E+"px";
var C=document.createElement("SPAN");
C.innerHTML='<span class="hide">Hide Promo <img src="'+epg.config.constants.editableIMGurl+'/skin/icons/gif/close.gif" style="width:12px;height:12px;" /></span>';
C.className="label hide";
C.channelID=F.channelid;
var B=document.createElement("SPAN");
B.className=" label";
B.innerHTML="<br/>"+F.title+", "+epg.date.timeSTR(F.start)+" on "+epg.data.channels[F.channelid].title;
B.channelID=F.channelid;
B.eventID=F.eventid;
B.eventStart=F.start;
Event.observe(B,"mouseup",function(G){if(!epg.grid.dragging){epg.promo.action(G,true,F)
}});
Event.observe(C,"mouseup",function(G){if(!epg.grid.dragging){epg.data.promos[epg.date.currentDay][this.channelID].hidden=true;
try{$(epg.data.channels[this.channelID].promo).hide();
$(epg.data.channels[this.channelID].promoKey).hide()
}catch(H){$(epg.data.filtered[this.channelID].promo).hide();
$(epg.data.filtered[this.channelID].promoKey).hide()
}epg.grid.setChannelHeight();
epg.grid.getUpdate()
}});
D.appendChild(C);
D.appendChild(B);
A.appendChild(D);
return D
},createChannelPromo:function(E,B,D){traceGrid("createChannelPromo",arguments);
var C=epg.config.iChannelWidth+(epg.config.iChannelWidth/24*4);
var A=document.createElement("DIV");
A.className="promo";
A.style.width=C+"px";
A.style.backgroundImage="url("+E.promo+")";
A.style.top=D+"px";
A.channelID=E.channelid;
A.eventID=E.eventid;
A.eventStart=E.start;
Event.observe(A,"mouseup",epg.grid.promoMouseUp);
if(B&&A){B.appendChild(A);
return A
}},promoMouseUp:function(B){traceGrid("promoMouseUp",arguments);
if(epg.grid.dragging!==true){if(epg.grid.iShowHoverId&&document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2])){$(document.getElementById(epg.grid.iShowHoverId[0]+"_"+epg.grid.iShowHoverId[1]+"_"+epg.grid.iShowHoverId[2])).removeClassName("hover")
}epg.grid.iShowHoverId=undefined;
var A=Event.element(B);
if(A.channelID){epg.promo.action(B,true,epg.data.promos[epg.date.currentDay][A.channelID])
}}},createChannelKey:function(F,C,H){traceGrid("createChannelKey",arguments);
var J=epg.data.epggenre;
var M=$(epg.config.eChannels);
var L=$(epg.config.eWrapper);
var G=epg.date.nixToEpg;
var I=epg.data.favourites;
var K;
if(epg.stateMachine.isextendedGrid()){K=epg.config.iExtendedHeight
}else{if(!epg.stateMachine.isextendedGrid()){K=epg.config.iGridHeight
}}var D=epg.config.iTabHeight;
var E=epg.config.iChannelWidth+(epg.config.iChannelWidth/24*4);
var B=document.createElement("DIV");
if(epg.data.favourites[F.channelid]!==undefined&&F.channelno){B.className="channel";
if(epg.config.general.enable_favourites){B.className+=" fav"
}else{B.className+=" channelNoFav"
}}else{if(F.channelno){if(epg.config.general.enable_favourites){B.className="channel"
}else{B.className="channel channelNoFav"
}}else{B.className="special channel"
}}B.channelID=F.channelid;
B.style.top=H+"px";
B.id="channel_"+F.channelid;
if(epg.config.grid.watchliveHtml!=""&&F.liveonskyplayer==="true"&&!epg.stateMachine.isextendedGrid()){jQuery(B).append(epg.config.grid.watchliveHtml.replace(/##CHANNELID##/,F.channelid).replace(/##CHANNEL##/,F.title));
jQuery(B).find(".awatchlive:last").click(function(){epg.tools.popwin(this.href);
epg.hitbox.send("skyplayerlivetv");
return false
})
}var A=document.createElement("SPAN");
if(F.channelno){A.innerHTML="<span>"+F.channelno+"</span> "+(epg.stateMachine.isextendedGrid()&&!epg.config.grid.enable_detailed_grid_channel_titles?"":F.title)
}else{A.innerHTML="<span></span> "+(epg.stateMachine.isextendedGrid()&&!epg.config.grid.enable_detailed_grid_channel_titles?"":F.title)
}A.className="label";
if(epg.stateMachine.isextendedGrid()&&F.channelno){if(I[F.channelid]||epg.config.general.enable_colour_icons_by_default){A.style.backgroundImage="url("+epg.config.constants.colourLogoPath+"/channel_"+F.channelid+".gif)"
}else{A.style.backgroundImage="url("+epg.config.constants.monoLogoPath+"/channel_"+F.channelid+".gif)"
}}if(epg.config.grid.enableChannelClick){$channelKey=jQuery(B);
$channelKey.attr("title","Watch Now").addClass("hoverable");
$channelKey.hover(function(){jQuery(this).addClass("hover")
},function(){jQuery(this).removeClass("hover")
});
$channelKey.click(function(){parent.ChangeChannel(null,F.channelid)
})
}B.appendChild(A);
if(epg.config.grid.extendedGridWatchliveHtml!=""&&epg.data.channels[F.channelid]&&epg.data.channels[F.channelid].liveonskyplayer==="true"&&epg.stateMachine.isextendedGrid()){jQuery(B).append(epg.config.grid.extendedGridWatchliveHtml.replace(/##CHANNELID##/,F.channelid).replace(/##CHANNEL##/,F.title));
jQuery(B).find(".awatchlive:last").click(function(){epg.hitbox.send("skyplayerlivetv");
epg.tools.popwin(this.href);
return false
})
}if(B&&C){C.appendChild(B);
return B
}},addRemoveFaveMouseUp:function(){traceGrid("addRemoveFaveMouseUp",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){if(epg.data.favourites[this.channelID]){epg.data.removeFavourite(this.channelID)
}else{epg.data.addFavourite(this.channelID)
}epg.bubble.closeBubble()
}},createChannel:function(C,A,D,E){traceGrid("createChannel",arguments);
var F=epg.data.epggenre;
var I=$(epg.config.eChannels);
var G=$(epg.config.eWrapper);
var J=epg.config.iBannerHeight;
var B=epg.config.iChannelWidth+(epg.config.iChannelWidth/24*4);
var H=document.createElement("DIV");
H.className="channel";
if(E){H.className+=" odd"
}H.style.width=B+"px";
H.style.top=D+"px";
if(H&&A){A.appendChild(H);
return H
}},setChannelHeight:function(){traceGrid("setChannelHeight",arguments);
if(epg.stateMachine.isAnyGrid()){var N=epg.data.channels;
var B=epg.data.epggenre;
var D=0;
var R=epg.data.promos;
var Q=epg.date.nixToEpg;
var J=epg.date.currentDay;
var S=epg.config.iBannerHeight;
var A;
var F={};
var M=epg.config.iTabHeight;
var O;
var P;
if(epg.stateMachine.isextendedGrid()){P=epg.config.iExtendedHeight
}else{if(!epg.stateMachine.isextendedGrid()){P=epg.config.iGridHeight
}}for(kGenre in B){F[kGenre]=M
}if(!epg.stateMachine.isFilter()){for(kChannel in N){if(R[J][kChannel]!==undefined&&epg.config.api.promos.enabled){A=Q(R[J][kChannel].start);
if(A===J&&R[J][kChannel].hidden!==true){epg.data.promos[J][kChannel].epgTop=F[N[kChannel].epggenre];
F[N[kChannel].epggenre]+=S
}}N[kChannel].epgTop=F[N[kChannel].epggenre];
if(!N[kChannel].height){F[N[kChannel].epggenre]+=P
}else{F[N[kChannel].epggenre]+=N[kChannel].height
}}}var I=0;
var C=[];
var H=epg.data.favourites;
for(kFavourite in H){C[C.length]=epg.data.channels[kFavourite].channelno;
I++
}C=C.sortBy(function(T){return T
});
var K;
if(epg.stateMachine.isFilter()){var E=epg.filtering.filters[epg.filtering.current_filter].channels;
for(iChannel=0;
iChannel<C.length;
iChannel++){K=epg.data.channelnoMap[C[iChannel]];
if(E.indexOf(K)>-1){H[K].epgTop=F[H[K].epggenre];
if(!N[kChannel].height){F[H[K].epggenre]+=P
}else{F[H[K].epggenre]+=N[kChannel].height
}}}}else{for(iChannel=0;
iChannel<C.length;
iChannel++){K=epg.data.channelnoMap[C[iChannel]];
H[K].epgTop=F[H[K].epggenre];
if(!N[kChannel].height){F[H[K].epggenre]+=P
}else{F[H[K].epggenre]+=N[kChannel].height
}}}var G=epg.data.filtered;
for(kFilter in G){if(R[J]&&R[J][kFilter]!==undefined&&epg.config.api.promos.enabled){A=Q(R[J][kFilter].start);
if(A===J&&R[J][kFilter]&&R[J][kFilter].hidden!==true){epg.data.promos[J][kFilter].epgTop=F[G[kFilter].epggenre];
F[G[kFilter].epggenre]+=S
}}G[kFilter].epgTop=F[G[kFilter].epggenre];
if(!N[kChannel].height){F[G[kFilter].epggenre]+=P
}else{F[G[kFilter].epggenre]+=N[kChannel].height
}}if(!epg.stateMachine.isFilter()){for(kEpggenre in B){if(kEpggenre==="all"){$("genre"+kEpggenre).style.height="0px";
$("genreKey"+kEpggenre).style.height="0px"
}else{if(B[kEpggenre].hidden===undefined){$("genre"+kEpggenre).style.height=F[kEpggenre]+"px";
$("genreKey"+kEpggenre).style.height=F[kEpggenre]+"px"
}}}}else{for(kEpggenre in B){if(kEpggenre==="fave"||kEpggenre==="all"&&B[kEpggenre].hidden===undefined){$("genre"+kEpggenre).style.height=F[kEpggenre]+"px";
$("genreKey"+kEpggenre).style.height=F[kEpggenre]+"px"
}else{if(B[kEpggenre].hidden===true){$("genre"+kEpggenre).style.height=M+"px";
$("genreKey"+kEpggenre).style.height=M+"px"
}else{$("genre"+kEpggenre).style.height="0px";
$("genreKey"+kEpggenre).style.height="0px"
}}}}var L=$(epg.config.eChannels);
for(kEpggenre in B){B[kEpggenre].epgTop=$("genreKey"+kEpggenre).viewportOffset()[1]-L.viewportOffset()[1]
}}},removeFavourite:function(A){traceGrid("removeFavourite",arguments);
if(epg.stateMachine.isextendedGrid()){if(epg.data.channels[A]&&epg.data.channels[A].channelKey){$(epg.data.channels[A].channelKey).removeClassName("fav");
if($(epg.data.channels[A].channelKey).firstChild){$(epg.data.channels[A].channelKey).firstChild.style.backgroundImage="url("+epg.config.constants.monoLogoPath+"/channel_"+A+".gif)"
}}if(epg.data.favourites[A]&&epg.data.favourites[A].channelKey){$(epg.data.favourites[A].channelKey).removeClassName("fav");
if($(epg.data.favourites[A].channelKey).firstChild){$(epg.data.favourites[A].channelKey).firstChild.style.backgroundImage="url("+epg.config.constants.monoLogoPath+"/channel_"+A+".gif)"
}}if(epg.data.filtered[A]&&epg.data.filtered[A].channelKey){$(epg.data.filtered[A].channelKey).removeClassName("fav");
if($(epg.data.filtered[A].channelKey).firstChild){$(epg.data.filtered[A].channelKey).firstChild.style.backgroundImage="url("+epg.config.constants.monoLogoPath+"/channel_"+A+".gif)"
}}}else{if(epg.data.channels[A]&&epg.data.channels[A].channelKey){$(epg.data.channels[A].channelKey).removeClassName("fav")
}if(epg.data.favourites[A]&&epg.data.favourites[A].channelKey){$(epg.data.favourites[A].channelKey).removeClassName("fav")
}if(epg.data.filtered[A]&&epg.data.filtered[A].channelKey){$(epg.data.filtered[A].channelKey).removeClassName("fav")
}}},addFavourite:function(A){traceGrid("addFavourite",arguments);
if(epg.stateMachine.isextendedGrid()){if(epg.data.channels[A]&&epg.data.channels[A].channelKey){$(epg.data.channels[A].channelKey).addClassName("fav");
$(epg.data.channels[A].channelKey).firstChild.style.backgroundImage="url("+epg.config.constants.colourLogoPath+"/channel_"+A+".gif)"
}if(epg.data.favourites[A]&&epg.data.favourites[A].channelKey){$(epg.data.favourites[A].channelKey).addClassName("fav");
$(epg.data.favourites[A].channelKey).firstChild.style.backgroundImage="url("+epg.config.constants.colourLogoPath+"/channel_"+A+".gif)"
}if(epg.data.filtered[A]&&epg.data.filtered[A].channelKey){$(epg.data.filtered[A].channelKey).addClassName("fav");
$(epg.data.filtered[A].channelKey).firstChild.style.backgroundImage="url("+epg.config.constants.colourLogoPath+"/channel_"+A+".gif)"
}}else{if(epg.data.channels[A]&&epg.data.channels[A].channelKey){$(epg.data.channels[A].channelKey).addClassName("fav")
}if(epg.data.favourites[A]&&epg.data.favourites[A].channelKey){$(epg.data.favourites[A].channelKey).addClassName("fav")
}if(epg.data.filtered[A]&&epg.data.filtered[A].channelKey){$(epg.data.filtered[A].channelKey).addClassName("fav")
}}},isFilterShowOnScreen:function(D,B,E,A,C){traceGrid("isFilterShowOnScreen",arguments);
if(D>epg.grid.iScrollLeft&&D<epg.grid.iScrollRight){epg.grid.bFoundFilterShow=true
}else{if(epg.grid.aFirstFilterShow.length===0||Math.abs(epg.grid.iScrollRight-D)<Math.abs(epg.grid.iScrollRight-epg.grid.aFirstFilterShow[3])){if(D<epg.config.iChannelWidth){epg.grid.aFirstFilterShow=[E,A,C,D]
}}}},renderShow:function(K,G){traceGrid("renderShow",arguments);
var L=[];
var D=epg.data.genre;
var N=((epg.config.iChannelWidth/(60*60*24))*K.dur);
var E=(epg.config.iChannelWidth/(60*60*24*1000))*(K.start-Date.parse(epg.date.epgDate(epg.date.currentDay)));
if((E)>(epg.grid.iLastPosition+epg.grid.iLastWidth+20)){var P=Math.round(E-epg.grid.iLastPosition);
var Q="Programme information unavailable";
L[L.length]='<div class="offair" style="left: '+Math.round(epg.grid.iLastPosition+epg.grid.iLastWidth)+"px; width: "+P+'px"><span class="label">'+Q.truncate((P-8)/6,"..")+"</span></div>"
}epg.grid.iLastWidth=N;
epg.grid.iLastPosition=E;
if(N>=8){if(E+N>(epg.config.iChannelWidth+(epg.config.iChannelWidth/24*4))){N=(epg.config.iChannelWidth+(epg.config.iChannelWidth/24*4))-E-8
}else{N=(N-8)
}}else{N=0
}var M="";
var R=0;
var J=D[K.genre].name;
if(J==="Film"||J==="Sports"){if(epg.config.grid.enable_genre_labels){var I=0;
M='<span class="genre">'+J+"</span>";
I=J.length;
R=(I*5)+15
}}var H=K.title;
var O=K.title.length;
var A=K.shortDesc;
var F="";
if(K.filtermatch!==undefined){epg.grid.isFilterShowOnScreen(E,N,K.eventid,K.channelid,K.start)
}if(!K.offair){if(K.edschoice==="true"){F="edsChoice show";
if(K.filtermatch!==undefined){F="edsChoice show filterMatch"
}else{F="edsChoice show"
}}else{if(K.filtermatch!==undefined){F="show filterMatch"
}else{F="show"
}}}else{F="offair";
H=K.title.replace(/^\.\.programmes start/,"Programmes will start")
}if(N<35){H="&nbsp;";
F+=" infoIcon";
A=""
}else{H=((N-R-15)<15)?"":H.truncate(((N-R)/5),"..")
}if(epg.stateMachine.isextendedGrid()&&!K.offair){var C="";
var B='onmouseup="epg.grid.showRecord('+K.channelid+","+K.eventid+');" onmouseover="epg.grid.showRecordMouseOver(this);" onmouseout="epg.grid.showRecordMouseOut(this);"';
if(N>=180){dur=(K.dur/60);
C=epg.date.timeSTR(K.start)+", "+Math.round(dur)+"min &nbsp;"+((epg.config.api.authentication.enabled&&epg.config.api.remote_record.enabled)?'<span class="button" '+B+">Remote record</span>":"")
}else{if(N<=180&&N>150){C=epg.date.timeSTR(K.start)+((epg.config.api.authentication.enabled&&epg.config.api.remote_record.enabled)?' &nbsp; <span class="button" '+B+">Remote record</span>":"")
}else{if(N<=150&&N>100){C=(epg.config.api.authentication.enabled&&epg.config.api.remote_record.enabled)?'<span class="button" '+B+">Remote record</span>":""
}else{if(N<=100&&N>65){C=(epg.config.api.authentication.enabled&&epg.config.api.remote_record.enabled)?'<span class="button" '+B+">Record</span>":""
}else{C=(epg.config.api.authentication.enabled&&epg.config.api.remote_record.enabled)?'<span class="button" '+B+">&nbsp;</span>":""
}}}}L[L.length]='<div class="'+F+'" style="width: '+N+"px; left: "+E+'px;" id="'+G+"_"+K.channelid+"_"+K.eventid+'"><span class="label">'+H+"</span><p>"+A+'</p><p class="record">'+C+"</p></div>"
}else{L[L.length]='<div class="'+F+'" style="width: '+N+"px; left: "+E+'px;" id="'+G+"_"+K.channelid+"_"+K.eventid+'">'+M+H+"</div>"
}K.epgLeft=E;
K.epgWidth=N;
return L.join("")
},iLastPosition:0,iLastWidth:0,renderChannel:function(B,C,E,D){traceGrid("renderChannel",arguments);
if(D){if(epg.grid.dragging!==true&&epg.grid.scrolling!==true&&epg.stateMachine.isAnyGrid()){var G;
var A=epg.config.iChannelWidth;
if(epg.stateMachine.isextendedGrid()){testBench({aspect:"Render_Channel_Extended",type:"start",display:{average:6}});
G=epg.config.iExtendedHeight
}else{testBench({aspect:"Render_Channel",type:"start",display:{average:6}});
G=epg.config.iGridHeight
}var F=[];
var I=Date.parse(epg.date.epgDate(epg.date.currentDay));
var H=epg.bubble.properties.iBubbleYOffset;
for(kShow in B){F[F.length]=epg.grid.renderShow(B[kShow],E);
if(epg.search.resultHash[C+"_"+kShow]!==undefined){F[F.length]='<div class="epg_searchOrder" id="search_'+C+"_"+kShow+'" style="left: '+((A/(60*60*24*1000))*(B[kShow].start-I)-25)+'px;">'+(epg.search.resultHash[C+"_"+kShow]+1)+"</div>"
}}if(epg.config.grid.enableNextDayOverlay){F[F.length]='<div class="nextDay" style="height:'+G+"px;left:"+epg.config.iChannelWidth+"px;width:"+(epg.config.iChannelWidth/24*4)+'px"></div>'
}D.innerHTML=F.join("");
if(epg.stateMachine.isextendedGrid()){testBench({aspect:"Render_Channel_Extended",type:"stop"});
G=epg.config.iExtendedHeight
}else{testBench({aspect:"Render_Channel",type:"stop"});
G=epg.config.iGridHeight
}epg.grid.iLastPosition=0;
epg.grid.iLastWidth=0;
if(epg.grid.lastRenderChannel===C){if(epg.stateMachine.isFilter()&&epg.grid.bFoundFilterShow===false&&epg.grid.bIsFirstFilterGridView===true&&epg.grid.aFirstFilterShow.length>0){epg.grid.gotoEvent(epg.grid.aFirstFilterShow[0],epg.grid.aFirstFilterShow[1],epg.grid.aFirstFilterShow[2],false);
epg.grid.bIsFirstFilterGridView=false
}testBench({aspect:"Grid_Refresh",type:"stop"})
}}else{if(epg.stateMachine.isAnyGrid()){epg.grid.addLoader(function(){epg.grid.renderChannel(B,C,E,D)
})
}}}if(epg.grid.currGridItem!==undefined){jQuery("#gridSchedule .channel .show").removeClass("highlighted");
jQuery(epg.grid.currGridItem).addClass("highlighted")
}},showRecord:function(B,A){traceGrid("showRecord",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){if(epg.Authentication.isAuthenticated()){epg.remoterecord.display(epg.bubble.properties.iChannel,epg.bubble.properties.iShow)
}else{epg.ui.Alerts.modalDialogue.open.remoteRecord.notLoggedIn()
}}},showRecordMouseOver:function(A){traceGrid("showRecordMouseOver",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){$(A).addClassName("hover")
}},showRecordMouseOut:function(A){traceGrid("showRecordMouseOut",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){$(A).removeClassName("hover")
}},aLoader:[],iLoaderKey:0,aLoaderStatus:false,addLoader:function(A){traceGrid("addLoader",arguments);
epg.grid.aLoader[epg.grid.aLoader.length]=A;
if(epg.grid.aLoaderStatus===false){epg.grid.playLoader()
}},playLoader:function(){traceGrid("playLoader",arguments);
if(epg.grid.aLoader[epg.grid.iLoaderKey]){epg.grid.aLoaderStatus=true;
epg.grid.aLoader[epg.grid.iLoaderKey]();
delete epg.grid.aLoader[epg.grid.iLoaderKey];
epg.grid.iLoaderKey++;
setTimeout(epg.grid.playLoader,1)
}else{epg.grid.aLoaderStatus=false
}},garbageCollector:function(A){traceGrid("garbageCollector",arguments);
if(A){jQuery(A).remove()
}},removeChannel:function(B){traceGrid("removeChannel",arguments);
var A=epg.grid.garbageCollector;
if(B.channel){A(B.channel)
}if(B.channelKey){B.channelKey.onmouseup=null;
A(B.channelKey)
}if(B.promo){A(B.promo)
}if(B.promoKey){A(B.promoKey)
}B.status=false;
delete B.channel;
delete B.channelKey;
delete B.promo;
delete B.promoKey;
delete B.currentDay;
delete B.visible
},hideChannel:function(A){traceGrid("hideChannel",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){if(A.channel){$(A.channel).hide()
}if(A.channelKey){$(A.channelKey).hide()
}if(A.promo){$(A.promo).hide()
}if(A.promoKey){$(A.promoKey).hide()
}A.hidden=true
}else{setTimeout(function(){epg.grid.hideChannel(A)
},25)
}},showChannel:function(A){traceGrid("showChannel",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true){if(A.channel){$(A.channel).show()
}if(A.channelKey){$(A.channelKey).show()
}if(epg.data.promos[epg.date.currentDay][A.channelid]&&epg.data.promos[epg.date.currentDay][A.channelid].hidden!==true){if(A.promo){$(A.promo).show()
}if(A.promoKey){$(A.promoKey).show()
}}A.hidden=false
}else{setTimeout(function(){epg.grid.showChannel(A)
},25)
}},stripChannel:function(A){traceGrid("stripChannel",arguments);
delete A.status;
delete A.visible;
delete A.hidden;
delete A.currentDay
},checkVisibility:function(){traceGrid("checkVisibility",arguments);
var D=$(epg.config.eChannels).scrollTop;
var E=$(epg.config.eChannels).getHeight();
var C=D+E+epg.config.iGridHeight;
var B=(epg.stateMachine.isextendedGrid()?(D-epg.config.iExtendedHeight):(D-epg.config.iGridHeight));
var A=epg.date.currentDay;
epg.grid.currentChannel=false;
epg.grid.groupVisibility(epg.data.channels,B,C,A);
epg.grid.groupVisibility(epg.data.favourites,B,C,A,"fave");
epg.grid.groupVisibility(epg.data.filtered,B,C,A)
},groupVisibility:function(C,B,E,I,A){traceGrid("groupVisibility",arguments);
var H=epg.grid.removeChannel;
var F=epg.grid.stripChannel;
var D=epg.data.epggenre;
for(kChannel in C){if(D[C[kChannel].epggenre]){var G=C[kChannel].epgTop+D[C[kChannel].epggenre].epgTop;
if(G>B&&G<E){if(D[C[kChannel].epggenre].hidden===true){H(C[kChannel]);
F(C[kChannel])
}else{if(epg.stateMachine.isFilter()&&A==="fave"&&epg.data.filtered[kChannel]===undefined){H(epg.data.favourites[kChannel]);
F(epg.data.favourites[kChannel])
}else{if(C[kChannel].status===true){if(C[kChannel].currentDay!==I){H(C[kChannel]);
F(C[kChannel])
}else{if(C[kChannel].epgTop!=C[kChannel].channel.style.top.replace(/px/,"")){C[kChannel].channel.style.top=C[kChannel].epgTop+"px";
C[kChannel].channelKey.style.top=C[kChannel].epgTop+"px";
if(C[kChannel].promo&&epg.config.api.promos.enabled!=C[kChannel].promo.style.top.replace(/px/,"")){C[kChannel].promo.style.top=epg.data.promos[I][kChannel].epgTop+"px";
C[kChannel].promoKey.style.top=epg.data.promos[I][kChannel].epgTop+"px"
}}}}if(epg.grid.currentChannel===false){epg.grid.currentChannel=C[kChannel].channelno
}C[kChannel].currentDay=I;
C[kChannel].visible=true;
epg.grid.lastRenderChannel=kChannel
}}}else{if(C[kChannel].status===true){H(C[kChannel]);
F(C[kChannel])
}else{delete C[kChannel].visible
}}}}},renderGrid:function(A){traceGrid("renderGrid",arguments);
if(epg.config.general.enable_favourites){epg.grid.renderGroup(epg.data.favourites,false,A)
}if(epg.stateMachine.isFilter()){if(!epg.tools.isEmpty(epg.data.filtered)){epg.grid.renderGroup(epg.data.filtered,true,A)
}}else{if(!epg.tools.isEmpty(epg.data.channels)){epg.grid.renderGroup(epg.data.channels,true,A)
}}},renderGroup:function(C,A,B){traceGrid("renderGroup",arguments);
var F=0;
var H=0;
var K=epg.config.iMaxChannels;
if(B){K=epg.config.iFirstRequestChannels
}var G=epg.data.promos;
var I=epg.date.currentDay;
var M=true;
var J=new Array();
var L=0;
for(kChannel in C){J.push(kChannel);
L++;
if(L>=K){break
}}if(K>J.length){K=J.length
}L=0;
if(B){for(var E=0;
E<K;
E++){kChannel=J[E];
if(G[I]&&G[I][kChannel]!==undefined&&A&&G[I][kChannel].hidden!==true&&epg.config.api.promos.enabled){var D=epg.date.nixToEpg(G[I][kChannel].start);
if(D===I){C[kChannel].promoKey=epg.grid.createChannelKeyPromo(G[D][[kChannel]],$("genreKey"+C[kChannel].epggenre),C[kChannel].epgTop-epg.config.iBannerHeight);
C[kChannel].promo=epg.grid.createChannelPromo(G[D][[kChannel]],$("genre"+C[kChannel].epggenre),C[kChannel].epgTop-epg.config.iBannerHeight);
C[kChannel].promo.currentDay=I
}}C[kChannel].channelKey=epg.grid.createChannelKey(C[kChannel],$("genreKey"+C[kChannel].epggenre),C[kChannel].epgTop);
C[kChannel].channel=epg.grid.createChannel(C[kChannel],$("genre"+C[kChannel].epggenre),C[kChannel].epgTop,M);
if(kChannel!=="special"){epg.grid.aLoadCache[epg.grid.aLoadCache.length]=kChannel
}C[kChannel].status=true;
M=!M
}epg.data.getGrid(epg.grid.aLoadCache,I,epg.grid.forkGridCallback);
epg.grid.aLoadCache=[]
}else{for(kChannel in C){if(C[kChannel].visible===true&&C[kChannel].status===undefined){if(G[I]&&G[I][kChannel]!==undefined&&A&&G[I][kChannel].hidden!==true&&epg.config.api.promos.enabled){var D=epg.date.nixToEpg(G[I][kChannel].start);
if(D===I){C[kChannel].promoKey=epg.grid.createChannelKeyPromo(G[D][[kChannel]],$("genreKey"+C[kChannel].epggenre),C[kChannel].epgTop-epg.config.iBannerHeight);
C[kChannel].promo=epg.grid.createChannelPromo(G[D][[kChannel]],$("genre"+C[kChannel].epggenre),C[kChannel].epgTop-epg.config.iBannerHeight);
C[kChannel].promo.currentDay=I
}}C[kChannel].channelKey=epg.grid.createChannelKey(C[kChannel],$("genreKey"+C[kChannel].epggenre),C[kChannel].epgTop);
C[kChannel].channel=epg.grid.createChannel(C[kChannel],$("genre"+C[kChannel].epggenre),C[kChannel].epgTop,M);
if(kChannel!=="special"){epg.grid.aLoadCache[epg.grid.aLoadCache.length]=kChannel
}C[kChannel].status=true
}if(epg.grid.aLoadCache.length===K){epg.data.getGrid(epg.grid.aLoadCache,I,epg.grid.forkGridCallback);
epg.grid.aLoadCache=[]
}M=!M
}}},forkGridCallback:function(B,A){if(epg.data.channels[A]!==undefined&&epg.data.channels[A].status===true){epg.grid.addLoader(function(){epg.grid.renderChannel(B,A,"grid",epg.data.channels[A].channel)
})
}if(epg.data.favourites[A]!==undefined&&epg.data.favourites[A].status===true){epg.grid.addLoader(function(){epg.grid.renderChannel(B,A,"favourite",epg.data.favourites[A].channel)
})
}if(epg.data.filtered[A]&&epg.data.filtered[A]!==undefined&&epg.data.filtered[A].status===true){epg.grid.renderChannel(B,A,"filter",epg.data.filtered[A].channel)
}},getUpdate:function(A){traceGrid("forkGridCallback",arguments);
if(epg.grid.dragging!==true&&epg.grid.scrolling!==true&&epg.stateMachine.isAnyGrid()){testBench({aspect:"Calculate_Grid",type:"start"});
testBench({aspect:"Grid_Refresh",type:"start"});
epg.grid.setGridMicroTime();
if(epg.stateMachine.isFilter()&&epg.filtering.filters[epg.filtering.current_filter].channels&&epg.filtering.filters[epg.filtering.current_filter].channels.length===0&&epg.filtering.cloudBurstActive===false){epg.ui.Alerts.alert.display(epg.filtering.text.error)
}else{epg.grid.checkVisibility();
epg.grid.renderGrid(A);
if(epg.grid.aLoadCache.length>0){epg.data.getGrid(epg.grid.aLoadCache,epg.date.currentDay,epg.grid.forkGridCallback);
epg.grid.aLoadCache=[]
}}testBench({aspect:"Calculate_Grid",type:"stop"})
}},show:function(){traceGrid("show",arguments);
Element.removeClassName($(epg.config.eGrid),"view_off")
},hide:function(){traceGrid("hide",arguments);
Element.addClassName($(epg.config.eGrid),"view_off")
},clear:function(){traceGrid("clear",arguments);
var C=epg.data.channels;
var E=epg.data.epggenre;
var A=epg.data.favourites;
var B=epg.grid.removeChannel;
var D=epg.grid.stripChannel;
Element.addClassName($(epg.config.eGrid),"view_off");
for(kGenre in E){delete E[kGenre].hidden
}for(kChannel in C){D(C[kChannel])
}for(kFavourite in A){D(A[kFavourite])
}var F=epg.data.filtered;
for(kFilter in F){D(F[kFilter])
}jQuery("#"+epg.config.eChannels).html("");
jQuery("#"+epg.config.eWrapper).html("")
},unLoad:function(){traceGrid("unLoad",arguments);
Event.stopObserving($(epg.config.eSchedule),"mousedown",epg.grid.startScheduleDrag);
Event.stopObserving($(epg.config.eChannels),"mousedown",epg.grid.startChannelDrag);
Event.stopObserving($(epg.config.eTimeline),"mousedown",epg.grid.startScheduleDrag);
Event.stopObserving(document,"mouseup",epg.grid.docMouseUp);
Event.stopObserving($("epg_scrollE"),"mousedown",epg.grid.scrollEast);
Event.stopObserving($("epg_scrollE"),"mousedown",epg.grid.beginScroll);
Event.stopObserving($("epg_scrollW"),"mousedown",epg.grid.scrollWest);
Event.stopObserving($("epg_scrollW"),"mousedown",epg.grid.beginScroll);
Event.stopObserving($("epg_scrollN"),"mousedown",epg.grid.scrollNorth);
Event.stopObserving($("epg_scrollN"),"mousedown",epg.grid.beginScroll);
Event.stopObserving($("epg_scrollS"),"mousedown",epg.grid.scrollSouth);
Event.stopObserving($("epg_scrollS"),"mousedown",epg.grid.beginScroll);
Event.stopObserving($("epg_scrollE"),"mouseout",epg.grid.cancelScroll);
Event.stopObserving($("epg_scrollW"),"mouseout",epg.grid.cancelScroll);
Event.stopObserving($("epg_scrollN"),"mouseout",epg.grid.cancelScroll);
Event.stopObserving($("epg_scrollS"),"mouseout",epg.grid.cancelScroll);
Event.stopObserving($("epg_scrollE"),"mouseup",epg.grid.cancelScroll);
Event.stopObserving($("epg_scrollW"),"mouseup",epg.grid.cancelScroll);
Event.stopObserving($("epg_scrollN"),"mouseup",epg.grid.cancelScroll);
Event.stopObserving($("epg_scrollS"),"mouseup",epg.grid.cancelScroll);
Event.stopObserving($(epg.config.eTimeline),"mousemove",epg.grid.getShowHover);
Event.stopObserving($(epg.config.eTimeline),"mouseup",epg.grid.getShowClick);
Event.stopObserving($(epg.config.eChannels),"mouseover",epg.grid.channelAction);
Event.stopObserving($(epg.config.eChannels),"mouseup",epg.grid.getChannelClick);
Event.stopObserving($(epg.config.eWrapper),"mouseover",epg.grid.showAction);
Event.stopObserving($(epg.config.eWrapper),"mousedown",epg.grid.showAction);
Event.stopObserving($(epg.config.eWrapper),"mouseup",epg.grid.getShowClick)
},triggerNextDay:function(A){traceGrid("triggerNextDay",arguments);
var B=epg.date.currentTime.getHours();
if(B>21){epg.ui.nextDay.display()
}else{epg.ui.nextDay.hide()
}},scrollToNextMorning:function(){traceGrid("scrollToNextMorning",arguments);
var A=new Date();
A.setTime(epg.date.currentTime.getTime());
A.setDate(A.getDate()+1);
A.setHours(1);
A.setMinutes(1);
A.setSeconds(1);
epg.grid.jumpToTime(A.valueOf());
epg.ui.nextDay.hide()
}};epg.filtering={init:function(){traceFiltering("epg.filtering.init",arguments);
var B=epg.data.UserCookie.getCookie("epg_filters"+epg.config.cookieSuffix);
if(B){for(var A in B){if(!epg.filtering.filters[A]){epg.filtering.filters[A]={name:A,hashmap:{},user:true}
}epg.filtering.filters[A].genres=B[A];
for(var D=0,C=B[A].length;
D<C;
D++){epg.filtering.filters[A].hashmap[B[A][D]]=true
}}}if(epg.config.api.filters.initial!==null&&epg.config.api.filters.initial.genres instanceof Array&&epg.config.api.filters.initial.genres.length&&epg.config.api.filters.initial.name){epg.filtering.current_filter=epg.config.api.filters.initial.name;
epg.filtering.filters[epg.config.api.filters.initial.name]=epg.config.api.filters.initial;
epg.filtering.applyFiltering();
epg.filtering.filters[epg.filtering.current_filter].day=epg.date.currentTime.getDate();
epg.ui.Toolbars.toolbar3.appendTag(epg.config.api.filters.initial.name)
}},hardReset:function(){traceFiltering("epg.filtering.hardReset",arguments);
epg.filtering.filter_genres=null;
epg.filtering.current=null;
epg.filtering.previous=null;
epg.filtering.init();
for(var A in epg.filtering.filters){epg.filtering.filters[A].channels=null
}},main_filter:"quickbrowse",tag_filter:"tag",filter_genres:null,current:null,previous:null,filters:{quickbrowse:{name:"quickbrowse",channels:null,genres:[],day:null,hashmap:{},user:true}},undoStore:{filters:null,activeTags:null},text:{error:[{h4:"Sorry, we couldn't find any programmes to match your search."},{p:"Please try a different search:"},{ul:[{li:"Select a different day"},{li:"Try using different Categories"}]},{a:"back","class":"epg_actionButton epg_positiveButton",onclick:function(A){epg.ui.Alerts.alert.close();
epg.filtering.editFilter()
}}],more:"More...",less:"Less..."},applyFiltering:function(){traceFiltering("epg.filtering.applyFiltering",arguments);
epg.list.resetFilters();
if(epg.stateMachine.isAnyGrid()){jQuery(epg.config.eTimeline).stop();
jQuery(epg.config.eSchedule).stop();
jQuery(epg.config.eChannels).stop();
epg.grid.bIsFirstFilterGridView=true;
epg.grid.bFoundFilterShow=false;
epg.grid.aFirstFilterShow=[];
epg.bubble.closeBubble()
}if(epg.stateMachine.isSearch()){epg.search.close()
}if(epg.stateMachine.isextendedGrid()){epg.stateMachine.set(7)
}else{if(epg.stateMachine.isAnyGrid()){epg.stateMachine.set(6)
}else{epg.stateMachine.set(8)
}}},resetFilteringParameters:function(){traceFiltering("epg.filtering.resetFilteringParameters",arguments);
if(document.getElementById("epg_filter_off").className.indexOf("epg_block_g3")===-1){if(epg.stateMachine.isextendedGrid()){epg.stateMachine.set(1)
}else{if(epg.stateMachine.isGrid()){epg.stateMachine.set(0)
}else{epg.stateMachine.set(2)
}}if(epg.filtering.current_filter==epg.filtering.tag_filter){epg.ui.Toolbars.toolbar3.removeTag()
}epg.filtering.current_filter=null;
epg.ui.Toolbars.toolbar3.select(document.getElementById("epg_filter_off"));
epg.list.resetFilters()
}},removeFiltering:function(A){traceFiltering("epg.filtering.removeFiltering",arguments);
if(epg.stateMachine.isList()&&epg.stateMachine.isSearch()){epg.search.close()
}jQuery(epg.config.eTimeline).stop();
jQuery(epg.config.eSchedule).stop();
jQuery(epg.config.eChannels).stop();
epg.grid.bIsFirstFilterGridView=true;
epg.grid.bFoundFilterShow=false;
epg.grid.aFirstFilterShow=[];
epg.grid.currentChannel=false;
epg.bubble.closeBubble();
epg.filtering.resetFilteringParameters();
epg.list.resetFilters();
epg.views.reloadCurrentView();
if(A){A.stopPropagation()
}},createFilter:function(){traceFiltering("epg.filtering.createFilter",arguments);
var A;
epg.filtering.filters.quickbrowse.genres=A;
epg.filtering.filters.quickbrowse.channels=epg.data.getFilterChannels(filter_name,epg.date.dateToURL(epg.date.currentTime))
},createSkyFilter:function(A){traceFiltering("epg.filtering.createSkyFilter",arguments);
if(!epg.filtering.filters[A.name.toWord()]){epg.filtering.filters[A.name.toWord()]=A.genres
}},selectFilter:function(B){traceFiltering("epg.filtering.selectFilter",arguments);
var A=this;
while(!A.id||!A.getAttribute("id").toString().match(/epg_filter_(.+)/)){A=A.parentNode
}var C=A.getAttribute("id").toString().match(/epg_filter_(.+)/)[1];
if(epg.filtering.current_filter==epg.filtering.tag_filter){epg.ui.Toolbars.toolbar3.removeTag()
}epg.ui.Toolbars.toolbar3.select(A);
if(!epg.filtering.current_filter||epg.filtering.current_filter!=C){epg.filtering.current_filter=C;
epg.filtering.applyFiltering();
epg.list.tracking.currentBlock=0;
if(!epg.filtering.filters[C].day||epg.filtering.filters[C].day!=epg.date.currentTime.getDate()){epg.filtering.filters[C].day=epg.date.currentTime.getDate();
epg.data.getFilterChannels(C,epg.date.dateToURL(epg.date.currentTime))
}else{epg.views.reloadCurrentView()
}}epg.hitbox.send("pre-setfilter");
if(B){B.stopPropagation()
}return false
},changeDay:function(){traceFiltering("epg.filtering.changeDay",arguments);
epg.filtering.filters[epg.filtering.current_filter].day=epg.date.currentTime.getDate();
epg.data.getFilterChannels(epg.filtering.current_filter,epg.date.dateToURL(epg.date.currentTime))
},quickBrowse:function(A){traceFiltering("epg.filtering.quickBrowse",arguments);
epg.filtering.previous=Element.epgGetElementsByClassName(document.getElementById("epg_toolFilters"),epg.ui.Toolbars.toolbar3.filter_classes.on)[0];
epg.ui.Toolbars.toolbar3.select(document.getElementById("epg_filter_main"));
if(epg.filtering.filters[epg.filtering.main_filter]&&epg.filtering.filters[epg.filtering.main_filter].genres.length){epg.filtering.applyFiltering();
epg.filtering.current_filter=epg.filtering.main_filter;
if(epg.filtering.filters[epg.filtering.main_filter].channels&&epg.filtering.filters[epg.filtering.main_filter].day==epg.date.currentTime.getDate()){if(!$("epg.config.eFilterCloud")){epg.views.reloadCurrentView()
}}else{epg.filtering.filters[epg.filtering.main_filter].day=epg.date.currentTime.getDate();
epg.data.getFilterChannels(epg.filtering.main_filter,epg.date.dateToURL(epg.date.currentTime))
}}else{epg.filtering.Cloud.open(epg.filtering.main_filter)
}if(A){A.stopPropagation()
}return false
},loadTag:function(A,B){traceFiltering("epg.filtering.loadTag",arguments);
filter_name=epg.filtering.tag_filter;
epg.filtering.filters.tag={name:epg.filtering.tag_filter,channels:null,genres:[A],day:null};
epg.filtering.current_filter=filter_name;
epg.filtering.applyFiltering();
epg.filtering.filters[filter_name].day=epg.date.currentTime.getDate();
epg.data.getFilterChannels(filter_name,epg.date.dateToURL(epg.date.currentTime));
epg.ui.Toolbars.toolbar3.appendTag(B)
},editFilter:function(B){traceFiltering("epg.filtering.editFilter",arguments);
var A=epg.filtering.main_filter;
epg.filtering.previous=Element.epgGetElementsByClassName(document.getElementById("epg_toolFilters"),epg.ui.Toolbars.toolbar3.filter_classes.on)[0];
epg.ui.Toolbars.toolbar3.select(document.getElementById("epg_filter_main"));
epg.filtering.Cloud.edit_mode=true;
epg.filtering.Cloud.open(A);
if(B){Event.stop(B)
}},html:{cloud_header:'<div id="epg_filterCloudHeader"><div class="epg_col1">Select</div><div class="epg_col2">Select sub categories</div><a href="#" class="epg_close" title="close">Close</a><div class="clear"></div></div>',cloud_body:'<div id="epg_filterCloudBody"><ul class="epg_filterCloudList"></ul></div>',cloud_footer:'<div id="epg_filterCloudFooter"><div id="epg_filterCloudFooterWrapper"><div class="epg_actionButton epg_negativeButton"><span><span><a>Clear All</a></span></span></div><div class="epg_actionButton epg_negativeButton"><span><span><a>Cancel</a></span></span></div><div class="epg_actionButton epg_positiveButton"><span><span><a>Apply</a></span></span></div><div class="clear"</div></div></div>',cloud_genre:"<span><span><span>XXXnameXXX</span></span></span>",cloud_more:'<li class="epg_on"><a href="#" class="epg_link_J">More...</a></li>',clear:'<div class="clear"></div>'},Cloud:{filter:null,edit_mode:false,collapsed_genres:4,activeTags:{},open:function(C){traceFiltering("epg.filtering.Cloud.open",arguments);
epg.tools.killAjax();
epg.filtering.undoStore.filters=jQuery.extend(true,{},epg.filtering.filters);
epg.filtering.undoStore.activeTags=jQuery.extend(true,{},epg.filtering.Cloud.activeTags);
epg.ui.Toolbars.disable();
epg.filtering.Cloud.filter=C;
var B=document.createElement("div");
B.setAttribute("id",epg.config.eFilterCloud);
if(epg.stateMachine.isAnyGrid()){document.getElementById(epg.config.eGrid).appendChild(B)
}else{document.getElementById(epg.config.eList).appendChild(B)
}$(B).addClassName("epg_loading");
var A=B.offsetHeight;
epg.grid.dragging=true;
jQuery(B).animate({top:0},300,"swing",function(){if(!epg.filtering.filter_genres){epg.data.getFilterGenres(epg.filtering.Cloud.write)
}else{setTimeout(epg.filtering.Cloud.write,100)
}epg.grid.dragging=false
})
},write:function(){traceFiltering("epg.filtering.Cloud.write",arguments);
testBench({aspect:"Render_Cloud",type:"start"});
var A=epg.filtering.filters[epg.filtering.Cloud.filter];
var N=epg.filtering.filter_genres;
var C=document.getElementById(epg.config.eFilterCloud);
epg.filtering.cloudBurstActive=true;
$(C).removeClassName("epg_loading");
var B="";
var E="";
var M;
var I="";
var D=0;
var P="";
var G="";
var Q="";
var F=[];
var K=['<div id="epg_filterCloudHeader"><div class="epg_col1">Select:</div><div class="epg_col2">Select sub categories:</div><a href="javascript:return false;" class="epg_close" id="filter_epg_close" title="close">Close</a><div class="clear"></div></div><div id="epg_filterCloudBody" style="height:384px"><ul class="epg_filterCloudList">'];
for(var L=0,H=N.length;
L<H;
L++){if(N[L].k=="7"){P="epg_separate_genre"
}else{P=""
}if(A.hashmap[N[L].k]){P+=" epg_on";
Q="epg_block_g3"
}else{Q="epg_block_g4"
}if(N[L].subcategories&&N[L].subcategories.category&&N[L].subcategories.category.length){M=N[L].subcategories.category;
D=0;
F=[];
for(var J=0,O=M.length;
J<O;
J++){I="";
G="";
if(A.hashmap[M[J].k]){G="epg_block_g3"
}else{G="epg_block_g4"
}if(A.hashmap[M[J].k]){I="epg_on";
D++
}else{if(J>=epg.filtering.Cloud.collapsed_genres){I="epg_hidden"
}}F[F.length]='<li id="epg_cloud_subgenre_'+L+"_"+J+'" class="'+I+'"><a href="#" class="epg_level_3 '+G+'" onclick="epg.filtering.Cloud.selectSubgenre(this,'+L+","+J+');return false;"><span><span><span>'+M[J].v+"</span></span></span></a>!</li>";
if(A.hashmap[M[J].k]){epg.filtering.Cloud.activeTags["epg_cloud_subgenre_"+L+"_"+J]=true
}}if(M.length>epg.filtering.Cloud.collapsed_genres&&D<M.length){F[F.length]='<li class="epg_on"><a href="#" class="epg_link_J epg_filter_more" onclick="epg.filtering.Cloud.expandGenre(this,'+L+'); return false;">More...</a></li>'
}K[K.length]='<li id="epg_cloud_genre_'+L+'" class="'+P+'"><h4><a href="#" class="epg_level_x '+Q+'" id="filter_epg_genre_'+J+'" onclick="epg.filtering.Cloud.selectGenre(this,'+L+'); return false;"><span><span><span>'+N[L].v+"</span></span></span></a></h4><ul>"+F.join("")+'</ul><div class="clear"></div></li>';
if(A.hashmap[N[L].k]){epg.filtering.Cloud.activeTags["epg_cloud_genre_"+L]=true
}}}K[K.length]='</ul></div><div id="epg_filterCloudFooter"><div id="epg_filterCloudFooterWrapper"><div class="epg_actionButton epg_negativeButton"><span><span><a>Clear All</a></span></span></div><div class="epg_actionButton epg_negativeButton"><span><span><a>Cancel</a></span></span></div><div class="epg_actionButton epg_positiveButton"><span><span><a>Apply</a></span></span></div><div class="clear"</div></div></div>';
C.innerHTML=K.join("");
document.getElementById("filter_epg_close").onclick=epg.filtering.Cloud.close;
Event.observe(document.getElementById("epg_filterCloudFooterWrapper").getElementsByTagName("a")[0],"click",epg.filtering.Cloud.clear);
Event.observe(document.getElementById("epg_filterCloudFooterWrapper").getElementsByTagName("a")[1],"click",epg.filtering.Cloud.cancel);
Event.observe(document.getElementById("epg_filterCloudFooterWrapper").getElementsByTagName("a")[2],"click",epg.filtering.Cloud.apply);
epg.hitbox.send("personalfilter");
testBench({aspect:"Render_Cloud",type:"stop"})
},cancel:function(){epg.filtering.filters=jQuery.extend(true,{},epg.filtering.undoStore.filters);
epg.filtering.Cloud.activeTags=jQuery.extend(true,{},epg.filtering.undoStore.activeTags);
epg.filtering.Cloud.close()
},close:function(){traceFiltering("epg.filtering.Cloud.close",arguments);
var B=document.getElementById(epg.config.eFilterCloud);
var A=B.offsetHeight;
epg.filtering.cloudBurstActive=false;
B.innerHTML="";
epg.filtering.Cloud.filter=null;
epg.filtering.Cloud.edit_mode=false;
if(!epg.filtering.previous){epg.ui.Toolbars.toolbar3.select(document.getElementById("epg_filter_off"))
}else{if(epg.filtering.previous!=document.getElementById("epg_filter_main")&&epg.filtering.current_filter!=epg.filtering.main_filter){epg.ui.Toolbars.toolbar3.select(epg.filtering.previous)
}}epg.grid.dragging=true;
jQuery(B).animate({top:0-A},300,"swing",function(){epg.grid.dragging=false;
epg.filtering.Cloud.kill()
})
},kill:function(){traceFiltering("epg.filtering.Cloud.kill",arguments);
jQuery("#"+epg.config.eFilterCloud).remove();
epg.ui.Toolbars.enable()
},autoSetHeight:function(){traceFiltering("epg.filtering.Cloud.autoSetHeight",arguments);
var B=document.getElementById(epg.config.eFilterCloud);
var D=document.getElementById("epg_filterCloudHeader");
var E=document.getElementById("epg_filterCloudBody");
var C=document.getElementById("epg_filterCloudFooter");
var A=B.parentNode.offsetHeight-D.offsetHeight-C.offsetHeight;
E.style.height=A+"px"
},apply:function(D){traceFiltering("epg.filtering.Cloud.apply",arguments);
var B=epg.filtering.filters[epg.filtering.main_filter].hashmap;
var C=Event.element(D);
epg.filtering.Cloud.close(D);
epg.filtering.current_filter=epg.filtering.Cloud.filter;
delete epg.filtering.filters[epg.filtering.main_filter].genres;
epg.filtering.filters[epg.filtering.main_filter].genres=[];
for(var A in B){epg.filtering.filters[epg.filtering.main_filter].genres.push(A.toString())
}if(epg.filtering.filters[epg.filtering.main_filter].genres.length===0){epg.data.UserData.saveData("epg_filters",epg.filtering.createCookieObject());
epg.filtering.Cloud.close();
setTimeout(function(){epg.reloadEPG()
},500);
Event.stop(D);
return 
}epg.data.UserData.saveData("epg_filters",epg.filtering.createCookieObject());
if(epg.filtering.filters[epg.filtering.main_filter].genres.length){if(jQuery("#epg_toolFilters .epg_edit").length==0){epg.ui.Toolbars.toolbar3.appendAction(document.getElementById("epg_filter_main"),"edit",epg.filtering.editFilter)
}epg.filtering.applyFiltering();
epg.filtering.filters[epg.filtering.main_filter].day=epg.date.currentTime.getDate();
epg.data.getFilterChannels(epg.filtering.main_filter,epg.date.dateToURL(epg.date.currentTime));
epg.filtering.quickBrowse()
}else{var E=(document.getElementById("epg_filter_"+epg.filtering.current_filter))?document.getElementById("epg_filter_"+epg.filtering.current_filter):document.getElementById("epg_filter_main");
epg.ui.Toolbars.toolbar3.removeAction(E);
epg.filtering.removeFiltering()
}epg.hitbox.send("applyfilter");
Event.stop(D)
},clear:function(F){traceFiltering("epg.filtering.Cloud.clear",arguments);
testBench({aspect:"Filtering_ClearAll",type:"start"});
epg.data.UserData.saveData("epg_filters","");
var D=Event.element(F);
var C=epg.filtering.filters[epg.filtering.main_filter].hashmap;
for(var A in C){delete C[A]
}var E=Element.epgGetElementsByClassName(document.getElementById("epg_filterCloud"),"epg_on");
for(kTag in epg.filtering.Cloud.activeTags){var B=$(kTag);
var G=B.className;
if(B.id.match(/epg_cloud_subgenre_/)){B.firstChild.className="epg_level_3 epg_block_g4"
}else{B.firstChild.firstChild.className="epg_level_x epg_block_g4";
if(G==="epg_separate_genre epg_on"){B.className="epg_separate_genre"
}}if(G==="epg_on"){B.className=""
}}testBench({aspect:"Filtering_ClearAll",type:"stop"})
},selectGenre:function(C,B){traceFiltering("epg.filtering.Cloud.selectGenre",arguments);
if(typeof C==="object"){C=jQuery(C);
var F=C.parents("[id^=epg_cloud_genre_]");
var D=F.find("a")[0];
var E=F.is(".epg_on");
var A=epg.filtering.filter_genres[B];
if(E){if(epg.filtering.filters[epg.filtering.main_filter].hashmap[A.k]){delete epg.filtering.filters[epg.filtering.main_filter].hashmap[A.k]
}if(A.subcategories&&A.subcategories.category&&A.subcategories.category.length){for(x=0,y=A.subcategories.category.length;
x<y;
x++){if(epg.filtering.filters[epg.filtering.main_filter].hashmap[A.subcategories.category[x].k]){delete epg.filtering.filters[epg.filtering.main_filter].hashmap[A.subcategories.category[x].k]
}}}epg.ui.Button.unselect(D);
F.find("ul:first li a").each(function(){$this=jQuery(this);
if(!$this.is(".epg_link_J")){$this.parent().removeClass("epg_on");
epg.ui.Button.unselect($this[0]);
delete epg.filtering.Cloud.activeTags[$this.attr("id")]
}});
F.removeClass("epg_on")
}else{if(!epg.filtering.filters[epg.filtering.main_filter].hashmap[A.k]){epg.filtering.filters[epg.filtering.main_filter].hashmap[A.k]=true;
if(A.subcategories&&A.subcategories.category&&A.subcategories.category.length){for(x=0,y=A.subcategories.category.length;
x<y;
x++){if(!epg.filtering.filters[epg.filtering.main_filter].hashmap[A.subcategories.category[x].k]){epg.filtering.filters[epg.filtering.main_filter].hashmap[A.subcategories.category[x].k]=true
}}}}epg.ui.Button.select(D);
F.find("ul:first li a").each(function(){$this=jQuery(this);
if(!$this.is(".epg_link_J")){$this.parent().addClass("epg_on");
epg.ui.Button.select($this[0]);
epg.filtering.Cloud.activeTags[$this.attr("id")]=true
}});
F.addClass("epg_on")
}}},selectSubgenre:function(D,C,E){traceFiltering("epg.filtering.Cloud.selectSubgenre",arguments);
D=jQuery(D);
var G=D.parents("[id^=epg_cloud_genre_]");
var A=D.parents("[id^=epg_cloud_subgenre_]");
var F=A.is(".epg_on");
var B=epg.filtering.filter_genres[C];
if(F){delete epg.filtering.filters[epg.filtering.main_filter].hashmap[epg.filtering.filter_genres[C].subcategories.category[E].k];
delete epg.filtering.filters[epg.filtering.main_filter].hashmap[B.k];
epg.ui.Button.unselect(A.find("a")[0]);
A.removeClass("epg_on");
delete epg.filtering.Cloud.activeTags[A.attr("id")];
epg.ui.Button.unselect(G.find("a")[0]);
G.removeClass("epg_on")
}else{epg.filtering.filters[epg.filtering.main_filter].hashmap[epg.filtering.filter_genres[C].subcategories.category[E].k]=true;
epg.ui.Button.select(A.find("a")[0]);
A.addClass("epg_on");
epg.filtering.Cloud.activeTags[A.attr("id")]=true;
if(G.find("li").not(".epg_on").length==0){epg.filtering.filters[epg.filtering.main_filter].hashmap[B.k]=true;
epg.ui.Button.select(G.find("a")[0])
}}},expandGenre:function(D,B){traceFiltering("epg.filtering.Cloud.expandGenre",arguments);
if(typeof D==="object"){var E=D.parentNode;
while(!E.getAttribute("id")||!E.getAttribute("id").match(/epg_cloud_genre_/)){E=E.parentNode
}var A=E.getElementsByTagName("ul")[0];
var F=B;
var C=epg.filtering.filter_genres[F].subcategories.category;
var G=D.parentNode.parentNode.getElementsByTagName("LI");
for(iKey=0,j=G.length;
iKey<j;
iKey++){if(G[iKey].className.match(/epg_hidden/)){$(G[iKey]).removeClassName("epg_hidden")
}}D.parentNode.parentNode.removeChild(D.parentNode)
}},collapseGenre:function(E,C){traceFiltering("epg.filtering.Cloud.collapseGenre",arguments);
$(E);
var F=E.parentNode;
while(!F.getAttribute("id")||!F.getAttribute("id").match(/epg_cloud_genre_/)){F=F.parentNode
}var B=F.getElementsByTagName("ul")[0];
var G=parseInt(F.getAttribute("id").match(/epg_cloud_genre_([0-9]+)/)[1],10);
var D=epg.filtering.filter_genres[G].subcategories.category;
for(var A=epg.filtering.Cloud.collapsed_genres,H=D.length;
A<H;
A++){$(B.getElementsByTagName("li")[A]).addClassName("epg_hidden")
}E.onclick=function(){epg.filtering.Cloud.expandGenre(E,C)
};
E.innerHTML=epg.filtering.text.more
}},createCookieObject:function(){traceFiltering("epg.filtering.Cloud.createCookieObject",arguments);
var C=epg.filtering.filters;
var B={};
for(var A in C){if(C[A].user){B[A]=C[A].genres
}}return B
}};epg.search={suggestion_delay:400,max_suggestions:10,no_suggestion_text:"No suggestions...",pane_innerhtml:'<div class="epg_searchResults"><div class="epg_searchResultsHeader"><div class="epg_searchResultsTitle"><a href="#" onclick="return epg.search.close()" class="epg_close" title="close"></a><h3 class="epg_searchResultsAmount">XXXresultsXXX for &#39;XXXqueryXXX&#39;</h3><div class="clear"></div></div><div class="epg_searchResultsSort"><h4>We\'ve found results with these tags</h4><ul>XXXgenresXXX</ul><br clear="all" /></div></div><div class="epg_searchResultsLister">XXXsearchresultsXXXXXXfilteredsearchtextXXX</div></div></div>',pane_empty_innerhtml:'<div class="epg_searchResults"><div class="epg_searchResultsHeader"><div class="epg_searchResultsTitle"><a href="#" onclick="return epg.search.close()" class="epg_close" title="close"></a><h3 class="epg_searchResultsAmount">0 results for &#39;XXXqueryXXX&#39;</h3><div class="clear"></div></div></div><div class="epg_searchEmptyResults"><p>Sorry but there are no results for &#39;XXXqueryXXX&#39;. Please try a different search:</p><ul><li>Use different keywords</li><li>Try more general keywords</li></ul>XXXfilteredsearchtextXXX</div></div></div>',pane_loading_innerhtml:'<div class="epg_searchResults"><div class="epg_searchResultsHeader"><div class="epg_searchResultsTitle"><h3 class="epg_searchResultsAmount">Loading Search Results...</h3><div class="clear"></div></div><div class="epg_searchLoading"></div></div>',genre_innerhtml:'<li><a class="XXXgenreclassXXX" href="#" onclick="epg.search.ajaxSearch(XXXgenresearchXXX);return false"><span><span><span><span>XXXgenreXXX</span></span></span></span></a></li> ',result_innerhtml:'<div id="XXXeventfullidXXX" class="epg_listRow"><div class="epg_searchOrder">XXXresultXXX</div><div class="epg_programme"><div class="epg_programmeGenre">XXXgenreXXX</div><a href="#" class="epg_programmeTitle" onclick="XXXclickresultXXX">XXXtitleXXX</a></div><a href="#" class="epg_schedule" onclick="XXXclickresultXXX">XXXdatetimeXXX</a><a href="#" class="epg_addChannel XXXclassfavouriteXXX" onclick="XXXclickfavouriteXXX" title="Click to add this epg_programme to your favourites"></a><a href="#" class="epg_channelNumber" onclick="XXXclickresultXXX">XXXchannelidXXX</a><a href="#" class="epg_channelName" onclick="XXXclickresultXXX">XXXchannelnameXXX</a><a href="#" class="epg_viewAirings epg_link_J" onclick="XXXviewairingsXXX">All Airings</a><a href="#" class="epg_expand epg_expand_show" onclick="XXXclickexpandXXX">Expand</a></div>',result_id_innerhtml:'<div class="epg_searchOrder">XXXresultXXX</div>',genre_classes:["epg_block_g3 epg_level_2","epg_block_g4 epg_level_2","epg_block_g3 epg_level_1","epg_block_g4 epg_level_1"],filtered_search_html:'<div class="epg_filteredSearchText"><p>These result are based on your current channel setup:<br />"XXXchannelSetupXXX"</p><p>Across all channels, there are <a href="#" id="aUnfilteredSearch">XXXunfilteredsearchresultsXXX results</a> for \'XXXqueryXXX\'</p></div>',search_field:null,search_form:null,search_pane:null,suggestion_list:null,search_field_value:"",query:"",last_suggestion:null,not_searched:true,search_genre:"all",full_results:[],collapsed_results:null,search_genres:[],sky_results:0,suggest_timeout:null,maxresults:10,reloadSearch:null,init:function(){},hardReset:function(){traceSearch("hardReset",arguments);
epg.search.full_results=[];
epg.search.last_suggestion=null;
epg.search.search_pane=null;
epg.search.search_field_value="";
if(document.getElementById(epg.config.eSearchPane)){document.getElementById(epg.config.eSearchPane).parentNode.removeChild(document.getElementById(epg.config.eSearchPane))
}if(Element.epgGetElementsByClassName(document.getElementById(epg.config.eList),"epg_searchResults").length){document.getElementById(epg.config.eList).removeChild(Element.epgGetElementsByClassName(document.getElementById(epg.config.eList),"epg_searchResults")[0])
}document.getElementById("epg_controls").style.right="110px";
if(document.getElementById(epg.config.eInfoDrag)){document.getElementById(epg.config.eInfoDrag).style.right=20
}if(epg.search.search_form!=null){if(epg.search.search_form.getElementsByTagName("input")[1]){Event.observe(epg.search.search_form.getElementsByTagName("input")[1],"click",epg.search.submit)
}}},submit:function(C){traceSearch("submit",arguments);
var D=epg.search.search_field.value;
if(D.match(/^([0-9]+)$|^([0-9]+)\s\-\s/)){var B=D.match(/^([0-9]+)$/);
if(B){B=B[1]
}else{B=D.match(/^([0-9]+)\s\-\s/)[1]
}var A=epg.data.channelnoMap[B];
if(A){if(epg.stateMachine.isAnyGrid()){epg.grid.gotoChannel(parseInt(A,10))
}else{if(epg.stateMachine.isList()){epg.list.filterByChannel(parseInt(A,10))
}}}else{epg.search.ajaxSearch(escape(D),false)
}}else{if(D==epg.search.last_suggestion){epg.search.ajaxSearch(escape(D),true);
epg.hitbox.send("searchsuggestion")
}else{epg.search.ajaxSearch(escape(D),false)
}}Event.stop(C)
},searchFromSuggestion:function(B){traceSearch("searchFromSuggestion",arguments);
var A=(window.event)?window.event.srcElement:this;
var C=this.innerHTML;
epg.search.search_field.value=C.replace(/&amp;/,"&");
epg.search.ajaxSearch(escape(C.replace(/&amp;/,"&")),true);
epg.hitbox.send("searchsuggestion");
Event.stop(B)
},ajaxEditorsPickSearch:function(B){traceSearch("ajaxEditorsPickSearch",arguments);
epg.search.query="Top Picks";
if(epg.stateMachine.isFilter()){epg.filtering.removeFiltering()
}if(epg.stateMachine.isextendedGrid()){epg.stateMachine.set(4)
}else{if(epg.stateMachine.isAnyGrid()){epg.stateMachine.set(3)
}else{epg.stateMachine.set(5)
}}if(epg.stateMachine.isAnyGrid()&&!epg.search.search_pane){epg.search.createPane();
var A=0-epg.search.search_pane.offsetWidth;
jQuery(epg.search.search_pane).css("right",A).animate({right:0},400,"swing");
jQuery("#epg_controls").css("right",110).animate({right:100-A},400,"swing");
jQuery("#"+epg.config.eInfoDrag).css("right",30).animate({right:10-A},400,"swing");
epg.hitbox.send("pre-setfilter")
}else{if(epg.stateMachine.isAnyGrid()){epg.search.search_pane.innerHTML=epg.search.pane_loading_innerhtml
}}Element.addClassName(epg.search.search_pane,"epg_loading");
if(epg.stateMachine.isAnyGrid()&&epg.search.full_results){epg.search.removeResultIDs()
}testBench({aspect:"Server_EditorsPicks",type:"start"});
var C={editorPicks:"true",time:epg.date.dateToURL(epg.date.currentTime)};
C=epg.tools.cookieToData(C);
epg.tools.doAjax({url:epg.config.fileSearch,data:C,dataType:"json",success:function(D){testBench({aspect:"Server_EditorsPicks",type:"stop"});
epg.search.ajaxSearchResults(D,null,C)
}});
if(B){B.stopPropagation()
}},ajaxSearch:function(G,D,B){if(G!==""){traceSearch("ajaxSearch",arguments);
epg.search.query=unescape(G);
var C=epg.tools.isArray(B)?B.join(","):"";
var A=(D)?"true":"false";
if(epg.stateMachine.isFilter()){epg.filtering.removeFiltering()
}if(epg.stateMachine.isextendedGrid()){epg.stateMachine.set(4)
}else{if(epg.stateMachine.isAnyGrid()){epg.stateMachine.set(3)
}else{epg.stateMachine.set(5)
}}if(epg.stateMachine.isAnyGrid()&&!epg.search.search_pane){epg.search.createPane();
var E=0-epg.search.search_pane.offsetWidth;
jQuery(epg.search.search_pane).css("right",E).animate({right:0},400,"swing");
jQuery("#epg_controls").animate({right:100-E},400,"swing");
jQuery("#"+epg.config.eInfoDrag).animate({right:10-E},400,"swing")
}else{if(epg.stateMachine.isAnyGrid()){epg.search.search_pane.innerHTML=epg.search.pane_loading_innerhtml
}}Element.addClassName(epg.search.search_pane,"epg_loading");
if(epg.stateMachine.isAnyGrid()&&epg.search.full_results){epg.search.removeResultIDs()
}epg.search.not_searched=false;
testBench({aspect:"Server_Search",type:"start"});
var F={query:epg.search.query,fromSuggestion:A,genres:C};
F=epg.tools.cookieToData(F);
epg.tools.doAjax({url:epg.config.fileSearch,type:epg.config.sRPCMethod,data:F,dataType:"json",success:function(H){testBench({aspect:"Server_Search",type:"stop"});
epg.search.ajaxSearchResults(H,null,F)
}});
epg.hitbox.send("searchresults")
}},resultHash:{},lockGotoEvent:false,ajaxSearchResults:function(B,A,C){setTimeout(function(){traceSearch("ajaxSearchResults",arguments);
testBench({aspect:"Render_Search",type:"start"});
epg.search.results=B.results;
if(B.results&&B.results.result){B.results.result=epg.tools.arrayify(B.results.result);
var S=B.results.result;
if(epg.search.full_results){delete (epg.search.full_results)
}epg.search.full_results=[];
if(B.results.fromsuggestion&&B.results.fromsuggestion=="true"){epg.search.collapsed_results=false
}else{epg.search.collapsed_results=true
}var F={},T;
var R=S.length;
for(var K=0,I=S.length;
K<I;
K++){if(S[K].screenings&&S[K].screenings.screening){S[K].screenings.screening=epg.tools.arrayify(S[K].screenings.screening)
}var H={title:(S[K].program.title?S[K].program.title:S[K].program),start:S[K].program.start,channelid:S[K].program.channelid,eventid:S[K].program.eventid,genre:(epg.data.genre[S[K].program.genre]&&epg.data.genre[S[K].program.genre].display)?epg.data.genre[S[K].program.genre].name:false,airings:(epg.search.collapsed_results&&(S[K].screenings&&S[K].screenings.screening.length))?true:false,vodonskyplayer:S[K].vodonskyplayer};
epg.search.full_results.push(H);
if(S[K].screenings&&S[K].screenings.screening){S[K].screenings.screening=epg.tools.arrayify(S[K].screenings.screening)
}if(S[K].screenings){if(!epg.search.collapsed_results){if(S[K].screenings){for(var J=0,L=S[K].screenings.screening.length;
J<L;
J++){T=S[K].screenings.screening[J];
F={};
F.title=H.title;
F.genre=H.genre;
F.eventid=T.eventid;
F.channelid=T.channelid;
F.start=T.start;
epg.search.full_results.push(F)
}}}}}if(!B.results.searchcategories.category&&epg.search.search_genres){delete (epg.search.search_genres);
epg.search.search_genres=[];
if(B.results.related&&B.results.related.category.length){var G=B.results.related.category;
for(K=0,J=G.length;
K<J;
K++){var E={};
E.key=G[K].k;
E.value=G[K].v;
epg.search.search_genres.push(E)
}}}epg.search.search_genre="all";
if(B.results.searchcategories.category){epg.search.search_genre=B.results.searchcategories.category.k
}}else{epg.search.full_results=null
}if(B.results){if(B.results.skyresults){epg.search.sky_results=B.results.skyresults
}else{epg.search.sky_results=0
}}var Q;
if(epg.search.full_results){epg.search.resultHash={};
for(var K=0,J=epg.search.full_results.length;
K<J;
K++){if(epg.search.full_results[K].channelid&&epg.search.full_results[K].eventid){epg.search.resultHash[epg.search.full_results[K].channelid+"_"+epg.search.full_results[K].eventid]=K
}else{if(epg.search.full_results[K].vodonskyplayer){epg.search.resultHash["vodonskyplayer_"+epg.search.full_results[K].vodonskyplayer]=K
}}}Q=epg.search.pane_innerhtml;
if(epg.search.collapsed_results){var V=epg.search.full_results.length;
if(V==1){Q=Q.replace(/XXXresultsXXX/g,"1 result")
}else{Q=Q.replace(/XXXresultsXXX/g,V+" results")
}}else{var V=0;
for(var K=0,J=epg.search.full_results.length;
K<J;
K++){if(epg.search.full_results[K].start){V++
}}if(V==0){Q=Q.replace(/XXXresultsXXX/g,"Results")
}else{if(V==1){Q=Q.replace(/XXXresultsXXX/g,"1 result")
}else{Q=Q.replace(/XXXresultsXXX/g,V+" results")
}}}if(epg.config.api.search.upsell_message.enabled&&epg.Authentication.channelPrefs.properties.iCurrentProvider!==0&&parseInt(epg.search.sky_results,10)){Q=Q.replace(/XXXskyresultsXXX/,epg.search.sky_results)
}else{Q=Q.replace(/<div class="epg_searchResultsFooter">.*?<\/div>/,"")
}Q=Q.replace(/XXXqueryXXX/g,epg.search.query);
var D="";
if(epg.search.collapsed_results){var N=epg.search.genre_innerhtml.replace(/XXXgenreXXX/g,"All");
N=N.replace(/XXXgenresearchXXX/,"'"+epg.search.query+"', false");
if(epg.search.search_genre=="all"){N=N.replace(/XXXgenreclassXXX/g,epg.search.genre_classes[0])
}else{N=N.replace(/XXXgenreclassXXX/g,epg.search.genre_classes[1])
}D+=N;
for(K=0,J=epg.search.search_genres.length;
K<J;
K++){if(!epg.search.search_genres[K].key.match(/^[0-9]+_[0-9]+_|^[0-9]+$/)){N=epg.search.genre_innerhtml.replace(/XXXgenreXXX/,epg.search.search_genres[K].value);
N=N.replace(/XXXgenresearchXXX/,"'"+epg.search.query+"',false,['"+epg.search.search_genres[K].key+"']");
if(epg.search.search_genre==epg.search.search_genres[K].key){N=N.replace(/XXXgenreclassXXX/,epg.search.genre_classes[0])
}else{N=N.replace(/XXXgenreclassXXX/,epg.search.genre_classes[1])
}D+=N
}}Q=Q.replace(/XXXgenresXXX/,D)
}else{Q=Q.replace(/<div class="epg_searchResultsSort">.*?<\/div>/,"")
}var P=[];
var O="";
if(!epg.search.collapsed_results){if(epg.search.full_results[0].vodonskyplayer){epg.search.full_results[0].vodonskyplayer=[epg.search.full_results[0].vodonskyplayer]
}else{epg.search.full_results[0].vodonskyplayer=[]
}for(K=1,J=epg.search.full_results.length;
K<J;
K++){if(epg.search.full_results[K].vodonskyplayer){epg.search.full_results[0].vodonskyplayer.push(epg.search.full_results[K].vodonskyplayer)
}}if(epg.search.full_results[0].vodonskyplayer.length>0){epg.search.full_results.splice(2,0,"vodonskyplayer")
}else{delete (epg.search.full_results[0].vodonskyplayer)
}}for(K=0,J=epg.search.full_results.length;
K<J;
K++){if(epg.data.channels[epg.search.full_results[K].channelid]&&epg.search.full_results[K]!="vodonskyplayer"){P[P.length]='<div id="epg_searchresult_'+epg.search.full_results[K].channelid+"_"+epg.search.full_results[K].eventid+'" class="epg_listRow"><div class="epg_searchOrder">'+((!epg.search.collapsed_results&&epg.search.full_results[0].vodonskyplayer&&K>2)?(K):(K+1))+'</div><div class="epg_programme"><div class="epg_programmeGenre">'+(epg.search.full_results[K].genre?epg.search.full_results[K].genre:"")+'</div><a href="#" class="epg_programmeTitle" onclick="epg.search.resultAction('+K+', this);return false">'+epg.search.full_results[K].title+'</a></div><a href="#" class="epg_schedule" onclick="epg.search.resultAction('+K+', this);return false">'+epg.date.dateToString(epg.search.full_results[K].start)+'</a><a href="#" class="epg_addChannel '+(epg.data.isFavourite(epg.search.full_results[K].channelid)?"epg_on":"")+'" onclick="epg.search.toggleFavourite('+epg.search.full_results[K].channelid+');return false" title="Click to add this epg_programme to your favourites"></a><a href="#" class="epg_channelNumber" onclick="epg.search.resultAction('+K+', this);return false">'+epg.data.channels[epg.search.full_results[K].channelid].channelno+'</a><a href="#" class="epg_channelName" onclick="epg.search.resultAction('+K+', this);return false">'+epg.data.channels[epg.search.full_results[K].channelid].title+"</a>"+(epg.search.full_results[K].airings?'<a href="#" class="epg_viewAirings epg_link_J" onclick="epg.search.ajaxSearch(\''+epg.search.full_results[K].title.replace("'","\\'")+"', true ); return false\">All Airings</a>":"")+(epg.search.full_results[K].vodonskyplayer&&epg.search.collapsed_results?epg.config.search.vodHtml.replace("##VODURL##",epg.search.full_results[K].vodonskyplayer):"")+(epg.config.api.bubble.enabled?'<a href="#" class="epg_expand epg_expand_show" onclick="epg.search.listBubble(this,'+K+');return false">Expand</a>':"")+"</div>"
}if(epg.search.collapsed_results&&epg.search.full_results[K].vodonskyplayer&&!epg.search.full_results[K].channelid){P[P.length]='<div id="epg_searchresult_vod_'+epg.search.full_results[K].vodonskyplayer+'" class="epg_listRow"><div class="epg_searchOrder">'+((!epg.search.collapsed_results&&epg.search.full_results[0].vodonskyplayer&&K>2)?(K):(K+1))+'</div><div class="epg_programme"><div class="epg_programmeGenre">'+(epg.search.full_results[K].genre?epg.search.full_results[K].genre:"")+'</div><p class="epg_programmeTitle">'+epg.search.full_results[K].title+"</p></div>"+(epg.search.full_results[K].airings?'<a href="#" class="epg_viewAirings epg_link_J" onclick="epg.search.ajaxSearch(\''+epg.search.full_results[K].title.replace("'","\\'")+"', true ); return false\">All Airings</a>":"")+(epg.search.full_results[K].vodonskyplayer&&epg.search.collapsed_results?epg.config.search.vodHtml.replace("##VODURL##",epg.search.full_results[K].vodonskyplayer):"")+(epg.config.api.bubble.enabled?'<a href="#" class="epg_expand epg_expand_show" onclick="epg.search.listBubble(this,'+K+');return false">Expand</a>':"")+"</div>"
}if(epg.search.full_results[K]=="vodonskyplayer"){for(var U=0,M=epg.search.full_results[0].vodonskyplayer.length;
U<M;
U++){P[P.length]=epg.config.search.airings_vodHtml.replace("##TITLE##",epg.search.full_results[0].title).replace("##VODURL##",epg.search.full_results[0].vodonskyplayer[U])
}}}Q=Q.replace(/XXXsearchresultsXXX/,P.join(""));
epg.hitbox.send("epg search")
}else{Q=epg.search.pane_empty_innerhtml;
if(epg.config.api.search.upsell_message.enabled&&epg.Authentication.channelPrefs.properties.iCurrentProvider!==0&&parseInt(epg.search.sky_results,10)){Q=Q.replace(/XXXskyresultsXXX/,epg.search.sky_results)
}else{Q=Q.replace(/<div class="epg_searchResultsFooter">.*?<\/div>/,"")
}Q=Q.replace(/XXXqueryXXX/g,epg.search.query)
}Q=Q.replace(/XXXfilteredsearchtextXXX/g,"");
Element.removeClassName(epg.search.search_pane,"epg_loading");
if(epg.stateMachine.isAnyGrid()){epg.search.renderPane(Q);
if(epg.search.full_results&&epg.search.lockGotoEvent===false&&epg.search.full_results[0].eventid){epg.grid.gotoEvent(epg.search.full_results[0].eventid,epg.search.full_results[0].channelid,epg.search.full_results[0].start,true)
}}else{epg.search.renderList(Q)
}jQuery("#epg_searchPane a.vod").click(function(){epg.hitbox.send("skyplayervod")
});
jQuery("#aUnfilteredSearch").click(function(){jQuery("#"+epg.ui.Dropdowns.providers.value_id).html(jQuery("#epg_dropdown_epg_provider_options").html());
epg.hitbox.send("selectprovider");
epg.Authentication.channelPrefs.saveSingleCP(0);
epg.search.ajaxSearch(C.query,C.fromSuggestion,C.genres);
return false
});
testBench({aspect:"Render_Search",type:"stop"})
},200)
},renderPane:function(A){traceSearch("renderPane",arguments);
epg.search.search_pane.innerHTML=A;
epg.search.autoSetHeight()
},renderList:function(A){traceSearch("renderList",arguments);
document.getElementById(epg.config.eListBar).style.display="none";
document.getElementById(epg.config.eListMain).style.display="none";
var B=Element.epgGetElementsByClassName(document.getElementById(epg.config.eList),"epg_searchResults");
if(B.length){B[0].parentNode.removeChild(B[0])
}$(epg.config.eList).insert(A);
epg.search.autoSetHeight()
},createPane:function(){traceSearch("createPane",arguments);
epg.search.search_pane=document.createElement("div");
epg.search.search_pane.setAttribute("id",epg.config.eSearchPane);
epg.search.search_pane.style.height=document.getElementById(epg.config.eGrid).offsetHeight-1+"px";
epg.search.search_pane.onMouseDown=function(){e.stopPropagation()
};
epg.search.search_pane.innerHTML=epg.search.pane_loading_innerhtml;
document.getElementById(epg.config.eGrid).appendChild(epg.search.search_pane)
},autoSetHeight:function(){traceSearch("autoSetHeight",arguments);
var A=document.getElementById(epg.config.eEPG);
var B=Element.epgGetElementsByClassName(A,"epg_searchResults")[0];
var D=Element.epgGetElementsByClassName(B,"epg_searchResultsHeader")[0];
var G=(epg.search.full_results)?Element.epgGetElementsByClassName(B,"epg_searchResultsLister")[0]:Element.epgGetElementsByClassName(B,"epg_searchEmptyResults")[0];
var C=Element.epgGetElementsByClassName(B,"epg_searchResultsFooter");
var F=parseInt(Element.getStyle(B,"paddingTop"),10)*2+parseInt(Element.getStyle(B,"paddingBottom"),10)*2+parseInt(Element.getStyle(G,"paddingTop"),10)+parseInt(Element.getStyle(G,"paddingBottom"),10);
var E=B.parentNode.offsetHeight-D.offsetHeight-F;
if(C.length){E=E-C[0].offsetHeight
}G.style.height=E+"px"
},refresh:function(){traceSearch("refresh",arguments);
if((epg.stateMachine.last!=3&&epg.stateMachine.last!=4)&&epg.stateMachine.isAnyGrid()){epg.search.createPane();
epg.search.search_pane.innerHTML="";
epg.search.search_pane.style.right=0;
document.getElementById(epg.config.eListBar).style.display="";
document.getElementById(epg.config.eListMain).style.display="";
document.getElementById("epg_controls").style.right=110+epg.search.search_pane.offsetWidth+"px";
if(document.getElementById(epg.config.eInfoDrag)){document.getElementById(epg.config.eInfoDrag).style.right=20+epg.search.search_pane.offsetWidth+"px"
}document.getElementById(epg.config.eSearchPane).appendChild(Element.epgGetElementsByClassName(document.getElementById(epg.config.eList),"epg_searchResults")[0]);
epg.grid.gotoEvent(epg.search.full_results[0].eventid,epg.search.full_results[0].channelid,epg.search.full_results[0].start,true)
}else{if((epg.stateMachine.last==3||epg.stateMachine.last==4)&&!epg.stateMachine.isAnyGrid()){document.getElementById(epg.config.eListBar).style.display="none";
document.getElementById(epg.config.eListMain).style.display="none";
document.getElementById(epg.config.eList).appendChild(Element.epgGetElementsByClassName(document.getElementById(epg.config.eGrid),"epg_searchResults")[0]);
epg.search.killPane()
}}setTimeout(epg.search.autoSetHeight,1)
},close:function(B){traceSearch("close",arguments);
epg.stateMachine.set(epg.stateMachine.current-3);
if(epg.stateMachine.isAnyGrid()){var A=0-epg.search.search_pane.offsetWidth;
jQuery(epg.search.search_pane).animate({right:A},200,"swing",function(){epg.search.killPane()
});
jQuery("#epg_controls").animate({right:110},200,"swing");
jQuery("#"+epg.config.eInfoDrag).animate({right:20},200,"swing");
epg.search.search_pane.innerHTML="";
epg.search.removeResultIDs()
}else{if(Element.epgGetElementsByClassName(document.getElementById(epg.config.eList),"epg_searchResults").length){document.getElementById(epg.config.eList).removeChild(Element.epgGetElementsByClassName(document.getElementById(epg.config.eList),"epg_searchResults")[0])
}document.getElementById(epg.config.eListBar).style.display="";
document.getElementById(epg.config.eListMain).style.display="";
epg.list.load(epg.date.currentTime.getTime());
document.getElementById("epg_controls").style.right="110px";
if(document.getElementById(epg.config.eInfoDrag)){document.getElementById(epg.config.eInfoDrag).style.right="20px"
}}return false
},killPane:function(){traceSearch("killPane",arguments);
if(epg.search.search_pane){epg.search.search_pane.parentNode.removeChild(epg.search.search_pane)
}epg.search.search_pane=null
},resultAction:function(D,A){if(epg.search.lockGotoEvent!==false){return 
}traceSearch("resultAction",arguments);
if(epg.stateMachine.isAnyGrid()){epg.grid.gotoEvent(epg.search.full_results[D].eventid,epg.search.full_results[D].channelid,epg.search.full_results[D].start,true)
}else{if(epg.config.api.bubble.enabled){var B=A.parentNode;
while(!Element.hasClassName(B,"epg_listRow")){B=B.parentNode
}var C=Element.epgGetElementsByClassName(B,"epg_expand")[0];
epg.search.listBubble(C,D)
}}},listBubble:function(A,D){traceSearch("listBubble",arguments);
var F=epg.search.full_results[D].channelid;
var I=epg.search.full_results[D].eventid;
var H=(new Date(parseInt(epg.search.full_results[D].start,10))).getDate();
var B=A.parentNode;
while(!B.className.toString().match(/epg_listRow/)){B=B.parentNode
}var G=document.getElementById("bubble_event_"+F+"_"+I);
if(!G){G=document.createElement("div");
G.setAttribute("id","bubble_event_"+F+"_"+I);
G.className="epg_listBubble epg_on";
if(B.nextSibling){B.parentNode.insertBefore(G,B.nextSibling)
}else{B.parentNode.appendChild(G)
}epg.data.getProgram(I,F,H,epg.bubble.processProgramData_list);
jQuery(G).animate({minHeight:190},400,"swing")
}else{if(!Element.hasClassName(G,"epg_on")){var C=G.cloneNode(true);
C.style.position="absolute";
C.style.top="-1000px";
C.style.top="-1000px";
C.style.height="auto";
C.style.display="block";
G.parentNode.appendChild(C);
var E=C.offsetHeight;
G.parentNode.removeChild(C);
G.style.display="block";
Element.addClassName(G,"epg_on");
jQuery(G).animate({height:E},400,"swing");
A.innerHTML="collapse";
Element.removeClassName(A,"epg_expand_show");
Element.addClassName(A,"epg_expand_hide")
}else{Element.removeClassName(G,"epg_on");
G.style.minHeight="";
jQuery(G).animate({height:0},400,"swing",function(){G.style.display="none"
});
A.innerHTML="expand";
Element.removeClassName(A,"epg_expand_hide");
Element.addClassName(A,"epg_expand_show")
}}},toggleFavourite:function(D){traceSearch("toggleFavourite",arguments);
var C=Element.epgGetElementsByClassName(Element.epgGetElementsByClassName(document.getElementById(epg.config.eEPG),"epg_searchResultsLister")[0],"epg_listRow");
var E=false;
if(!epg.data.isFavourite(D)){epg.data.addFavourite(D);
E=true
}else{epg.data.removeFavourite(D)
}for(var A=0,G=C.length;
A<G;
A++){var B=C[A].id.toString().match(/^epg_searchresult_([0-9]+)/);
if(B&&B[1]==D){var F=Element.epgGetElementsByClassName(C[A],"epg_addChannel")[0];
if(E){Element.addClassName(F,"epg_on")
}else{Element.removeClassName(F,"epg_on")
}}}},populateResultIDs:function(){traceSearch("populateResultIDs",arguments);
if(epg.search.full_results){var D;
var C;
for(var A=0,F=epg.search.full_results.length;
A<F;
A++){if(!document.getElementById("search_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid)){var B=document.getElementById("grid_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid);
if(B){C=B.parentNode;
if(!document.getElementById("search_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid)){D=epg.search.result_id_innerhtml.replace(/XXXresultXXX/,A+1);
D=D.createDOMElement();
D.className="epg_searchOrder";
D.setAttribute("id","search_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid);
C.appendChild(D);
D.style.left=Element.positionedFromOffset(B,C).left-D.offsetWidth+"px"
}}var E=document.getElementById("favourite_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid);
if(E){C=E.parentNode;
if(!document.getElementById("search_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid+"_f")){D=epg.search.result_id_innerhtml.replace(/XXXresultXXX/,A+1);
D=D.createDOMElement();
D.className="epg_searchOrder";
D.setAttribute("id","search_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid+"_f");
C.appendChild(D);
D.style.left=Element.positionedFromOffset(E,C).left-D.offsetWidth+"px"
}}}}}},removeResultIDs:function(){traceSearch("removeResultIDs",arguments);
if(epg.search.full_results){var B;
for(var A=0,C=epg.search.full_results.length;
A<C;
A++){B=document.getElementById("search_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid);
if(B){B.parentNode.removeChild(B)
}B=document.getElementById("search_"+epg.search.full_results[A].channelid+"_"+epg.search.full_results[A].eventid+"_f");
if(B){B.parentNode.removeChild(B)
}}}},enableSuggestions:function(){traceSearch("enableSuggestions",arguments);
Event.observe(epg.search.search_field,"keydown",epg.search.captureSuggestionsEvent);
Event.observe(epg.search.search_field,"blur",epg.search.disableSuggestions)
},disableSuggestions:function(){traceSearch("disableSuggestions",arguments);
clearTimeout(epg.search.suggest_timeout);
Event.stopObserving(epg.search.search_field,"keydown",epg.search.captureSuggestionsEvent);
Event.stopObserving(epg.search.search_field,"blur",epg.search.disableSuggestions);
setTimeout(epg.search.removeSuggestions,200)
},captureSuggestionsEvent:function(B){traceSearch("captureSuggestionsEvent",arguments);
clearTimeout(epg.search.suggest_timeout);
epg.search.not_searched=true;
var A=(window.event)?window.event.keyCode:(B.keyCode)?B.keyCode:(B.which)?B.which:null;
var C=epg.search.search_field.value.strip();
if(A==40&&epg.search.suggestion_list){epg.search.downSuggestionList()
}else{if(A==38&&epg.search.suggestion_list){epg.search.upSuggestionList()
}else{if(A!=13&&C.length>1){epg.search.suggest_timeout=setTimeout(epg.search.ajaxSuggest,epg.search.suggestion_delay)
}else{epg.search.removeSuggestions()
}}}},ajaxSuggest:function(C){traceSearch("ajaxSuggest",arguments);
var A=epg.search.search_field.value;
if(A!=epg.search.search_field_value&&A.toString().length>2){var B={prefix:A};
B=epg.tools.cookieToData(B);
epg.tools.doAjax({url:epg.config.fileSuggestion,type:epg.config.sRPCMethod,data:B,dataType:"json",success:function(D){epg.search.ajaxSuggestionResults(D)
}});
epg.search.search_field_value=A
}else{if(A.toString().length<3){epg.search.removeSuggestions()
}}},ajaxSuggestionResults:function(L){traceSearch("ajaxSuggestionResults",arguments);
if(epg.search.not_searched){var B=false;
if(!epg.search.suggestion_list){epg.search.createSuggestionList()
}else{while(epg.search.suggestion_list.childNodes.length){epg.search.suggestion_list.removeChild(epg.search.suggestion_list.firstChild)
}}var C=Element.positionedFromOffset(epg.search.search_field,document.getElementById(epg.config.eEPG));
epg.search.suggestion_list.style.top=C.top+C.height+"px";
epg.search.suggestion_list.style.left=C.left+"px";
epg.search.suggestion_list.style.width=C.width-1+"px";
var K;
var H;
if(L.suggestion){L.suggestion=epg.tools.arrayify(L.suggestion)
}if(L.suggestion&&L.suggestion.length){var D=L.suggestion;
var F=(D.length<epg.search.max_suggestions)?D.length:epg.search.max_suggestions;
for(var I=0;
I<F;
I++){if(D[I].type=="P"||D[I].type=="A"||D[I].type=="S"){K=document.createElement("li");
H=document.createElement("a");
H.className="epg_link_G";
Event.observe(H,"click",epg.search.searchFromSuggestion);
Event.observe(H,"mouseover",epg.search.highlightSuggestion);
Event.observe(H,"mouseout",epg.search.unhighlightSuggestion);
H.appendChild(document.createTextNode(D[I].value));
K.appendChild(H);
epg.search.suggestion_list.appendChild(K)
}else{if(D[I].type=="C"){var E=D[I].value;
if(epg.data.channels[E]){var G=epg.data.channels[E].channelno+" - "+epg.data.channels[E].title;
K=document.createElement("li");
H=document.createElement("a");
H.className="epg_link_G";
H.channel_id=E;
var A=function(){if(epg.stateMachine.isAnyGrid()){epg.search.suggestion_list.blur();
epg.grid.gotoChannel(this.channel_id)
}else{epg.search.suggestion_list.blur();
epg.list.filterByChannel(parseInt(this.channel_id,10))
}};
Event.observe(H,"click",A);
Event.observe(H,"mouseover",epg.search.highlightSuggestion);
Event.observe(H,"mouseout",epg.search.unhighlightSuggestion);
H.appendChild(document.createTextNode(G));
K.appendChild(H);
epg.search.suggestion_list.insertBefore(K,epg.search.suggestion_list.firstChild)
}}}}}else{K=document.createElement("li");
var J=document.createElement("span");
J.appendChild(document.createTextNode(epg.search.no_suggestion_text));
K.appendChild(J);
epg.search.suggestion_list.appendChild(K)
}}else{if(epg.search.suggestion_list){epg.search.removeSuggestions()
}}},createSuggestionList:function(){traceSearch("createSuggestionList",arguments);
epg.search.suggestion_list=document.createElement("ul");
epg.search.suggestion_list.setAttribute("id","epg_suggestions");
document.getElementById(epg.config.eEPG).appendChild(epg.search.suggestion_list)
},removeSuggestions:function(){traceSearch("removeSuggestions",arguments);
epg.search.search_field_value="";
if(epg.search.suggestion_list){document.getElementById(epg.config.eEPG).removeChild(epg.search.suggestion_list)
}epg.search.suggestion_list=null
},downSuggestionList:function(){traceSearch("downSuggestionList",arguments);
var C=-1;
if(epg.search.suggestion_list&&Element.epgGetElementsByClassName(epg.search.suggestion_list,"selected").length){var D=Element.epgGetElementsByClassName(epg.search.suggestion_list,"selected")[0];
Element.removeClassName(D,"selected");
var B=epg.search.suggestion_list.getElementsByTagName("a");
for(var A=0,E=B.length;
A<E;
A++){if(B[A]==D){C=A;
break
}}}C+=1;
if(!epg.search.suggestion_list.getElementsByTagName("a")[C]){C=0
}if(C<epg.search.suggestion_list.getElementsByTagName("a").length){Element.addClassName(epg.search.suggestion_list.getElementsByTagName("a")[C],"selected");
epg.search.search_field.value=epg.search.suggestion_list.getElementsByTagName("a")[C].firstChild.nodeValue;
epg.search.last_suggestion=epg.search.suggestion_list.getElementsByTagName("a")[C].firstChild.nodeValue
}},upSuggestionList:function(){traceSearch("upSuggestionList",arguments);
var C=-1;
if(epg.search.suggestion_list&&Element.epgGetElementsByClassName(epg.search.suggestion_list,"selected").length){var D=Element.epgGetElementsByClassName(epg.search.suggestion_list,"selected")[0];
Element.removeClassName(D,"selected");
var B=epg.search.suggestion_list.getElementsByTagName("a");
for(var A=0,E=B.length;
A<E;
A++){if(B[A]==D){C=A;
break
}}}C-=1;
if(C<0){C=epg.search.suggestion_list.getElementsByTagName("a").length-1
}if(C>-1){Element.addClassName(epg.search.suggestion_list.getElementsByTagName("a")[C],"selected");
epg.search.search_field.value=epg.search.suggestion_list.getElementsByTagName("a")[C].firstChild.nodeValue;
epg.search.last_suggestion=epg.search.suggestion_list.getElementsByTagName("a")[C].firstChild.nodeValue
}},highlightSuggestion:function(){traceSearch("highlightSuggestion",arguments);
var A=(window.event)?window.event.srcElement:this;
Element.addClassName(A,"selected")
},unhighlightSuggestion:function(){traceSearch("unhighlightSuggestion",arguments);
var A=(window.event)?window.event.srcElement:this;
Element.removeClassName(A,"selected")
},swapProvider:function(){traceSearch("swapProvider",arguments);
epg.hitbox.send("seemorefromsky");
epg.search.reloadSearch=epg.search.search_field.value;
epg.Authentication.channelPrefs.saveSingleCP(0)
},reloadSearchTerm:function(){traceSearch("reloadSearchTerm",arguments);
epg.search.search_field.value=epg.search.reloadSearch;
if(epg.search.results&&epg.search.results.fromsuggestion==="true"){epg.search.ajaxSearch(epg.search.reloadSearch,true)
}else{epg.search.ajaxSearch(epg.search.reloadSearch,false)
}epg.search.reloadSearch=null
}};epg.views={init:function(){},tabStates:function(C){traceViews("epg.views.tabStates",arguments);
switch(C){case 0:epg.hitbox.send("maintab_grid");
break;
case 1:epg.hitbox.send("maintab_detailed_grid");
break;
case 2:epg.hitbox.send("maintab_list");
break
}epg.stateMachine.set(epg.stateMachine.getDisplayState(C));
epg.data.UserData.saveData("epg_viewstate",epg.stateMachine.getTabState());
if(epg.stateMachine.current==epg.stateMachine.last){return 
}epg.tools.killAjax();
if(epg.stateMachine.isAnyGrid()&&epg.ui.Dropdowns.times.all_day===true){epg.ui.Dropdowns.times.all_day=false
}epg.ui.infoPane.hideInfo();
if(epg.list.lastViewedTime!==false){epg.date.setCurrentTime(epg.list.lastViewedTime);
traceCurrentTime(19);
epg.ui.Dropdowns.times.update(epg.list.lastViewedTime);
epg.list.lastViewedTime=false
}if(epg.stateMachine.isextendedGrid()){epg.list.clear();
epg.grid.clear();
epg.grid.show();
epg.grid.makeKey()
}if(epg.stateMachine.isGrid()){epg.list.clear();
epg.grid.clear();
epg.grid.show();
epg.grid.makeKey()
}if(epg.stateMachine.isSearch()){epg.search.refresh()
}if(epg.stateMachine.isList()){epg.grid.clear();
epg.list.show();
if(!epg.stateMachine.isSearch()){epg.list.load(epg.date.getTimeOfDay())
}}var B=$("epg_tab_row").epgGetElementsByClassName("epg_tab");
for(var A=0,D=B.length;
A<D;
A++){if(B[A].id.toString()=="epg_stateChanger_"+C){Element.removeClassName(B[A],"epg_tab_off")
}else{Element.addClassName(B[A],"epg_tab_off")
}}},reloadCurrentView:function(){traceViews("epg.views.reloadCurrentView",arguments);
if(epg.stateMachine.isAnyGrid()){epg.grid.clear();
epg.grid.show();
epg.grid.makeKey()
}else{epg.list.tracking.currentBlock=0;
epg.list.load()
}},gotoDay:function(A){traceViews("epg.views.gotoDay",arguments);
if(epg.stateMachine.isSearch()){epg.search.close()
}if(epg.stateMachine.isFilter()){epg.date.setCurrentTime(epg.date.nixToDate(A))
}else{epg.date.setCurrentTime(epg.stateMachine.storedCurrentTime)
}traceCurrentTime(18);
if(!epg.stateMachine.isFilter()){if(epg.stateMachine.isAnyGrid()){epg.grid.gotoDay(A.valueOf())
}if(epg.stateMachine.isList()&&!epg.stateMachine.isSearch()){epg.list.gotoDay(A.valueOf())
}}else{epg.filtering.changeDay()
}epg.hitbox.send("select_day",epg.date.currentDay)
},gotoTime:function(A){traceViews("epg.views.gotoTime",arguments);
if(epg.stateMachine.isSearch()){epg.search.close()
}epg.date.setCurrentTime(A);
traceCurrentTime(17);
A+=epg.date.iLocalTimeOffset;
if(epg.stateMachine.isAnyGrid()){epg.grid.gotoTime(A.valueOf())
}if(epg.stateMachine.isList()&&!epg.stateMachine.isSearch()){epg.list.gotoTime(A.valueOf())
}},gotoEvent:function(C,B,D,A){traceViews("epg.views.gotoEvent",arguments);
if(epg.stateMachine.isAnyGrid()){epg.grid.gotoEvent(C,B,D,true)
}if(epg.stateMachine.isList()){if(epg.stateMachine.isSearch()){epg.search.close()
}epg.list.gotoEvent(C,B,D,true)
}}};
epg.stateMachine={bubble:0,current:0,last:0,storedCurrentTime:false,haveServerTime:false,lastClickedDropDown:false,isHDChannels:false,init:function(B){var A;
if(getURLParam("view")!==null){var A=parseInt(getURLParam("view"))
}else{var A=epg.data.UserCookie.getCookie("epg_viewstate"+epg.config.cookieSuffix)||epg.config.general.default_view
}if((A===0&&!epg.config.api.view.enabled.grid)||(A===1&&!epg.config.api.view.enabled.detailed)||(A===2&&!epg.config.api.view.enabled.list)){A=epg.config.general.default_view
}if(getURLParam("channelId")){A=0
}epg.stateMachine.last=A;
epg.stateMachine.set(A)
},hardReset:function(){epg.stateMachine.init(true)
},getTabState:function(){if(epg.stateMachine.isGrid()){return 0
}else{if(epg.stateMachine.isextendedGrid()){return 1
}else{return 2
}}},getDisplayState:function(A){var B=epg.stateMachine.current;
if(A===0){if(epg.stateMachine.isTvListing()){return 0
}if(epg.stateMachine.isSearch()){return 3
}if(epg.stateMachine.isFilter()){return 6
}}if(A===1){if(epg.stateMachine.isTvListing()){return 1
}if(epg.stateMachine.isSearch()){return 4
}if(epg.stateMachine.isFilter()){return 7
}}if(A===2){if(epg.stateMachine.isTvListing()){return 2
}if(epg.stateMachine.isSearch()){return 5
}if(epg.stateMachine.isFilter()){return 8
}}},isTvListing:function(){return(/0|1|2/).test(epg.stateMachine.current)
},isSearch:function(){if(epg.stateMachine.current===3||epg.stateMachine.current===4||epg.stateMachine.current===5){return true
}else{return false
}},isFilter:function(){if(epg.stateMachine.current===6||epg.stateMachine.current===7||epg.stateMachine.current===8){return true
}else{return false
}},isAnyGrid:function(){return(epg.stateMachine.isextendedGrid()||epg.stateMachine.isGrid())
},isList:function(){return(/2|5|8/).test(epg.stateMachine.current)
},setBubbleState:function(A){epg.stateMachine.bubble=A
},isGrid:function(){if(epg.stateMachine.current===0||epg.stateMachine.current===3||epg.stateMachine.current===6){return true
}else{return false
}},isextendedGrid:function(){if(epg.stateMachine.current===1||epg.stateMachine.current===4||epg.stateMachine.current===7){return true
}else{return false
}},isGrid_last:function(){return(/0|3|6/).test(epg.stateMachine.last)
},isextendedGrid_last:function(){return(/1|4|7/).test(epg.stateMachine.last)
},getCurrentZoom:function(){return epg.stateMachine.isGrid()?0:1
},set:function(B){epg.stateMachine.last=epg.stateMachine.current;
epg.stateMachine.current=B;
var A=$("skyEPG");
if(epg.stateMachine.isAnyGrid()){if(epg.stateMachine.isGrid()){Element.removeClassName(A,epg.config.extendedGrid);
if(epg.stateMachine.isSearch()){}}else{Element.addClassName(A,epg.config.extendedGrid)
}}else{Element.removeClassName(A,epg.config.extendedGrid)
}}};epg.ui={init:function(){traceUi("init",arguments);
epg.ui.writeUI();
epg.ui.setupViews();
epg.ui.Toolbars.init();
epg.ui.setupGrid();
epg.ui.setupList();
epg.ui.infoPane.init();
epg.ui.preloadImages()
},preloadImages:function(){var B="/epg/release/current/images/skin-sky/bubble/";
var A=[B+"bl.gif",B+"bm.gif",B+"br.gif",B+"l.gif",B+"r.gif",B+"tl.gif",B+"tm.gif",B+"tr.gif"];
var D=[];
for(var E=0,C=A.length;
E<C;
E++){D[E]=new Image;
D[E].src=A[E]
}},doFade:function(elementId,msecsToFade,callBack,recursiveCall){jQuery("#"+elementId).addClass("epg_hidden").fadeOut(msecsToFade,function(){eval(callBack)
})
},hardReset:function(){traceUi("init",arguments);
epg.ui.Toolbars.hardReset();
epg.ui.infoPane.hardReset();
epg.ui.modalPane.kill()
},writeUI:function(){traceUi("writeUI",arguments);
var C=[{div:[{div:null,"class":"epg_toolbar1"},{div:null,"class":"epg_toolbar2"},{div:null,"class":"epg_toolbar3"}],"class":"epg_header",id:"epg_header"}];
var A=[{div:[{div:null,id:"epg_timeline","class":"epg_timeline"},{div:null,id:"epg_key","class":"epg_key"},{div:[{SPAN:null,id:"gridWrapper","class":"gridWrapper"}],id:"gridSchedule","class":"gridSchedule notScrolling"},{div:null,"class":"clear"},{div:[{div:null,"class":"epg_scrollButton",id:"epg_scrollS"},{div:null,"class":"epg_scrollButton",id:"epg_scrollE"},{div:null,"class":"epg_scrollButton",id:"epg_scrollW"},{div:null,"class":"epg_scrollButton",id:"epg_scrollN"}],"class":"epg_controls",id:"epg_controls"}],id:"epg_grid","class":"view_off"}];
var B=[{div:[{div:[{div:null,id:"epg_list_filters"},{div:[{form:[{div:"Sort by:","class":"epg_type_1"},{input:null,type:"radio",value:"time",id:"epg_listTime",name:"sort"},{label:"Time","for":"epg_listTime","class":"epg_type_8"},{input:null,type:"radio",value:"channel",id:"epg_listChannel",name:"sort"},{label:"Channel","for":"epg_listChannel","class":"epg_type_8"}]}],"class":"epg_ListViewChoice"}],id:"listViewBar"},{div:null,id:"epg_listViewArea"}],id:"epg_list","class":"view_off"}];
info_pane='<div id="epg_info_outer"><div id="epg_info"></div><div class="epg_info_spacer"></div><div id="epg_info_otherairings"></div></div>';
if(epg.config.general.infoPane_position==1){jQuery("#"+epg.config.eEPG).append(info_pane)
}document.getElementById(epg.config.eEPG).appendChildrenFromObject(C);
document.getElementById(epg.config.eEPG).appendChildrenFromObject(A);
document.getElementById(epg.config.eEPG).appendChildrenFromObject(B);
if(epg.config.general.infoPane_position==0){jQuery("#"+epg.config.eEPG).append(info_pane)
}},setupViews:function(){traceUi("setupViews",arguments);
if(epg.stateMachine.getTabState()===0||epg.stateMachine.getTabState()===1){epg.grid.show()
}else{epg.list.show()
}},setupGrid:function(){traceUi("setupGrid",arguments);
var A=epg.data.UserCookie.getCookie("epg_draginfo"+epg.config.cookieSuffix);
if(!A){epg.ui.Info.createDragInfo()
}epg.ui.nextDay.setup()
},setupList:function(){},Toolbars:{enabled:true,init:function(){this.toolbar1.setup();
this.toolbar2.setup();
this.toolbar3.setup()
},enable:function(){traceUi("Toolbars.enable",arguments);
if(!epg.ui.Toolbars.enabled){if(epg.ui.Toolbars.toolbar1.enabled&&Element.epgGetElementsByClassName(epg.ui.Toolbars.toolbar1.element,"epg_overlay").length){epg.ui.Toolbars.toolbar1.element.removeChild(Element.epgGetElementsByClassName(epg.ui.Toolbars.toolbar1.element,"epg_overlay")[0])
}if(epg.ui.Toolbars.toolbar2.enabled&&Element.epgGetElementsByClassName(epg.ui.Toolbars.toolbar2.element,"epg_overlay").length){epg.ui.Toolbars.toolbar2.element.removeChild(Element.epgGetElementsByClassName(epg.ui.Toolbars.toolbar2.element,"epg_overlay")[0])
}if(epg.ui.Toolbars.toolbar3.enabled&&Element.epgGetElementsByClassName(epg.ui.Toolbars.toolbar3.element,"epg_overlay").length){epg.ui.Toolbars.toolbar3.element.removeChild(Element.epgGetElementsByClassName(epg.ui.Toolbars.toolbar3.element,"epg_overlay")[0])
}epg.ui.Toolbars.enabled=true
}},disable:function(){traceUi("Toolbars.disable",arguments);
if(epg.ui.Toolbars.enabled){var B,A;
if(epg.ui.Toolbars.toolbar1.enabled){B=epg.ui.Toolbars.toolbar1.element;
A=document.createElement("div");
A.className="epg_overlay";
A.style.top=B.offsetTop+"px";
A.style.height=B.offsetHeight+"px";
A.style.width=B.offsetWidth+"px";
B.insertBefore(A,B.firstChild)
}if(epg.ui.Toolbars.toolbar2.enabled){B=epg.ui.Toolbars.toolbar2.element;
A=document.createElement("div");
A.className="epg_overlay";
A.style.top=B.offsetTop+"px";
A.style.height=B.offsetHeight+"px";
A.style.width=B.offsetWidth+"px";
B.insertBefore(A,B.firstChild)
}if(epg.ui.Toolbars.toolbar3.enabled){B=epg.ui.Toolbars.toolbar3.element;
A=document.createElement("div");
A.className="epg_overlay";
A.style.top=B.offsetTop+"px";
A.style.height=B.offsetHeight+"px";
A.style.width=B.offsetWidth+"px";
B.insertBefore(A,B.firstChild)
}epg.ui.Toolbars.enabled=false
}},hardReset:function(){traceUi("Toolbars.hardReset",arguments);
if(document.getElementById("epg_toolFilters")){document.getElementById("epg_toolFilters").parentNode.removeChild(document.getElementById("epg_toolFilters"))
}epg.ui.Toolbars.toolbar3.setup()
},toolbar1:{enabled:false,element:null,setup:function(){if(!jQuery("#epg_header .epg_toolbar1").length){return false
}traceUi("Toolbars.toolbar1.setup",arguments);
var E;
E=epg.ui.Toolbars.toolbar1.element=Element.epgGetElementsByClassName(document.getElementById("epg_header"),"epg_toolbar1")[0];
var B={tabs_start:'<div class="epg_viewTabs" id="epg_tab_row">',tab:'<div id="epg_stateChanger_XXXstateXXX" class="epg_tab epg_tab_off" onclick="epg.views.tabStates(XXXstateXXX)"><div class="epg_tabL">XXXtitleXXX</div><div class="epg_tabR"></div></div>',tabs_end:(epg.config.general.enable_saotv===true?'<div class="epg_tab epg_tab_off" onclick="location.href=\'/saotv/saotv.html\'"><div class="epg_tabL">Anytime TV</div><div class="epg_tabR"></div></div>':"")+"</div>",authentication_start:'<div class="epg_authentication">',authentication_login:'<a href="#" id="epg_login" onclick="epg.Authentication.trigger = \'\';epg.Authentication.display(\'loginOnly\');return false;"><strong>Log in</strong> or <strong>Register</strong> to save your preferences!</a>',authentication_loggedin:'<span>Logged in as XXXuserXXX | </span> <a href="#" id="epg_login" onclick="epg.Authentication.logout();return false;">Log out</a>',authentication_end:"</div>",clear:'<div class="clear"></div>'};
var A="";
var C={on:"epg_tab",off:"epg_tab_off"};
if(epg.config.api.view.enabled.grid||epg.config.api.view.enabled.detailed||epg.config.api.view.enabled.list){A+=B.tabs_start;
var D;
if(epg.config.api.view.enabled.grid){D=B.tab.replace(/XXXstateXXX/g,0);
if(epg.stateMachine.getTabState()===0){D=D.replace(C.off,"")
}A+=D.replace(/XXXtitleXXX/,"grid view")
}if(epg.config.api.view.enabled.detailed){D=B.tab.replace(/XXXstateXXX/g,1);
if(epg.stateMachine.getTabState()===1){D=D.replace(C.off,"")
}A+=D.replace(/XXXtitleXXX/,"detailed grid")
}if(epg.config.api.view.enabled.list){D=B.tab.replace(/XXXstateXXX/g,2);
if(epg.stateMachine.getTabState()===2){D=D.replace(C.off,"")
}A+=D.replace(/XXXtitleXXX/,"list")
}A+=B.tabs_end
}if(epg.config.api.authentication.enabled){A+=B.authentication_start;
if(epg.Authentication.isAuthenticated()){A+=B.authentication_loggedin.replace(/XXXuserXXX/,epg.Authentication.properties.sUserName)
}else{A+=B.authentication_login
}A+=B.authentication_end
}A+=B.clear;
if(A!=B.clear){E.innerHTML=A;
epg.ui.Toolbars.toolbar1.enabled=true
}else{E.parentNode.removeChild(E)
}},updateAuthentication:function(){traceUi("Toolbars.toolbar1.updateAuthentication",arguments);
var A={tabs_start:'<div class="epg_viewTabs" id="epg_tab_row">',tab:'<div id="epg_stateChanger_XXXstateXXX" class="epg_tab epg_tab_off" onclick="epg.views.tabStates(XXXstateXXX)"><div class="epg_tabL">XXXtitleXXX</div><div class="epg_tabR"></div></div>',tabs_end:"</div>",authentication_start:'<div class="epg_authentication">',authentication_login:'<a href="#" id="epg_login" onclick="epg.Authentication.trigger = \'\';epg.Authentication.display(\'loginOnly\');return false;"><strong>Log in</strong> or <strong>Register</strong> to save your preferences!</a>',authentication_loggedin:'<span>Logged in as XXXuserXXX | </span> <a href="#" id="epg_login" onclick="epg.Authentication.logout();return false;">Log out</a>',authentication_end:"</div>",clear:'<div class="clear"></div>'}
}},toolbar2:{enabled:false,setup:function(){traceUi("Toolbars.toolbar2.setup",arguments);
var M;
M=epg.ui.Toolbars.toolbar2.element=Element.epgGetElementsByClassName(document.getElementById("epg_header"),"epg_toolbar2")[0];
var F={dates:function(){var P='<div id="epg_date_links"><div class="epg_tools_day">';
if(epg.config.toolbar.enable_now&&epg.config.toolbar.nowPos=="left"){P+='<a class="epg_block_g4 epg_level_2 epg_now" onclick="XXXclicknowXXX"><span><span><span><span>Now</span></span></span></span></a>'
}P+='<a id="epg_ui_day_XXXdayXXX" class="XXXclassXXX epg_level_2" href="#" onclick="XXXclicktodayXXX"><span><span><span><span>Today</span></span></span></span></a>';
if(epg.config.toolbar.enable_now&&epg.config.toolbar.nowPos=="right"){P+='<a class="epg_block_g4 epg_level_2 epg_now" onclick="XXXclicknowXXX"><span><span><span><span>Now</span></span></span></span></a>'
}P+='</div><div class="epg_tools_week epg_vertical_line">XXXdaysXXX</div></div>';
return P
},date_links:'<a id="epg_ui_day_XXXdayXXX" class="XXXclassXXX epg_level_0" href="#" onclick="XXXclickXXX"><span><span><span><span class="epg_week_day">XXXweekdayXXX</span><span class="epg_date">XXXdayXXX</span></span></span></span></a>',search:'<div class="epg_searchBoxHolder" id="epg_search"><form action="#" id="epg_search_form"><div class="epg_filters_text">SEARCH: <span>Prog, Actor or Channel</span></div><input name="login_field" type="text" value="" class="epg_searchField" autocomplete="off" /><input class="epg_searchButton" name="Search" type="submit" value="" alt="Search" onMousedown="epg.hitbox.send(\'search_go_button\')" /></form></div>',dropdown_start:'<div class="epg_dropDownHolder">',dropdown_end:"</div>",clear:'<div class="clear"></div>'};
var G="";
var B=["epg_block_g3","epg_block_g4"];
var O=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
if(epg.config.api.toolbar.dates.enabled){var D=(epg.config.api.toolbar.dates.initial===0)?B[0]:B[1];
var E=new Date();
E.setTime(epg.date.currentTime.getTime());
var N=F.dates().replace(/XXXclassXXX/,D);
N=N.replace(/XXXdayXXX/,E.getDate());
N=N.replace(/XXXclicktodayXXX/,"epg.views.gotoDay("+E.valueOf()+");epg.ui.Button.toggle(this,document.getElementById('epg_date_links'));return false");
N=N.replace(/XXXclicknowXXX/,"epg.views.gotoTime((new Date).valueOf());epg.ui.Button.toggle(this.previousSibling,document.getElementById('epg_date_links'));return false");
var A="";
for(var L=0,K=epg.config.api.toolbar.dates.days-1;
L<K;
L++){E.setDate(E.getDate()+1);
var J=E.getDate();
var I=O[E.getDay()];
var C=F.date_links.replace(/XXXweekdayXXX/,I);
var H=(epg.config.api.toolbar.dates.initial==L+1)?B[0]:B[1];
C=C.replace(/XXXdayXXX/g,J);
C=C.replace(/XXXclickXXX/,"epg.views.gotoDay("+E.valueOf()+");epg.ui.Button.toggle(this,document.getElementById('epg_date_links'));return false");
C=C.replace(/XXXclassXXX/,H);
A+=C
}N=N.replace(/XXXdaysXXX/,A);
G+=N
}if(epg.config.api.toolbar.time_of_day.enabled||epg.config.api.toolbar.provider.enabled){G+=F.dropdown_start
}if(epg.config.api.toolbar.time_of_day.enabled){G+=epg.ui.Dropdowns.createDropdown("time","Time of Day","epg_block_g3",true,"epg_vertical_line")
}if(epg.config.api.toolbar.provider.enabled){G+=epg.ui.Dropdowns.createDropdown("provider","Channel Filters &amp; Setup","epg_block_g3",true,"epg_vertical_line")
}if(epg.config.api.toolbar.time_of_day.enabled||epg.config.api.toolbar.provider.enabled){G+=F.dropdown_end
}if(epg.config.api.search.enabled){G+=F.search
}G+=F.clear;
if(G!=F.clear){M.innerHTML=G;
epg.ui.Toolbars.toolbar2.enabled=true
}else{M.parentNode.removeChild(M)
}if(epg.config.api.toolbar.time_of_day.enabled){epg.ui.Dropdowns.times.setup()
}if(epg.config.api.toolbar.provider.enabled){epg.ui.Dropdowns.providers.setup()
}if(epg.config.general.enable_search){epg.search.search_field=document.getElementById("epg_search").getElementsByTagName("input")[0];
epg.search.search_form=document.getElementById("epg_search").getElementsByTagName("form")[0];
Event.observe(epg.search.search_form,"submit",epg.search.submit);
Event.observe(epg.search.search_field,"focus",epg.search.enableSuggestions)
}if(!epg.config.toolbar.enable_provider){jQuery("#providerDropDownContainer").css("display","none")
}if(!epg.config.toolbar.enable_time_of_day){jQuery("#timeDropDownContainer").css("display","none")
}},setDay:function(C){traceUi("Toolbars.toolbar2.setDay",arguments);
if(epg.config.api.toolbar.dates.enabled){jQuery("#epg_date_links .epg_block_g3").removeClass("epg_block_g3").addClass("epg_block_g4");
for(var A=0,D=epg.config.api.toolbar.dates.days+1;
A<D;
A++){var B=new Date((new Date()).setDate((new Date()).getDate()+A)).getDate();
if(C==B){jQuery("#epg_ui_day_"+B).removeClass("epg_block_g4").addClass("epg_block_g3")
}}}}},toolbar3:{enabled:false,container:null,toolbar_html:{filter:"<span><span><span><span>XXXnameXXX</span></span></span></span>",filter_separator:'<div class="epg_vertical_separator">|</div>',clear:'<div class="clear"></div>'},filter_classes:{on:"epg_block_g3",off:"epg_block_g4",special:"epg_block_4b"},setup:function(){traceUi("Toolbars.toolbar3.setup",arguments);
epg.ui.Toolbars.toolbar3.container=epg.ui.Toolbars.toolbar3.element=Element.epgGetElementsByClassName(document.getElementById("epg_header"),"epg_toolbar3")[0];
if(epg.config.api.filters.enabled){epg.ui.Toolbars.toolbar3.enabled=true
}else{if(epg.ui.Toolbars.toolbar3.container){epg.ui.Toolbars.toolbar3.container.parentNode.removeChild(epg.ui.Toolbars.toolbar3.container)
}}if(epg.config.api.filters.enabled){var A;
var B=document.createElement("div");
B.setAttribute("id","epg_toolFilters");
A=document.createElement("a");
A.setAttribute("href","#");
A.setAttribute("id","epg_filter_off");
A.className="epg_filter epg_level_2";
Element.addClassName(A,epg.ui.Toolbars.toolbar3.filter_classes.on);
Event.observe(A,"click",epg.filtering.removeFiltering);
A.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter.replace(/XXXnameXXX/,"All Programmes").createDOMElement());
B.appendChild(A);
if(epg.config.api.filters.quickbrowse.enabled){A=document.createElement("a");
A.setAttribute("href","#");
A.setAttribute("id","epg_filter_main");
A.className="epg_filter epg_level_2";
Element.addClassName(A,epg.ui.Toolbars.toolbar3.filter_classes.off);
A.onclick=epg.filtering.quickBrowse;
A.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter.replace(/XXXnameXXX/,"Browse By Tags").createDOMElement());
B.appendChild(A)
}if(epg.filtering.filters||epg.config.api.filters.special){B.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter_separator.createDOMElement())
}if(epg.config.api.filters.special){A=document.createElement("a");
A.setAttribute("href","javascript:;");
A.setAttribute("id","epg_filter_special");
A.className="epg_filter epg_level_2";
Element.addClassName(A,epg.ui.Toolbars.toolbar3.filter_classes.special);
A.onclick=epg.search.ajaxEditorsPickSearch;
A.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter.replace(/XXXnameXXX/,"Top picks").createDOMElement());
B.appendChild(A)
}if(epg.config.general.enable_favourites){A=document.createElement("a");
A.setAttribute("href","#");
A.setAttribute("id","epg_filter_favourites");
A.className="epg_filter epg_level_2";
Element.addClassName(A,epg.ui.Toolbars.toolbar3.filter_classes.off);
A.onclick=epg.ui.Toolbars.toolbar3.goToFavourites;
A.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter.replace(/XXXnameXXX/,"Favourites").createDOMElement());
B.appendChild(A)
}epg.ui.Toolbars.toolbar3.container.appendChild(B)
}},goToFavourites:function(C){traceUi("Toolbars.toolbar3.goToFavourites",arguments);
if(epg.stateMachine.isAnyGrid()){epg.grid.scrollTo(false,0,2)
}else{if(epg.stateMachine.isList()){var A=epg.data.favourites;
var B=0;
for(kFavourite in A){B++
}if(B>0){epg.list.filterByGenre("Favourites")
}}}if(C){C.preventDefault();
C.stopPropagation()
}},populate:function(){traceUi("Toolbars.toolbar3.populate",arguments);
if(epg.config.api.filters.enabled){var C=document.getElementById("epg_toolFilters");
if(epg.filtering.filters){for(var A in epg.filtering.filters){if(A!=epg.filtering.main_filter&&(!A!=epg.config.api.filters.initial||(A!=epg.config.api.filters.initial&&A!=epg.config.api.filters.initial.name))&&jQuery("#epg_filter_"+epg.filtering.filters[A].name.toWord()).length==0){var B=document.createElement("a");
B.setAttribute("href","#");
B.setAttribute("id","epg_filter_"+epg.filtering.filters[A].name.toWord());
B.className="epg_filter epg_level_2";
Element.addClassName(B,epg.ui.Toolbars.toolbar3.filter_classes.off);
B.onclick=epg.filtering.selectFilter;
B.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter.replace(/XXXnameXXX/,epg.filtering.filters[A].name).createDOMElement());
C.appendChild(B)
}}}C.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.clear.createDOMElement());
if(epg.filtering.filters[epg.filtering.main_filter].genres.length){if(jQuery("#epg_toolFilters .epg_edit").length==0){epg.ui.Toolbars.toolbar3.appendAction(document.getElementById("epg_filter_main"),"edit",epg.filtering.editFilter)
}}}},select:function(A){traceUi("Toolbars.toolbar3.select",arguments);
jQuery("#epg_toolFilters ."+epg.ui.Toolbars.toolbar3.filter_classes.on).removeClass(epg.ui.Toolbars.toolbar3.filter_classes.on).addClass(epg.ui.Toolbars.toolbar3.filter_classes.off);
jQuery(A).removeClass(epg.ui.Toolbars.toolbar3.filter_classes.off).addClass(epg.ui.Toolbars.toolbar3.filter_classes.on)
},appendAction:function(A,D,C){traceUi("Toolbars.toolbar3.appendAction",arguments);
var B=document.createElement("a");
B.setAttribute("href","#");
B.className="epg_filter epg_level_2";
Element.addClassName(B,"epg_block_g2 epg_"+D);
Event.observe(B,"click",C);
B.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter.replace(/XXXnameXXX/,D).createDOMElement());
if(A.nextSibling){A.parentNode.insertBefore(B,A.nextSibling)
}else{A.parentNode.appendChild(B)
}},removeAction:function(A){traceUi("Toolbars.toolbar3.removeAction",arguments);
A.parentNode.removeChild(A.nextSibling)
},appendTag:function(C){traceUi("Toolbars.toolbar3.appendTag",arguments);
if(document.getElementById("epg_filter_tag")){epg.ui.Toolbars.toolbar3.removeTag()
}jQuery("#epg_toolFilters ."+epg.ui.Toolbars.toolbar3.filter_classes.on).removeClass(epg.ui.Toolbars.toolbar3.filter_classes.on).addClass(epg.ui.Toolbars.toolbar3.filter_classes.off);
var A=document.createElement("a");
A.setAttribute("href","#");
A.setAttribute("id","epg_filter_tag");
A.className="epg_filter epg_level_2";
Element.addClassName(A,"epg_block_g3");
Event.observe(A,"click",function(D){Event.stop(D)
});
A.appendChild(epg.ui.Toolbars.toolbar3.toolbar_html.filter.replace(/XXXnameXXX/,C).createDOMElement());
var B=Element.epgGetElementsByClassName(epg.ui.Toolbars.toolbar3.container,"epg_vertical_separator");
if(B.length){B[0].parentNode.insertBefore(A,B[0])
}else{epg.ui.Toolbars.toolbar3.container.appendChild(A)
}},removeTag:function(){traceUi("Toolbars.toolbar3.removeTag",arguments);
document.getElementById("epg_filter_tag").parentNode.removeChild(document.getElementById("epg_filter_tag"))
}},listFilterBar:{setup:function(){traceUi("Toolbars.listFilterBar.setup",arguments);
if(epg.config.api.list.dropdowns.enabled.genre){jQuery("#"+epg.config.eListBarFilterWrapper).append(epg.ui.Dropdowns.createDropdown("view_by_genre","by genre","epg_block_g1",true,""));
epg.ui.Dropdowns.listViewByGenre.setup()
}if(epg.config.api.list.dropdowns.enabled.channel){jQuery("#"+epg.config.eListBarFilterWrapper).append(epg.ui.Dropdowns.createDropdown("view_by_channel","by channel","epg_block_g1",true,""));
epg.ui.Dropdowns.listViewByChannel.setup()
}if(epg.config.api.list.sort_type.enabled.channel&&epg.config.api.list.sort_type.enabled.time){var B=epg.config.api.list.sort_type.initial;
var A=jQuery(epg.config.eListBarSortChannel).parents("form")[0];
jQuery("#"+epg.config.eListBarSortChannel)[0].checked=(epg.list.tracking.sortType===0)?true:false;
jQuery("#"+epg.config.eListBarSortTime)[0].checked=(epg.list.tracking.sortType===1)?true:false
}else{jQuery("#"+epg.config.eListBarSortOptions).remove()
}if(!epg.config.api.list.dropdowns.enabled.genre&&!epg.config.api.list.dropdowns.enabled.channel&&!epg.config.api.list.sort_type.enabled.time&&!epg.config.api.list.sort_type.enabled.channel){jQuery("#"+epg.config.eListBar).hide()
}}}},nextDay:{setup:function(){traceUi("Toolbars.nextDay.setup",arguments);
var B='<span id="epg_next_day">Go to next day</span>';
var A=B.createDOMElement();
document.getElementById(epg.config.eGrid).appendChild(A);
Event.observe(document.getElementById("epg_next_day"),"click",epg.grid.scrollToNextMorning)
},display:function(){traceUi("Toolbars.nextDay.display",arguments);
jQuery("#epg_next_day").fadeIn(200)
},hide:function(){traceUi("Toolbars.nextDay.hide",arguments);
jQuery("#epg_next_day").css("display","")
}},Info:{createDragInfo:function(){traceUi("Toolbars.Info.createDragInfo",arguments);
var B='<div id="epg_info_drag">TIP<br />You can also drag the programme guide with your mouse cursor<div id="epg_close_info_drag">close</div></div>';
var A=B.createDOMElement();
document.getElementById(epg.config.eGrid).appendChild(A);
Event.observe(document.getElementById(epg.config.eInfoCloseDrag),"click",epg.ui.Info.closeDragInfo)
},closeDragInfo:function(){traceUi("Toolbars.Info.closeDragInfo",arguments);
epg.data.UserData.saveData("epg_draginfo",{visible:true});
Event.stopObserving(document.getElementById(epg.config.eInfoCloseDrag,"click",epg.ui.Info.closeDragInfo));
jQuery("#"+epg.config.eInfoDrag).fadeOut(500,function(){epg.ui.Info.killDragInfo
})
},killDragInfo:function(){traceUi("Toolbars.Info.killDragInfo",arguments);
document.getElementById(epg.config.eGrid).removeChild(document.getElementById(epg.config.eInfoDrag))
}},Dropdowns:{container_id:"skyEPG",dropdown_id:"epg_dropdown",css_class:"epg_dropdown",current_dropdown:null,html:{dropdown:'<div class="epg_dropDown_container XXXcontainerClassXXX" id="XXXcontainerIdXXXDropDownContainer"><div class="epg_filters_text">XXXlabelXXX:</div><div id="epg_XXXnameXXX_options"><a class="XXXclassXXX epg_level_1" href="#"><span><span><span><span id="epg_XXXnameXXX_chosen"></span></span></span></span></a><a href="#" class="epg_dropdown_arrow">Click to choose an option</a></div></div>'},times:{content:null,element_id:"epg_time_options",value_id:"epg_time_chosen",all_day:false,setup:function(){traceUi("epg.ui.Dropdowns.setup",arguments);
epg.ui.Dropdowns.times.content=epg.ui.Dropdowns.times.parseEPGTimeTracking();
if(document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML===""||(epg.list.tracking.sortType===1&&document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML=="All day")){document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML=epg.ui.Dropdowns.times.content[0]
}Event.observe(document.getElementById(epg.ui.Dropdowns.times.element_id),"click",epg.ui.Dropdowns.times.display)
},action:function(G){traceUi("epg.ui.Dropdowns.action",arguments);
epg.stateMachine.lastClickedDropDown=epg.ui.Dropdowns.times.element_id;
var A;
var E=(window.event)?window.event.srcElement:this;
var F=E.firstChild.nodeValue||E.firstChild.innerHTML;
for(var C=0,B=epg.date.timeOfDay().length;
C<B;
C++){if(epg.date.timeOfDay()[C].text==F){A=epg.date.timeOfDay()[C].hour;
break
}}if(A==null){A="All day"
}if(A==="All day"){A=0;
F="12am";
epg.ui.Dropdowns.times.all_day=true;
document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML="All day";
if(epg.stateMachine.isList()){epg.list.lastViewedTime=epg.date.currentTime.getTime()
}}else{epg.ui.Dropdowns.times.all_day=false;
document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML=F
}if(isNaN(A)){var D=epg.date.timeFromString(F)
}else{var D=epg.date.timeFromString(A)
}epg.date.setCurrentTime(D.valueOf());
traceCurrentTime(16);
epg.views.gotoTime(D.valueOf());
epg.hitbox.send("select_time",jQuery("#epg_time_chosen").html());
try{G.preventDefault()
}catch(G){}return false
},parseEPGTimeTracking:function(){traceUi("epg.ui.Dropdowns.parseEPGTimeTracking",arguments);
var B=[];
for(var A in epg.date.timeOfDay()){if(epg.date.timeOfDay()[A].hour!==undefined){B[B.length]=epg.date.timeOfDay()[A].text
}}return B
},display:function(A){traceUi("epg.ui.Dropdowns.display",arguments);
var B=epg.ui.Dropdowns.times.content;
if(epg.stateMachine.isList()&&epg.list.tracking.sortType===0){B.push("All day")
}epg.ui.Dropdowns.createDropdownList(epg.ui.Dropdowns.times.element_id);
epg.ui.Dropdowns.populateDropdown(B,epg.ui.Dropdowns.times.action);
epg.ui.Dropdowns.setupEvents();
Event.stopObserving(document.getElementById(epg.ui.Dropdowns.times.element_id),"click",epg.ui.Dropdowns.times.display);
A.preventDefault();
A.stopPropagation();
return false
},update:function(F){traceUi("epg.ui.Dropdowns.update",arguments);
var A=new Date(F);
var B=A.getHours();
var J=[];
var G=0;
for(var I=0,H=epg.ui.Dropdowns.times.content.length;
I<H;
I++){var C;
for(var E=0,D=epg.date.timeOfDay().length;
E<D;
E++){if(epg.date.timeOfDay()[E].text==epg.ui.Dropdowns.times.content[I]){C=epg.date.timeOfDay()[E].hour;
break
}}J[J.length]=C;
if(B>=C){G=I
}}document.getElementById(epg.ui.Dropdowns.times.value_id).innerHTML=epg.ui.Dropdowns.times.content[G]
}},rollOver:function(A){traceUi("epg.ui.Dropdowns.rollOver",arguments);
if(!A.innerHTML){A=A.target
}if(A.tagName!=="A"){return 
}A.style.backgroundColor="#009BD4";
jQuery(A).css("color","#4F514F").animate({color:"#ffffff"},300,"swing")
},rollOut:function(A){traceUi("epg.ui.Dropdowns.rollOut",arguments);
if(!A.innerHTML){A=A.target
}if(A.tagName!=="A"){return 
}A.style.backgroundColor="#ffffff";
jQuery(A).css("color","#ffffff").animate({color:"#4F514F"},400,"swing")
},providers:{content:[],element_id:"epg_provider_options",value_id:"epg_provider_chosen",setup:function(){traceUi("epg.ui.Dropdowns.providers.setup",arguments);
epg.ui.Dropdowns.providers.createContent();
if(document.getElementById(epg.ui.Dropdowns.providers.value_id)){var B=epg.Authentication.channelPrefs.properties.iCurrentProvider;
var A="London";
switch(B){case (epg.Authentication.channelPrefs.properties.oArrayProviderMap.virgin):A="Virgin";
break;
case (epg.Authentication.channelPrefs.properties.oArrayProviderMap.freeview):A="freeview";
break;
default:if(epg.data.selectedRegion!==undefined){A=epg.data.selectedRegion
}}if(epg.stateMachine.isHDChannels===true){A="HD Channels"
}document.getElementById(epg.ui.Dropdowns.providers.value_id).innerHTML=A
}jQuery("#"+epg.ui.Dropdowns.providers.element_id).click(epg.ui.Dropdowns.providers.display)
},createContent:function(){traceUi("epg.ui.Dropdowns.providers.createContent",arguments);
var C='<a href="#" class="epg_link_G providerDDItem" onclick="epg.Authentication.channelPrefs.saveSingleCP(0);" onMouseOver="epg.ui.Dropdowns.rollOver(this);return false;" onMouseOut="epg.ui.Dropdowns.rollOut(this);return false;">London</a>';
var B='<a href="#" class="epg_link_G" onclick="epg.Authentication.channelPrefs.saveSingleCP(1);" onMouseOver="epg.ui.Dropdowns.rollOver(this);return false;" onMouseOut="epg.ui.Dropdowns.rollOut(this);return false;">Virgin</a>';
var A='<a href="#" class="epg_link_G" onclick="epg.Authentication.channelPrefs.saveSingleCP(2);" onMouseOver="epg.ui.Dropdowns.rollOver(this);return false;" onMouseOut="epg.ui.Dropdowns.rollOut(this);return false;">freeview</a>';
var D='<a href="#" class="epg_link_J" onclick="epg.Authentication.trigger = \'\';epg.Authentication.display(\'channelSetup\');" >My Channels</a>';
var E='<a href="#" class="epg_link_J" onclick="epg.Authentication.channelPrefs.saveSingleCP(3);" >HD Channels</a>';
var F='<a href="#" class="epg_link_J" onclick="epg.Authentication.trigger = \'\';epg.Authentication.display(\'channelSetupEdit\');">(Edit)</a>';
epg.ui.Dropdowns.providers.content=[C,D,E,F]
},display:function(A){traceUi("epg.ui.Dropdowns.providers.display",arguments);
epg.ui.Dropdowns.providers.setup();
epg.ui.Dropdowns.createDropdownList(epg.ui.Dropdowns.providers.element_id);
epg.ui.Dropdowns.populateDropdown(epg.ui.Dropdowns.providers.content,epg.ui.Dropdowns.providers.action);
epg.ui.Dropdowns.setupEvents();
Event.stopObserving(document.getElementById(epg.ui.Dropdowns.providers.element_id),"click",epg.ui.Dropdowns.providers.display);
A.preventDefault();
A.stopPropagation();
return false
},action:function(B){traceUi("epg.ui.Dropdowns.providers.action",arguments);
epg.stateMachine.lastClickedDropDown=epg.ui.Dropdowns.providers.element_id;
var A=(window.event)?window.event.srcElement:this;
var C=A.firstChild.nodeValue||A.firstChild.innerHTML;
document.getElementById(epg.ui.Dropdowns.providers.value_id).innerHTML=C;
epg.hitbox.send("selectprovider");
try{B.preventDefault()
}catch(B){}return false
}},listViewByChannel:{content:["All Channels"],element_id:"epg_view_by_channel_options",value_id:"epg_view_by_channel_chosen",all_day:false,bIsDefault:true,setup:function(){traceUi("epg.ui.Dropdowns.listViewByChannel.setup",arguments);
epg.ui.Dropdowns.listViewByChannel.content=["All Channels"];
var A=epg.data.current;
if(!epg.ui.Dropdowns.listViewByGenre.bIsDefault){A=epg.list.aListGenreCurrent
}$A(A).each(function(B){epg.ui.Dropdowns.listViewByChannel.content[epg.ui.Dropdowns.listViewByChannel.content.length]=epg.data.channels[B].title
});
if(jQuery("#"+epg.ui.Dropdowns.listViewByChannel.value_id).html()===""){jQuery("#"+epg.ui.Dropdowns.listViewByChannel.value_id).html(epg.ui.Dropdowns.listViewByChannel.content[0])
}jQuery("#epg_view_by_channel_options").click(epg.ui.Dropdowns.listViewByChannel.display)
},action:function(B){traceUi("epg.ui.Dropdowns.listViewByChannel.action",arguments);
epg.stateMachine.lastClickedDropDown=epg.ui.Dropdowns.listViewByChannel.element_id;
var A=epg.tools.getTarget(B);
var C=A.firstChild.nodeValue||A.firstChild.innerHTML;
if(epg.stateMachine.lastClickedDropDown=="epg_view_by_channel_options"){epg.ui.Dropdowns.listViewByChannel.storeChannelDropHistory(C)
}jQuery("#"+epg.ui.Dropdowns.listViewByChannel.value_id).html(C);
epg.list.filterByChannel(A.innerHTML)
},channelDropHistory:[],storeChannelDropHistory:function(A){traceUi("epg.ui.Dropdowns.listViewByChannel.storeChannelDropHistory",arguments);
var D=false;
if(epg.ui.Dropdowns.listViewByChannel.channelDropHistory.length>0){for(var C=0,B=epg.ui.Dropdowns.listViewByChannel.channelDropHistory.length;
C<B;
C++){if(A===epg.ui.Dropdowns.listViewByChannel.channelDropHistory[C]){D=true
}}}if(!D&&A!="All Channels"){epg.ui.Dropdowns.listViewByChannel.channelDropHistory.push(A)
}},display:function(A){traceUi("epg.ui.Dropdowns.listViewByChannel.display",arguments);
epg.ui.Dropdowns.createDropdownList(epg.ui.Dropdowns.listViewByChannel.element_id);
epg.ui.Dropdowns.populateDropdown(epg.ui.Dropdowns.listViewByChannel.content,epg.ui.Dropdowns.listViewByChannel.action);
epg.ui.Dropdowns.setupEvents();
jQuery("#"+epg.ui.Dropdowns.listViewByChannel.element_id).unbind("click",epg.ui.Dropdowns.listViewByChannel.display);
epg.tools.cancelBubble(A)
},reset:function(A){traceUi("epg.ui.Dropdowns.listViewByChannel.reset",arguments);
if(jQuery("#"+epg.ui.Dropdowns.listViewByChannel.value_id).length>0){jQuery("#"+epg.ui.Dropdowns.listViewByChannel.value_id).html(epg.ui.Dropdowns.listViewByChannel.content[0]);
epg.ui.Dropdowns.listViewByChannel.bIsDefault=true
}}},listViewByGenre:{content:["Channel Categories"],omitFromContent:((epg.config.api.favourites.enabled===true)?["all"]:["all","fave"]),element_id:"epg_view_by_genre_options",value_id:"epg_view_by_genre_chosen",all_day:false,bIsDefault:true,setup:function(){traceUi("epg.ui.Dropdowns.listViewByGenre.setup",arguments);
epg.ui.Dropdowns.listViewByGenre.content=["Channel Categories"];
for(var A in epg.data.epggenre){if(!$A(epg.ui.Dropdowns.listViewByGenre.omitFromContent).include(A)){epg.ui.Dropdowns.listViewByGenre.content[epg.ui.Dropdowns.listViewByGenre.content.length]=epg.data.epggenre[A].name
}}if($(epg.ui.Dropdowns.listViewByGenre.value_id)){if($(epg.ui.Dropdowns.listViewByGenre.value_id).innerHTML===""){$(epg.ui.Dropdowns.listViewByGenre.value_id).innerHTML=epg.ui.Dropdowns.listViewByGenre.content[0]
}Event.observe($(epg.ui.Dropdowns.listViewByGenre.element_id),"click",epg.ui.Dropdowns.listViewByGenre.display)
}},action:function(B){traceUi("epg.ui.Dropdowns.listViewByGenre.action",arguments);
epg.stateMachine.lastClickedDropDown=epg.ui.Dropdowns.listViewByGenre.element_id;
var A=epg.tools.getTarget(B);
var C=A.firstChild.nodeValue||A.firstChild.innerHTML;
$(epg.ui.Dropdowns.listViewByGenre.value_id).innerHTML=C;
epg.list.filterByGenre(A.innerHTML)
},display:function(A){traceUi("epg.ui.Dropdowns.listViewByGenre.display",arguments);
$(epg.ui.Dropdowns.listViewByGenre.display).innerHTML="";
epg.ui.Dropdowns.createDropdownList(epg.ui.Dropdowns.listViewByGenre.element_id);
epg.ui.Dropdowns.populateDropdown(epg.ui.Dropdowns.listViewByGenre.content,epg.ui.Dropdowns.listViewByGenre.action);
epg.ui.Dropdowns.setupEvents();
Event.stopObserving($(epg.ui.Dropdowns.listViewByGenre.element_id),"click",epg.ui.Dropdowns.listViewByGenre.display);
epg.tools.cancelBubble(A)
},reset:function(B){traceUi("epg.ui.Dropdowns.listViewByGenre.reset",arguments);
var A=$(epg.ui.Dropdowns.listViewByGenre.value_id);
if(!A){return 
}A.innerHTML=epg.ui.Dropdowns.listViewByGenre.content[0];
epg.ui.Dropdowns.listViewByGenre.bIsDefault=true
}},setupEvents:function(){traceUi("epg.ui.Dropdowns.listViewByGenre.setupEvents",arguments);
Event.observe(document.body,"click",epg.ui.Dropdowns.closeDropdown)
},createDropdown:function(C,B,E,D,A){traceUi("epg.ui.Dropdowns.listViewByGenre.createDropdown",arguments);
var F=epg.ui.Dropdowns.html.dropdown.replace(/XXXnameXXX/g,C);
F=F.replace(/XXXlabelXXX/g,B);
F=F.replace(/XXXclassXXX/g,E);
F=F.replace(/XXXcontainerClassXXX/g,A);
F=F.replace(/XXXcontainerIdXXX/g,C);
return D?F:F.createDOMElement()
},createDropdownList:function(C){traceUi("epg.ui.Dropdowns.listViewByGenre.createDropdownList",arguments);
var A=document.getElementById(C);
if(epg.ui.Dropdowns.current_dropdown){epg.ui.Dropdowns.current_dropdown.innerHTML=""
}else{epg.ui.Dropdowns.current_dropdown=document.createElement("ul");
epg.ui.Dropdowns.current_dropdown.setAttribute("id",epg.ui.Dropdowns.dropdown_id+"_"+C);
epg.ui.Dropdowns.current_dropdown.className=epg.ui.Dropdowns.css_class;
document.getElementById(epg.ui.Dropdowns.container_id).appendChild(epg.ui.Dropdowns.current_dropdown)
}var B=Element.positionedFromOffset(A.getElementsByTagName("a")[0],document.getElementById(epg.ui.Dropdowns.container_id));
epg.ui.Dropdowns.current_dropdown.style.top=B.top+B.height+"px";
epg.ui.Dropdowns.current_dropdown.style.left=B.left+"px"
},populateDropdown:function(C,K){traceUi("epg.ui.Dropdowns.listViewByGenre.populateDropdown",arguments);
var H=[];
var I=0;
if(epg.ui.Dropdowns.listViewByChannel.channelDropHistory.length>0&&C[0]=="All Channels"){for(var D=0,A=epg.ui.Dropdowns.listViewByChannel.channelDropHistory.length;
D<A;
D++){H[I]='<li><a class="epg_link_G">'+epg.ui.Dropdowns.listViewByChannel.channelDropHistory[D]+"</a></li>";
I++
}H[I]='<li class="epg_dd_separator2"></li>';
I++;
H[I]='<li><a class="epg_link_G">All Channels</a></li>';
I++
}var E=C.length;
for(var J=I;
J<E;
J++){if(C[J].match(/^<.+>$/)){H[J]="<li>"+C[J]+"</li>"
}else{if(C[J]!="-"){H[J]='<li><a class="epg_link_G">'+C[J]+"</a></li>"
}else{H[J]='<li class="epg_dd_separator"></li>'
}}}var F=H.join("");
epg.ui.Dropdowns.current_dropdown.innerHTML=F;
Event.observe(epg.ui.Dropdowns.current_dropdown,"mouseover",epg.ui.Dropdowns.rollOver);
var G=epg.ui.Dropdowns.current_dropdown.childNodes;
var B=G.length;
for(D=0;
D<B;
D++){G[D].onclick=K
}Event.observe(epg.ui.Dropdowns.current_dropdown,"mouseout",epg.ui.Dropdowns.rollOut)
},closeDropdown:function(A){traceUi("epg.ui.Dropdowns.listViewByGenre.closeDropdown",arguments);
if(epg.ui.Dropdowns.current_dropdown){epg.ui.Dropdowns.current_dropdown.parentNode.removeChild(epg.ui.Dropdowns.current_dropdown);
epg.ui.Dropdowns.current_dropdown=null
}Event.stopObserving(document,"mouseup",epg.ui.Dropdowns.closeDropdown);
if(epg.config.api.toolbar.time_of_day.enabled){epg.ui.Dropdowns.times.setup()
}if(epg.config.api.toolbar.provider.enabled){epg.ui.Dropdowns.providers.setup()
}if(epg.config.api.list.dropdowns.enabled.genre){epg.ui.Dropdowns.listViewByGenre.setup()
}if(epg.config.api.list.dropdowns.enabled.channel){epg.ui.Dropdowns.listViewByChannel.setup()
}}},Button:{select:function(A){traceUi("Toolbars.Button.select",arguments);
jQuery(A).removeClass("epg_block_g4").addClass("epg_block_g3")
},unselect:function(A){traceUi("Toolbars.Button.unselect",arguments);
jQuery(A).removeClass("epg_block_g3").addClass("epg_block_g4")
},toggle:function(B,A){traceUi("Toolbars.Button.toggle",arguments);
B=jQuery(B);
jQuery(".epg_block_g3",A).removeClass("epg_block_g3").addClass("epg_block_g4");
B.removeClass("epg_block_g4").addClass("epg_block_g3")
}},Alerts:{html:{alert_pane:'<div class="epg_alert_pane_content"></div>'},alert:{display:function(E){traceUi("Toolbars.Alerts.alert.display",arguments);
var C="";
var G=epg.ui.Alerts.html.alert_pane.createDOMElement();
if(!$(epg.config.eAlert)){var F=document.createElement("div");
F.setAttribute("id",epg.config.eAlert);
if(epg.stateMachine.isAnyGrid()){document.getElementById(epg.config.eGrid).appendChild(F)
}else{document.getElementById(epg.config.eList).appendChild(F)
}}else{F=$(epg.config.eAlert);
F.innerHTML=""
}Element.appendChildrenFromObject(G,E);
F.appendChild(G);
var B=document.getElementById(epg.config.eToolbar).getElementsByTagName("a");
for(var A=0,H=B.length;
A<H;
A++){if(!B[A].parentNode.parentNode.className.match(/epg_dropDown_container/)){Event.observe(B[A],"click",epg.ui.Alerts.alert.close)
}}Event.observe(document.getElementById(epg.config.eSearch).getElementsByTagName("form")[0],"submit",epg.ui.Alerts.alert.close);
var D=F.offsetHeight;
jQuery(F).animate({top:0},300)
},close:function(D){traceUi("Toolbars.Alerts.alert.close",arguments);
var E=document.getElementById(epg.config.eAlert);
var C=E.offsetHeight;
var B=document.getElementById(epg.config.eToolbar).getElementsByTagName("a");
for(var A=0,F=B.length;
A<F;
A++){Event.stopObserving(B[A],"click",epg.ui.Alerts.alert.close)
}Event.stopObserving(document.getElementById(epg.config.eSearch).getElementsByTagName("form")[0],"submit",epg.ui.Alerts.alert.close);
jQuery(E).animate({top:0-C},300,function(){epg.ui.Alerts.alert.kill()
});
if(D){Event.stop(D)
}},kill:function(){traceUi("Toolbars.Alerts.alert.kill",arguments);
document.getElementById(epg.config.eAlert).parentNode.removeChild(document.getElementById(epg.config.eAlert))
}},mainError:{display:function(){traceUi("Toolbars.Alerts.mainError.display",arguments);
epg.ui.modalPane.display(epg.ui.Alerts.mainError.write,false,false)
},write:function(A){traceUi("Toolbars.Alerts.mainError.write",arguments);
Element.addClassName(A,"epg_errorPane");
Element.appendChildrenFromObject(A,[{div:[{h2:"Sorry! Something went wrong."},{p:"Unfortunately we are unable to deal with your request at the moment. Please try later."},{p:[{a:"Restart EPG",href:"#","class":"epg_link_J",onclick:function(B){Event.stop(B);
epg.reloadEPG()
}}]}],"class":"epg_errorPane_contents"}])
},close:function(A){traceUi("Toolbars.Alerts.mainError.close",arguments);
epg.ui.modalPane.close(A)
}}},modalPane:{ePane:null,aCurrentPaneArgs:null,display:function(C,E,B){traceUi("Toolbars.modalPane.display",arguments);
epg.ui.modalPane.kill();
epg.ui.modalPane.aCurrentPaneArgs=arguments;
epg.ui.Toolbars.disable();
var D;
D=epg.ui.modalPane.ePane=document.createElement("div");
D.setAttribute("id",epg.config.eModalPane);
if(B||arguments.length<3){Element.appendChildrenFromObject(D,[{a:"Close",href:"#","class":"epg_close",title:"close",onclick:epg.ui.modalPane.close}])
}if(epg.stateMachine.isAnyGrid()){document.getElementById(epg.config.eGrid).appendChild(D)
}else{document.getElementById(epg.config.eList).appendChild(D)
}if(E){Element.addClassName(D,"epg_loading")
}var A=D.offsetHeight;
jQuery("#"+epg.config.eModalPane).css("top",0-A);
jQuery("#"+epg.config.eModalPane).animate({top:0},300,function(){C(D)
})
},close:function(B){traceUi("Toolbars.modalPane.close",arguments);
var C=epg.ui.modalPane.ePane;
if(C){var A=C.offsetHeight;
C.innerHTML="";
jQuery(C).animate({top:0-A},300,function(){epg.ui.modalPane.kill()
});
if(arguments.length){Event.stop(B)
}}},kill:function(){traceUi("Toolbars.modalPane.kill",arguments);
if(!$(epg.ui.modalPane.ePane)){return 
}Element.remove($(epg.ui.modalPane.ePane));
delete epg.ui.modalPane.ePane;
epg.ui.Toolbars.enable()
},cancelLoadAnimation:function(){traceUi("Toolbars.modalPane.cancelLoadAnimation",arguments);
jQuery(epg.ui.modalPane.ePane).removeClass("epg_loading")
}}};epg.bubble={init:function(){},properties:{eBubble:null,eBubbleTitle:null,eBubbleInner:null,eBubbleContent:null,oCurrentBubbleData:{iBubbleCurrentShow:null,iBubbleCurrentChannel:null,iBubbleCurrentStartTime:null,oFullProgrammeData:null},iBubbleXOffset:epg.config.bubble.iBubbleXOffset,iBubbleYOffset:epg.config.bubble.iBubbleYOffset,iInverseBubbleYOffset:epg.config.bubble.iInverseBubbleYOffset,iChannel:0,iShow:0,ageRating:["","u","pg","12","15","18"],sLoadingText:"Loading...",sCloseButtonText:"Close me",sRemoteRecordText:"Remote Record",sWatchNowText:"Watch Now",sRemindMeText:"Remind Me",sRemindMeTextEdit:"Update Reminder",sSendToFriendText:"Share",bubbleOver:0,promoPos:["bottom right","bottom left"],sTimeAfter:["Started ","minutes ago"],sTimeBefore:["Starting in ","minutes"],bIsGrown:false},newBubble:function(D,H,A,G){traceBubble("newBubble",arguments);
epg.bubble.properties.iChannel=G;
epg.bubble.properties.iShow=A;
epg.stateMachine.setBubbleState(1);
var F="UNKNOWN";
if(epg.data.grid[epg.date.currentDay]&&epg.data.grid[epg.date.currentDay][G]&&epg.data.grid[epg.date.currentDay][G][A]){F=epg.data.getPlayState(epg.data.grid[epg.date.currentDay][G][A].start,epg.data.grid[epg.date.currentDay][G][A].dur)
}if(epg.date.currentDay>0){F="NOT_STARTED"
}if(epg.config.bubble.requiresRequest===false&&F=="FINISHED"){epg.bubble.closeBubble();
return 
}if(!epg.bubble.properties.eBubble){if(jQuery("#epg_bubble").length==0){jQuery("#"+epg.config.eSchedule).append(epg.bubble.newGridBubble())
}epg.bubble.properties.eBubble=jQuery("#epg_bubble");
if(epg.config.bubble.closeButton){this.newCloseButton(jQuery("#epg_bubble_inner"))
}if(epg.config.bubble.bubbleTitle){this.newBubbleTitle(jQuery("#epg_bubble_inner"))
}this.newBubbleContent(jQuery("#epg_bubble_inner"));
jQuery("#epg_bubble_inner").mouseover(function(){epg.bubble.setMouseStateOver()
});
Event.observe($("epg_bubble_inner"),"mouseover",epg.bubble.setMouseStateOver);
Event.observe($("epg_bubble_inner"),"mouseout",epg.bubble.setMouseStateOut);
Event.observe($("epg_bubble"),"mousemove",epg.grid.getShowHover);
Event.observe($("epg_bubble"),"mouseup",epg.grid.getShowClick)
}else{this.bubbleReset()
}if((epg.config.siteId==1||epg.config.siteId==3)&&D[0]<220){D[0]=220
}jQuery("#epg_bubble").css("left",(D[0]+epg.bubble.properties.iBubbleXOffset)+"px");
if(epg.config.bubble&&((D[1]+epg.bubble.properties.iBubbleYOffset)<=epg.config.bubble.iMinBubbleY)){jQuery("#epg_bubble").addClass("inverse");
jQuery("#epg_bubble").css("top",(D[1]+epg.bubble.properties.iInverseBubbleYOffset)+"px")
}else{jQuery("#epg_bubble").removeClass("inverse");
jQuery("#epg_bubble").css("top",(D[1]+epg.bubble.properties.iBubbleYOffset)+"px")
}if(epg.config.bubble.requiresRequest===false){epg.bubble.properties.eBubbleContent.removeClass("epg_bubble_loading");
var E=epg.bubble.properties.eBubbleContent;
this.setBubbleInfo({program:{eventid:A,channelid:G}});
bubbleContent=[];
bubbleEvents=[];
if((epg.config.general.enable_watch_now)&&(epg.config.bubble.watchNowTarget=="bubble")){if(F=="PLAYING_NOW"){bubbleContent.push(this.createWatchNow());
bubbleEvents.push(function(){jQuery("a#aWatchNow").click(function(){parent.ChangeChannel(null,epg.bubble.properties.iChannel)
})
})
}}if(epg.config.bubble.remoteRecordTarget=="bubble"){if(epg.config.api.remote_record.enabled&&epg.config.api.authentication.enabled){if(F=="NOT_STARTED"){oBubbleData={program:{remoteRecordable:"true"}};
bubbleContent.push(this.createRemoteRecord(oBubbleData));
bubbleEvents.push(function(){jQuery("p.epg_remoteRecord a").click(epg.bubble.remoteRecordClick)
})
}}}if(bubbleContent.length>0){for(var C=0,B=bubbleContent.length;
C<B;
C++){if(bubbleContent[C]!=null){epg.bubble.properties.eBubbleContent.append(bubbleContent[C])
}}if(jQuery.browser.msie){jQuery("#epg_bubble").each(function(){jQuery(this).width(jQuery(this).find(".m").width()+1)
})
}if(epg.config.bubble.clearingDiv){epg.bubble.properties.eBubbleContent.append('<div class="clear"></div>')
}for(var C=0,B=bubbleEvents.length;
C<B;
C++){if(bubbleEvents[C]!=null){bubbleEvents[C]()
}}}else{epg.bubble.closeBubble()
}}epg.data.getProgram(A,G,epg.date.currentDay,epg.bubble.processProgramData);
epg.hitbox.send("listingbubble")
},newGridBubble:function(){traceBubble("newGridBubble",arguments);
var A=epg.config.bubble.html;
return A
},newBubbleContent:function(A){traceBubble("newBubbleContent",arguments);
var B='<div class="epg_bubble_content epg_bubble_loading"></div>';
A.append(B);
this.properties.eBubbleContent=jQuery(".epg_bubble_content")
},newBubbleTitle:function(A){traceBubble("newBubbleTitle",arguments);
var B='<h6 id="epg_bubble_title">'+this.properties.sLoadingText+"</h6>";
A.append(B);
this.properties.eBubbleTitle=jQuery("h6#epg_bubble_title")
},setTitle:function(C){traceBubble("setTitle",arguments);
if(this.properties.eBubbleTitle){var B=jQuery("#epg_bubble");
var A=24;
this.properties.eBubbleTitle.html(C);
if(this.properties.eBubbleTitle[0].scrollHeight>A){B.addClass("grown")
}else{B.removeClass("grown")
}}},bubbleReset:function(){traceBubble("bubbleReset",arguments);
this.properties.eBubble.removeClass("grown");
this.properties.eBubble.attr("style","");
this.setTitle(this.properties.sLoadingText);
this.properties.eBubbleContent.html("");
this.properties.eBubbleContent.addClass("epg_bubble_loading")
},setMouseStateOver:function(){epg.bubble.properties.bubbleOver=1
},setMouseStateOut:function(){epg.bubble.properties.bubbleOver=0
},newCloseButton:function(B){traceBubble("newCloseButton",arguments);
var A='<div class="epg_bubbleClose"><a id="aBubbleClose">'+this.properties.sCloseButtonText+"</a></div>";
B.append(A).find(".epg_bubbleClose").click(epg.bubble.closeBubbleClick)
},closeBubbleClick:function(A){traceBubble("closeBubbleClick",arguments);
epg.bubble.closeBubble();
if(A){A.stopPropagation()
}},closeBubble:function(B){traceBubble("closeBubble",arguments);
var A=$("epg_bubble");
if(A){if($("epg_bubble_inner")){Event.stopObserving($("epg_bubble_inner"),"mouseover",epg.bubble.setMouseStateOver);
Event.stopObserving($("epg_bubble_inner"),"mouseout",epg.bubble.setMouseStateOut)
}Event.stopObserving($("epg_bubble"),"mousemove",epg.grid.getShowHover);
Event.stopObserving($("epg_bubble"),"mouseup",epg.grid.getShowClick);
A.parentNode.removeChild(A);
epg.stateMachine.setBubbleState(1);
epg.bubble.setMouseStateOut();
epg.bubble.properties.eBubble=null;
epg.stateMachine.setBubbleState(0)
}return false
},processProgramDataTimer:null,processProgramData:function(A){if(epg.stateMachine.isAnyGrid()){if(epg.grid.scrolling!==true&&epg.grid.dragging!==true){if(A){epg.bubble.triggerProcessProgramData(A)
}}else{epg.grid.addLoader(function(){epg.bubble.processProgramData(A)
})
}}else{if(A){epg.bubble.triggerProcessProgramData(A)
}}},triggerProcessProgramData:function(C){traceBubble("triggerProcessProgramData",arguments);
var B=epg.bubble.properties.eBubbleContent;
this.setTitle(C.program.title);
this.setBubbleInfo(C);
epg.bubble.properties.eBubbleContent=this.createBubbleContent(epg.bubble.properties.eBubbleContent,C);
if(C.program.edschoice[0]=="true"){if(C.program.edschoice[1].pos!=2){var A=epg.bubble.editorsChoice.createPromoImage(C);
jQuery("#outer_promo").remove();
jQuery("#"+epg.bubble.properties.eBubble).append(A);
jQuery("#outer_promo").addClass("epg_promo_"+C.program.edschoice[1].pos)
}}epg.bubble.properties.eBubbleContent.removeClass("epg_bubble_loading");
if(getURLParam("reminder")==1&&!epg.config.deepLinking.bReminderActionComplete){epg.reminders.openRemindMe();
epg.config.deepLinking.bReminderActionComplete=true
}if(getURLParam("share")==1&&!epg.config.deepLinking.bShareActionComplete){epg.emailToFriend.open();
epg.config.deepLinking.bShareActionComplete=true
}},setBubbleInfo:function(A){traceBubble("setBubbleInfo",arguments);
epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow=A.program.eventid;
epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel=A.program.channelid;
epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentStartTime=A.program.start;
epg.bubble.properties.oCurrentBubbleData.oFullProgrammeData=A.program
},createBubbleContent:function(E,F){traceBubble("createBubbleContent",arguments);
var D=[];
var C=[];
jQuery("#epg_info").addClass("overShow");
if(epg.config.bubble.programInfoTarget=="bubble"){D.push(this.createProgramInfo(F));
C.push(function(){jQuery("a#awatchlive").click(function(){epg.hitbox.send("skyplayerlivetv");
epg.tools.popwin(this.href);
return false
})
})
}else{if(epg.config.bubble.programInfoTarget=="infopanel"){jQuery("#epg_info_text ul.init").remove();
jQuery("#epg_info_text .header").show();
if(jQuery("#epg_info_text span.start").length==0){jQuery("#epg_info_text").prepend('<span class="header""><img class="rating" align="top" style="float: right; margin-right: 10px;"/><div><span class="title"></span></div><div><span class="start"></span> on <span class="channel"></span></div></span>')
}jQuery("#epg_info_text span.start").text(epg.date.timeSTR(F.program.start));
jQuery("#epg_info_text span.title").text(F.program.title);
jQuery("#epg_info_text span.channel").text(epg.data.channels[F.program.channelid].title);
if(!F.program.parentalrating||F.program.parentalrating.v=="--"){jQuery("#epg_info_text img.rating").fadeOut()
}else{jQuery("#epg_info_text img.rating").attr("src","images/skin/assets/gif/pr_"+jQuery.trim(String(F.program.parentalrating.v).toLowerCase())+".gif").attr("alt",F.program.parentalrating.v).fadeIn()
}if(jQuery("#epg_info_text .epg_programDescription").length>0){jQuery("#epg_info_text .epg_programDescription").text(F.program.shortDesc)
}else{jQuery("#epg_info_text .desc").text(F.program.shortDesc)
}}}if(epg.config.bubble.programDescriptionTarget=="bubble"){D.push(this.createProgramDescription(F))
}else{if(epg.config.bubble.programDescriptionTarget=="infopanel"){jQuery("#epg_info_text p.desc").html(this.createProgramDescription(F))
}}if(epg.config.bubble.requiresRequest){if(epg.config.bubble.remoteRecordTarget=="bubble"){if(epg.config.api.remote_record.enabled&&epg.config.api.authentication.enabled){if(F.program.scheduleStatus=="NOT_STARTED"&&F.program.remoteRecordable=="true"){D.push(this.createRemoteRecord(F));
C.push(function(){jQuery("p.epg_remoteRecord a").click(epg.bubble.remoteRecordClick)
})
}}}}if(epg.config.bubble.requiresRequest){if((epg.config.general.enable_watch_now)&&(epg.config.bubble.watchNowTarget=="bubble")){if(F.program.scheduleStatus=="PLAYING_NOW"){D.push(this.createWatchNow(F));
C.push(function(){jQuery("a#aWatchNow").click(function(){parent.ChangeChannel(null,F.program.channelid)
})
})
}}}if(epg.config.bubble.remindMeTarget=="bubble"){if(epg.config.general.enable_remind_me){if(F.program.scheduleStatus=="NOT_STARTED"){D.push(this.createRemindMe(F));
C.push(function(){jQuery("a#epg_RemindMeLink").click(epg.reminders.openRemindMe)
})
}}}if(epg.config.bubble.sendToFriendTarget=="bubble"){if(epg.config.general.enable_send_to_friend){D.push(this.createSendToFriend(F));
C.push(function(){jQuery("a.epg_SendToFriend").click(epg.emailToFriend.open)
})
}}if((epg.config.general.enable_send_to_friend&&(epg.config.bubble.sendToFriendTarget=="bubble"))||(epg.config.general.enable_remind_me&&(epg.config.bubble.remindMeTarget=="bubble"))){D.push('<div class="epg_BubbleSpacer"></div>')
}if(epg.config.bubble.packageInfoTarget=="bubble"){D.push(this.createPackageInfo(F));
C.push(function(){jQuery("p.epg_packageInfo a").click(function(){epg.hitbox.send("getmoreinfo");
epg.tools.popwin(this.href,true);
return false
})
})
}if(epg.config.bubble.techDetailsTarget=="bubble"){D.push(this.createTechDetails(F))
}if(epg.config.bubble.editorsChoiceTarget=="bubble"){if(epg.config.api.bubble.editors_choice.enabled){D.push(this.editorsChoice.createInnerPromo(F))
}}if(epg.config.bubble.ratingTarget=="bubble"){if(epg.config.general.enable_rating){D.push(this.rating.newStarsSet("rating",F))
}}if(epg.config.bubble.relatedProgramsTarget=="bubble"){if(epg.config.api.bubble.related_programs.enabled){D.push(this.createRelatedPrograms(F))
}}if(epg.config.bubble.otherAiringsTarget=="bubble"){if(epg.config.api.bubble.other_airings.enabled){D.push(this.createOtherAirings(F));
C.push(function(){jQuery("#epg_bubble a.vod").click(function(){epg.hitbox.send("skyplayervod")
})
})
}}else{if(epg.config.bubble.otherAiringsTarget=="infopanel"){if(epg.config.api.bubble.other_airings.enabled){jQuery("div#epg_info_otherairings").html(this.createOtherAirings(F))
}jQuery("dl.epg_otherAirings dd").hover(function(){jQuery(this).addClass("hover")
},function(){jQuery(this).removeClass("hover")
})
}}if(epg.config.bubble.relatedTagsTarget=="bubble"){if(epg.config.api.bubble.tags.enabled){D.push(this.createRelatedTags(F))
}}if(D.length>0){for(var B=0,A=D.length;
B<A;
B++){if(D[B]!=null){E.append(D[B])
}}if(jQuery.browser.msie){jQuery("#epg_bubble").each(function(){jQuery(this).width(jQuery(this).find(".m").width()+1)
})
}if(epg.config.bubble.clearingDiv){E.append('<div class="clear"></div>')
}for(var B=0,A=C.length;
B<A;
B++){if(C[B]!=null){C[B]()
}}}else{if(epg.config.bubble.requiresRequest){epg.bubble.closeBubble()
}}return E
},processProgramData_list:function(B){traceBubble("processProgramData_list",arguments);
if(B){var A=epg.bubble.triggerProcessProgramData_list(B);
return A
}},triggerProcessProgramData_list:function(H){traceBubble("triggerProcessProgramData_list",arguments);
jQuery("#epg_bubble").remove();
var L=this.createWrapper("epg_bubble",["epg_bubble_horizontal"]);
this.setBubbleInfo(H);
var K=jQuery("#bubble_event_"+H.program.channelid+"_"+H.program.eventid);
K.html("");
K.append(L);
var N=this.createWrapper("",["epg_bubble_header"]);
jQuery("#epg_bubble").append(N);
var O=this.createProgramInfo(H);
jQuery(".epg_bubble_header").append(O);
var E=this.createWrapper("",["epg_bubble_content"]);
jQuery("#epg_bubble").append(E);
var J=this.createWrapper("",["epg_bubble_leftSide"]);
jQuery("#epg_bubble .epg_bubble_content").append(J);
var R=this.createProgramDescription(H);
var S=this.createTechDetails(H);
var M=epg.bubble.rating.newStarsSet("rating",H);
var C=this.editorsChoice.createInnerPromo(H);
jQuery("#epg_bubble .epg_bubble_leftSide").append(R);
jQuery("#epg_bubble .epg_bubble_leftSide").append(C);
jQuery("#epg_bubble .epg_bubble_leftSide").append(S);
if(epg.config.general.enable_rating){jQuery("#epg_bubble .epg_bubble_leftSide").append(M)
}var A=this.createWrapper("",["epg_bubble_rightSide"]);
jQuery("#epg_bubble .epg_bubble_content").append(A);
var I=this.createOtherAirings(H);
var G=this.createRelatedTags(H);
var P=this.createRelatedPrograms(H);
if(epg.config.bubble.enable_related_programs){jQuery("#epg_bubble .epg_bubble_rightSide").append(P)
}if(epg.config.bubble.enable_other_airings){jQuery("#epg_bubble .epg_bubble_rightSide").append(I);
jQuery("dl.epg_otherAirings dd").hover(function(){jQuery(this).addClass("hover")
},function(){jQuery(this).removeClass("hover")
})
}if(epg.config.bubble.enable_tags){jQuery("#epg_bubble .epg_bubble_rightSide").append(G)
}jQuery("#epg_bubble .epg_bubble_content").append('<div class="epg_bubble_footer"></div>');
var B=this.createRemoteRecord(H);
var F=this.createSendToFriend(H);
var Q=this.createRemindMe(H);
var D=this.createPackageInfo(H);
if(epg.config.bubble.remoteRecordTarget=="bubble"){if(epg.config.api.remote_record.enabled&&epg.config.api.authentication.enabled){if(H.program.scheduleStatus=="NOT_STARTED"&&H.program.remoteRecordable=="true"){jQuery("#epg_bubble .epg_bubble_footer").append(B);
jQuery("p.epg_remoteRecord a").click(epg.bubble.remoteRecordClick)
}}}if(epg.config.bubble.sendToFriendTarget=="bubble"){if(epg.config.general.enable_send_to_friend){jQuery("#epg_bubble .epg_bubble_footer").append(F);
jQuery("a.epg_SendToFriend").click(epg.emailToFriend.open)
}}if(epg.config.bubble.remindMeTarget=="bubble"){if(epg.config.general.enable_remind_me){if(H.program.scheduleStatus=="NOT_STARTED"){jQuery("#epg_bubble .epg_bubble_footer").append(Q);
jQuery("a#epg_RemindMeLink").click(epg.reminders.openRemindMe)
}}}jQuery("#epg_bubble .epg_bubble_footer").append(D);
jQuery("#epg_bubble").append('<div class="epg_clear"></div>').slideDown();
return L
},createProgramInfo:function(H){if(epg.data.channels[H.program.channelid]){traceBubble("createProgramInfo (the time etc.)",arguments);
var E='<div class="epg_programInfo">';
var D=epg.date.timeSTR(H.program.start);
var A='<p class="first">'+D+" on "+epg.data.channels[H.program.channelid].title+"</p>";
var B=new Date;
B=new Date(Date.parse(B)+epg.date.iLocalTimeOffset);
var O=B.getHours();
var G=B.getMinutes();
var N=new Date();
N.setTime(H.program.start);
var J=N.getHours();
var K=N.getMinutes();
var C=(J*60)+K;
var F=(O*60)+G;
if((C-F)>0&&(C-F)<120){var I=C-F;
var P=epg.bubble.properties.sTimeBefore[0];
var M=epg.bubble.properties.sTimeBefore[1]
}else{if((C-F)<0&&(C-F)>-120){var I=F-C;
var P=epg.bubble.properties.sTimeAfter[0];
var M=epg.bubble.properties.sTimeAfter[1]
}}var Q="<p>"+H.program.dur/60+" mins</p>";
E+=A;
if(epg.config.bubble.watchliveHtml!==""&&H.liveonskyplayer==="true"){E+=epg.config.bubble.watchliveHtml.replace(/##CHANNELID##/,H.program.channelid).replace(/##CHANNEL##/,epg.data.channels[H.program.channelid].title)
}E+=Q;
if(I&&epg.date.selectedDayIsToday()){var L="<p>"+P+" "+I+" "+M+"</p>";
E+=L
}E+="</div>";
return E
}},createProgramDescription:function(A){traceBubble("createProgramDescription",arguments);
oProgramDescription='<p class="epg_programDescription">'+A.program.shortDesc+"</p>";
return oProgramDescription
},createRemindMe:function(B){if(epg.config.general.enable_remind_me){traceBubble("createRemindMe",arguments);
var A='<a id="epg_RemindMeLink" class="epg_RemindMe';
A+=(B.program.userreminderset=="true"?" epg_UpdateReminder":"");
A+='"">';
A+=B.program.userreminderset=="true"?this.properties.sRemindMeTextEdit:this.properties.sRemindMeText;
A+="</a>";
return A
}return""
},createSendToFriend:function(B){if(epg.config.general.enable_send_to_friend){traceBubble("createSendToFriend",arguments);
var A='<a class="epg_SendToFriend">'+this.properties.sSendToFriendText+"</a>";
return A
}return""
},createRemoteRecord:function(A){if(A.program.remoteRecordable=="true"&&epg.config.general.enable_remote_record){traceBubble("createRemoteRecord",arguments);
oRemoteRecordWrapper='<p class="epg_remoteRecord"><a href="#">'+this.properties.sRemoteRecordText+"</a></p>";
return oRemoteRecordWrapper
}return""
},remoteRecordClick:function(){traceBubble("remoteRecordClick",arguments);
if(epg.Authentication.isAuthenticated()){epg.remoterecord.display(epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel,epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow)
}else{epg.remoterecord.goLogin()
}},createWatchNow:function(A){traceBubble("createWatchNow",arguments);
oWatchNowWrapper='<p class="epg_watchNow"><a href="#" id="aWatchNow">'+this.properties.sWatchNowText+"</a></p>";
return oWatchNowWrapper;
return""
},createPackageInfo:function(A){if(A.program.mix){traceBubble("createPackageInfo",arguments);
oPackageInfo='<p class="epg_packageInfo">'+A.program.mix.name+". ";
if(A.program.mix.url&&A.program.mix.url!=null){oPackageInfo+='<a href="'+A.program.mix.url+'">Find out more about this pack.</a>'
}oPackageInfo+="</p>";
return oPackageInfo
}},createTechDetails:function(B){traceBubble("createTechDetails",arguments);
var A='<ul class="epg_techDetails">';
if(B.program.hd){A+='<li class="epg_highDef" title="High Definition"></li>'
}if(B.program.sound.v=="Simple stereo"){A+='<li class="epg_stereo" title="Simple Stereo">Simple stereo</li>'
}if(B.program.sound.v=="Digital surround sound"){A+='<li class="epg_dolbyDigital" title="Digital surround sound">Digital surround sound</li>'
}if(B.program.parentalrating.k&&(B.program.parentalrating.k!=0)){A+='<li class="epg_guidance_'+this.properties.ageRating[B.program.parentalrating.k]+'" title="Guidance rating: '+this.properties.ageRating[B.program.parentalrating.k]+'">Guidance rating: '+this.properties.ageRating[B.program.parentalrating.k]+"</li>"
}A+="</ul>";
return A
},createOtherAirings:function(G){traceBubble("createOtherAirings",arguments);
var E=null;
if(G.program.screenings||G.vodonskyplayer){var D=false;
E='<dl class="epg_otherAirings">';
E+="<dt>Other Airings</dt>";
if(G.vodonskyplayer){E+='<dd class="vod">'+epg.config.bubble.vodHtml.replace(/##VODURL##/,G.vodonskyplayer).replace(/##PROGRAM##/,G.program.title);
D=true
}if(G.program.screenings!=undefined){G.program.screenings.program=epg.tools.arrayify(G.program.screenings.program);
var F=G.program.screenings.program;
if(F.length!=undefined){for(var B=0,A=F.length;
B<A;
B++){E+='<dd><span eventID="'+F[B].eventid+'" channelID="'+F[B].channelid+'" startTime="'+F[B].start+'"';
var C=epg.date.dateToString(F[B].start);
var C=new Date();
C.setTime(F[B].start);
var C=epg.date.dateToString(C);
if(epg.data.channels[F[B].channelid]!==undefined){D=true;
E+=' onclick="epg.bubble.triggerOtherAiringJump(this);">'+C+" "+epg.data.channels[F[B].channelid].title
}else{E+=">"
}E+="</span></dd>"
}}else{E+='<dd><span eventID="'+F.eventid+'" channelID="'+F.channelid+'" startTime="'+F.start+'" onclick="epg.bubble.triggerOtherAiringJump(this);">';
var C=new Date();
C.setTime(F.start);
var C=epg.date.dateToString(C);
if(epg.data.channels[F.channelid]!==undefined){D=true;
E+=C+" "+epg.data.channels[F.channelid].title
}E+="</span></dd>"
}}}return D?E:""
},triggerOtherAiringJump:function(A){traceBubble("triggerOtherAiringJump",arguments);
var C=jQuery(A).attr("eventid");
var B=jQuery(A).attr("channelid");
var D=jQuery(A).attr("starttime");
epg.bubble.closeBubble();
jQuery(".show").removeClass("highlighted");
jQuery("#grid_"+B+"_"+C).addClass("highlighted");
epg.views.gotoEvent(C,B,D,true)
},createRelatedPrograms:function(F){traceBubble("createRelatedPrograms",arguments);
if(F.relatedprogrammes){F.relatedprogrammes=epg.tools.arrayify(F.relatedprogrammes);
var B=F.relatedprogrammes.length;
var E=[];
if(B!=null){for(var C=0;
C<B;
C++){E[C]=F.relatedprogrammes[C].title
}}else{E=F.relatedprogrammes.title
}var D='<dl class="epg_relatedPrograms"><dt>Related Programmes</dt>';
for(var C=0,A=E.length;
C<A;
C++){D+='<dd><span onmouseup="epg.bubble.relatedJump(this);">'+E[C]+"</span></dd>"
}D+="</dl>";
return D
}return""
},relatedJump:function(A){traceBubble("relatedJump",arguments);
epg.search.ajaxSearch(A.innerHTML,true);
epg.bubble.closeBubble()
},createRelatedTags:function(F){traceBubble("createRelatedTags",arguments);
var A="";
if(F.related){A+='<dl class="epg_relatedTags"><dt>Tags</dt>';
var E=F.related.category.length;
var C=[];
if(E!=null){for(var D=0;
D<E;
D++){var B="epg|"+F.related.category[D].k+"|"+F.related.category[D].v;
A+='<dd id="'+B+'" class="epg_block_g4 epg_level_2" onmouseup="epg.bubble.bubbleFilterTags(this);"><span><span><span><span>'+F.related.category[D].v+"</span></span></span></span></dd>"
}}else{A+='<dd class="epg_block_g4 epg_level_2" tagID="'+F.related.k+'"><span><span><span><span>'+F.related.category[D].v+"</span></span></span></span></dd>"
}}return A
},bubbleFilterTags:function(A){traceBubble("bubbleFilterTags",arguments);
var B=A.id.split("|");
epg.filtering.loadTag(B[1],B[2])
},createWrapper:function(A,C){traceBubble("createWrapper",arguments);
var B="<div";
if(A){B+=' id="'+A+'"'
}if(C){B+=' class="'+C.join(" ")+'"'
}B+="></div>";
return B
},createBubbleLists:function(A,D,E){traceBubble("createBubbleLists",arguments);
var C=document.createElement("dl");
$(C).addClassName(A);
var G=document.createElement("dt");
G.innerHTML=D;
C.appendChild(G);
if(E){for(i=0,j=E.length;
i<j;
i++){var B=document.createElement("dd");
var F=document.createElement("span");
F.innerHTML=E[i];
B.appendChild(F);
C.appendChild(B)
}}return C
},addText:function(B,A){traceBubble("addText",arguments);
var C=document.createTextNode(A);
B.appendChild(C);
return B
},addElement:function(B,A){traceBubble("addElement",arguments);
if(A&&B){B.appendChild(A)
}return B
},isChildOf:function(B,A){traceBubble("isChildOf",arguments);
if(A!=null){while(A.parentNode){if((A=A.parentNode)==B){return true
}}}return false
}};
epg.bubble.rating={properties:{stars_ratingstext:[],sDefaultText:"No Opinion",stars:5,aRatings:{}},newStarsSet:function(F,E){traceBubble("newStarsSet",arguments);
var C=document.createElement("dl");
$(C).addClassName("epg_rating");
if(F!="rating"){$(C).addClassName(F)
}var D=document.createElement("dt");
D.innerHTML="Your rating";
C.appendChild(D);
var B=E.program.userrating!==undefined?E.program.userrating:null;
C=this.createStars((epg.data.ratings[E.program.channelid+"_"+E.program.eventid]||0),C,F,B);
var A=document.createElement("dd");
$(A).addClassName("verbal");
A.innerHTML=this.properties.sDefaultText;
if(epg.data.ratings[E.program.channelid+"_"+E.program.eventid]){A.innerHTML=epg.bubble.rating.properties.stars_ratingstext[epg.data.ratings[E.program.channelid+"_"+E.program.eventid]-1].v
}else{if(B!==null){A.innerHTML=epg.bubble.rating.properties.stars_ratingstext[B-1].v
}}C.appendChild(A);
if(B===null){C.outListener=epg.bubble.rating.noRating;
C.onmouseout=C.outListener
}return C
},createStars:function(E,D,F,A){traceBubble("createStars",arguments);
for(i=1,j=this.properties.stars;
i<=j;
i++){var C="";
if(i<(E+1)||A>=i){C="on"
}if(A>=i){C="on"
}var B=document.createElement("dd");
B.innerHTML=i+" stars";
if(F=="rating"&&A===null){B=this.makeInteractive(B)
}$(B).addClassName(C);
D.appendChild(B)
}return D
},makeInteractive:function(A){traceBubble("makeInteractive",arguments);
A.onmouseover=epg.bubble.rating.highlightStars;
A.onmouseup=epg.bubble.rating.saveRating;
return A
},noRating:function(){traceBubble("noRating",arguments);
epg.bubble.rating.highlightStars(this,"","noStars");
jQuery(".epg_rating dd.on").removeClass("on");
this.lastChild.innerHTML=epg.bubble.rating.properties.sDefaultText;
return false
},saveRating:function(){traceBubble("saveRating",arguments);
if(epg.Authentication.isAuthenticated()){var C=this;
if(C.NodeName!="dl"){C=this.parentNode
}var B=epg.bubble.rating.highlightStars(C,this);
var A={channelId:epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel,eventId:epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow,rating:this.innerHTML.substr(0,1)};
epg.data.ratings[epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel+"_"+epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow]=B;
epg.data.UserData.saveData("epg_rating",A);
epg.data.events[epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel][epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow].program.userrating=A.rating;
epg.bubble.rating.disableStars(C);
C.status="saved"
}else{epg.ui.Alerts.modalDialogue.open.loginToSaveRatings()
}},disableStars:function(C){traceBubble("disableStars",arguments);
for(var B=0,A=C.childNodes.length;
B<A;
B++){C.childNodes[B].onmouseover=null;
C.childNodes[B].onmouseup=null
}C.onmouseout=null
},highlightStars:function(C,A,B){traceBubble("highlightStars",arguments);
if(this.tagName==="DD"){var C=this.parentNode;
if(A==undefined){var A=this
}if(!B){var B=0
}for(i=0,j=C.childNodes.length;
i<j;
i++){if(B!=0){$(C.childNodes[i]).removeClassName("on")
}else{$(C.childNodes[i]).addClassName("on")
}if(C.childNodes[i]==A){B=i
}}if(B!="noStars"){C.lastChild.innerHTML=epg.bubble.rating.properties.stars_ratingstext[B-1].v
}return B
}}};
epg.bubble.editorsChoice={createInnerPromo:function(B){traceBubble("createInnerPromo",arguments);
if(B.program.edschoice[0]==="true"){var A='<div class="epg_edschoice">';
if(B.program.edschoice[1].pos==2){A+=epg.bubble.editorsChoice.createPromoImage(B)
}if(B.program.edschoice[1].shortDesc){A+="<p>"+B.program.edschoice[1].shortDesc+"</p>"
}A+="</div>";
return A
}return""
},createOuterPromo:function(A){traceBubble("createOuterPromo",arguments);
if(A.bubblePromo.im){if(A.bubblePromo.pos!=2){this.properties.eBubble.style.background="url("+A.bubblePromo.im+") no-repeat "+this.properties.promoPos[A.bubblePromo.pos]
}}},createPromoImage:function(B){traceBubble("createPromoImage",arguments);
var A='<a id="outer_promo" href="'+B.program.edschoice[1].site+'" target="_blank"><img src="'+B.program.edschoice[1].image+'"/></a>';
return A
}};epg.ui.infoPane={init:function(){var A=jQuery("#"+epg.config.eInfoPane);
A.append(epg.ui.infoPane.html.loader);
if(epg.config.general.infoPane_branding_enabled){A.append(epg.ui.infoPane.html.branding)
}if(epg.config.api.other.branding.enabled&&(epg.config.general.infoPane_branding_enabled)){A.append(epg.ui.infoPane.html.tsandcs);
jQuery("#aTermsConditions").click(function(){epg.tools.popwin(this.href,true);
return false
})
}A.append(epg.ui.infoPane.html.textarea)
},hardReset:function(){clearTimeout(epg.ui.infoPane.infoTimeout);
epg.ui.infoPane.infoTimeout=null;
Element.removeClassName(document.getElementById(epg.config.eInfoPane),"overShow")
},html:{loader:'<div id="epg_loading">Loading data...</div>',branding:'<div id="epg_branding">Sky</div>',tsandcs:'<div id="epg_legal"><a id="aTermsConditions" href="'+epg.config.urlTermAndConditions+'" class="epg_link_J" target="_blank">Terms &amp; Conditions</a></div>',textarea:epg.config.general.infoPane_textarea},infoTimeout:null,sDefaultMessage:"Loading Data...",displayLoader:function(A){if(A){document.getElementById(epg.config.eLoader).innerHTML=A
}else{document.getElementById(epg.config.eLoader).innerHTML=epg.ui.infoPane.sDefaultMessage
}Element.addClassName(document.getElementById(epg.config.eLoader),"epg_on");
return false
},hideLoader:function(){Element.removeClassName($(epg.config.eLoader),"epg_on")
},displayInfo:function(C,D,H,E,F,B,A){if(!epg.grid.dragging){var G=jQuery("#"+epg.config.eInfoPane);
if(epg.ui.infoPane.infoTimeout){clearTimeout(epg.ui.infoPane.infoTimeout)
}if(!G.hasClass("overShow")){G.addClass("overShow")
}jQuery("#epg_info_otherairings").html("");
jQuery("ul.init").remove();
G.find(".header").show();
G.find("span.title").text(C);
G.find("span.start").text(D);
G.find("span.dur").text(H);
G.find("span.channel").text(F);
if(G.find(".epg_programDescription").length>0){G.find(".epg_programDescription").text(E)
}else{G.find(".desc").text(E)
}if(B&&epg.config.bubble.enable_other_airings&&epg.config.bubble.otherAiringsTarget=="infopanel"){epg.data.getProgram(A.eventid,A.channelid,epg.date.currentDay,function(I){jQuery("div#epg_info_otherairings").html(epg.bubble.createOtherAirings(I));
jQuery("dl.epg_otherAirings dd").hover(function(){jQuery(this).addClass("hover")
},function(){jQuery(this).removeClass("hover")
})
})
}}},hideInfo:function(){if(!epg.grid.dragging){if(Element.hasClassName(document.getElementById(epg.config.eInfoPane),"overShow")){epg.ui.infoPane.infoTimeout=setTimeout(function(){Element.removeClassName(document.getElementById(epg.config.eInfoPane),"overShow")
},750)
}}}};epg.data.UserCookie={properties:{sCookieLifeSpan:null,iCookieLifeSpan:30,sCookiePath:"path=/"},init:function(){if(epg.data.UserCookie.properties.iCookieLifeSpan){epg.data.UserCookie.properties.sCookieLifeSpan=epg.data.UserCookie.createLifeSpan(epg.data.UserCookie.properties.iCookieLifeSpan)
}},hardReset:function(){epg.data.UserCookie.init()
},setCookie:function(A,D){var E="data = ";
var B;
E+=Object.toJSON(D);
E=escape(E);
var C=A+"="+E;
C+=epg.data.UserCookie.properties.sCookieLifeSpan+"; "+epg.data.UserCookie.properties.sCookiePath+"; domain="+document.domain+";";
epg.data.UserCookie.createCookie(C)
},setCookieRaw:function(A,C,D){if(D===undefined){D=epg.data.UserCookie.properties.sCookieLifeSpan
}if(!D){D=""
}var B=A+"="+C+"; domain="+document.domain;
B+=D+"; "+epg.data.UserCookie.properties.sCookiePath+";";
epg.data.UserCookie.createCookie(B)
},createCookie:function(A){document.cookie=A
},getCookie:function(C,E){var G=C+"=";
var B=document.cookie.split(";");
var A=B.length;
for(var D=0;
D<A;
D++){var H=B[D];
while(H.charAt(0)==" "){H=H.substring(1,H.length)
}if(H.indexOf(G)==0){var F=unescape(H.substring(G.length,H.length));
if(E==="plain"){return F
}else{return(F.evalJSON())
}}}return null
},clearCookie:function(A){var B=A+"=";
var B=B+epg.data.UserCookie.createLifeSpan(1)+epg.data.UserCookie.properties.sCookiePath+"; domain="+document.domain;
document.cookie=B
},removeCookie:function(B){var D="";
var C=new Date();
C.setTime(C.getTime()-(1*60*60*1000));
var A="expires="+C.toGMTString();
document.cookie=B+"="+D+"; "+A+"; path=/; domain="+document.domain+";"
},createLifeSpan:function(B){var A=new Date();
A.setTime(A.getTime()+(B*24*60*60*1000));
return"; expires="+A.toGMTString()
}};
epg.data.UserData={properties:{saveMethods:{epg_bubble:{url:null,cookie:true},epg_rating:{url:"rate.json",cookie:false},epg_channelPrefs:{url:null,cookie:true},epg_myChannels:{url:null,cookie:true},epg_filters:{url:null,cookie:true},epg_favourites:{url:"saveFavouriteChannels.json",cookie:true},epg_viewstate:{url:null,cookie:true},epg_listsorttype:{url:null,cookie:true},epg_draginfo:{url:null,cookie:true},epg_siteId:{url:null,cookie:true}}},saveData:function(C,B){if(epg.data.UserData.properties.saveMethods[C].cookie===true){epg.data.UserCookie.setCookie(C+epg.config.cookieSuffix,B)
}if(epg.Authentication.isAuthenticated()&&epg.data.UserData.properties.saveMethods[C].url!=null){var A={};
if(epg.data.UserData.properties.saveMethods[C].cookie===false){var A=B
}else{if(C=="epg_favourites"){if(B!=null){A.channelListString=B.join(",")
}}}testBench({aspect:"Server_SaveData",type:"start"});
epg.tools.doAjax({url:(epg.config.folderPrefix+epg.data.UserData.properties.saveMethods[C].url),data:A,type:epg.config.sRPCMethod,success:function(D){testBench({aspect:"Server_SaveData",type:"stop"});
if(epg.data.UserData.properties.saveMethods[C].fCallBack){epg.data.UserData.properties.saveMethods[C].fCallBack()
}}})
}}};epg.Authentication={trigger:"",properties:{iAuthState:0,sUserName:null,sFirstTab:"simple",sPasswordLink:"#",sUserNameLink:"#",aSyncActions:[],eOverlay:null,eCover:null,aMessages:{sLoginError:"The login details you have entered are incorrect. Please try again.",sChannelPromo:(epg.config.auth&&epg.config.auth.loginHeader!==undefined)?epg.config.auth.loginHeader:"Welcome to Sky TV listings! Just log in and start to make Sky TV listings your own. And remember, you don't need to be a Sky customer."}},init:function(){traceAuth("init",arguments);
var A=epg.data.UserCookie.getCookie("epg_channelPrefs"+epg.config.cookieSuffix);
if(A){if(A.packages){epg.Authentication.channelPrefs.properties.iCurrentChannels=epg.tools.arrayify(A.packages)
}if(A.provider){epg.Authentication.channelPrefs.properties.iCurrentProvider=A.provider
}if(A.region){epg.Authentication.channelPrefs.properties.iCurrentRegion=A.region
}}else{if(epg.config.api.defaultPackages!=null){if(epg.config.api.defaultPackages.packages!=null){epg.Authentication.channelPrefs.properties.iCurrentChannels=epg.config.api.defaultPackages.packages
}if(epg.config.api.defaultPackages.provider){epg.Authentication.channelPrefs.properties.iCurrentProvider=epg.config.api.defaultPackages.provider
}if(epg.config.api.defaultPackages.region){epg.Authentication.channelPrefs.properties.iCurrentRegion=epg.config.api.defaultPackages.region
}}}epg.Authentication.checkAuthenticated()
},hardReset:function(){traceAuth("hardReset",arguments);
epg.Authentication.init()
},tryLogin:function(){$(epg.Authentication.login.properties.sPwordID).setOpacity(0.3);
$(epg.Authentication.login.properties.sUnameID).setOpacity(0.3);
var B=$("epg_userName").value;
epg.Authentication.properties.sUserName=B;
var A=$("epg_password").value;
epg.security.setMaxDigits(parseInt(epg.Authentication.publicKey.maxDigits,10)||38);
testBench({aspect:"Server_Login",type:"start"});
epg.tools.doAjax({url:epg.config.fileUserLogin,data:{temp:Math.random(),username:B,password:epg.security.encryptedString(new epg.security.RSAKeyPair(epg.Authentication.publicKey.e,epg.Authentication.publicKey.d,epg.Authentication.publicKey.m),A)},success:function(C){testBench({aspect:"Server_Login",type:"stop"});
epg.Authentication.processLoginResponse(C)
},type:epg.config.sRPCMethod})
},getUserName:function(){traceAuth("getUserName",arguments);
var A=epg.data.UserCookie.getCookie("uifd","plain");
if(A){return A
}else{return false
}},setUserName:function(A){traceAuth("setUserName",arguments);
epg.Authentication.properties.sUserName=A
},processLoginResponse:function(A){if(A.length!==5){epg.Authentication.setLoginAlert(epg.Authentication.properties.aMessages.sLoginError);
$(epg.Authentication.login.properties.sPwordID).setOpacity(1);
$(epg.Authentication.login.properties.sUnameID).setOpacity(1)
}else{epg.tools.doAjax({url:epg.config.fileUserPackage,type:"get",data:{},dataType:"json",success:function(B){if(B.usersubscription.userType==="primary"||B.usersubscription.userType==="secondary"){epg.Authentication.channelPrefs.properties.packageInfo=B;
epg.ui.modalPane.close();
epg.Authentication.channelPrefs.saveUserPreferences()
}else{epg.ui.modalPane.close();
epg.reloadEPG()
}}})
}},logout:function(){traceAuth("logout",arguments);
epg.Authentication.trigger="";
epg.Authentication.properties.iAuthState=0;
testBench({aspect:"Server_Logout",type:"start"});
epg.data.UserCookie.removeCookie("epg_channelPrefs"+epg.config.cookieSuffix);
epg.data.UserCookie.removeCookie("skySSO");
epg.data.UserCookie.removeCookie("hant");
epg.data.UserCookie.removeCookie("just");
epg.tools.doAjax({url:epg.config.fileUserLogOut,data:{},type:epg.config.sRPCMethod,success:function(B){var A=testBench({aspect:"Server_Logout",type:"stop"});
epg.ui.modalPane.close();
epg.reloadEPG()
}})
},getAvailableChannels:function(){traceAuth("getAvailableChannels",arguments);
testBench({aspect:"Server_Packages",type:"start"});
epg.tools.doAjax({url:epg.config.fileChannelPrefs,data:{},type:"get",dataType:"json",success:function(A){testBench({aspect:"Server_Packages",type:"stop"});
epg.Authentication.channelPrefs.processChannelData(A)
}})
},getUserPackage:function(){traceAuth("getUserPackage",arguments);
testBench({aspect:"Server_UserPackages",type:"start"});
epg.tools.doAjax({url:epg.config.fileUserPackage,data:{},type:"get",dataType:"json",success:function(A){testBench({aspect:"Server_UserPackages",type:"stop"});
epg.Authentication.channelPrefs.processUserPackageData(A);
epg.Authentication.channelPrefs.saveUserPreferences();
document.getElementById(epg.ui.Dropdowns.providers.value_id).innerHTML="My Channels"
}})
},setLoginAlert:function(A){traceAuth("setLoginAlert",arguments);
var B=$("epg_auth_info");
if(B){B.innerHTML=A;
B.addClassName("epg_alertBg")
}else{return false
}},display:function(C,B){traceAuth("display",arguments);
if(epg.stateMachine.isHDChannels){epg.stateMachine.isHDChannels=false;
epg.Authentication.channelPrefs.saveSingleCP(0)
}var A=epg.data.UserCookie.getCookie("epg_myChannels"+epg.config.cookieSuffix);
if(C==="channelSetup"&&A){epg.Authentication.channelPrefs.reload(A);
epg.ui.Dropdowns.providers.setup();
epg.bubble.closeBubble();
epg.grid.jumpTo(false,0,true,true);
epg.reloadEPG();
return 
}if(C==="channelSetupEdit"){C="channelSetup"
}epg.Authentication.getAvailableChannels();
epg.Authentication.properties.sType=C;
epg.ui.modalPane.display(epg.Authentication.displayRender,false)
},displayChannelSetup:function(){traceAuth("displayChannelSetup",arguments);
epg.Authentication.properties.sFirstTab="manual";
epg.Authentication.display("channelSetupEdit")
},publicKey:{},getPublicKey:function(){traceAuth("getPublicKey",arguments);
testBench({aspect:"Server_PublicKey",type:"start"});
epg.tools.doAjax({url:epg.config.filePublicKey,data:{},dataType:"json",success:function(A){testBench({aspect:"Server_PublicKey",type:"stop"});
epg.Authentication.publicKey=A
}})
},displayRender:function(B){traceAuth("displayRender",arguments);
epg.Authentication.getPublicKey();
var G=epg.Authentication.properties.sType;
var E="";
var A="";
var C="";
if(G==="loginOnly"){C=epg.Authentication.login.createLoginFieldSet();
helpMessage=epg.Authentication.createHelpMessage(epg.Authentication.properties.aMessages.sChannelPromo)
}else{if(G==="channelSetup"){if(epg.Authentication.properties.iAuthState==0&&epg.Authentication.properties.sFirstTab!="manual"){C=epg.Authentication.login.createLoginFieldSet();
E=epg.Authentication.channelPrefs.createTitle();
A=epg.Authentication.channelPrefs.createTabs()
}else{E=epg.Authentication.channelPrefs.createTitle();
A=epg.Authentication.channelPrefs.createTabs();
if(epg.Authentication.properties.sFirstTab!="simple"||epg.Authentication.isGuest()){C=epg.Authentication.channelPrefs.createManualSetup()
}else{C=epg.Authentication.channelPrefs.createSimpleSetup()
}}}}var F={sNodeType:["div"],aClasses:["epg_authArea"],oContents:[E,E,A,C]};
var D=epg.tools.generateDOM(F);
B.appendChild(D)
},createHelpMessage:function(B){traceAuth("createHelpMessage",arguments);
var A={sNodeType:["p"],sId:["epg_auth_info"],aClasses:["epg_helpArea"],oContents:B};
return epg.tools.generateDOM(A)
},hide:function(){traceAuth("hide",arguments);
epg.Authentication.trigger="";
$(epg.Authentication.properties.eOverlay).removeClassName("visible");
epg.ui.Toolbars.enable()
},checkAuthenticated:function(){traceAuth("checkAuthenticated",arguments);
if(epg.data.UserCookie.getCookie("skySSO","plain")&&epg.data.UserCookie.getCookie("skySSO","plain")!='""'){epg.Authentication.properties.iAuthState=1;
epg.Authentication.setUserName(epg.Authentication.getUserName());
epg.ui.Toolbars.toolbar1.setup()
}else{epg.Authentication.properties.iAuthState=0;
epg.ui.Toolbars.toolbar1.updateAuthentication()
}},isAuthenticated:function(){traceAuth("isAuthenticated",arguments);
if(epg.data.userPreferences!=undefined){epg.Authentication.properties.iAuthState=1;
epg.Authentication.setUserName(epg.Authentication.getUserName())
}if(epg.Authentication.properties.iAuthState!=0){return true
}else{return false
}},isGuest:function(){traceAuth("isGuest",arguments);
var A=false;
if(epg.Authentication.isAuthenticated()&&epg.data.userPreferences!==undefined&&epg.data.userPreferences.userType==="guest"){A=true
}return A
}};
epg.Authentication.login={properties:{sUnameID:"epg_userName",sPwordID:"epg_password"},createLoginFieldSet:function(){traceAuth("createLoginFieldSet",arguments);
var A={sNodeType:["form"],sId:"epg_setupHolder",oContents:[epg.Authentication.createHelpMessage(epg.Authentication.properties.aMessages.sChannelPromo),{sNodeType:["div"],aClasses:["epg_authArea_ColLeft"],oContents:[{sNodeType:["fieldset"],oContents:[{sNodeType:["legend"],oContents:"Log in"},{sNodeType:["label"],oContents:"Username"},this.roundedTextBox(this.properties.sUnameID,[{iNodeNo:0,sAttribute:"TABINDEX",sValue:"1"}],[{iNodeNo:0,sEvent:"keyup",fCallBack:epg.Authentication.login.captureLoginEvent}]),{sNodeType:["a"],aClasses:["epg_help"],sHref:epg.tools.createSrpUrl(epg.config.urlForgottenUsername,"forgottenUserName"),aAttributes:[{iNodeNo:0,sAttribute:"tabindex",sValue:"5"},{iNodeNo:0,sAttribute:"target",sValue:"_top"}],oContents:"Forgot Username?"},{sNodeType:["label"],oContents:"Password"},this.roundedTextBox(this.properties.sPwordID,[{iNodeNo:0,sAttribute:"type",sValue:"password"},{iNodeNo:0,sAttribute:"TABINDEX",sValue:"2"}],[{iNodeNo:0,sEvent:"keyup",fCallBack:epg.Authentication.login.captureLoginEvent}]),{sNodeType:["a"],aClasses:["epg_help"],sHref:epg.tools.createSrpUrl(epg.config.urlForgottenPassword,"forgottenPassword"),aAttributes:[{iNodeNo:0,sAttribute:"tabindex",sValue:"6"},{iNodeNo:0,sAttribute:"target",sValue:"_top"}],oContents:"Forgot Password?"}]},this.formButtons(epg.Authentication.tryLogin,epg.ui.modalPane.close)]},this.rightPromo()]};
return epg.tools.generateDOM(A)
},roundedTextBox:function(A,D,C){traceAuth("roundedTextBox",arguments);
var B={sNodeType:["div"],aClasses:["epg_inputCornerLeft"],oContents:[{sNodeType:["div"],aClasses:["epg_inputCornerRight"],oContents:[{sNodeType:["input"],sId:A,aBehaviours:C,aAttributes:D,oContents:""}]}]};
return epg.tools.generateDOM(B)
},formButtons:function(B,A){traceAuth("formButtons",arguments);
var C={sNodeType:["div"],aClasses:["epg_formControls"],oContents:[{sNodeType:["div","span","span","a"],aClasses:["epg_actionButton","epg_positiveButton"],aBehaviours:[{iNodeNo:3,sEvent:"click",fCallBack:B}],oContents:"submit"},{sNodeType:["div","span","span","a"],aClasses:["epg_actionButton","epg_negativeButton"],aBehaviours:[{iNodeNo:0,sEvent:"click",fCallBack:A}],oContents:"cancel"}]};
return epg.tools.generateDOM(C)
},captureLoginEvent:function(B){var A=(window.event)?window.event.keyCode:(B.keyCode)?B.keyCode:(B.which)?B.which:null;
if(A===13){traceAuth("captureLoginEvent",arguments);
epg.Authentication.tryLogin()
}},rightPromo:function(){traceAuth("rightPromo",arguments);
oContents=[{sNodeType:["p"],oContents:[{sNodeType:["span"],oContents:(epg.config.auth&&epg.config.auth.loginCopy!==undefined)?epg.config.auth.loginCopy:"If you are a Sky customer, you can personalise your TV listings view to show only the channels included in your Sky package. If you have registered for Remote Record you can do that here too! Just log in to get started."}]},{sNodeType:["p"],oContents:[{sNodeType:["span"],oContents:"Don't have a Log in? "},{sNodeType:["span"],aClasses:["epg_newLineLink"],aBehaviours:[{iNodeNo:0,sAttribute:"target",sValue:"_top",sEvent:"click",fCallBack:function(){window.top.location=epg.tools.createSrpUrl(epg.config.urlRegister,"skyregistration")
}}],oContents:"Register Now"}]}];
if(epg.config.auth.enableChannelSetup){oContents.push({sNodeType:["p"],oContents:[{sNodeType:["span"],oContents:"Don't have Sky TV? "},{sNodeType:["span"],aClasses:["epg_newLineLink"],aBehaviours:[{iNodeNo:0,sEvent:"click",fCallBack:epg.Authentication.displayChannelSetup}],oContents:"Set channels up yourself"}]})
}var A={sNodeType:["div"],aClasses:["epg_authArea_ColRight"],oContents:oContents};
return epg.tools.generateDOM(A)
}};
epg.Authentication.channelPrefs={properties:{iCurrentProvider:0,iCurrentChannels:[],iCurrentRegion:0,sTitle:"My Channel set up",sTab1:"simple setup",sTab2:"manual setup",sProviderTitle:"Please select your Sky TV Package: ",oArrayProviderMap:{virgin:1,freeview:2,sky:0},packageInfo:{},aRegionList:[],aRegionListCode:[],aRegionListCodeNo:{0:0}},processChannelData:function(D){traceAuth("processChannelData",arguments);
var C={};
for(var B=0,A=D.provider.length;
B<A;
B++){var E=D.provider[B].id;
C[E]=D.provider[B]
}epg.Authentication.channelPrefs.properties.packageInfo=C
},processUserPackageData:function(A){traceAuth("processUserPackageData",arguments);
epg.Authentication.channelPrefs.properties.packageInfo=A
},createTitle:function(){traceAuth("createTitle",arguments);
var B={sNodeType:["h2"],oContents:this.properties.sTitle};
var A=epg.tools.generateDOM(B);
return A
},createTabs:function(){traceAuth("createTabs",arguments);
if(epg.Authentication.isGuest()){return epg.Authentication.channelPrefs.createTabsForGuest()
}else{return epg.Authentication.channelPrefs.createStandardTabs()
}},createTabsForGuest:function(){traceAuth("createTabsForGuest",arguments);
var A={sNodeType:["ul"],aClasses:["epg_tabs"],oContents:[{sNodeType:["li","a"],aClasses:["on"],aBehaviours:[{iNodeNo:0,sEvent:"click",fCallBack:""}],oContents:this.properties.sTab2}]};
return epg.tools.generateDOM(A)
},createStandardTabs:function(){traceAuth("createStandardTabs",arguments);
var C="on";
var B="";
if(epg.Authentication.properties.sFirstTab!="simple"){C="";
B="on"
}var A={sNodeType:["ul"],aClasses:["epg_tabs"],oContents:[{sNodeType:["li","a"],aClasses:[C],aBehaviours:[{iNodeNo:0,sEvent:"click",fCallBack:epg.Authentication.channelPrefs.swapTabs}],oContents:this.properties.sTab1},{sNodeType:["li","a"],aClasses:[B],aBehaviours:[{iNodeNo:0,sEvent:"click",fCallBack:epg.Authentication.channelPrefs.swapTabs}],oContents:this.properties.sTab2}]};
return epg.tools.generateDOM(A)
},swapTabs:function(){traceAuth("swapTabs",arguments);
if(!$(this).hasClassName("on")){var C=this.parentNode;
for(var B=0,A=C.childNodes.length;
B<A;
B++){$(C.childNodes[B]).removeClassName("on")
}$(this).addClassName("on");
if(this.innerHTML=="<a>manual setup</a>"||this.innerHTML=="<A>manual setup</A>"){$("epg_setupHolder").innerHTML="";
$("epg_setupHolder").appendChild(epg.Authentication.channelPrefs.createManualSetup())
}else{if(epg.Authentication.isAuthenticated()){$("epg_setupHolder").innerHTML="";
$("epg_setupHolder").appendChild(epg.Authentication.channelPrefs.createSimpleSetup())
}else{$("epg_setupHolder").innerHTML="";
$("epg_setupHolder").appendChild(epg.Authentication.login.createLoginFieldSet())
}}}},createSimpleSetup:function(){traceAuth("createSimpleSetup",arguments);
var A={sNodeType:["div"],sId:"epg_setupHolder",oContents:[{sNodeType:["p"],sId:"epg_auth_info",aClasses:["epg_helpArea"],oContents:[{sNodeType:["span"],oContents:"Want to see what you can watch?"},{sNodeType:["a"],aClasses:["epg_channelLink"],aBehaviours:[{iNodeNo:0,sEvent:"click",fCallBack:epg.Authentication.getUserPackage}],oContents:"...filter my listings based on my subscription"}]}]};
A=epg.tools.generateDOM(A);
return A
},createManualSetup:function(){traceAuth("createManualSetup",arguments);
var A={sNodeType:["div"],sId:"epg_setupHolder",oContents:[this.createProviders(),{sNodeType:["div"],sId:"epg_mixHolder",oContents:[this.generateMixes(this.properties.iCurrentProvider)]}]};
A=epg.tools.generateDOM(A);
return A
},createProviders:function(){traceAuth("createProviders",arguments);
var A=null;
var D=null;
if(this.properties.iCurrentProvider==0){D={iNodeNo:0,sAttribute:"checked",sValue:"checked"}
}else{if(this.properties.iCurrentProvider==1){A={iNodeNo:0,sAttribute:"checked",sValue:"checked"}
}}var C={sNodeType:["div"],sId:"epg_provider",oContents:[{sNodeType:["h3"],oContents:this.properties.sProviderTitle},{sNodeType:["input"],aAttributes:[{iNodeNo:0,sAttribute:"type",sValue:"hidden"},{iNodeNo:0,sAttribute:"value",sValue:this.properties.oArrayProviderMap.sky},{iNodeNo:0,sAttribute:"name",sValue:"provider"},D],aBehaviours:[{iNodeNo:0,sEvent:"click",fCallBack:epg.Authentication.channelPrefs.swapProvider}],oContents:this.properties.packageInfo[this.properties.oArrayProviderMap.sky].name}]};
var B=epg.tools.generateDOM(C);
return B
},generateMixes:function(J){traceAuth("generateMixes",arguments);
var R=document.createElement("div");
$(R).addClassName("epg_mixes");
var H=this.properties.packageInfo[J].packageGroups.packagegroup.length;
if(H==undefined){this.properties.packageInfo[J].packageGroups.packagegroup=[this.properties.packageInfo[J].packageGroups.packagegroup];
H=1
}for(var Q=0;
Q<H;
Q++){if(this.properties.packageInfo[J].packageGroups.packagegroup[Q].name!="FREETOAIR"){var S=document.createElement("fieldset");
var K=document.createElement("h5");
K.innerHTML=this.properties.packageInfo[J].packageGroups.packagegroup[Q].name;
S.appendChild(K);
var D=document.createElement("div");
if(this.properties.packageInfo[J].packageGroups.packagegroup[Q].multipleChoice=="true"){var L="checkbox";
var I=""
}else{var L="radio";
var I=this.properties.packageInfo[J].packageGroups.packagegroup[Q].name
}var G=this.properties.packageInfo[J].packageGroups.packagegroup[Q]["packages"]["package"];
var M=G.length;
var T={};
for(var O=0,N=this.properties.iCurrentChannels.length;
O<N;
O++){T[this.properties.iCurrentChannels[O]]=true
}for(var P=0;
P<M;
P++){var E=document.createElement("div");
$(E).addClassName("epg_singleMix");
var A=document.createElement("label");
A.setAttribute("for",G[P].code);
A.innerHTML='<input type="'+L+'" id="'+G[P].code+'" name="'+I+'" value="'+G[P].name+'" '+(T[G[P].code]===true?'checked="checked"':"")+"/>&nbsp;&nbsp;"+G[P].name;
E.appendChild(A);
D.appendChild(E)
}S.appendChild(D);
R.appendChild(S)
}}if(this.properties.packageInfo[J].regions){var C=this.properties.packageInfo[J].regions.region.length;
this.properties.packageInfo[J].regions.region=this.properties.packageInfo[J].regions.region.sortBy(function(V){var U=(V.defaultRegion=="true"?0:1);
return U
});
for(var Q=0;
Q<C;
Q++){epg.Authentication.channelPrefs.properties.aRegionList[Q]=this.properties.packageInfo[J].regions.region[Q].name;
epg.Authentication.channelPrefs.properties.aRegionListCode[Q]=this.properties.packageInfo[J].regions.region[Q].code;
epg.Authentication.channelPrefs.properties.aRegionListCodeNo[this.properties.packageInfo[J].regions.region[Q].code]=Q
}var B=this.createDropUp(epg.Authentication.channelPrefs.properties.aRegionList);
Event.observe(B,"mousedown",epg.Authentication.channelPrefs.openDropUp);
R.appendChild(B)
}var F=epg.Authentication.login.formButtons(epg.Authentication.channelPrefs.saveChannelPreferences,epg.ui.modalPane.close);
R.appendChild(F);
return(R)
},swapProvider:function(){traceAuth("swapProvider",arguments);
var D=this.value;
epg.Authentication.channelPrefs.properties.iCurrentProvider=parseInt(D);
for(var B=0,A=this.parentNode.childNodes.length;
B<A;
B++){this.parentNode.childNodes[B].checked=false;
this.parentNode.childNodes[B].removeAttribute("checked")
}this.checked="checked";
var C=$("epg_mixHolder");
if(C){C.innerHTML="";
C.appendChild(epg.Authentication.channelPrefs.generateMixes(D))
}},saveSingleCP:function(B){traceAuth("saveSingleCP",arguments);
var A={provider:B};
epg.Authentication.channelPrefs.properties.iCurrentProvider=B;
epg.data.UserData.saveData("epg_channelPrefs",A);
if(B==3){epg.stateMachine.isHDChannels=true
}else{epg.stateMachine.isHDChannels=false
}epg.ui.Dropdowns.providers.setup();
epg.bubble.closeBubble();
epg.reloadEPG()
},saveSpecialFilter:function(C){traceAuth("saveSpecialFilter",arguments);
var B=epg.data.UserCookie.getCookie("epg_channelPrefs"+epg.config.cookieSuffix);
if(B){var A={specialFilter:"HD",provider:(B.provider!==undefined?B.provider:""),packages:(B.packages!==undefined?B.packages:""),region:(B.region!==undefined?B.region:"")}
}else{var A={specialFilter:"HD"}
}epg.data.UserData.saveData("epg_channelPrefs",A);
epg.bubble.closeBubble();
epg.reloadEPG()
},saveChannelPreferences:function(){traceAuth("saveChannelPreferences",arguments);
var B=$("epg_mixHolder");
var F=[];
var A=B.getElementsByTagName("input");
for(var E=0,C=A.length;
E<C;
E++){if(A[E].checked==1){F.push(A[E].id)
}}epg.Authentication.channelPrefs.properties.iCurrentChannels=F;
if(!$("epg_channelDropUp")){epg.Authentication.channelPrefs.properties.iCurrentRegion=0
}var D={provider:epg.Authentication.channelPrefs.properties.packageInfo[epg.Authentication.channelPrefs.properties.iCurrentProvider].id,packages:F,region:epg.Authentication.channelPrefs.properties.iCurrentRegion};
epg.data.UserData.saveData("epg_myChannels",D);
epg.Authentication.channelPrefs.reload(D)
},reload:function(A){epg.data.UserData.saveData("epg_channelPrefs",A);
epg.ui.modalPane.close();
epg.reloadEPG()
},saveUserPreferences:function(){traceAuth("saveUserPreferences",arguments);
var B=epg.Authentication.channelPrefs.properties.packageInfo.usersubscription;
var A={provider:B.provider||epg.Authentication.channelPrefs.properties.iCurrentProvider,packages:B.packages["string"]||epg.Authentication.channelPrefs.properties.iCurrentChannels,region:B.region||epg.Authentication.channelPrefs.properties.iCurrentRegion};
epg.data.UserData.saveData("epg_channelPrefs",A);
epg.ui.modalPane.close();
epg.reloadEPG()
},createDropUp:function(C,B){traceAuth("createDropUp",arguments);
var A={sNodeType:["fieldset"],sId:"epg_regions",aClasses:["epg_easyDropDown"],oContents:[{sNodeType:["h5"],oContents:"Please select your regional channels"},{sNodeType:["div"],sId:"epg_region_dropUp",oContents:[{sNodeType:["a"],aClasses:["epg_block_g1","epg_level_1"],oContents:[{sNodeType:["span","span","span","span"],oContents:[{sNodeType:["span"],sId:"epg_dropUpSelected",oContents:C[epg.Authentication.channelPrefs.properties.aRegionListCodeNo[this.properties.iCurrentRegion]]}]}]},{sNodeType:["a"],aClasses:["epg_dropdown_arrow"],oContents:" "}]},{sNodeType:["ul"],sId:"epg_channelDropUp",aClasses:["epg_dropdown"],oContents:[{sNodeType:["li","a"],aBehaviours:[{iNodeNo:1,sEvent:"click",fCallBack:epg.Authentication.channelPrefs.selectItem}],oContents:C}]}]};
return epg.tools.generateDOM(A)
},selectItem:function(){traceAuth("selectItem",arguments);
epg.Authentication.channelPrefs.properties.iCurrentRegion=epg.Authentication.channelPrefs.properties.aRegionListCode[this.parentNode.generatedNodeNo];
epg.Authentication.channelPrefs.setDropUp(this.innerHTML);
epg.Authentication.channelPrefs.closeDropUp()
},setDropUp:function(A){traceAuth("setDropUp",arguments);
$("epg_dropUpSelected").innerHTML=A
},openDropUp:function(){traceAuth("openDropUp",arguments);
var A=$("epg_region_dropUp");
var B=$("epg_channelDropUp");
Event.observe(B,"mouseover",epg.ui.Dropdowns.rollOver);
Event.observe(B,"mouseout",epg.ui.Dropdowns.rollOut);
Event.observe(A,"mousedown",epg.Authentication.channelPrefs.openDropUp);
Event.stopObserving(A,"mousedown",epg.Authentication.channelPrefs.openDropUp);
B.style.display="block";
Event.observe(B,"mouseout",epg.Authentication.channelPrefs.dropUpRollOut);
Event.observe(B,"mouseover",epg.Authentication.channelPrefs.dropUpRollOver)
},dropUpRollOver:function(){traceAuth("dropUpRollOver",arguments);
Event.stopObserving(document,"mouseup",epg.Authentication.channelPrefs.closeDropUp)
},dropUpRollOut:function(){traceAuth("dropUpRollOut",arguments);
Event.observe(document,"mouseup",epg.Authentication.channelPrefs.closeDropUp)
},closeDropUp:function(){traceAuth("closeDropUp",arguments);
var A=$("epg_region_dropUp");
var B=$("epg_channelDropUp");
B.style.display="none";
Event.stopObserving(document,"mouseup",epg.Authentication.channelPrefs.closeDropUp);
Event.stopObserving(B,"mouseover",epg.ui.Dropdowns.rollOver);
Event.stopObserving(B,"mouseout",epg.ui.Dropdowns.rollOut);
Event.observe(A,"mousedown",epg.Authentication.channelPrefs.openDropUp);
Event.stopObserving(B,"mouseout",epg.Authentication.channelPrefs.dropUpRollOut);
Event.stopObserving(B,"mouseover",epg.Authentication.channelPrefs.dropUpRollOver)
}};epg.remoterecord={display:function(A,B){epg.ui.Alerts.modalDialogue.open.confirmYesNo("Do you want to Remote Record this programme? Click YES to confirm and your request will be sent within the next 30 minutes.",function(){epg.remoterecord.request(A,B)
})
},goLogin:function(){epg.Authentication.trigger="remoterecord";
epg.Authentication.display("loginOnly")
},request:function(A,B){if(epg.Authentication.isAuthenticated()){epg.hitbox.send("remoterecord");
testBench({aspect:"Server_RemoteRecord",type:"start"});
epg.tools.doAjax({url:epg.config.fileRemoteRecord,data:{channelId:A,eventId:B},dataType:"json",success:function(C){testBench({aspect:"Server_RemoteRecord",type:"stop"});
epg.remoterecord.parseRequest(C)
}})
}else{epg.Authentication.trigger="remoterecord";
epg.Authentication.display("loginOnly")
}epg.ui.Alerts.modalDialogue.closeRawDialogue()
},parseRequest:function(B){var A=parseInt(B.remoteRecordResult.code,10);
switch(A){case 0:epg.ui.Alerts.modalDialogue.open.notice("Thank you. Your Remote Record request has been sent. This is expected to be delivered in the next 30 minutes.");
break;
case 1:epg.ui.Alerts.modalDialogue.open.error("Sorry this programme will not be recorded. This programme cannot be found.");
break;
case 2:epg.ui.Alerts.modalDialogue.open.error("Sorry this programme will not be recorded. Recording requests should be sent at least 30 minutes before the programme starts.");
break;
case 3:epg.ui.Alerts.modalDialogue.open.error("Sorry, you have been inactive too long. Please click Log Out and try again.");
break;
case 4:epg.ui.Alerts.modalDialogue.open.remoteRecord.notActivated();
break;
case 5:epg.ui.Alerts.modalDialogue.open.remoteRecord.notActivated();
break;
case 6:epg.ui.Alerts.modalDialogue.open.remoteRecord.registerMobile();
break;
case 7:epg.ui.Alerts.modalDialogue.open.notice("Sorry, this programme belongs to a channel that is not part of your Sky TV subscription.");
break;
case 8:epg.ui.Alerts.modalDialogue.open.error("Sorry, It's not possible to remote record right now. Please try again later.");
break;
case 9:epg.ui.Alerts.modalDialogue.open.remoteRecord.notActivated();
break;
default:epg.ui.Alerts.modalDialogue.open.error("Sorry, It's not possible to remote record right now. Please try again later.");
break
}},displayConfirmation:function(){},displayError:function(){}};epg.ui.Alerts.modalDialogue={autoCloseTimeout:1500,rawDialogueStack:0,rawDialogueZindex:20000,showRawDialogue:function(G,C,K){if(C===undefined){C=340
}var E=++epg.ui.Alerts.modalDialogue.rawDialogueStack;
var F="raw-dialogue-overlay"+E;
var H="raw-dialogue-container"+E;
epg.ui.Alerts.modalDialogue.rawDialogueZindex+=10;
if(jQuery.browser.msie){K+=-20
}var L=document.createElement("div");
L.setAttribute("id",F);
L.className="epg_overlay";
L.style.height=document.getElementById(epg.config.eEPG).offsetHeight;
L.style.zIndex=parseInt(epg.ui.Alerts.modalDialogue.rawDialogueZindex+E,10);
L.style.position="absolute";
document.body.appendChild(L);
var B=document.createElement("div");
B.id=H;
B.style.zIndex=parseInt(epg.ui.Alerts.modalDialogue.rawDialogueZindex+E+1,10);
B.style.position="absolute";
B.innerHTML=epg.ui.Alerts.modalDialogue.getDialogueTemplate(E);
document.body.appendChild(B);
document.getElementById("raw-dialogue"+E).style.width=C+"px";
if(K!==undefined){}document.getElementById("raw-dialogue-content"+E).style.width=(C-20)+"px";
document.getElementById("raw-dialogue-content"+E).innerHTML=G;
K=$("raw-dialogue"+E).getHeight();
var A=window.innerHeight!==undefined?window.innerHeight:document.body.clientHeight;
var I=window.innerWidth!==undefined?window.innerWidth:document.body.clientWidth;
var J=Math.round(((A/2)-(K/2))/(A*0.01))-5+epg.config.general.modalOffset.top;
var D=Math.round(((I/2)-(C/2))/(I*0.01));
if(J<=0){J=1
}if(D<=0){D=1
}document.getElementById(H).style.top=J+"%";
document.getElementById(H).style.left=D+"%"
},getDialogueTemplate:function(A){if(jQuery.browser.msie&&jQuery.browser.version==6){return'<div class="raw-dialogue" id="raw-dialogue'+A+'"><div class="t"><div class="tl"></div><div class="tm"></div><div class="tr"></div></div><div class="c"><div class="innerc"><div class="raw-dialogue-content" id="raw-dialogue-content'+A+'"></div></div></div><div class="b"><div class="bl"></div><div class="bm"></div><div class="br"></div></div></div>'
}else{return'<div class="raw-dialogue" id="raw-dialogue'+A+'"><div class="t"><div class="tm"></div><div class="tl"></div><div class="tr"></div></div><div class="c"><div class="innerc"><div class="raw-dialogue-content" id="raw-dialogue-content'+A+'"></div></div></div><div class="b"><div class="bm"></div><div class="bl"></div><div class="br"></div></div></div>'
}return'<table class="raw-dialogue" id="raw-dialogue'+A+'"><tr><td class="tl"><div class="raw-dialogue-content" id="raw-dialogue-content'+A+'"></div></td><td class="tm"></td><td class="tr"></td></tr><tr><td class="l"></td><td class="m"></td><td class="r"></td></tr><tr><td class="bl"></td><td class="bm"></td><td class="br"></td></tr></table>'
},closeRawDialogue:function(C){var B="raw-dialogue-overlay"+epg.ui.Alerts.modalDialogue.rawDialogueStack;
var A="raw-dialogue-container"+epg.ui.Alerts.modalDialogue.rawDialogueStack;
document.getElementById(A).parentNode.removeChild(document.getElementById(A));
document.getElementById(B).parentNode.removeChild(document.getElementById(B));
epg.ui.Alerts.modalDialogue.rawDialogueStack--;
epg.ui.Alerts.modalDialogue.rawDialogueZindex-=10
},close:function(A){document.getElementById(epg.config.eModalDialogue).parentNode.removeChild(document.getElementById(epg.config.eModalDialogue));
document.getElementById(epg.config.eModalOverlay).parentNode.removeChild(document.getElementById(epg.config.eModalOverlay))
},open:{noticeFade:function(B){var A='<div class="body notice-dialogue"><div class="notice-icon"></div><div class="notice-message">'+B+"</div></div>";
epg.ui.Alerts.modalDialogue.showRawDialogue(A,340,jQuery.browser.msie?90:105);
setTimeout("epg.ui.doFade('raw-dialogue'+epg.ui.Alerts.modalDialogue.rawDialogueStack,100,'epg.ui.Alerts.modalDialogue.closeRawDialogue()')",epg.ui.Alerts.modalDialogue.autoCloseTimeout)
},alreadyBroadcast:function(){epg.ui.Alerts.modalDialogue.open.error("Sorry, this programme has already been broadcast.")
},ajaxTimeoutDelay:function(){var A='<div class="body notice-dialogue" id="ajaxtimeoutdelaymodal"><div class="notice-icon"></div><div class="notice-message" style="height: 20px;"><p>Sorry, it\'s taking longer than expected retrieving the data. Thanks for your patience.</p></div></div></div>';
epg.ui.Alerts.modalDialogue.showRawDialogue(A,340,jQuery.browser.msie?20:20)
},ajaxTimeoutFailure:function(A){var B='<div class="body error-dialogue" id="ajaxtimeoutfailuremodal"><div class="error-icon"></div><div class="error-message" style="height: 20px;"><p>Sorry, we\'ve been unable to retrieve the data. Please come back later or <a href="#" id="aAjaxRetry">try again</a>.</p></div><div class="buttons"><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Close</a></span></span></div></div></div></div>';
epg.ui.Alerts.modalDialogue.showRawDialogue(B,340,jQuery.browser.msie?20:20);
setTimeout(function(){jQuery("#aAjaxRetry").click(function(){epg.ui.Alerts.modalDialogue.closeRawDialogue();
A();
return false
})
},500)
},loginToSaveRatings:function(){epg.ui.Alerts.modalDialogue.open.error("Sorry, you have to be logged in to be able to save your ratings")
},promo:function(E,B,C,D){var A='<div class="header"><div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><span class="title">'+E+'</span></div><div class="body"><p>'+B+'</p></div><div class="buttons"><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Close</a></span></span></div></div><div class="button-spacer">&nbsp;</div><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_positiveButton"><span><span><a href="'+C+'" target="'+D+'">Find out more</a></span></span></div></div>';
"</div>";
epg.ui.Alerts.modalDialogue.showRawDialogue(A,300,jQuery.browser.msie?85:100)
},error:function(A){var B='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="body error-dialogue"><div class="error-icon"></div><div class="error-message">'+A+'</div></div><br clear="all" /><div class="buttons"><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Close</a></span></span></div></div></div>';
epg.ui.Alerts.modalDialogue.showRawDialogue(B,340,jQuery.browser.msie?110:125)
},notice:function(B){var A='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="body notice-dialogue"><div class="notice-icon"></div><div class="notice-message">'+B+'</div></div><br clear="all" /><div class="buttons"><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Close</a></span></span></div></div></div>';
epg.ui.Alerts.modalDialogue.showRawDialogue(A,340,jQuery.browser.msie?110:125)
},confirmYesNo:function(C,B){var A='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="body notice-dialogue"><div class="notice-icon"></div><div class="notice-message">'+C+'</div></div><br clear="all" /><div class="buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">&nbsp;No&nbsp;</a></span></span></div><div class="epg_actionButton epg_positiveButton"><span><span><a id="confirmYes">Yes</a></span></span></div>';
"</div>";
epg.ui.Alerts.modalDialogue.showRawDialogue(A,340,jQuery.browser.msie?110:125);
Event.observe(document.getElementById("confirmYes"),"click",function(D){B();
Event.stop(D)
})
},remoteRecord:{notActivated:function(){var A='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="body notice-dialogue"><div class="notice-icon"></div><div class="notice-message" style="height: 55px;"><p>To use Remote Record you must have Sky+ or Sky+HD and have activated Remote Record.</p><a id="aActivateRemoteRecord" href="'+epg.config.urlActivateRemoteRecord+'" target="_blank">Find out more</a></p></div></div>';
epg.ui.Alerts.modalDialogue.showRawDialogue(A,340,jQuery.browser.msie?110:125);
jQuery("#aActivateRemoteRecord").click(function(){epg.tools.popwin(this.href,true);
return false
})
},noSkyPlus:function(){var A='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="body notice-dialogue"><div class="notice-icon"></div><div class="notice-message" style="height: 130px;"><p>To use Remote Record you must have Sky+ or Sky+HD and have activated Remote Record.</p><p>Already have Sky+ or Sky+HD?<br /><a id="aActiveRemoteRecord" href="'+epg.config.urlRemoteRecordCheckBoxSetup+'" target="_blank">Activate Remote Record now</a></p><p>Don\'t have Sky+ or Sky+HD?<br /><a id="aRemoteRecordFindOutMore" href="'+epg.config.urlFindOutAboutRemoteRecord+'" target="_blank">Find out more</a></p></div></div><br clear="all" /><div class="buttons"><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Close</a></span></span></div></div></div>';
jQuery("#aActiveRemoteRecord").click(function(){epg.tools.popwin(this.href,true);
return false
});
jQuery("#aRemoteRecordFindOutMore").click(function(){epg.tools.popwin(this.href,true);
return false
});
epg.ui.Alerts.modalDialogue.showRawDialogue(A,340,jQuery.browser.msie?185:200)
},registerMobile:function(){var A='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="body notice-dialogue"><div class="notice-icon"></div><div class="notice-message" style="height: 90px;"><p>Ah! Is this the first time you try Remote Record? You will need to register your mobile phone number. This will also enable you to use Remote Record with your mobile phone.</p><a href="'+epg.config.urlFindOutAboutGettingSky+'" target="_parent">Find out more about getting Sky</a></p></div></div><br clear="all" /><div class="buttons"><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Close</a></span></span></div></div></div>';
epg.ui.Alerts.modalDialogue.showRawDialogue(A,340,jQuery.browser.msie?140:155)
}}}};epg.reminders={stateMachine:{},deleteReminder:function(){var A=jQuery("#reminder-programme-selected")[0].checked?false:true;
epg.tools.doAjax({url:epg.config.ajaxReminderDelete,data:epg.reminders.getPostParms(),dataType:"json",success:function(C){var B=C.result;
if(B.status===undefined||B.status!=="OK"){if(B.errorCode=="ERR_NOT_LOGGED_IN"){epg.ui.Alerts.modalDialogue.open.error(epg.strings.sessionTimeout)
}else{epg.ui.Alerts.modalDialogue.open.error(epg.strings.unexpectedError+" (bad reminder delete status)")
}return 
}else{if(A){strTitle=epg.bubble.properties.oCurrentBubbleData.oFullProgrammeData.title;
for(var E in epg.data.events){for(var D in epg.data.events[E]){if(epg.data.events[E][D].program.title==strTitle){epg.data.events[E][D].program.userreminderset="false"
}}}}else{epg.data.events[epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel][epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow].program.userreminderset="false"
}jQuery("#epg_RemindMeLink").removeClass("epg_UpdateReminder").text("Remind Me");
epg.ui.Alerts.modalDialogue.closeRawDialogue();
epg.ui.Alerts.modalDialogue.open.noticeFade("Your reminder has been deleted.");
return 
}}})
},closeConfDialogue:function(A){if($(A)){epg.ui.doFade("raw-dialogue"+epg.ui.Alerts.modalDialogue.rawDialogueStack,100,"epg.ui.Alerts.modalDialogue.closeRawDialogue()")
}},saveReminder:function(){var A=epg.reminders.getPostParms();
A.reminderRequestedSms=jQuery("#reminder-sms")[0].checked;
A.reminderRequestedEmail=jQuery("#reminder-email")[0].checked;
A.reminderForSeries=jQuery("#reminder-programme-selected")[0].checked?false:true;
epg.tools.doAjax({url:epg.config.ajaxReminderSave,data:A,dataType:"json",success:function(C){var B=C.result;
if(B.status===undefined){if(B.errorCode=="ERR_NOT_LOGGED_IN"){epg.ui.Alerts.modalDialogue.open.error(epg.strings.sessionTimeout)
}else{epg.ui.Alerts.modalDialogue.open.error(epg.strings.unexpectedError+" (no reminder save status)")
}return 
}if(B.status!=="OK"){if(B.errorCode=="ERR_NOT_LOGGED_IN"){epg.ui.Alerts.modalDialogue.open.error(epg.strings.sessionTimeout)
}else{epg.ui.Alerts.modalDialogue.open.error("We haven't been able to set this reminder. Please try again later.")
}return 
}else{if(A.reminderForSeries){strTitle=epg.bubble.properties.oCurrentBubbleData.oFullProgrammeData.title;
for(var E in epg.data.events){for(var D in epg.data.events[E]){if(epg.data.events[E][D].program.title==strTitle){epg.data.events[E][D].program.userreminderset="true"
}}}}else{epg.data.events[epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel][epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow].program.userreminderset="true"
}jQuery("#epg_RemindMeLink").addClass("epg_UpdateReminder").text("Update Reminder");
epg.ui.Alerts.modalDialogue.closeRawDialogue();
epg.ui.Alerts.modalDialogue.open.noticeFade("Your reminder has been saved.");
return 
}}})
},validateForm:function(){if(jQuery("#reminder-email")[0].checked===false&&jQuery("#reminder-sms")[0].checked===false){epg.ui.Alerts.modalDialogue.open.error(epg.strings.selectReminderOption);
return false
}return true
},goLogin:function(){epg.ui.Alerts.modalDialogue.closeRawDialogue();
epg.Authentication.trigger="";
epg.Authentication.display("loginOnly")
},openRemindMe:function(){if(epg.Authentication.isAuthenticated()===false){epg.ui.Alerts.modalDialogue.open.error('Sorry, you need to <a href="#" onclick="epg.reminders.goLogin();return false;">Log In/Register</a> to set reminders.');
return 
}epg.tools.doAjax({url:epg.config.ajaxReminderDetails,data:epg.reminders.getPostParms(),dataType:"json",success:function(B){var A=B.result;
if(A.status===undefined||A.content===undefined||A.status!=="OK"){if(A.errorCode=="ERR_NOT_LOGGED_IN"){epg.ui.Alerts.modalDialogue.open.error(epg.strings.sessionTimeout)
}else{epg.ui.Alerts.modalDialogue.open.error(epg.strings.unexpectedError+" (reminder details: "+A.errorCode+")")
}return 
}else{var C=A.content;
epg.reminders.stateMachine={email:C.emailAddress,mobileNumber:C.mobileNumber!==undefined?C.mobileNumber:false,haveNumber:C.mobileNumber!==undefined?true:false,newReminder:C.reminderRequestedSms==="false"&&C.reminderRequestedEmail==="false",smsValidated:C.reminderMobileValidated==="true",seriesAvailable:C.seriesAvailable==="true",requestedSms:C.reminderRequestedSms==="true"?true:false,requestedEmail:C.reminderRequestedEmail==="true"?true:false,reminderForSeries:C.reminderForSeries==="true"?true:false,smsAvailable:C.smsAvailable==="true"?true:false,emailAvailable:C.emailAvailable==="true"?true:false,clickedCancel:false};
epg.reminders.showDialogue.remindMe(epg.reminders.stateMachine)
}}})
},doSaveAction:function(){if(!epg.reminders.validateForm()){return 
}if(epg.reminders.yesShowSmsValidation()){epg.reminders.showDialogue.smsValidationPrompt()
}else{epg.reminders.saveReminder()
}},doCloseReminder:function(){if(epg.reminders.yesShowSmsValidation()){epg.reminders.stateMachine.clickedCancel=true;
epg.reminders.showDialogue.smsValidationPrompt()
}else{epg.ui.Alerts.modalDialogue.closeRawDialogue()
}},yesShowSmsValidation:function(){return jQuery("#reminder-sms")[0].checked&&epg.reminders.stateMachine.haveNumber&&!epg.reminders.stateMachine.smsValidated
},doCloseSmsValidation:function(){epg.ui.Alerts.modalDialogue.closeRawDialogue();
if(epg.reminders.stateMachine.clickedCancel){epg.reminders.stateMachine.clickedCancel=false;
epg.ui.Alerts.modalDialogue.closeRawDialogue()
}else{if(epg.reminders.yesShowSmsValidation()){epg.reminders.saveReminder()
}}},showDialogue:{remindMe:function(E){var C=epg.bubble.properties.oCurrentBubbleData.oFullProgrammeData;
var B=jQuery.browser.msie?300:310;
var D='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="header"><span class="title">Remind me about '+C.title+'</span></div><div class="body reminders"><p>Don\'t miss another thing! Tell us your email address or mobile number and we\'ll send you a reminder on the day this programme is being shown.</p><div class="section-heading">Please remind me by</div><p'+(epg.reminders.stateMachine.emailAvailable?"":' class="epg_greyedOut"')+'><input type="checkbox" class="checkbox" id="reminder-email" '+(E.requestedEmail?"checked":"")+""+(epg.reminders.stateMachine.emailAvailable?"":' disabled="disabled" ')+'> <label for="reminder-email"><b>Email</b> '+E.email+"</label>"+(epg.reminders.stateMachine.emailAvailable?' <a href="#" onclick="epg.reminders.editUserDetails();">edit</a>':"")+"</p>"+(E.mobileNumber!==false?"<p"+(epg.reminders.stateMachine.smsAvailable?"":' class="epg_greyedOut"')+'><input type="checkbox" class="checkbox" id="reminder-sms" '+(E.requestedSms?"checked":"")+(epg.reminders.stateMachine.smsAvailable?"":' disabled="disabled" ')+'> <label for="reminder-sms"><b>Text</b> '+E.mobileNumber+"</label>"+(epg.reminders.stateMachine.smsAvailable?' <a href="#" onclick="epg.reminders.editUserDetails();">edit</a>':"")+"</p>":"<p"+(epg.reminders.stateMachine.smsAvailable?"":' class="epg_greyedOut"')+'><input type="checkbox" id="reminder-sms" disabled /> For text reminders please update your profile with your mobile number <a href="#" onclick="epg.reminders.editUserDetails();">update</a></p>')+((!epg.reminders.stateMachine.smsAvailable&&!epg.reminders.stateMachine.emailAvailable&&E.newReminder)?'<p class="error">Sorry, it\'s too late to set a reminder for this programme. Have a look at "Other Airings" in the programme bubble or use the keyword search to find out when it\'s next on.</p>':"")+((!epg.reminders.stateMachine.smsAvailable&&!epg.reminders.stateMachine.emailAvailable&&!E.newReminder)?'<p class="error">Sorry, it\'s too late to update your reminder for this programme. Have a look at "Other Airings" in the programme bubble or use the keyword search to find out when it\'s next on.</p>':"")+((epg.reminders.stateMachine.smsAvailable&&!epg.reminders.stateMachine.emailAvailable&&E.newReminder)?'<p class="error">Sorry, it\'s too late to send you an email reminder but you can still sign up for an SMS reminder.</p>':"")+((epg.reminders.stateMachine.smsAvailable&&!epg.reminders.stateMachine.emailAvailable&&!E.newReminder)?'<p class="error">Sorry, it\'s too late to update email reminders.</p>':"")+'<p>Emails will be sent first thing in the morning and text messages one hour before the programme starts.</p><div class="separator"></div><p><input type="radio" value="programme" name="programme-or-series" class="radio" id="reminder-programme-selected" '+(E.reminderForSeries===undefined||!E.reminderForSeries||!E.seriesAvailable?"checked":"")+'> <label for="reminder-programme-selected">Remind me about this programme</label><br />'+(E.seriesAvailable?'<input type="radio" value="series" name="programme-or-series" class="radio" id="reminder-series-selected" '+(E.reminderForSeries!==undefined&&E.reminderForSeries?"checked":"")+'> <label for="reminder-series-selected">Remind me about the entire series</label> ':'<input type="radio" value="series" name="programme-or-series" class="radio" id="reminder-series-selected" disabled> <span style="color: #999;">Remind me about the entire series</span> ')+'</p><p>Sky won\'t charge you to receive text reminders. The text reminder service is only available in the UK.</p></div><div class="buttons">'+(!E.newReminder?'<div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.reminders.deleteReminder()" title="Delete Reminder">Delete</a></span></span></div><div class="epg_actionButton epg_positiveButton"><span><span><a onclick="epg.reminders.doSaveAction()" title="Update Reminder">Update</a></span></span></div>':'<div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Cancel</a></span></span></div>'+((epg.reminders.stateMachine.smsAvailable||epg.reminders.stateMachine.emailAvailable)?'<div class="epg_actionButton epg_positiveButton"><span><span><a onclick="epg.reminders.doSaveAction()" title="Save Reminder">Save</a></span></span></div>':""))+(!E.newReminder?'<div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.reminders.doCloseReminder()">Close</a></span></span></div>':"")+"</div>";
var A=epg.ui.Alerts.modalDialogue.showRawDialogue(D,380,B)
},smsValidationPrompt:function(){var B='<div class="header"><div class="close-button" onclick="epg.reminders.doCloseSmsValidation()"></div><span class="title">Mobile Phone Validation</span></div><div class="body"><p>We need to confirm the mobile number you have entered. You will only need to do this the first time you register for reminders by SMS.</p><p>To do this, please text "<span style="color: #19CF00;"><b>SKY</b></span>" to <span style="color: #19CF00;"><b>88060</b></span>. As soon as we receive this message, the reminders service will be activated.</p><p>(Your standard text message rate applies. Please check with your mobile phone provider for more details).</p></div><div class="buttons"><div class="epg_modalDialogue_buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.reminders.doCloseSmsValidation()">Close</a></span></span></div></div></div>';
var A=epg.ui.Alerts.modalDialogue.showRawDialogue(B,340,jQuery.browser.msie?175:190)
}},getPostParms:function(){var A={channelId:epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel,eventId:epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow};
return A
},editUserDetails:function(){var A='<div class="header"><div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><span class="title">Update Your Details</span></div><div class="body"><p>When you click OK you\'ll see your My Sky profile page. Amend your details on that page and close that window. You can then carry on setting your reminder.</p></div><div class="buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Cancel</a></span></span></div><div class="epg_actionButton epg_positiveButton"><span><span><a onclick="epg.reminders.showUserDetailsWindow()">OK</a></span></span></div></div>';
var B=epg.ui.Alerts.modalDialogue.showRawDialogue(A,250)
},showUserDetailsWindow:function(){epg.ui.Alerts.modalDialogue.closeRawDialogue();
var A='<div class="header"><span class="title">Update Your Details</span></div><div class="body"><p>Click OK to carry on setting your reminder.</p></div><div class="buttons"><div class="epg_actionButton epg_positiveButton"><span><span><a onclick="epg.reminders.updateUserDetails()">OK</a></span></span></div></div>';
var B=epg.ui.Alerts.modalDialogue.showRawDialogue(A,250);
epg.tools.popwin(epg.config.urlMySkyProfile,false)
},updateUserDetails:function(){epg.ui.Alerts.modalDialogue.closeRawDialogue();
epg.ui.Alerts.modalDialogue.closeRawDialogue();
epg.reminders.openRemindMe()
}};epg.emailToFriend={autoCloseTimeout:3000,data:{userEmail:"",userName:"",friendEmail:"",friendName:""},open:function(){if(epg.Authentication.isAuthenticated()===true){epg.emailToFriend.fetchUserDetails()
}else{epg.emailToFriend.showDialogue.sendMail(epg.emailToFriend.data)
}},fetchUserDetails:function(){if(epg.emailToFriend.data.userName!=""){epg.emailToFriend.showDialogue.sendMail(epg.emailToFriend.data);
return 
}var A={};
epg.tools.doAjax({url:epg.config.ajaxEmailToFriendDetails,data:A,dataType:"json",success:function(C){var B=C.result;
if(B.status!=="OK"){if(B.errorCode=="ERR_NOT_LOGGED_IN"){epg.ui.Alerts.modalDialogue.open.error(epg.strings.sessionTimeout)
}else{epg.ui.Alerts.modalDialogue.open.error(epg.strings.unexpectedError+" (share: "+B.errorCode+")")
}return 
}if(B.content===undefined){epg.ui.Alerts.modalDialogue.open.error("Sorry, we haven't been able to send an email. Please try again later.");
return 
}else{epg.emailToFriend.data.userName=B.content.name;
epg.emailToFriend.data.userEmail=B.content.emailAddress;
epg.emailToFriend.showDialogue.sendMail(epg.emailToFriend.data)
}}})
},showDialogue:{sendMail:function(D){var B=epg.bubble.properties.oCurrentBubbleData.oFullProgrammeData;
var C='<div class="close-button" onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()"></div><div class="header"><span class="title">Share this programme with a friend: '+B.title+'</span></div><div class="body"><p>Pass it on! If you\'d like to tell a friend about this programme just tell us their email address and we will send them your recommendation.</p><div class="section-heading">Please send an email to:</div><div class="right-input">Friend\'s name: <input type="text" id="emailtofriend-friends-name" value="'+D.friendName+'"></div><div class="right-input">Friend\'s email: <input type="text" id="emailtofriend-friends-email" value="'+D.friendEmail+'"></div><div class="separator"></div><div class="right-input">My name: <input type="text" id="emailtofriend-my-name" value="'+D.userName+'"></div><div class="right-input">My email: <input type="text" id="emailtofriend-my-email" value="'+D.userEmail+'"></div><div class="separator"></div><p>The details you provide on this page will only be used to send this e-mail on your behalf. Please make sure your friend is happy to receive this e-mail.</p></div><div class="buttons"><div class="epg_actionButton epg_negativeButton"><span><span><a onclick="epg.ui.Alerts.modalDialogue.closeRawDialogue()">Cancel</a></span></span></div><div class="epg_actionButton epg_positiveButton"><span><span><a id="aEmailToFriend">Send</a></span></span></div></div>';
var A=epg.ui.Alerts.modalDialogue.showRawDialogue(C,380,310);
jQuery("#aEmailToFriend").click(epg.emailToFriend.send)
}},send:function(){if(!epg.emailToFriend.validateForm()){return false
}jQuery("#aEmailToFriend").unbind("click").click(function(){return false
});
var A=epg.emailToFriend.getPostParms();
A.friendName=$("emailtofriend-friends-name").getValue();
A.friendEmail=$("emailtofriend-friends-email").getValue();
A.userName=$("emailtofriend-my-name").getValue();
A.userEmail=$("emailtofriend-my-email").getValue();
epg.emailToFriend.data=A;
epg.tools.doAjax({url:epg.config.ajaxEmailToFriend,data:A,type:"post",dataType:"json",success:function(B){if(B.result.status!=="OK"){epg.ui.Alerts.modalDialogue.open.error(B.result.errorMessage);
jQuery("#aEmailToFriend").click(epg.emailToFriend.send);
return 
}else{epg.ui.Alerts.modalDialogue.closeRawDialogue();
epg.ui.Alerts.modalDialogue.open.noticeFade("An email has been sent to your friend");
return 
}}});
return true
},validateForm:function(){var B="";
var A=/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if($("emailtofriend-friends-name").getValue()==""){B="Please enter your friend's name"
}else{if($("emailtofriend-friends-email").getValue()==""){B="Please enter your friend's email address"
}else{if(!$("emailtofriend-friends-email").getValue().match(A)){B="Your friend's email address does not appear to be valid.<br />Please enter a valid email address e.g. example@sky.com"
}else{if($("emailtofriend-my-name").getValue()==""){B="Please enter your name"
}}}}if(B!==""){epg.ui.Alerts.modalDialogue.open.error(B);
return false
}return true
},getPostParms:function(){var A={channelId:epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentChannel,eventId:epg.bubble.properties.oCurrentBubbleData.iBubbleCurrentShow};
return A
},closeConfDialogue:function(A){if($(A)){epg.ui.doFade("raw-dialogue"+epg.ui.Alerts.modalDialogue.rawDialogueStack,100,"epg.ui.Alerts.modalDialogue.closeRawDialogue()")
}}};epg.security={RSAKeyPair:function(B,C,A){this.e=epg.security.biFromHex(B);
this.d=epg.security.biFromHex(C);
this.m=epg.security.biFromHex(A);
this.chunkSize=2*epg.security.biHighIndex(this.m);
this.radix=16;
this.barrett=new epg.security.BarrettMu(this.m)
},encryptedString:function(H,K){var G=new Array();
var A=K.length;
var E=0;
while(E<A){G[E]=K.charCodeAt(E);
E++
}while(G.length%H.chunkSize!=0){G[E++]=0
}var F=G.length;
var L="";
var D,C,B;
for(E=0;
E<F;
E+=H.chunkSize){B=new epg.security.BigInt();
D=0;
for(C=E;
C<E+H.chunkSize;
++D){B.digits[D]=G[C++];
B.digits[D]+=G[C++]<<8
}var J=H.barrett.powMod(B,H.e);
var I=H.radix==16?epg.security.biToHex(J):epg.security.biToString(J,H.radix);
L+=I+" "
}return L.substring(0,L.length-1)
},digitToHex:function(C){var B=15;
var A="";
for(i=0;
i<4;
++i){A+=epg.security.hexToChar[C&B];
C>>>=4
}return epg.security.reverseStr(A)
},biToHex:function(B){var A="";
var D=epg.security.biHighIndex(B);
for(var C=epg.security.biHighIndex(B);
C>-1;
--C){A+=epg.security.digitToHex(B.digits[C])
}return A
},setMaxDigits:function(B){maxDigits=B;
epg.security.ZERO_ARRAY=new Array(maxDigits);
for(var A=0;
A<epg.security.ZERO_ARRAY.length;
A++){epg.security.ZERO_ARRAY[A]=0
}bigZero=new epg.security.BigInt();
bigOne=new epg.security.BigInt();
bigOne.digits[0]=1
},BarrettMu:function(A){this.modulus=epg.security.biCopy(A);
this.k=epg.security.biHighIndex(this.modulus)+1;
var B=new epg.security.BigInt();
B.digits[2*this.k]=1;
this.mu=epg.security.biDivide(B,this.modulus);
this.bkplus1=new epg.security.BigInt();
this.bkplus1.digits[this.k+1]=1;
this.modulo=epg.security.BarrettMu_modulo;
this.multiplyMod=epg.security.BarrettMu_multiplyMod;
this.powMod=epg.security.BarrettMu_powMod
},BarrettMu_modulo:function(H){var G=epg.security.biDivideByRadixPower(H,this.k-1);
var E=epg.security.biMultiply(G,this.mu);
var D=epg.security.biDivideByRadixPower(E,this.k+1);
var C=epg.security.biModuloByRadixPower(H,this.k+1);
var I=epg.security.biMultiply(D,this.modulus);
var B=epg.security.biModuloByRadixPower(I,this.k+1);
var A=epg.security.biSubtract(C,B);
if(A.isNeg){A=epg.security.biAdd(A,this.bkplus1)
}var F=epg.security.biCompare(A,this.modulus)>=0;
while(F){A=epg.security.biSubtract(A,this.modulus);
F=epg.security.biCompare(A,this.modulus)>=0
}return A
},biModuloByRadixPower:function(B,C){var A=new epg.security.BigInt();
epg.security.arrayCopy(B.digits,0,A.digits,0,C);
return A
},biDivideByRadixPower:function(B,C){var A=new epg.security.BigInt();
epg.security.arrayCopy(B.digits,C,A.digits,0,A.digits.length-C);
return A
},BarrettMu_powMod:function(B,E){var A=new epg.security.BigInt();
A.digits[0]=1;
var C=B;
var D=E;
while(true){if((D.digits[0]&1)!=0){A=this.multiplyMod(A,C)
}D=epg.security.biShiftRight(D,1);
if(D.digits[0]==0&&epg.security.biHighIndex(D)==0){break
}C=this.multiplyMod(C,C)
}return A
},biDivide:function(A,B){return epg.security.biDivideModulo(A,B)[0]
},biNumBits:function(C){var E=epg.security.biHighIndex(C);
var D=C.digits[E];
var B=(E+1)*bitsPerDigit;
var A;
for(A=B;
A>B-bitsPerDigit;
--A){if((D&32768)!=0){break
}D<<=1
}return A
},biMultiplyByRadixPower:function(B,C){var A=new epg.security.BigInt();
epg.security.arrayCopy(B.digits,0,A.digits,C,A.digits.length-C);
return A
},biMultiply:function(G,F){var J=new epg.security.BigInt();
var E;
var B=epg.security.biHighIndex(G);
var I=epg.security.biHighIndex(F);
var H,A,C;
for(var D=0;
D<=I;
++D){E=0;
C=D;
for(j=0;
j<=B;
++j,++C){A=J.digits[C]+G.digits[j]*F.digits[D]+E;
J.digits[C]=A&maxDigitVal;
E=A>>>biRadixBits
}J.digits[D+B+1]=E
}J.isNeg=G.isNeg!=F.isNeg;
return J
},biMultiplyDigit:function(A,F){var E,D,C;
result=new epg.security.BigInt();
E=epg.security.biHighIndex(A);
D=0;
for(var B=0;
B<=E;
++B){C=result.digits[B]+A.digits[B]*F+D;
result.digits[B]=C&maxDigitVal;
D=C>>>biRadixBits
}result.digits[1+E]=D;
return result
},biAdd:function(B,F){var A;
if(B.isNeg!=F.isNeg){F.isNeg=!F.isNeg;
A=epg.security.biSubtract(B,F);
F.isNeg=!F.isNeg
}else{A=new BigInt();
var E=0;
var D;
for(var C=0;
C<B.digits.length;
++C){D=B.digits[C]+F.digits[C]+E;
A.digits[C]=D%biRadix;
E=Number(D>=biRadix)
}A.isNeg=B.isNeg
}return A
},biSubtract:function(B,F){var A;
if(B.isNeg!=F.isNeg){F.isNeg=!F.isNeg;
A=epg.security.biAdd(B,F);
F.isNeg=!F.isNeg
}else{A=new epg.security.BigInt();
var E,D;
D=0;
for(var C=0;
C<B.digits.length;
++C){E=B.digits[C]-F.digits[C]+D;
A.digits[C]=E%biRadix;
if(A.digits[C]<0){A.digits[C]+=biRadix
}D=0-Number(E<0)
}if(D==-1){D=0;
for(var C=0;
C<B.digits.length;
++C){E=0-A.digits[C]+D;
A.digits[C]=E%biRadix;
if(A.digits[C]<0){A.digits[C]+=biRadix
}D=0-Number(E<0)
}A.isNeg=!B.isNeg
}else{A.isNeg=B.isNeg
}}return A
},biCompare:function(A,C){if(A.isNeg!=C.isNeg){return 1-2*Number(A.isNeg)
}for(var B=A.digits.length-1;
B>=0;
--B){if(A.digits[B]!=C.digits[B]){if(A.isNeg){return 1-2*Number(A.digits[B]>C.digits[B])
}else{return 1-2*Number(A.digits[B]<C.digits[B])
}}}return 0
},biShiftLeft:function(B,H){var D=Math.floor(H/bitsPerDigit);
var A=new epg.security.BigInt();
epg.security.arrayCopy(B.digits,0,A.digits,D,A.digits.length-D);
var G=H%bitsPerDigit;
var C=bitsPerDigit-G;
for(var E=A.digits.length-1,F=E-1;
E>0;
--E,--F){A.digits[E]=((A.digits[E]<<G)&maxDigitVal)|((A.digits[F]&epg.security.highBitMasks[G])>>>(C))
}A.digits[0]=((A.digits[E]<<G)&maxDigitVal);
A.isNeg=B.isNeg;
return A
},arrayCopy:function(E,H,C,G,F){var A=Math.min(H+F,E.length);
for(var D=H,B=G;
D<A;
++D,++B){C[B]=E[D]
}},biDivideModulo:function(F,E){var A=epg.security.biNumBits(F);
var D=epg.security.biNumBits(E);
var C=E.isNeg;
var K,J;
if(A<D){if(F.isNeg){K=epg.security.biCopy(bigOne);
K.isNeg=!E.isNeg;
F.isNeg=false;
E.isNeg=false;
J=epg.security.biSubtract(E,F);
F.isNeg=true;
E.isNeg=C
}else{K=new epg.security.BigInt();
J=epg.security.biCopy(F)
}return new Array(K,J)
}K=new epg.security.BigInt();
J=F;
var H=Math.ceil(D/bitsPerDigit)-1;
var G=0;
while(E.digits[H]<biHalfRadix){E=epg.security.biShiftLeft(E,1);
++G;
++D;
H=Math.ceil(D/bitsPerDigit)-1
}J=epg.security.biShiftLeft(J,G);
A+=G;
var N=Math.ceil(A/bitsPerDigit)-1;
var S=epg.security.biMultiplyByRadixPower(E,N-H);
while(epg.security.biCompare(J,S)!=-1){++K.digits[N-H];
J=epg.security.biSubtract(J,S)
}for(var Q=N;
Q>H;
--Q){var I=(Q>=J.digits.length)?0:J.digits[Q];
var R=(Q-1>=J.digits.length)?0:J.digits[Q-1];
var P=(Q-2>=J.digits.length)?0:J.digits[Q-2];
var O=(H>=E.digits.length)?0:E.digits[H];
var B=(H-1>=E.digits.length)?0:E.digits[H-1];
if(I==O){K.digits[Q-H-1]=maxDigitVal
}else{K.digits[Q-H-1]=Math.floor((I*biRadix+R)/O)
}var M=K.digits[Q-H-1]*((O*biRadix)+B);
var L=(I*biRadixSquared)+((R*biRadix)+P);
while(M>L){--K.digits[Q-H-1];
M=K.digits[Q-H-1]*((O*biRadix)|B);
L=(I*biRadix*biRadix)+((R*biRadix)+P)
}S=epg.security.biMultiplyByRadixPower(E,Q-H-1);
J=epg.security.biSubtract(J,epg.security.biMultiplyDigit(S,K.digits[Q-H-1]));
if(J.isNeg){J=epg.security.biAdd(J,S);
--K.digits[Q-H-1]
}}J=epg.security.biShiftRight(J,G);
K.isNeg=F.isNeg!=C;
if(F.isNeg){if(C){K=epg.security.biAdd(K,bigOne)
}else{K=epg.security.biSubtract(K,bigOne)
}E=epg.security.biShiftRight(E,G);
J=epg.security.biSubtract(E,J)
}if(J.digits[0]==0&&epg.security.biHighIndex(J)==0){J.isNeg=false
}return new Array(K,J)
},biShiftRight:function(B,H){var C=Math.floor(H/bitsPerDigit);
var A=new epg.security.BigInt();
epg.security.arrayCopy(B.digits,C,A.digits,0,B.digits.length-C);
var F=H%bitsPerDigit;
var G=bitsPerDigit-F;
for(var D=0,E=D+1;
D<A.digits.length-1;
++D,++E){A.digits[D]=(A.digits[D]>>>F)|((A.digits[E]&epg.security.lowBitMasks[F])<<G)
}A.digits[A.digits.length-1]>>>=F;
A.isNeg=B.isNeg;
return A
},BarrettMu_multiplyMod:function(A,C){var B=epg.security.biMultiply(A,C);
return this.modulo(B)
},biCopy:function(B){var A=new epg.security.BigInt(true);
A.digits=B.digits.slice(0);
A.isNeg=B.isNeg;
return A
},biHighIndex:function(B){var A=B.digits.length-1;
while(A>0&&B.digits[A]==0){--A
}return A
},biFromHex:function(E){var B=new epg.security.BigInt();
var A=E.length;
for(var D=A,C=0;
D>0;
D-=4,++C){B.digits[C]=epg.security.hexToDigit(E.substr(Math.max(D-4,0),Math.min(D,4)))
}return B
},BigInt:function(A){if(typeof A=="boolean"&&A==true){this.digits=null
}else{this.digits=epg.security.ZERO_ARRAY.slice(0)
}this.isNeg=false
},hexToDigit:function(D){var B=0;
var A=Math.min(D.length,4);
for(var C=0;
C<A;
++C){B<<=4;
B|=epg.security.charToHex(D.charCodeAt(C))
}return B
},charToHex:function(H){var C=48;
var B=C+9;
var D=97;
var G=D+25;
var F=65;
var E=65+25;
var A;
if(H>=C&&H<=B){A=H-C
}else{if(H>=F&&H<=E){A=10+H-F
}else{if(H>=D&&H<=G){A=10+H-D
}else{A=0
}}}return A
},biFromNumber:function(C){var A=new epg.security.BigInt();
A.isNeg=C<0;
C=Math.abs(C);
var B=0;
while(C>0){A.digits[B++]=C&maxDigitVal;
C=Math.floor(C/biRadix)
}return A
},reverseStr:function(C){var A="";
for(var B=C.length-1;
B>-1;
--B){A+=C.charAt(B)
}return A
},highBitMasks:[0,32768,49152,57344,61440,63488,64512,65024,65280,65408,65472,65504,65520,65528,65532,65534,65535],lowBitMasks:[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],hexToChar:["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],ZERO_ARRAY:[]};
var biRadixBase=2;
var biRadixBits=16;
var bitsPerDigit=biRadixBits;
var biRadix=1<<16;
var biHalfRadix=biRadix>>>1;
var biRadixSquared=biRadix*biRadix;
var maxDigitVal=biRadix-1;
var maxInteger=9999999999999998;
var maxDigits;
var bigZero,bigOne;
var dpl10=15;
var lr10=epg.security.biFromNumber(1000000000000000);
var hexatrigesimalToChar=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");