(function(A){A.vail_mntwebcams={id:"webcamView",view:A("#webcamView"),noCam:A("#webcamNone"),all:A("#allresorts"),resortData:{vail:{id:1,name:"Vail"},beavercreek:{id:2,name:"Beaver Creek"},breckenridge:{id:4,name:"Breckenridge"},keystone:{id:3,name:"Keystone"},heavenly:{id:50,name:"Heavenly"}},activeResorts:[],webcamFeed:{},feedStatus:{loaded:false,error:false},tabDataQue:null,setViewState:function(B){A.vail_mntwebcams.view.hide();
A.vail_mntwebcams.all.hide();
A.vail_mntwebcams.noCam.hide();
switch(B){case"all":A.vail_mntwebcams.all.show();
break;
case"resort":A.vail_mntwebcams.view.show();
break;
case"nocam":A.vail_mntwebcams.noCam.show();
break
}},unloadTabQue:function(){if(A.vail_mntwebcams.feedStatus.error){return 
}var B=A.vail_mntwebcams.tabDataQue;
A(".vailTabs li").removeClass("on");
A(".vailTabs li."+B.id).addClass("on");
A.vail_mntwebcams.switchTab(null,B);
A.vail_mntwebcams.tabDataQue=null
},switchTab:function(C,B){if(!A.vail_mntwebcams.feedStatus.loaded){A.vail_mntwebcams.tabDataQue=B;
A.vail_mntwebcams.all.show();
A(".vailTabs li").removeClass("on");
A(".vailTabs li.allresorts").addClass("on");
return 
}if(A.vail_mntwebcams.resortData[B.id]){A.vail_mntwebcams.updateDisplay(B.id)
}else{A.vail_mntwebcams.setViewState("all")
}},updateDisplay:function(B){if(A.inArray(B,A.vail_mntwebcams.activeResorts)!=-1){A("#webcamView h2").text(A.vail_mntwebcams.resortData[B].name+" Web Cams");
A.vail_mntwebcams.resetDisplay();
A.vail_mntwebcams.renderThumbs(B);
if(B=="breckenridge"){if(A(".thumbs li.Peak9").data("cam")){A.vail_mntwebcams.displayCam(A(".thumbs li.Peak9"))
}else{A.vail_mntwebcams.displayCam(A(".thumbs li:first"))
}}else{A.vail_mntwebcams.displayCam(A(".thumbs li:first"))
}A.vail_mntwebcams.setViewState("resort")
}else{A.vail_mntwebcams.setViewState("nocam")
}},resetDisplay:function(){A(".thumbs").text("")
},renderThumbs:function(D){var B=A.vail_mntwebcams.webcamFeed.find("resort[id="+A.vail_mntwebcams.resortData[D].id+"] mountaincamera[status=Y]");
var C=A(".thumbs");
var E=1;
B.each(function(){var F="";
if(E==4){F="last";
E=1
}else{E++
}var G=A(this);
A("<li></li>").data("cam",G).addClass(F).addClass(G.attr("name").replace(/[" "]/g,"")).click(function(){A.vail_mntwebcams.displayCam(A(this))
}).append(A('<div class="media"><img src="'+G.attr("imageurl")+'" alt="'+G.attr("name")+'" title="'+G.attr("name")+'" /></div>')).append(A('<a href="'+G.attr("imageurl")+'">'+G.attr("name")+"</a>").click(function(){A.vail_mntwebcams.displayCam(A(this).parent("li"));
return false
})).appendTo(C)
})
},displayCam:function(C){var D=C.data("cam");
A("#webcamView .display .media img").attr("src",D.attr("imageurl"));
A("#webcamView .display .location img").attr("src",A.vail_mntwebcams.getLocationImageUrl(D.attr("id")));
A("#webcamView .display h3").text(D.attr("name"));
A("#webcamView .display .data p").html(D.attr("description"));
var B=A(".share");
B.find("input.url").attr("value",D.attr("imageurl"));
B.find("input.title").attr("value",D.attr("name"));
B.find("input.description").attr("value",D.attr("description").replace("&lt;br /&gt;"," ").replace("<br />"," "))
},getLocationImageUrl:function(B){var C=A("#webcamView .location img").get(0).src;
return C.substr(0,C.lastIndexOf("cam"))+"cam_"+B+".png"
},feedSuccessHandler:function(C,D){var B=A.vail_mntwebcams.webcamFeed=A(C);
A.each(A.vail_mntwebcams.resortData,function(F,H){var E=B.find("resort[id="+H.id+"] mountaincamera[status=Y]");
if(H.id=="4"){E=A.vail_mntwebcams.webcamFeed.find("resort[id=4] mountaincamera[id=50]");
if(E.attr("status")=="N"){E=A.vail_mntwebcams.webcamFeed.find("resort[id=4] mountaincamera[status=Y]")
}}var G=A(E.get(A.vail_mntwebcams.randomInRange(0,E.length-1)));
A.vail_mntwebcams.updateResortPreview(F,{imageurl:G.attr("imageurl"),name:G.attr("name")});
if(G.attr("imageurl")){A.vail_mntwebcams.activeResorts.push(F)
}});
A.vail_mntwebcams.all.find(".loading").hide();
A.vail_mntwebcams.all.find(".set1,.set2").removeClass("hide")
},updateResortPreview:function(E,C){var B=A.vail_mntwebcams.all.find(".resort."+E);
var D=B.find(".media");
if(C.imageurl){D.find("img").remove();
D.append('<img src="'+C.imageurl+'" />');
B.find(".location").text(C.name);
B.find(".btn").show();
A(".vailTabs li."+E).show()
}else{B.find(".btn").hide()
}},feedErrorHandler:function(B,E,C){A.vail_mntwebcams.feedStatus.error=true;
var D="Loading Feed: ("+B.status+") "+E;
A.vail_mntwebcams.all.find(".loading").hide();
A(".vailTabs li:not(.allresorts)").removeClass("last").hide();
A(".vailTabs li:visible").addClass("last");
A.vail_mntwebcams.all.find(".error").removeClass("hide").attr("error",D);
VAIL.errors.push(D);
if(console){console.log(D)
}A.vail_tabs.disabled=true
},randomInRange:function(C,B){return C+Math.floor(Math.random()*(B-C+1))
},ISOtoDate:function(B){B=B.split("T");
B=B[0].split("-").concat(B[1]?B[1].split(":"):[0,0,0]);
return new Date(B[0],B[1],B[2],B[3],B[4],B[5])
}};
A(function(){A.ajax({cache:false,dataType:"xml",timeout:10000,url:VAIL.proxy,data:{url:VAIL.feeds.vri,type:"application/xml,text/xml"},success:A.vail_mntwebcams.feedSuccessHandler,error:A.vail_mntwebcams.feedErrorHandler,complete:function(B,C){A.vail_mntwebcams.feedStatus.loaded=true;
A.vail_mntwebcams.unloadTabQue()
}})
});
A("div.vailTabs").bind("vail:tabs:activated",A.vail_mntwebcams.switchTab)
})(jQuery);