var pk_works_main;
var mapModalEl;
var _user_view_uuid;
var _name;
var _userList;
var plugins_init_function = new Array();//接收显示时的init方法
//krpano loadcomplete调用
function showPanoBtns(sceneCount){
if (sceneCount > 1) {
$(".vrshow_container_3_min .img_desc_container_min:eq(0)").show();
}else{
$(".vrshow_container_3_min .img_desc_container_min:eq(0)").hide();
}
$("#panoBtns").show();
}
function fullscreen(el){
//krpano.call("switch(fullscreen);");
//launchFullScreen(document.documentElement);
if($(el).hasClass('btn_fullscreen')){
launchFullScreen(document.getElementById('fullscreenid'));
var krpano = document.getElementById('krpanoSWFObject');
krpano.call("skin_showthumbs(false);");
}else{
exitFullscreen();
}
toggleFullscreenBtn(el);
}
function launchFullScreen(element) {
if(element.requestFullscreen) {
element.requestFullscreen();
} else if(element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if(element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
} else if(element.msRequestFullscreen) {
element.msRequestFullscreen();
}
}
function exitFullscreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
function toggleFullscreenBtn(el){
if($(el).hasClass("btn_fullscreen")){
$(el).removeClass("btn_fullscreen");
$(el).addClass("btn_fullscreen_off");
}else{
$(el).removeClass("btn_fullscreen_off");
$(el).addClass("btn_fullscreen");
}
}
function toggleBtns(flag){
if(flag){
$("#panoBtns").show();
}else{
$("#panoBtns").hide();
var krpano = document.getElementById('krpanoSWFObject');
krpano.call('skin_showthumbs(false);');
}
}
function showWebVR(){
var krpano = document.getElementById('krpanoSWFObject');
var webvr = krpano.get("webvr");
webvr.entervr();
}
function showthumbs(){
var krpano = document.getElementById('krpanoSWFObject');
krpano.call("skin_showthumbs();");
}
function hidePictext() {
$('#pictextModal').modal('hide');
toggleBtns(true);
}
function showPictext(title,content) {
toggleBtns(false);
//var data = $("body").data("panoData");
// $('#pictextWorkName').text('');
// $('#pictextContent').text('');
$('#pictextWorkName').text(title);
$('#pictextContent').html(imgtext_decode(content));
//$('#pictextContent').append(content);
$('#pictextModal').modal("show");
}
//krpano调用 初始化高级设置
function initAdvancedSetting(sceneName){
//initViewSetting(sceneName);
initEffectSetting(sceneName);
initHotspotSetting(sceneName);
initSandTableSetting(sceneName);
initTourGuideSetting(sceneName);
//作者信息 TODO
// initAuthourInfo(sceneName);
}
function initTourGuideSetting(sceneName){
var krpano = document.getElementById('krpanoSWFObject');
var tourGuideObj = $("body").data("panoData").tour_guide;
if(tourGuideObj.points.length > 0){
$('#pano .vrshow_tour_btn').show();
}else{
$('#pano .vrshow_tour_btn').hide();
}
}
var lsTourGuideObj = null;
function startTourGuide(){
toggleBtns(false);
lsTourGuideObj = $("body").data("panoData").tour_guide;
var krpano = document.getElementById('krpanoSWFObject');
//krpano.call('showlog(true)');
var curSceneName = krpano.get('xml.scene');
var firstPoint = lsTourGuideObj.points[0];
if(lsTourGuideObj.useStartImg){
krpano.call('show_tour_guide_alert('+lsTourGuideObj.startImgUrl+');');
}
if(this.sceneName != curSceneName){
krpano.call('loadscene('+firstPoint.sceneName+', null, MERGE);');
}
var curfov = krpano.get('view.fov');
krpano.call('lookto('+firstPoint.ath+','+firstPoint.atv+','+curfov+',smooth(720,-720,720),true,true,js(looktoCallBack('+1+')));');
}
function looktoCallBack(idx){
var krpano = document.getElementById('krpanoSWFObject');
if(idx < lsTourGuideObj.points.length){
var pointObj = lsTourGuideObj.points[idx];
var curSceneName = krpano.get('xml.scene');
var curfov = krpano.get('view.fov');
if(pointObj.sceneName != curSceneName){
krpano.call('loadscene('+pointObj.sceneName+', null, MERGE);');
krpano.call('lookto('+pointObj.ath+','+pointObj.atv+','+curfov+',smooth(720,-720,720),true,true,js(looktoCallBack('+(parseInt(idx)+1)+')));');
}else{
krpano.call('lookto('+pointObj.ath+','+pointObj.atv+','+curfov+',tween(easeInOutQuad,'+parseInt(pointObj.moveTime)+'),true,true,js(looktoCallBack('+(parseInt(idx)+1)+')));');
}
}else{
if(lsTourGuideObj.useEndImg){
krpano.call('show_tour_guide_alert('+lsTourGuideObj.endImgUrl+');');
}
toggleBtns(true);
}
}
function initSandTableSetting(sceneName){
var krpano = document.getElementById('krpanoSWFObject');
var sandTableObj = $("body").data("panoData").sand_table;
var existFlag = false;
$(sandTableObj.sandTables).each(function(idx){
if(this.sceneOpt[sceneName]){
//设置背景图片
krpano.set("layer[map].url",this.imgPath);
$.each(this.sceneOpt,function(sceneName,value){
var spotName = 'spot_'+sceneName;
addRadarSpot(spotName,value.krpLeft,value.krpTop);
});
var hlookatIncre = krpano.get('view.hlookat') - this.sceneOpt[sceneName].hlookat;
krpano.call('activatespot('+(parseFloat(this.sceneOpt[sceneName].rotate)+parseFloat(hlookatIncre))+');');
existFlag = true;
return false;
}
});
if(!existFlag){
$('.vrshow_radar_btn').hide();
krpano.set('layer[mapcontainer].visible',false);
}else{
$('.vrshow_radar_btn').show();
if(sandTableObj.isOpen){
krpano.set('layer[mapcontainer].visible',true);
}
}
}
function toggleKrpSandTable(){
var krpano = document.getElementById('krpanoSWFObject');
var isVisible = krpano.get('layer[mapcontainer].visible');
if(isVisible){
krpano.set('layer[mapcontainer].visible',false);
}else{
krpano.set('layer[mapcontainer].visible',true);
}
}
function addRadarSpot(name,x,y){
//console.log(x+','+y);
var krpano = document.getElementById('krpanoSWFObject');
krpano.call('addlayer('+name+');');
krpano.set('layer['+name+'].style','spot');
krpano.set('layer['+name+'].x',x);
krpano.set('layer['+name+'].y',y);
krpano.set('layer['+name+'].parent','radarmask');
krpano.call('layer['+name+'].loadstyle(spot);');
//krpano.set('layer['+name+'].keep','true');
//krpano.set('layer['+name+'].visible','true');
}
function initHotspotSetting(sceneName){
var krpano = document.getElementById('krpanoSWFObject');
var hotspotObj = ($("body").data("panoData").hotspot)[sceneName];
if(hotspotObj){
$.each(hotspotObj,function(key,value){
if(key == 'scene'){
$(value).each(function(idx){
krpano.call('addSceneChangeHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+this.linkedscene+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true)');
});
}else if(key == 'link'){
$(value).each(function(idx){
krpano.call('addLinkHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.link+','+this.isShowSpotName+')');
});
}else if(key == 'image'){
$(value).each(function(idx){
krpano.call('addImgHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.galleryName+','+this.isShowSpotName+')');
});
}else if(key == 'text'){
$(value).each(function(idx){
krpano.call('addWordHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+html_encode(this.wordContent)+','+this.isShowSpotName+')');
});
}else if(key == 'voice'){
$(value).each(function(idx){
krpano.call('addVoiceHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.musicSrc+','+this.isShowSpotName+')');
});
}else if(key == 'around'){
$(value).each(function(idx){
krpano.call('addAroundHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.aroundPath+','+this.fileCount+','+this.isShowSpotName+')');
});
}else if(key == 'imgtext'){
$(value).each(function(idx){
krpano.call('addImgTextHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+imgtext_encode(this.imgtext_wordContent)+','+this.isShowSpotName+')');
});
}else if(key == 'obj'){
$(value).each(function(idx){
krpano.call('addObjHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.objid+','+this.isShowSpotName+')');
});
}else if(key == 'video'){
$(value).each(function(idx){
krpano.call('addVideoHotSpot("'+this.imgPath+'","'+ (this.name) +'",'+html_encode(this.hotspotTitle)+','+(this.ath)+','+(this.atv)+','+this.isDynamic+',false,true,'+this.location+','+this.isShowSpotName+')');
});
}
});
}
}
function initEffectSetting(sceneName){
var krpano = document.getElementById('krpanoSWFObject');
var effectObj = null;
var effectData = $("body").data("panoData").special_effects;
$(effectData.effectSettings).each(function(idx){
if(this.sceneName == sceneName){
effectObj = this;
return false;
}
});
if(effectObj){
if(effectObj.isOpen){
if(effectObj.effectType == 'sunshine'){
//krpano.set('lensflares[obj].item[lensitemobj].scene',sceneName);
//krpano.set('lensflares[obj].item[lensitemobj].ath',effectObj.ath);
//krpano.set('lensflares[obj].item[lensitemobj].atv',effectObj.atv);
krpano.call('addLensflares('+effectObj.ath+','+effectObj.atv+')');
}else{
krpano.call('addEffect("'+effectObj.effectType+'","'+effectObj.effectImgPath+'")');
}
}
}
}
function littlePlaneOpen(sceneName){
var krpano = document.getElementById('krpanoSWFObject');
var lookatObj = null;
var angleData = $("body").data("panoData").angle_of_view;
$(angleData.viewSettings).each(function(idx){
if(this.sceneName == sceneName){
lookatObj = this;
return false;
}
});
if(lookatObj){
krpano.set('view.vlookat',lookatObj.vlookat);
krpano.set('view.hlookat',lookatObj.hlookat);
krpano.set('view.fov',lookatObj.fov);
krpano.set('view.fovmax',lookatObj.fovmax);
if(lookatObj.hlookatmin){
krpano.set('view.hlookatmin',lookatObj.hlookatmin);
}
if(lookatObj.hlookatmax){
krpano.set('view.hlookatmax',lookatObj.hlookatmax);
}
krpano.call('skin_setup_littleplanetintro('+lookatObj.fovmin+','+(-1*lookatObj.vlookatmax)+','+(-1*lookatObj.vlookatmin)+','+(lookatObj.keepView ? "off" : "0.0")+');');
}else{
krpano.call('skin_setup_littleplanetintro(5,-90,90,"0.0");');
}
}
//场景载入时加载视角设置
function initViewSetting(sceneName){
var krpano = document.getElementById('krpanoSWFObject');
var lookatObj = null;
var angleData = $("body").data("panoData").angle_of_view;
$(angleData.viewSettings).each(function(idx){
if(this.sceneName == sceneName){
lookatObj = this;
return false;
}
});
if(lookatObj){
krpano.set('view.vlookat',lookatObj.vlookat);
krpano.set('view.hlookat',lookatObj.hlookat);
krpano.set('view.fov',lookatObj.fov);
krpano.set('view.fovmin',lookatObj.fovmin);
krpano.set('view.fovmax',lookatObj.fovmax);
krpano.set('view.vlookatmin',-1*lookatObj.vlookatmax);
krpano.set('view.vlookatmax',-1*lookatObj.vlookatmin);
krpano.set('autorotate.horizon',lookatObj.keepView ? "off" : "0.0");
if(lookatObj.hlookatmin){
krpano.set('view.hlookatmin',lookatObj.hlookatmin);
}
if(lookatObj.hlookatmax){
krpano.set('view.hlookatmax',lookatObj.hlookatmax);
}
}
}
function loadGallery(){
var krpano = document.getElementById('krpanoSWFObject');
var hotspotObj = $("body").data("panoData").hotspot;
//var xmlStr = '';
$.each(hotspotObj,function(sceneName,value){
if(value){
$(value.image).each(function(idx){
var xmlStr = '';
$(this.imgs).each(function(idx){
xmlStr += '
';
});
xmlStr += '';
krpano.call('loadxml('+xmlStr+');');
});
}
});
}
function reloadGallery(gallery){
var krpano = document.getElementById('krpanoSWFObject');
var ua = window.navigator.userAgent.toLowerCase();
if(typeof(wx)!='undefined' && ua.match(/MicroMessenger/i) == 'micromessenger'){
//整合gallery的图片到数组
var urls = new Array();
for(var i=0; i');
$("body").data("panoData",data);
pk_works_main = data.pk_works_main;
var settings = {};
settings["events[skin_events].onloadcomplete"] = "skin_showloading(false);";
settings["onstart"] = '';
//是否开始时弹出场景选择
if (data.scenechoose=='1') {
settings["events[skin_events].onloadcomplete"] += "open_show_scene_thumb();";
}
//统计人气
if(data.browsing_num!='0'){
$("#user_viewNum").text(parseInt(data.browsing_num)+1);
}else{
$("#user_viewNum").text("1");
}
//启动画面
var loadingObj = data.loading_img;
if (loadingObj && loadingObj.useLoading) {
settings["onstart"] += "showloadingimg('" + loadingObj.loadingImgPathWebsite + "','" + loadingObj.loadingImgPathMobile + "');";
}
for(var i=0 ; i0) {
$(".vrshow_container_3_min .img_desc_container_min:eq(0) img").attr('src',data.scene_group.sceneGroups[0].imgPath);
}
settings['skin_settings.littleplanetintro'] = data.littleplanet=="1" ? true : false;
settings['autorotate.enabled'] = data.autorotate=="1" ? true : false;
embedpano({
swf: "tour.swf",
xml: "tour.xml",
target: "pano",
html5:'prefer',
//flash:'only',
wmode:'opaque-flash',
mobilescale:0.7,
vars: settings
});
}
function html_encode(str)
{
var s = "";
if (str.length == 0) return "";
s = str.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
s = s.replace(/\(/g, "(");
s = s.replace(/\)/g, ")");
s = s.replace(/,/g, ",");
return s;
}
function imgtext_encode(str){
var s = "";
if (str.length == 0) return "";
s = str.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
s = s.replace(/\(/g, "(");
s = s.replace(/\)/g, ")");
s = s.replace(/\,/g,"%2C");
return s;
}
function imgtext_decode(str){
var s = "";
if (str.length == 0) return "";
s = str.replace(/"/g, "\"");
s = s.replace(/%2C/g,",");
return s;
}
function showFullscreenBtn(){
$(".btn_fullscreen").show();
}
function radarRotate(sceneName,hlookat){
}
function openSpeechVoiceBtn(){
var voiceOff = $('.btn_music_off');
voiceOff.removeClass('btn_music_off');
voiceOff.addClass('btn_music');
}
var player ;
function playvideo(url){
var location = window.location.href;
url = location.substring(0,location.lastIndexOf("\/")+1)+url;
player = new prismplayer({
id: "J_prismPlayer", // 容器id
source:url,
autoplay: true, // 自动播放
width: "100%", // 播放器宽度
height: "400px" // 播放器高度
});
$("#video_player_modal").modal('show');
}
function close_video_player(){
player.pause();
$("#video_player_modal").modal('hide');
}