
/*
 *
 * pop-up panel init
 *
 */
NGC.initPopup = function(obj) {
	obj.subscribe('cellClickEvent',function (ev) {
		var target = YAHOO.util.Event.getTarget(ev);
    	NGC.show(this.getRecord(target), this.getTrEl(0));
    	//NGC.show(this.getRecord(target), this.getTrEl(target));
    });

	NGC.popup_panel = new YAHOO.widget.Panel("ngcDetailPanel",
	    						{
		    						visible:false,
		    						draggable:true,
	    							close:true,
	    							width:'680px'
	    						}
	    						);
    NGC.popup_panel.setHeader('NGC details');
    NGC.popup_panel.setBody('');
    NGC.popup_panel.render(YAHOO.util.Dom.get('bd'));

	NGC.constelNames = new Array();
	NGC.constelNames['And'] = 'Andromeda';
	NGC.constelNames['Ant'] = 'Antlia';
	NGC.constelNames['Aps'] = 'Apus';
	NGC.constelNames['Aqr'] = 'Aquarius';
	NGC.constelNames['Aql'] = 'Aquila';
	NGC.constelNames['Ara'] = 'Ara';
	NGC.constelNames['Ari'] = 'Aries';
	NGC.constelNames['Aur'] = 'Auriga';
	NGC.constelNames['Boo'] = 'Botes';
	NGC.constelNames['Cae'] = 'Caelum';
	NGC.constelNames['Cam'] = 'Camelopardalis';
	NGC.constelNames['Cnc'] = 'Cancer';
	NGC.constelNames['Cvn'] = 'Canes Venatici';
	NGC.constelNames['CVn'] = 'Canes Venatici';
	NGC.constelNames['CMa'] = 'Canis Major';
	NGC.constelNames['CMi'] = 'Canis Minor';
	NGC.constelNames['Cap'] = 'Capricornus';
	NGC.constelNames['Car'] = 'Carina';
	NGC.constelNames['Cas'] = 'Cassiopeia';
	NGC.constelNames['Cen'] = 'Centaurus';
	NGC.constelNames['Cep'] = 'Cepheus';
	NGC.constelNames['Cet'] = 'Cetus';
	NGC.constelNames['Cha'] = 'Chamaeleon';
	NGC.constelNames['Cir'] = 'Circinus';
	NGC.constelNames['Col'] = 'Columba';
	NGC.constelNames['Com'] = 'Coma Berenices';
	NGC.constelNames['CrA'] = 'Corona Australis';
	NGC.constelNames['CrB'] = 'Corona Borealis';
	NGC.constelNames['Crv'] = 'Corvus';
	NGC.constelNames['Crt'] = 'Crater';
	NGC.constelNames['Cru'] = 'Crux';
	NGC.constelNames['Cyg'] = 'Cygnus';
	NGC.constelNames['Del'] = 'Delphinus';
	NGC.constelNames['Dor'] = 'Dorado';
	NGC.constelNames['Dra'] = 'Draco';
	NGC.constelNames['Equ'] = 'Equuleus';
	NGC.constelNames['Eri'] = 'Eridanus';
	NGC.constelNames['For'] = 'Fornax';
	NGC.constelNames['Gem'] = 'Gemini';
	NGC.constelNames['Gru'] = 'Grus';
	NGC.constelNames['Her'] = 'Hercules';
	NGC.constelNames['Hor'] = 'Horologium';
	NGC.constelNames['Hya'] = 'Hydra';
	NGC.constelNames['Hyi'] = 'Hydrus';
	NGC.constelNames['Ind'] = 'Indus';
	NGC.constelNames['Lac'] = 'Lacerta';
	NGC.constelNames['Leo'] = 'Leo';
	NGC.constelNames['LMi'] = 'Leo Minor';
	NGC.constelNames['Lep'] = 'Lepus';
	NGC.constelNames['Lib'] = 'Libra';
	NGC.constelNames['Lup'] = 'Lupus';
	NGC.constelNames['Lyn'] = 'Lynx';
	NGC.constelNames['Lyr'] = 'Lyra';
	NGC.constelNames['Men'] = 'Mensa';
	NGC.constelNames['Mic'] = 'Microscopium';
	NGC.constelNames['Mon'] = 'Monoceros';
	NGC.constelNames['Mus'] = 'Musca';
	NGC.constelNames['Nor'] = 'Norma';
	NGC.constelNames['Oct'] = 'Octans';
	NGC.constelNames['Oph'] = 'Ophiuchus';
	NGC.constelNames['Ori'] = 'Orion';
	NGC.constelNames['Pav'] = 'Pavo';
	NGC.constelNames['Peg'] = 'Pegasus';
	NGC.constelNames['Per'] = 'Perseus';
	NGC.constelNames['Phe'] = 'Phoenix';
	NGC.constelNames['Pic'] = 'Pictor';
	NGC.constelNames['Psc'] = 'Pisces';
	NGC.constelNames['PsA'] = 'Piscis Austrinus';
	NGC.constelNames['Pup'] = 'Puppis';
	NGC.constelNames['Pyx'] = 'Pyxis';
	NGC.constelNames['Ret'] = 'Reticulum';
	NGC.constelNames['Sge'] = 'Sagitta';
	NGC.constelNames['Sgr'] = 'Sagittarius';
	NGC.constelNames['Sco'] = 'Scorpius';
	NGC.constelNames['Scl'] = 'Sculptor';
	NGC.constelNames['Sct'] = 'Scutum';
	NGC.constelNames['SerCd'] = 'Serpens Cauda';
	NGC.constelNames['SerCp'] = 'Serpens Caput';
	NGC.constelNames['Sex'] = 'Sextans';
	NGC.constelNames['Tau'] = 'Taurus';
	NGC.constelNames['Tel'] = 'Telescopium';
	NGC.constelNames['Tri'] = 'Triangulum';
	NGC.constelNames['TrA'] = 'Triangulum Australe';
	NGC.constelNames['Tuc'] = 'Tucana';
	NGC.constelNames['UMa'] = 'Ursa Major';
	NGC.constelNames['UMi'] = 'Ursa Minor';
	NGC.constelNames['Vel'] = 'Vela';
	NGC.constelNames['Vir'] = 'Virgo';
	NGC.constelNames['Vol'] = 'Volans';
	NGC.constelNames['Vul'] = 'Vulpecula';
}


