
var gadgets=gadgets||{};gadgets.config=function(){var components=[];return{register:function(component,opt_validators,opt_callback){var registered=components[component];if(!registered){registered=[];components[component]=registered;}
registered.push({validators:opt_validators||{},callback:opt_callback});},get:function(opt_component){if(opt_component){return configuration[opt_component]||{};}
return configuration;},init:function(config,opt_noValidation){configuration=config;for(var name in components){if(components.hasOwnProperty(name)){var componentList=components[name],conf=config[name];for(var i=0,j=componentList.length;i<j;++i){var component=componentList[i];if(conf&&!opt_noValidation){var validators=component.validators;for(var v in validators){if(validators.hasOwnProperty(v)){if(!validators[v](conf[v])){throw new Error('Invalid config value "'+conf[v]+'" for parameter "'+v+'" in component "'+
name+'"');}}}}
if(component.callback){component.callback(config);}}}}},EnumValidator:function(list){var listItems=[];if(arguments.length>1){for(var i=0,arg;(arg=arguments[i]);++i){listItems.push(arg);}}else{listItems=list;}
return function(data){for(var i=0,test;(test=listItems[i]);++i){if(data===listItems[i]){return true;}}};},RegExValidator:function(re){return function(data){return re.test(data);};},ExistsValidator:function(data){return typeof data!=="undefined";},NonEmptyStringValidator:function(data){return typeof data==="string"&&data.length>0;},BooleanValidator:function(data){return typeof data==="boolean";},LikeValidator:function(test){return function(data){for(var member in test){if(test.hasOwnProperty(member)){var t=test[member];if(!t(data[member])){return false;}}}
return true;};}};}();;var gadgets=gadgets||{};gadgets.log=function(message){gadgets.log.logAtLevel(gadgets.log.INFO,message);};gadgets.warn=function(message){gadgets.log.logAtLevel(gadgets.log.WARNING,message);};gadgets.error=function(message){gadgets.log.logAtLevel(gadgets.log.ERROR,message);};gadgets.setLogLevel=function(logLevel){gadgets.log.logLevelThreshold_=logLevel;};gadgets.log.logAtLevel=function(level,message){if(level<gadgets.log.logLevelThreshold_||!gadgets.log._console){return;}
var logger;var gadgetconsole=gadgets.log._console;if(level==gadgets.log.WARNING&&gadgetconsole.warn){gadgetconsole.warn(message)}else if(level==gadgets.log.ERROR&&gadgetconsole.error){gadgetconsole.error(message);}else if(gadgetconsole.log){gadgetconsole.log(message);}};gadgets.log.INFO=1;gadgets.log.WARNING=2;gadgets.log.NONE=4;gadgets.log.logLevelThreshold_=gadgets.log.INFO;gadgets.log._console=window.console?window.console:window.opera?window.opera.postError:undefined;;;var gadgets=gadgets||{};if(window.JSON&&window.JSON.parse&&window.JSON.stringify){gadgets.json={parse:function(str){try{return window.JSON.parse(str);}catch(e){return false;}},stringify:function(obj){try{return window.JSON.stringify(obj);}catch(e){return null;}}};}else{gadgets.json=function(){function f(n){return n<10?'0'+n:n;}
Date.prototype.toJSON=function(){return[this.getUTCFullYear(),'-',f(this.getUTCMonth()+1),'-',f(this.getUTCDate()),'T',f(this.getUTCHours()),':',f(this.getUTCMinutes()),':',f(this.getUTCSeconds()),'Z'].join("");};var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};function stringify(value){var a,i,k,l,r=/["\\\x00-\x1f\x7f-\x9f]/g,v;switch(typeof value){case'string':return r.test(value)?'"'+value.replace(r,function(a){var c=m[a];if(c){return c;}
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+
(c%16).toString(16);})+'"':'"'+value+'"';case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}
a=[];if(typeof value.length==='number'&&!value.propertyIsEnumerable('length')){l=value.length;for(i=0;i<l;i+=1){a.push(stringify(value[i])||'null');}
return'['+a.join(',')+']';}
for(k in value){if(k.match('___$'))
continue;if(value.hasOwnProperty(k)){if(typeof k==='string'){v=stringify(value[k]);if(v){a.push(stringify(k)+':'+v);}}}}
return'{'+a.join(',')+'}';}}
return{stringify:stringify,parse:function(text){if(/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/b-u]/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){return eval('('+text+')');}
return false;}};}();};;var gadgets_location_href_override;var gadgets=gadgets||{};gadgets.util=function(){function parseUrlParams(url){var query;var l=url;var queryIdx=l.indexOf("?");var hashIdx=l.indexOf("#");if(hashIdx===-1){query=l.substr(queryIdx+1);}else{query=[l.substr(queryIdx+1,hashIdx-queryIdx-1),"&",l.substr(hashIdx+1)].join("");}
return query.split("&");}
var parameters=null;var features={};var services={};var onLoadHandlers=[];var escapeCodePoints={0:false,10:true,13:true,34:true,39:true,60:true,62:true,92:true,8232:true,8233:true};function unescapeEntity(match,value){return String.fromCharCode(value);}
function init(config){features=config["core.util"]||{};}
if(gadgets.config){gadgets.config.register("core.util",null,init);}
return{getUrlParameters:function(opt_url){if(parameters!==null&&typeof opt_url==="undefined"){return parameters;}
var parsed={};parameters={};var pairs=parseUrlParams(opt_url||gadgets_location_href_override||document.location.href);var unesc=window.decodeURIComponent?decodeURIComponent:unescape;for(var i=0,j=pairs.length;i<j;++i){var pos=pairs[i].indexOf('=');if(pos===-1){continue;}
var argName=pairs[i].substring(0,pos);var value=pairs[i].substring(pos+1);value=value.replace(/\+/g," ");parsed[argName]=unesc(value);}
if(typeof opt_url==="undefined"){parameters=parsed;}
return parsed;},makeClosure:function(scope,callback,var_args){var baseArgs=[];for(var i=2,j=arguments.length;i<j;++i){baseArgs.push(arguments[i]);}
return function(){var tmpArgs=baseArgs.slice();for(var i=0,j=arguments.length;i<j;++i){tmpArgs.push(arguments[i]);}
return callback.apply(scope,tmpArgs);};},makeEnum:function(values){var obj={};for(var i=0,v;(v=values[i]);++i){obj[v]=v;}
return obj;},getFeatureParameters:function(feature){return typeof features[feature]==="undefined"?null:features[feature];},hasFeature:function(feature){return typeof features[feature]!=="undefined";},getServices:function(){return services;},registerOnLoadHandler:function(callback){onLoadHandlers.push(callback);},runOnLoadHandlers:function(){for(var i=0,j=onLoadHandlers.length;i<j;++i){onLoadHandlers[i]();}},escape:function(input,opt_escapeObjects){if(!input){return input;}else if(typeof input==="string"){return gadgets.util.escapeString(input);}else if(typeof input==="array"){for(var i=0,j=input.length;i<j;++i){input[i]=gadgets.util.escape(input[i]);}}else if(typeof input==="object"&&opt_escapeObjects){var newObject={};for(var field in input){if(input.hasOwnProperty(field)){newObject[gadgets.util.escapeString(field)]=gadgets.util.escape(input[field],true);}}
return newObject;}
return input;},escapeString:function(str){var out=[],ch,shouldEscape;for(var i=0,j=str.length;i<j;++i){ch=str.charCodeAt(i);shouldEscape=escapeCodePoints[ch];if(shouldEscape===true){out.push("&#",ch,";");}else if(shouldEscape!==false){out.push(str.charAt(i));}}
return out.join("");},unescapeString:function(str){return str.replace(/&#([0-9]+);/g,unescapeEntity);}};}();gadgets.util.getUrlParameters();;;var gadgets=gadgets||{};gadgets.rpctx=gadgets.rpctx||{};gadgets.rpctx.wpm=function(){var ready;return{getCode:function(){return'wpm';},isParentVerifiable:function(){return true;},init:function(processFn,readyFn){ready=readyFn;var onmessage=function(packet){processFn(gadgets.json.parse(packet.data));};if(typeof window.addEventListener!='undefined'){window.addEventListener('message',onmessage,false);}else if(typeof window.attachEvent!='undefined'){window.attachEvent('onmessage',onmessage);}
ready('..',true);return true;},setup:function(receiverId,token){if(receiverId==='..'){gadgets.rpc.call(receiverId,gadgets.rpc.ACK);}
return true;},call:function(targetId,from,rpc){var targetWin=targetId==='..'?window.parent:window.frames[targetId];var origin=gadgets.rpc.getOrigin(gadgets.rpc.getRelayUrl(targetId));if(origin){targetWin.postMessage(gadgets.json.stringify(rpc),origin);}else{gadgets.error("No relay set (used as window.postMessage targetOrigin)"+", cannot send cross-domain message");}
return true;}};}();;var gadgets=gadgets||{};gadgets.rpctx=gadgets.rpctx||{};gadgets.rpctx.frameElement=function(){var FE_G2C_CHANNEL='__g2c_rpc';var FE_C2G_CHANNEL='__c2g_rpc';var process;var ready;function callFrameElement(targetId,from,rpc){try{if(from!=='..'){var fe=window.frameElement;if(typeof fe[FE_G2C_CHANNEL]==='function'){if(typeof fe[FE_G2C_CHANNEL][FE_C2G_CHANNEL]!=='function'){fe[FE_G2C_CHANNEL][FE_C2G_CHANNEL]=function(args){process(gadgets.json.parse(args));};}
fe[FE_G2C_CHANNEL](gadgets.json.stringify(rpc));return;}}else{var frame=document.getElementById(targetId);if(typeof frame[FE_G2C_CHANNEL]==='function'&&typeof frame[FE_G2C_CHANNEL][FE_C2G_CHANNEL]==='function'){frame[FE_G2C_CHANNEL][FE_C2G_CHANNEL](gadgets.json.stringify(rpc));return;}}}catch(e){}
return true;}
return{getCode:function(){return'fe';},isParentVerifiable:function(){return false;},init:function(processFn,readyFn){process=processFn;ready=readyFn;return true;},setup:function(receiverId,token){if(receiverId!=='..'){try{var frame=document.getElementById(receiverId);frame[FE_G2C_CHANNEL]=function(args){process(gadgets.json.parse(args));};}catch(e){return false;}}
if(receiverId==='..'){ready('..',true);var ackFn=function(){window.setTimeout(function(){gadgets.rpc.call(receiverId,gadgets.rpc.ACK)},500);}
gadgets.util.registerOnLoadHandler(ackFn);}
return true;},call:function(targetId,from,rpc){callFrameElement(targetId,from,rpc);}};}();;var gadgets=gadgets||{};gadgets.rpctx=gadgets.rpctx||{};gadgets.rpctx.nix=function(){var NIX_WRAPPER='GRPC____NIXVBS_wrapper';var NIX_GET_WRAPPER='GRPC____NIXVBS_get_wrapper';var NIX_HANDLE_MESSAGE='GRPC____NIXVBS_handle_message';var NIX_CREATE_CHANNEL='GRPC____NIXVBS_create_channel';var MAX_NIX_SEARCHES=10;var NIX_SEARCH_PERIOD=500;var nix_channels={};var ready;var numHandlerSearches=0;function conductHandlerSearch(){var handler=nix_channels['..'];if(handler){return;}
if(++numHandlerSearches>MAX_NIX_SEARCHES){gadgets.warn('Nix transport setup failed, falling back...');ready('..',false);return;}
if(!handler&&window.opener&&"GetAuthToken"in window.opener){handler=window.opener;if(handler.GetAuthToken()==gadgets.rpc.getAuthToken('..')){var token=gadgets.rpc.getAuthToken('..');handler.CreateChannel(window[NIX_GET_WRAPPER]('..',token),token);nix_channels['..']=handler;window.opener=null;ready('..',true);return;}}
window.setTimeout(function(){conductHandlerSearch();},NIX_SEARCH_PERIOD);}
return{getCode:function(){return'nix';},isParentVerifiable:function(){return false;},init:function(processFn,readyFn){ready=readyFn;if(typeof window[NIX_GET_WRAPPER]!=='unknown'){window[NIX_HANDLE_MESSAGE]=function(data){window.setTimeout(function(){processFn(gadgets.json.parse(data))},0);};window[NIX_CREATE_CHANNEL]=function(name,channel,token){if(gadgets.rpc.getAuthToken(name)===token){nix_channels[name]=channel;ready(name,true);}};var vbscript='Class '+NIX_WRAPPER+'\n '
+'Private m_Intended\n'
+'Private m_Auth\n'
+'Public Sub SetIntendedName(name)\n '
+'If isEmpty(m_Intended) Then\n'
+'m_Intended = name\n'
+'End If\n'
+'End Sub\n'
+'Public Sub SetAuth(auth)\n '
+'If isEmpty(m_Auth) Then\n'
+'m_Auth = auth\n'
+'End If\n'
+'End Sub\n'
+'Public Sub SendMessage(data)\n '
+NIX_HANDLE_MESSAGE+'(data)\n'
+'End Sub\n'
+'Public Function GetAuthToken()\n '
+'GetAuthToken = m_Auth\n'
+'End Function\n'
+'Public Sub CreateChannel(channel, auth)\n '
+'Call '+NIX_CREATE_CHANNEL+'(m_Intended, channel, auth)\n'
+'End Sub\n'
+'End Class\n'
+'Function '+NIX_GET_WRAPPER+'(name, auth)\n'
+'Dim wrap\n'
+'Set wrap = New '+NIX_WRAPPER+'\n'
+'wrap.SetIntendedName name\n'
+'wrap.SetAuth auth\n'
+'Set '+NIX_GET_WRAPPER+' = wrap\n'
+'End Function';try{window.execScript(vbscript,'vbscript');}catch(e){return false;}}
return true;},setup:function(receiverId,token){if(receiverId==='..'){conductHandlerSearch();return true;}
try{var frame=document.getElementById(receiverId);var wrapper=window[NIX_GET_WRAPPER](receiverId,token);frame.contentWindow.opener=wrapper;}catch(e){return false;}
return true;},call:function(targetId,from,rpc){try{if(nix_channels[targetId]){nix_channels[targetId].SendMessage(gadgets.json.stringify(rpc));}}catch(e){return false;}
return true;}};}();;var gadgets=gadgets||{};gadgets.rpctx=gadgets.rpctx||{};gadgets.rpctx.rmr=function(){var RMR_SEARCH_TIMEOUT=500;var RMR_MAX_POLLS=10;var rmr_channels={};var process;var ready;function appendRmrFrame(channelFrame,relayUri,data,opt_frameId){var appendFn=function(){document.body.appendChild(channelFrame);channelFrame.src='about:blank';if(opt_frameId){channelFrame.onload=function(){processRmrData(opt_frameId);}}
channelFrame.src=relayUri+'#'+data;}
if(document.body){appendFn();}else{gadgets.util.registerOnLoadHandler(function(){appendFn();});}}
function setupRmr(frameId){if(typeof rmr_channels[frameId]==="object"){return;}
var channelFrame=document.createElement('iframe');var frameStyle=channelFrame.style;frameStyle.position='absolute';frameStyle.top='0px';frameStyle.border='0';frameStyle.opacity='0';frameStyle.width='10px'
frameStyle.height='1px';channelFrame.id='rmrtransport-'+frameId;channelFrame.name=channelFrame.id;var relayUri=gadgets.rpc.getOrigin(gadgets.rpc.getRelayUrl(frameId))+'/robots.txt';rmr_channels[frameId]={frame:channelFrame,receiveWindow:null,relayUri:relayUri,searchCounter:0,width:10,waiting:true,queue:[],sendId:0,recvId:0};if(frameId!=='..'){appendRmrFrame(channelFrame,relayUri,getRmrData(frameId));}
conductRmrSearch(frameId);}
function conductRmrSearch(frameId){var channelWindow=null;rmr_channels[frameId].searchCounter++;try{if(frameId==='..'){channelWindow=window.parent.frames['rmrtransport-'+gadgets.rpc.RPC_ID];}else{channelWindow=window.frames[frameId].frames['rmrtransport-..'];}}catch(e){}
var status=false;if(channelWindow){status=registerRmrChannel(frameId,channelWindow);}
if(!status){if(rmr_channels[frameId].searchCounter>RMR_MAX_POLLS){return;}
window.setTimeout(function(){conductRmrSearch(frameId);},RMR_SEARCH_TIMEOUT);}}
function callRmr(targetId,serviceName,from,rpc){var handler=null;if(from!=='..'){handler=rmr_channels['..'];}else{handler=rmr_channels[targetId];}
if(handler){if(serviceName!==gadgets.rpc.ACK){handler.queue.push(rpc);}
if(handler.waiting||(handler.queue.length===0&&!(serviceName===gadgets.rpc.ACK&&rpc&&rpc.ackAlone===true))){return true;}
if(handler.queue.length>0){handler.waiting=true;}
var url=handler.relayUri+"#"+getRmrData(targetId);try{handler.frame.contentWindow.location=url;var newWidth=handler.width==10?20:10;handler.frame.style.width=newWidth+'px';handler.width=newWidth;}catch(e){return false;}}
return true;}
function getRmrData(toFrameId){var channel=rmr_channels[toFrameId];var rmrData={id:channel.sendId};if(channel){rmrData.d=Array.prototype.slice.call(channel.queue,0);rmrData.d.push({s:gadgets.rpc.ACK,id:channel.recvId});}
return gadgets.json.stringify(rmrData);}
function processRmrData(fromFrameId){var channel=rmr_channels[fromFrameId];var data=channel.receiveWindow.location.hash.substring(1);var rpcObj=gadgets.json.parse(decodeURIComponent(data))||{};var rpcArray=rpcObj.d||[];var nonAckReceived=false;var noLongerWaiting=false;var numBypassed=0;var numToBypass=(channel.recvId-rpcObj.id);for(var i=0;i<rpcArray.length;++i){var rpc=rpcArray[i];if(rpc.s===gadgets.rpc.ACK){ready(fromFrameId,true);if(channel.waiting){noLongerWaiting=true;}
channel.waiting=false;var newlyAcked=Math.max(0,rpc.id-channel.sendId);channel.queue.splice(0,newlyAcked);channel.sendId=Math.max(channel.sendId,rpc.id||0);continue;}
nonAckReceived=true;if(++numBypassed<=numToBypass){continue;}
++channel.recvId;process(rpc);}
if(nonAckReceived||(noLongerWaiting&&channel.queue.length>0)){var from=(fromFrameId==='..')?gadgets.rpc.RPC_ID:'..';callRmr(fromFrameId,gadgets.rpc.ACK,from,{ackAlone:nonAckReceived});}}
function registerRmrChannel(frameId,channelWindow){var channel=rmr_channels[frameId];try{var canAccess=false;canAccess='document'in channelWindow;if(!canAccess){return false;}
canAccess=typeof channelWindow['document']=='object';if(!canAccess){return false;}
var loc=channelWindow.location.href;if(loc==='about:blank'){return false;}}catch(ex){return false;}
channel.receiveWindow=channelWindow;function onresize(){processRmrData(frameId);};if(typeof channelWindow.attachEvent==="undefined"){channelWindow.onresize=onresize;}else{channelWindow.attachEvent("onresize",onresize);}
if(frameId==='..'){appendRmrFrame(channel.frame,channel.relayUri,getRmrData(frameId),frameId);}else{processRmrData(frameId);}
return true;}
return{getCode:function(){return'rmr';},isParentVerifiable:function(){return true;},init:function(processFn,readyFn){process=processFn;ready=readyFn;return true;},setup:function(receiverId,token){try{setupRmr(receiverId);}catch(e){gadgets.warn('Caught exception setting up RMR: '+e);return false;}
return true;},call:function(targetId,from,rpc){return callRmr(targetId,rpc.s,from,rpc);}};}();;var gadgets=gadgets||{};gadgets.rpctx=gadgets.rpctx||{};gadgets.rpctx.ifpc=function(){var iframePool=[];var callId=0;var ready;function encodeLegacyData(args){var argsEscaped=[];for(var i=0,j=args.length;i<j;++i){argsEscaped.push(encodeURIComponent(gadgets.json.stringify(args[i])));}
return argsEscaped.join('&');}
var ifrctr=0;function emitInvisibleIframe(src){var iframe;for(var i=iframePool.length-1;i>=0;--i){var ifr=iframePool[i];try{if(ifr&&(ifr.recyclable||ifr.readyState==='complete')){ifr.parentNode.removeChild(ifr);if(window.ActiveXObject){iframePool[i]=ifr=null;iframePool.splice(i,1);}else{ifr.recyclable=false;iframe=ifr;break;}}}catch(e){}}
if(!iframe){iframe=document.createElement('iframe');iframe.style.border=iframe.style.width=iframe.style.height='0px';iframe.style.visibility='hidden';iframe.style.position='absolute';iframe.onload=function(){this.recyclable=true;};iframePool.push(iframe);}
iframe.src="about:blank"
window.setTimeout(function(){var id=(new Date().getTime())+(ifrctr++);iframe.id=id;document.body.appendChild(iframe);var fifr=document.getElementById(id);fifr.src=src;},0);}
return{getCode:function(){return'ifpc';},isParentVerifiable:function(){return true;},init:function(processFn,readyFn){ready=readyFn;ready('..',true);return true;},setup:function(receiverId,token){ready(receiverId,true);return true;},call:function(targetId,from,rpc){var relay=gadgets.rpc.getRelayUrl(targetId);++callId;if(!relay){gadgets.warn('No relay file assigned for IFPC');return;}
var src=null;if(rpc.l){var callArgs=rpc.a;src=[relay,'#',encodeLegacyData([from,callId,1,0,encodeLegacyData([from,rpc.s,'','',from].concat(callArgs))])].join('');}else{src=[relay,'#',targetId,'&',from,'@',callId,'&1&0&',encodeURIComponent(gadgets.json.stringify(rpc))].join('');}
emitInvisibleIframe(src);return true;}};}();;var gadgets=gadgets||{};gadgets.rpc=function(){var CALLBACK_NAME='__cb';var DEFAULT_NAME='';var ACK='__ack';var SETUP_FRAME_TIMEOUT=500;var SETUP_FRAME_MAX_TRIES=10;var services={};var relayUrl={};var useLegacyProtocol={};var authToken={};var callId=0;var callbacks={};var setup={};var sameDomain={};var params={};var receiverTx={};var earlyRpcQueue={};var isChild=(window.top!==window.self);var rpcId=window.name;var fallbackTransport=(function(){function logFn(name){return function(){gadgets.log("gadgets.rpc."+name+"("+
gadgets.json.stringify(Array.prototype.slice.call(arguments))+"): call ignored. [caller: "+document.location+", isChild: "+isChild+"]");}}
return{getCode:function(){return"noop";},isParentVerifiable:function(){return true;},init:logFn("init"),setup:logFn("setup"),call:logFn("call")}})();if(gadgets.util){params=gadgets.util.getUrlParameters();}
var useEarlyQueueing=(params['rpc_earlyq']==="1");function getTransport(){return typeof window.postMessage==='function'?gadgets.rpctx.wpm:typeof window.postMessage==='object'?gadgets.rpctx.wpm:window.ActiveXObject?gadgets.rpctx.nix:navigator.userAgent.indexOf('WebKit')>0?gadgets.rpctx.ifpc:navigator.product==='Gecko'?gadgets.rpctx.frameElement:gadgets.rpctx.ifpc;}
function transportReady(receiverId,readySuccess){var tx=transport;if(!readySuccess){tx=fallbackTransport;}
receiverTx[receiverId]=tx;var earlyQueue=earlyRpcQueue[receiverId]||[];for(var i=0;i<earlyQueue.length;++i){var rpc=earlyQueue[i];rpc.t=getAuthToken(receiverId);tx.call(receiverId,rpc.f,rpc);}
earlyRpcQueue[receiverId]=[];}
function process(rpc){if(rpc&&typeof rpc.s==='string'&&typeof rpc.f==='string'&&rpc.a instanceof Array){if(authToken[rpc.f]){if(authToken[rpc.f]!==String(rpc.t)){throw new Error("Invalid auth token. "+
authToken[rpc.f]+" vs "+rpc.t);}}else if(rpc.f!='..'){throw new Error("No auth token registered.");}
if(rpc.s===ACK){window.setTimeout(function(){transportReady(rpc.f,true);},0);return;}
if(rpc.c){rpc.callback=function(result){gadgets.rpc.call(rpc.f,CALLBACK_NAME,null,rpc.c,result);};}
var result=(services[rpc.s]||services[DEFAULT_NAME]).apply(rpc,rpc.a);if(rpc.c&&typeof result!=='undefined'){gadgets.rpc.call(rpc.f,CALLBACK_NAME,null,rpc.c,result);}}}
function getOrigin(url){if(!url){return"";}
url=url.toLowerCase();if(url.indexOf("//")==0){url=window.location.protocol+url;}
if(url.indexOf("://")==-1){url=window.location.protocol+"//"+url;}
var host=url.substring(url.indexOf("://")+3);var slashPos=host.indexOf("/");if(slashPos!=-1){host=host.substring(0,slashPos);}
var protocol=url.substring(0,url.indexOf("://"));var portStr="";var portPos=host.indexOf(":");if(portPos!=-1){var port=host.substring(portPos+1);host=host.substring(0,portPos);if((protocol==="http"&&port!=="80")||(protocol==="https"&&port!=="443")){portStr=":"+port;}}
return protocol+"://"+host+portStr;}
var transport=getTransport();services[DEFAULT_NAME]=function(){gadgets.warn('Unknown RPC service: '+this.s);};services[CALLBACK_NAME]=function(callbackId,result){var callback=callbacks[callbackId];if(callback){delete callbacks[callbackId];callback(result);}};function setupFrame(frameId,token){if(setup[frameId]===true){return;}
if(typeof setup[frameId]==='undefined'){setup[frameId]=0;}
var tgtFrame=document.getElementById(frameId);if(frameId==='..'||tgtFrame!=null){if(transport.setup(frameId,token)===true){setup[frameId]=true;return;}}
if(setup[frameId]!==true&&setup[frameId]++<SETUP_FRAME_MAX_TRIES){window.setTimeout(function(){setupFrame(frameId,token)},SETUP_FRAME_TIMEOUT);}else{receiverTx[frameId]=fallbackTransport;setup[frameId]=true;}}
function callSameDomain(target,rpc){if(typeof sameDomain[target]==='undefined'){sameDomain[target]=false;var targetRelay=gadgets.rpc.getRelayUrl(target);if(getOrigin(targetRelay)!==getOrigin(window.location.href)){return false;}
var targetEl=null;if(target==='..'){targetEl=window.parent;}else{targetEl=window.frames[target];}
try{sameDomain[target]=targetEl.gadgets.rpc.receiveSameDomain;}catch(e){gadgets.error("Same domain call failed: parent= incorrectly set.");}}
if(typeof sameDomain[target]==='function'){sameDomain[target](rpc);return true;}
return false;}
function setRelayUrl(targetId,url,opt_useLegacy){relayUrl[targetId]=url;useLegacyProtocol[targetId]=!!opt_useLegacy;}
function getAuthToken(targetId){return authToken[targetId];}
function setAuthToken(targetId,token){token=token||"";authToken[targetId]=String(token);setupFrame(targetId,token);}
function setupContainerGadgetContext(rpctoken){function init(config){var configRpc=config?config.rpc:{};var parentRelayUrl=configRpc.parentRelayUrl;if(parentRelayUrl.substring(0,7)!=='http://'&&parentRelayUrl.substring(0,8)!=='https://'&&parentRelayUrl.substring(0,2)!=='//'){if(typeof params.parent==="string"&&params.parent!==""){if(parentRelayUrl.substring(0,1)!=='/'){var lastSlash=params.parent.lastIndexOf('/');parentRelayUrl=params.parent.substring(0,lastSlash+1)+parentRelayUrl;}else{parentRelayUrl=getOrigin(params.parent)+parentRelayUrl;}}}
var useLegacy=!!configRpc.useLegacyProtocol;setRelayUrl('..',parentRelayUrl,useLegacy);if(useLegacy){transport=gadgets.rpctx.ifpc;transport.init(process,transportReady);}
setAuthToken('..',rpctoken);}
var requiredConfig={parentRelayUrl:gadgets.config.NonEmptyStringValidator};gadgets.config.register("rpc",requiredConfig,init);}
function setupContainerGenericIframe(rpctoken,opt_parent){var parent=opt_parent||params.parent;if(parent){setRelayUrl('..',parent);setAuthToken('..',rpctoken);}}
function setupChildIframe(gadgetId,opt_frameurl,opt_authtoken){if(!gadgets.util){return;}
var childIframe=document.getElementById(gadgetId);if(!childIframe){throw new Error("Cannot set up gadgets.rpc receiver with ID: "+gadgetId+", element not found.");}
var relayUrl=opt_frameurl||childIframe.src;setRelayUrl(gadgetId,relayUrl);var childParams=gadgets.util.getUrlParameters(childIframe.src);var rpctoken=opt_authtoken||childParams.rpctoken;setAuthToken(gadgetId,rpctoken);}
function setupReceiver(targetId,opt_receiverurl,opt_authtoken){if(targetId==='..'){var rpctoken=opt_authtoken||params.rpctoken||params.ifpctok||"";if(gadgets.config){setupContainerGadgetContext(rpctoken);}else{setupContainerGenericIframe(rpctoken,opt_receiverurl);}}else{setupChildIframe(targetId,opt_receiverurl,opt_authtoken);}}
if(isChild){setupReceiver('..');}
return{register:function(serviceName,handler){if(serviceName===CALLBACK_NAME||serviceName===ACK){throw new Error("Cannot overwrite callback/ack service");}
if(serviceName===DEFAULT_NAME){throw new Error("Cannot overwrite default service:"
+" use registerDefault");}
services[serviceName]=handler;},unregister:function(serviceName){if(serviceName===CALLBACK_NAME||serviceName===ACK){throw new Error("Cannot delete callback/ack service");}
if(serviceName===DEFAULT_NAME){throw new Error("Cannot delete default service:"
+" use unregisterDefault");}
delete services[serviceName];},registerDefault:function(handler){services[DEFAULT_NAME]=handler;},unregisterDefault:function(){delete services[DEFAULT_NAME];},forceParentVerifiable:function(){if(!transport.isParentVerifiable()){transport=gadgets.rpctx.ifpc;}},call:function(targetId,serviceName,callback,var_args){targetId=targetId||'..';var from='..';if(targetId==='..'){from=rpcId;}
++callId;if(callback){callbacks[callId]=callback;}
var rpc={s:serviceName,f:from,c:callback?callId:0,a:Array.prototype.slice.call(arguments,3),t:authToken[targetId],l:useLegacyProtocol[targetId]};if(callSameDomain(targetId,rpc)){return;}
var channel=receiverTx[targetId]?receiverTx[targetId]:transport;if(!channel){if(!earlyRpcQueue[targetId]){earlyRpcQueue[targetId]=[rpc];}else{earlyRpcQueue[targetId].push(rpc);}
return;}
if(useLegacyProtocol[targetId]){channel=gadgets.rpctx.ifpc;}
if(channel.call(targetId,from,rpc)===false){receiverTx[targetId]=fallbackTransport;transport.call(targetId,from,rpc);}},getRelayUrl:function(targetId){var url=relayUrl[targetId];if(url&&url.indexOf('//')==0){url=document.location.protocol+url;}
return url;},setRelayUrl:setRelayUrl,setAuthToken:setAuthToken,setupReceiver:setupReceiver,getAuthToken:getAuthToken,getRelayChannel:function(){return transport.getCode();},receive:function(fragment){if(fragment.length>4){process(gadgets.json.parse(decodeURIComponent(fragment[fragment.length-1])));}},receiveSameDomain:function(rpc){rpc.a=Array.prototype.slice.call(rpc.a);window.setTimeout(function(){process(rpc);},0);},getOrigin:getOrigin,init:function(){if(transport.init(process,transportReady)===false){transport=fallbackTransport;}},ACK:ACK,RPC_ID:rpcId};}();gadgets.rpc.init();;
var gadgets=gadgets||{};gadgets.ebay=gadgets.ebay||{};gadgets.ebay.rover=gadgets.ebay.rover||{}
gadgets.ebay.rover.recordImpressionHandler=function(rvhp,rvtd,rvtds,rvcid,rvid,args)
{var img=document.createElement("img"),nvp="",url;if(typeof args=="string"||args instanceof String)
{nvp=args;}
else
{for(var n in args)
{if(nvp.length>0)
{nvp=nvp+"&";}
nvp=nvp+encodeURIComponent(n)+"="+encodeURIComponent(args[n]);}
nvp=encodeURIComponent(nvp);}
url="http://"+rvhp+"/roverimp/"+rvtd+"/"+rvtds+"/"+rvcid+"?"+"imp="+encodeURIComponent(rvid)+"&trknvp="+nvp;var img=new Image()
img.src=url;window.myImg=img;},gadgets.ebay.rover.recordClickThroughHandler=function(url)
{window.location=url;}
gadgets.rpc.register('record-impression',gadgets.ebay.rover.recordImpressionHandler);gadgets.rpc.register('record-clickthrough',gadgets.ebay.rover.recordClickThroughHandler);;
var opensearch={};opensearch.container=function(){gadgets.rpc.register('resize_iframe',setHeight);function setHeight(height){var element=document.getElementById(this.f);if(element){element.style.height=height+'px';}};return{};}();

// en_US/e675/Finding_GadgetContainer_e67511430693_6_en_US
// b=11430693
