dojo.require("dijit.form.DropDownButton");

//////////////////////
//  PREVIEW & THUMBS & STATS
////////////////////////

var mousetph=false;
var lastloadedthumbs = "";
function showThumbnails(mediaurl){
	var tph = dojo.byId("quickpreview");
	var tphc = dojo.byId("qpcontainer");
	mousetph = mediaurl!=null;
	lastloadedthumbs = mediaurl;
	if(mediaurl==null){
		tph.style.display='none';
		//tph.innerHTML = "";
	}else{
		tph.style.display='block';
		tphc.innerHTML = getLoadingHTMLSmall();
		//console.log(mediaurl);
		dojo.xhrGet({
			url: mediaurl,
			load: function(responseObject, ioArgs){
					if(responseObject==null){ this.error(); return; }
					if(responseObject==""){ showThumbnails(); return; }
					if(this.url != lastloadedthumbs){ return; }
					tph.style.display='block';
					tphc.innerHTML = responseObject;
					movethumbsph();
					return responseObject;
				},
			error: function(response, ioArgs){
				showThumbnails();
				return response;
			},
			handleAs: "text"
		});
	}
}
function fadeInImg(who){
	movethumbsph();
	who.style.opacity=0;
	who.style.display='';
	dojo.animateProperty({
		node: who,
		duration:300,
		properties: { opacity: {start:0,end:1 } }
	}).play();
}

//////////////////////
//  MOUSE MOVE
////////////////////////

function movethumbsph(){
	if(mousetph){
		var tph = dojo.byId("quickpreview");
		var ps = getPageSize();
		var pH;
		var pV;
		if(ps[0]-(mouseX+15+tph.offsetWidth)>0 || tph.offsetWidth>ps[0]){
			pH = mouseX+15;
		}else{
			pH = mouseX-15-tph.offsetWidth;
		}
		if(mouseY+15+tph.offsetHeight<ps[1] || mouseY-15-tph.offsetHeight<0){
			if(mouseY+15+tph.offsetHeight<ps[1]){
				pV = mouseY+15;
			}else{
				pV = mouseY-tph.offsetHeight/2;
			}
		}else{
			pV = mouseY-15-tph.offsetHeight;
		}
		tph.style.left = pH+"px";
		tph.style.top  = pV+"px";
	}
}



dojo.connect(document,"onmousemove",null,"movethumbsph");

