/** ************************************************************
    \u4ee5\u4e0b\u4e24\u4e2a\u53d8\u91cf\u4e3aopenSelect\u60f3\u5339\u914d\u4f7f\u7528\u7684\u53d8\u91cf
    pInput \u9700\u8981\u5f55\u5165\u7684\u5f55\u5165\u6846

    pIsMutiselect \u662f\u5426\u53ef\u4ee5\u591a\u9009\uff1b
    codeType ,\u683c\u5f0f\u5982 country|province|city \uff0c\u8fd9\u6837\u53ef\u4ee5\u6307\u5b9a\u591a\u4e2a\u5c42\u6b21\u7684\u53c2\u6570\u9009\u62e9\uff1b

*************************************************************  */
var inputElement;  //\u8bb0\u5f55\u5f53\u524d\u5f55\u5165\u7684\u533a\u57df\u7684\u540d\u79f0
var isMutiSelect;  //\u8bb0\u5f55\u5f53\u524d\u662f\u5426\u662f\u591a\u9009\u7684

function openSelect(pInput,pIsMutiSelect,codeType,rootPath){

    selectAction = rootPath + "/jsp/mascode/masselect_window.jsp?pInput="+pInput ;
    selectAction += "&pIsMutiSelect="+pIsMutiSelect;
    selectAction += "&codeType="+codeType;
    
    if(codeType == null){
    	  alert("\u7a0b\u5e8f\u4e2d\u9700\u8981\u6307\u5b9a\u9009\u62e9\u5f55\u5165\u7684\u53c2\u6570\u7f16\u7801\u7c7b\u578b!");
        return;
    }
    window.open(selectAction,"selectWin","width=400,height=300,scrollbars=yes resizable=yes");
}

/** **************************************************************************
    Popup\u663e\u793aSelect
    id\uff1aXML\u7684\u540d\u79f0

    obj\uff1a\u9875\u9762\u7684form\u5bf9\u8c61
    w\uff1apopup\u7a97\u53e3\u7684\u5bbd
    h\uff1apopup\u7a97\u53e3\u7684\u9ad8
    url\uff1axml\u6570\u636e\u7684\u8fde\u63a5

    instr\uff1aform\u4e2dinput\u5bf9\u8c61\u7684\u540d\u79f0\uff0c\u591a\u4e2a\u65f6\u5019\u7528","\u9694\u5f00\uff0c\u5982"r11,r12,r13,"\uff0c\u6700\u540e\u5fc5\u987b\u6709","

*********************/
var selectLayer = null;
var oPopup = window.createPopup();

function popupSelect(id, obj, w, h, url, instr) {

	window.clearTimeout(window.hideSelectLayer);

	if ( selectLayer != null ) {
		hideSelect(0);
	}

	var oPopupDocument = oPopup.document;
	var oPopupBody = oPopup.document.body;

	selectLayer = oPopupDocument.all[id];

	if ( selectLayer == null ) {

		selectLayer = oPopupDocument.createElement("DIV"); 

		oPopupBody.appendChild(selectLayer);

		selectLayer.id = id;
		selectLayer.style.position = "absolute";
		selectLayer.style.overflow = "auto";
		selectLayer.style.border = "1px outset activeborder";
		selectLayer.onfocus = new Function("window.clearTimeout(window.hideSelectLayer)");
		selectLayer.onblur = hideSelect;

		//argArray = showSelect.arguments;
		//s = "r11,r12,r13,";
		argArray = instr.split(",");

		var html = '<xml id="' + id + 'Xml"><dummy/></xml>\n';
		html += '<table width="100%" border=\"0\" cellpadding="0" cellspacing="0" datasrc="#' + id + 'Xml" bgcolor="buttonface">\n';
		html += '<TR onclick="parent.clickSelect(this';

        html += ',\'' + instr + '\'';

		html += ')" onmouseover="parent.setHighLight(this);" onmouseout="parent.restoreNormal(this);">\n';

		for(i=0; i<argArray.length; i++) {

			html += '<TD><SPAN DATAFLD="' + argArray[i] + '"></SPAN></TD>\n';

		}

		html += '</TR>\n';
		html += '</table>\n';

		selectLayer.innerHTML = html;
	}

	if ( oPopupDocument.all[id+"Xml"].src != url ) {
		oPopupDocument.all[id+"Xml"].src = url;
	}

	var left = obj[argArray[0]].offsetLeft;
	var top = obj[argArray[0]].offsetTop;
	var p = obj[argArray[0]].offsetParent;

	while( p != null ) {
		left += p.offsetLeft;
		top += p.offsetTop;
		p = p.offsetParent;
	}

	selectLayer.setAttribute("sourceObject", obj);
	//selectLayer.style.pixelLeft = left;
	//selectLayer.style.pixelTop = top + obj.offsetHeight + 1;
	selectLayer.style.pixelWidth = w;
	selectLayer.style.pixelHeight = h;
	selectLayer.style.display = "";

	oPopup.show(0, obj.offsetHeight + 1, w, h, obj);
}



function hideSelect(delay) { 
	if ( selectLayer != null ) {
		window.clearTimeout(window.hideSelectLayer);
		var d = 200;
		if ( delay != null ) d = delay;
		if ( d > 0 ) {
			window.hideSelectLayer = window.setTimeout("hideSelect(0)", d);
		} else {
			selectLayer.style.display = 'none';
			window.oPopup.hide();
			selectLayer = null;
		}
	}
}

function setHighLight(obj) {
	obj.style.cursor = 'hand';
	obj.setAttribute("oldBackgroundColor", obj.style.backgroundColor);
	obj.setAttribute("oldColor", obj.style.color);
	obj.style.backgroundColor = 'highlight'; 
	obj.style.color = 'highlighttext';
}



function restoreNormal(obj) {
	obj.style.backgroundColor = obj.getAttribute("oldBackgroundColor");
	obj.style.color = obj.getAttribute("oldColor");
	obj.removeAttribute("oldBackgroundColor");
	obj.removeAttribute("oldColor");
}



function clickSelect(obj,outstr) {
	restoreNormal(obj);
	var s = selectLayer.getAttribute("sourceObject");
	if ( s != null ) {
		a = outstr.split(",");
		for (i=0; i<argArray.length; i++) {
    		s[a[i]].value = obj.children[i].innerText;
        }
	}
	selectLayer.removeAttribute("sourceObject");
	hideSelect(0);
}



/*******************************************************************


**********************************************/
function optionSelect(codeType,select,rootPath,parentType, attr1, attr2) {
//Modified by Baiyang 2010-05-26 begin
// \u4fee\u6539 node.text \u4e3a Node.childNodes[0].nodeValue

//    try {
//        var sURL = "";
//        
//        if (codeType == "REGIONCITY") {
//        	sURL = rootPath + "/common/codetable.citylist.byregion.do?codetype=" + codeType + "&parenttype=" + parentType + "&field=value%20name%20n2%20n3&search=&displayFirstRow=" + attr1 + "&regionCode=" + attr2;
//        }else if(codeType == "REGIONCODE"){
//        	sURL = rootPath + "/common/codetable.citylist.byregion.do?codetype=" + codeType + "&parenttype=" + parentType + "&field=value%20name%20n2%20n3&search=&displayFirstRow=" + attr1 + "&regionCode=" + attr2;
//        }else if(codeType == "CARBRAND"){
//        	sURL = rootPath + "/common/codetable.getcarbrand.do?&field=value%20name%20n2%20n3&search=";
//        }else {
//	        if (parentType != null && parentType != "") {
//	            sURL = rootPath + "/common/codetable.do?codetype=" + codeType + "&parenttype=" + parentType + "&field=value%20name%20n2%20n3&search=";
//	        } else {
//	            sURL = rootPath + "/common/codetable.do?codetype=" + codeType + "&field=value%20name%20n2%20n3&search=";
//	        }
//		}
//		
//        var dom = LoadDOM(sURL);
//        var oNodes = dom.selectNodes("//table/*");
//        var oNode = oNodes.nextNode;
//
//        if(oNode != null) {
//            //\u5220\u9664\u9009\u62e9\u6846\u4e2d\u7684\u6240\u6709\u9009\u9879
//            for(var i=select.options.length-1;i>=0;--i)
//            {
//            	// \u4fdd\u7559\u7b2c\u4e00\u884c\u7a7a\u6570\u636e
//	                if (i!=0 || select.options[i].value!=''){
//	                	select.options.remove(i);
//	                }
//            }
//
//            var i=0;
//            //\u5f80\u9009\u62e9\u6846\u4e2d\u589e\u52a0\u9009\u9879
//            while (oNode != null) {
//            	//\u83b7\u5f97\u8f66\u724c\u7b80\u79f0
//            	if(codeType == "CARBRAND"){
//            		if(oNode.nodeName == "n3"){
//            			oval = oNode.text;
//            			oname = oNode.text;
//            			i=i+2;
//            		}
//            	//\u83b7\u5f97\u57ce\u5e02\u6240\u5c5e\u673a\u6784\u4ee3\u7801
//            	}else if(codeType == "REGIONCODE"){
//            		if(oNode.nodeName == "n2"){
//            			oval = oNode.text;
//            			i++;
//            		}else if (oNode.nodeName ==  "name"){
//            			oname = oNode.text;
//            			i++;
//            		}
//            	}else{
//	            		//alert (  oNode.nodeName );
//	                if (oNode.nodeName == "value") {
//	                    //alert (  oNode.text );
//	                    oval = oNode.text;
//	                    i++;
//	                } else if (oNode.nodeName == "name") {
//	                    oname = oNode.text;
//	                    i++;
//	                }	
//            	}
//
//                if (i == 2) {
//                    //alert(oval + "," + oname);
//                    sval = oval;
//                    sname = oname;
//                    var oOption = document.createElement('OPTION');
//                    oOption.text = sname;
//                    oOption.value = sval;
//                    select.options.add(oOption);
//                    i=0;
//                }
//
//                oNode = oNodes.nextNode;
//            }
//        }
//    } catch(JSException ){
//
//
//    }
//
    try {
        var sURL = "";
        
        if (codeType == "REGIONCITY") {
        	sURL = rootPath + "/common/codetable.citylist.byregion.do?codetype=" + codeType + "&parenttype=" + parentType + "&field=value%20name%20n2%20n3&search=&displayFirstRow=" + attr1 + "&regionCode=" + attr2;
        }else if(codeType == "REGIONCODE"){
        	sURL = rootPath + "/common/codetable.citylist.byregion.do?codetype=" + codeType + "&parenttype=" + parentType + "&field=value%20name%20n2%20n3&search=&displayFirstRow=" + attr1 + "&regionCode=" + attr2;
        }else if(codeType == "CARBRAND"){
        	sURL = rootPath + "/common/codetable.getcarbrand.do?&field=value%20name%20n2%20n3&search=";
        }else {
	        if (parentType != null && parentType != "") {
	            sURL = rootPath + "/common/codetable.do?codetype=" + codeType + "&parenttype=" + parentType + "&field=value%20name%20n2%20n3&search=";
	        } else {
	            sURL = rootPath + "/common/codetable.do?codetype=" + codeType + "&field=value%20name%20n2%20n3&search=";
	        }
		}
		
        var dom = LoadDOM(sURL);
        var oNodes = dom.selectNodes("//table/*");

        if(oNodes.length != null) {
            //\u5220\u9664\u9009\u62e9\u6846\u4e2d\u7684\u6240\u6709\u9009\u9879
            for(var i=select.options.length-1;i>=0;--i)
            {
            	// \u4fdd\u7559\u7b2c\u4e00\u884c\u7a7a\u6570\u636e
	                if (i!=0 || select.options[i].value!=''){
//Modified by Baiyang 2010-05-31 begin
	                	//select.options.remove(i);
	                	select.options[i] = null;
//Modified by Baiyang 2010-05-31 end
	                }
            }

            var i=0;
            //\u5f80\u9009\u62e9\u6846\u4e2d\u589e\u52a0\u9009\u9879
            for (var j=0; j<oNodes.length; j++) {
                var oNode = oNodes[j];
            	//\u83b7\u5f97\u8f66\u724c\u7b80\u79f0
            	if(codeType == "CARBRAND"){
            		if(oNode.nodeName == "n3"){
            			oval = oNode.childNodes[0].nodeValue;
            			oname = oNode.childNodes[0].nodeValue;
            			i=i+2;
            		}
            	//\u83b7\u5f97\u57ce\u5e02\u6240\u5c5e\u673a\u6784\u4ee3\u7801
            	}else if(codeType == "REGIONCODE"){
            		if(oNode.nodeName == "n2"){
            			oval = oNode.childNodes[0].nodeValue;
            			i++;
            		}else if (oNode.nodeName ==  "name"){
            			oname = oNode.childNodes[0].nodeValue;
            			i++;
            		}
            	}else{
	                if (oNode.nodeName == "value") {
	                    oval = oNode.childNodes[0].nodeValue;
	                    i++;
	                } else if (oNode.nodeName == "name") {
	                    oname = oNode.childNodes[0].nodeValue;
	                    i++;
	                }	
            	}

                if (i == 2) {
                    sval = oval;
                    sname = oname;
                    var oOption = document.createElement('OPTION');
                    oOption.text = sname;
                    oOption.value = sval;
                    select.options.add(oOption);
                    i=0;
                }

                oNode = oNodes.nextNode;
            }
        }
    } catch(JSException ){
    }
}

function LoadDOM(file)
{
   var dom;
   try {
     dom = MakeDOM(null);
     dom.load(file);
   }
   catch (e) {
     alert(e.description);
   }
   return dom;
}

function MakeDOM(progID)
{
//Modified by Baiyang 2010-05-26 begin
//\u4fee\u6539dom\u751f\u6210\u65b9\u6cd5\uff0c\u652f\u6301IE\u548cFireFox
/*
  if (progID == null) {
    progID = "msxml2.DOMDocument.3.0";
  }

  var dom;
  try {
    dom = new ActiveXObject(progID);
    dom.async = false;
    dom.validateOnParse = false;
    dom.resolveExternals = false;
  }
  catch (e) {
    alert(e.description);
  }
*/
  
 var dom;
 try //Internet Explorer  
 {  
 	dom=new ActiveXObject("Microsoft.XMLDOM"); 
	dom.async = false;
	dom.validateOnParse = false;
	dom.resolveExternals = false; 
 }
 catch(e)  
 {  
 	//alert("makeDom:" + e.description);
 	try //Firefox, Mozilla, Opera, etc.    
 	{    
 		dom=document.implementation.createDocument("","",null);  
		dom.async = false;
		dom.validateOnParse = false;
		dom.resolveExternals = false;
  
		//\u4f7fFIREFOX\u652f\u6301selectNodes()\u3001selectSingleNode()
		// check for XPath implementation
		if( document.implementation.hasFeature("XPath", "3.0") && !XMLDocument.prototype.selectNodes)
		{
			// prototying the XMLDocument
			XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
			{
				if( !xNode ) { xNode = this; } 
				var oNSResolver = this.createNSResolver(this.documentElement)
				var aItems = this.evaluate(cXPathString, xNode, oNSResolver, 
				XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
				var aResult = [];
				for( var i = 0; i < aItems.snapshotLength; i++)
				{
					aResult[i] = aItems.snapshotItem(i);
				}
				return aResult;
			}
			
			// prototying the Element
			Element.prototype.selectNodes = function(cXPathString)
			{
				if(this.ownerDocument.selectNodes)
				{
				   return this.ownerDocument.selectNodes(cXPathString, this);
				}
				else{throw "For XML Elements Only";}
			}
		}
	}  
	catch(e)    
	{    
		alert("makeDom:" + e.description);    
		return;    
	}
	
}
  
  return dom;
//Modified by Baiyang 2010-05-26 end
}

function setOption(select,optValue)  {
	for (var i=0;i<select.length;i++)
	{
        if (select[i].value == optValue) {
            select.options[i].selected = true;
        } else {
            select.options[i].selected = false;
        }
	}
}

function optionSelectModel(codeType, select, rootPath, carBrand, familyName, exhaustScale) {
    //try {
    var sURL = "";
    sURL = rootPath + "/common/codetable.carmodel.do";
    if (codeType == 'getFamily') {
        sURL = sURL + "?actionType=getFamily&brandName=" + carBrand;
    } else if (codeType == 'getExhaust') {
        sURL = sURL + "?actionType=getExhaust&brandName=" + carBrand + "&familyName=" + familyName;
    } else if (codeType == 'getModel') {
        sURL = sURL + "?actionType=getModel&brandName=" + carBrand + "&familyName=" + familyName + "&exhaustScale=" + exhaustScale;
    }
    sURL = encodeURI(sURL);
    var dom = LoadDOM(sURL);
    var oNodes = dom.selectNodes("//table/*");
    //var oNode = oNodes.nextNode;

    if (oNodes.length > 0) {
        //\u5220\u9664\u9009\u62e9\u6846\u4e2d\u7684\u6240\u6709\u9009\u9879
        for (var i = select.options.length - 1; i >= 0; --i) {
            // \u4fdd\u7559\u7b2c\u4e00\u884c\u7a7a\u6570\u636e
            if (i != 0 || select.options[i].value != '') {
//Modified by Baiyang 2010-05-31 begin
	                	//select.options.remove(i);
	                	select.options[i] = null;
//Modified by Baiyang 2010-05-31 end
            }
        }

        var i = 0;
        //\u5f80\u9009\u62e9\u6846\u4e2d\u589e\u52a0\u9009\u9879
        var oname = "";
        var oval = "";
        for(var j = 0; j < oNodes.length; j++) {
        	oNode = oNodes[j];
            if (oNode.nodeName == "name") {
                oname = oNode.childNodes[0].nodeValue;
                i++;
            } else if (oNode.nodeName == "value") {
                oval = oNode.childNodes[0].nodeValue;
                i++;
            }

            if (i == 2) {
                //sval = oval;
                //sname = oname;
                var oOption = document.createElement('OPTION');
                oOption.text = oname;
                oOption.value = oval;
                oOption.title = oname;
                select.options.add(oOption);
                i = 0;
            }

           // oNode = oNodes.nextNode;
        }
    }
    if (codeType == "") {
        CarBrandSelectInitBrandType(dom);
    }

    //} catch(JSException ){
    //}
}

