﻿// JScript 文件
function RemoveAllChild(o)
{
    while(o.hasChildNodes())
    {
        RemoveAllChild(o.lastChild);
        o.removeChild(o.lastChild);   
    }
}
function CheckAll(o,s)
         {
             var chkother= document.getElementsByTagName("input");
             for (var i=0;i<chkother.length;i++)
            {
                 if( chkother[i].type=='checkbox')
                 {
                     if(chkother[i].id.indexOf(s)>-1)
                    {                        
                         chkother[i].checked=o.checked;                         
                     }
                 }
             }
         }

function getCtrolClientElement(serverID)
{
    var findE = document.getElementsByTagName("input");
             for (var i=0;i<findE.length;i++)
            {
                 if(findE[i].id.indexOf(serverID)>-1)
                 {                        
                     return  findE[i];                   
                 }
                 
             }
}

String.prototype.trim= function() 
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

	//选择日期
function fPopUpCalendarDlg(ctrlobj)
{
	showx=event.screenX;
	showy=event.screenY;
	newWINwidth = 210 + 4 + 18;
	retval = window.showModalDialog("calendar.html?x="+Math.random(), "calendar", "dialogWidth:206px; dialogHeight:248px; dialogLeft:"+showx+"px; dialogTop:"+showy+"px; status:no; directories:no;scrollbars:no;Resizable=no; "  );
	//retval.body.bgColor="#E7F3FF";
	if( retval != null )
	{		
		ctrlobj.value = retval;
	}
}


function CheckIntFormat(o)
{
    o.value=o.value.replace(/[^\d.]/g,'').replace(/\./g,'');
}
function ReplaceTxtSpecialChar(o)
{
    o.value = o.value.replace(/</g,"&lt;").replace(/>/g,"&gt;");
}

function CGradeMenuItem(itemID, itemText, itemValue, parentID)
{
	this.itemID = itemID;
	this.itemText = itemText;
	this.itemValue = itemValue;
	this.parentID = parentID;
}

function CGradeMenu(objStr, targetStr)
{
	this.objStr = objStr;
	this.targetStr = targetStr;
	this.target = document.getElementById(this.targetStr);
	this.direction = "h";
	this.groupSize = 1;
	this.itemArr = new Array();
	this.AppendItem = CGradeMenu_AppendItem;
	this.Create = CGradeMenu_Create;
	this.BuildGroup = CGradeMenu_BuildGroup;
	this.GetGroupCnt = CGradeMenu_GetGroupCnt;
	this.GetGroup = CGradeMenu_GetGroup;
	this.GetItemIdByItemValue = CGradeMenu_GetItemIdByItemValue;	
}


function CGradeMenu_AppendItem(itemID, itemText, itemValue, parentID)
{
	this.itemArr[this.itemArr.length] = new CGradeMenuItem(itemID, itemText, itemValue, parentID);
}

function CGradeMenu_Create()
{
	var parentID = (arguments.length<1)?0:arguments[0];
	this.target.innerHTML = "";
	this.BuildGroup(0, parentID);
}

function CGradeMenu_BuildGroup(groupIndex, parentID)
{
	while (this.target.childNodes.length > groupIndex)
	{
		this.target.removeChild(this.target.lastChild);
	}
	var itemIndexArr = new Array();
	var i = 0;
	for (i=0; i<this.itemArr.length; i++)
	{
		if (this.itemArr[i].parentID == parentID)
		{
			itemIndexArr[itemIndexArr.length] = i;
		}
	}
	if (itemIndexArr.length > 0)
	{
		var board = this.target.appendChild(document.createElement((this.direction!="v")?"span":"div"));
		var e = board.appendChild(document.createElement("select"));
		e.size = this.groupSize;
		e.id = this.objStr + "_item_" + groupIndex;
		e.name = e.id;
		var eventStr = this.objStr + ".BuildGroup(" + (groupIndex+1) + ", " + this.objStr + ".GetItemIdByItemValue(document.getElementById('" + e.id + "').value));";
		if (window.attachEvent)
		{
			e.attachEvent("onchange", function(){eval(eventStr)});
		}
		else
		{
			e.setAttribute("onchange", "javascript:" + eventStr);
		}
		for (i=0; i<itemIndexArr.length; i++)
		{
			e.options[e.options.length] = new Option(this.itemArr[itemIndexArr[i]].itemText, this.itemArr[itemIndexArr[i]].itemValue);
		}
		e.options.selectedIndex = 0;
		this.BuildGroup(groupIndex+1, this.itemArr[itemIndexArr[0]].itemID);
	}
}

