
function openBrWindow (theURL,winName,features)
{
	newWin = window.open (theURL,winName,features);
	newWin.focus ();
//	return newWin;
	return;
}


function checkValidIDNumber(str) //to be replaced by *New
{
	if(Number(str)==str)
	{
		var num=Number(str);
		if(num>=100000000000000&&num<=1000000000000000)
			return true;
		else if(num>=100000000000000000&&num<=1000000000000000000)
			return true;
		else
			return false;
	}
	else
		return false;
}

function inputTextNotNull(uientity, stringWarning)
{
	//uientity == uientity.inputText;
	if(uientity.inputText.type == "text" || uientity.inputText.type == "password" || uientity.inputText.type == "hidden") 
	{
		var value = uientity.inputText.value;
		if (value.length <= 0)
		{
			alert(stringWarning);
			return false
		}
	}

	return true;
}

/** new IDCard check -------------------------------**/
function checkValidIDNumberNew(idStr)
{
    //18\u4f4d\u8eab\u4efd\u8bc1\u6807\u51c6\u6309\u56fd\u5bb6\u8d28\u91cf\u6280\u672f\u76d1\u7763\u5c401999\u5e747\u67081\u65e5\u5b9e\u65bd\u7684GB11643-1999\u300a\u516c\u6c11\u8eab\u4efd\u53f7\u7801\u300b\u505a\u68c0\u6d4b
    //\u51fa\u751f\u65e5\u671f\u6309GB/T7408\u7684\u89c4\u5b9a\u68c0\u6d4b\uff0c\u5305\u62ec\u4e86\u95f0\u5e74\u95f0\u6708\u7684\u5408\u6cd5\u6027\u68c0\u6d4b
	//\u884c\u653f\u533a\u5212\u4ee3\u7801\uff0c\u6309GB/T2260\u7684\u89c4\u5b9a\u6267\u884c
   var aCity = new Array(null,null,null,null,null,null,null,null,null,null,null,"\u5317\u4eac","\u5929\u6d25","\u6cb3\u5317","\u5c71\u897f","\u5185\u8499\u53e4",null,null,null,null,null,"\u8fbd\u5b81","\u5409\u6797","\u9ed1\u9f99\u6c5f",null,null,null,null,null,null,null,"\u4e0a\u6d77","\u6c5f\u82cf","\u6d59\u6c5f","\u5b89\u5fae","\u798f\u5efa","\u6c5f\u897f","\u5c71\u4e1c",null,null,null,"\u6cb3\u5357","\u6e56\u5317","\u6e56\u5357","\u5e7f\u4e1c","\u5e7f\u897f","\u6d77\u5357",null,null,null,"\u91cd\u5e86","\u56db\u5ddd","\u8d35\u5dde","\u4e91\u5357","\u897f\u85cf",null,null,null,null,null,null,"\u9655\u897f","\u7518\u8083","\u9752\u6d77","\u5b81\u590f","\u65b0\u7586",null,null,null,null,null,"\u53f0\u6e7e",null,null,null,null,null,null,null,null,null,"\u9999\u6e2f","\u6fb3\u95e8",null,null,null,null,null,null,null,null,"\u56fd\u5916");

   var id15Reg = /^\d{15}$/;		//\u662f\u7531\u5f00\u59346\u4f4d\u5730\u533a\u7801\u52a06\u4f4d\u51fa\u751f\u65e5\u671f\u548c3\u4f4d\u5e8f\u53f7\u6784\u6210
   var id18Reg = /^\d{17}(\d|x)$/i;	//18\u4f4d\u7684\u8eab\u4efd\u8bc1\uff0c\u548c15\u4f4d\u524d\u9762\u7684\u6784\u6210\u4e00\u6837\uff0c\u53ea\u662f\u51fa\u751f\u65e5\u671f\u662f8\u4f4d\uff0c
									//\u672b\u5c3e\u67091\u4f4d\u6821\u9a8c\u7801\uff0c(\u6821\u9a8c\u7801\u6709\u6570\u5b57\u548cX)\u6784\u6210
   var id10Reg = /^[a-z]\d{9}$/i;	//\u53f0\u6e7e\u7684\u8eab\u4efd\u8bc1\u683c\u5f0f\uff0c\u5f00\u5934\u662f\u7531\u5b57\u6bcdA-Z\u6784\u6210\uff0c\u540e\u9762\u662f9\u4f4d\u6570\u5b57

   switch (idStr.length)
   {
/*\u6682\u65f6\u4e0d\u652f\u6301\u53f0\u6e7e\u683c\u5f0f\u7684\u68c0\u67e5\uff0c\u4ee5\u514d\u7a0b\u5e8f\u4e2d\u6709\u7684\u5730\u65b9\u5224\u65ad\u51fa\u9519
        case 10:
        {//\u4f8b\u5b50\uff1aZ119822150
            var m10 = idStr.match(id10Reg);
            if (m10 != null)
            {
                var iSum = 0;
                var D9 = idStr.substring(1,10);

                for (var i=8; i>0; i--)
                {
                    iSum = iSum + D9.charAt(8-i) * i;
                }

                if ( (iSum + parseInt(D9.charAt(8))) % 10 == 0)
                {
                    return true;
                }
                else
                {
                    alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u9a8c\u8bc1\u9519\u8bef!");
                    return false;
                }
            }
            else
            {
                alert("\u9519\u8bef\u63d0\u793a\uff1a\n10\u4f4d\u8eab\u4efd\u8bc1\u7684\u683c\u5f0f\u4e0d\u5bf9\uff0c\u53ef\u80fd\u6709\u975e\u6cd5\u5b57\u7b26\uff01");
                return false;
            }
        }
*/
        case 15:
        {//\u4f8b\u5b50\uff1a422324860305482
            var m15 = idStr.match(id15Reg);
            if (m15 != null)
            {
                if (aCity[ parseInt(idStr.substring(0,2)) ] == null)
                {
                   //alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u5f00\u5934\u4e24\u4f4d\u7701\u4efd\u7f16\u7801\u6709\u8bef\uff01");
                   return false;
                }
                else
                {
                   if (checkDate(idStr.substring(6,12)))
                   {
                        return true;
                   }
                   else
                   {
                       //alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u7684\u51fa\u751f\u65e5\u671f\u6709\u8bef\uff01");
                       return false;
                   }
               }
            }
            else
            {
                //alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u7684\u683c\u5f0f\u4e0d\u5bf9\uff0c\u53ef\u80fd\u6709\u975e\u6cd5\u5b57\u7b26\uff01");
                return false;
            }
        }
        case 18:
        {//\u4f8b\u5b50\uff1a34052419800101001x

		   var m18 = idStr.match(id18Reg);

		   if (m18 != null)
		   {
                idStr = idStr.toLowerCase();
                idStr = idStr.replace('x','a');     //\u5c06\u672b\u5c3e\u7684x\u8f6c\u6362\u6210a\u65b9\u4fbf\u4f7f\u752816\u8fdb\u5236\u8ba1\u7b97

                if (aCity[ parseInt(idStr.substring(0,2)) ] == null)
                {
                    //alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u5f00\u5934\u4e24\u4f4d\u7701\u4efd\u7f16\u7801\u6709\u8bef\uff01");
                    return false;
                }
                else
                {
                    if (!checkDate(idStr.substring(6,14)))
                    {
                        //alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u7684\u51fa\u751f\u65e5\u671f\u6709\u8bef\uff01");
                        return false;
                    }
                    else
                    {
                        var iSum = 0;
                        for (var i=17; i>=0; i--)
                        {
                            iSum = iSum + (Math.pow(2,i)%11 * parseInt(idStr.charAt(17-i),16));
                        }

                        if (iSum % 11 != 1)
                        {
                            //alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u672b\u5c3e\u7684\u6821\u9a8c\u7801\u9519\u8bef\uff01\n\u8ba1\u7b97\u7ed3\u679c\u5e94\u8be5\u4e3a\uff1a"+getVerifyNumber(idStr.substring(0,17)));
                            return false;
                        }
                        else
                        {
                            return true;
                        }
                    }
                }
            }
			else
			{
				//alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u7684\u683c\u5f0f\u4e0d\u5bf9,\u53ef\u80fd\u6709\u975e\u6cd5\u5b57\u7b26\uff01");
				return false;
			}
	   }
	   default:
       //alert("\u9519\u8bef\u63d0\u793a\uff1a\n\u8eab\u4efd\u8bc1\u5b57\u7b26\u957f\u5ea6\u4e0d\u5bf9\uff0c\u662f15\u4f4d\u6216\u800518\u4f4d\uff01\n\u5f53\u524d\u7ed9\u51fa\u7684\u662f"+idStr.length+"\u4f4d\u3002");
	   return false;
   }

}

