/*
if ( !window.Element ) {
	var Element = function() {};
	alert(Element);
}
*/
var Ajax = 
{
	strParams: "",
	method: 'post',
	parameters: '',
	oncomplete: '',
	async: true,	

	Request: function(url, objParameters)
	{
		var ajaxRequest = Ajax.createObject();

		if (objParameters.parameters != undefined)
			Ajax.parameters = Ajax.formatParams(objParameters.parameters);
		
		if(objParameters.method != '')
			Ajax.method = objParameters.method;

		if(typeof(objParameters.onComplete) == "function")
			Ajax.oncomplete = objParameters.onComplete;
		
		if(objParameters.async == false)
			Ajax.async = false;

		/* get */
		if(Ajax.method == 'get')
		{
			ajaxRequest.open('GET', url+"?"+Ajax.parameters, Ajax.async);
			ajaxRequest.send(null);
		}
		else /* post */
		{
			ajaxRequest.open('POST', url, Ajax.async);
			ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			ajaxRequest.setRequestHeader("Content-length", Ajax.parameters.length);
			ajaxRequest.setRequestHeader("Connection", "close");
			ajaxRequest.send(Ajax.parameters);
		}

		ajaxRequest.onreadystatechange = function () 
		{
			var thisRequest = ajaxRequest;
			if (thisRequest.readyState == 4)
			{
				if( (thisRequest.status == 200)|| (thisRequest.status == 0) )
				{
					var respuesta = thisRequest;

					
					if(typeof(objParameters.onComplete) == 'string')
						try
						{
							eval(objParameters.onComplete + '(respuesta)');
						}
						catch(error)
						{
							alert('Object error: ' + error);
						}


					if(typeof(objParameters.onComplete) == 'function')
					{
						try{
							objParameters.onComplete(respuesta);
						}
						catch(error){alert('Object error: ' + error);}
					}
				}
			}


		}
	},

	createObject: function()
	{
	 return new httpObject;
	},

	formatParams: function(obj)
	{

		var Tparameters="";
		for (var x in obj) 
		{
			Tparameters += x +"="+eval("obj."+x)+"&";
		} 
		Tparameters=Tparameters.substring(0,Tparameters.length-1);
		return Tparameters;
		
	}
}

