function getAbsolute(){
	return "http://"+window.location.host+"/";
}
function getRelative(){
	return  "/"+window.location.href.replace(new RegExp("/+", 'g'), "/").split("/")[2];
}
function getServName(){
	return /\w+/.exec(document.location.pathname)[0];
}
//function hello(){alert("hello");}
// 关闭上传头像窗口
function closeUpload(){
	document.getElementById("mask").style["display"] = "none";
	document.getElementById("upPicContainer").style["display"] = "none";
	var tfObj = document.getElementById("upPicFrame");
	tfObj.src = "";
	currentStep = 1;
}
// 开启上传头像窗口
function startUpload(){
	var mask = document.getElementById("mask");
	var bodyWidth = document.body.clientWidth;
	var bodyHeight = document.body.clientHeight;
	mask.style["position"] = "absolute";
	mask.style["left"] = 0;
	mask.style["top"] = 0;
	mask.style["width"] = bodyWidth;
	mask.style["height"] = bodyHeight;
	mask.style["display"] = "block";
	var container = document.getElementById("upPicContainer");
	container.style["left"] = (bodyWidth-453)/2;
	container.style["top"] = 200;
	container.style["display"] = "block";
	var tfObj = document.getElementById("upPicFrame");
	tfObj.src = "/"+getServName()+"/URMgt/preUpload.action";
}
/**
 * 语音单词测试公用函数
 */
function prepearContainer(width, height){
	var tfObj = null;
	this.prepearSelf = function(){
		var bodyWidth = parseInt(document.body.offsetWidth)+24;
		var bodyHeight = parseInt(document.body.offsetHeight)+24;
		var container = document.getElementById("testContainer");
		container.style["left"] = (bodyWidth-width)/2;
		container.style["top"] = (bodyHeight-height)/2;
		container.style["width"] = width;
		container.style["height"] = height;
		container.style["display"] = "block";
		tfObj = document.getElementById("testFrame");
		tfObj.marginwidth="0";
		tfObj.marginheight="0";
		tfObj.width=width;
		tfObj.height=height;
	}
	this.prepearSelf();
	window.onresize = function(){
		prepearMask();
		this.prepearSelf();
	}
	return tfObj;
}
function prepearMask(){
	var mask = document.getElementById("mask");
	var bodyWidth = document.body.scrollWidth+24;
	var bodyHeight = document.body.scrollHeight+24;
	mask.style["position"] = "absolute";
	mask.style["left"] = 0;
	mask.style["top"] = 0;
	mask.style["width"] = bodyWidth;
	mask.style["height"] = bodyHeight;
	mask.style["display"] = "block";
}
function closeTest(){
	document.getElementById("mask").style["display"] = "none";
	document.getElementById("testContainer").style["display"] = "none";
	var tfObj = document.getElementById("testFrame");
	tfObj.src = "";
	currentStep = 1;
	window.onresize = null;
}
var currentStep = 1;
function getLessonId(){
	if (currentStep == 1) { // 第一步测试使用的课程
		return "910050";
		//return "1010014";
	} else { // 第二步测试使用的课程
		return "560050";
	}
}
var isEnterSecondTest = false;
function testScore(score, desc, is2SecondTest) {
	isEnterSecondTest = is2SecondTest;
	changeSpeakLevel(score, currentStep);
	if (!is2SecondTest) { // 不进入第二步测试
		this.closeTest();
	} else { // 进入第二步测试
		currentStep = 2;
		var tfObj = document.getElementById("testFrame");
		tfObj.src = "/"+getServName()+"/common/pronTest.action";
	}
}

function openNewPlayer(lessonId,verifyCode,isOriginVisible,toMark,subId,bookId,contentLevel, isNotCheck,isScene){
	if (!isNotCheck) {
		if(!checkActivex()){
			return false;
		}
		if(!checkMicTest()){
			return false;
		}
	}
	var iHeight=500;
	var iWidth=700;
	var iTop=(window.screen.availHeight-30-iHeight)/2;
	var iLeft=(window.screen.availWidth-30-iWidth)/2;
	var para="";
	var url = getAbsolute()+getRelative()+"/practice/enterPracticePage.action";
	url += "?lessonId="+lessonId;
	if(subId != ""){
		url += "&subscriptionId="+subId;
	}
	if(isScene){
		url += "&sceneId="+bookId;
	}else{
		url += "&bookId="+bookId;
	}
	url += "&verifyCode="+verifyCode;
	//var para='height='+iHeight+',width='+iWidth+',top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no, status=no';
	playerHandler=window.open(url,"语音练习页",para);
	//window.parent.playerHandler=playerHandler;
	playerHandler.focus();
}