/*
 *
 * show the popup
 *
 */
NGC.show = function(record,cell) {
	if (record.getData('buf') != null) {
		NGC.popup_panel.setBody(record.getData('buf'));
	    NGC.popup_panel.setHeader('NGC-'+record.getData('ngc_number'));
		//NGC.addButtons();
	}
	else {
		NGC.popup_panel.setBody('Loading...');
		NGC.ajaxPopupCallback.argument = record;
		YAHOO.util.Connect.asyncRequest(
   				"GET",
				"./_ngcProcess.php?cmd=get_detail&ngc_number=" + record.getData('ngc_number'),
	   			NGC.ajaxPopupCallback);
	}
	//NGC.popup_panel.cfg.setProperty("context", [cell, "tr", "tr"]);
	NGC.popup_panel.cfg.setProperty("context", [cell, "tr", "tr"]);

	//var _mag = document.getElementById ('Magnitude');
	//NGC.popup_panel.cfg.setProperty("context", [_mag, "tl", "br"]);

	//var _mag = document.getElementById ('goButton');
	//NGC.popup_panel.cfg.setProperty("context", [_mag, "tl", "bl"]);


	NGC.popup_panel.cfg.setProperty("visible", true);
};


/*
 *
 * hide the popup
 *
 */
NGC.hide = function() {
	if (NGC.popup_panel === undefined) {
		return;
	}
	NGC.popup_panel.cfg.setProperty("visible", false);
};


/*
 *
 *
 *
 */
NGC.onCloseClick = function(p_oEvent) {
	if (this.get("id") == "close") {
		NGC.hide();
	}
}

var pbClose=null;
NGC.addButtons = function() {
	pbClose = new YAHOO.widget.Button({ label:"Close", id:"close", container:"ngc_pushbuttons" });
	pbClose.on("click", NGC.onCloseClick);
}