function CGradeMenu_GetGroupCnt()
{
	return this.target.childNodes.length;
}

function CGradeMenu_GetGroup(groupIndex)
{
	return this.target.childNodes[groupIndex].childNodes[0];
}

function CGradeMenu_GetItemIdByItemValue(s)
{
    for (i=0; i<this.itemArr.length; i++)
    {
        if(this.itemArr[i].itemValue==s)
        {
            return this.itemArr[i].itemID;
        }
    }
}


////////Ajax使用部分
var GO = function(elemId)
{
	return document.getElementById(elemId);
}

//在指定的元素上显示返回内容
function ajax_view(url,method,param,div_id)
{
	xmlHttp = get_xmlHttp();
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			GO(div_id).innerHTML =  xmlHttp.responseText ;
		}
	}
	method = method.toUpperCase();
	if(method == 'GET')
	{
	    url = url + '?' + param;
	    xmlHttp.open(method,url,true);
		xmlHttp.send(null);
	}
	else
	{
	    xmlHttp.open(method,url,true);
	    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		xmlHttp.send(param);
	}
}

function ajax_callmyfunction(url,method,param,myCallFunction)
{
    xmlHttp = get_xmlHttp();
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			myCallFunction(xmlHttp.responseText) ;
		}
	}
	method = method.toUpperCase();
	if(method == 'GET')
	{
	    url = url + '?' + param;
	    xmlHttp.open(method,url,true);
		xmlHttp.send(null);
	}
	else
	{
	    xmlHttp.open(method,url,true);
	    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		xmlHttp.send(param);
	}
}


function get_xmlHttp()
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari    
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{    // Internet Explorer    
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
	return xmlHttp;
}

function get_form_elements(form_id)
{
    var form = GO(form_id);
	str = '';
	if(form)
	{
	    for(i=0;i<form.elements.length;i++)
	    {
		    c = form.elements[i];
		    type = c.type ;
		    if((type == 'text' || type == 'password' || type == 'checkbox' || type == 'radio' || type == 'hidden' || type == 'textarea' || type == 'select-one') && c.value != '')
		    {
			    if(type == 'radio' || type == 'checkbox')
			    {
				    if(c.checked == true)
				    {
					    str += c.id + '=1&';
				    }
			    }
			    else
			    {
					    str += c.id + '=' + c.value + '&';
			    }
		    }
	    }
	}
	str = encodeURI(str.substring(0, str.length - 1));
	return str;
}


//key是英文字符
function GetQuery(key)
{
    var v='';
    key=key.toLowerCase();
    var search=location.search.toLowerCase();
    if(search.length > 0)
        search = search.substring(1,search.length);
    var q = search.split("&");
    for(var i = 0; i < q.length; i++)
    {
        var kv = q[i].split("=")
        if(kv.length > 1 && kv[0].trim()==key)
        {
            v = decodeURI(kv[1]).trim();
            break;
        }
    }
    return v;
}

function SetSelectItem(objSelect, objItemValue) { 
     for (var i = 0; i < objSelect.options.length; i++) {        
         if (objSelect.options[i].value == objItemValue) {        
             objSelect.options[i].selected = true; 
             break;        
         }        
     }           
}

//取级联菜单值
function GetMenuValue(menu)
{
    var maxIndex=0;
    var selects=document.getElementsByTagName('select');
    for(var i=0;i<selects.length;i++)
    {
        if(selects[i].id && selects[i].id.indexOf(menu+'_item_')>-1)
        {
            if(parseInt(selects[i].id.split('_')[2])>maxIndex)
                maxIndex=parseInt(selects[i].id.split('_')[2]);
        }
    }
    var v='0';
    for(var i=maxIndex;i>=0;i--)
    {
        v=document.getElementById(menu+'_item_'+i).value;
        if(v!='0')
            break;
    }
    return v;
}