playerHandler=null;
function openPlayerPage(lessonId,verifyCode,isOriginVisible,toMark,subId,bookId,contentLevel, isNotCheck,isScene){
	//var playerHandlerTmp = window.parent.playerHandler;
	var playerHandlerTmp = playerHandler;
	if (!playerHandlerTmp) {
		openNewPlayer(lessonId,verifyCode,isOriginVisible,toMark,subId,bookId,contentLevel, isNotCheck,isScene);
	} else {
		openNewPlayer(lessonId,verifyCode,isOriginVisible,toMark,subId,bookId,contentLevel, isNotCheck,isScene);
	}
}
function addOpenPlayerListener(){
	var allA=document.getElementsByTagName("A");
	var oneA;
	for(var i=0,max=allA.length;i<max;i++){
		oneA=allA[i];
		if(oneA.repeat){
			YAHOO.util.Event.addListener(oneA,"click",function(o){
				var aNode = o.srcElement;
				while(aNode.nodeName != "A") {
					aNode = aNode.parentNode;
				}
				var subId="";
				var catalogId=getBookId(aNode);
				openPlayerPage(aNode.id,
								aNode.verifycode,
								aNode.isOriginVisible,
								aNode.toMark,
								subId,
								catalogId,
								aNode.contentLevel,
								false);
				return false;
			});
		}
	}
}

function addOpenPlayerListenerForBook(){
	var allA=document.getElementsByTagName("A");
	var oneA;
	for(var i=0,max=allA.length;i<max;i++){
		oneA=allA[i];
		if(oneA.repeat){
			YAHOO.util.Event.addListener(oneA,"click",function(o){
				var aNode = o.srcElement;
				while(aNode.nodeName != "A") {
					aNode = aNode.parentNode;
				}
				
				var subId="";
				var bookId=getBookId(aNode);
				openPlayerPage(aNode.id,
							aNode.verifycode,
							aNode.isOriginVisible,
							aNode.toMark,
							subId,
							bookId,
							aNode.contentLevel, 
							false);
				return false;
			});
		}
	}
}
function removeOpenPlayerListener(){
	var allA=document.getElementsByTagName("A");
	var oneA;
	for(var i=0,max=allA.length;i<max;i++){
		oneA=allA[i];
		if(oneA.repeat){
			YAHOO.util.Event.removeListener(oneA,"click");
		}
	}
}
function addOpenPlayerListenerForSearch(){
	var allA=document.getElementsByTagName("A");
	var oneA;
	for(var i=0,max=allA.length;i<max;i++){
		oneA=allA[i];
		if(oneA.repeat){
			YAHOO.util.Event.addListener(oneA,"click",function(o){
				var aNode = o.srcElement;
				while(aNode.nodeName != "A") {
					aNode = aNode.parentNode;
				}
				var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
		        xmlhttp.open("POST",getAbsolute()+getRelative()+"/vlessonsearch/saveSearchResult.action?lessonId=" + aNode.id,true);
		        xmlhttp.send(null);   
				var subId="";
				var catalogId=getBookId(aNode);
				openPlayerPage(aNode.id,
								aNode.verifycode,
								aNode.isOriginVisible,
								aNode.toMark,
								subId,
								catalogId,
								aNode.contentLevel,
								false);
				return false;
			});
		}
	}
}

function getSubscriptionId(aNode){
	var subId="undefined";
	if(aNode.issub=="true"){
		try{
			subId=document.getElementById("subscriptionId").value;
		}catch(e){
			
		}
	}
	return subId;
}

function getBookId(aNode){
	var bookId="undefined";
	if(typeof(aNode.bookId)!="undefined"){
		bookId=aNode.bookId;
		
	}else{
		try{
			bookId=document.getElementById("bookId").value;
		}catch(e){
			
		}
	}
	
	return bookId;
}
function GetCookie(name){
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		return this.GetCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}
function DelCookie(name){
	var exp = new Date();
	exp.setTime (exp.getTime() - 1);
	var cval = this.GetCookie(name);
	document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}
