/*
封装关于ajax对象的相关操作，所有页面引用
*/

var AjaxCommon = function(){
    var list = []
    return {
        add : function(ajax){
            list.push(ajax)
        },
        clear: function(){
            list = []
        },
        contains: function(request){
            return list.indexOf(request) != -1
        }
    }
}()

function request(url, paras, callback,isIgnore){
	var myajax = new Ajax.Request(
		url,
		{method:'post', parameters:paras+'&'+Math.random(), onComplete:function(request){
		    if(typeof(isIgnore)=="undefined" ){
		        if(!AjaxCommon.contains(request)){return}
		    }else{
		        if(isIgnore){
		            if(!AjaxCommon.contains(request)){return}
		        }
		    }
		    if(callback){
		        try{
		            callback(request)}catch(e){
		            //alert(e.message)
                }
		    }
		}}
	)
	AjaxCommon.add(myajax.transport)
}

function update(e, url,paras, onComplete){
    if(url.indexOf('?') == -1){
        url += '?' + Math.random()
    }else{
        url += '&'+ Math.random()
    }
	var myajax = new Ajax.Updater(
		{success:e},
		url,
		{method:'post', parameters:paras+'&'+Math.random(), onComplete:onComplete?onComplete:function(request){
			e.loaded = 1
			//alert(request.responseText)
		}}
	)
}

var list = {
	url: '',
	parentID: '',
	pageno: 1,
	arrSelectedID:[],
	win:null,
	TurnPageParameter:{},
	eContainer:null,
	Reset: function(){
		list.url = ''
		list.parentID = ''
		list.pageno = 1
		list.arrSelectedID = []
	},
	SelectAll: function(){
		var e = Event.element(event)
		var t = list.eContainer || $('tdRight')
		var arr = t.getElementsByTagName('input')
		for(var i=0; i<arr.length; i++){
			if(arr[i].disabled || arr[i]==e || arr[i].checked==e.checked){
				continue
			}
			arr[i].click()
		}
	},
	Select: function(){
		var checkbox = Event.element(event)
		list.checkbox = checkbox
		var chid = checkbox.name.replace('Object_', '')
		chid = chid?chid:checkbox.value
		var index = list.arrSelectedID.indexOf(chid)
		
		if(checkbox.checked){
			if(index == -1){
				list.arrSelectedID.push(chid)
			}
		}else{
			list.arrSelectedID[index] = 0
		}
		var arr = []
		for(var i=0; i<list.arrSelectedID.length; i++){
			if(list.arrSelectedID[i] != 0){
				arr.push(list.arrSelectedID[i])
			}
		}
		list.arrSelectedID = arr
		//alert(arr)
	},
	TurnPage: function(parentID, pageno, url){
	    //alert(list.url)
	    if(parentID){
			list.parentID = parentID
		}
		if(pageno){
			list.pageno = pageno
		}
		if(url){
			list.url = url
		}
		var e = list.eContainer || $('tdRight')
		var paras = 'parentID=' + list.parentID + '&pageno=' + list.pageno
		paras += '&channelid=' + list.parentID
		paras += '&SiteID=' + tree.siteid
		if(arguments.length > 3){
		    list.TurnPageParameter = arguments[3]
		}
		var o = list.TurnPageParameter
	    for(p in o){
	        paras += '&' + p + '=' + o[p]
	    }
		//alert(list.url)
		//alert(paras)
		//alert(list.TurnPageCallback)
		update(list.eContainer || e, paras, list.url, list.TurnPageCallback)
		list.arrSelectedID = []
	},
	Add: function(url){
	    //alert(url)
		var win = CMS.GetWin()
		url += '&parentID=' + list.parentID
		url += '&' + Math.random()
		win.setURL(url)
	    win.showCenter()
		win.refresh()
	},
	Edit: function(url){
	    if(list.arrSelectedID.length==0){
			alert(CMS.confirm.s)
			return
		}
		var win = CMS.GetWin()
		url += '&parentID=' + list.arrSelectedID[list.arrSelectedID.length-1]
		url += '&bap_sys_id=' + list.arrSelectedID[list.arrSelectedID.length-1]
		url += '&id=' + list.arrSelectedID[list.arrSelectedID.length-1]
		url += '&' + Math.random()
		win.setURL(url)
		win.showCenter()
		win.refresh()
	},
	Delete: function(url){
		if(list.arrSelectedID.length==0){
			alert(CMS.confirm.s)
			return
		}
		if(!confirm(CMS.confirm.d)){
			return
		}
		var paras = 'ids=' + list.arrSelectedID.join(',')
		//alert(paras)
		request(url, paras, function(request){list.TurnPage(list.parentID, list.pageno, list.url)})
	}
}