function checkDate(str)
{
//\u68c0\u6d4b\u8f93\u5165\u7684\u65e5\u671f\u662f\u5426\u5408\u6cd5\uff0c\u5176\u683c\u5f0f\u4e3a\u4e2d\u95f4\u6ca1\u6709\u8fde\u63a5\u7b26

	if (str.length == 6 || str.length == 8)
	{
		if (str.length == 6)
		{//2000\u5e74\u540e\u51fa\u751f\u7684\u8eab\u4efd\u8bc1\u6ca1\u6709\u4e24\u4f4d\u7684\uff0c\u6807\u51c6\u662f1999\u5e74\u6267\u884c\u7684\uff0c\u4f30\u8ba118\u4e16\u7eaa\u51fa\u751f\u7684\u6781\u5c11
			str = "19" + str;
		}
	}
	else
	{
		return false;
	}

	var reg = /^(\d{1,4})(\d{1,2})(\d{1,2})$/;

	var r = str.match(reg); 

	if (r==null)
	{
		return false; 
	}

	var d= new Date(r[1], --r[2],r[3]); 

	if (d.getFullYear()!=r[1])
		return false;
	if (d.getMonth()!=r[2])
		return false;
	if (d.getDate()!=r[3])
		return false;

	return true;
}

function getVerifyNumber(idStr)
{//\u8ba1\u7b97\u6700\u540e\u4e00\u4f4d\u6821\u9a8c\u7801
    var iSum = 0;
    for (var i=idStr.length; i>=0; i--)
    {
        iSum = iSum + (Math.pow(2,i)%11 * idStr.charAt(idStr.length-i));
    }

    var y = iSum % 11;
    var c = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
    return c[y];
}

function CID15to18(idStr15)
{
    if (checkValidIDNumber(idStr15) && idStr15.length == 15)
    {//21\u4e16\u7eaa\u51fa\u751f\u7684\u8eab\u4efd\u8bc1\u4e0d\u4f1a\u630915\u4f4d\u7f16\u7801\u7684
        var newIdStr = idStr15.substring(0,6) + "19" + idStr15.substring(6,15);
        var vertifyNum = getVerifyNumber(newIdStr); 
        return newIdStr + vertifyNum;
    }
    return false;
}

//----------------added by JasonChen
//format:  yyyy-mm-dd/hh:mm
function checkInputDate(str)
{
    var reg = /^(\d{1,4})-(\d{1,2})-(\d{1,2})\/(\d{1,2}):(\d{1,2})$/;
    
    var r = str.match(reg); 

	if (r==null)
	{
		return false; 
	}

	var d= new Date(r[1], --r[2],r[3], r[4], r[5]); 
	
	return d.getFullYear()==r[1] && d.getMonth()==r[2] && d.getDate()==r[3] && d.getHours() == r[4] && d.getMinutes() == r[5];
}

