Sindbad~EG File Manager

Current Path : /home/escuelai/public_html/biblioteca.escuelaintegral.edu.uy/javascript/cms/
Upload File :
Current File : /home/escuelai/public_html/biblioteca.escuelaintegral.edu.uy/javascript/cms/cms_build.js

// +-------------------------------------------------+
// � 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
// +-------------------------------------------------+
// $Id: cms_build.js,v 1.44 2020/11/13 16:45:32 tsamson Exp $

var cms_build_obj_list_id=new Array();
var cms_build_obj_list_type=new Array();


function cms_build_findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
}


function cms_build_mouse_is_on(e,obj) {
	var i;
	var pos_mouse=getCoordinate(e);

	var r=document.getElementById(obj);
	var pos=cms_build_findPos(r);
	var r_x=pos[0];
	var r_y=pos[1];
	var r_width=r.offsetWidth;
	var r_height=r.offsetHeight;
	if ( ((pos_mouse[0]>r_x)&&(pos_mouse[0] < (parseFloat(r_x)+parseFloat(r_width)))) &&
		((pos_mouse[1]>r_y)&&(pos_mouse[1] < (parseFloat(r_y)+parseFloat(r_height)))) ) 	{
		var info=new Array();
		info["id"]=r;
		info["mouse_x"]=pos_mouse[0];
		info["mouse_y"]=pos_mouse[1];
		return info;
	}
	return false;
}

function cms_change_objet_css(id){
	var obj_val=document.getElementById(id);
	var obj_val_def=document.getElementById(id+'_def');
	if(obj_val_def.options[0].selected == true){
		return 'auto';
	}else if(obj_val_def.options[3].selected == true){
		return 'inherit';
	}else if(obj_val_def.options[1].selected == true){
		return obj_val.value+'px';
	}else if(obj_val_def.options[2].selected == true){
		return obj_val.value+'%';
	}

}


function cms_change_css(id){
	var obj =parent.frames['opac_frame'].document.getElementById(id);
	obj.style.left=cms_change_objet_css("cms_left");
	obj.style.top=cms_change_objet_css("cms_top");

	obj.style.zIndex=document.getElementById("cms_zIndex").value;

	obj.style.height=cms_change_objet_css("cms_height");
	obj.style.width=cms_change_objet_css("cms_width");

	obj.style.marginTop=cms_change_objet_css("cms_margin_top");
	obj.style.marginRight=cms_change_objet_css("cms_margin_right");
	obj.style.marginBottom=cms_change_objet_css("cms_margin_bottom");
	obj.style.marginLeft=cms_change_objet_css("cms_margin_left");
	obj.style.paddingTop=cms_change_objet_css("cms_padding_top");
	obj.style.paddingRight=cms_change_objet_css("cms_padding_right");
	obj.style.paddingBottom=cms_change_objet_css("cms_padding_bottom");
	obj.style.paddingLeft=cms_change_objet_css("cms_padding_left");

	var theselector=document.getElementById("cms_float");
	obj.style.cssFloat=theselector.options[theselector.selectedIndex].value;

	var theselector=document.getElementById("cms_position");
	obj.style.position=theselector.options[theselector.selectedIndex].value;
	var theselector=document.getElementById("cms_visibility");
	obj.style.visibility=theselector.options[theselector.selectedIndex].value;
	var theselector=document.getElementById("cms_display");
	obj.style.display=theselector.options[theselector.selectedIndex].value;
}