function CheckBadChar(o){
    var arrBadChar = ['\'', '=', ';', '"','*','^','%','&','$','#','!','……','￥','；','~','{','}','[',']','?','|',':']
    var c = String.fromCharCode(event.keyCode)
    for(var i=0; i<arrBadChar.length; i++){
        if(c == arrBadChar[i]){
            event.cancelBubble = true
            return false
        }
    }
    for(var i=0; i<arrBadChar.length; i++){
        if(o.value.indexOf(arrBadChar[i]) != -1){
            o.value = o.value.replace(arrBadChar[i],'')
        }
    }
    
}

function OpenEasyWindow(url){
    var Cwin= window.open(url,'','status=yes,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes');
    Cwin.moveTo(0,0)
    Cwin.resizeTo(screen.availWidth,screen.availHeight);
}
   
   
function SetWinHeight(obj){
    var win=obj;
    if (document.getElementById){
        if (win && !window.opera){
            if (win.contentDocument && win.contentDocument.body.offsetHeight)
                win.height = win.contentDocument.body.offsetHeight;
        else if(win.Document && win.Document.body.scrollHeight)
            win.height = win.Document.body.scrollHeight;
        }
    }
}
   
function CheckBadInfo(o)
{
    var arrBadChar = ['\'', '&','$']
    var c = String.fromCharCode(event.keyCode)
    for(var i=0; i<arrBadChar.length; i++){
        if(c == arrBadChar[i]){
            event.cancelBubble = true
            return false
        }
    }
    for(var i=0; i<arrBadChar.length; i++){
        if(o.value.indexOf(arrBadChar[i]) != -1){
            o.value = o.value.replace(/\'/gi,'')
            o.value = o.value.replace(/\&/gi,'')
            o.value = o.value.replace(/\$/gi,'')
        }
    }
}
      
function checkNumber(){
	var arrKeyCode = []
	for(var i=48; i<58; i++){
		arrKeyCode.push(i)
	}
	for(var i=65; i<106; i++){
		arrKeyCode.push(i)
	}
	var arrKeyCodeOrther = ['37','39','8','9','46']
	for(var i=0; i<arrKeyCodeOrther.length; i++){
		arrKeyCode.push(arrKeyCodeOrther[i])
	}
	if(arrKeyCode.indexOf(event.keyCode) == -1){
		event.cancelBubble = true
		return false
	}
}

function OpenCodeWindow111(obj){
    
	if(obj.DmGrp){// && obj.DmCod
	    
	    var url = '/GZBM/OpenCodeTable.do?DmGrp=' + obj.DmGrp
	   
	    if(obj.Url){   
			url = obj.Url
	    }	    
       
		var style = 'dialogHeight: 590px; dialogWidth:460px; edge: Raised;scroll:no;center: Yes; help: No;resizable: no; status: no; background-color:#ffffff;'
		if(url.indexOf('?') == -1){
		    url += '?random=' + Math.random()
		}else{
		    url += '&random=' + Math.random()
		}
		//alert(url)
	    var o = window.showModalDialog(url, obj, style)
	    return o
	}
	alert("please give me a obj at last with the one propertity {DmGrp:'codeTableName'[, DmCod:''][, Model:'multi'][, Url:'test.do']}")
	return null;
}