function checkEmail(str)
{
    ////  \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    
    var regExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    var m = str.match(regExp);

    if (m == null)
    {
        return false;
    }
    else
    {
        return true;
    }
}
/** new IDCard check (end)--------------------------**/

//\u91d1\u989d\u7b49\u6570\u5b57
function checkInputNumber(str)
{
	var regExp = /^[0-9]+(.[0-9]+)?$/;
	var m = str.match(regExp);
	if (m == null)
	{
	    return false;
	}
	else
    {
        return true;
    }
}

//\u90ae\u653f\u7f16\u7801
function checkInputPostalCode(str)
{
	var regExp = /^\d{6}/;
	var m = str.match(regExp);
	if (m == null)
	{
	    return false;
	}
	else
    {
        return true;
    }
}

function checkPhoneNumber(str)
{
    var regExp = /^[0-9]+[0-9]*-?[0-9]+$/;
    //\u5339\u914d\u4e00\u4e2a-\uff0c\u5e76\u4e14\u4e0d\u80fd\u653e\u5728\u672b\u5c3e\uff0c\u5176\u4ed6\u7684\u90fd\u662f\u6570\u5b57

    var m = str.match(regExp);

    if (m == null)
    {
        //alert("\u7535\u8bdd\u53f7\u7801\u53ea\u80fd\u7531\u6570\u5b57\u548c\u4e00\u4e2a\u201c-\u201d\u7ec4\u6210\uff0c\n\u5e76\u4e14\u201c-\u201d\u4e0d\u80fd\u5728\u5f00\u5934\u548c\u672b\u5c3e\u3002");
        return false;
    }
    else
        return true;
}

function validNumber(js_value)
{//\u68c0\u6d4b\u8f93\u5165\u7684\u8bc1\u4ef6\uff0c\u7f16\u53f7\u548c\u5404\u79cd\u53f7\u7801\u7684\u65b9\u6cd5\uff0c\u5141\u8bb80\u52309\u548ca\u5230z\u7684\u5b57\u7b26\uff0c\u4e0d\u5206\u5927\u5c0f\u5199
//\u4e2d\u95f4\u53ef\u4ee5\u95f4\u9694\u4efb\u610f\u591a\u4e2a\u201c-\u201d\u7b26\u53f7
    var regExp = /^[0-9a-z]+[0-9a-z-]*[0-9a-z]+$/i;
    var m = js_value.match(regExp);

    if (m == null)
    {
        return false;
    }
    else
    {
        return true;
    }
}
function trim(x)
{//\u5220\u9664\u8f93\u5165\u7684\u7a7a\u683c
	while((x.length>0) && (x.charAt(0)==' '))
	x = x.substring(1,x.length);

	while((x.length>0) && (x.charAt(x.length-1)==' '))
	x = x.substring(0,x.length-1);

	return x;
}

/**
 * Get the defined selected checkboxes number
 * @param selectElementArray the checkbox array
 */
function getSelectedNum (selectElementArray)
{
    var total = 0;
	
    if (selectElementArray != null)
	{
    	var max = selectElementArray.length;
    	
    	if (max==null)
    	{
    		if (selectElementArray.checked == true)
				total = 1;
			return	total;
    	}
    	
    	if (max > 1)
		{
	    	for (var index = 0; index < max; index++) 
       			if (selectElementArray[index].checked == true)
                	total += 1;
		}
    	else
		{
			// as ie version
			try
			{
				if (selectElementArray[0].checked==true)
					total = 1;
			}
			catch (e)
			{
				if (selectElementArray.checked==true)
					total = 1;
			}
		}
    }

    return total;
}

function checkAllSelection(selectElementArray, checkValue)
{
	if (selectElementArray == undefined)
	{
		alert("array undefined !");
	}

	if (checkValue != true && checkValue != false)
	{
		alert("status error !");
	}

	var numberOfChoice = selectElementArray.length;
	for (var index = 0; index < numberOfChoice; index++) 
	{
		if (selectElementArray[index].checked != checkValue)
		{
			selectElementArray[index].checked = checkValue;
		}
	}
}

function getSelectedIndex(selectElementArray)
{
    var selected = undefined;
	
	for (var index = 0, max = selectElementArray.length; index < max; index++) 
	{
		if (selectElementArray[index].checked == true)
		{
        	selected = index;
        	break;
        }
    }

	return selected;
}

function getSelectedIndexs(selectElementArray)
{
    var selected = new Array();
	var i=0;

    if (selectElementArray != null)	{
    	var max = selectElementArray.length;
    	
    	if (max==null) 	{
    		if (selectElementArray.checked == true)
			return	selected[0]=0;;
    	}   	
    	else {
	    	for (var index = 0; index < max; index++) 
       			if (selectElementArray[index].checked == true)
		        	selected[i++] = index;
		}
    }

	return selected;
}

function getObjectIndexInList(objectList, object)
{
	var index = -1;
	
	for(i = 0, n = objectList.length; i < n; i++)
	{
		if(objectList[i] == object)
		{
			index = i;
			break;
		}
	}
	
	return index;
}

function isOptionSelected(allOptions, optionValue)
{
	if(allOptions != null)
	{
	    if(allOptions.type == "select-multiple")
	    {
			for(i = 0, n = allOptions.options.length; i < n; i++)
			{
				if((allOptions.options[i].selected == true) && (allOptions.options[i].value == optionValue))
				{
					return true;
				}
			}
		}
        else
        {
    		if(allOptions.length != null)
    		{
    			for(i = 0, n = allOptions.length; i < n; i++)
    			{
    				if((allOptions[i].type == "radio" || allOptions[i].type == "checkbox") && (allOptions[i].checked == true) && (allOptions[i].value == optionValue))
    				{
    					return true;
    				}
    			}
    		}
    		else
    		{
				if((allOptions.type == "radio" || allOptions.type == "checkbox") && (allOptions.checked == true) && (allOptions.value == optionValue))
				{
					return true;
				}
    		}
    	}
	}
	return false;
}