function cms_gen_objet_css(id,val,id_block){

	var obj_val=document.getElementById(id);
	var obj_val_def=document.getElementById(id+'_def');
	if(obj_val_def){
		if(val== 'auto' || val==''){
			obj_val_def.options[0].selected = true;
			obj_val_def.style.display='block';
		}else if(val== 'inherit'){
			obj_val_def.options[3].selected = true;
			obj_val_def.style.display='block';
		}else if(val.substr(val.length-2, 2)== 'px'){
			obj_val.value=parseInt(val.substr(0,val.length-2));
			obj_val_def.options[1].selected = true;
			obj_val_def.style.display='block';
		}else if(val.substr(val.length-1, 1)== '%'){
			obj_val.value=val.substr(0,val.length-1)
			obj_val_def.options[2].selected = true;
			obj_val_def.style.display='block';
		}
	}
	obj_val.onchange="cms_change_css('"+id_block+"');return false;"


}
function cms_show_css_obj(id){

	var cms_edit_form=document.getElementById("cms_edit_form");
	document.getElementById("cms_edit_form").setAttribute("cms_edit_id",id);
	document.getElementById("cms_edit_title_obj").innerHTML=id;

	var bt=document.createElement('input');
	bt.setAttribute('type', 'button');
	bt.setAttribute('id', 'cms_edit_form_reset_css_obj_id');
	bt.setAttribute('class', 'bouton');
	bt.setAttribute('value', msg_cms_reset_css);
	bt.setAttribute("onclick", "cms_reset_css('"+id+"'); return false;");
	if(document.getElementById("cms_edit_form_reset_css_obj_id")) {
		document.getElementById("cms_edit_form_reset_css_obj").removeChild(document.getElementById("cms_edit_form_reset_css_obj_id"));
	}
	document.getElementById("cms_edit_form_reset_css_obj").appendChild(bt);

	var obj=parent.frames['opac_frame'].document.getElementById(id);
	var style=getComputedStyle(obj);

	var theselector=document.getElementById("cms_position")
	for (var i=1 ; i< theselector.options.length ; i++){
		if (theselector.options[i].value == style.getPropertyValue("position")){
			theselector.options[i].selected = true;
		}else theselector.options[i].selected = false;
	}
	var theselector=document.getElementById("cms_float")
	for (var i=1 ; i< theselector.options.length ; i++){
		if (theselector.options[i].value == style.getPropertyValue("float")){
			theselector.options[i].selected = true;
		}else theselector.options[i].selected = false;
	}
	var theselector=document.getElementById("cms_visibility")
	for (var i=1 ; i< theselector.options.length ; i++){
		if (theselector.options[i].value == style.getPropertyValue("visibility")){
			theselector.options[i].selected = true;
		}else theselector.options[i].selected = false;
	}
	var theselector=document.getElementById("cms_display")
	for (var i=1 ; i< theselector.options.length ; i++){
		if (theselector.options[i].value == style.getPropertyValue("display")){
			theselector.options[i].selected = true;
		}else theselector.options[i].selected = false;
	}

	cms_gen_objet_css("cms_left",style.left,id);
	cms_gen_objet_css("cms_top",style.top,id);
	cms_gen_objet_css("cms_zIndex",style.zIndex,id);

	cms_gen_objet_css("cms_height",style.height,id);
	cms_gen_objet_css("cms_width",style.width,id);
	cms_gen_objet_css("cms_margin_top",style.getPropertyValue("margin-top"),id);
	cms_gen_objet_css("cms_margin_right",style.getPropertyValue("margin-right"),id);
	cms_gen_objet_css("cms_margin_bottom",style.getPropertyValue("margin-bottom"),id);
	cms_gen_objet_css("cms_margin_left",style.getPropertyValue("margin-left"),id);
	cms_gen_objet_css("cms_padding_top",style.getPropertyValue("padding-top"),id);
	cms_gen_objet_css("cms_padding_right",style.getPropertyValue("padding-right"),id);
	cms_gen_objet_css("cms_padding_bottom",style.getPropertyValue("padding-bottom"),id);
	cms_gen_objet_css("cms_padding_left",style.getPropertyValue("padding-left"),id);

	document.getElementById("cms_display").value=style.getPropertyValue("display");

}
function cms_desel_all_obj(){
	var objects = parent.frames['opac_frame'].document.getElementsByClassName("cms_drag");
	for(var i=0 ; i<objects.length ; i++){
		objects[i].classList.remove("cms_drag");
	}
}

function cms_show_obj(id){
	var obj=parent.frames['opac_frame'].document.getElementById(id);

	if(obj.classList.contains("cms_drag")){
		obj.classList.remove("cms_drag");
	} else {
		cms_desel_all_obj();
		obj.classList.add("cms_drag");
		obj.style.visibility="visible";
		obj.style.display="block";
		cms_show_css_obj(id);
	}
}

