var cltree;
var svmap;
var mainebj;
var playerR;
var playerQ;
var player;
var isfirst = true;
var sel_id = 0;
var sel_played = false;
var resetCen = true;
//var ii = 0;
//
var tmpay = videosize.split(',');
if (tmpay.length==4) {
	videosize = {};
	videosize.w = convert_int(tmpay[0]);
	videosize.h = convert_int(tmpay[1]);
	videosize.maxmized = (tmpay[2]=='1' ? true : false);
	videosize.playertype = 'real';
}
else{
	videosize = false;
}
var player_type = (typeof(videosize)=='object' ? videosize.playertype : 'real');

function camera_clicked(id, text, devicetype){
	//地图联动
	try{
		svmap.setCurDragId(id, text);
	}catch(e){}
	
	//播放
	needChangePlayer(devicetype);
	player.play(id, text, null);
}

function needChangePlayer(devicetype) {
	var video_code = 'H264';	//未知视频类型时，使用QuickTime播放，虽然加载慢，但可以播放
	if (devicetype) {
		video_code = devicetype.PcVideoCodec;
	}
	else{
		Ext.QuickMsg.msg('','Unknown devicetype, QuickTime will be loaded for playing');
	}
	
	if (video_code=='H264') {	//如果要播放的视频编码是H264, 则强制换为用QuickTime播放
		if (player==playerR) {	//切换播放器
			var w = playerR.w;
			var h = playerR.h;
			if (playerR.maxmized) {
				h = h+playerR.videobar_height;
				w = playerQ.getVWByH(h);
			}
			//
			playerQ.w = w;
			playerQ.h = h;
			playerQ.maxmized = playerR.maxmized;
			
			playerR.close();
			
			player_type = 'apple';
			player = playerQ;
		}
	}
	else{	//如果要播放的视频编码不是H264, 则强制换为用Real播放
		if (player==playerQ) {	//切换播放器
			var w = playerQ.w;
			var h = playerQ.h;
			if (playerQ.maxmized) {
				h = h-playerR.videobar_height;
				w = playerR.getVWByH(h);
			}
			//
			playerR.w = w;
			playerR.h = h;
			playerR.maxmized = playerQ.maxmized;
			
			playerQ.close();
			
			player_type = 'real';
			player = playerR;
		}
	}
}
function playById(id){
	var node = cltree.tree.getNodeById('c_'+id);
	if (node) {
		node.parentNode.expand();
		node.select();
		node.fireEvent('click', node);
	}
	else{
		Ext.QuickMsg.msg('您好','此视频点未公开，暂不能观看');
	}
}
function showMap(showto){
	//try{
		svmap = new SVMap();
		
		svmap.renderto = showto;
		svmap.is_pub= true;
		svmap.load_accessed = 1;
		svmap.load_accessed_flags = 'play';
		svmap.drags_loadcomplete = function(){
			if (!cltree) return false;
			if (cltree.currentTreeNode) {
				try{
					svmap.setCurDragId(cltree.currentTreeNode.id, cltree.currentTreeNode.text);
				}catch(e){}
			}
		}
		svmap.drag_click = function(id, title){
			playById(id);	//播放
		};
		svmap.initialize();
		svmap.ipToPlace(map_addr);
		//svmap.showAddress(map_addr);
	//}
	//catch(e){Ext.Msg.show({minWidth:300, title:'提示', msg:'地图功能不可用，可能由于网络原因。或尝试刷新页面。', buttons: Ext.Msg.OK, icon:Ext.MessageBox.INFO});}
}

function showTree(addto,w,h,icon_root){
	var cfg = {
		icon_root: icon_root,
		sameAppOf: getRequest('sameAppOf'),
		appcodes: getRequest('appcodes')
	};

	cltree = new ClsPubTree(cfg);
	cltree.expand_all = true;
	cltree.getMTree();
	
	var test_first_e = false;
	var test_time_a = 0;
	var test_time_b = 1;
	var test_time_1 = '';
	var test_time_2 = '';
	//var tlder = cltree.tree.getLoader();
	//tlder.on('load', function(ths, node){
	//	if (!test_first_e) {
	//		//alert(node.text + " loaded");
	//		test_first_e = true;
	//		
	//		test_time_a = getPHPTimeStamp();
	//		var myDate = new Date();
	//		test_time_1 = myDate.toLocaleString();       //获取日期与时间
	//		$('bottom_div').innerHTML = '开始渲染时间：' + test_time_a + "&nbsp;&nbsp;&nbsp;&nbsp;" + test_time_1 + "<br/>";
	//	}
	//});
	
	
	cltree.hdl_node_loaded = function(node){
		if (sel_id>0 && !sel_played) {
			var nd = cltree.tree.getNodeById('c_'+sel_id);
			if (nd) {
				sel_played = true;
				playById(sel_id);	//播放传过来的id
			}
		}
		/*if (sel_id>0) {
			if (convert_int(tagContent("_","",node.id)) == sel_id) {
				playById(sel_id);	//播放传过来的id
			}
		}*/
	}

	Ext.getCmp(addto).add(cltree.tree);
	Ext.getCmp(addto).doLayout();
}