function SetCookie(name, value){
	var expdate = new Date();
	var argv = arguments;
	var argc = arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
	document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
	+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
	+((secure == true) ? "; secure" : "");
}
function GetCookieVal(offset){
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function XHConn()
{
  var xmlhttp, bComplete = false;
  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { xmlhttp = false; }}}
  if (!xmlhttp) return null;
  this.connect = function(sURL, sMethod, sVars, fnDone,isAsn)
  {
    if (!xmlhttp) return false;
   
    bComplete = false;
    sMethod = sMethod.toUpperCase();
    try {
      if (sMethod == "GET")
      {
        xmlhttp.open(sMethod, sURL+"?"+sVars, isAsn);
        sVars = "";
      }
      else
      {
        xmlhttp.open(sMethod, sURL, isAsn);
        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        xmlhttp.setRequestHeader("Content-Type",
          "application/x-www-form-urlencoded");
      }
      xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && !bComplete)
        {
          bComplete = true;
          fnDone(xmlhttp);
        }};
      xmlhttp.send(sVars);
    }
    catch(z) {alert(z.message);return false; }
    return true;
  };
  return this;
}
function GetXYWH(o){
	var w3c=(document.getElementById)? true:false;
	var agt=navigator.userAgent.toLowerCase();
	var ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1) && (agt.indexOf("omniweb") == -1));
	var ie5=(w3c && ie)? true : false;
	var ns6=(w3c && (navigator.appName=="Netscape"))? true: false;
	var op8=(navigator.userAgent.toLowerCase().indexOf("opera")==-1)? false:true;
	var nLt=0;
	var nTp=0;
 	var offsetParent = o;
 	while (offsetParent!=null && offsetParent!=document.body) {
 		nLt+=offsetParent.offsetLeft;
 		nTp+=offsetParent.offsetTop;
 		if(!ns6){
 			parseInt(offsetParent.currentStyle.borderLeftWidth)>0?nLt+=parseInt(offsetParent.currentStyle.borderLeftWidth):"";
 			parseInt(offsetParent.currentStyle.borderTopWidth)>0?nTp+=parseInt(offsetParent.currentStyle.borderTopWidth):"";
 		}
 		offsetParent=offsetParent.offsetParent;
 	}
	return [nLt, nTp, o.offsetWidth, o.offsetHeight];
}
var serverVersion;
//noErrMsg 为true 则只返回判断结果，不给出提示或转向
//为false 则给出提示和转向并返回判断结果
//bookId 只为精品教材页使用
function checkActivex(noErrMsg,bookId){
	var checkActiveObj;
	var localVersion;
	try{
		checkActiveObj= new ActiveXObject("LangKoo.Detector");
		localVersion=checkActiveObj.Version;
	}catch(e){
		localVersion=0;
	}
	if(localVersion==0){
		errMsg="您尚未安装朗酷插件";
		if(confirm(errMsg+"，是否转到插件安装页？")){
			turnToInstallPage();
			return false;
		}else{
			return false;
		}
	}else{
		var conn=new XHConn();
		if((typeof serverVersion=="undefined")||serverVersion==""){
			conn.connect(getRelative()+"/common/getActivexVersion.action?timestamp="+new Date(),"POST","",
				function(xhr){
					if (xhr.status == 200) {
		        		serverVersion=xhr.responseText;
		        	} else {
		        		serverVersion="";
		        	}
				},
				false);
		}
		if(serverVersion==""){
			errMsg="网络异常，获取插件版本失败";
		}else if(localVersion!=serverVersion){
			errMsg="朗酷Activx插件更新，为了系统更加稳定，请务必升级";
		}else{
			return true;
		}
	}
	if(noErrMsg){
		return false;
	}else{
		if(confirm(errMsg+"，是否转到插件安装页？")){
			turnToInstallPage();
			return false;
		}else{
			return true;
		}
	}
}
//判断activex是否安装
function checkActivexInstall(){
	var checkActiveObj;
	var localVersion;
	try{
		checkActiveObj= new ActiveXObject("LangKoo.Detector");
		localVersion=checkActiveObj.Version;
	}catch(e){
		localVersion=0;
	}
	if(localVersion==0){
		return false
	}else{
		return true;
	}
}
//判断activex版本是否正确
function checkActivexVersion(){
	var checkActiveObj;
	var localVersion;
	try{
		checkActiveObj= new ActiveXObject("LangKoo.Detector");
		localVersion=checkActiveObj.Version;
	}catch(e){
		localVersion=0;
	}
	if(localVersion==0){
			return false;
	}else{
		var conn=new XHConn();
		if((typeof serverVersion=="undefined")||serverVersion==""){
			conn.connect(getRelative()+"/common/getActivexVersion.action","POST","",
				function(xhr){
					if (xhr.status == 200) {
		        		serverVersion=xhr.responseText;
		        	} else {
		        		serverVersion="";
		        	}
				},
				false);
		}
		if(serverVersion==""){
			return false;;
		}else if(localVersion!=serverVersion){
			return false;;
		}else{
			return true;
		}
	}
}
function checkMicTest(noErrMsg){
	var micTested=GetCookie("ismictest");
	if(!micTested){
		if(noErrMsg){
			return false;
		}
		if(confirm("未检测到您的cookie中存在麦克风测试的信息，是否转到mic测试页？")){
			turnToInstallPage();
			return false;
		}else{
			return true;
		}
	}
	return true;
}
function turnToInstallPage(){
	//To Do
	window.top.location.href=getRelative()+"/common/tryOut.action";
}
function showErr(){
	alert("网络异常，请稍候再试！");
}

