function pano2vrSkin(player,skinlayer) {
	var me=this;
	var flag=false;
	this.player=player;
	this.player.skinObj=this;
	this.divSkin=(skinlayer)?skinlayer:player.divSkin;
	this.elementMouseDown=new Array();
	this.elementMouseOver=new Array();
	this.updateSize=function(startElement) {
		var stack=new Array();
		stack.push(startElement);
		while(stack.length>0) {
			e=stack.pop();
			if (e.ggUpdatePosition) {
				e.ggUpdatePosition();
			}
			if (e.hasChildNodes()) {
				for(i=0;i<e.childNodes.length;i++) {
					stack.push(e.childNodes[i]);
				}
			}
		}
	}
	
	this.findElements=function(id) {
		var r=new Array();
		var stack=new Array();
		stack.push(me.divSkin);
		while(stack.length>0) {
			e=stack.pop();
			if (e.ggId==id) {
				r.push(e);
			}
			if (e.hasChildNodes()) {
				for(i=0;i<e.childNodes.length;i++) {
					stack.push(e.childNodes[i]);
				}
			}
		}
		return r;
	}
	
	this.addSkin=function() {
		this.loading_image=document.createElement('div');
		this.loading_image.ggId='loading image'
		this.loading_image.ggUpdatePosition=function() {
			this.style.webkitTransition='none';
			w=this.parentNode.offsetWidth;
			this.style.left=(-112 + w/2) + 'px';
			h=this.parentNode.offsetHeight;
			this.style.top=(-32 + h/2) + 'px';
		}
		hs ='position:absolute;';
		hs+='left: -112px;';
		hs+='top:  -32px;';
		hs+='width: 224px;';
		hs+='height: 64px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		this.loading_image.setAttribute('style',hs);
		this.loading_image__img=document.createElement('img');
		this.loading_image__img.setAttribute('src','shibuyacrosswalknight_images/loading_image.png');
		this.loading_image__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.loading_image__img);
		this.loading_image.appendChild(this.loading_image__img);
		this.loading_text=document.createElement('div');
		this.loading_text.ggId='loading text'
		hs ='position:absolute;';
		hs+='left: 12px;';
		hs+='top:  14px;';
		hs+='width: 198px;';
		hs+='height: 20px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='border: 0px solid #000000;';
		hs+='color: #000000;';
		hs+='text-align: left;';
		hs+='white-space: nowrap;';
		hs+='padding: 0px 1px 0px 1px;'
		hs+='overflow: hidden;';
		this.loading_text.setAttribute('style',hs);
		this.loading_text.ggUpdateText=function() {
			this.innerHTML="<b>Loading... "+(me.player.getPercentLoaded()*100.0).toFixed(0)+"%<\/b>";
		}
		this.loading_text.ggUpdateText();
		this.loading_image.appendChild(this.loading_text);
		this.loading_bar=document.createElement('div');
		this.loading_bar.ggId='loading bar'
		hs ='position:absolute;';
		hs+='left: 11px;';
		hs+='top:  39px;';
		hs+='width: 198px;';
		hs+='height: 10px;';
		hs+='-webkit-transform-origin: 0% 50%;';
		hs+='visibility: inherit;';
		hs+='border: 2px solid #000000;';
		hs+='background-color: #4f4f4f;';
		this.loading_bar.setAttribute('style',hs);
		this.loading_image.appendChild(this.loading_bar);
		this.loading_close0=document.createElement('div');
		this.loading_close0.ggId='loading close'
		hs ='position:absolute;';
		hs+='left: 200px;';
		hs+='top:  1px;';
		hs+='width: 24px;';
		hs+='height: 24px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		this.loading_close0.setAttribute('style',hs);
		this.loading_close0__img=document.createElement('img');
		this.loading_close0__img.setAttribute('src','shibuyacrosswalknight_images/loading_close0.png');
		this.loading_close0__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.loading_close0__img);
		this.loading_close0.appendChild(this.loading_close0__img);
		this.loading_close0.onclick=function () {
			me.loading_image.style.webkitTransition='none';
			me.loading_image.style.visibility='hidden';
		}
		this.loading_image.appendChild(this.loading_close0);
		this.divSkin.appendChild(this.loading_image);
		this.toolbar=document.createElement('div');
		this.toolbar.ggId='toolbar'
		this.toolbar.ggUpdatePosition=function() {
			this.style.webkitTransition='none';
			w=this.parentNode.offsetWidth;
			this.style.left=(-138 + w/2) + 'px';
			h=this.parentNode.offsetHeight;
			this.style.top=(-38 + h) + 'px';
		}
		hs ='position:absolute;';
		hs+='left: -138px;';
		hs+='top:  -38px;';
		hs+='width: 277px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 100%;';
		hs+='-webkit-transform: rotate(0deg) scale(0.5,0.5);';
		hs+='opacity: 0.5;';
		hs+='visibility: inherit;';
		this.toolbar.setAttribute('style',hs);
		this.toolbar.onmouseover=function () {
			if (me.player.transitionsDisabled) {
				me.toolbar.style.webkitTransition='none';
			} else {
				me.toolbar.style.webkitTransition='all 500ms ease-out 0ms';
			}
			me.toolbar.style.webkitTransform='scale(1,1)';
			if (me.player.transitionsDisabled) {
				me.toolbar.style.webkitTransition='none';
			} else {
				me.toolbar.style.webkitTransition='all 500ms ease-out 0ms';
			}
			me.toolbar.style.opacity='1';
		}
		this.toolbar.onmouseout=function () {
			if (me.player.transitionsDisabled) {
				me.toolbar.style.webkitTransition='none';
			} else {
				me.toolbar.style.webkitTransition='all 500ms ease-out 0ms';
			}
			me.toolbar.style.webkitTransform='scale(0.5,0.5)';
			if (me.player.transitionsDisabled) {
				me.toolbar.style.webkitTransition='none';
			} else {
				me.toolbar.style.webkitTransition='all 500ms ease-out 0ms';
			}
			me.toolbar.style.opacity='0.5';
		}
		this.left=document.createElement('div');
		this.left.ggId='left'
		hs ='position:absolute;';
		hs+='left: 0px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.left.setAttribute('style',hs);
		this.left__img=document.createElement('img');
		this.left__img.setAttribute('src','shibuyacrosswalknight_images/left.png');
		this.left__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.left__img);
		this.left.appendChild(this.left__img);
		this.left.onmouseover=function () {
			me.left__img.src='shibuyacrosswalknight_images/lefto.png';
		}
		this.left.onmouseout=function () {
			me.left__img.src='shibuyacrosswalknight_images/left.png';
			me.elementMouseDown['left']=false;
		}
		this.left.onmousedown=function () {
			me.elementMouseDown['left']=true;
		}
		this.left.onmouseup=function () {
			me.elementMouseDown['left']=false;
		}
		this.toolbar.appendChild(this.left);
		this.right=document.createElement('div');
		this.right.ggId='right'
		hs ='position:absolute;';
		hs+='left: 35px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.right.setAttribute('style',hs);
		this.right__img=document.createElement('img');
		this.right__img.setAttribute('src','shibuyacrosswalknight_images/right.png');
		this.right__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.right__img);
		this.right.appendChild(this.right__img);
		this.right.onmouseover=function () {
			me.right__img.src='shibuyacrosswalknight_images/righto.png';
		}
		this.right.onmouseout=function () {
			me.right__img.src='shibuyacrosswalknight_images/right.png';
			me.elementMouseDown['right']=false;
		}
		this.right.onmousedown=function () {
			me.elementMouseDown['right']=true;
		}
		this.right.onmouseup=function () {
			me.elementMouseDown['right']=false;
		}
		this.toolbar.appendChild(this.right);
		this.up=document.createElement('div');
		this.up.ggId='up'
		hs ='position:absolute;';
		hs+='left: 70px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.up.setAttribute('style',hs);
		this.up__img=document.createElement('img');
		this.up__img.setAttribute('src','shibuyacrosswalknight_images/up.png');
		this.up__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.up__img);
		this.up.appendChild(this.up__img);
		this.up.onmouseover=function () {
			me.up__img.src='shibuyacrosswalknight_images/upo.png';
		}
		this.up.onmouseout=function () {
			me.up__img.src='shibuyacrosswalknight_images/up.png';
			me.elementMouseDown['up']=false;
		}
		this.up.onmousedown=function () {
			me.elementMouseDown['up']=true;
		}
		this.up.onmouseup=function () {
			me.elementMouseDown['up']=false;
		}
		this.toolbar.appendChild(this.up);
		this.down=document.createElement('div');
		this.down.ggId='down'
		hs ='position:absolute;';
		hs+='left: 105px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.down.setAttribute('style',hs);
		this.down__img=document.createElement('img');
		this.down__img.setAttribute('src','shibuyacrosswalknight_images/down.png');
		this.down__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.down__img);
		this.down.appendChild(this.down__img);
		this.down.onmouseover=function () {
			me.down__img.src='shibuyacrosswalknight_images/downo.png';
		}
		this.down.onmouseout=function () {
			me.down__img.src='shibuyacrosswalknight_images/down.png';
			me.elementMouseDown['down']=false;
		}
		this.down.onmousedown=function () {
			me.elementMouseDown['down']=true;
		}
		this.down.onmouseup=function () {
			me.elementMouseDown['down']=false;
		}
		this.toolbar.appendChild(this.down);
		this.zoom_in=document.createElement('div');
		this.zoom_in.ggId='zoom in'
		hs ='position:absolute;';
		hs+='left: 140px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.zoom_in.setAttribute('style',hs);
		this.zoom_in__img=document.createElement('img');
		this.zoom_in__img.setAttribute('src','shibuyacrosswalknight_images/zoom_in.png');
		this.zoom_in__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.zoom_in__img);
		this.zoom_in.appendChild(this.zoom_in__img);
		this.zoom_in.onmouseover=function () {
			me.zoom_in__img.src='shibuyacrosswalknight_images/zoom_ino.png';
		}
		this.zoom_in.onmouseout=function () {
			me.zoom_in__img.src='shibuyacrosswalknight_images/zoom_in.png';
			me.elementMouseDown['zoom_in']=false;
		}
		this.zoom_in.onmousedown=function () {
			me.elementMouseDown['zoom_in']=true;
		}
		this.zoom_in.onmouseup=function () {
			me.elementMouseDown['zoom_in']=false;
		}
		this.toolbar.appendChild(this.zoom_in);
		this.zoom_out=document.createElement('div');
		this.zoom_out.ggId='zoom out'
		hs ='position:absolute;';
		hs+='left: 175px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.zoom_out.setAttribute('style',hs);
		this.zoom_out__img=document.createElement('img');
		this.zoom_out__img.setAttribute('src','shibuyacrosswalknight_images/zoom_out.png');
		this.zoom_out__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.zoom_out__img);
		this.zoom_out.appendChild(this.zoom_out__img);
		this.zoom_out.onmouseover=function () {
			me.zoom_out__img.src='shibuyacrosswalknight_images/zoom_outo.png';
		}
		this.zoom_out.onmouseout=function () {
			me.zoom_out__img.src='shibuyacrosswalknight_images/zoom_out.png';
			me.elementMouseDown['zoom_out']=false;
		}
		this.zoom_out.onmousedown=function () {
			me.elementMouseDown['zoom_out']=true;
		}
		this.zoom_out.onmouseup=function () {
			me.elementMouseDown['zoom_out']=false;
		}
		this.toolbar.appendChild(this.zoom_out);
		this.auto_rotate=document.createElement('div');
		this.auto_rotate.ggId='auto rotate'
		hs ='position:absolute;';
		hs+='left: 210px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.auto_rotate.setAttribute('style',hs);
		this.auto_rotate__img=document.createElement('img');
		this.auto_rotate__img.setAttribute('src','shibuyacrosswalknight_images/auto_rotate.png');
		this.auto_rotate__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.auto_rotate__img);
		this.auto_rotate.appendChild(this.auto_rotate__img);
		this.auto_rotate.onclick=function () {
			me.player.toggleAutorotate();
		}
		this.auto_rotate.onmouseover=function () {
			me.auto_rotate__img.src='shibuyacrosswalknight_images/auto_rotateo.png';
		}
		this.auto_rotate.onmouseout=function () {
			me.auto_rotate__img.src='shibuyacrosswalknight_images/auto_rotate.png';
		}
		this.toolbar.appendChild(this.auto_rotate);
		this.fullscreen=document.createElement('div');
		this.fullscreen.ggId='fullscreen'
		hs ='position:absolute;';
		hs+='left: 245px;';
		hs+='top:  0px;';
		hs+='width: 32px;';
		hs+='height: 32px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='cursor: pointer;';
		this.fullscreen.setAttribute('style',hs);
		this.fullscreen__img=document.createElement('img');
		this.fullscreen__img.setAttribute('src','shibuyacrosswalknight_images/fullscreen.png');
		this.fullscreen__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.fullscreen__img);
		this.fullscreen.appendChild(this.fullscreen__img);
		this.fullscreen.onclick=function () {
			me.player.toggleFullscreen();
		}
		this.fullscreen.onmouseover=function () {
			me.fullscreen__img.src='shibuyacrosswalknight_images/fullscreeno.png';
		}
		this.fullscreen.onmouseout=function () {
			me.fullscreen__img.src='shibuyacrosswalknight_images/fullscreen.png';
		}
		this.toolbar.appendChild(this.fullscreen);
		this.divSkin.appendChild(this.toolbar);
		this.click_and_drag=document.createElement('div');
		this.click_and_drag.ggId='click and drag'
		this.click_and_drag.ggUpdatePosition=function() {
			this.style.webkitTransition='none';
			w=this.parentNode.offsetWidth;
			this.style.left=(-112 + w/2) + 'px';
			h=this.parentNode.offsetHeight;
			this.style.top=(34 + h/2) + 'px';
		}
		hs ='position:absolute;';
		hs+='left: -112px;';
		hs+='top:  34px;';
		hs+='width: 224px;';
		hs+='height: 64px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		this.click_and_drag.setAttribute('style',hs);
		this.click_and_drag__img=document.createElement('img');
		this.click_and_drag__img.setAttribute('src','shibuyacrosswalknight_images/click_and_drag.png');
		this.click_and_drag__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.click_and_drag__img);
		this.click_and_drag.appendChild(this.click_and_drag__img);
		this.click_and_drag.onclick=function () {
			me.click_and_drag.style.webkitTransition='none';
			me.click_and_drag.style.visibility='hidden';
		}
		this.click_and_drag_text_1=document.createElement('div');
		this.click_and_drag_text_1.ggId='click and drag text 1'
		hs ='position:absolute;';
		hs+='left: 12px;';
		hs+='top:  14px;';
		hs+='width: 198px;';
		hs+='height: 20px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='border: 0px solid #000000;';
		hs+='color: #000000;';
		hs+='text-align: center;';
		hs+='white-space: nowrap;';
		hs+='padding: 0px 1px 0px 1px;'
		hs+='overflow: hidden;';
		this.click_and_drag_text_1.setAttribute('style',hs);
		this.click_and_drag_text_1.innerHTML="<b>Click and drag<\/b>";
		this.click_and_drag.appendChild(this.click_and_drag_text_1);
		this.loading_close=document.createElement('div');
		this.loading_close.ggId='loading close'
		hs ='position:absolute;';
		hs+='left: 200px;';
		hs+='top:  1px;';
		hs+='width: 24px;';
		hs+='height: 24px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		this.loading_close.setAttribute('style',hs);
		this.loading_close__img=document.createElement('img');
		this.loading_close__img.setAttribute('src','shibuyacrosswalknight_images/loading_close.png');
		this.loading_close__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.loading_close__img);
		this.loading_close.appendChild(this.loading_close__img);
		this.loading_close.onclick=function () {
			me.click_and_drag.style.webkitTransition='none';
			me.click_and_drag.style.visibility='hidden';
		}
		this.click_and_drag.appendChild(this.loading_close);
		this.click_and_drag_text_2=document.createElement('div');
		this.click_and_drag_text_2.ggId='click and drag text 2'
		hs ='position:absolute;';
		hs+='left: 13px;';
		hs+='top:  34px;';
		hs+='width: 198px;';
		hs+='height: 20px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		hs+='border: 0px solid #000000;';
		hs+='color: #000000;';
		hs+='text-align: center;';
		hs+='white-space: nowrap;';
		hs+='padding: 0px 1px 0px 1px;'
		hs+='overflow: hidden;';
		this.click_and_drag_text_2.setAttribute('style',hs);
		this.click_and_drag_text_2.innerHTML="<b>or use controls to move<\/b>";
		this.click_and_drag.appendChild(this.click_and_drag_text_2);
		this.divSkin.appendChild(this.click_and_drag);
		this.compass_bezel=document.createElement('div');
		this.compass_bezel.ggId='compass bezel'
		hs ='position:absolute;';
		hs+='left: 10px;';
		hs+='top:  10px;';
		hs+='width: 75px;';
		hs+='height: 75px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		this.compass_bezel.setAttribute('style',hs);
		this.compass_bezel__img=document.createElement('img');
		this.compass_bezel__img.setAttribute('src','shibuyacrosswalknight_images/compass_bezel.png');
		this.compass_bezel__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.compass_bezel__img);
		this.compass_bezel.appendChild(this.compass_bezel__img);
		this.divSkin.appendChild(this.compass_bezel);
		this.compass_pointer=document.createElement('div');
		this.compass_pointer.ggId='compass pointer'
		hs ='position:absolute;';
		hs+='left: 10px;';
		hs+='top:  10px;';
		hs+='width: 75px;';
		hs+='height: 75px;';
		hs+='-webkit-transform-origin: 50% 50%;';
		hs+='visibility: inherit;';
		this.compass_pointer.setAttribute('style',hs);
		this.compass_pointer__img=document.createElement('img');
		this.compass_pointer__img.setAttribute('src','shibuyacrosswalknight_images/compass_pointer.png');
		this.compass_pointer__img.setAttribute('style','position: absolute;top: 0px;left: 0px;');
		me.player.checkLoaded.push(this.compass_pointer__img);
		this.compass_pointer.appendChild(this.compass_pointer__img);
		this.divSkin.appendChild(this.compass_pointer);
		this.divSkin.ggUpdateSize=function(w,h) {
			me.updateSize(me.divSkin);
		}
		this.divSkin.ggLoaded=function() {
			me.loading_image.style.webkitTransition='none';
			me.loading_image.style.visibility='hidden';
			me.click_and_drag.style.webkitTransition='none';
			me.click_and_drag.style.visibility='hidden';
		}
		this.divSkin.ggReLoaded=function() {
		}
		this.divSkin.ggEnterFullscreen=function() {
		}
		this.divSkin.ggExitFullscreen=function() {
		}
		this.skinTimerEvent();
	};
	this.hotspotProxyClick=function(id) {
	}
	this.hotspotProxyOver=function(id) {
	}
	this.hotspotProxyOut=function(id) {
	}
	this.skinTimerEvent=function() {
		setTimeout(function() { me.skinTimerEvent(); }, 10);
		this.loading_text.ggUpdateText();
		var hs='';
		if (me.loading_bar.ggTransform) {
			hs+=me.loading_bar.ggTransform + ' ';
		}
		hs+='scale(' + (1 * me.player.getPercentLoaded() + 0) + ',1.0) ';
		me.loading_bar.style.webkitTransform=hs;
		if (me.elementMouseDown['left']) {
			me.player.changePan(-1);
		}
		if (me.elementMouseDown['right']) {
			me.player.changePan(1);
		}
		if (me.elementMouseDown['up']) {
			me.player.changeTilt(1);
		}
		if (me.elementMouseDown['down']) {
			me.player.changeTilt(-1);
		}
		if (me.elementMouseDown['zoom_in']) {
			me.player.changeFov(-1);
		}
		if (me.elementMouseDown['zoom_out']) {
			me.player.changeFov(1);
		}
		var hs='';
		if (me.compass_pointer.ggTransform) {
			hs+=me.compass_pointer.ggTransform + ' ';
		}
		hs+='rotate(' + (1 * me.player.getPanN() + 0) + 'deg) ';
		hs+='scale(' + (0.011 * me.player.getFov() + 0) + ',1.0) ';
		me.compass_pointer.style.webkitTransform=hs;
	};
	this.addSkin();
};