function cms_add_obj_link(node,id){
	cms_build_obj_list_id[cms_build_obj_list_id.length]=id;
	cms_build_obj_list_type[cms_build_obj_list_id.length]=node;

	var tr=document.createElement('tr');
	if(cms_build_obj_list_id.length %2) var odd_even='odd';
	else var odd_even='even';
	tr.setAttribute('class', odd_even);
	tr.style.cursor= 'pointer';
	tr.setAttribute('onmouseout', "this.className='"+odd_even+"'");
	tr.setAttribute('onmouseover', "this.className='surbrillance'");
	tr.setAttribute("onclick", "cms_show_obj('"+id+"'); return false;");
	var tn = document.createTextNode(cms_name_list[id]);
	tr.appendChild(tn);
	document.getElementById(node+'_table').appendChild(tr);
}

function cms_deplacement_activate(){
	var cell = document.getElementById("cms_edit_sel_objet_list_table");
	while(cell.childNodes.length)	cell.removeChild(cell.firstChild);
	var cell = document.getElementById("cms_edit_sel_cadre_list_table");
	while(cell.childNodes.length)	cell.removeChild(cell.firstChild);

	cms_build_obj_list_id=new Array();
	cms_build_obj_list_type=new Array();

	var opac=parent.frames['opac_frame'];
	for(var i=0;i<cms_objet_list.length;i++){
		if(opac.document.getElementById(cms_objet_list[i])) cms_add_obj_link("cms_edit_sel_objet_list",cms_objet_list[i]);
	}
	for(var i=0;i<cms_zone_list.length;i++){
		if(opac.document.getElementById(cms_zone_list[i])) cms_add_obj_link("cms_edit_sel_cadre_list",cms_zone_list[i]);
	}

}

function cms_build_mouse_down(e) {
	//On annule tous les comportements par defaut du navigateur (ex : selection de texte)
	if (!e) var e=window.event;
	if (e.stopPropagation) {
		e.preventDefault();
		e.stopPropagation();
	} else {
		e.cancelBubble=true;
		e.returnValue=false;
	}
    if ('which' in e) {
        switch (e.which) {
	        case 3: // right button
	        	cms_build_mouse_right(e);
	        	return;
	        break;
        }

	}
}

function cms_drag_activate_obj(id,actif) {
	var obj=parent.frames['opac_frame'].document.getElementById(id);
	if(obj){
		if(actif){
			obj.setAttribute('draggable', 'yes');
			obj.setAttribute('dragtype', 'opacdrop');
			obj.setAttribute('oncontextmenu', 'return false');
		} else{
			obj.setAttribute('draggable', 'no');
			obj.setAttribute('dragtype', 'opacdrop');
			obj.setAttribute('oncontextmenu', '');

		}
		var list_id=document.getElementById('cms_edit_sel_objet_list');
	}
}

function cms_drop_activate_obj(id,actif) {
	var obj=parent.frames['opac_frame'].document.getElementById(id);
	if(obj){
		if(actif){
			obj.setAttribute('recept', 'yes');
			obj.setAttribute('recepttype', 'opacdrop');
			obj.setAttribute('downlight', 'cms_block_downlight');
			obj.setAttribute('highlight', 'cms_block_highlight');
			obj.setAttribute('oncontextmenu', 'return false');
		} else {
			obj.setAttribute('recept', 'no');
			obj.setAttribute('recepttype', 'opacdrop');
			obj.setAttribute('downlight', '');
			obj.setAttribute('highlight', '');
			obj.setAttribute('oncontextmenu', '');
		}
	}
}