function formReset(){
   document.forms[0].reset();
}

//Tab\u5207\u6362
function initTabBar(tabBarID, tabNumber, panelIdPrefix, tabIndex)
{
	initTab(tabBarID,panelIdPrefix,tabNumber);
	swapTab(tabBarID, tabIndex);
}

function initTab(tabBarID,panelIdPrefix,tabNumber){
    if(elementList[tabBarID] == undefined)
        elementList[tabBarID] = new Object;
	elementList[tabBarID].hidTabPrefix = panelIdPrefix;
	elementList[tabBarID].hidTabNumber = tabNumber;
}

function swapTab(tabBarID, tabIndex)
{
		var tabId = tabBarID + ".tab" + (2 * tabIndex);
		var Elm = document.all[tabId];
        var tabId1 = tabBarID+".Form";
        var Elm1 = document.all[tabId1];
		Elm1.style.cursor = "hand";

		var panelIdPrefix = elementList[tabBarID].hidTabPrefix;
		var tabNumber = elementList[tabBarID].hidTabNumber;

						var n=tabNumber;//TAB\u6570\u91cf 
						var flow=Elm.id;

						
						var prefix=flow.substring(0,flow.length-1);
						
						var count=flow.substring(flow.length-1,flow.length);
						count=parseInt(count);
						
						for(var i=2;i<=2*n;i=i+2){
							document.all[panelIdPrefix+i].style.display='none';
							try{
								  if( i == 2){
									document.all[prefix + '1'].background="/athena/images/tables-title-yellow-left.gif";
									document.all[prefix + '2'].background="/athena/images/tables-title-yellow-bg.gif";
									document.all[prefix + '3' + "_panel1"].background="/athena/images/tables-title-yellow-right.gif";
									document.all[prefix + '3' + "_panel2"].background="/athena/images/tables-title-yellow-left.gif";
									}
									else if( i == 2*n){
									 document.all[prefix+i].background='/athena/images/tables-title-yellow-bg.gif';
									 document.all[prefix+(i+1)].background='/athena/images/tables-title-yellow-right.gif';
									}
									else
									{		    
									document.all[prefix+i].background='/athena/images/tables-title-yellow-bg.gif';
									document.all[prefix+(i+1) +"_panel1"].background='/athena/images/tables-title-yellow-right.gif';
									document.all[prefix+(i+1) +"_panel2"].background='/athena/images/tables-title-yellow-left.gif';
									  }
								 }catch(e){
							}
						}
						
			
						if(count==2)
						{
							document.all[prefix + '1'].background="/athena/images/tables-title-green-left.gif";
							document.all[prefix + '2'].background="/athena/images/tables-title-green-bg.gif";
							document.all[prefix + '3' + "_panel1"].background="/athena/images/tables-title-green-right.gif";
							document.all[prefix + '3' + "_panel2"].background="/athena/images/tables-title-yellow-left.gif";
							document.all[panelIdPrefix+'2'].style.display='block';
					
						}
						else if(count == 2*n)
						{

							document.all[prefix+(2*n-1) + "_panel1"].background='/athena/images/tables-title-yellow-right.gif';
							document.all[prefix+(2*n-1) + "_panel2"].background='/athena/images/tables-title-green-left.gif';
							document.all[prefix+2*n].background='/athena/images/tables-title-green-bg.gif';
							document.all[prefix+(2*n+1)].background='/athena/images/tables-title-green-right.gif';
							document.all[panelIdPrefix+2*n].style.display='block';
						}
						else
						{

							document.all[prefix + (count-1)+"_panel1"].background='/athena/images/tables-title-yellow-right.gif';
							document.all[prefix + (count-1)+"_panel2"].background='/athena/images/tables-title-green-left.gif';
							document.all[prefix + count].background='/athena/images/tables-title-green-bg.gif';
							document.all[prefix+(count+1)+"_panel1"].background='/athena/images/tables-title-green-right.gif';
							document.all[prefix+(count+1)+"_panel2"].background='/athena/images/tables-title-yellow-left.gif';
					
						}
						try{
							document.all[panelIdPrefix+count].style.display = 'block';
						}catch(e){}

}

//\u6eda\u52a8\u5149\u6761\u6548\u679c

		function changeColor(strValue){
			strValue.className = "TableDarkLine";
			}
			

		function unchangeColor(strValue){
			strValue.className = "TableLightLine";
			}

		function DynamicRow(panelID){
		  var CollectionsRow;
		  CollectionsRow = eval("elementList['"+panelID+"'][1].rows");
		  iLength = CollectionsRow.length;
		  for(i=1;i<iLength;i++){
			CollectionsRow[i].style.cursor="hand";
			CollectionsRow[i].onmouseover = new Function("changeColor(this)");
			CollectionsRow[i].onmouseleave = new Function("unchangeColor(this)");
		  }
		}


function removeOption(inputMenu, removedOption) {
	if (inputMenu != null && inputMenu.options != null) {
		var typeOptions = inputMenu.options ;
		for (var i=0; i<typeOptions.length; i++) {
			if (typeOptions[i].value == removedOption) {
				inputMenu.options[i] = null;
				break;
			}	
		}
	}
}

function getRateTypeIntValue(rateType) {
	if (rateType == "") {
		return 1;
	}
	else if (rateType == "K") {
		return 2;
	}
	else if (rateType == "M") {
		return 3;
	}
}

