// dysplays on/off if a checkbox is checked/unchecked 
// the id of the <tr>(or other things) has to have the same name as checbox name+"_td"
function display_tr(check)
{
	if (check.checked){
		document.getElementById(check.name+'_td').style.display='';
	}else document.getElementById(check.name+'_td').style.display='none';
}
// dysplays on/off if a radio is checked/unchecked 
// the id of the <tr>(or other things) has to have the same name as checbox name+"_td"
function display_tr_radio(checkName,check)
{
	for (i=0;i<check.length;i++){
		
		if (check[i].checked==true){
			document.getElementById(checkName.name+'_'+i+'_td').style.display='';
		}else{ 
			document.getElementById(checkName.name+'_'+i+'_td').style.display='none';
		}
	}
}
//to check all checkboxes in a form
//parameters are the checked checkbox(or true/false) and form name (the form MUST HAVE AN ID BESIDES NAME)
function checkedAll (checked,form_name) {
	var el = document.getElementById(form_name);
		
	
	for (var i = 0; i < el.elements.length; i++) {
	  	el.elements[i].checked = checked;
	}
}
//email format checking
function emailCheck(who){
	var email=/^[A-Za-z0-9][\w-.]*[A-Za-z0-9]*@[A-Za-z0-9]*([\w-.]*[A-Za-z0-9]\.)+([A-Za-z]){2,4}$/i;
	return(email.test(who));
}
function copy_fields(){
	el_1 = document.form1;
	el_2 = document.form2;
	
	for (var i = 0; i < el_2.elements.length; i++){
//		document.write(document.form2.elements[i].name+"||"+document.form1.elements[i].value+"<br>");
//
//		document.write(document.form1.elements[i].name+"||"+document.form1.elements[i].value+"<br>");
//		document.write("<hr>");		
		document.form2.elements[i].value = document.form1.elements[i].value;
	}
}
function makeRequest_get(url,code) {
	var http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} 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) {
		alert('Nos rendimos :( No se puede crear una instancia XMLHTTP');
		return false;
	}
	if (code == 1){
		http_request.onreadystatechange = function() { showContents(http_request); };
	}
	//http_request.onreadystatechange = function() { showContents_email(http_request); };
	http_request.open('GET', url, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(null);
}
// displays the inner html recieved after request
function showContents(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
		   str = http_request.responseText;
		   if (str.search(/.*code=ok.*/) == -1){alert('El código de promoción no es válido');return false}
		} else {
			alert('Hay un problema con la solicitud.');
		}
	}
}
function showContents_email(http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
		   str = http_request.responseText;
		   if (str.search(/.*double_email=ok*/) == -1){
		   	  alert('La dirección de email ya existe en nuestra base de datos');
		   	  document.body.innerHTML = http_request.responseText;
		   	  return false;
		   }else{
			   //setTimeout('document.form1.submit()',10000);
		   }
		} else {
			alert('Hay un problema con la solicitud.');
		}
	}
}
 //ajax functions remote http request ...
    
    function makeRequest(url) {
        var http_request = false;
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } 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) {
            alert('Nos rendimos :( No se puede crear una instancia XMLHTTP');
            return false;
        }
        http_request.onreadystatechange = function() { alertContents(http_request); };
        http_request.open('GET', url, true);
		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        http_request.send(null);
    }
    function alertContents(http_request) {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
			  document.body.innerHTML = http_request.responseText;
            } else {
                alert('Hay un problema con la solicitud.');
            }
        }
    }
var cookieEnabled=(navigator.cookieEnabled)? true : false
if (!cookieEnabled) alert ('Debes tener cookies habilitadas');
/**
*
*  Base64 encode / decode
*  http://www.webtoolkit.info/
*
**/
var Base64 = {
	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
	// public method for encoding
	
	// public method for decoding
	decode : function (input) {
		var output = "";
		var chr1, chr2, chr3;
		var enc1, enc2, enc3, enc4;
		var i = 0;
		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
		while (i < input.length) {
			enc1 = this._keyStr.indexOf(input.charAt(i++));
			enc2 = this._keyStr.indexOf(input.charAt(i++));
			enc3 = this._keyStr.indexOf(input.charAt(i++));
			enc4 = this._keyStr.indexOf(input.charAt(i++));
			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;
			output = output + String.fromCharCode(chr1);
			if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}
		}
		output = Base64._utf8_decode(output);
		return output;
	},
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
		for (var n = 0; n < string.length; n++) {
			var c = string.charCodeAt(n);
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
		}
		return utftext;
	},
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
		while ( i < utftext.length ) {
			c = utftext.charCodeAt(i);
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
		}
		return string;
	}
}