function cms_drag_activate(actif,cms_dragable_type,cms_receptable_type) {

	if(typeof netscape !== 'undefined') {
		if(netscape.security.PrivilegeManager)netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
	}
	cms_memo_opacdrop =new Array();

	var opac=parent.frames['opac_frame'];
	// cadres d�placables
	var activer=0;
	if(cms_dragable_type=="cadre")	activer=actif;

	// pour toutes les zones d�clar�e dans le xml, on va chercher les childNodes div (soit les cadres )
	for(var i=0;i<cms_zone_list.length;i++){
		var div_zone=opac.document.getElementById(cms_zone_list[i]);
		if(div_zone)
		for(var j=0;j<div_zone.childNodes.length;j++){
			if(div_zone.childNodes[j].nodeType == 1){
				if(div_zone.childNodes[j].getAttribute("id")){
					// c'est un cadre du type <div id='XXXX'
					var div_cadre=div_zone.childNodes[j].getAttribute('id');
					// on active annule le d�placement du cadre
					cms_drag_activate_obj(div_cadre,activer);
				}
			}
		}
	}

	if(cms_dragable_type=="zone"){
		for(var i=0;i<cms_zone_list_dragable.length;i++){
			// if(opac.document.getElementById(cms_zone_list[i])) cms_drag_activate_obj(cms_zone_list[i],actif);
			if(opac.document.getElementById(cms_zone_list_dragable[i])) cms_drag_activate_obj(cms_zone_list_dragable[i],actif);
		}
	}else{
		for(var i=0;i<cms_zone_list_dragable.length;i++){
			//if(opac.document.getElementById(cms_zone_list[i])) cms_drag_activate_obj(cms_zone_list[i],0);
			if(opac.document.getElementById(cms_zone_list_dragable[i])) cms_drag_activate_obj(cms_zone_list_dragable[i],0);
		}
	}
	// R�cepteurs ( 'zone' ou 'conteneur' )
	if(cms_receptable_type=="zone" && cms_dragable_type!="zone"){
		for(var i=0;i<cms_zone_list.length;i++){
			if(cms_zone_list[i]!="main")
			if(opac.document.getElementById(cms_zone_list[i])) cms_drop_activate_obj(cms_zone_list[i],actif);
		}
	}else{
		for(var i=0;i<cms_zone_list.length;i++){
			if(opac.document.getElementById(cms_zone_list[i])) cms_drop_activate_obj(cms_zone_list[i],0);
		}
	}
	if(cms_receptable_type=="conteneur" ||  cms_dragable_type=="zone"){
		for(var i=0;i<cms_contener_list.length;i++){
			if(opac.document.getElementById(cms_contener_list[i])) cms_drop_activate_obj(cms_contener_list[i],actif);
		}
	}else{
		for(var i=0;i<cms_contener_list.length;i++){
			if(opac.document.getElementById(cms_contener_list[i])) cms_drop_activate_obj(cms_contener_list[i],0);
		}
	}
	cms_init_drag();
	cms_deplacement_activate();
}

function serialize (txt) {
	switch(typeof(txt)){
	case 'string':
		return 's:'+txt.length+':\"'+txt+'\";';
	case 'number':
		if(txt>=0 && String(txt).indexOf('.') == -1 && txt < 65536) return 'i:'+txt+';';
		return 'd:'+txt+';';
	case 'boolean':
		return 'b:'+( (txt)?'1':'0' )+';';
	case 'object':
		var i=0,k,ret='';
		for(k in txt){
			//alert(isNaN(k));
			if(!isNaN(k)) k = Number(k);
			ret += serialize(k)+serialize(txt[k]);
			i++;
		}
		return 'a:'+i+':{'+ret+'}';
	default:
		return 'N;';
		alert('var undefined: '+typeof(txt));return undefined;
	}
}

