kapp.namespace("kapp.log");kapp.log.imp=kapp.log;kapp.log.log_dir="/images";kapp.log.coordinate_anchor_id=null;kapp.log.session_name="";kapp.log.query="default";kapp.log.vertical="default";kapp.log.page_type="default";kapp.log.ab_tests="";kapp.log.source="unknown";kapp.log.subsource="unknown";var version_str="$Revision: #29 $";kapp.log.version=/\#(\d+)/.exec(version_str)[1];kapp.log.pv_data={};kapp.log.ads_data={};kapp.log.initialize=function(){this.temp_modules={};this.pvid=this.random();this.session=this.read_session();this.user_props=this.get_user_props();this.page_href=this.get_normalized_href(document.location.href);this.referrer_href=this.get_normalized_href(document.referrer);if(this.referrer_href===null||this.referrer_href.blank()){this.referrer_href=this.get_normalized_href(this.http_referrer)}this.request_start=document.k_start_time;this.load_start=this.time();this.logfired=false;this.setup_listeners();this.last_link=null;this.last_link_time=null;this.last_module=null;this.last_module_time=null;this.active_time=0;this.last_active=this.time();new PeriodicalExecuter(this.update_visible.bind(this),2);this.scroll_amount=0;this.last_scroll_pos=document.viewport.getScrollOffsets()[1];this.links=[0,0];this.debug_mode=this.get_debug_mode();if(this.debug_mode.window){kapp.log.debug.open_debug_window()}this.log_url_params();this.pv_event("pageload")};kapp.log.put=function(A,B){this.putt(A,B,"s")};kapp.log.putt=function(B,D,C){var E=D,A="e"+(C&&C!="s"?C:"")+"_"+B;if(C=="i"){E=parseInt(D,10)}else{if(C=="f"){E=parseFloat(D)}}if(E){this.pv_data[A]=E}};kapp.log.custom=function(B,D){var F=this.random();var E={inid:F,t:B,pvid:this.pvid,s:this.session,v:this.version};for(var C in D){E["c_"+C]=D[C]}var A=this.log_dir+"/info.txt?"+this.kvpairs(E);new Ajax.Request(this.urltrim(A),{method:"get"});E.length=A.length;if(this.debug_mode.window){kapp.log.debug.debug_append("Custom ("+B+")",E)}if(this.debug_mode.alert){alert("Custom: "+E.toJSON())}};kapp.log.ajax_imp=function(B){var A=$(B);if(A&&A.nodeName=="div"&&A.hasClassName("module")){this.add_module_elem(A)}};kapp.log.setup_listeners=function(){var A=document.body;Event.observe(A,"mouseover",this.onmo.bindAsEventListener(this));Event.observe(A,"pageshow",this.onps.bindAsEventListener(this));Event.observe(window,"scroll",this.onact.bindAsEventListener(this));document.observe("dom:loaded",this.ondl.bindAsEventListener(this));Event.observe(window,"unload",this.onunl.bindAsEventListener(this));if(this.user_props.browser.indexOf("IE")!=0){A.observe("mousedown",this.onmd.bindAsEventListener(this))}else{A.observe("click",this.oncl.bindAsEventListener(this))}};kapp.log.onmd=function(A){this.click(A,true);this.onact(A)};kapp.log.oncl=function(A){this.click(A,false)};kapp.log.onmo=function(B){var A=Event.findElement(B,"DIV");if(A&&A!=document&&!A.hasClassName("module")){var A=A.up(".module")}if(A){this.set_attn_module(A.readAttribute("id"))}else{this.set_attn_module(null)}this.onact(B)};kapp.log.ondl=function(C){var A=this.modules_map?$$("#header div.module"):$$("div.module");if(!this.modules_map){this.modules_map=this.temp_modules}else{for(var B in this.temp_modules){this.modules_map[B]=this.temp_modules[B]}}this.temp_modules=null;A.each(function(D){kapp.log.add_module_elem(D)});kapp.log.midlog_event();kapp.log.register_links()};kapp.log.onact=function(B){var A=this.time();this.active_time+=Math.min(A-this.last_active,10000);this.last_active=A;if(B.type=="scroll"){this.scroll_amount+=Math.abs(document.viewport.getScrollOffsets()[1]-this.last_scroll_pos)}this.putt("sc",this.scroll_amount,"i");this.last_scroll_pos=document.viewport.getScrollOffsets()[1]};kapp.log.onps=function(){if(!this.logfired){this.pvid=this.random();this.load_start=this.time();this.active_time=0;this.pv("pageshow")}this.logfired=false};kapp.log.onunl=function(A){this.onact(A);this.unload_event()};kapp.log.click=function(S,N){if(N&&!Event.isLeftClick(S)){this.onact(S);return }var F,I=1,H=1,J;var W="inclick";var B=false;var D=Event.element(S);var G=Event.findElement(S,"A");if(G&&G!=document){F=this.get_normalized_href(G.href);if(G.hasClassName("log_ajaxclick")){J=G;W="ajaxclick"}else{if(F&&F!=this.page_href){J=G;if(G.href.indexOf("http://")===0&&this.parseUri(J.href).host!=this.parseUri(document.location.href).host){W="outclick"}}}}if(!J&&D){var M=["log_inclick","log_outclick","log_ajaxclick","log_adclick"];var E=M.length;for(var T=0;T<E;T++){J=this.upeq(D,M[T]);if(J){W=M[T].substr(4);B=true;break}}}var O=J?J:D;var C=O.up("div.module");if(!C){C=O.up("div.pageblock")}if(J||C){var V="static";var K="";var I,H;if(C){if(C.hasClassName("log_ads")&&!B){W="adclick"}if(!J){W="staticclick"}V=C.readAttribute("id");if(V=="header"&&Event.element(S).getAttribute("id")=="searchSubmit"){F=$("searchText").value}var L=this.modules_map?this.modules_map:this.temp_modules;if(L&&L[V]){I=L[V]["r"];H=L[V]["c"]}else{if(C.readAttribute("k_rc")){var R=C.readAttribute("k_rc").split("_");I=R[0];H=R[1]}}var A=C.up(".pageblock");if(A){K=A.getAttribute("id")}}var U=this.in_submodule_id(O);if(W=="ajaxclick"&&U==undefined){U=O.getAttribute("id")}var Q=S.pointerX();var P=S.pointerY();this.click_event(F,V,U,I,H,Q,P,W,K)}};kapp.log.update_visible=function(I){var J=this.time();var C=document.viewport.getDimensions();var G=C.height;var M=C.width;if(J-this.last_active<10000){var D=[];var B=this.modules_map?this.modules_map:this.temp_modules;for(var H in B){var A=B[H]["mod"];var N=kapp.log.module_visible_size(A,M,G);if(N.height>16&&N.width>0){D.push(H)}}var K=D.length;for(var F=0;F<K;F++){var H=D[F];var E=kapp.log.get_add_module_hash(H);if(E){var L=E.v?parseFloat(E.v):0;E.v=L+2}}}};kapp.log.module_visible_size=function(D,G,B){if(!D||!D.visible()){return 0}var H=D.viewportOffset();var C=H.left;var A=H.top;var E=D.getHeight();var F=D.getWidth();if((C>G||C+F<0)||(A>B||A+E<0)){return 0}if(C<0){F+=C;C=0}if(C+F>G){F=G-C}if(A<0){E+=A;A=0}if(A+E>B){E=B-A}return{height:E,width:F}};kapp.log.add_module_elem=function(B){if(B.nodeName=="DIV"&&B.hasClassName("module")){var E=B.readAttribute("id");var C=B.readAttribute("k_rc");if(C){C=C.split("_")}var A={n:E,r:(C&&C.length>1?C[0]:"1"),c:(C&&C.length>1?C[1]:"1")};var D=B.hasClassName("log_ads")?"y":"n";if(A.n){A.a=D;A.mod=B;this.add_module_info(E,A)}}};kapp.log.add_module_info=function(C,B){var A=this.modules_map?this.modules_map:this.temp_modules;if(!A[C]){A[C]={}}A[C]=B};kapp.log.get_add_module_hash=function(B){var A=this.modules_map?this.modules_map:this.temp_modules;if(!A||!A[B]){this.add_module_elem($(B))}return A[B]};kapp.log.get_module_str=function(M,G){var E=[""];var A=0;var D=true;var F=G?"&e_f=":null;for(var L in this.modules_map){var K=this.modules_map[L];if(!K.mod){K.mod=$(L)}var B=K.mod;var C=!D?"+":"";if(!B||B.getWidth()==0||B.getHeight()==0||B.getStyle("display")=="none"||!B.getStyle("display")||(Prototype.Browser.IE&&L.indexOf("banner")!=-1&&B.getHeight()<=16)||(!G&&(K.t===undefined||K.v===undefined))){continue}C+="n"+K.n;if(G){var I=B.cumulativeOffset();var N={x:I.left,y:I.top};this.normalize_xy(N);C+="+x"+N.x+"+y"+N.y+"+w"+B.getWidth()+"+h"+B.getHeight()+"+a"+K.a}for(var J in K){if(J!="n"&&J!="a"&&J.length==1){var H=K[J];if(J=="f"&&F){F+=(F.length>5?"+":"")+"m"+L+"+n"+H}else{switch(J){case"t":case"v":H=Math.round(H*10);if(H==0){H=null}break}C+="+"+J+H}}}if(E[A].length+C.length>M){E.push("");C=C.substr(1,C.length);A++}D=false;E[A]+=C}if(F&&F.length>5){E[A]+=F}return E};kapp.log.set_attn_module=function(C){if(this.last_module){var B=this.get_add_module_hash(this.last_module);if(B){var A=!B.t?0:B.t;B.t=parseFloat(A)+(Math.min(this.time()-this.last_module_time,10000))/1000}}this.last_module=C;this.last_module_time=this.time()};kapp.log.register_links=function(D){var E=/[righthealth|rightautos|righttrips|kosmix]\./;var B=document.getElementsByTagName("a");for(var A=0;A<B.length;A++){var C=B[A];if(C.protocol!="mailto:"){this.links[0+E.test(C.hostname).valueOf()]++}}this.putt("inl",this.links[1],"i");this.putt("oul",this.links[0],"i")};kapp.log.midlog_event=function(){var E={pvid:this.pvid,s:this.session,v:this.version,vt:this.vertical,pt:this.page_type,abt:this.ab_tests};var F=/^e[if]?_.*/;for(var C in this.pv_data){if(F.test(C)){E[C]=this.pv_data[C]}}this.pv_data={};var A=this.log_dir+"/mpv.txt?"+this.kvpairs(E)+"&m=";var D=this.get_module_str(2000-A.length,true);A+=D[0];new Ajax.Request(A,{method:"get"});if(D.length>1){var B=this.log_dir+"/mpv.txt?"+this.kvpairs({pvid:this.pvid,s:this.session});B+="&m="+D[1];new Ajax.Request(this.urltrim(B),{method:"get"})}E.length=A.length;if(this.debug_mode.window){kapp.log.debug.debug_append("Middle event",E)}if(this.debug_mode.alert){alert("Middle")}if(this.debug_mode.window){kapp.log.debug.debug_append("Ads log",this.ads_data)}};kapp.log.unload_event=function(){var A=Math.round((this.time()-this.load_start)/100);var H=Math.round(this.active_time/100);var F={pvid:this.pvid,s:this.session,t:A,at:H,v:this.version};var G=/^e[if]?_.*/;for(var D in this.pv_data){if(G.test(D)){F[D]=this.pv_data[D]}}this.pv_data={};for(var D in this.ads_data){F[D]=this.ads_data[D]}var B=this.log_dir+"/upv.txt?"+this.kvpairs(F)+"&m=";var E=this.get_module_str(2000-B.length,false);B+=E[0];new Ajax.Request(B,{method:"get"});if(E.length>1){var C=this.log_dir+"/upv.txt?"+this.kvpairs({pvid:this.pvid,s:this.session});C+="&m="+E[1];new Ajax.Request(this.urltrim(C),{method:"get"})}F.length=B.length;if(this.debug_mode.window){kapp.log.debug.debug_append("Left page",F)}if(this.debug_mode.alert){alert("Unload")}};kapp.log.pv_event=function(E){if(!this.session){this.put("ck_err","2");try{this.session=this.generateGUID()}catch(C){this.put("ck_err","3")}}var G=document.viewport.getDimensions();var D={pvid:this.pvid,sv:this.svid,s:this.session,q:this.query,sr:this.source,ssr:this.subsource,br:this.user_props.browser,os:this.user_props.os,ur:this.page_href,rf:this.referrer_href,sw:screen.width,sh:screen.height,vw:G.width,vh:G.height,v:this.version,rs:this.request_start,bid:this.build_id,rid:this.release_id};var F=/^e[if]?_.*/;for(var B in this.pv_data){if(F.test(B)){D[B]=this.pv_data[B]}}this.pv_data={};var A=this.log_dir+"/pv.txt?"+this.kvpairs(D);new Ajax.Request(this.urltrim(A),{method:"get"});D.length=A.length;this.logfired=true;if(this.debug_mode.window){kapp.log.debug.debug_append("Page View ("+E+")",D)}if(this.debug_mode.alert){alert("Page view")}};kapp.log.click_event=function(A,C,B,L,D,J,I,H,E){if(this.last_link!=A||(new Date()).getTime()-this.last_link_time>1000){var F=this.random();var K={ckid:F,pvid:this.pvid,s:this.session,ur:A,m:C,r:L,c:D,sm:B,ct:H,x:J,y:I,v:this.version,p:E};this.normalize_xy(K);var G=this.log_dir+"/ck.txt?"+this.kvpairs(K);new Ajax.Request(this.urltrim(G),{method:"get"});K.length=G.length;this.last_link=A;this.last_link_time=(new Date()).getTime();if(this.debug_mode.window){kapp.log.debug.debug_append("Click",K)}if(this.debug_mode.alert){alert("Click")}}};kapp.log.escape=function(A){if(typeof (A)!="string"){A=""+A}return escape(A.gsub(/\s+/,"+"))};kapp.log.random=function(){return Math.round(Math.random()*2147483647)};kapp.log.read_session=function(){if(this.session){return this.session}try{var C=this.get_cookie_value("kid");if(C){return C}}catch(B){}try{var A=this.session_id;if(A){return A}}catch(B){}this.put("ck_err","1");return this.generateGUID()};kapp.log.generateGUID=function(){var A="";for(var B=0;B<32;B++){if(B==8||B==12||B==16||B==20){A=A+"-"}A=A+Math.floor(Math.random()*16).toString(16).toUpperCase()}this.set_cookie_value("kid",A,3650);return A};kapp.log.get_cookie_value=function(B){var A=new RegExp("\\b"+B+"=([^;]*)","i");if(document.cookie.search(A)!=-1){return document.cookie.match(A)[1]}return null};kapp.log.set_cookie_value=function(B,C,A){var D=new Date();D.setDate(D.getDate()+A);document.cookie=B+"="+escape(C)+((A==null)?"":";expires="+D.toGMTString())};kapp.log.get_user_props=function(){var B,E;if(Prototype.Browser.IE){var C=new RegExp(/MSIE (\d+\.\d+);/);var D=C.exec(navigator.userAgent);B="IE"+D[1]}else{if(Prototype.Browser.Opera){B="Opera"}else{if(Prototype.Browser.WebKit){if(navigator.userAgent.indexOf("Chrome")!=-1){B="Chrome"}else{B="Safari"}}else{if(Prototype.Browser.Gecko){B="Firefox"}else{if(Prototype.Browser.MobileSafari){B="iPhone"}}}}}var A=navigator.platform;if(A.indexOf("Win")!=-1){E="Windows"}else{if(A.indexOf("Mac")!=-1){E="Mac"}else{if(A.indexOf("Linux")!=-1){E="Linux"}}}return{os:E,browser:B}};kapp.log.get_normalized_href=function(A){if(A===undefined||A===null||A.indexOf("javascript:")===0){return null}var B=A.indexOf("#");if(B>=0){A=B===0?document.location.href:A.substring(0,B)}return A.truncate(250)};kapp.log.time=function(){return(new Date()).getTime()};kapp.log.get_debug_mode=function(){var A=document.location.href;var C=A.indexOf("logdebug=1")!=-1||A.indexOf("-logdebug-1")!=-1;var B=A.indexOf("logdebug=2")!=-1||A.indexOf("-logdebug-2")!=-1;var C=(C||B)&&(this.user_props.browser=="Firefox");if(kapp.log.debug===undefined){C=false}return{window:C,alert:B}};kapp.log.log_url_params=function(){var D=window.location.search;var A=D.replace("?","").split("&");for(var B=0;B<A.length;B++){var C=A[B].split("=");this.put(C[0],C[1])}};kapp.log.upeq=function(B,A){return B.hasClassName(A)?B:B.up("."+A)};kapp.log.kvpairs=function(C){var D="";for(var A in C){var B=C[A];if(B!==undefined&&B!==null){D+=this.escape(A)+"="+this.escape(B)+"&"}}if(D.length>0){D=D.substring(0,D.length-1)}return D};kapp.log.urltrim=function(C){var B=C;if(C.length>2000){var B=C.substring(0,2000);var A=B.lastIndexOf("&");B=B.substring(0,A-1)+"&e_wn=tc"}return B};kapp.log.gethost=function(A){var C=this.parseUri(A);var B=C.host;if(C.port&&C.port.length>0){B+=":"+C.port}return B};kapp.log.in_submodule_id=function(B){var A=this.extract_submodule_id(B);if(!A){var C=B.up("*[class*=sm_]");if(C){A=this.extract_submodule_id(C)}}return A};kapp.log.extract_submodule_id=function(B){var A;$w(B.className).each(function(C){if(C.startsWith("sm_")){A=C.substring(3,C.length);throw $break}});return A};kapp.log.normalize_xy=function(B){var A=null;if(!this.coordinate_anchor){if(!this.coordinate_anchor_id){this.coordinate_anchor={x:0,y:0};A=this.coordinate_anchor}else{coordinate_anchor_elem=$(this.coordinate_anchor_id);if(coordinate_anchor_elem&&coordinate_anchor_elem.cumulativeOffset){var C=coordinate_anchor_elem.cumulativeOffset();this.coordinate_anchor={x:C.left,y:C.top};A=this.coordinate_anchor}else{A={x:0,y:0}}}}else{A=this.coordinate_anchor}B.x=parseInt(B.x,10)-parseInt(A.x,10);B.y=parseInt(B.y,10)-parseInt(A.y,10)};kapp.log.log_ads=function(A,C){var B="e_"+A;this.ads_data[B]=C};kapp.log.parseUri=function(E){var D=this.parseUri.options,A=D.parser[D.strictMode?"strict":"loose"].exec(E),C={},B=14;while(B--){C[D.key[B]]=A[B]||""}C[D.q.name]={};C[D.key[12]].replace(D.q.parser,function(G,F,H){if(F){C[D.q.name][F]=H}});return C};kapp.log.parseUri.options={strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};