/*  26 septembre 17:06  */
var vdl2 = {
	getXMLHttp : function(){
		var XMLHttp=false;
		if (typeof XMLHttpRequest != "undefined") {
			XMLHttp=new XMLHttpRequest();
			return XMLHttp;
		} else if (window.ActiveXObject) {
			var aVersions = [ "MSXML2.XMLHttp.5.0",
				"MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
				"MSXML2.XMLHttp","Microsoft.XMLHttp"
				];
			for (var i = 0; i < aVersions.length; i++) {
				try {
					var oXmlHttp = new ActiveXObject(aVersions[i]);
					return oXmlHttp;
				}
				catch(err) { /*Do nothing*/ }
			}
		}
		throw new Error("XMLHttp object could not be created.");
	},
	getElementsByClassName : function(className, opts){
		if(!opts) var opts = new Object;
		var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
		var tag = opts.tag || "*";
		var elm = document.getElementById(opts.parentID) || document;
		var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
		var returnElements = [];
		var current;
		var length = elements.length;
		for(var i=0; i<length; i++){
			current = elements[i];
			if(testClass.test(current.className)){
				returnElements.push(current);
			}
		}
		return returnElements;
	},
	update : function(container, url, opts){
		if(!opts) var opts = new Object;
		var method = opts.method || "post";
		var encoding = opts.encoding || "utf-8";
		var contentType = opts.contentType || "application/x-www-form-urlencoded";
		var parameters = opts.parameters || "null";
		var asynchronous = opts.asynchronous || "true";
		var onComplete = opts.onComplete || "false";
		var onLoading = opts.onLoading || "false";
		var onError = opts.onError || "false";
		if(method.toLowerCase()=="get") {
			url += "?"+parameters;
			parameters=null;
		}
		var XMLHttp = new vdl2.getXMLHttp();
		XMLHttp.onreadystatechange=function() {
			if(XMLHttp.readyState==4) {
				if (XMLHttp.status == 200) {
					if(container) document.getElementById(container).innerHTML = XMLHttp.responseText;
					if(onComplete)
						if(typeof(onComplete) == 'function')
							onComplete(XMLHttp);
						else
							eval(onComplete);
				}
				else {
debugger;
					alert('There was a problem with the request. '+XMLHttp.status);
					if(onError){ eval(onError) }
				}
			}
			else if(onLoading){ eval(onLoading) }
		}
		XMLHttp.open(method, url, asynchronous);
		XMLHttp.setRequestHeader('Content-Type', contentType+';'+encoding);

		XMLHttp.send(parameters);
	},
	request : function(url, opts){
		new vdl2.update('', url, opts);
	},
	serialize : function(frmObj){
		var return_string="";
		for(var i=0;i<frmObj.childNodes.length;i++) {
			try {
				if(frmObj.childNodes[i].nodeType==1 && frmObj.childNodes[i].nodeName.match(/(input)|(textarea)/i)) {
					try {
						if(!frmObj.childNodes[i].getAttribute('type').match(/(submit)|(reset)|(image)/)) {
							try {
								if(frmObj.childNodes[i].getAttribute('disabled').match(/(false)/))
									return_string += frmObj.childNodes[i].name+"="+frmObj.childNodes[i].value+"&";
							}
							catch(err){
								return_string += frmObj.childNodes[i].name+"="+frmObj.childNodes[i].value+"&";
							}
						}
					}
					catch(err) {
						// not an input type, so it's a textarea
						return_string += frmObj.childNodes[i].name+"="+frmObj.childNodes[i].value+"&";
					}
				}
			}
			catch(err){ /*Do nothing*/ }
		}
		return escape(return_string.slice(0,-1));
	},

	createCookie : function(name, value, opts){
		if(!opts) var opts = new Object;
		var cookie_string = name+"="+escape(value);
		var days = opts.days || -1;
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		cookie_string+=";expires="+date.toGMTString();
		if(opts.path) cookie_string+=";path="+escape(opts.path);
		if(opts.domain) cookie_string+=";domain="+escape(opts.domain);
		if(opts.secure) cookie_string+=";secure";
		//document.cookie = name+"="+value+expires+"; path="+path;
		document.cookie = cookie_string;
	},
	readCookie : function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	eraseCookie : function(name) {
		new vdl2.createCookie(name,'');
	},
	popUp : function(url,opts){
		if(!opts) var opts = new Object;
		var name = opts.name || "popup";
		var width = opts.width || (screen.width)/2;
		var height = opts.height || (screen.height)/2;
		var left = opts.left || (screen.width)/4;
		var top = opts.top || (screen.height)/4;
		var scrollbars = opts.scrollbars || "no";
		var toolbar = opts.toolbar || "no";
		var menubar = opts.menubar || "no";
		var status = opts.status || "no";
		var location = opts.location || "no";
		var resizable = opts.resizable || "no";
		var directories = opts.directories || "no";
		
		return window.open(url,name,'menubar='+menubar+',toolbar='+toolbar+',location='+location+',directories='+directories+',status='+status+',scrollbars='+scrollbars+',resizable='+resizable+',width='+width+',height='+height+',left='+left+',top='+top+'');
	},
	$ : function() {
		var elements = new Array();
		for (var i = 0; i < arguments.length; i++) {
			var element = arguments[i];
			if (typeof element == 'string')
				element = document.getElementById(element);
			if (arguments.length == 1)
				return element;
			elements.push(element);
		}
		return elements;
	}
};