function cms_drag_record() {
	cms_desel_all_obj();

	var page_info=new Array();
	page_info['cms_nodes']=new Array();


	var opac=parent.frames['opac_frame'];
	var contener_name=cms_contener_list[0];
	page_info['cms_nodes'][0]=new Array();
	var nb_zone=0;
	var zone_index=new Array();
	var contener=opac.document.getElementById(contener_name);
	var zone_name="";
	for(var cpt_zone=0;cpt_zone<contener.childNodes.length;cpt_zone++){
		if(contener.childNodes[cpt_zone].nodeType == 1){
			zone_name=contener.childNodes[cpt_zone].getAttribute("id")
			if(zone_name && zone_name!='cms_build_info'){
				var obj_zone=opac.document.getElementById(zone_name);
				page_info['cms_nodes'][0][nb_zone]=new Array();
				page_info['cms_nodes'][0][nb_zone]['name']=zone_name;
				if(obj_zone.style.cssText){
					page_info['cms_nodes'][0][nb_zone]['style']=obj_zone.style.cssText;
				}
				zone_index[zone_name]=nb_zone;
				nb_zone++;
			}
		}
	}

	var index=0;
	for(var i=0;i<cms_zone_list.length;i++){
		var zone_name=cms_zone_list[i]; // bandeau ...
		var obj_zone=opac.document.getElementById(zone_name); // objet element

		if(obj_zone){
			// zone pr�sente dans la page

			if(zone_index[zone_name]!=null){
				index=zone_index[zone_name];
			}else{
				index=nb_zone;
				page_info['cms_nodes'][0][index]=new Array();
				page_info['cms_nodes'][0][index]['name']=zone_name;
			}

			page_info['cms_nodes'][0][index]['parent']=obj_zone.parentNode.id;

			if(obj_zone.style.cssText){
				page_info['cms_nodes'][0][index]['style']=obj_zone.style.cssText;
			}
			// pour tout les cadres dans la zone
			page_info['cms_nodes'][0][index]['childs']=new Array();
			var nb_cadre=0;
			for(var j=0;j<obj_zone.childNodes.length;j++){
				if(obj_zone.childNodes[j].nodeType == 1){
					if(obj_zone.childNodes[j].getAttribute("id")){
						var cadre_name=obj_zone.childNodes[j].getAttribute("id"); // Acceuil, Adresse ...
						var obj_cadre=obj_zone.childNodes[j]; // objet element
						var cadre_fixed=obj_zone.childNodes[j].getAttribute("fixed");
						page_info['cms_nodes'][0][index]['childs'][nb_cadre]=new Array();
						page_info['cms_nodes'][0][index]['childs'][nb_cadre]['name']=cadre_name;
						page_info['cms_nodes'][0][index]['childs'][nb_cadre]['fixed']=(cadre_fixed ? true : false);

						if(obj_zone.childNodes[j].getAttribute("type")=="cms_module_hidden"){
							page_info['cms_nodes'][0][index]['childs'][nb_cadre]['style']=obj_zone.childNodes[j].getAttribute("cadre_style");
						}
						else if(obj_cadre.style.cssText){
							page_info['cms_nodes'][0][index]['childs'][nb_cadre]['style']=obj_cadre.style.cssText;
						}

						// insertion d'un <div class raw
						var div_name='add_div_'+cadre_name;
				    	var obj_div=parent.frames['opac_frame'].document.getElementById(div_name);
				    	if(obj_div){
				    		page_info['cms_nodes'][0][index]['childs'][nb_cadre]['build_div']=1;
				    	}

				    	nb_cadre++;
					}
				}
			}
			if(!zone_index[zone_name])nb_zone++;
		}
	}
	//console.log('page_info',page_info);

	// Contexte de la page Opac: cms_build_info
	var cms_build_info = parent.frames['opac_frame'].document.getElementById('cms_build_info');
	var cms_build_info_value = "";
	if (cms_build_info) {
		cms_build_info_value = cms_build_info.value;
	}
	var post_data='cms_data='+serialize(page_info)+'&cms_build_info='+cms_build_info_value;
	// Envoi du tout au serveur
	var http=new http_request();
	var url = './ajax.php?module=cms&categ=build&sub=block&action=save';
	http.request(url,true,post_data);
	return http.get_text();
}

function get_cadres_list(){
	var opac=parent.frames['opac_frame'];
	cadre_list=new Array();
	var nb_cadre=0;
	for(var i=0;i<cms_zone_list.length;i++){
		var zone_name=cms_zone_list[i]; // bandeau ...
		var obj_zone=opac.document.getElementById(zone_name); // objet element
		if(obj_zone){
			// zone pr�sente dans la page
			for(var j=0;j<obj_zone.childNodes.length;j++){
				if(obj_zone.childNodes[j].nodeType == 1){
					if(obj_zone.childNodes[j].getAttribute("id")){
						if(obj_zone.childNodes[j].getAttribute("type")=="cms_module_hidden") continue;
						var cadre_name=obj_zone.childNodes[j].getAttribute("id"); // Acceuil, Adresse ...
						cadre_list[nb_cadre++]=cadre_name;
					}
				}
			}
		}
	}
	return cadre_list;
}

