/*ADxMenu.js - v4 (4.10)
www.aplus.co.yu/adxmenu/
(c)Copyright 2003, Aleksandar Vacic, www.aplus.co.yu
This work is licensed under the Creative Commons Attribution License.
To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ or
send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
function ADxMenu_IESetup() {
var aTmp2, i, j, oLI, aUL, aA;
var aTmp = xGetElementsByClassName("adxm", document, "ul");
for (i=0;i<aTmp.length;i++) {
aTmp2 = aTmp[i].getElementsByTagName("li");
for (j=0;j<aTmp2.length;j++) {
oLI = aTmp2[j];
aUL = oLI.getElementsByTagName("ul");
//if item has submenu, then make the item hoverable
if (aUL && aUL.length) {
oLI.UL = aUL[0];//direct submenu
aA = oLI.getElementsByTagName("a");
if (aA && aA.length)
oLI.A = aA[0];//direct child link
//li:hover
oLI.onmouseenter = function() {
this.className += " adxmhover";
this.UL.className += " adxmhoverUL";
if (this.A) this.A.className += " adxmhoverA";
if (WCH) WCH.Apply( this.UL, this, true );
};
//li:blur
oLI.onmouseleave = function() {
this.className = this.className.replace(/adxmhover/,"");
this.UL.className = this.UL.className.replace(/adxmhoverUL/,"");
if (this.A) this.A.className = this.A.className.replace(/adxmhoverA/,"");
if (WCH) WCH.Discard( this.UL, this );
};
}
}//for-li.submenu
}//for-ul.adxm
}
//adds support for WCH. if you need WCH, then load WCH.js BEFORE this file
if (typeof(WCH) == "undefined") WCH = null;
/*xGetElementsByClassName()
Returns an array of elements which are
descendants of parentEle and have tagName and clsName.
If parentEle is null or not present, document will be used.
if tagName is null or not present, "*" will be used.
credits: Mike Foster, cross-browser.com.
*/
function xGetElementsByClassName(clsName, parentEle, tagName) {
var elements = null;
var found = new Array();
var re = new RegExp('\\b'+clsName+'\\b');
if (!parentEle) parentEle = document;
if (!tagName) tagName = '*';
if (parentEle.getElementsByTagName) {elements = parentEle.getElementsByTagName(tagName);}
else if (document.all) {elements = document.all.tags(tagName);}
if (elements) {
for (var i = 0; i < elements.length; ++i) {
if (elements[i].className.search(re) != -1) {
found[found.length] = elements[i];
}
}
}
return found;
}
/*allows instant "window.onload" (DOM.onload) function execution. shortened version, just IE code
credits: Dean Edwards/Matthias Miller/John Resig/Rob Chenny
http://www.cherny.com/webdev/27/domloaded-updated-again
*/
var DomLoaded = {
onload: [],
loaded: function() {
if (arguments.callee.done) return;
arguments.callee.done = true;
for (i = 0;i < DomLoaded.onload.length;i++) DomLoaded.onload[i]();
},
load: function(fireThis) {
this.onload.push(fireThis);
/*@cc_on @*/
/*@if (@_win32)
var proto = "src='javascript:void(0)'";
if (location.protocol == "https:") proto = "src=//0";
document.write("<scr"+"ipt id=__ie_onload defer " + proto + "><\/scr"+"ipt>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
    if (this.readyState == "complete") {
        DomLoaded.loaded();
    }
};
/*@end @*/
}
};
//load the setup function
DomLoaded.load(ADxMenu_IESetup);/* Simple AJAX Code-Kit (SACK) v1.6.1 */
/* Ã�Â©2005 Gregory Wild-Smith */
/* www.twilightuniverse.com */
/* Software licenced under a modified X11 licence,
see documentation or authors website for more details */