function  trim(str)
{
    for(var i=0; i<str.length&&str.charAt(i)==" ";i++);
    	for(var j=str.length;j>0&&str.charAt(j-1)==" ";j--);
    		if(i>j)  return  "";  
    return  str.substring(i,j);  
}
function getOs()
{
   if(navigator.userAgent.indexOf("MSIE")>0)return 1;
   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)return 2;
   if(isSafari=navigator.userAgent.indexOf("Safari")>0)return 3;   
   if(isCamino=navigator.userAgent.indexOf("Camino")>0)return 4;
   if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0)return 5;
   return 0;
}
function checkOs(){
	if (getOs()!= 1) {
		var innerHTMLStr = "<div id=\"notIEWarnMsgId\" style=\"color:#ff0000;width:800px;text-align:right;\">We support IE Browser only!</div>";
		//document.body.insertAdjacentHTML("afterBegin", innerHTMLStr);
		insertHtml("afterBegin", document.body, innerHTMLStr);
		var isRed = true;
		setInterval(function(){
			try {
				var notIEWarnMsgObj = document.getElementById("notIEWarnMsgId");
				if (isRed) notIEWarnMsgObj.style["color"] = "#000000";
				else notIEWarnMsgObj.style["color"] = "#ff0000";
				isRed = !isRed;
			} catch(e){}
		}, 300);
	}
}

function checkAlertMsg(){
	var conn=new XHConn();
	conn.connect(getRelative()+"/common/alertMessage.action?timestamp="+new Date(),"post","",
		function(xhr){
			if (xhr.status == 200) {
        		var alertMsg = xhr.responseText;
        		if (alertMsg != "") {
					var innerHTMLStr = "<div id=\"alertMsgId\" style=\"color:#ff0000;width:1000px;background-color:#ffcc00;filter：alpha（opacity=0.6);font-size:14px;\">"+alertMsg+"</div>";
					//document.body.insertAdjacentHTML("afterBegin", innerHTMLStr);
					insertHtml("afterBegin", document.body, innerHTMLStr);
					var isRed = true;
					setInterval(function(){
						try {
							var alertMsgId = document.getElementById("alertMsgId");
							if (isRed) alertMsgId.style["color"] = "#000000";
							else alertMsgId.style["color"] = "#ff0000";
							isRed = !isRed;
						} catch(e){}
					}, 300);	
        		}
        	}
		}, false);
}