function compareRate(rateA, rateB) {
	valueA = rateA.substring(rateA.indexOf("BPS") + 3)
	valueB = rateB.substring(rateB.indexOf("BPS") + 3)
	typeA = rateA.substring(0,rateA.indexOf("BPS"))
	typeB = rateB.substring(0,rateB.indexOf("BPS"))
	
	if (typeA == typeB) {
		return valueA - valueB;
	}	
	else {
		return getRateTypeIntValue(typeA) - getRateTypeIntValue(typeB);
	}
}


function checkDDNServiceType(rate, netType, serviceType) {
	_st = serviceType.substring(7,8);
	if (netType == "LocalNetwork" && _st != "1")  {
		return false;
	}
	if (netType == "BetweenLocalNetwork" && _st != "2") {
		return false;
	}
	if (netType != "LocalNetwork" && netType != "BetweenLocalNetwork" && _st != "3") {
		return false;
	}		
	
	_rt = serviceType.substring(6,7)
	if (_rt == "A") {
		return compareRate(rate, "BPS9600") <= 0;
	}
	else if (_rt =="B" && rate == "BPS19200") {
		return true;
	}
	else if (_rt =="C" && rate == "KBPS64") {
		return true;
	}
	else if (_rt =="D" && rate == "KBPS128") {
		return true;
	}
	else if (_rt =="E" && rate == "KBPS256") {
		return true;
	}
	else if (_rt =="F" && rate == "KBPS384") {
		return true;
	}
	else if (_rt =="G" && rate == "KBPS512") {
		return true;
	}
	else if (_rt =="H" && rate == "KBPS768") {
		return true;
	}
	else if (_rt =="I" && rate == "MBPS1") {
		return true;
	}
	else if (_rt =="J" && rate == "MBPS2") {
		return true;
	}
	return false;
}

function disableAll(component)
{
	if(component != null && !(component instanceof Function))
	{
		if(component.length != null && component.type == null)
		{
			for(var i = 0, n = component.length; i < n; i++)
			{
				disableAll(component[i]);
			}
		}
		else
		{
			if(component.disabled != null)
			{
				component.disabled = true;
			}
			else
			{
				for(var subcomponent in component)
				{
					if(subcomponent != "parentEntity")
					{
						disableAll(component[subcomponent]);
					}
				}
			}
		}	
	}
}

/*
var elementList = new Array();

function getElementList()
{
	var el = document.forms[0].elements;
	for (var i=0; i<el.length; i++) {
		var e = el[i];
		var t = elementList[e.name];
		if (t == undefined)
			elementList[e.name] = e;
		else {
			if (t.length == undefined || t.type=="select-one" || t.type=="select-multiple") {
				a = new Array();
				a[0] = t;
				a[1] = e;
				elementList[e.name] = a; 
			}
			else {				
				t[t.length] = e;				
			}
		}
		elementList[i] = e;
	}
	disableDoubleSubmit();
}

function lookupFrame(frameName, _frames) {
	if (_frames == undefined || _frames.length == 0) {
		return undefined;
	}
	for (var i=0; i<_frames.length; i++) {
		if (frameName == _frames[i].name) {
			return _frames[i];
		}
		else {
			var _iframe = lookupFrame(frameName, _frames[i].frames)
			if (_iframe != undefined) {
				return _iframe;
			}
		}
	}
	return undefined;
}
	
function disableDoubleSubmit() {
	document.forms[0]._submit=document.forms[0].submit;
	document.forms[0].submit=function() {
		if (document.activeElement != undefined && document.activeElement.type != 'button') {
			document.forms[0]._submit();	
			return;
		}
		if (document.forms[0].target == "_self") {
			if (document.forms[0].enableSubmited != false) {
				document.forms[0].enableSubmited = false;
				document.forms[0]._submit();	
			}
			else {
				alert('\u6570\u636e\u63d0\u4ea4\u4e2d........\u8bf7\u8010\u5fc3\u7b49\u5f85!');	
			}
		}
		else if (document.forms[0].target == "_parent") {
			if (parent.document.enableSubmited != false) {
				parent.document.enableSubmited = false;
				document.forms[0]._submit();	
			}
			else {
				alert('\u6570\u636e\u63d0\u4ea4\u4e2d........\u8bf7\u8010\u5fc3\u7b49\u5f85!');	
			}
		}
		else {
			frame = lookupFrame(document.forms[0].target, window.top.frames);
			if (frame != undefined) {
				if (frame.document.enableSubmited != false) {
					frame.document.enableSubmited = false;
					document.forms[0]._submit();	
				}
				else {
					alert('\u6570\u636e\u63d0\u4ea4\u4e2d........\u8bf7\u8010\u5fc3\u7b49\u5f85!');	
				}
			}
			else {
				document.forms[0]._submit();
			}
		}
	}
}
*/

function noWrapTable(t) {
	var rowLength = t.rows.length;
	for (var i=0; i<rowLength; i++) {
		var row = t.rows[i];
		var cellLength = row.cells.length;
		for (var j=0; j<cellLength; j++) {
			row.cells[j].noWrap=true;
		}
	}
}

function getDefaultIdNumber() {
	return "#$%";
}

function getNbLehgthByLanId(lanId){
	var nbLength = 8; 
	if (typeof(lanId) != "undefined" && "" != lanId){	
		if (lanId!="2101" && lanId!="2102"){
			nbLength = 7;
		}
	}
	return nbLength;
}

function getNbLehgthByAreaCode(areaCode){
	var nbLength = 8; 
	if (typeof(areaCode) != "undefined" && "" != areaCode){	
		if (areaCode!="024" && areaCode!="0411"){
			nbLength = 7;
		}
	}
	return nbLength;
}