function sack(file) {
	this.xmlhttp = null;

	this.resetData = function() {
		this.method = "POST";
		this.queryStringSeparator = "?";
		this.argumentSeparator = "&";
		this.URLString = "";
		this.encodeURIString = true;
		this.execute = false;
		this.element = null;
		this.elementObj = null;
		this.requestFile = file;
		this.vars = new Object();
		this.responseStatus = new Array(2);
	};

	this.resetFunctions = function() {
		this.onLoading = function() { };
		this.onLoaded = function() { };
		this.onInteractive = function() { };
		this.onCompletion = function() { };
		this.onError = function() { };
		this.onFail = function() { };
	};

	this.reset = function() {
		this.resetFunctions();
		this.resetData();
	};

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				this.xmlhttp = null;
			}
		}

		if (! this.xmlhttp) {
			if (typeof XMLHttpRequest != "undefined") {
				this.xmlhttp = new XMLHttpRequest();
			} else {
				this.failed = true;
			}
		}
	};

	this.setVar = function(name, value){
		this.vars[name] = Array(value, false);
	};

	this.encVar = function(name, value, returnvars) {
		if (true == returnvars) {
			return Array(encodeURIComponent(name), encodeURIComponent(value));
		} else {
			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
		}
	}

	this.processURLString = function(string, encode) {
		encoded = encodeURIComponent(this.argumentSeparator);
		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
		varArray = string.split(regexp);
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split("=");
			if (true == encode){
				this.encVar(urlVars[0], urlVars[1]);
			} else {
				this.setVar(urlVars[0], urlVars[1]);
			}
		}
	}

	this.createURLString = function(urlstring) {
		if (this.encodeURIString && this.URLString.length) {
			this.processURLString(this.URLString, true);
		}

		if (urlstring) {
			if (this.URLString.length) {
				this.URLString += this.argumentSeparator + urlstring;
			} else {
				this.URLString = urlstring;
			}
		}

		// prevents caching of URLString
		this.setVar("rndval", new Date().getTime());

		urlstringtemp = new Array();
		for (key in this.vars) {
			if (false == this.vars[key][1] && true == this.encodeURIString) {
				encoded = this.encVar(key, this.vars[key][0], true);
				delete this.vars[key];
				this.vars[encoded[0]] = Array(encoded[1], true);
				key = encoded[0];
			}

			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
		}
		if (urlstring){
			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
		} else {
			this.URLString += urlstringtemp.join(this.argumentSeparator);
		}
	}

	this.runResponse = function() {
		eval(this.response);
	}

	this.runAJAX = function(urlstring) {
		if (this.failed) {
			this.onFail();
		} else {
			this.createURLString(urlstring);
			if (this.element) {
				this.elementObj = document.getElementById(this.element);
			}
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
					try {
						this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
					} catch (e) { }
				}

				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState) {
						case 1:
						self.onLoading();
						break;
						case 2:
						self.onLoaded();
						break;
						case 3:
						self.onInteractive();
						break;
						case 4:
						self.response = self.xmlhttp.responseText;
						self.responseXML = self.xmlhttp.responseXML;
						self.responseStatus[0] = self.xmlhttp.status;
						self.responseStatus[1] = self.xmlhttp.statusText;

						if (self.execute) {
							self.runResponse();
						}

						if (self.elementObj) {
							elemNodeName = self.elementObj.nodeName;
							elemNodeName.toLowerCase();
							if (elemNodeName == "input"
							|| elemNodeName == "select"
							|| elemNodeName == "option"
							|| elemNodeName == "textarea") {
								self.elementObj.value = self.response;
							} else {
								self.elementObj.innerHTML = self.response;
							}
						}
						if (self.responseStatus[0] == "200") {
							self.onCompletion();
						} else {
							self.onError();
						}

						self.URLString = "";
						break;
					}
				};

				this.xmlhttp.send(this.URLString);
			}
		}
	};

	this.reset();
	this.createAJAX();
}



function startCallback1() {
	if (document.getElementById('loading1')){
		document.getElementById('loading1').innerHTML = "<img src='http://static.mobile9.com/imgv4/ajaxloadsmall.gif'>";
		document.getElementById('loading1').style.display ="block";
	}
	else {
		Dialog.info("<div class='loading'><img src='http://vince.mobile9.com/download/ajax-loader.gif'></div>", {width:300, height:300, showProgress: false});
	}
	return true;
}

function endCallback1() {
	if (document.getElementById('loading1')){
		document.getElementById('loading1').innerHTML = '';
		document.getElementById('loading1').style.display ="none";
	}
	else {
		Dialog.closeInfo();
		//$('loading').innerHTML = '';
	}
	return true;
}
