File "MyArray.js"
Full path: E:/sites/Single15/tinmung2007/webroot/Tin VUI_BUON/Khan Tron/album/res/MyArray.js
File size: 5.04 KiB (5166 bytes)
MIME-type:
Charset: utf-8
function MyArray(aKeyValuePairList) {
//document.write('<h4>MyArray(' + aKeyValuePairList + ')<h4>');
this.array = new Array();
this.length = 0;
if (aKeyValuePairList) {
this.fromStringKeyValuePairs(aKeyValuePairList);
}
}
/*
*Insert new if not present yet.
*/
function insert(aKey, aValue) {
if (!this.get(aKey)) {
this.set(aKey, aValue);
}
}
/*
*Insert new or Update existing entry.
*/
function set(aKey, aValue) {
//document.write('<p><b>=== set(' + aKey + ', ' + aValue + ')</b></p>');
if (!aKey || (aKey == "")) {
//document.write('<p><b>!aKey || (aKey == "")</b></p>');
return; //Don't store an undefined or empty key. Weird call.
}
if (aValue || (aValue == "")) { //Also store an empty string!
//document.write('<p>Store value: ' + aValue + ' at key: ' + aKey);
if (!this.array[aKey]) {
this.length++;
//document.write(': new, length = ' + this.length);
}
//document.write('</p>');
this.array[aKey] = aValue;
}
else {
//document.write('<p>Value: at key: ' + aKey);
if (this.array[aKey]) {
this.array = this.privateRemove(aKey);
//document.write(' removed, length = ' + this.length);
}
//document.write('</p>');
}
}
function get(aKey) {
return this.array[aKey];
}
function remove(aName) {
this.array = this.privateRemove(aName);
}
/*
* Get all pairs into an array.
* Format is key=value&key=value...
*/
function fromStringKeyValuePairs(aString) {
//document.write('<h4>fromStringKeyValuePairs(' + aString + ')<h4>');
if (aString.length > 0) {
if (aString.indexOf('?') == 0) {
aString = aString.substring(1, aString.length);
}
}
while (aString.length > 0) {
//document.write("aString = " + aString + ", aString.length = " + aString.length + "<br>");
aString = this.privateDoKeyValuePair(aString);
}
}
function toStringKeyValuePairs() {
myString = "";
for (loopC in this.array) {
myString = this.privateAppendKeyValuePair(myString, loopC);
}
return myString;
}
function toDumpKeyValuePairs() {
myString = "";
for (loopC in this.array) {
myString = this.privateAppendKeyValuePairForDump("", myString, loopC);
}
return myString;
}
function getLength() {
return this.length;
}
function privateRemove(aName) {
var ar = new Array();
for (loopC in this.array) {
if (loopC != aName) {
ar[loopC] = this.array[loopC];
}
else {
this.length--;
}
}
return ar;
}
/*
* Get first pair of aString into an array.
*/
function privateDoKeyValuePair(aString) {
//document.write("privateDoKeyValuePair(aString)" + "<br>");
ampPos = aString.indexOf('&');
//document.write("ampPos = " + ampPos + "<br>");
if (ampPos >= 0) {
pair = aString.substring(0, ampPos);
}
else {
pair = aString;
}
equalPos = pair.indexOf('=');
if (equalPos == -1) {
equalPos = pair.length;
}
//document.write("equalPos = " + equalPos + "<br>");
argKey = pair.substring(0, equalPos);
if (equalPos <= pair.length) {
argValue = pair.substring(equalPos + 1, pair.length);
}
else {
argValue = "";
}
while (argKey.indexOf('+') > -1) {
argKey = argKey.substring(0, argKey.indexOf('+')) + ' ' + argKey.substring(argKey.indexOf('+') + 1);
// Replace each '+' in data string with a space.
}
argKey = unescape(argKey);
while (argValue.indexOf('+') > -1) {
argValue = argValue.substring(0, argValue.indexOf('+')) + ' ' + argValue.substring(argValue.indexOf('+') + 1);
// Replace each '+' in data string with a space.
}
argValue = unescape(argValue);
this.set(argKey, argValue);
if (ampPos >= 0) {
return aString.substring(ampPos + 1, aString.length);
}
else {
return "";
}
}
function privateAppendKeyValuePair(aString, aKey) {
separator = "&";
if (aString.length == 0) {
separator = "?";
}
return aString.concat(separator).concat(aKey).concat("=").concat(this.array[aKey]);
}
function privateAppendKeyValuePairForDump(aTableName, aString, aKey) {
return aString.concat("<p>").concat(aTableName).concat(":").concat(aKey).concat("=").concat(this.array[aKey]).concat("</p>");
}
//Call this one from the head.
function initializeMyArray() {
MyArray.prototype.set = set;
MyArray.prototype.insert = insert;
MyArray.prototype.get = get;
MyArray.prototype.remove = remove;
MyArray.prototype.fromStringKeyValuePairs = fromStringKeyValuePairs;
MyArray.prototype.toStringKeyValuePairs = toStringKeyValuePairs;
MyArray.prototype.toDumpKeyValuePairs = toDumpKeyValuePairs;
MyArray.prototype.getLength = getLength;
MyArray.prototype.privateRemove = privateRemove;privateDoKeyValuePair;
MyArray.prototype.privateDoKeyValuePair = privateDoKeyValuePair;
MyArray.prototype.privateAppendKeyValuePair = privateAppendKeyValuePair;
MyArray.prototype.privateAppendKeyValuePairForDump = privateAppendKeyValuePairForDump;
}
//
initializeMyArray();
// ===