var canShowPreview = false;
function getPreviewerObj(objClass,prevId){
	var previewer = dojo.byId(prevId==null?'overpreview':prevId);
	if(previewer!=null){
		var obs = dojo.query('.'+objClass,previewer);
		return obs[0];
	}else{
		return null;
	}
}
function emptyPreviewer(prevId){
	var pt = getPreviewerObj('previewtitle',prevId);
	//var pc = getPreviewerObj('previewcode',prevId);
	var pb = getPreviewerObj('previewbuttons',prevId);
	var pp = getPreviewerObj('previewpanels',prevId);
	var ppc = getPreviewerObj('previewpanelscontents',prevId);
	pt.innerHTML = "";
	//pc.innerHTML = "";
	//pc.style.display='none';
	pb.innerHTML = "";
	//pb.style.display='none';
	//pp.style.display='none';
	ppc.innerHTML = "";
	//ppc.style.display='none';
	//dojo.byId('previeweditor').style.display='none';
}
function showMediaPreview(id,type){
	var newWindow=false;
	var previewId = "overpreview";
	if(isKeyDown(dojo.keys.CTRL)){
		newWindow=true;
		previewId += Math.round(Math.random()*10000);
	}
	
	if(!newWindow){
		var previewer = dojo.byId(previewId);
		previewer.style.display='';
	}else{
		var previewer = document.createElement('div');
		previewer.id = previewId;
		previewer.className = "overpreview";
		previewer.innerHTML = dojo.byId('overpreview').innerHTML.replace("overpreview","previewId");
		previewer.style.display='';
		previewer.style.top="40px";
		previewer.style.left="40px";
		document.body.appendChild(previewer);
		emptyPreviewer(previewer.id);
		makeOverpreviewerDragable(previewer);
		getPreviewerObj("previewcloser",previewId).onclick=function(){closePreview(previewId)};
	}
	
	var ps = getPageScroll();
	if(getElementTop(previewer)<ps[1]){
		previewer.style.top = (ps[1]+10)+"px";
	}

	var file = "media.preview.full.php";
	/*switch(type){
		case "playlist":
			file = "playlist.preview.php";
			break;
	}*/
	url = oxoadmindir+"mediamanager/"+file+"?id="+id+"&previd="+previewId;
	console.log(url);
	
	canShowPreview=true;
	emptyPreviewer(previewId);
	//getPreviewerObj("previewtitle",previewId).innerHTML = getLoadingHTML();
	dojo.xhrGet({
		url: url,
		load: function(responseObject, ioArgs){
				if(responseObject==null){ this.error(); return; }
				if(canShowPreview){
					if(responseObject.previewtitle!=null){
						getPreviewerObj("previewtitle",previewId).innerHTML = responseObject.previewtitle;
					}
					/*if(responseObject.previewcode!=null){
						getPreviewerObj("previewcode",previewId).style.display='';
						getPreviewerObj("previewcode",previewId).innerHTML = responseObject.previewcode;
					}else{
						getPreviewerObj("previewcode",previewId).style.display='none';
					}*/
					if(responseObject.previewbuttons!=null){
						getPreviewerObj("previewbuttons",previewId).style.display='';
						getPreviewerObj("previewbuttons",previewId).innerHTML = responseObject.previewbuttons;
					}else{
						getPreviewerObj("previewbuttons",previewId).style.display='none';
					}
					getPreviewerObj("previewpanels",previewId).style.display='none';
					if(responseObject.previewpanelscontents!=null){
						getPreviewerObj("previewpanelscontents",previewId).style.display='';
						getPreviewerObj("previewpanelscontents",previewId).innerHTML = responseObject.previewpanelscontents;
					}else{
						getPreviewerObj("previewpanelscontents",previewId).style.display='none';
					}
					if(responseObject.buildfunction!=null){
						responseObject.buildfunction();
					}
					//Custom.init(previewer);
				}
				return responseObject;
			},
		error: function(response, ioArgs){
			console.log("ERROR LOADING EDITOR",response, ioArgs);
			getPreviewerObj("previewtitle",previewId).innerHTML = getLoadingErrorHTML(true);
			//editRecord(lastediturl);
			return response;
		},
		handleAs: "json"
	});
}
function switchPreviewPanel(who,previewId){
	var prevbuts = getPreviewerObj("previewbuttons",previewId);
	var buttons = dojo.query(".button",prevbuts);
	var selectedpanel = who;
	for(var i=0;i<buttons.length;i++){
		buttons[i].className = buttons[i].className.replace("active","");
		if(who==buttons[i] || buttons[i].className.indexOf(selectedpanel)>-1){
			selectedpanel = buttons[i].className.replace("button","");
			while(selectedpanel.indexOf(" ")!=-1){
				selectedpanel = selectedpanel.replace(" ","");
			}
			buttons[i].className += " active";
		}
	}
	var prevpan = getPreviewerObj("previewpanels",previewId);
	var ppc = getPreviewerObj('previewpanelscontents',previewId);	ppc.style.display='block';
	prevpan.style.display='block';
	var panels = dojo.query(".panel",prevpan);
	for(var i=0;i<panels.length;i++){
		if(panels[i].className.indexOf(selectedpanel)==-1){
			panels[i].style.display = 'none';
		}else{
			panels[i].style.display = 'block';
		}
	}
}
function closePreview(prevId){
	canShowPreview=false;
	var previewer = dojo.byId(prevId==null?'overpreview':prevId);
	previewer.style.display='none';
	emptyPreviewer(prevId);
}


function drawMediaStats(prevId,where,dataurl,charttype){
	charttype = charttype==null?"MSColumn3D":charttype;
	console.log(dataurl);
	/*var cplayer = new SWFObject(themedir+"charts/"+charttype+".swf","mpss","454","361","10");
	cplayer.addParam("allowfullscreen","true");
	cplayer.addParam("allowscriptaccess","always");
	cplayer.addParam("wmode","transparent");
	cplayer.addParam("FlashVars","&dataURL="+dataurl);
	cplayer.write(where);*/
}