function bldPanelRow(ttl1,dat1,dat2) {
	return	'<tr>' +
			'<td class=ngcDetailCol1>' +
		   		ttl1 + ':&nbsp' +
		   	'</td>' +
		   	'<td class=ngcDetailCol2>' +
		   		dat1 +
		   	'</td>' +

		   	//'<td width=10></td>' +
			//'<td class=ngcDetailCol1>' +
		   	//	ttl2 + ':&nbsp' +
		   	//'</td>' +
		   	//'<td class=ngcDetailCol2>' +
		   	//	dat2 +
		   	//'</td>'+
		   	//'<td></td>'+

		   	'</tr>';
}

function cvtType(obj_type) {
	switch (obj_type) {
	    case "*":		return "Single Star";
		case "**":		return "Double Star";
		case "***":		return "Triple Star";
		case "Ast":		return "Asterism";
		case "Gxy":		return "Galaxy";
		case "GxyCld":	return "Bright cloud in galaxy";
		case "GC":		return "Globular Cluster";
		case "HIIRgn":	return "HII Region";
		case "Neb":		return "Nebula";
		case "NF":		return "Not Found";
		case "OC":		return "Open Cluster";
		case "PN":		return "Planetary Nebula";
		case "SNR":		return "Super Nova Remnant";
		case "MWSC":	return "Milky Way Star Cloud";
		case "HIIRgn":  return "HII Region";
	}
	return obj_type;
}

NGC.ajaxPopupCallback = {
	success: function (oResponse) {
		var record = oResponse.argument;
		ngc = null;
		try {
		    ngc = YAHOO.lang.JSON.parse(oResponse.responseText);
			/*
	        var buf =	'<table id=ngcDetailTable width=100%>' +
	 					'<tr>' +
						'<td width=20% class=ngcDetailCol1>Ngc #:&nbsp</td>' +
						'<td class=ngcDetailCol2>NGC' +
							ngc[0].ngc_number +
						'</td>'+
						'<td></td>'+
						'<td rowspan=14>'+ ngc[0].img + '</td>'+
						'</tr>'+
				bldPanelRow('R/A',ngc[0].obj_ra) +
			*/
	        var buf =	'<table id=ngcDetailTable width=100%>' +
	 					'<tr>' +
						'<td width=20% class=ngcDetailCol1>R/A:&nbsp</td>' +
						'<td class=ngcDetailCol2>' +
							ngc[0].obj_ra+
						'</td>'+
						'<td></td>'+
						'<td align=right rowspan=14>'+ ngc[0].img + '</td>'+
						'</tr>'+

				bldPanelRow('Dec',ngc[0].obj_dec) +

				bldPanelRow('Const',NGC.constelNames[ngc[0].constel]) +

				bldPanelRow('Desc',ngc[0].ngc_desc) +

				bldPanelRow('Type',cvtType(ngc[0].obj_type)) +
				bldPanelRow('Class',ngc[0].obj_class) +
				bldPanelRow('Size',ngc[0].obj_size) +
				bldPanelRow('Visual Mag',ngc[0].obj_vmag) +
				bldPanelRow('Blue Mag',ngc[0].obj_bmag) +

				bldPanelRow('Messier',ngc[0].messier) +
				bldPanelRow('GC #',ngc[0].gc_number) +
				bldPanelRow('JH #',ngc[0].jh_number) +
				bldPanelRow('WH #',ngc[0].wh_number) +
				bldPanelRow('IC Equiv',ngc[0].ic_equiv) +
				bldPanelRow('GCS Number',ngc[0].gcs_number) +

				bldPanelRow('Discoverer',ngc[0].discoverer) +
				bldPanelRow('Year',ngc[0].year) +

				//bldPanelRow('PA',ngc[0].obj_pa,'','') +
				//bldPanelRow('vsbright',ngc[0].obj_vsbright) +
				//bldPanelRow('NGC Equiv',ngc[0].ngc_equiv) +
				bldPanelRow('Other Names',ngc[0].other_names);

    	    record.setData('buf',buf);

			NGC.popup_panel.setBody(buf);
		    NGC.popup_panel.setHeader('NGC-'+ngc[0].ngc_number);
			//NGC.addButtons();
		}
		catch (e) {
		    alert("error:"+e.description );
			NGC.popup_panel.setBody("Load failed");
		}
	},
	failure: function (oResponse) {
		NGC.popup_panel.setBody("Load failed");
	}
}