function saveVideoSize(w,h,maxmized){
	Ext.Ajax.request({
        url: g_root + 'videosize_server.php',
        params: {opr:'savesize', w:w, h:h, maxmized:(maxmized ? 1 : 0), playertype:player_type},
        success: function(response, options){
            try{
	        	var rjdata = Ext.util.JSON.decode(response.responseText);
	            if (!rjdata.success) {
	            	alert(qpDHanzi(rjdata.error));
	            }
			}
			catch(e){alert(e.message + "\r\n\r\n" + response.responseText);}
        },
        failure: function(response, options){
        	//alert('意外错误[saveVideoSize]');
        }
    });
}
function readVideoSize(){
	Ext.Ajax.request({
        url: g_root + 'videosize_server.php',
        params: {opr:'readsize'},
        success: function(response, options){
            try{
	        	var rjdata = Ext.util.JSON.decode(response.responseText);
	            if (!rjdata.success) {
	            	alert(qpDHanzi(rjdata.error));
	            }
	            else{
	            	var tmpay = rjdata.data.split(',');
	            	if (tmpay.length==3) {
	            		videosize = {};
	            		videosize.w = convert_int(tmpay[0]);
	            		videosize.h = convert_int(tmpay[1]);
	            		videosize.maxmized = (tmpay[2]=='1' ? true : false);
	            	}
	            }
			}
			catch(e){alert(e.message + "\r\n\r\n" + response.responseText);}
        },
        failure: function(response, options){
        	//alert('意外错误[readVideoSize]');
        }
    });
}

//播放传过来的id
//sel_id = convert_int(getRequest('Id'));
//if (sel_id>0) playById(sel_id);

Ext.onReady(function(){
	//传过来的id要自动播放
	sel_id = convert_int(getRequest('Id'));
	
	//读取服务器上保存的用户视频尺寸
	//readVideoSize();
	
	//获得宽，高
	var _width = document.body.clientWidth;
	var _height = document.body.clientHeight - 60 - Ext.get('top_area').getHeight();
	
	$('main').style.height = _height;
	$('google_map').style.height = _height;
	
	var index_width = convert_int(Cookies.get('index_width'),300);
	
	mainebj = new Ext.Panel({
		height:_height, layout:'border', border:true, defaults:{border:false}, baseCls:'main_css'
		
		,items:[{
			region:'center', layout:'fit', defaults:{border:false}
			,items:[
				/*{xtype:'panel', contentEl:'drag1', height:0}*/
				{xtype:'panel', contentEl:'google_map', height:_height}
			]
			,listeners: {
				resize: {
					fn: function(el, adjWidth, adjHeight, rawWidth, rawHeight) {
						if (svmap) svmap.map.checkResize();//通知地图其容器大小已更改
					}
				}
			}
		},{
			region:'west', id:'rgn_camera_tree'
			,collapseMode:'mini'
			,width:index_width, maxSize:800, minSize:100
			,split:true, layout:'fit'
			,listeners: {
				resize: {
					fn: function(el, adjWidth, adjHeight, rawWidth, rawHeight) {
						Cookies.set('index_width',adjWidth);
					}
				}
			}
		}]
	});
	mainebj.render('main');
	
	//显示tree
	showTree('rgn_camera_tree',index_width,_height,icon_root);
	
	//显示地图
	try{
		showMap('google_map');
	}
	catch(e){
		Ext.QuickMsg.msg('','网络有点问题，google地图功能可能暂时不可用');
	}
	
	//播放类
	var cf = {loadpage:g_root+'com/aapage_analytics/aapage_play_pub.php',rootpath:"", bl_w:16, bl_h:9};
	playerR = new ClsRealPlayer(cf);
	playerQ = new ClsQuickTimePlayer(cf);
	playerR.show_playerswitch = false;
	playerQ.show_playerswitch = false;
	playerR.for_public = true;
	playerQ.for_public = true;
	
	player = playerR;
	if (typeof(videosize)=='object') {
		if (player_type=='apple') {
			player = playerQ;
		}
	}
	
	//尺寸
	if (typeof(videosize)=='object') {
		player.w = videosize.w;
		player.h = videosize.h;
		player.maxmized = videosize.maxmized;
	}
	
	playerR.hdl_savevideosize = function(w,h,maxmized){
		saveVideoSize(w,h,maxmized);
	}
	playerQ.hdl_savevideosize = function(w,h,maxmized){
		saveVideoSize(w,h,maxmized);
	}
	
	if (cltree) {
		cltree.node_clicked = function(node,e) {
			if (node.attributes.classtype=='camera') {
				var dtp = node.attributes.devicetype;
				if (dtp!='false' && dtp!=false) {
					dtp = eval('('+dtp+')');
				}
				else{
					dtp = false;
				}
				/*ii = 1-ii;
				if (ii==0) {
					dtp.PcVideoCodec = "H264";
				}
				else{
					dtp.PcVideoCodec = "MPEG4";
				}
				alert(dtp.PcVideoCodec);*/
				camera_clicked(node.id.replace('c_',''), node.attributes.text, dtp);
			}
		}
	}
		Ext.EventManager.onWindowResize(function(){
		var _height = document.body.clientHeight - 60 - Ext.get('top_area').getHeight();

		$('main').style.height = _height;
		$('google_map').style.height = _height;
		
		mainebj.setHeight(_height);
		mainebj.doLayout();
		
	});
});

