// $Id:$
var _io_request=new IORequest();
var _io_config=undefined;
var _io_zone=undefined;
var _io_state=new IOState();
if(typeof console==="undefined"||typeof console.log==="undefined"||typeof console.group==="undefined"){
var console={log:function(){
},warn:function(){
},error:function(){
},dir:function(){
},group:function(){
},groupEnd:function(){
}};
}
function cm_ted_io(_1){
_io_state.cm_ted_io(_1);
};
function _cm_io_rec(_2){
if(_io_request!==undefined){
_io_request.cm_io_rec(_2);
}
};
function _cm_io_cfg(_3){
if(_io_request!==undefined){
_io_request.cm_io_cfg(_3,1);
}
};
function cmRecRequest(_4,_5,_6,_7,_8){
IORequest.rec_request(_4,_5.toUpperCase(),_6,_7,_8);
};
function cmDisplayRecs(){
IORequest.display_recs();
};
function IORequest(_9){
var _a="io_config.js";
var _b="V4";
this.h_timer=undefined;
this.h_script=undefined;
this.xmlHttp=undefined;
this.i_timeout=0;
this.request_type="";
this.action_callback=function(_c){
return;
};
this.display_status=function(_d,_e){
return;
};
this.display_product_table=function(_f){
return;
};
this.display_product_images=function(_10){
return;
};
this.display_config=function(_11){
return;
};
this.cm_alert=function(_12){
if(!IORequest.production){
alert(_12);
}
};
IOStopWatch=function(){
this.start=function(){
this.elapsed_time=0;
this.t_start=new Date().getTime();
};
this.stop=function(){
this.elapsed_time=new Date().getTime()-this.t_start;
return (this.elapsed_time);
};
};
this.stop_watch=new IOStopWatch("stop_watch");
this.ajax_timeout=function(_13){
if(_io_request.xmlHttp!==undefined){
try{
if(_io_request.xmlHttp.abort!==undefined){
if(typeof _io_request.xmlHttp.abort=="function"){
_io_request.xmlHttp.abort();
}
}
}
catch(e){
_io_request.display_status("IE - no abort property of the xmlHttp request object");
}
}
IORequest.b_timeout=true;
if(_13){
_io_request.action_callback("config_timeout");
IORequest.i_zone=0;
setTimeout("IORequest.config_download_failure(\"ajax timeout\");",0);
}else{
_io_request.display_status("Ajax timeout downloading product ("+_io_request.stop_watch.elapsed_time+"ms)","red");
IORequest.log(IORequest.log_warn,"Ajax timeout downloading product",_io_request.stop_watch.elapsed_time+" ms");
_io_request.download_product();
}
};
function _14(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else{
if(window.ActiveXObject){
}else{
return null;
}
}
};
this.javascript_timeout=function(_15){
if(IORequest.h_script!==undefined){
var h=document.getElementsByTagName("head").item(0);
if(h){
h.removeChild(IORequest.h_script);
IORequest.h_script=undefined;
}
}
_io_request.stop_watch.stop();
IORequest.timeout_product[IORequest.request_crc]=1;
if(_15){
_io_request.action_callback("config_timeout");
IORequest.i_zone=0;
setTimeout("IORequest.config_download_failure(\"javascript timeout\");",0);
}else{
_io_request.display_status("JavaScript timeout downloading product ("+_io_request.stop_watch.elapsed_time+"ms)","red");
IORequest.log(IORequest.log_warn,"JavaScript timeout downloading product",_io_request.stop_watch.elapsed_time+" ms");
if((_io_config.file_not_found_pc!==undefined)&&(_io_config.file_not_found_pc>Math.floor(Math.random()*100))){
var id=IORequest.offer_type+IORequest.offer_id+"|"+IORequest.request_crc+"|"+(IORequest.offer_type=="P"?IORequest.plain_text_product_id:(IORequest.offer_type=="S"?IORequest.plain_text_search_id:IORequest.plain_text_cat_id));
cmCreatePageElementTag(_io_config.file_not_found_id,id);
IORequest.log(IORequest.log_trace,"page element tag for file not found",id);
}
_io_request.download_product();
}
};
this.stateChanged=function(){
if(_io_request.xmlHttp.readyState==4){
clearTimeout(_io_request.h_timer);
_io_request.h_timer=undefined;
if(_io_request.xmlHttp.status==200){
var txt=_io_request.xmlHttp.responseText;
eval(txt);
}else{
if(_io_request.xmlHttp.status==404){
_io_request.display_status("Ajax - Requested File not found on server - "+_io_request.xmlHttp.status+". Next step in recommendation plan attempted","blue");
IORequest.log(IORequest.log_warn,"Ajax - Requested File not found on server - "+_io_request.xmlHttp.status,"next step in recommendation plan attempted");
IORequest.b_404=true;
if(_io_request.request_type=="config"){
setTimeout("IORequest.config_download_failure(\"ajax 404\");",0);
}else{
if(_io_request.request_type=="product"){
_io_request.download_product();
}
}
}else{
_io_request.display_status("Ajax - Unexpected status from stateChanged: "+_io_request.xmlHttp.status+".","red");
IORequest.log(IORequest.log_error,"Ajax - Unexpected status from stateChanged",_io_request.xmlHttp.status);
IORequest.b_404=true;
if(_io_request.request_type=="config"){
setTimeout("IORequest.config_download_failure(\"ajax 404\");",0);
}else{
if(_io_request.request_type=="product"){
_io_request.download_product();
}
}
}
}
}else{
}
};
this.get_target_from_plan=function(_16,_17){
if(IORequest.current_step>=_16.rec_steps.length){
return ("_SE_");
}
var _18=_16.rec_steps[IORequest.current_step];
IORequest.log(IORequest.log_trace,"step: "+IORequest.current_step+" offer_id: "+_18.offer_id+" type: "+_18.offer_type+" target",_18.target_id);
if(_18.target_id=="_NR_"){
return ("_NR_");
}
if(_18.target_id=="_DPF_"){
return ("_DPF_");
}
if(_17&&_18.offer_type=="P"){
IORequest.current_step++;
this.display_status("Looking for Category - found Product: "+_18.target_id+". Next step","green");
IORequest.log(IORequest.log_trace,"Looking for Category - found Product: "+_18.target_id,"next step");
return (this.get_target_from_plan(_16,1));
}
if(_18.target_id=="_SP_"){
return (IORequest.primary_id||"_NR_");
}
if(_18.target_id=="_SC_"){
return (IORequest.fallback_id||"_NR_");
}
if(_18.target_id=="_SS_"){
return (IOConfig.crc_specified_search||"_NR_");
}
if(_18.target_id=="_RVP_"||_18.target_id=="_RVC_"||_18.target_id=="_LCP_"||_18.target_id=="_RPP_"||_18.target_id=="_MPC_"){
var rc=_io_state.cm_get_product_from_cookie(_18.target_id);
if(rc===0){
IORequest.current_step++;
this.display_status("No "+_18.target_id+"available. Next step","green");
IORequest.log(IORequest.log_trace,"No "+_18.target_id+" available","next step");
return (this.get_target_from_plan(_16));
}else{
return (rc);
}
}
this.display_status("unrecognized target id: "+_18.target_id+".","red");
IORequest.log(IORequest.log_error,"unrecognized target id",_18.target_id);
return ("_NR_");
};
this.issue_page_element_tag=function(_19){
if(IORequest.perm_cookie_not_supported===false){
var _1a=IORequest.find_cookie(IORequest.ses_cookie);
if(_1a===undefined){
var _1b=new Date().getTime().toString();
_1a=IORequest.set_and_check_cookie(IORequest.ses_cookie,"S"+_1b+"|",true);
if(!_1a){
return;
}
}
if(_1a.indexOf("|"+_19[0]+"|")==-1){
IORequest.log(IORequest.log_trace,"issued page element tag"+this.io_zone.ab_test_id.split(":")[1],this.io_zone.ab_test_id.split(":")[0]);
IORequest.log(IORequest.log_trace,"session cookie",_1a);
IORequest.set_and_check_cookie(IORequest.ses_cookie,_1a+_19[0]+"|",true);
cmCreatePageElementTag(_19[1],_19[0]);
}
}
};
this.download_product=function(){
IORequest.current_step++;
this.io_zone=_io_config.zones[IORequest.zone_id];
var _1c="''";
if(this.io_zone.ab_test_id!="no ab test"){
this.issue_page_element_tag(this.io_zone.ab_test_id.split(":"));
_1c="'"+this.io_zone.ab_test_id+"'";
}
IORequest.log(IORequest.log_trace,"ab test id",this.io_zone.ab_test_id);
if(!this.io_zone.rec_plan){
this.cm_alert("rec_plan not defined - zone_id: "+IORequest.zone_id);
}
var rc=this.get_target_from_plan(this.io_zone.rec_plan,IORequest.b_timeout||IORequest.b_404);
this.action_callback("recommendation_plan");
if(rc=="_DPF_"&&(IORequest.default_product_file!==undefined)){
_io_request.cm_io_rec(IORequest.default_product_file);
return (0);
}
if(rc=="_SE_"||rc=="_NR_"||rc=="_DPF_"){
var _1d="";
if(rc=="_SE_"){
this.display_status("steps exhausted. Calling zone population function "+this.io_zone.zpf+" without recommendations.","blue");
IORequest.log(IORequest.log_trace,"steps exhausted - calling zone population function without recommendations",this.io_zone.zpf);
_1d="Steps exhausted.  No recommendations found";
}else{
this.display_status("calling zone population function "+this.io_zone.zpf+" without recommendations (_NR_)","blue");
IORequest.log(IORequest.log_trace,"calling zone population function without recommendations",this.io_zone.zpf);
_1d="No recommendations found";
}
if(this.io_zone.zpf!==undefined){
if(this.io_zone.ab_test_id!="no ab test"){
this.issue_page_element_tag(this.io_zone.ab_test_id.split(":"));
}
var _1e="[],'"+this.io_zone.name+"','_NR_','','',[],[],'"+_1d+"',"+_1c;
var zpf=this.io_zone.zpf+"("+_1e+")";
setTimeout(zpf,0);
}
setTimeout("IORequest.stack_manager(\"rc: "+rc+"\");",0);
return (0);
}
var _1f=rc;
this.offer_id=this.io_zone.rec_plan.rec_steps[IORequest.current_step].offer_id;
this.cgi_version=this.io_zone.rec_plan.rec_steps[IORequest.current_step].offer_version;
this.offer_type=this.io_zone.rec_plan.rec_steps[IORequest.current_step].offer_type;
if(((this.offer_type=="C")&&IORequest.encrypt_cats)||((this.offer_type=="E")&&IORequest.encrypt_cats)||(this.offer_type=="S")||((this.offer_type=="P")&&IORequest.encrypt_prds)){
this.prod_id_crc=_1f;
}else{
this.prod_id_crc=IORequest.hex32(IORequest.crc32_str(_1f));
}
IORequest.request_crc=this.prod_id_crc;
IORequest.offer_type=this.offer_type;
IORequest.offer_id=this.offer_id;
this.group=this.prod_id_crc.substr(0,2);
var _20=((window.location.protocol=="https:"&&IORequest.access_method=="json remote")?IORequest.url_prefix["json remote https"]:IORequest.url_prefix[IORequest.access_method]);
if(cm_ClientID!==undefined){
IORequest.client_id=cm_ClientID;
}
this.url=_20+IORequest.client_id+"/"+_b+"/"+this.offer_type+this.offer_id+"/"+this.offer_type+this.group+"/"+this.prod_id_crc+".js?V="+this.cgi_version;
this.display_status("retrieving IO file product ID: "+_1f+" url: "+this.url,"green");
IORequest.log(IORequest.log_trace,"retrieving IO file product "+_1f+" - url",this.url);
this.action_callback("product_request");
if((IORequest.access_method=="ajax local")||(IORequest.access_method=="ajax remote")){
this.xmlHttp=_14();
if(this.xmlHttp===null){
this.cm_alert("Your browser really does not support Ajax!");
return;
}
this.h_timer=setTimeout("_io_request.ajax_timeout(0)",IORequest.timeout[this.i_timeout]);
this.i_timeout=1;
this.request_type="product";
this.xmlHttp.onreadystatechange=this.stateChanged;
this.stop_watch.start();
try{
this.xmlHttp.open("GET",this.url,true);
}
catch(e){
clearTimeout(this.h_timer);
this.display_status("Ajax Error: Cross Domain request attempted.  Ajax not supported.  Try json x-domain.","red");
IORequest.rec_request_abort();
}
try{
this.xmlHttp.send(null);
}
catch(e1){
clearTimeout(this.h_timer);
this.display_status("Ajax Error: Host not found.  Ajax not supported.  Try json x-domain.","red");
IORequest.rec_request_abort();
}
}else{
var _21=(this.io_zone.rec_plan.rec_steps[IORequest.current_step].target_id=="_SS_"?IOConfig.sfto:IORequest.timeout[this.i_timeout]);
this.h_timer=setTimeout("_io_request.javascript_timeout(0)",_21);
this.i_timeout=1;
this.stop_watch.start();
try{
var h=document.getElementsByTagName("head").item(0);
IORequest.h_script=document.createElement("script");
IORequest.h_script.setAttribute("language","javascript");
IORequest.h_script.setAttribute("type","text/javascript");
IORequest.h_script.setAttribute("charset","UTF-8");
IORequest.h_script.setAttribute("src",this.url);
h.appendChild(IORequest.h_script);
}
catch(e2){
IORequest.rec_request_abort();
}
}
};
this.download_config=function(){
var _22=((window.location.protocol=="https:"&&IORequest.access_method=="json remote")?IORequest.url_prefix["json remote https"]:IORequest.url_prefix[IORequest.access_method]);
if(cm_ClientID!==undefined){
IORequest.client_id=cm_ClientID;
}
this.url=_22+IORequest.client_id+"/"+_a+"?ts="+(((new Date().getTime())/600000)|0);
this.display_status("retrieving IO Config file: "+_a+" url: "+this.url,"green");
IORequest.log(IORequest.log_trace,"retrieving IO config file "+_a,this.url);
this.action_callback("config_request");
if((IORequest.access_method=="ajax local")||(IORequest.access_method=="ajax remote")){
this.xmlHttp=_14();
if(this.xmlHttp===null){
this.cm_alert("Your browser really does not support Ajax!");
return;
}
this.h_timer=setTimeout("_io_request.ajax_timeout(1)",IORequest.timeout[this.i_timeout]);
this.i_timeout=1;
this.request_type="config";
this.xmlHttp.onreadystatechange=this.stateChanged;
this.stop_watch.start();
try{
this.xmlHttp.open("GET",this.url,true);
}
catch(e){
clearTimeout(this.h_timer);
this.display_status("Ajax Error: Cross Domain request attempted.  Ajax not supported.  Try json x-domain.","red");
IORequest.rec_request_abort();
}
try{
this.xmlHttp.send(null);
}
catch(e1){
clearTimeout(this.h_timer);
this.display_status("Ajax Error: Host not found.  Ajax not supported.  Try json x-domain.","red");
IORequest.rec_request_abort();
}
}else{
this.h_timer=setTimeout("_io_request.javascript_timeout(1)",IORequest.timeout[this.i_timeout]);
this.i_timeout=1;
this.stop_watch.start();
try{
var h=document.getElementsByTagName("head").item(0);
var js=document.createElement("script");
js.setAttribute("language","javascript");
js.setAttribute("type","text/javascript");
js.setAttribute("src",this.url);
h.appendChild(js);
}
catch(e2){
IORequest.rec_request_abort();
}
}
};
this.cm_io_rec=function(_23){
this.stop_watch.stop();
if(this.h_timer!==undefined){
clearTimeout(this.h_timer);
this.h_timer=undefined;
}
if(this.io_zone.zpf!==undefined){
if(_23!==undefined){
var _24=_23.pd[0][0];
var _25=_23.hd[6];
var _26=_23.hd[2];
if(_26=="S"){
_24=IORequest.raw_search_term.replace(/"/g,"\\\"");
}
if((_25!==undefined)&&(_25.length==8)&&(IORequest.timeout_product[_25])){
IORequest.log(IORequest.log_trace,"Product download attempt following timeout for same file.  Requested file CRC",IORequest.request_crc);
IORequest.timeout_product[_25]=0;
return;
}
this.display_status("Successful download of IO Recommendations for product: "+_24+" <font color=\"black\">("+this.stop_watch.elapsed_time+" ms)</font>.","green");
IORequest.log(IORequest.log_trace,"successful retrieval of IO Recommendations for product "+_24,this.stop_watch.elapsed_time+" ms");
IORequest.log(IORequest.log_iuo,"requested version: "+this.cgi_version+" returned version",_23.hd[9]);
IORequest.log(IORequest.log_product_file,"product file",_23);
var _27=[];
var _28=[];
var _29=[];
if(_26=="P"){
if((IOConfig.category_structure=="E")&&(_23.pd[0][2])){
_io_state.cm_ted_io({i_offer:"epr_category",cg:_23.pd[0][2]});
}
if((+IOConfig.brand_personalization[0])!=-1){
var _2a=(+IOConfig.brand_personalization[0])+3;
_io_state.cm_ted_io({i_offer:"brand",brn:_23.pd[0][_2a]});
}
}
var _2b=[];
var mpc=_io_state.cm_get_product_from_cookie("_MPC_");
for(var _2c=1;_2c<_23.pd.length;_2c++){
_2b[_2c-1]=[];
_2b[_2c-1][0]=_2c;
if((IORequest.optional_parm=="R")&&(_26!="P")){
_2b[_2c-1][1]=Math.floor(Math.random()*1000);
}else{
var _2d=(IORequest.encrypt_cats?IORequest.hex32(IORequest.crc32_str(_23.pd[_2c][2])):_23.pd[_2c][2]);
_2b[_2c-1][1]=_23.pd[_2c][1]*((_2d==mpc)?_io_config.cp:1);
}
}
_2b.sort(function(a,b){
return (b[1]-a[1]);
});
if((IOConfig.brand_personalization[1]!=-1)){
var mpb=_io_state.cm_get_product_from_cookie("_MPB_");
if(mpb!==0){
for(var _2e=1;_2e<_23.pd.length;_2e++){
_2b[_2e-1]=[];
_2b[_2e-1][0]=_2e;
var _2f=_23.pd[_2e][(+IOConfig.brand_personalization[0])+3];
var _30=IORequest.hex32(IORequest.crc32_str(_2f));
_2b[_2e-1][1]=_23.pd[_2e][1]*((_30==mpb)?(+IOConfig.brand_personalization[1]):1);
}
_2b.sort(function(a,b){
return (b[1]-a[1]);
});
}
}
l_attribute_array=_23.pd[0].length;
for(var _31=3;_31<l_attribute_array;_31++){
var _32=((_23.ap!==undefined&&_23.ap[_31-3]!==undefined)?_23.ap[_31-3]:"");
_29.push((_23.pd[0][_31]===undefined)?undefined:_32+_23.pd[0][_31].replace(/"/g,"\\\""));
}
var _33=[];
var _34=[];
if(this.io_zone.filter_cp){
var acp=_io_state.cm_get_product_from_cookie("_ACP_");
for(var _35=0;_35<acp.length;_35++){
if(IORequest.encrypt_prds){
_33[acp[_35]]=1;
}else{
_34[acp[_35]]=1;
}
}
}
if(this.io_zone.filter_pp){
var app=_io_state.cm_get_product_from_cookie("_APP_");
for(var _36=0;_36<app.length;_36++){
if(IORequest.encrypt_prds){
_33[app[_36]]=1;
}else{
_34[app[_36]]=1;
}
}
}
for(var _37=0;_37<_io_config.bad_list.length;_37++){
_33[_io_config.bad_list[_37]]=1;
}
IORequest.reason=[];
var _38=(IORequest.is_undefined(_23.ra)?0:_23.ra.length);
for(var ii=0;((_27.length<this.io_zone.rec_plan.n_recs)&&(ii<_2b.length));ii++){
var _39=_2b[ii][0];
var _3a=_23.pd[_39][0];
var _3b=IORequest.hex32(IORequest.crc32_str(_3a));
IORequest.reason[_3a]=6;
var _3c=_3a.replace(/"/g,"\\\"");
var _3d=true;
if((IORequest.filtered_out_products[_3a]===undefined)&&(_34[_3a]===undefined)&&(_33[_3b]===undefined)&&(IOState.h_productview_product[_3a]===undefined)){
var _3e=[];
for(var _3f=3;((_3f<_23.pd[_39].length)&&(_3d===true));_3f++){
if((_38>(_3f-3))&&(_23.ra[_3f-3])&&!(_23.pd[_39][_3f])){
_3d=false;
}else{
var _40=((!IORequest.is_undefined(_23.ap)&&_23.ap[_3f-3]!==undefined)?_23.ap[_3f-3]:"");
_3e.push((_23.pd[_39][_3f]===undefined)?undefined:_40+_23.pd[_39][_3f].replace(/"/g,"\\\""));
}
}
if(_3d){
_27.push(_3c);
if(IORequest.conflict_resolution===true){
IORequest.filtered_out_products[_3a]=1;
}
_28.push("[\""+_3e.join("\",\"")+"\"]");
}else{
IORequest.log(IORequest.log_trace,_3c+" required attribute not present","not sent to zpf");
IORequest.reason[_3a]=1;
}
}else{
if((_34[_3a]!==undefined)||(_33[_3b]!==undefined)){
IORequest.log(IORequest.log_trace,_3c+" recently carted, purchased, or in bad product list","not sent to zpf");
IORequest.reason[_3a]=2;
}else{
if(IORequest.filtered_out_products[_3a]!==undefined){
IORequest.log(IORequest.log_trace,_3c+" appears in previous zone","not sent to zpf");
IORequest.reason[_3a]=3;
}else{
if(IOState.h_productview_product[_3a]!==undefined){
IORequest.log(IORequest.log_trace,_3c+" appears in the recommendation list but is also a product for which a product view tag was issued for this page","not sent to zpf");
IORequest.reason[_3a]=5;
}
}
}
}
}
this.display_product_table(_23,_27);
this.display_product_images(_23,_27);
var _41=[];
_41._SP_="Recommendations from a product you recently viewed";
_41._SC_="Recommendations from a category you recently viewed";
_41._NR_="No Recs";
_41._RVP_="Recommendations from a product you recently viewed";
_41._LCP_="Recommendations from a product you recently added to your cart";
_41._RPP_="Recommendations from a Product you recently purchased";
_41._RVC_="Recommendations from a category you recently viewed";
_41._MPC_="Recommendations from your favorite category";
_41._DPF_="Recommendations from your favorite retail store";
var _42=[];
var _43=_27.length?true:false;
var _44=_43?this.io_zone.rec_plan.rec_steps[IORequest.current_step].target_id:"_NR_";
if(!_43){
IORequest.log(IORequest.log_trace,"No recommendations made it through the filters","changing target symbolic from "+this.io_zone.rec_plan.rec_steps[IORequest.current_step].target_id+" to _NR_.");
}
var _45=this.io_zone.rec_plan.rec_steps[IORequest.current_step].heading||_41[_44];
_42.push(_43?"[\""+_27.join("\",\"")+"\"]":"[]");
_42.push("\""+this.io_zone.name+"\"");
_42.push("\""+_44+"\"");
_42.push("\""+_24+"\"");
_42.push("\""+_23.pd[0][2]+"\"");
_42.push("["+_28.join()+"]");
_42.push("[\""+_29.join("\",\"")+"\"]");
_42.push("\""+_45+"\"");
_42.push("\""+(this.io_zone.ab_test_id||"")+"\"");
var _46=this.io_zone.zpf+"("+_42.join()+")";
if(this.io_zone.zpf!==undefined){
setTimeout(_46,0);
}
}
setTimeout("IORequest.stack_manager(\"sucessful product retrieval\");",0);
}
};
this.cm_io_cfg=function(_47,_48){
this.stop_watch.stop();
clearTimeout(_io_request.h_timer);
_io_request.h_timer=undefined;
if(_io_config===undefined){
if(_47!==undefined){
this.action_callback(_48?"server_cfg":"default_cfg");
IORequest.log(IORequest.log_trace,"successful retrieval of config file",this.stop_watch.elapsed_time+" ms");
IORequest.log(IORequest.log_config_file,"config file",_47);
if(_47.zp!==undefined){
_io_config=new IOConfig(_47);
this.action_callback("config_return");
}else{
setTimeout("IORequest.config_download_failure(\"corrupt config file\");",0);
}
if(_48){
IORequest.i_zone=0;
setTimeout("IORequest.config_downloaded(\"successful config download\");",0);
}
}
}else{
IORequest.log(IORequest.log_warn,"config request where _io_config already defined","aborting request");
}
};
};
IORequest.crc32_tab=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];
IORequest.crc32_add=function(crc,c){
return IORequest.crc32_tab[(crc^c)&255]^((crc>>8)&16777215);
};
IORequest.crc32_str=function(str){
var n;
var len=str.length;
var crc;
crc=4294967295;
for(n=0;n<len;n++){
crc=IORequest.crc32_add(crc,str.charCodeAt(n));
}
return crc^4294967295;
};
IORequest.hex32=function(val){
var n;
var _49;
var _4a;
n=val&65535;
_49=n.toString(16).toUpperCase();
while(_49.length<4){
_49="0"+_49;
}
n=(val>>>16)&65535;
_4a=n.toString(16).toUpperCase();
while(_4a.length<4){
_4a="0"+_4a;
}
return _4a+_49;
};
IORequest.cookie_info=function(_4b,_4c){
var c=document.cookie;
var l=c.length;
var n=c.split(";").length;
IORequest.log(IORequest.log_trace,"cookie_length: "+l+" number of cookies",IORequest.cookie_count(_4b));
IORequest.log(IORequest.log_trace,"cookie",c);
alert("n: "+n+" l: "+l+" cookie: "+c);
if(_4c){
var _4d=_4c-l-3-_4b.length;
var _4e="";
for(var i=0;i<_4d;i++){
_4e+=""+i%10;
}
IORequest.set_and_check_cookie(_4b,_4e);
IORequest.cookie_info(_4b);
}
};
IORequest.cookie_count=function(_4f){
var c=document.cookie;
var n=0;
if(c){
n=c.split(";").length;
}
return n;
};
IORequest.find_cookie=function(_50){
var _51=document.cookie.split("; ");
var _52=_50.length;
for(var _53=0;_53<_51.length;_53++){
if((_50+"=")==_51[_53].substring(0,_52+1)){
return (_51[_53].substring(_52+1));
}
}
return (undefined);
};
IORequest.rm_cookie=function(_54){
document.cookie=_54+"=;path=/;expires="+new Date(1998,0).toGMTString()+";;";
};
IORequest.set_and_check_cookie=function(_55,_56,_57,_58){
document.cookie=_55+"="+_56+";path=/"+(_57?"":";expires="+new Date(2020,0).toGMTString())+(_58?";domain="+_58:"");
_56=IORequest.find_cookie(_55);
if(_56===undefined){
if(!_57){
IORequest.perm_cookie_not_supported=true;
}
}
return (_56);
};
IORequest.build_array_from_cookie=function(_59){
var _5a=IORequest.find_state_cookie();
return ((_5a===undefined)?undefined:(_5a.split(IORequest.cookie_separator))[_59]);
};
IORequest.find_state_cookie=function(){
if(IORequest.vanity_suffix===undefined){
var _5b=document.domain;
if(_5b){
var re=/[^.]+\.[^.]+$/;
IORequest.vanity_suffix="."+_5b.match(re);
}
}
var _5c=IORequest.find_cookie(IORequest.state_cookie);
if(_5c===undefined){
var _5d=((IORequest.ie_version()!==null)&&(IORequest.ie_version()<7))?20:30;
if(IORequest.cookie_count()>=_5d){
_5c=undefined;
}else{
var rn=Math.floor(Math.random()*100);
_5c=[rn,IOConfig.version,IOConfig.brand_personalization[0],IOConfig.brand_personalization[1],IOConfig.category_structure,IORequest.a_max_elements[0],IORequest.a_max_elements[1],IORequest.a_max_elements[2],IORequest.a_max_elements[3],IORequest.a_max_elements[4],IORequest.a_max_elements[5],IORequest.a_max_elements[6]].join("~")+IORequest.cookie_separator+IORequest.cookie_separator+IORequest.cookie_separator+IORequest.cookie_array_separator+IORequest.cookie_array_separator+IORequest.cookie_array_separator+IORequest.cookie_array_separator+IORequest.cookie_array_separator+IORequest.cookie_array_separator;
var _5e=_5c;
_5c=IORequest.set_and_check_cookie(IORequest.state_cookie,_5e,false,IORequest.vanity_suffix);
}
}
return (_5c);
};
IORequest.default_json={"zp":[{"id":"Default_Zone","rp":[["001",0,99,3]]}],"rp":{"001":[["101","_DPF_","0","You might be interested in"]]},"oa":{"101":["4","P"]}};
IORequest.i_zone=1;
IORequest.i_msg=0;
IORequest.rec_stack=[];
IORequest.filtered_out_products=[];
IORequest.b_timeout=false;
IORequest.b_404=false;
IORequest.zone_id=0;
IORequest.primary_id=0;
IORequest.fallback_id=0;
IORequest.raw_search_term="";
IORequest.current_step=-1;
IORequest.timeout_product=[];
IORequest.cookie_separator="~|~";
IORequest.cookie_array_separator="|";
IORequest.ses_cookie="CoreM_Ses";
IORequest.state_cookie="CoreM_State";
IORequest.recently_viewed_product=undefined;
IORequest.recently_viewed_category=undefined;
IORequest.perm_cookie_not_supported=false;
IORequest.access_method="json local";
IORequest.ab_group_number=undefined;
IORequest.log_cookie_write=2<<1;
IORequest.log_config_file=2<<2;
IORequest.log_product_file=2<<3;
IORequest.log_trace=2<<4;
IORequest.log_warn=2<<5;
IORequest.log_error=2<<6;
IORequest.log_iuo=2<<7;
IORequest.production=false;
IORequest.log_mask=IORequest.production?IORequest.log_error:(2<<16)-1;
IORequest.log_mask=IORequest.log_mask&~IORequest.log_iuo;
IORequest.log=function(bit,_5f,_60){
if(bit==IORequest.log_product_file||bit==IORequest.log_config_file){
console.group();
console.dir(_60);
console.groupEnd();
}else{
if(bit==IORequest.log_warn){
console.warn(_5f+": ",_60);
}else{
if(bit==IORequest.log_error){
console.error(_5f+": ",_60);
}else{
if(IORequest.log_mask&bit){
console.log(_5f+": ",_60);
}
}
}
}
};
IORequest.ie_version=function(){
return (/MSIE (\d+\.\d+);/.test(navigator.userAgent)?RegExp.$1:null);
};
IORequest.url_prefix=[];
IORequest.url_prefix["ajax local"]="";
IORequest.url_prefix["ajax remote"]="/limelight/";
IORequest.url_prefix["json local"]="";
IORequest.url_prefix["json remote"]="http://coremetric.vo.llnwd.net/o33/";
IORequest.url_prefix["json remote https"]="https://coremetric.hs.llnwd.net/o33/";
IORequest.rec_request=function(_61,_62,_63,_64,_65){
IORequest.plain_text_product_id=_62;
IORequest.plain_text_cat_id=_63;
IORequest.log(IORequest.log_trace,"cmRecRequest",_61+","+_62+","+_63+(_64?","+_64:"")+(_65?","+_65:""));
IORequest.rec_stack.push([_61,(IORequest.encrypt_prds?IORequest.hex32(IORequest.crc32_str(_62)):_62),(IORequest.encrypt_cats?IORequest.hex32(IORequest.crc32_str(_63)):_63),_64,_65]);
};
IORequest.rec_request_abort=function(){
IORequest.rec_stack=[];
IORequest.filtered_out_products=[];
IORequest.log(IORequest.log_trace,"Aborted request","communication exception");
};
IORequest.display_recs=function(){
IORequest.i_msg=0;
IORequest.i_zone=1;
IORequest.filtered_out_products=[];
_io_state.cm_build_all_recent_arrays();
_io_config=undefined;
if(IORequest.chris_dot_html_config){
_io_config=new IOConfig(IORequest.chris_dot_html_config);
IORequest.log(IORequest.log_config_file,"config file",IORequest.chris_dot_html_config);
IORequest.i_zone=0;
IORequest.stack_manager("chris.html");
}else{
_io_request.download_config();
}
};
IORequest.config_downloaded=function(_66){
IORequest.stack_manager(_66);
};
IORequest.config_download_failure=function(_67){
_io_config=new IOConfig(IORequest.default_json);
for(var _68=0;_68<IORequest.rec_stack.length;_68++){
_io_config.add_zone(IORequest.rec_stack[_68][0]);
}
IORequest.stack_manager(_67);
};
IORequest.encode_search_term=function(_69){
_69=_69.toUpperCase();
if(IOConfig.stpr){
for(var _6a=0;_6a<IOConfig.stpr.length;_6a++){
var _6b=IOConfig.stpr[_6a];
_6b=_6b.toUpperCase();
if(_69.substring(0,_6b.length)==_6b){
_69=_69.substr(_6b.length);
}
}
}
_69=_69.replace(/[$'&`~@:\[\]\\!%^*()={}\| <>"]/g,"");
return (_69);
};
IORequest.stack_manager=function(_6c){
if(IORequest.rec_stack.length){
var _6d=IORequest.rec_stack.shift();
IORequest.i_zone++;
IORequest.i_msg=0;
IORequest.zone_id=_6d[0];
IORequest.primary_id=_6d[1];
IORequest.fallback_id=_6d[2];
IORequest.optional_parm=(_6d.length>3?_6d[3]:"");
IORequest.raw_search_term=(_6d.length>4?_6d[4]:"");
if(IORequest.raw_search_term){
IORequest.log(IORequest.log_trace,"Search Term pre Osentoski",IORequest.raw_search_term);
var _6e=IORequest.encode_search_term(IORequest.raw_search_term);
IORequest.log(IORequest.log_trace,"Search Term aft Osentoski",_6e);
IORequest.plain_text_search_id=_6e;
IOConfig.crc_specified_search=IORequest.hex32(IORequest.crc32_str(_6e));
_6d[4]=IOConfig.crc_specified_search;
}
IORequest.current_step=-1;
IORequest.b_timeout=false;
IORequest.b_404=false;
if(_io_config.zones[IORequest.zone_id]===undefined){
IORequest.log(IORequest.log_error,"cmRecRequest: zone "+IORequest.zone_id+" is not defined in the configuration file","no action taken");
IORequest.stack_manager("zone: "+IORequest.zone_id+" is not defined in the configuration file");
}else{
_io_request.display_status("stack_manager called - "+_6c+" - parms: "+_6d.join(", "),"green");
IORequest.log(IORequest.log_trace,"stack_manager called - "+_6c+" - parms",_6d.join(", "));
_io_request.download_product();
}
}else{
if(IORequest.i_zone==3){
IORequest.i_zone=2;
}
_io_request.display_status("All cmRecRequests completed","green");
IORequest.log(IORequest.log_trace,"All cmRecRequests completed for zone",IORequest.zone_id);
IORequest.i_zone=1;
IORequest.i_msg=0;
}
};
IORequest.is_undefined=function(x){
var y;
return (x===y);
};
IORequest.inspect_json=function(obj,_6f,_70){
var str="",_71,msg;
if(_70===null||_70===undefined){
_70=0;
}
if(_6f===null||_6f===undefined){
_6f=1;
}
if(_6f<1){
return "<font color=\"red\">Error: Levels number must be > 0</font>";
}
if(obj===null||obj===undefined){
return "<font color=\"red\">Error: Object <b>NULL</b></font>";
}
str+="<ul>";
var _72;
for(_72 in obj){
if(true){
try{
_71=typeof (obj[_72]);
str+="<li>("+_71+") "+_72+((obj[_72]===null)?(": <b>null</b>"):(":  <font color=\"red\">"+obj[_72]+"</font>"))+"</li>";
if((_71=="object")&&(obj[_72]!==null)&&(_70+1<_6f)){
str+=IORequest.inspect_json(obj[_72],_6f,_70+1);
}
}
catch(err){
if(typeof (err)=="string"){
msg=err;
}else{
if(err.message){
msg=err.message;
}else{
if(err.description){
msg=err.description;
}else{
msg="Unknown";
}
}
}
str+="<li><font color=\"red\">(Error) "+_72+": "+msg+"</font></li>";
}
}
}
str+="</ul>";
return str;
};
IOConfig.version=-1;
IOConfig.brand_personalization=[-1,-1];
IOConfig.category_structure=-1;
IOConfig.stpr=[];
IOConfig.crc_specified_search="";
function IOConfig(_73){
var _74=false;
this.io=_73;
if(((IORequest.ie_version()!==null)&&(IORequest.ie_version()<7))){
if(this.io.cie6b!==undefined){
for(var ii=0;ii<IORequest.a_max_elements.length;ii++){
if(this.io.cie6b[ii]!=IORequest.a_max_elements[ii]){
IORequest.a_max_elements[ii]=this.io.cie6b[ii];
_74=true;
}
}
}
}else{
if(this.io.cdfltb!==undefined){
for(var _75=0;_75<IORequest.a_max_elements.length;_75++){
if(this.io.cdfltb[_75]!=IORequest.a_max_elements[_75]){
IORequest.a_max_elements[_75]=this.io.cdfltb[_75];
_74=true;
}
}
}
}
if(this.io.cs===undefined){
if(IOConfig.category_structure==-1){
IOConfig.category_structure="S";
}
}else{
var _76=(this.io.cs!=="EPR");
var _77=(IOConfig.category_structure!=="E");
if(_76!==_77){
_74=true;
IOConfig.category_structure=(this.io.cs=="EPR"?"E":"S");
}
}
if(this.io.cv!==undefined){
if(IOConfig.version!==this.io.cv){
_74=true;
IOConfig.version=this.io.cv;
}
}
if(this.io.bp!==undefined){
if(IOConfig.brand_personalization[0]!=this.io.bp[0]){
IOConfig.brand_personalization[0]=this.io.bp[0];
_74=true;
}
if(IOConfig.brand_personalization[1]!=this.io.bp[1]){
IOConfig.brand_personalization[1]=this.io.bp[1];
_74=true;
}
}
if(_74&&(IORequest.ab_group_number!==undefined)){
var cfg=[IORequest.ab_group_number,IOConfig.version,IOConfig.brand_personalization[0],IOConfig.brand_personalization[1],IOConfig.category_structure,IORequest.a_max_elements[0],IORequest.a_max_elements[1],IORequest.a_max_elements[2],IORequest.a_max_elements[3],IORequest.a_max_elements[4],IORequest.a_max_elements[5],IORequest.a_max_elements[6]];
_io_state.cm_write_cookies(cfg);
_74=0;
}
IOConfig.stpr=this.io.stpr||[];
IOConfig.sfto=this.io.sfto||1500;
this.fcpl=this.io.fcpl===undefined?"N":this.io.fcpl.toUpperCase();
this.cp=this.io.cp||1.1;
if(this.io.pfto!==undefined){
IORequest.timeout[1]=this.io.pfto;
}
if(this.io.fnf!==undefined){
this.file_not_found_id=this.io.fnf[0];
this.file_not_found_pc=this.io.fnf[1];
}
this.bad_list=this.io.bl||[];
this.ps=this.io.ps===undefined?1:this.io.ps;
this.zones=[];
this.n_zones=this.io.zp.length;
this.rec_plan=[];
for(var _78=0;_78<this.n_zones;_78++){
this.zones[this.io.zp[_78].id]=new IOZone(this.io.zp[_78],this.rec_plan,this.io.rp,this.io.oa);
}
this.add_zone=function(_79){
var _7a={"id":_79,"rp":[["001",0,99,3]]};
this.zones[_79]=new IOZone(_7a,this.rec_plan,this.io.rp,this.io.oa);
};
};
function IOZone(_7b,_7c,_7d,_7e){
var _7f=undefined;
this.name=_7b.id;
var _80=this.name+"_zp";
if((window[_80]!==undefined)&&(typeof window[_80]=="function")){
this.zpf=_80;
}else{
if((window.io_rec_zp!==undefined)&&(typeof window.io_rec_zp=="function")){
this.zpf="io_rec_zp";
}else{
this.zpf=undefined;
}
}
this.filter_pp=(((_7b.fp!==undefined)&&(_7b.fp===0))?0:1);
this.filter_cp=(((_7b.fc!==undefined)&&(_7b.fc===0))?0:1);
if(_7b.rp.length==1){
if(_7c[_7b.rp[0][0]]===undefined){
_7c[_7b.rp[0][0]]=new IORecPlan(_7b.rp[0][0],_7d,_7e,_7b.rp[0][3]);
}
this.rec_plan=_7c[_7b.rp[0][0]];
this.ab_test_id="no ab test";
}else{
var rn=IORequest.ab_group_number;
this.rn=(rn===undefined)?0:rn;
for(var _81=0;((_81<_7b.rp.length)&&(this.rec_plan===undefined));_81++){
if(this.rn>=_7b.rp[_81][1]&&this.rn<=_7b.rp[_81][2]){
if(_7c[_7b.rp[_81][0]]===undefined){
_7c[_7b.rp[_81][0]]=new IORecPlan(_7b.rp[_81][0],_7d,_7e,_7b.rp[_81][3]);
}
this.rec_plan=_7c[_7b.rp[_81][0]];
this.ab_test_id=((_7b.rp[_81][4]!==undefined)?_7b.rp[_81][4]:"no ab test");
}
}
}
};
function IORecStep(_82,_83){
this.offer_id=_82[0];
this.target_id=_82[1];
this.offer_type=this.offer_id?_83[this.offer_id][1]:"N";
this.offer_version=this.offer_id?_83[this.offer_id][0]:0;
this.heading=(_82[3]!==undefined)?_82[3]:"";
this.to_string=function(){
return ("offer_id: "+this.offer_id+" target_id: "+this.target_id+" offer_type: "+this.offer_type+" offer_version: "+this.offer_version);
};
};
function IORecPlan(_84,_85,_86,_87){
this.rec_steps=[];
this.id=_84;
this.n_recs=_87;
for(var _88=0;_88<_85[_84].length;_88++){
this.rec_steps.push(new IORecStep(_85[_84][_88],_86));
}
};
IOState.h_productview_product=[];
IOState.productview_product="";
IOState.productview_category="";
function IOState(){
var _89=document;
var _8a="undefined";
var _8b=(IORequest.production?"~":"~");
var _8c=":";
var _8d=[];
var _8e=[];
var _8f=[];
var _90=[];
var _91=[];
var _92=[];
var _93=[];
var _94=[];
var _95=[];
var _96=-1;
var _97=["p_viewed","p_carted","p_purchased","c_viewed","c_n_views","b_viewed","b_n_views"];
var _98=["pv","pc","pp","cv","cn","bv","bn"];
var _99=_97;
var _9a=false;
var _9b=[];
if(IORequest.basket_pages!==undefined){
for(var _9c=0;_9c<IORequest.basket_pages.length;_9c++){
_9b[IORequest.basket_pages[_9c]]=1;
}
}
this.cm_get_product_from_cookie=function(_9d){
if(_8d.length!==0||(this.cm_build_all_recent_arrays()===true)){
if(_9d=="_RVP_"){
return (IORequest.recently_viewed_product);
}
if(_9d=="_RVC_"){
return (IORequest.recently_viewed_category);
}
if(_9d=="_LCP_"){
return (_92[0]||0);
}
if(_9d=="_RPP_"){
return (_93[0]||0);
}
if(_9d=="_MPC_"){
var _9e=0;
for(var _9f=1;_9f<_94.length;_9f++){
if(parseInt(_8f[_94[_9f]].n_viewed,10)>parseInt(_8f[_94[_9e]].n_viewed,10)){
_9e=_9f;
}
}
return (_94[_9e]||0);
}
if(_9d=="_MPB_"){
var _a0=0;
for(var _a1=1;_a1<_95.length;_a1++){
if(parseInt(_90[_95[_a1]].n_viewed,10)>parseInt(_90[_95[_a0]].n_viewed,10)){
_a0=_a1;
}
}
return (_95[_a0]||0);
}
if(_9d=="_DFTP_"){
return (IORequest.default_prd);
}
if(_9d=="_DFTC_"){
return (IORequest.default_cat);
}
if(_9d=="_APP_"){
return (_93);
}
if(_9d=="_ACP_"){
return (_92);
}
}
return (0);
};
cm_initialize_id=function(p_h,id){
p_h[id]=[];
p_h[id].index=-1;
p_h[id].n_bought=0;
p_h[id].n_viewed=0;
p_h[id].n_carted=0;
};
cm_build_hash_from_array=function(p_a){
var h=[];
h.max_index=0;
for(var ii=0;ii<p_a.length;ii++){
cm_initialize_id(h,p_a[ii]);
}
return h;
};
cm_id_array_from_index_array=function(_a2,_a3,_a4,_a5,_a6,_a7){
var _a8=[];
_a8.max_length=_a3;
if(_a2){
var _a9=_a2.split("~");
if(_a9.length==1){
_a9=_a2.split(",");
}
for(var ii=0;ii<_a9.length;ii++){
var _aa=_a4[_a9[ii]];
_a8.push(_aa);
if(_a6!==undefined){
var _ab=_a6.split("~");
if(_ab.length==1){
_ab=_a6.split(",");
}
if((!(_a5===undefined))&&(_ab.length>0)){
_a5[_aa][_a7]=_ab[ii];
}
}
}
if(_a8.length>_a8.max_length){
_a8.length=_a8.max_length;
}
}
return _a8;
};
cm_create_integer_array_from_id_array=function(_ac,p_h,_ad){
var _ae=[];
for(var ii=0;ii<_ac.length;ii++){
var id=_ac[ii];
if(p_h[id].index==-1){
p_h[id].index=p_h.max_index++;
}
_ae.push(p_h[id][_ad]);
}
return _ae;
};
cm_create_id_array_from_hash=function(p_h){
var _af=[];
for(var id in p_h){
if(typeof id!="function"){
_af[p_h[id].index]=id;
}
}
return _af;
};
cm_add_action=function(_b0,p_h,_b1,_b2,_b3){
var _b4;
var _b5=_b0;
if(_b1){
_b5=IORequest.hex32(IORequest.crc32_str(_b0));
IORequest.log(IORequest.log_trace,"crc of "+_b0,_b5);
}
if(_b5!==undefined){
_b4=[_b5];
_b4.max_length=_b2.max_length;
if(p_h[_b5]===undefined){
cm_initialize_id(p_h,_b5);
}
if(_b3!==undefined){
p_h[_b5][_b3]++;
}
for(var ii=0;ii<_b2.length;ii++){
if(_b2[ii]!=_b5){
_b4.push(_b2[ii]);
}
}
if(_b4.length>_b4.max_length){
_b4.length=_b4.max_length;
}
}else{
_b4=_b2;
}
return (_b4);
};
cm_remove_element_from_array=function(p_a,_b6,_b7){
var _b8=[];
if(_b7){
_b6=IORequest.hex32(IORequest.crc32_str(_b6));
}
for(var ii=0;ii<p_a.length;ii++){
if(!(_b6==p_a[ii])){
_b8.push(p_a[ii]);
}
}
return _b8;
};
this.cm_write_cookies=function(_b9){
var _ba=[cm_create_integer_array_from_id_array(_91,_8e,"index").join("~"),cm_create_integer_array_from_id_array(_92,_8e,"index").join("~"),cm_create_integer_array_from_id_array(_93,_8e,"index").join("~"),cm_create_integer_array_from_id_array(_94,_8f,"index").join("~"),cm_create_integer_array_from_id_array(_94,_8f,"n_viewed").join("~"),cm_create_integer_array_from_id_array(_95,_90,"index").join("~"),cm_create_integer_array_from_id_array(_95,_90,"n_viewed").join("~")];
if(_9a){
for(var jj=0;jj<_99.length;jj++){
_ba[jj]=_99[jj]+_8c+_ba[jj];
}
}
var cfg=_b9.join("~");
var prd=cm_create_id_array_from_hash(_8e).join(_8b);
var cat=cm_create_id_array_from_hash(_8f).join(_8b);
var brn=cm_create_id_array_from_hash(_90).join(_8b);
var cnt=_ba.join(IORequest.cookie_array_separator);
var _bb=[cfg,prd,cat,brn,cnt].join(IORequest.cookie_separator);
var rc=IORequest.set_and_check_cookie(IORequest.state_cookie,_bb,false,IORequest.vanity_suffix);
IORequest.log(IORequest.log_cookie_write,"write "+IORequest.state_cookie,IORequest.is_undefined(rc)?"permanent cookies disabled":_bb);
return (rc);
};
this.cm_build_all_recent_arrays=function(){
var _bc=[];
var _bd=[];
var _be=[];
var _bf=IORequest.find_state_cookie(IORequest.state_cookie);
if(_bf!==undefined){
var _c0=(_bf===undefined)?4:(_bf.split(IORequest.cookie_separator).length-1);
_8d=IORequest.build_array_from_cookie(0).split(",");
if(_8d.length>0){
IORequest.ab_group_number=_8d[0];
if(IORequest.ab_group_number.length>3){
_8d=IORequest.build_array_from_cookie(0).split("~");
IORequest.ab_group_number=_8d[0];
}
if(_8d.length>1){
IOConfig.version=_8d[1];
IOConfig.brand_personalization[0]=_8d[2];
IOConfig.brand_personalization[1]=_8d[3];
IOConfig.category_structure=_8d[4];
IORequest.a_max_elements[0]=_8d[5];
IORequest.a_max_elements[1]=_8d[6];
IORequest.a_max_elements[2]=_8d[7];
IORequest.a_max_elements[3]=_8d[8];
IORequest.a_max_elements[4]=_8d[9];
IORequest.a_max_elements[5]=_8d[10];
IORequest.a_max_elements[6]=_8d[11];
}
}
_bc=IORequest.build_array_from_cookie(1).split(_8b);
_8e=cm_build_hash_from_array(_bc);
_bd=IORequest.build_array_from_cookie(2).split(_8b);
_8f=cm_build_hash_from_array(_bd);
if(_c0>3){
_be=IORequest.build_array_from_cookie(3).split(_8b);
_90=cm_build_hash_from_array(_be);
}
var _c1=IORequest.build_array_from_cookie(_c0).split(IORequest.cookie_array_separator);
if(_9a&&(g_b_a_arrays[0].substring(0,2)==_99[0].substring(0,2))){
for(var ii=0;ii<_c1.length;ii++){
_c1[ii]=_c1[ii].substring(_99[ii].length+1);
}
}
_91=cm_id_array_from_index_array(_c1[0],IORequest.a_max_elements[0],_bc);
_92=cm_id_array_from_index_array(_c1[1],IORequest.a_max_elements[1],_bc);
_93=cm_id_array_from_index_array(_c1[2],IORequest.a_max_elements[2],_bc);
_94=cm_id_array_from_index_array(_c1[3],IORequest.a_max_elements[3],_bd,_8f,_c1[4],"n_viewed");
if(_c0>3){
_95=cm_id_array_from_index_array(_c1[5],IORequest.a_max_elements[5],_be,_90,_c1[6],"n_viewed");
}
if(IORequest.recently_viewed_product===undefined){
IORequest.recently_viewed_product=(_91.length===0?0:_91[0]);
}
if(IORequest.recently_viewed_category===undefined){
IORequest.recently_viewed_category=(_94.length===0?0:_94[0]);
}
if(_8d.length==1){
IORequest.rm_cookie(IORequest.state_cookie);
var cfg=[IORequest.ab_group_number,IOConfig.version,IOConfig.brand_personalization[0],IOConfig.brand_personalization[1],IOConfig.category_structure,IORequest.a_max_elements[0],IORequest.a_max_elements[1],IORequest.a_max_elements[2],IORequest.a_max_elements[3],IORequest.a_max_elements[4],IORequest.a_max_elements[5],IORequest.a_max_elements[6]];
this.cm_write_cookies(cfg);
}
return (true);
}else{
return (false);
}
};
cm_build_html_table_from_array=function(_c2,_c3,p_h,_c4){
var _c5=(_c4?2:1);
var _c6=_c3.length;
var _c7="";
var _c8=(_c5==1?"<TD COLSPAN=2>":"<TD>");
if(_c6>0&&(_c3[0]!==undefined)){
_c7="<TR><TH ROWSPAN="+_c6+">"+_c2+"</TH>"+_c8+(_c5==2?p_h[_c3[0]][_c4]+"</TD><TD>":"")+_c3[0]+"</TD></TR>";
for(var ii=1;ii<_c6;ii++){
_c7+="<TR>"+_c8+(_c5==2?p_h[_c3[ii]][_c4]+"</TD><TD>":"")+_c3[ii]+"</TD></TR>";
}
}else{
_c7="<TR><TH ROWSPAN=1>"+_c2+"</TH>"+"<TD COLSPAN=2>"+"No "+_c2+"</TD></TR>";
}
return (_c7);
};
cm_get_products_in_cart=function(){
if(this.cm_build_all_recent_arrays()===true){
return (_92);
}else{
return ([]);
}
};
this.cm_format_cookie_arrays=function(_c9){
return ("<H3>Obsolete</H3>");
};
this.cm_ted_io=function(_ca){
var _cb=false;
if(this.cm_build_all_recent_arrays()===true){
if(_ca.i_offer!==undefined){
if(_ca.i_offer=="epr_category"){
if(_io_config.fcpl=="Y"){
_ca.cg=_ca.cg.replace(/>.*$/,"");
_ca.cg=_ca.cg.replace(/\s+$/,"");
}
if(_ca.cg.length<=IORequest.max_cat_length){
_94=cm_add_action(_ca.cg,_8f,IORequest.encrypt_cats,_94,"n_viewed");
_cb=true;
}
}
if(_ca.i_offer=="brand"){
IORequest.log(IORequest.log_trace,"adding "+_ca.brn,"g_a_brn_viewed array");
_95=cm_add_action(_ca.brn,_90,1,_95,"n_viewed");
_cb=true;
}
}else{
if(_ca.tid==1||_ca.tid==6||_ca.tid==5){
IORequest.log(IORequest.log_cookie_write,"initial "+IORequest.state_cookie,IORequest.find_state_cookie());
}
if(5==_ca.tid){
var _cc=""+_ca.pr.toUpperCase();
var _cd=""+_ca.cg;
if(_cc.length<=IORequest.max_prd_length){
_91=cm_add_action(_cc,_8e,IORequest.encrypt_prds,_91);
_cb=true;
}
if((IOConfig.category_structure=="S")&&(_cd.length<=IORequest.max_cat_length)){
_94=cm_add_action(_cd,_8f,IORequest.encrypt_cats,_94,"n_viewed");
_cb=true;
}
IOState.b_product_view=true;
IOState.h_productview_product[_cc]=1;
IOState.productview_product=_cc;
IOState.productview_category=_cd;
}
if((4==_ca.tid)&&(5==_ca.at)&&(_ca.pr.length<=IORequest.max_prd_length)){
_92=cm_add_action(_ca.pr.toUpperCase(),_8e,IORequest.encrypt_prds,_92);
_cb=true;
}
if(4==_ca.tid&&9==_ca.at){
if(_ca.pr.length<=IORequest.max_prd_length){
_93=cm_add_action(_ca.pr.toUpperCase(),_8e,IORequest.encrypt_prds,_93);
_cb=true;
}
}
}
if(_cb){
this.cm_write_cookies(_8d);
}
}
};
};