var httpObject =  function() 
{

	var httprequest=false;

	if (window.XMLHttpRequest)
	{
		httprequest=new XMLHttpRequest()
	
		if (httprequest.overrideMimeType)
			httprequest.overrideMimeType('text/javascript');
		else
			httprequest.contentType="text/javascript";
	}
	else if (window.ActiveXObject)
	{ // if IE
		try 
		{
			httprequest = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e)
		{
			try
			{
				httprequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
return httprequest;
}


function DisplayR(act)
{
        document.getElementById('results').innerHTML=act.responseText;
        document.getElementById('results').style.display = 'block';
	return true;
}

function lostFocus(){
//        document.getElementById('results').style.display = 'none'; 
}


function addToCart(parametro)
{


        loadingCart();

        Ajax.Request('/templates/general.php', 
			{
				method:'post',	
				parameters: {parametro1: 1,parametro2:parametro},
				onComplete:'setCart' 
			});



	updateCookie(parametro, 1);

        return true;
}

function recalculateCoupons()
{
	
        Ajax.Request('/templates/general.php', 
			{
				method:'post',	
				parameters: {parametro1: 11},
				onComplete:'setCart' 
			});
	
}

function getAutoResults(parametro,event)
{
	if (event.keyCode==37||event.keyCode==38||event.keyCode==39||event.keyCode==40)
		return false
	if (event.keyCode==27){
		lostFocus();
		return false;
	}

			
        parametro = document.getElementById(parametro).value;
        if (parametro!=""){
        Ajax.Request('/templates/ProdList.php',
                        {
                                method:'get',
                                parameters: {parametro:parametro},
                                onComplete:'DisplayR'
                        });
        }else
                document.getElementById('results').style.display = 'none';
        return true;
}

function openLink(name)
{
	var nav = navigator.appName.toLowerCase(); 			
	if(nav == "microsoft internet explorer") 			
	{ 				
		window.event.returnValue = false; 			
	} 
	window.location.href="/search.php?type=group&keyword=" + name;
	return true;	
}


function highlight(action, id)
{
	  if(action)
	  {
		document.getElementById(id).style.background = "#CAE0FF";
	        document.getElementById(id).style.color = "#414141";
	  }
	  else
	  {
		document.getElementById(id).style.background = "#F8F8F8";
		document.getElementById(id).style.color = "#000000";
	  }
	  return true;
}



function $(ID){
	return document.getElementById(ID);
}

function $F(ID){
        return document.getElementById(ID).value;
}

function trim(texto)
{
	texto.replace(/\s/,'');	
	return texto;
}

function recalculateTotal(){
	tab = $('ShopCart');
	Total=0;
	TotalDisc="";
	for (i=0; fila = tab.getElementsByTagName('tr')[i]; i++)
		for (j=0; celda = fila.getElementsByTagName('td')[j]; j++)
			if (celda.className=='S_TotalC')
				Total+=parseFloat(celda.innerHTML.substring(2).replace(",",""));
	

           tab = document.getElementById('Coupons');
                for (i=0; fila = tab.getElementsByTagName('tr')[i]; i++)
                  for (j=0; celda = fila.getElementsByTagName('td')[j]; j++)
                        if (celda.className=='Coupon_Amount'){
				DiscType=celda.innerHTML.substring(0,1);
				if (DiscType=='$')
					Total-=parseFloat(celda.innerHTML.substring(1).replace(",",""));
				else
					Total-=(Total*(celda.innerHTML.substring(0,celda.innerHTML.length-1))/100);

			}

	$('GTotal').innerHTML= '$ '+number_format(Total,2,".",",");
}
		
function loadingCart()
{
	var contenedor = $('tbCartItems');
	removeElements(contenedor);
	return true;
}

function ShoppinCart(response){
	eval(response.responseText);
	return true;
}

function emptyCart()
{

var myAjax = new Ajax.Request(
					'/templates/general.php', 
					{
						method: 'post', 
						parameters: {parametro1: '7'}, 
						onComplete: 'setCart'
					});
}

function removeFromCart(parametro1,parametro2)
{
	loadingCart();
	var parametro2 = parseInt(parametro2);
	if(isNaN(parametro2))
		parametro2 = -1;

	var myAjax = new Ajax.Request(
					'/templates/general.php', 
					{
						method: 'post', 
						parameters: {parametro1: '3', parametro2: parametro1, parametro3: parametro2}, 
						onComplete: 'setCart'
					});

}

function updateCart(parametro2)
{
	//SCart();
	try{
	var myAjax = new Ajax.Request(
					'/templates/general.php', 
					{
						method: 'post', 
						parameters: {parametro1: 2, parametro2: parametro2}, 
						onComplete: setCart
					});	
	}
	catch(error)
	{
		alert('Error: ' + error);
	}
	return true;		
}

function showError(ajax,error)
{
	alert('Error ocurred: ' + error);
	return true;
}


function elementShow(element)
//Element.prototype.show = function()
{
	var ret = true;
	try{
		element.style.display = '';			
	} catch(e){ret = false;}
return true;
}

function elementHide(element)
//Element.prototype.hide = function()
{
	var ret = true;
	try{
		element.style.display = 'none';			
	} catch(e){ret = false;}
	return true;
}



function number_format( number, decimals, dec_point, thousands_sep ) {
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

function updateCookie(name, cnt)
{
	var val = readCookie(name);
	if(val == null) // no existe la cookie
	{
		val = 1;
	}
	var nuevaCantidad = val + cnt;


	createCookie(name, nuevaCantidad, 0);
	return true;
}


function createCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
  }

function readCookie(name) {
	//alert(document.cookie);
	var nameEQ = 'prd[' + 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;
}

function eraseCookie(name, cantidad) {
	var vActual = parseInt(readCookie(name));

	var nCantidad =  vActual - cantidad;
	var dias = -1;
	if(nCantidad > 0)	
	  dias = 0;
	
	createCookie(name,nCantidad,dias);
	return true;
}


function setCart(response)
{
	try
	{
		eval(response.responseText);
	}
	catch(error)
	{
		alert('2 Error: ' + error);
	}
	return true;
}

function removeElements(idE)
{
	if(typeof(idE) == 'object')
	{
		var fila = idE
	}
	else
	{
		var fila = $(idE);
	}
	if(fila != undefined)
		while (fila.firstChild) 
		{
			fila.removeChild(fila.firstChild);
		}
	return true;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


if(!document.getElementsByClassName)
	document.getElementsByClassName = function(className) 
	{
		var elts = document.getElementsByTagName('*');
		var classArray = new Array();
		for (var i = 0; i < elts.length; ++i) {
			if (elts[i].getAttribute('class') && elts[i].getAttribute('class').split(' ').inArray(className)) 
			{
				classArray.push(elts[i]);
			}
		}
		return classArray;
	};

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};



/**
 flash detector
 */
function FlashDetectBase(options){
	var self = this;
	var _release = "1.0";
	var options = options || {};
	self.installed = false;
	self.major = -1;
	self.minor = -1;
	self.revision = -1;
	self.revisionStr = "";
	self.activeXVersion = "";
	var activeXDetectRules = options.activeXDetectRules || [
		{
			"name":"ShockwaveFlash.ShockwaveFlash.7",
			"version":function(obj){return getActiveXVersion(obj);}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash.6",
			"version":function(obj){
//				var version = "6,-1,-1,-1";
				var version = "6,0,21";
				try{
					obj.AllowScriptAccess = "always";
					version = getActiveXVersion(obj);
				}catch(err){}
				return version;
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash",
			"version":function(obj){return getActiveXVersion(obj);}
		}
	];
	var getActiveXVersion = function(activeXObj){
		var version = -1;
		try{
			version = activeXObj.GetVariable("$version");
		}catch(err){}
		return version;
	}
	var getActiveXObject = function(name){
		var obj = -1;
		try{
			obj = new ActiveXObject(name);
		}catch(err){}
		return obj;
	}
	var parseActiveXVersion = function(str){
		var versionArray = str.split(",");
		return {
			"major":parseInt(versionArray[0].split(" ")[1]),
			"minor":parseInt(versionArray[1]),
			"revision":parseInt(versionArray[2]),
			"revisionStr":versionArray[2]
		};
	}
	var parseRevisionStrToInt = function(str){
		return parseInt(str.replace(/[a-zA-Z]/g,"")) || self.revision;
	}
	self.majorAtLeast = function(version){
		return self.major >= version;
	}
	self.DetectBase = function(){
		if(navigator.plugins && navigator.plugins.length>0){
			var type = 'application/x-shockwave-flash';
			var mimeTypes = navigator.mimeTypes;
			if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
				var desc = mimeTypes[type].enabledPlugin.description;
				var descParts = desc.split(' ');
				var majorMinor = descParts[2].split('.');
				self.major = parseInt(majorMinor[0]);
				self.minor = parseInt(majorMinor[1]); 
				self.revisionStr = descParts[3];
				self.revision = parseRevisionStrToInt(self.revisionStr);
				self.installed = true;
			}
		}else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
			var version = -1;
			for(var i=0; i<activeXDetectRules.length && version==-1; i++){
				var obj = getActiveXObject(activeXDetectRules[i].name);
				if(typeof obj == "object"){
					self.installed = true;
					version = activeXDetectRules[i].version(obj);
					if(version!=-1){
						var versionObj = parseActiveXVersion(version);
						self.major = versionObj.major;
						self.minor = versionObj.minor; 
						self.revision = versionObj.revision;
						self.revisionStr = versionObj.revisionStr;
						self.activeXVersion = version;
					}
				}
			}
		}
	}();
}

var FlashDetect = new FlashDetectBase();


function go(loc) {
window.location.href = loc;
}

function check(text,field)
	{
		if (text.which!=8)
		{
			text= String.fromCharCode(text.which);
			var letter = /^[A-Za-z0-9]$/;
			if (!letter.test(text))
				field.value=field.value.substring(0,field.value.length-1);
		}	
	}

/*-- FUNCIONES PARA LA PARTE NO SEGURA --*/
function saveSession(redirectUrl)
{
	try{
	var myAjax = new Ajax.Request(
					'/templates/general.php', 
					{
						method: 'post', 
						parameters: {parametro1: 8, redirectUrl: redirectUrl}, 
						onComplete: setCart
					});	
	}
	catch(error)
	{
		alert('Error: ' + error);
	}
	return true;		
}

function listen(event, elem, func) 
{

  if( typeof(elem) == "string" ) 
        elem = $(elem);

    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(event,func,false);
    else if (elem.attachEvent) { // IE DOM
         var r = elem.attachEvent("on"+event, func);
        return r;
    }
    else throw 'Error adding event handler';
}

/*-- ********************************* --*/