function get_frbr_cadres_list(){
	var opac=parent.frames['opac_frame'];
	frbr_cadres_list=new Array();
	var nodes = opac.document.querySelectorAll('*[data-frbr-cadre]');
	for (var i = 0; i < nodes.length; i++) {
		frbr_cadres_list.push(nodes[i].getAttribute("data-frbr-cadre"));
	}
	return frbr_cadres_list;
}

function cms_build_new_cadre(name,contens){
	cadre =  parent.frames['opac_frame'].document.getElementById(name);
	if(cadre){
		cms_show_obj(name);
	}else{
		new_cadre=parent.frames['opac_frame'].document.createElement("div");
		new_cadre.setAttribute("id",name);
		//new_cadre.setAttribute('handler',targ.getAttribute("handler"));
		new_cadre.className="dragged cms_drag";
		new_cadre.setAttribute('draggable', 'yes');
		new_cadre.setAttribute('dragtype', 'opacdrop');
		new_cadre.setAttribute('oncontextmenu', 'return false');


		new_cadre.innerHTML=contens;
		new_cadre=parent.frames['opac_frame'].document.getElementById("main_hors_footer").appendChild(new_cadre);

		var main_hors_footer=parent.frames['opac_frame'].document.getElementById("main_hors_footer");
		if(main_hors_footer.firstChild) main_hors_footer.insertBefore(new_cadre,main_hors_footer.firstChild);
		else main_hors_footer.appendChild(new_cadre);
		cms_build_obj_list_id[cms_build_obj_list_id.length] = name;
		cms_build_obj_list_type[cms_build_obj_list_id.length]=new_cadre;
		new_cadre.style.visibility="visible";
	}
}


function cms_build_load_cadres_in_page_list(){
	var http=new http_request();

	var url = './ajax.php?module=cms&categ=module&action=cadres_list_in_page';
	var opac=parent.frames['opac_frame'];
	for(var i=0;i<cadre_list.length;i++){

		if(opac.document.getElementById(cadre_list[i])){
			url+='&in_page[]='+cadre_list[i];
		}
	}
	http.request(url);
	return http.get_text();
}

function cms_build_load_cadres_not_in_page_list(){
	var http=new http_request();

	var url = './ajax.php?module=cms&categ=module&action=cadres_list_not_in_page';
	var opac=parent.frames['opac_frame'];
	for(var i=0;i<cadre_list.length;i++){
		if(opac.document.getElementById(cadre_list[i])){
			url+='&in_page[]='+cadre_list[i];
		}
	}
	http.request(url);
	return http.get_text();
}

function cms_build_load_cadres_not_in_cms_list(){
	var http=new http_request();

	var url = './ajax.php?module=cms&categ=module&action=cadres_list_not_in_cms';
	var opac=parent.frames['opac_frame'];
	for(var i=0;i<cadre_list.length;i++){
		if(opac.document.getElementById(cadre_list[i])){
			url+='&in_page[]='+cadre_list[i];
		}
	}
	http.request(url);
	return http.get_text();
}

function cms_build_load_frbr_cadres_in_page_list(){
	//on recalcule le liste des cadres de la page
	get_frbr_cadres_list();
	
	var http=new http_request();

	var url = './ajax.php?module=cms&categ=module&action=frbr_cadres_list_in_page';
	for(var i=0;i<frbr_cadres_list.length;i++){
		url+='&in_page[]='+frbr_cadres_list[i];
	}
	http.request(url);
	return http.get_text();
}

function cms_build_save_cadre_classement(id_cadre,classement){
	var http=new http_request();
	var url = './ajax.php?module=cms&categ=module&action=cadre_save_classement';
	url+='&id_cadre='+id_cadre;
	url+='&classement='+classement;
	http.request(url);
	return http.get_text();
}

function cms_build_unchain_cadre(id_cadre){
	var http=new http_request();
	var url = './ajax.php?module=cms&categ=module&action=unchain_cadre';
	url+='&id_cadre='+id_cadre;
	http.request(url);
	return http.get_text();
}

function cms_build_save_page_classement(id_page,classement){
	var http=new http_request();
	var url = './ajax.php?module=cms&categ=page&action=page_save_classement';
	url+='&id_page='+id_page;
	url+='&classement='+classement;
	http.request(url);
	return http.get_text();
}

function cms_build_init(){

}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists