// AJAX +++++++++++++++++++++++++++++++++++++//
function getXmlHttpObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
    @else
        xmlhttp = false;
    @end @*/
	if (window.opera) {
		xmlhttp = new XMLHttpRequest();
	} else {
	    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
	        try {
	            xmlhttp = new XMLHttpRequest();
	            xmlhttp.overrideMimeType("text/xml"); 
	        } catch (e) {
		    	xmlhttp = false;
	        }
	    }
    }
    return xmlhttp;
}
function getTextHttpObject() {
    var xmlhttp;
    /*@cc_on
    @if (@_jscript_version >= 5)
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
    @else
        xmlhttp = false;
    @end @*/
	if (window.opera) {
		xmlhttp = new XMLHttpRequest();
	} else {
	    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
	        try {
	            xmlhttp = new XMLHttpRequest();
	        } catch (e) {
		    	xmlhttp = false;
	        }
	    }
    }
    return xmlhttp;
}

function handleHttpResponse(xmlHttp, obj, select_index, select_default) {
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		var xmlDoc = xmlHttp.responseXML;
		if (xmlDoc.documentElement) {
			var getData = xmlDoc.documentElement.childNodes;
			setSelectOptions(obj, getData, select_index, select_default);
		}
	}
}

function handleHttpResponseVariable(xmlHttp, obj, select_index) {
	if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		var xmlDoc = xmlHttp.responseXML;
		if (xmlDoc.documentElement) {
			var getData = xmlDoc.documentElement.childNodes;
			setSelectOptionsVariable(obj, getData, select_index);
		}
	}
}

function sendHttpRequest(xmlHttp, obj, url, parent_obj, select_index, select_default) {
	var key = parent_obj.value;
	parent_obj.disabled = 'disabled';
	parent_obj.disabled = '';
	if (key != "") {
		xmlHttp.open('GET', url + '?id=' + escape(key), true);
		xmlHttp.onreadystatechange = function() {
			handleHttpResponse(xmlHttp, obj, select_index, select_default)
		}
		xmlHttp.send(null);
	} else {
		setSelectOptions(obj, '', select_index, select_default);
	}
}

function sendHttpRequestById(xmlHttp, obj, url, id, select_index, select_default) {
	if (id != "") {
		xmlHttp.open('GET', url + '?id=' + escape(id), true);
		xmlHttp.onreadystatechange = function() {
			handleHttpResponse(xmlHttp, obj, select_index, select_default)
		}
		xmlHttp.send(null);
	} else {
		setSelectOptions(obj, '', select_index, select_default);
	}
}

function sendHttpRequestByType(xmlHttp, obj, url, parent_obj, select_index, select_default, arg_type) {
	var key = parent_obj.value;
	parent_obj.disabled = 'disabled';
	parent_obj.disabled = '';
	if (key != "") {
		xmlHttp.open('GET', url + '?id=' + escape(key) + '&type=' + escape(arg_type), true);
		xmlHttp.onreadystatechange = function() {
			handleHttpResponse(xmlHttp, obj, select_index, select_default)
		}
		xmlHttp.send(null);
	} else {
		setSelectOptions(obj, '', select_index, select_default);
	}
}

function sendHttpRequestVariable(xmlHttp, obj, url, parent_obj1, parent_obj2, parent_obj3, select_index) {
	var key = new Array(3);
	key[0] = parent_obj1.value;
	key[1] = parent_obj2.value;
	key[2] = parent_obj3.value;
	parent_obj1.disabled = 'disabled';
	parent_obj1.disabled = '';
	parent_obj2.disabled = 'disabled';
	parent_obj2.disabled = '';
	parent_obj3.disabled = 'disabled';
	parent_obj3.disabled = '';
	
	var param = '';
	var count = 0;
	for (i = 0;i < key.length;i++) {
		if (key[i] != '') {
			if (param == '') {
				param += '?';
			} else {
				param += '&';
			}
			param += 'id[' + count + ']=' + escape(key[i]);
			count++;
		}
	}

	if (param != "") {
		xmlHttp.open('GET', url + param, true);
		xmlHttp.onreadystatechange = function() {
			handleHttpResponseVariable(xmlHttp, obj, select_index)
		}
		xmlHttp.send(null);
	} else {
		setSelectOptionsVariable(obj, '', select_index);
	}
}

function setSelectOptions(obj, data, select_index, select_default) {
	var offset = 0;
	var selected_loop = 0;
	if (select_default == "") {
		obj.length = data.length;
	} else {
		obj.length = data.length + 1;
		obj.options[0] = new Option(select_default, '');
		offset = 1;
	}

	for (var i = 0; i < data.length; i++) {
		var key = data[i].childNodes[0].firstChild.nodeValue;
		var value = data[i].childNodes[1].firstChild.nodeValue;
		obj.options[i + offset] = new Option(value, key);
		if (select_index != "" && key == select_index) {
			selected_loop = i + offset;
			select_index = "";
		}
	}
	if (select_index < 0) {
		selected_loop = select_index;
	}
	obj.selectedIndex = selected_loop;
}

function setSelectOptionsVariable(obj, data, select_index) {
	var offset = 0;
	var selected_loop = 0;
	obj.length = data.length;

	for (var i = 0; i < data.length; i++) {
		var key = data[i].childNodes[0].firstChild.nodeValue;
		var value = data[i].childNodes[1].firstChild.nodeValue;
		obj.options[i + offset] = new Option(value, key);
		for (var j = 0; j < select_index.length; j++) {
			if (select_index[j] != "" && key == select_index[j]) {
				obj[i].selected = true;
			}
		}
	}
}

// admin PINYIN->MANUFACTURER +++++++++++++++++++++++++++++++++++++//
function setAdminManufacturerOptions(obj, pinyin_obj, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequest(xmlHttp, obj, '/admin_product/get_manufacturer.html', pinyin_obj, select_index, select_default);
}

// Admin PINYIN->MANUFACTURER For Output NAME_LOCAL or NAME_GLOBAL +++++++++++++++++++++++++++++++++++++//
function setAdminManufacturerOptionsNameType(obj, pinyin_obj, name_type, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequestByType(xmlHttp, obj, '/admin_brand/get_manufacturer.html', pinyin_obj, select_index, select_default, name_type);
}

// Admin MANUFACTURER->BRAND +++++++++++++++++++++++++++++++++++++//
function setAdminBrandOptions(obj, manufacturer_obj, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequest(xmlHttp, obj, '/admin_product/get_brand.html', manufacturer_obj, select_index, select_default);
}

// Admin MANUFACTURER->BRAND With MANUFACTURER_ID +++++++++++++++++++++++++++++++++++++//
function setAdminBrandOptionsManufacturerId(obj, manufacturer_id, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequestById(xmlHttp, obj, '/admin_product/get_brand.html', manufacturer_id, select_index, select_default);
}

// Admin PARENT_BBS->BBS +++++++++++++++++++++++++++++++++++++//
function setAdminBbsOptions(obj, parent_bbs_obj, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequest(xmlHttp, obj, '/admin_bbs_report/get_bbs.html', parent_bbs_obj, select_index, select_default);
}

// Admin ITEM->EFFECT +++++++++++++++++++++++++++++++++++++//
function setAdminEffectOptions(obj, item_obj1, item_obj2, item_obj3, select_index) {
/*
	var length = setAdminEffectOptions.arguments.length;
	var select_index = new Array(length - 4);
	var count = 0;
	for (i = 4;i < length;i++) {
		select_index[count++] = setAdminEffectOptions.arguments[i];
	}
*/

    var xmlHttp = getXmlHttpObject();
	sendHttpRequestVariable(xmlHttp, obj, '/admin_product/get_product_effect.html', item_obj1, item_obj2, item_obj3, select_index);
}

// PINYIN->MANUFACTURER +++++++++++++++++++++++++++++++++++++//
function setManufacturerOptions(obj, pinyin_obj, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequest(xmlHttp, obj, '/product/get_manufacturer.html', pinyin_obj, select_index, select_default);
}

// PINYIN->BRAND +++++++++++++++++++++++++++++++++++++//
function setBrandOptions(obj, pinyin_obj, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequest(xmlHttp, obj, '/product/get_brand.html', pinyin_obj, select_index, select_default);
}

// ITEM->EFFECT +++++++++++++++++++++++++++++++++++++//
function setEffectOptions(obj, item_obj, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequest(xmlHttp, obj, '/product/get_product_effect.html', item_obj, select_index, select_default);
}

// CLASS->TROUBLE +++++++++++++++++++++++++++++++++++++//
function setTroubleOptions(obj, class_obj, select_index, select_default) {
    var xmlHttp = getXmlHttpObject();
	sendHttpRequest(xmlHttp, obj, '/product/get_product_trouble.html', class_obj, select_index, select_default);
}

/////////////////////////////////////////////////////////
/** add by Nixiaofeng @ 15:43 2009-08-13
 * Check Survey Status
 * @param survey 活动的ID
 * @param data_array 返回值对应的HTMl代码
 *  data_array的格式如下：
 *    data_array[0] = "可以申请"
 *    data_array[1] = "请登录"
 *  可用的返回值如下：
 *    返回 0-正常  1-未登录  2-未开始  3-已结束  4-已申请  9-出现异常
 */ 
function checkSurveyStatus(obj_id, survey_id, data_array) {
    var xmlHttp = getXmlHttpObject();
    xmlHttp.open('GET', '/campaign/check_survey_status.html?survey_id='+survey_id, true);
    xmlHttp.onreadystatechange = function() {
        checkSurveyStatusResponse(obj_id, xmlHttp, data_array)
    }
    xmlHttp.send(null);
}
function checkSurveyStatusResponse(obj_id, xmlHttp, data_array) {
    if (xmlHttp.readyState == 4) {
        // 处理返回完成的代码
        if (xmlHttp.status == 200) {
            // 处理返回正确的代码
            var xmlDoc = xmlHttp.responseXML;
            if (xmlDoc.documentElement) {
                var getData = xmlDoc.documentElement.childNodes;
                document.getElementById(obj_id).innerHTML = data_array[getData[0].nodeValue];
            }
        } else {
            // 处理返回错误的代码
            document.getElementById(obj_id).innerHTML = '网络正忙，请稍候再试！';
        }
    } else {
        // 处理等待时的代码
        document.getElementById(obj_id).innerHTML = '<img src="/common/image/highslide/graphics/loader.big.white.gif" border="0">';
    }
}
// end
/////////////////////////////////////////////////////////
