/* Harmen.CHRISTOPHE
 * classe qui permet de gérer le drag & drop dans le CMS  V2.0.2
 */
YAHOO.namespace("cms");
YAHOO.cms.DDApp = {
	init: function () {
		YAHOO.util.DDM.mode = YAHOO.util.DDM.POINT;
		
		var mdlContainer1Id = YAHOO.cms.DDApp.mdlContainer1Id;
		var mdlContainer2Id = YAHOO.cms.DDApp.mdlContainer2Id;
		var parContainerId = YAHOO.cms.DDApp.parContainerId;
		
		var targetMdl1 = new YAHOO.util.DDTarget(mdlContainer1Id,"modules");
		var targetMdl2 = new YAHOO.util.DDTarget(mdlContainer2Id,"modules");
		var targetPar = new YAHOO.util.DDTarget(parContainerId,"paragraphes");
		
		var cModules = [];
		if (document.getElementById(mdlContainer1Id)) {
		  cModules = YAHOO.util.Dom.getElementsByClassName("edition",null,document.getElementById(mdlContainer1Id));
        }
        if (document.getElementById(mdlContainer2Id)) {
            cModules = cModules.concat(YAHOO.util.Dom.getElementsByClassName("edition",null,document.getElementById(mdlContainer2Id)));
		}
		var modulesDD = new Array();
        for (var i=0; cModules[i]; i++) {
	  		modulesDD.push(new YAHOO.cms.DragDrop(cModules[i].id, "modules"));
		}
	  
        var cParagraphes = YAHOO.util.Dom.getElementsByClassName("edition",null,document.getElementById(parContainerId));
        var paragraphesDD = new Array();
        for (var j=0; cParagraphes[j]; j++) {
            paragraphesDD.push(new YAHOO.cms.DragDrop(cParagraphes[j].id, "paragraphes"));
        }
    },
	
	makeRequest: function(sUrl) {
		var callback = {
			success: function(o) {
				if (o.responseText!="OK") {callback.failure(o)};
			},
			failure: function(o) {
				if (o.getResponseHeader["Content-Type"].indexOf("text/plain")!=-1) {
					alert("A error occur :\n"+o.responseText);
				} else {
					var tmpNode = document.createElement("div");
					tmpNode.innerHTML = o.responseText;
					alert("A error occur :\n"+ getTextContent(tmpNode));
				}
				function getTextContent(oNode) {
					if (typeof(oNode.textContent)!="undefined") {return oNode.textContent;}
					switch (oNode.nodeType) {
						case 3: // TEXT_NODE
						case 4: // CDATA_SECTION_NODE
							return oNode.nodeValue;
							break;
						case 7: // PROCESSING_INSTRUCTION_NODE
						case 8: // COMMENT_NODE
							if (getTextContent.caller!=getTextContent) {
								return oNode.nodeValue;
							}
							break;
						case 9: // DOCUMENT_NODE
						case 10: // DOCUMENT_TYPE_NODE
						case 12: // NOTATION_NODE
							return null;
							break;
					}
					var _textContent="";
					oNode=oNode.firstChild;
					while (oNode) {
						_textContent += getTextContent(oNode);
						oNode = oNode.nextSibling;
					}
					return _textContent;
				}
			}
		};
		var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
	}
}
YAHOO.util.Event.addListener(window, "load", YAHOO.cms.DDApp.init);
