jQuery(document).ready(function() {
	var cTime = new Date();
	jQuery("#editPanel").each(function(index){
		jQuery(this).addClass("dragWindow");
		jQuery(this).draggable({
			zIndex:20,
			ghosting:false,
			opacity:0.7
		});
	});

	jQuery("div.window").each(function(index){
		var dWinId = jQuery(this).attr("id");
		var dPortletId = jQuery(this).attr("lang");
		jQuery(this).bind("contextmenu",{winId:dWinId,portletId:dPortletId},showToolBar);
	});

});

function getPortletUrl(ctxPath,id,pm,ws,pmn,pmv) {
	var pid = id.replace("/","0x3");
	pid = pid.replace(".","0x2");
	var pu = pid;
	if(ws){
		pu = ctxPath+"/__pm"+pu+"_"+pm+"/__ws"+pu+"_"+ws;
	}else{
		pu = ctxPath+"/__pm"+pu+"_"+pm;
	}
	if(pmn){
		if(pmv){
			pu = pu+"/__rp"+pid+"_"+pmn+"/RP0x1"+encode64(pmv);
		}
	}
	return pu;
}

function windowMove(fromId,toId) {
	if(confirm("您确定要移动这个窗口吗?")){
		jQuery.ajax({
			   type: "POST",
			   url: "admin",
			   data: "cmd=pmvw&portalId=P"+portalPageNumber+fromId+"&targetId=P"+portalPageNumber+toId+"&cTime="+new Date().getMilliseconds(),
			   success: function(msg){
				location.reload();
			  }
		});
	}

}
function windowChange(fromId,toId) {
	if(confirm("您确定要交换这两个窗口吗?")){
		jQuery.ajax({
			   type: "POST",
			   url: "admin",
			   data: "cmd=pchw&portalId=P"+portalPageNumber+fromId+"&targetId=P"+portalPageNumber+toId+"&cTime="+new Date().getMilliseconds(),
			   success: function(msg){
				location.reload();
			  }
		});
	}
}

function windowRemove(rWinId) {
	if(confirm("您确定要删除这个窗口吗?")){
		jQuery.ajax({
			   type: "POST",
			   url: "admin",
			   data: "cmd=pdw&portalId=P"+portalPageNumber+rWinId+"&cTime="+new Date().getMilliseconds(),
			   success: function(msg){
				location.reload();
			  }
		});
	}
}

function windowUp(rWinId) {
	if(confirm("您确定要上移这个窗口吗?")){
		jQuery.ajax({
			   type: "POST",
			   url: "admin",
			   data: "cmd=pupw&portalId=P"+portalPageNumber+rWinId+"&cTime="+new Date().getMilliseconds(),
			   success: function(msg){
				location.reload();
			  }
		});
	}
}

function windowDown(rWinId) {
	if(confirm("您确定要下移这个窗口吗?")){
		jQuery.ajax({
			   type: "POST",
			   url: "admin",
			   data: "cmd=pdnw&portalId=P"+portalPageNumber+rWinId+"&cTime="+new Date().getMilliseconds(),
			   success: function(msg){
				location.reload();
			  }
		});
	}
}
var droppableWindow;
function showToolBar(bare) {

	var winId = bare.data.winId;
	var portletId = bare.data.portletId;
	jQuery("#portalCtxMenu").attr("style","position:absolute;display:;");
	document.all.portalCtxMenu.style.pixelLeft = bare.pageX+3;
	document.all.portalCtxMenu.style.pixelTop = bare.pageY+3;
	jQuery("#portalCtxMenu").addClass("portalRightMenu");
	jQuery("#mdfButton").bind("click",{},function(mdfe){
		jQuery("#mdfButton").attr("href",getPortletUrl(portalContextPath,portletId,"edit","maximized","modelId",winId));
	});
	jQuery("#admButton").bind("click",{},function(adme){
		jQuery("#admButton").attr("href",getPortletUrl(portalContextPath,portletId,"help","maximized","modelId",winId));
	});	
	jQuery("#moveButton").bind("click",{},function(movee){

		jQuery("div.window").removeClass("dragWindow");
		jQuery("#"+winId).addClass("dragWindow");
		jQuery("#"+winId).draggable();
		jQuery("#"+winId).attr("style","left:"+(movee.clientX)+";top:"+movee.clientY+";display:;");

		jQuery("div.window:not(:has(>div .block))").droppable({
			accept: ".dragWindow",
			activeClass: 'droppable-active',
			hoverClass: 'droppable-hover',
			drop: function(ev, ui) {
				windowMove(winId,jQuery(this).attr("id"));
				location.reload();
			}
		});

	});
	jQuery("#chnButton").bind("click",{},function(movee){
		jQuery("div.window").removeClass("dragWindow");
		jQuery("#"+winId).addClass("dragWindow");
		jQuery("#"+winId).draggable();
		jQuery("#"+winId).attr("style","left:"+(movee.clientX)+";top:"+movee.clientY+";display:;");

		jQuery("div.window:not(:has(>div .block))").droppable({
			accept: ".dragWindow",
			activeClass: 'droppable-active',
			hoverClass: 'droppable-hover',
			drop: function(ev, ui) {
				windowChange(winId,jQuery(this).attr("id"));
				location.reload();
			}
		});

	});
	jQuery("#lodButton").bind("click",{},function(lode){
		location.reload();
	});	
	jQuery(document).one('click',function(){
		jQuery("#portalCtxMenu").hide();
	});	
	jQuery("#delButton").bind("click",{},function(e){
		windowRemove(winId);
	});
	jQuery("#downButton").bind("click",{},function(e){
		windowDown(winId);
	});
	jQuery("#upButton").bind("click",{},function(e){
		windowUp(winId);
	});
	return false;
}

function closePortalPanel(){
	jQuery("#portalEditPanel").hide();
}

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;
   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);
      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;
      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }
      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   return output;
}

