function vsmHttpRequest(url, callback_function, error_function, response_xml, formid, method, plainform) { 
	var http_request = false; 
	if (window.XMLHttpRequest) { // Mozilla, Safari,... 
		http_request = new XMLHttpRequest(); 
	} else if (window.ActiveXObject) { // IE 
		try { 
			http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
			try { 
				http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
			} catch (e) {} 
		} 
	} 

	if (!http_request) return false; 

	http_request.onreadystatechange = function() { 
		try { 
			if (http_request.readyState == 4) { 
				switch(http_request.status) {
				case 200:
					err = http_request.getResponseHeader("error");
					if (err != null &&  err.length > 0){
						try {
							eval(error_function + '(err)');
						} catch(e) {
							alert('Function ' + error_function + ': '+e.description);
						}
					} else{
						try {
							if (response_xml) { 
								eval(callback_function + '(http_request.responseXML)'); 
							} else { 
								eval(callback_function + '(http_request.responseText)'); 
							} 
						} catch(e) {
							alert('Function ' + callback_function + ': '+e.description);
						}
					}
					break;
				default: 
					alert('There was a problem with the request. (Code: ' + http_request.status + ')'); 
				} 
			} 
		} catch (e) {
			alert('Exception: ' + e.description); 
		}
	}
	// Arma data
	var data = null;
	if (formid == null) {
		if (plainform) data=plainform;
	} else {
		formObj = document.getElementById(formid);
		if(formObj) {
			if(formObj.method && !method) method = formObj.method;
			data= vsmForm2URI(formObj);
		}
	}
	// formObj.action+= '?'+ data;
	// Ejecuta
	if(!method) method='GET';
	http_request.open(method, url, true);
	if(method.toUpperCase()=='POST') http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	http_request.send(data); 
}

function vsmAjaxForm(formObj, callback_function, error_function, response_xml) { 
	var http_request = false; 
	if (window.XMLHttpRequest) { // Mozilla, Safari,... 
		http_request = new XMLHttpRequest(); 
	} else if (window.ActiveXObject) { // IE 
		try { 
			http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
			try { 
				http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
			} catch (e) {} 
		} 
	} 

	if (!http_request) return false; 

	http_request.onreadystatechange = function() { 
		try { 
			if (http_request.readyState == 4) { 
				switch(http_request.status) {
				case 200:
					err = http_request.getResponseHeader("error");
					if (err != null &&  err.length > 0){
						try {
							eval(error_function + '(err)');
						} catch(e) {
							alert('Function ' + error_function + ': '+e.description);
						}
					} else{
						try {
							if (response_xml) { 
								eval(callback_function + '(http_request.responseXML)'); 
							} else { 
								eval(callback_function + '(http_request.responseText)'); 
							} 
						} catch(e) {
							alert('Function ' + callback_function + ': '+e.description);
						}
					}
					break;
				default: 
					alert('There was a problem with the request. (Code: ' + http_request.status + ')'); 
				} 
			} 
		} catch (e) {
			alert('Exception: ' + e.description); 
		}
	}
	// Arma data
	var data = null;
	var method;
	var url;
//	formObj = document.getElementById(formid);
	if(formObj) {
		if(formObj.method) {
			method = formObj.method;
		} else {
			method = 'GET';
		}
		data = vsmForm2URI(formObj);
		method = method.toUpperCase();
		url = formObj.action;
		http_request.open(method, url, true);
		if(method=='POST') http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		http_request.send(data); 
	}
}

function vsmForm2URI (formObj) {
	data= '';
	for (var i = 0; i < formObj.length; i++) {
		var fieldObj = formObj[i];
		switch(fieldObj.type) {
			case 'checkbox':
			case 'radio':
				if (fieldObj.checked) data+= fieldObj.name + '=' + escape(fieldObj.value) + '&';
				break;
			case 'select-one':
				data+= fieldObj.name + '=' + escape(fieldObj.options[fieldObj.selectedIndex].value) + '&';
				break;
			case 'reset':
			case 'submit':
			case 'button':
				break;
			default: 
				data+= fieldObj.name + '=' + escape(fieldObj.value) + '&';
				break;
		}
	}
	if(data.length >0) data = data.slice(0, -1); // Quita el ultimo caracter (&);d
	return data;
}

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function writeFlash(src,w,h) {
	args = arguments;
	callArgs = "'codebase','http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','"+ w + "','height','" + h + "','src','" + src + "','movie','" + src +"',";
	for (var i=3; i < args.length; i++){
		callArgs += "'" + args[i].toLowerCase() + "',";
	}
	if (callArgs.indexOf('quality')<0)
		callArgs += "'quality','high',";

	if (callArgs.indexOf('bgcolor')<0)
		callArgs += "'bgcolor','#ffffff',";

	if (callArgs.indexOf('wmode')<0)
		callArgs += "'wmode','transparent',";
	callArgs=callArgs.substr(0,callArgs.length-1);
	eval("AC_FL_RunContent("+callArgs+")")
}

var vsmStrmImage = new Array();
function vsmImageStreaming(){
	var y = document.images;
	var sf = false;
	ch = document.documentElement.clientHeight;
	if (window.navigator.userAgent.toLowerCase().indexOf('safari') == -1){
		st = document.documentElement.scrollTop;
	}else{
		sf = true;
		st = document.body.scrollTop;
	}		
	for (i=0;i<y.length;i++){
		vsmsrc = y[i].getAttribute('vsmsrc');
		l = y[i].src.length;
		if (vsmsrc && y[i].src.substring(l-12) == '/lib/1x1.gif'){
			pos = vsmFindPos(y[i]);
			pos2 = y[i].offsetHeight+pos[1]; 
			if ((pos[1] > st-200 && pos[1] < ch+st+200) || (pos2 > st-200 && pos2 < ch+st+200) || sf){
				if(vsmStrmImage[vsmsrc] == undefined){
					vsmStrmImage[vsmsrc] = new Image();
					vsmStrmImage[vsmsrc].src = vsmsrc;
					if (vsmStrmImage[vsmsrc].complete){
						y[i].src = vsmsrc;
					}else{
						vsmStrmImage[vsmsrc].obj = y[i];
						vsmStrmImage[vsmsrc].onload =function(){
							this.obj.src = this.src;
						}
					}
				}
			}
		}
	}
}
function vsmFindPos( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}