function insertHtml(where, el, html){
        where = where.toLowerCase();
        if(el.insertAdjacentHTML){
            switch(where){
                case "beforebegin":
                    el.insertAdjacentHTML('BeforeBegin', html);
                    return el.previousSibling;
                case "afterbegin":
                    el.insertAdjacentHTML('AfterBegin', html);
                    return el.firstChild;
                case "beforeend":
                    el.insertAdjacentHTML('BeforeEnd', html);
                    return el.lastChild;
                case "afterend":
                    el.insertAdjacentHTML('AfterEnd', html);
                    return el.nextSibling;
            }
            throw 'Illegal insertion point -> "' + where + '"';
        }
        
  		var range = el.ownerDocument.createRange();
        var frag;
        switch(where){
             case "beforebegin":
            range.setStartBefore(el);
            frag = range.createContextualFragment(html);
            el.parentNode.insertBefore(frag, el);
            return el.previousSibling;
         case "afterbegin":
            if(el.firstChild){
                range.setStartBefore(el.firstChild);
                frag = range.createContextualFragment(html);
                el.insertBefore(frag, el.firstChild);
                return el.firstChild;
            }else{
                el.innerHTML = html;
                return el.firstChild;
            }
        case "beforeend":
            if(el.lastChild){
                range.setStartAfter(el.lastChild);
                frag = range.createContextualFragment(html);
                el.appendChild(frag);
                return el.lastChild;
            }else{
                el.innerHTML = html;
                return el.lastChild;
            }
        case "afterend":
            range.setStartAfter(el);
            frag = range.createContextualFragment(html);
            el.parentNode.insertBefore(frag, el.nextSibling);
            return el.nextSibling;
        }
        throw 'Illegal insertion point -> "' + where + '"';
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/**
 * 一个常量对象
 */
var constants = {
		province : [
			"北京市",
			"天津市",
			"河北省",
			"山西省",
			"内蒙古自治区",
			"辽宁省",
			"吉林省",
			"黑龙江省",
			"上海市",
			"江苏省",
			"浙江省",
			"安徽省",
			"福建省",
			"江西省",
			"山东省",
			"河南省",
			"湖北省",
			"湖南省",
			"广东省",
			"广西壮族自治区",
			"海南省",
			"重庆市",
			"四川省",
			"贵州省",
			"云南省",
			"西藏自治区",
			"陕西省",
			"甘肃省",
			"青海省",
			"宁夏回族自治区",
			"新疆维吾尔自治区",
			"香港特别行政区",
			"澳门特别行政区",
			"台湾省"
			],
			
	pcity : [
			[ "北京市" ],
			[ "天津市" ],
			[ 
			  	"石家庄市", "张家口市", "承德市", "秦皇岛市", "唐山市", 
			  	"廊坊市", "保定市", "衡水市", "沧州市","邢台市", "邯郸市" 
			],
			[ 
			  	"太原市", "朔州市", "大同市", "阳泉市", "长治市", "晋城市", 
			  	"忻州市", "晋中市", "临汾市","吕梁市", "运城市" 
			],
			[ 
			  	"呼和浩特市", "包头市", "乌海市", "赤峰市", "通辽市", "呼伦贝尔市", 
			  	"鄂尔多斯市", "乌兰察布市","巴彦淖尔市", "兴安盟", "锡林郭勒盟", "阿拉善盟" 
			],
			[ 
			  	"沈阳市", "朝阳市", "阜新市", "铁岭市", "抚顺市", "本溪市", "辽阳市", 
			  	"鞍山市", "丹东市","大连市", "营口市", "盘锦市", "锦州市", "葫芦岛市" 
			],
			[ 
			  	"长春市", "白城市", "松原市", "吉林市", "四平市", "辽源市", "通化市", 
			  	"白山市","延边朝鲜族自治州" 
			],
			[ 
			  	"哈尔滨市", "七台河市", "齐齐哈尔市", "黑河市", "大庆市", "鹤岗市", "伊春市", "佳木斯市",
				"双鸭山市", "鸡西市", "牡丹江市", "绥化市", "大兴安岭地区(加格达奇)" 
			],
			[ "上海市" ],
			[ 
			  	"南京市", "徐州市", "连云港市", "宿迁市", "淮安市", "盐城市", 
			  	"扬州市", "泰州市", "南通市","镇江市", "常州市", "无锡市", "苏州市" 
			],
			[ 
			  	"杭州市", "湖州市", "嘉兴市", "舟山市", "宁波市", "绍兴市", "衢州市", 
			  	"金华市", "台州市","温州市", "丽水市" 
			],
			[ 
			  	"合肥市", "宿州市", "淮北市", "亳州市", "阜阳市", "蚌埠市", "淮南市", 
			  	"滁州市", "马鞍山市","芜湖市", "铜陵市", "安庆市", "黄山市", "六安市", 
			  	"巢湖市", "池州市", "宣城市" 
			],
			[ "福州市", "南平市", "莆田市", "三明市", "泉州市", "厦门市", "漳州市", "龙岩市", "宁德市" ],
			[ 
			  	"南昌市", "九江市", "景德镇市", "鹰潭市", "新余市", "萍乡市", "赣州市", 
			  	"上饶市", "抚州市","宜春市", "吉安市" 
			],
			[ 
			  	"济南市", "聊城市", "德州市", "东营市", "淄博市", "潍坊市", "烟台市", "威海市", "青岛市",
				"日照市", "临沂市", "枣庄市", "济宁市", "泰安市", "莱芜市", "滨州市", "菏泽市" 
			],
			[ 
			  	"郑州市", "三门峡市", "洛阳市", "焦作市", "新乡市", "鹤壁市", "安阳市", "濮阳市", "开封市",
				"商丘市", "许昌市", "漯河市", "平顶山市", "南阳市", "信阳市", "周口市", "驻马店市",
				"省直辖县级行政单位" 
			],
			[ 
			  	"武汉市", "十堰市", "襄樊市", "荆门市", "孝感市", "黄冈市", "鄂州市", "黄石市", "咸宁市",
				"荆州市", "宜昌市", "随州市", "省直辖县级行政单位", "恩施土家族苗族自治州" 
			],
			[ 
			  	"长沙市", "张家界市", "常德市", "益阳市", "岳阳市", "株洲市", "湘潭市", "衡阳市", "郴州市",
				"永州市", "邵阳市", "怀化市", "娄底市", "湘西土家族苗族自治州" 
			],
			[ 
			  	"广州市", "清远市", "韶关市", "河源市", "梅州市", "潮州市", "汕头市", "揭阳市", "汕尾市",
				"惠州市", "东莞市", "深圳市", "珠海市", "中山市", "江门市", "佛山市", "肇庆市",
				"云浮市", "阳江市", "茂名市", "湛江市" 
			],
			[ 
			  	"南宁市", "桂林市", "柳州市", "梧州市", "贵港市", "玉林市", "钦州市", "北海市", "防城港市",
				"崇左市", "百色市", "河池市", "来宾市", "贺州市" 
			],
			[ "海口市", "三亚市", "省直辖行政单位" ],
			[ "重庆市" ],
			[ 
			  	"成都市", "广元市", "绵阳市", "德阳市", "南充市", "广安市", "遂宁市", "内江市", "乐山市",
				"自贡市", "泸州市", "宜宾市", "攀枝花市", "巴中市", "达州市", "资阳市", "眉山市",
				"雅安市", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州" 
			],
			[ 
			  	"贵阳市", "六盘水市", "遵义市", "安顺市", "毕节地区", "铜仁地区", "黔东南苗族侗族自治州",
				"黔南布依族苗族自治州", "黔西南布依族苗族自治州" 
			],
			[ 
			  	"昆明市", "曲靖市", "玉溪市", "保山市", "昭通市", "丽江市", "思茅市", "临沧市",
				"德宏傣族景颇族自治州", "怒江傈僳族自治州(泸水县六库镇)", "迪庆藏族自治州", "大理白族自治州",
				"楚雄彝族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州" 
			],
			[ "拉萨市", "那曲地区", "昌都地区", "林芝地区(林芝县八一镇)", "山南地区", "日喀则地区", "阿里地区" ],
			[ 
			  	"西安市", "延安市", "铜川市", "渭南市", "咸阳市", "宝鸡市", "汉中市", "榆林市", "安康市",
				"商洛市" 
			],
			[ 
			  	"兰州市", "嘉峪关市 ", "金昌市", " 白银市", "天水市", "武威市", "酒泉市", "张掖市", "庆阳市",
				"平凉市", "定西市", "陇南市", "临夏回族自治州", "甘南藏族自治州" 
			],
			[ 
			  	"西宁市", "海东地区", "海北藏族自治州(海晏县西海镇)", "海南藏族自治州", "黄南藏族自治州",
				"果洛藏族自治州", "玉树藏族自治州", "海西蒙古族藏族自治州" 
			],
			[ "银川市", "石嘴山市", "吴忠市", "固原市", "中卫市" ],
			[ 
			  	"乌鲁木齐市", "克拉玛依市", "自治区直辖县级行政单位", "喀什地区", "阿克苏地区", "和田地区",
				"吐鲁番地区", "哈密地区", "克孜勒苏柯尔克孜自治州", "博尔塔拉蒙古自治州", "昌吉回族自治州",
				"巴音郭楞蒙古自治州", "伊犁哈萨克自治州", "塔城地区", "阿勒泰地区" 
			], 
			[ "香港特别行政区" ],
			[ "澳门特别行政区" ], 
			[ "台湾省" ]
			],
	privacy : ["公开","保密","好友"],
	gender : ["男","女"],
	month : ["01","02","03","04","05","06","07","08","09","10","11","12"],
	wordLevel : ["3000词以内","5000词以内","7000词以内","7000词"],
	oralLevel : ["较差","普通","良好","优秀"],
	url : function (){ return (getAbsolute() + getServName());}
}
