<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>Untitled Document</title>
<script type="text/javascript">
function Map() {
this.keys = new Array();
this.data = new Object();
this.put = function(key, value)
{
if(this.data[key] == null){
this.keys.push(key);
}
this.data[key] = value;
return this;
};
this.get = function(key) {
return this.data[key];
};
this.remove = function(key) {
this.keys.remove(key);
this.data[key] = null;
};
this.each = function(fn){
if(typeof fn != 'function'){
return;
}
var len = this.keys.length;
for(var i=0;i<len;i++){
var k = this.keys[i];
fn(k,this.data[k],i);
}
};
this.entrys = function() {
var len = this.keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = { key : this.keys[i], value : this.data[this.keys[i]] };
}
return entrys;
};
this.isEmpty = function() {
return this.keys.length == 0;
};
this.size = function(){
return this.keys.length;
};
this.toString = function(){
var s = "{";
for(var i=0;i<this.keys.length;i++,s+=','){
var k = this.keys[i];
s += k+"="+this.data[k];
}
if(!this.isEmpty){
s=s.substring(0,s.length-1);
}
s+="}";
return s;
};
}
function Jfree(){
this.imageName;
this.imageId;
this.url;
this.params;
this.run = function(imageId, url, params){
//alert(params);
this.imageId = imageId;
this.url = url;
this.params = params;
this.request(this);
};
this.request = function(){
//alert(jfree);
//xmlhttp.setRequestHeader("Content-Type","text/xml;charset=utf-8");
var xmlhttp = this.getXmlRequest();
//alert(jfree.params);
//xmlhttp.setRequestHeader("Content-Type","text/xml;charset=utf-8");���û
var temp = this;
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var value = xmlhttp.responseText;
if (temp.imageId) {
document.getElementById(temp.imageId).src = value;
return;
}
}
};
var len = this.params.size();
var str = '';
for (var i = 0; i < len; i++) {
for (var property in this.params[i]) {
var value = this.params[i][property];
if (value != null) {
str = property + '=' + value;
}
}
}
if (this.params != null) {
this.params.each(function(key, value, index){
str += key + '=' + value + '&';
});
str = str.substring(0, str.length - 1);
//alert(str);
if (str) {
this.url += '?';
this.url += str;
}
//alert("url"+this.url);
// alert(this.url);
xmlhttp.open("POST", this.url, true);
//this.url = '';
xmlhttp.send(null);
};
this.getXmlRequest = function(){
//alert("444");
var xmlHttp = null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
// alert("Firefox");
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
// alert("IE 6.0")
}
catch (e) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
// alert("IE 5.5");
}
}
return xmlHttp;
};
}
}
function doAction(imageId, url, params){
var jfree = new Jfree();
jfree.run(imageId, url, params);
}
function doTimer(imageId, url, params, milliSecond, isLoop){
//var map = new Map();
var jfree = new Jfree();
//alert(params.type);
var map = new Map().put('name', 'pie').put('aaa', 'bbb');
//alert(${imageId});
//alert(params.type);
jfree.run(imageId, url, params);
// alert(params);
if (params != null) {
var map = new Map();
params.each(function(key, value, index){
map.put(key, value);
}
);
// alert(map.prototype);
theTime = setTimeout('doAction(\'' + imageId + '\',\'' + url + '\',' + params + ')', milliSecond);
}
else {
theTime = setTimeout('doTimer(\'' + imageId + '\',\'' + url + '\',' + params + ',' + milliSecond + ',' + isLoop + ')', milliSecond);
}
if (!isLoop) {
window.clearTimeout(theTime);
}
}
function testMap(){
var map = new Map().put('name', 'pie').put('aaa', 'bbb');
var entry = map.entrys();
for(var i=0;i<entry.length;i++){
alert("key: "+entry[i].key+", value: "+entry[i].value);
}
}
testMap();
</script>
</head>
<body>
</body>
</html>