/* |######################################################################| *\
    Function    : 
    Description of project : JavaScript:(1) List needed start variables
	                                    (2) Open js files function
										(3) Create dwg3DWorld.js
										
							HTML Layout:(1)
							            (2)
										(3)
    Usage       : 
    Arguments   : 
\* |######################################################################| */
//------------------\\
var READY=0; //flag to indicate whether target function has already been run
//------------------\\
var DATA_CONSOLE=false; //flag
var DATA_NUM=0; //
var DATA_LINE=""; //
//------------------\\
var INC_FILES = new Array("js/swfobject.js", "js/common.js", "js/category.js", "js/product.js", "js/dwgInit.js", "js/dwgCommon.js", "js/dwgCss.js", "js/dwgClass.js", "js/dropdown.js", "js/border-radius.js", "js/editor.js", "js/dwgDragTree.js");
/* , "dwg_data/js/dwgInit.js", "dwg_data/js/dwgCommon.js", "dwg_data/js/dwgCss.js" */
/*, "dwg_data/js/dwgScale.js"*/
//------------------\\
var dwg = {	

    //---------------------------------------------------install START---------------------------------------------------\\ 
	install : function() {
		dwg.hookEvent(window, 'load', dwg.init);
        dwg.includeFiles(INC_FILES);
	},
	//---------------------------------------------------install END---------------------------------------------------\\ 
	//---------------------------------------------------init START---------------------------------------------------\\ 	
	init : function() {
	    READY=1;		
		//dwg.dataConsole();
		//initCorners();
		dwgInit.RUN();
		//
		//if( dwg.getRefToElement("dwg_data_console") ) { dwg.getRefToElement("dwg_data_console").value += 'READY: '+READY+'\r\n'; }
		//alert("Start");
	},
	//---------------------------------------------------init END---------------------------------------------------\\ 
	//---------------------------------------------------getRefToElement START---------------------------------------------------\\ 	
	getRefToElement : function(e) {
	    if(typeof(e) == "string") {
	        if( document.layers ) { return elementLayer(e); }
	        if( document[e] ) { return document[e]; }
	        if( document.getElementById ) { return document.getElementById(e); }
	        if( document.all ) { return document.all[e]; }
	    } else {
	        e=null;
            return e;
	    }	
    },//Usage: var helpMe = dwg.getRefToElement('helpDiv');

    elementLayer : function(id,root) { // only for nn4
        var i,layer,found=null;
        if (!root) root=window;
        for(i=0; i<root.document.layers.length; i++) {
            layer=root.document.layers[i];
            if(layer.id==id) return layer;
            if(layer.document.layers.length) found=xLayer(id,layer);
            if(found) return found;
        }
        return null;
    }, //   
	//---------------------------------------------------getRefToElement END---------------------------------------------------\\ 
	//---------------------------------------------------hookEvent START---------------------------------------------------\\ 	
	hookEvent : function(e,eventType,eventListener,useCapture) {
		
		if(!(e=dwg.getRefToElement(e))) return;
		
        eventType=eventType.toLowerCase();
        if((!IE4Up && !Op7) && e==window) {
            //if(eventType=='resize') { window.xPCW=xClientWidth(); window.xPCH=xClientHeight(); window.xREL=eventListener; xResizeEvent(); return; }
            //if(eventType=='scroll') { window.xPSL=xScrollLeft(); window.xPST=xScrollTop(); window.xSEL=eventListener; xScrollEvent(); return; }
        }
        var eh="e.on"+eventType+"=eventListener";
        if(e.addEventListener) e.addEventListener(eventType,eventListener,useCapture);
        else if(e.attachEvent) e.attachEvent("on"+eventType,eventListener);
        else if(e.captureEvents) {
        if(useCapture||(eventType.indexOf('mousemove')!=-1)) { e.captureEvents(eval("Event."+eventType.toUpperCase())); }
        eval(eh);
        }
        else eval(eh);	
			
	},
	//---------------------------------------------------hookEvent END---------------------------------------------------\\ 
	//---------------------------------------------------unhookEvent START---------------------------------------------------\\ 	
	unhookEvent : function(e,eventType,eventListener,useCapture) {
        
		if(!(e=dwg.getRefToElement(e))) return;
        eventType=eventType.toLowerCase();
        if((!IE4Up && !Op7) && e==window) {
            if(eventType=='resize') { window.xREL=null; return; }
            if(eventType=='scroll') { window.xSEL=null; return; }
        }
        var eh="e.on"+eventType+"=null";
        if(e.removeEventListener) e.removeEventListener(eventType,eventListener,useCapture);
        else if(e.detachEvent) e.detachEvent("on"+eventType,eventListener);
        else if(e.releaseEvents) {
            if(useCapture||(eventType.indexOf('mousemove')!=-1)) { e.releaseEvents(eval("Event."+eventType.toUpperCase())); }
            eval(eh);
        }
        else eval(eh);	
			
			
			
    },
	//---------------------------------------------------unhookEvent END---------------------------------------------------\\		
	//---------------------------------------------------getVirtualDirectory START---------------------------------------------------\\ 
	getDirectory : function() {
        var vDir = document.location.pathname.split('/');
        return '/' + vDir[1] + '/';
    },
	//---------------------------------------------------getVirtualDirectory END---------------------------------------------------\\	
	//---------------------------------------------------getFileExt START---------------------------------------------------\\ 	
	getExt : function(src){
		return  ftype = src.substring(src.lastIndexOf('.'), src.length);
	},//Usage: dwg.getExt(src);
	//---------------------------------------------------getFileExt END---------------------------------------------------\\
	//---------------------------------------------------createElement START---------------------------------------------------\\ 
    createElement : function(node, _tag, _id, _class, _type, _value, _style, _position, _top, _left, _z, _height, _width, _cols, _rows, _rel, _media, _href, _source, _ihtml) {
        //var w = screen.availWidth, h = screen.availHeight, _w = 215, _h = 190, y, x;
		//var _root = document.getElementsByTagName('body')[0];
		//node = node || document.body;
        if (!dwg.getRefToElement(_id)) {
		    if (_tag!='') {var el = document.createElement(_tag);}else{var el = document.createElement("div");}
		    if (_id!='') {el.id = _id;}
		    if (_class!='') {el.className = _class;}
		    if (_type!='') {el.type = _type;}
		    if (_value!='') {el.value = _value;}
		    if (_style!='') {el.setAttribute("style", _style);}
            if (_position!='') {el.style.position = _position;}
		    if (_top!='') {el.style.top = _top;}
		    if (_left!='') {el.style.left = _left;}
		    if (_z!='') {el.style.zIndex = _z;}
		    if (_height!='') {el.style.height = _height;}
		    if (_width!='') {el.style.width = _width;}
		    if (_cols!='') {el.setAttribute("cols", _cols);}
		    if (_rows!='') {el.setAttribute("rows", _rows);}
		    if (_rel!='') {el.rel = _rel;}
		    if (_media!='') {el.media = _media;}
		    if (_href!='') {el.href = _href;}
			if (_source!='') {el.src = _source;}
		    if (_ihtml!='') {el.innerHTML = _ihtml;}
		    if (node!='') {node.appendChild(el);}
        }
		
    },//dwg.createElement(node, _tag, _id, _class, _type, _value, _style, _position, _top, _left, _z, _height, _width, _cols, _rows, _rel, _media, _href, _source, _ihtml);
	  //var _body = document.getElementsByTagName('body')[0];
	  //dwg.createElement(document.body, "input", "dwgFocus", "", "text", " ", "", "absolute", "-2000px", "", "", "", "", "", "", "", "", "", "", "");
	  //
	//---------------------------------------------------createFormElement END---------------------------------------------------\\  	
	//---------------------------------------------------removeElement START---------------------------------------------------\\ 
	removeElement : function(p, e) {
	    if (dwg.getRefToElement(e)) {     
          var child = dwg.getRefToElement(e);
          p.removeChild(child);
	    } else {
          //alert("Already been removed or does not exist.");
          return false;
	    }
	},//Usage: dwg.removeElement(document.body, e);
	//---------------------------------------------------removeElement END---------------------------------------------------\\		
	//---------------------------------------------------includeFiles START---------------------------------------------------\\ 
    includeFiles : function(incFiles) {
        
		var siteAddress = location.protocol + '//' + document.location.hostname + dwg.getDirectory();
		var filePath = incFiles;
		
        for(var i=0;i<filePath.length;i++) {
		    var ext = dwg.getExt(filePath[i]);
		    //var fullPath = siteAddress + filePath[i];
		    var fullPath = filePath[i];
            var fileId = "fileRefID_"+[i];
			//
			if(ext == ".css") {//CSS
			    var head = document.getElementsByTagName('head')[0];
                if (!dwg.getRefToElement(fileId)) {
		            dwg.createElement(head, "link", fileId, "", "text/css", "", "", "", "", "", "", "", "", "", "", "stylesheet", "all", fullPath, "", "");
			    }
			}
			//
			if(ext == ".js") {//JS
                if (!dwg.getRefToElement(fileId)) {
                    document.write('<scr' + 'ipt type="text/javascript" id="' + fileId + '" src="' + fullPath + '"></scr' + 'ipt>');		
			    }
			}
			//
		}
    },
	//---------------------------------------------------includeFiles END---------------------------------------------------\\
//=======================================================DATA_CONSOLE Functions END=======================================================\\
	//---------------------------------------------------dataConsole START---------------------------------------------------\\ 
	dataConsole : function() {
        
		var _body = document.getElementsByTagName('body')[0];
	    dwg.createElement(_body, "textarea", "dwg_data_console", "greenBG", "", "Welcome!\r\n\//---------\r\n", "", "absolute", "10px", "900px", 999999, "", "", 20, 20, "", "", "", "", "");
		
	}//Usage: dwg.dataConsole();
	 //if( dwg.getRefToElement("dwg_data_console") ) { dwg.getRefToElement("dwg_data_console").value += '['+(DATA_NUM++)+'] '+document.getElementById(element)+'\r\n'; }
	//---------------------------------------------------dataConsole END---------------------------------------------------\\ 
//=======================================================DATA_CONSOLE Functions END=======================================================\\	

};
dwg.install();

