function Map(){
    this.elements=new Array();
    this.size=function(){
        return this.elements.length;
    }
    this.put=function(_key,_value){
    	this.remove(_key);
        this.elements.push({key:_key,value:_value});
    }
   
    this.remove=function(_key){
        var bln=false;
        try{   
            for (i=0;i<this.elements.length;i++){  
                if (this.elements[i].key==_key){
                    this.elements.splice(i,1);
                    return true;
                }
            }
        }catch(e){
            bln=false;    
        }
        return bln;
    }
   
    this.containsKey=function(_key){
        var bln=false;
        try{   
            for (i=0;i<this.elements.length;i++){  
                if (this.elements[i].key==_key){
                    bln=true;
                }
            }
        }catch(e){
            bln=false;    
        }
        return bln;
    }
    
    this.get=function(_key){    
        try{   
            for (i=0;i<this.elements.length;i++){  
                if (this.elements[i].key==_key){
                    return this.elements[i].value;
                }
            }
        }catch(e){
            return null;   
        }
    }
}

function putClientData(key, value)
{
	try{
		var topFrame = window;
		while((topFrame.frames['bottomFrame'] == undefined 
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'] == undefined
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'].putClientDataCache == undefined) 
				&& topFrame.opener != undefined){
			topFrame = topFrame.opener;	
		}
		topFrame = topFrame.top;
		topFrame.frames['bottomFrame'].frames['clientDataFrame'].putClientDataCache(key, value);
	}
	catch (e){
	}
}

function removeClientDateWithRegex(regex)
{
	try{
		var topFrame = window;
		while((topFrame.frames['bottomFrame'] == undefined 
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'] == undefined
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'].removeClientDateCacheWithRegex == undefined) 
				&& topFrame.opener != undefined){
			topFrame = topFrame.opener;	
		}
		topFrame = topFrame.top;
		topFrame.frames['bottomFrame'].frames['clientDataFrame'].removeClientDateCacheWithRegex(regex);
	}
	catch (e){
	}
}

function getClientDataFromClient(key)
{
	var value;
	try{
		var topFrame = window;
		while((topFrame.frames['bottomFrame'] == undefined 
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'] == undefined
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'].getClientDataCache == undefined) 
				&& topFrame.opener != undefined){
			topFrame = topFrame.opener;	
		}
		topFrame = topFrame.top;
		value = topFrame.frames['bottomFrame'].frames['clientDataFrame'].getClientDataCache(key);
	}
	catch (e){
	}
	return value;
}

function getClientData(key, ba, parameters, callback, isAsyn)
{
	var value;
	if (isAsyn == undefined){
		isAsyn = false;	
	}
	try{
		var topFrame = window;
		while((topFrame.frames['bottomFrame'] == undefined 
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'] == undefined
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'].getClientDataCache == undefined) 
				&& topFrame.opener != undefined){
			topFrame = topFrame.opener;	
		}
		topFrame = topFrame.top;
		value = topFrame.frames['bottomFrame'].frames['clientDataFrame'].getClientDataCache(key);
	}
	catch (e){
	}
	if (value == undefined && ba != undefined && ba != ""){
		var param="action="+ ba +"&"+parameters;
		if (!isAsyn){
			value = requestURL("/athena/jsp/Dispatch.jsp", param);
			if (value != undefined){
				if (callback != undefined){
					value = callback(value);
				}
				putClientData(key, value);
			}
		}
		else{
			var callback2 = function callback2(result){
				value = callback(result);
				putClientData(key, value);
			}
			requestURLSelectedWay("/athena/jsp/Dispatch.jsp", param, true, callback2);
		}
	}
	return value;
}


//call back js


function requestURL(urlString, parameters)
{
	return requestURLSelectedWay(urlString, parameters, false);
}

function executeBAOnClient(baName, parameters, isAsyn, callback)
{
	var param="action="+ ba +"&"+parameters;
	requestURLSelectedWay("/athena/jsp/Dispatch.jsp", param, isAsyn, callback);
}

function requestURLSelectedWay(urlString, parameters, isAsyn, callback)
{
	var xmlhttp=false;
	var jspUrl = urlString;
    if (window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
    }
    // IE5 for the mac claims to support window.ActiveXObject, but throws an error when it's used
    else if (window.ActiveXObject && !(navigator.userAgent.indexOf('Mac') >= 0 && navigator.userAgent.indexOf("MSIE") >= 0))
    {
		 try 
		 {
		  	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		 } 
		 catch (e)
		 {
		  	try 
		  	{
		   		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		  	}
		  	catch (E) 
		  	{
		   		xmlhttp = false;
		  	}
		}
	}
	jspUrl = jspUrl + "?_timestamp=" + new Date().getTime();
	var url;
	if (parameters != undefined && parameters != ""){
		parameters = encodeURIComponent(parameters);
		url = jspUrl + "&" + parameters;
	}
	else{
		url = jspUrl;
	}
	if (!isAsyn || callback == undefined){
		xmlhttp.open("POST", url, false);
		xmlhttp.send(null);
		if (xmlhttp.readyState == 4  && xmlhttp.status == 200){
			return xmlhttp.responseText.replace(/^\s+|\s+$/g,"");
		}
		return undefined; 
	}
	else{
		xmlhttp.open("POST", url, true);
		xmlhttp.onreadystatechange=function() 
		{
			if (xmlhttp.readyState==4 ) 
			{
				if(xmlhttp.status == 200)
				{
					callback(xmlhttp.responseText.replace(/^\s+|\s+$/g,""));
				}
				else{
					callback("");
				}
			}
		}
		xmlhttp.send(null);
	}
}

function encodeURIComponent(s)
{
	var _okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-&=";
    s = _utf8(s);
    var c;
    var enc = "";

    for (var i= 0; i<s.length; i++)
    {
        if (_okURIchars.indexOf(s.charAt(i)) == -1)
        {
            enc += "%" + _toHex(s.charCodeAt(i));
        }
        else
        {
            enc += s.charAt(i);
        }
    }

    return enc;
}

function _utf8(wide)
{
    var c;
    var s;
    var enc = "";
    var i = 0;

    while (i < wide.length)
    {
        c = wide.charCodeAt(i++);
        // handle UTF-16 surrogates
        if (c >= 0xDC00 && c < 0xE000)
        {
            continue;
        }

        if (c >= 0xD800 && c < 0xDC00)
        {
            if (i >= wide.length)
            {
                continue;
            }

            s = wide.charCodeAt(i++);
            if (s<0xDC00 || c>=0xDE00)
            {
                continue;
            }

            c = ((c - 0xD800) << 10) + (s - 0xDC00) + 0x10000;
        }

        // output value
        if (c < 0x80)
        {
            enc += String.fromCharCode(c);
        }
        else if (c < 0x800)
        {
            enc += String.fromCharCode(0xC0 + (c >> 6), 0x80 + (c & 0x3F));
        }
        else if (c < 0x10000)
        {
            enc += String.fromCharCode(0xE0 + (c >> 12), 0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));
        }
        else
        {
            enc += String.fromCharCode(0xF0 + (c >> 18), 0x80 + (c >> 12 & 0x3F), 0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));
        }
    }

    return enc;
}

function _toHex(num)
{
	var _hexchars = "0123456789ABCDEF";
    return _hexchars.charAt(num >> 4) + _hexchars.charAt(num & 0xF);
}

// call back js end
  var businessAreaflag = 1;
	var dataArray = new Array();
  var searchFlag = false;
  var preOb = "";
  function filterFunction(ob){ 
     filterFunctionForArray(ob, undefined);
  }
  function filterFunctionForArray(ob, fullDatas){ 
      if(ob.value == "99999999"){
     
      if(preOb.options && preOb != ob){
      	  var tmp = preOb.value;
      		for(var i=preOb.options.length-1;i>=0;i--){
	            preOb.options[i] = null;
	        }
				  for(var i=0,len=dataArray.length;i<len;i++){
				      preOb.options[preOb.options.length]=new Option(dataArray[i][0],dataArray[i][1]); 
				      if(tmp == dataArray[i][1]){
				  	      preOb.options[i].selected = true;
				  	  }
				  }
				  
				  preOb = ob;
	    	dataArray = new Array();
		    for(var i=0,len=ob.options.length;i<len;i++){
		        
		        var tmp = new Array();
		        tmp[1]= ob.options[i].value;
		        tmp[0]= ob.options[i].text;
		        dataArray[i] = tmp;
		    }				  
      }
	    if(!searchFlag){
	    	preOb = ob;
	    	dataArray = new Array();
		    for(var i=0,len=ob.options.length;i<len;i++){
		        
		        var tmp = new Array();
		        tmp[1]= ob.options[i].value;
		        tmp[0]= ob.options[i].text;
		        dataArray[i] = tmp;      
		    }
	    }
	    searchFlag = true;
	    var str = prompt("\u8bf7\u8f93\u5165\u8981\u8fc7\u6ee4\u7684\u6761\u4ef6(\u5982\u679c\u60f3\u8f93\u5165\u591a\u4e2a\u67e5\u8be2\u6761\u4ef6,\u8bf7\u7528\u7a7a\u683c\u9694\u5f00)\uff1a\n\n\n","");
	    //alert(str);  
	    if(str == ""){
	    	 ob.options[0].selected = true;
	        return;
	    }
	    for(var i=ob.options.length-1;i>=0;i--){
	        ob.options[i] = null;
	    }	  
	    if(str == null){
			    for(var i=0,len=dataArray.length;i<len;i++){
			        ob.options[ob.options.length]=new Option(dataArray[i][0],dataArray[i][1]); 
			    }
			    ob.options[0].selected = true;
			    return;
	    }
	    var flag = false;
	    var tmpArray = new Array();
	    if(fullDatas == undefined){
		    for(var i=0,len=dataArray.length;i<len;i++){
		        if(indexOfString(dataArray[i][0], str)){
		            ob.options[ob.options.length]=new Option(dataArray[i][0],dataArray[i][1]); 
		            flag = true;       
		        }
		        if(ob.options.length == 1){
		            ob.options[ob.options.length]=new Option("<-\u8fc7\u6ee4->","99999999"); 
		        }
		    }
	    }else{
		    for(var i=0,len=fullDatas.length;i<len;i++){
		    		if(fullDatas[i][0] == undefined){
		    		continue;
		    		}
		        if(indexOfString(fullDatas[i][0], str)){	     	  
		        	  var test_ = fullDatas[i][0];
		        	  var value_ = fullDatas[i][1];
	        	  	  var tmp = new Array();
				      tmp[1]= value_;
				      tmp[0]= test_;
	        	  	  tmpArray[tmpArray.length]=tmp;
		              ob.options[ob.options.length]=new Option(test_,value_);
		              flag = true;
			          if(tmpArray.length == 1){
			          	  var filter = new Array();
			          	  filter[1]="99999999";
			          	  filter[0]="<-\u8fc7\u6ee4->";
			              tmpArray[tmpArray.length]=filter;
			          }
		        }
		        if(ob.options.length == 1){
		            ob.options[ob.options.length]=new Option("<-\u8fc7\u6ee4->","99999999"); 
		        }
		    }
		    if (flag){
		    	dataArray = tmpArray;	
		    }	        
	    }
	    if(!flag){
				  for(var i=0,len=dataArray.length;i<len;i++){
				      ob.options[ob.options.length]=new Option(dataArray[i][0],dataArray[i][1]); 
				  }
				  if(confirm("\u6ca1\u6709\u627e\u5230,\u662f\u5426\u8981\u7ee7\u7eed\u8fc7\u6ee4")){
				  	  ob.options[1].selected = true;
	            filterFunctionForArray(ob, fullDatas);
	        } 
	    }
      ob.options[0].selected = true;
    }        
  }
  
function indexOfString(s, t){
	t = trim(t);
	var arr = t.split(" ");
	for (var i = 0; i < arr.length; i++){
		if (s.indexOf(arr[i]) == -1){
			return false;	
		}	
	}
	return true;	
}
  //add by LV
function firstProcess(eventsource1,eventsource2,eventsource3,eventsource4) {
var UIEntity = this;
var selectedValue = eventsource1.inputMenu.value;
var nextBureau = null;
var optionList = null;
var optionDisplayList = null;
nextBureau = eventsource2;
if(eventsource3 != undefined && eventsource4 !=undefined){
 
    optionList = eventsource3.value.split(",");
    optionDisplayList = eventsource4.value.split(",");
    if(nextBureau != null)
    {
    	var inputMenu = nextBureau.inputMenu;
    	
    	for(var i = inputMenu.length - 1; i >= 0; i--)
    	{
    		try{inputMenu.remove(i);}catch(e){}
    	}
    	
    	if(optionList != null)
    	{
    		 
    		for(var i = 0, n = optionList.length; i < n; i++)
    		{
    			var option = optionList[i];
        		if(option == "-1" || option.indexOf(selectedValue) == 0)
        		{
        			var newOption = document.createElement("option");
            		newOption.text = optionDisplayList[i];
                	newOption.value = option;			
        			try {
        				inputMenu.options[inputMenu.options.length]=newOption;
        			}
        			catch(e) {
        				inputMenu.add(newOption, inputMenu.options.length);
        			}
        		}
    		}
    	}
    }
}
}

//add by V
var flagRp = 0;
function firstProcess(obj) {
	 if(obj.allItem){
	     for(var i=0, len=obj.allItem.length;i<len;i++){
	     	   
	         if(obj.allItem[i].refRatePlanUIInterface.uIRadioButton1.checked){
	             flagRp++;	
	         }
	         firstProcess(obj.allItem[i].refRatePlanUIInterface.packageRatePlanUiEntity1);
	     }
	     
	 }
	 if(obj.oneItem){
	     for(var i=0, len=obj.oneItem.length;i<len;i++){
	         if(obj.oneItem[i].refRatePlanUIInterface.uIRadioButton1.checked){
	             flagRp++;	
	         }
	         firstProcess(obj.oneItem[i].refRatePlanUIInterface.packageRatePlanUiEntity1);
	     }
	 }
	 if(obj.mutiItem){
	     for(var i=0, len=obj.mutiItem.length;i<len;i++){
	         if(obj.mutiItem[i].refRatePlanUIInterface.uIRadioButton1.checked){
	             flagRp++;	
	         }
	         firstProcess(obj.mutiItem[i].refRatePlanUIInterface.packageRatePlanUiEntity1);
	     }
	 }	 	 
}


function enableAllElements(eventsource) {

		var UIEntity = this;
		// enable all elements  -- start
		var e = this.document.forms[0].elements;
		var i;
		for (i = 0; i < e.length; i++)
		{
			e[i].disabled = false;
		}
		// enable all elements  -- end
        
	}
	
function checkSID(sidKey,checkValue){
	var value;
	try{
		var topFrame = window;
		while((topFrame.frames['bottomFrame'] == undefined 
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'] == undefined
				|| topFrame.frames['bottomFrame'].frames['clientDataFrame'].getClientDataCache == undefined) 
				&& topFrame.opener != undefined){
			topFrame = topFrame.opener;	
		}
		topFrame = topFrame.top;
		value = topFrame.frames['bottomFrame'].frames['clientDataFrame'].getClientDataCache("checkSID");
	}
	catch (e){
	}
	if (value == undefined){
		value = requestURL("/athena/jsp/checkSID.jsp");
		if (value != undefined){
				putClientData("checkSID", value);
			}
		}
		var result=eval(value);
		for (var i=0,j=result.length;i<j;i++)
		{
			if (sidKey == result[i][0])
			{
				var warn="";
				function convert(value)
				{
					return eval(value);
				}
				for (var m=1,n=result[i].length;m<n;m++)
				{
					if (result[i][m][2]=="regExp")
					{
						var regex=new RegExp(result[i][m][0]);
						if (!regex.test(checkValue))
							{
								warn=warn+result[i][m][1]+"\n";
							}
					}else if (result[i][m][2]=="exp")
						{
							if (!convert(result[i][m][0]))
							{
								warn=warn+result[i][m][1]+"\n";
							}
						}
				}
				if (warn=="")
					{
						return true;
					}
					else {
						alert(warn);
						return false;
						}
				break;
			}
		}
		
	}

	function checkClientCache(jsArraryList)
	{
		if (jsArraryList != "")
		{
			var result=eval(jsArraryList);
			var updateRegex = result[0];
			for(var i=0,j=updateRegex.length;i<j;i++)
			{
					var regex=updateRegex[i];
					removeClientDateWithRegex(regex);
			}
	  }
  }
  
  function chkLen(str){
   var len=0;
   for(var i=0; i<str.length; i++){
     var c=str.charCodeAt(i);
     //\u534a\u89d2
     if(c<256||(c>=0xff61&&c<=0xff9f)){
       len=len+1;
     }
     //\u5168\u89d2
     else{
       len=len+2;
     }
   }
   return len;
}
