
// -------------------------------
// EQUALISE COLUMN HEIGHTS ON DRAG
// -------------------------------
//function columnHeight(){
	//document.getElementById("contentwrapper").style.height="auto";
	//document.getElementById("contentwrapper").style.height=document.getElementById("contentwrapper").offsetHeight+"px";
//}
//columnHeight();






// -----------------------------------------------
// DISPLAY/HIDE CONTACT DETAILS IN CONTACTS MODULE
// -----------------------------------------------
function displaycontact(objectparent,strContact){
	var objectcontainer=objectparent.parentNode.parentNode.parentNode.parentNode.id;
	var divelements = Dom.getElementsByClassName(strContact,"div",objectcontainer);
	var divdisplay = Dom.getStyle(divelements[0],"display"); 
	if(divdisplay=="block"){
	        Dom.setStyle(divelements[0],"display","none");
	}else{
	        Dom.setStyle(divelements[0],"display","block");
	}
}




// -------------------------------
// DISPLAY/HIDE MODULE EDIT FIELDS
// -------------------------------
function editcomponent(objectparent){
	var objectcontainer=objectparent.parentNode.parentNode.id;
	var divelements = Dom.getElementsByClassName("edit","div",objectcontainer);
	var divdisplay = Dom.getStyle(divelements[0],"display"); 
	if(divdisplay=="block"){
	        Dom.setStyle(divelements[0],"display","none");
		DDM.unlock();
	}else{
	        Dom.setStyle(divelements[0],"display","block");
		DDM.lock();
	}
}



// -------------------------
// MAXIMISE/MINIMISE MODULES
// -------------------------
function switchview(objectparent,objectclose){
	var objectcontainer=objectparent.parentNode.parentNode.id;
	if(objectclose){
		//CLOSE THE MODULE
		var headers = document.getElementById(objectcontainer).getElementsByTagName("h2");
		    moduleheader=headers[0].id;
		if(moduleheader=="contact"){
			var arrContacts=new Array("contactcorporate","contactmedia","contactinvestor","contactenvironmental","contactcareers","contactgraduates","contactprocurement","contactcustomer");
			for(x in arrContacts){
				var contactoption=document.getElementById("option2_"+arrContacts[x]);
				if(contactoption){contactoption.checked=false;}
			}
		}else{
			var resetoption = document.getElementById("option2_"+moduleheader);
			if(resetoption){resetoption.checked=false;}
		}
		var removeobject = document.getElementById(objectcontainer);
		    removeobject.parentNode.removeChild(removeobject);
		CloseItemObject.startRequest();
	}else{
	        var objectstate=Dom.hasClass(objectcontainer,"closed");
	        var objectimages=Dom.getElementsByClassName("viewcontrol","img",objectcontainer);
		if(objectstate){
			//CHANGE MINIMISED TO MAXIMISED
		        Dom.removeClass(objectcontainer,"closed");
			var divelements = Dom.getElementsByClassName("box","div",objectcontainer);
		        Dom.setStyle(divelements[0],"display","block");
			var divelements = Dom.getElementsByClassName("editcontrol","img",objectcontainer);
		        Dom.setStyle(divelements[0],"display","inline");
			objectimages[0].src="images/b_minimise.gif";
			objectimages[0].alt="Minimise";
			objectimages[0].title="Minimise this box";
			modulestate="show";
		}else{
			//CHANGE MAXIMISED TO MINIMISED
		        Dom.addClass(objectcontainer,"closed");
			var divelements = Dom.getElementsByClassName("box","div",objectcontainer);
	        	Dom.setStyle(divelements[0],"display","none");
			var divelements = Dom.getElementsByClassName("edit","div",objectcontainer);
	        	Dom.setStyle(divelements[0],"display","none");
			var divelements = Dom.getElementsByClassName("editcontrol","img",objectcontainer);
		        Dom.setStyle(divelements[0],"display","none");
			objectimages[0].src="images/b_maximise.gif";
			objectimages[0].alt="Maximise";
			objectimages[0].title="Maximise this box";
			modulestate="hide";
		}
		//SAVE NEW STATE
		var headers = document.getElementById(objectcontainer).getElementsByTagName("h2");
		moduleheader=headers[0].id;
		ViewStateObject.startRequest();
	}
	DDM.unlock();
}
var ViewStateObject = {
	handleSuccess:function(o){},
	handleFailure:function(o){},
	startRequest:function(){
		DAR.asyncRequest("POST","components/query_moduleviewstate.asp",ViewStatecallback,"module="+moduleheader+"&state="+modulestate);
	}
};
var ViewStatecallback = {
	success:ViewStateObject.handleSuccess,
	failure:ViewStateObject.handleFailure,
	scope:ViewStateObject
};
var CloseItemObject = {
	handleSuccess:function(o){},
	handleFailure:function(o){o},
	startRequest:function(){
		DAR.asyncRequest("POST","components/query_moduleremove.asp",CloseItemcallback,"module="+moduleheader);
	}
};
var CloseItemcallback = {
	success:CloseItemObject.handleSuccess,
	failure:CloseItemObject.handleFailure,
	scope:CloseItemObject
};






// ---------------------------------------
// SAVE COLUMN ORDER TO DATABASE ON CHANGE
// ---------------------------------------
function columnOrder(){
	var out="";
        for (x=1;x<=3;x=x+1) {
		ul=Dom.get("ul"+x)
		var items = ul.getElementsByTagName("li");
		for (i=0;i<items.length;i=i+1) {
			try{
				var headers = document.getElementById(items[i].id).getElementsByTagName("h2");
				for (j=0;j<headers.length;j=j+1){
					out+=headers[j].id+",";
				}
			}catch(err){}
		}
		eval("column"+x+"=out;")
		out="";	
	}
	ColumnUpdateObject.startRequest();
}
var ColumnUpdateObject = {
	handleSuccess:function(o){},
	handleFailure:function(o){},
	startRequest:function(){
		DAR.asyncRequest("POST","components/query_columnorderupdate.asp",columnscallback,"column1="+column1+"&column2="+column2+"&column3="+column3);
	}
};
var columnscallback = {
	success:ColumnUpdateObject.handleSuccess,
	failure:ColumnUpdateObject.handleFailure,
	scope:ColumnUpdateObject
};



// ----------------------------
// DRAG AND DROP LIST FUNCTIONS
// ----------------------------
(function() {

	// CONFIGURE LIST OBJECTS
	YAHOO.mycentrica.DDApp = {
		init: function() {
			var rows=20,cols=3,i,j;
			for (i=1;i<=cols;i=i+1) {
				new YAHOO.util.DDTarget("ul"+i);
			}
			for (i=1;i<=cols;i=i+1) {
				for (j=2;j<rows+1;j=j+1) {
					new YAHOO.mycentrica.DDList("li" + i + "_" + j);
				}
			}
		}
	};

	// CONSTRUCT DRAG LIST
	YAHOO.mycentrica.DDList = function(id, sGroup, config) {
		YAHOO.mycentrica.DDList.superclass.constructor.call(this, id, sGroup, config);
		var el = this.getDragEl();
		Dom.setStyle(el, "opacity", 0.7);
		this.goingUp = false;
		this.lastY = 0;
	};

	// DRAG AND DROP FUNCTIONALITY
	YAHOO.extend(YAHOO.mycentrica.DDList, YAHOO.util.DDProxy, {
		startDrag: function(x, y) {
			var dragEl = this.getDragEl();
			var clickEl = this.getEl();
			var parentClasses=document.getElementById(clickEl.id).className;
			dragEl.innerHTML = clickEl.innerHTML;

			if(parentClasses.indexOf("closed")>=0){
				Dom.get(dragEl).className = "draggedElement draggedElementClosed";
			}else{
				Dom.get(dragEl).className = "draggedElement";
			}



			Dom.setStyle(clickEl, "visibility", "hidden");
			Dom.setStyle(dragEl, "height", (document.getElementById(clickEl.id).offsetHeight-10));












		},
		endDrag: function(e) {
			var srcEl = this.getEl();
			var proxy = this.getDragEl();
			Dom.setStyle(proxy, "visibility", "");
			var a = new YAHOO.util.Motion( 
				proxy, { 
					points: { 
						to: Dom.getXY(srcEl)
					}
				}, 
				0.2, 
				YAHOO.util.Easing.easeOut 
			)
			var proxyid = proxy.id;
			var thisid = this.id;
			a.onComplete.subscribe(function() {
				Dom.setStyle(proxyid, "visibility", "hidden");
				Dom.setStyle(thisid, "visibility", "");
				columnOrder();
			});
			a.animate();
			Dom.removeClass("ul1","hover");
			Dom.removeClass("ul2","hover");
			Dom.removeClass("ul3","hover");
		},
		onDragDrop: function(e, id) {
			if (DDM.interactionInfo.drop.length === 1) {
				var pt = DDM.interactionInfo.point; 
				var region = DDM.interactionInfo.sourceRegion; 
				if (!region.intersect(pt)) {
					var destEl = Dom.get(id);
					var destDD = DDM.getDDById(id);
					destEl.appendChild(this.getEl());
					destDD.isEmpty = false;
					DDM.refreshCache();
				}
			}
		},
		onDrag: function(e) {
			var y = Event.getPageY(e);
			if (y<this.lastY) {
				this.goingUp = true;
			} else if (y>this.lastY) {
				this.goingUp = false;
			}
			this.lastY = y;
		},
		onDragOut: function(e, id) {
			var srcEl = this.getEl();
			var destEl = Dom.get(id);
			Dom.removeClass(destEl.id,"hover");
		},
		onDragOver: function(e, id) {
			var srcEl = this.getEl();
			var destEl = Dom.get(id);
			Dom.addClass(destEl.id,"hover");
			if (destEl.nodeName.toLowerCase() == "li") {
				var orig_p = srcEl.parentNode;
				var p = destEl.parentNode;
				if (this.goingUp) {
					p.insertBefore(srcEl, destEl); // insert above
				} else {
					p.insertBefore(srcEl, destEl.nextSibling); // insert below
				}
				DDM.refreshCache();
			}
		}
	});

	// START DRAG OBJECT ON PAGE READY
	Event.onDOMReady(YAHOO.mycentrica.DDApp.init, YAHOO.mycentrica.DDApp, true);

})();
