﻿/* 
    ARCHIVO JAVASCRIPT DE LA PLANTILLA SINCROSHOP

    ÚLTIMA MODIFICACIÓN --> 30 DE JUNIO DEL 2008
*/

//Variables
var punteroX, punteroY;
var menuOpenedItems=new Array();
var menuNoHideItems=new Array();
var menuPeHideAll;
var checkCartBonds;

//Eventos
Event.observe(document, 'mousemove', function(event){punteroX=Event.pointerX(event);punteroY=Event.pointerY(event);});
Event.observe(window, 'load', function(event) {
    Event.observe('mowmenu', 'mouseover', function(event){try{menuShow($(Event.element(event)))}catch(e){};});
    Event.observe('mowmenu', 'mouseout', function(event){
        menuPeHideAll=setInterval('menuHide()', 500);
    });
    loadXML();
});
document.observe("elemento:cambia", function(event) {
    var prop_name= event.memo.prop_name;
    var val= event.memo.val;if(val==null){val='-'};
    var ident= event.target.id;
    switch(ident) {
        default: nullFunction();
    }
    if(event.target.readAttribute('type')!='radio') {
        event.target.disabled='disabled';
    }else {
        var radios=$$('#search_form input[type="radio"][name="'+event.target.readAttribute('name')+'"]');
        radios.each(function(radio) {
            radio.disabled='disabled';
        });
    }
    new PeriodicalExecuter(function(pe) {
        switch(prop_name) {
            case 'index': event.target.options[val].selected=true;break;
            case 'value': event.target.value=val.gsub('%20',' ');break;
            case 'checked': event.target.checked=val;break;
            default: nullFunction();
        }   
        if(event.target.readAttribute('type')!='radio') {
            event.target.disabled='';
        }else {
            var radios=$$('#search_form input[type="radio"][name="'+event.target.readAttribute('name')+'"]');
            radios.each(function(radio) {
                radio.disabled='';
            });
        }
        pe.stop();
    }, 2);
});
            

//Abrir Ventana - 28 de Julio del 2006
navegador="IE"
abrirVentana= function(direccion,nombre,ancho,alto,tamano,retorna,nocentrado,parametros) {
	var izq,arr,ventana,tamanoventana
	if (tamano=="") {
		if (navegador=="NetS") {
			tamano="0"
		}else {
			tamano="1"
		}
	}
	if (navegador=="NetS") {
		izq = screen.availLeft
		arr = screen.availTop
		ancho=parseInt(ancho)+18;
		alto=parseInt(alto)+45;
	}else if (navegador=="Opera") {
		izq = 0
		arr = 0
		ancho=parseInt(ancho)+25;
		alto=parseInt(alto)+18;
	}else {
		izq = 0
		arr = 0
	}
	tamanoventana=""
	altodef=alto
	if (ancho>=screen.availWidth) {
		ancho=(screen.availWidth*95)/100
	}
	if (alto>=screen.availHeight) {
		altodef=(screen.availHeight*95)/100
	}
	arr = arr + Math.round(((screen.availHeight-altodef)/2))
	izq = izq + Math.round(((screen.availWidth-ancho)/2))
	if (navegador>="NetS") {
		if (navegador=="NetS") {
			if (tamano!="1") {
				tamanoventana="outer"
			}
			if (alto>=screen.availHeight) {
				altodef=((screen.availHeight-55)*95)/100
				arr=15
			}else {
				ancho=ancho+8
			}
		}
		if (navegador=="Opera") {
			arr=10
		}
	}
	parametros="top="+arr+",left="+izq+','+parametros;
	ventana=window.open(direccion,nombre,tamanoventana+"height="+altodef+","+tamanoventana+"width="+ancho+","+parametros)
	ventana.focus();
	if (retorna==1) {
		return ventana;
	}
}

//SetUniqueRadioButton (sirve para que los radio buttons, dentro de repeaters tengan el mismo group name) - 24 de Agosto del 2006
SetUniqueRadioButton= function(nameregex, current) {
   re = new RegExp(nameregex);
   for(i = 0; i < document.forms[0].elements.length; i++) {
      elm = document.forms[0].elements[i]
      if (elm.type == 'radio') {
         if (re.test(elm.name)) {
            elm.checked = false;
         }
      }
   }
   current.checked= true;
}

//printSelected (sirve para que imprima el contenido de la etiqueta con el id que se le manda) - 05 de Diciembre del 2006
printSelected= function(nombre) {
    var ficha = document.getElementById(nombre);
    var ventimp = window.open('#', 'popimpr', 'width=1,height=1,top=999,left=999');
    ventimp.document.write(ficha.innerHTML);
    ventimp.document.close();
    ventimp.print();
    ventimp.close();
}

//degloseShoppingCart (sirve para desglosar el carrito de la compra a partir de un xml) - 21 de Diciembre del 2006
degloseShoppingCart= function() {    
    var aArrCart = new Array(); //Array que devolverá con los datos del carrito
    try {
        for (i=0;i<xmlDoc.getElementsByTagName("item").length;i++) {
            aArrCart[i] = xmlDoc.getElementsByTagName("item")[i].childNodes[0].nodeValue;
        }
    }catch(e) {
        //alert(e.message);
    }
    return aArrCart;
}

//setSCartContent (sirve para asignar los valores del carrito a la vista previa del mismo) - 21 de Diciembre del 2006
function setSCartContent(){
    if (window.ActiveXObject) {
        loadXML()
    }
    var aArrCart = new Array();
    aArrCart = degloseShoppingCart();
    var ArtCount, ListArt;
    if (aArrCart.length<=1) {
        if(aArrCart[0]==0) {
            ArtCount = 0;
        }else {
            ArtCount = aArrCart.length;
        }
    }else {
        ArtCount = aArrCart.length;
    }
    ListArt= getSCartList(aArrCart);
    if (ArtCount!=0) {
        document.getElementById('panSCartLogo').className = "SCart_Lleno";
    }else {
        document.getElementById('panSCartLogo').className = "SCart_Vacia";
    }
    document.getElementById('lblSCartCount').innerHTML = ArtCount;
    document.getElementById('panSCartList').innerHTML = ListArt;
}

//getSCartList (devuelve un listado de los artículos del carrito) - 21 de Diciembre del 2006
getSCartList= function(oArr) {
    var strCart= '';
    for(i=0;i<oArr.length;i++) {
        if (i!=oArr.length - 1) {
            strCart = strCart + oArr[i] + '<br /><br />';
        }else {
            strCart = strCart + oArr[i];
        }
    }
    if (strCart!='0') {
        if (strCart!='') {
            return strCart;
        }else {
            return '<div style="margin:0 auto;text-align:center;">Sin art&iacute;culos.</div>';
        }
    }
    else
    return '<div style="margin:0 auto;text-align:center;">Sin art&iacute;culos.</div>';
}

//loadXML (carga el fichero xml del desglose del carrito de la compra) - 21 de Diciembre del 2006
var xmlDoc;
loadXML= function() {
    if (window.ActiveXObject) {
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async=false;
        xmlDoc.load("DetachSCart.aspx");
    }else if (document.implementation && document.implementation.createDocument) {
        xmlDoc=document.implementation.createDocument("","",null);
        xmlDoc.load("DetachSCart.aspx");
    }else {
        alert('Su navegador no soporta este procedimiento.');
    }
}

//checkOptions (valida las opciones de un artículo en el caso de que las tenga) - 22 de Enero del 2007
checkOptions= function(cboOptions,cboOptionsValues,cboOptionsEx,cboOptionsExValues) {
    var arrOpts = new Array();
    if (cboOptions.value!=''){arrOpts = cboOptions.value.split(',')};
    var arrOptsEx = new Array();
    if (cboOptionsEx.value!=''){arrOptsEx = cboOptionsEx.value.split(',')};
    var bErr = false;
    var strValues = '';
    var strValuesEx = '';
    for (i=0;i<arrOpts.length;i++) {
        if (document.getElementById(arrOpts[i]).value=='*'){bErr=true};
        if (strValues!='') {
            strValues = strValues + ',' + arrOpts[i].replace('op','') + '=' + document.getElementById(arrOpts[i]).value;
        }else {
            strValues = arrOpts[i].replace('op','') + '=' + document.getElementById(arrOpts[i]).value;
        }
    }
    for (i2=0;i2<arrOptsEx.length;i2++) {
        if (strValuesEx!='') {
            for (i3=0;i3<2;i3++) {
                if (document.getElementsByName(arrOptsEx[i2])[i3].checked)
                break;
            }
            strValuesEx = strValuesEx + ',' + arrOptsEx[i2].replace('opex','') + '=' + document.getElementsByName(arrOptsEx[i2])[i3].value;
        }else {
            for (i3=0;i3<2;i3++) {
                if (document.getElementsByName(arrOptsEx[i2])[i3].checked)
                break;
            }
            strValuesEx = arrOptsEx[i2].replace('opex','') + '=' + document.getElementsByName(arrOptsEx[i2])[i3].value;
        }
    }
    if(bErr==false) {
        cboOptionsValues.value = strValues;
        cboOptionsExValues.value = strValuesEx;
    }else {
        alert('Debe elegir un valor en las opciones que estén marcadas con un asterisco, ya que son obligatorias.')
        return false;
    }
}

//checkTallas (valida las tallas de un artículo en el caso de que las tenga) - 11 de Mayo del 2007
checkTallas= function(hidTallas) {
    var gr=document.getElementsByName('dgtallas');
    for (i=0;i<gr.length;i++) {
        if (gr[i].checked)
        break;
    }
    hidTallas.value=gr[i].value;
}

//checkColores (valida los colores de un artículo en el caso de que las tenga) - 11 de Mayo del 2007
checkColores= function(hidColores) {
    var gr=document.getElementsByName('dgcolores');
    for (i=0;i<gr.length;i++) {
        if (gr[i].checked)
        break;
    }
    hidColores.value=gr[i].value;
}

//commentsCountDown (establece el tope de texto de los comentarios) - 14 de Mayo del 2007
var _400;
commentsCountDown= function(textbox,valuelabel) {
    var txt= textbox.value;
    if (txt.length<400) {
        valuelabel.innerHTML=400-txt.length;
        _400=txt;
    }else {
        valuelabel.innerHTML=0;
        textbox.value=_400;
    }
}

//commentsHelp (devuelve ayuda sobre xhtml) - 15 de Mayo del 2007
commentsHelp= function(i) {
    var arr= new Array();
    arr[1]= '<b>Enlaces</b>: &lt;a href=&quot;http://www.google.es/&quot;&gt;Google&lt;/a&gt; = <a href="http://www.google.es/" target="_blank">Google</a>';
    arr[2]= '<b>Negrita</b>: &lt;b&gt;Google&lt;/b&gt; = <b>Google</b>';
    arr[3]= '<b>Cursiva</b>: &lt;i&gt;Google&lt;/i&gt; = <i>Google</i>';
    return arr[i];
}

//menuShow (muestra una sección del menú de grupos) - 04 de Abril del 2008
menuShow= function(obj) { 
    clearInterval(menuPeHideAll);
    var eloffset=Element.cumulativeOffset(obj.up('a',0));
    var el={
        obj: Element.extend(obj.up('a',0)),
        subbox: (obj.up('a',0)==null)?null:obj.up('a',0).id.gsub('(dynamic|static)item','subbox'),
        container: obj.up('div',0).id,
        left: eloffset[0]+Element.getWidth(obj.up('a',0)),
        top: (eloffset[1]),
        type: obj.up('a',0).id.startsWith('dynamic')?'dynamic':'static'
    };
    if(Prototype.Browser.IE==false) {
        if(el.type=='dynamic') {
            /* Modificamos la posición de la caja */
            var pagebottom=window.innerHeight+window.pageYOffset;
            var elbottom=el.top+$(el.subbox).getHeight();
            if(elbottom>pagebottom) {
                el.top=(el.top-(elbottom-pagebottom))-20;
            }
            /* Modificamos la posición de la caja */
            $(el.subbox).setStyle({
                display: 'block',
                top: el.top+'px',
                left: el.left+'px',
                position: 'absolute'
            });
            el.obj.addClassName('mowmenu_shadowselect');
            menuOpenedItems.indexOf(el.subbox)==-1?menuOpenedItems.push(el.subbox):null;
            menuNoHideItems.clear();
            var nameid='';
            var witem=el.obj.ancestors()[0];
            while(nameid!='mowmenu') {
                nameid=witem.id;
                witem=$(witem.id.gsub('subbox','dynamicitem')).ancestors()[0];
                if(menuNoHideItems.indexOf(nameid)==-1) {
                    menuNoHideItems.push(nameid);
                }
            }
            menuNoHideItems.push(el.obj.id.gsub('dynamicitem','subbox'));
            menuNoHideItems=menuNoHideItems.without('mowmenu');
        }else {
            var ancestorsarr=new Array();
            var nameid='';
            var witem=el.obj.ancestors()[0];
            while(nameid!='mowmenu') {
                nameid=witem.id;
                witem=$(witem.id.gsub('subbox','dynamicitem')).ancestors()[0];
                if(ancestorsarr.indexOf(nameid)==-1) {
                    ancestorsarr.push(nameid);
                }
            }
            menuNoHideItems.each(function(it) {
                if(ancestorsarr.indexOf(it)==-1) {
                    menuNoHideItems=menuNoHideItems.without(it);
                }
            });
        }
        menuNoHideItems.uniq();
        menuOpenedItems.each(function(openedit) {
            if(menuNoHideItems.indexOf(openedit)==-1) {
                $(openedit).setStyle({
                    display: ''
                });
                $(openedit.gsub('subbox','dynamicitem')).removeClassName('mowmenu_shadowselect');
            }
        });
    }else {
        try {
            if(el.type=='dynamic') {
                var itstr='';
                mowmenu[el.subbox].each(function(item){
                    itstr+='<a href="ListFamilia.aspx?Id='+item.id+'" id="'+(item.patt?'dynamic':'static')+'item'+item.id+'"'+(item.patt?' class="mowmenu_arrow"':'')+'><span>'+item.name+'</span></a>';
                });
                var div=document.createElement('div');
                Element.extend(div);
                div.id=el.subbox;
                div.addClassName('mowmenu_float');
                div.update(itstr);
                $('mowmenu').insert(div, {position: 'bottom'});
                Element.extend(div);
                /* Modificamos la posición de la caja */
                var pagebottom=document.documentElement.clientHeight+document.documentElement.scrollTop;
                var elbottom=el.top+div.getHeight();
                if(elbottom>pagebottom) {
                    el.top=(el.top-(elbottom-pagebottom))-20;
                }
                /* Modificamos la posición de la caja */
                div.setStyle({
                    display: 'block',
                    top: el.top+'px',
                    left: el.left+'px',
                    position: 'absolute'
                });
                el.obj.addClassName('mowmenu_shadowselect');
                menuNoHideItems.clear();
                var nameid='';
                var witem=el.obj.ancestors()[0];
                while(nameid!='mowmenu') {
                    nameid=witem.id;
                    witem=$(witem.id.gsub('subbox','dynamicitem')).ancestors()[0];
                    if(menuNoHideItems.indexOf(nameid)==-1) {
                        menuNoHideItems.push(nameid);
                    }
                }
                menuNoHideItems.push(el.obj.id.gsub('dynamicitem','subbox'));
                menuNoHideItems=menuNoHideItems.without('mowmenu');
            }else {
                var ancestorsarr=new Array();
                var nameid='';
                var witem=el.obj.ancestors()[0];
                while(nameid!='mowmenu') {
                    nameid=witem.id;
                    witem=$(witem.id.gsub('subbox','dynamicitem')).ancestors()[0];
                    if(ancestorsarr.indexOf(nameid)==-1) {
                        ancestorsarr.push(nameid);
                    }
                }
                menuNoHideItems.each(function(it) {
                    if(ancestorsarr.indexOf(it)==-1) {
                        menuNoHideItems=menuNoHideItems.without(it);
                    }
                });
            }
            menuNoHideItems.uniq();
            $$('.mowmenu_float').each(function(obj) {
                if(obj.id!='mowmenu') {
                    if(menuNoHideItems.indexOf(obj.id)==-1) {
                        var obj1=obj;
                        var obj2=$(obj.id.gsub('subbox','dynamicitem'));
                        Element.extend(obj1);
                        Element.extend(obj2);
                        obj1.remove();
                        obj2.removeClassName('mowmenu_shadowselect');
                    }
                }
            });
        }catch(e){/*ex ignorada*/}
    }
}

//menuHide (cierra todos los paneles flotantes del mowmenu) - 21 de Abril del 2008
menuHide= function() {
    try {
        if(Prototype.Browser.IE==false) {
            menuOpenedItems.each(function(obj) {
                $(obj).setStyle({
                    display: ''
                });
                $(obj.gsub('subbox','dynamicitem')).removeClassName('mowmenu_shadowselect');
            });
        }else {
            $$('.mowmenu_float').each(function(obj) {
                if(obj.id!='mowmenu') {
                    var obj1=obj;
                    var obj2=$(obj.id.gsub('subbox','dynamicitem'));
                    Element.extend(obj1);
                    Element.extend(obj2);
                    obj1.remove();
                    obj2.removeClassName('mowmenu_shadowselect');
                }
            });
        }
    }catch(e){/*ex ignorada*/}
}

//optionsToolTip (muestra un tool-tip con las descripciones de las opciones) - 21 de Abril del 2008
optionsToolTip= function(item, desc) {
    if(desc!=null) {
        var pos= Element.cumulativeOffset(item);
        pos[0]=(pos[0]+item.getWidth())+5;
        if($('onptionsdescdiv')==null) {
            var tooltip=document.createElement('div');
            Element.extend(tooltip);
            tooltip.id='onptionsdescdiv';
            tooltip.setStyle({
                left: pos[0]+'px',
                top: pos[1]+'px',
                backgroundColor: '#ffff8c',
                border: '1px solid black',
                position: 'absolute',
                styleFloat: 'left',
                display: 'block',
                padding: '3px',
                width: '200px'
            });
            tooltip.update(desc);
            $('MainTable_Center').insert(tooltip, {position: 'bottom'});
            Element.extend(tooltip);
        }else {
            $('onptionsdescdiv').update(desc);
            $('onptionsdescdiv').setStyle({
                display: 'block',
                left: pos[0]+'px',
                top: pos[1]+'px'
            });
        }
    }else {
        if($('onptionsdescdiv')!=null) {
            $('onptionsdescdiv').setStyle({
                display: 'none'
            });
        }
    }
}

// Búsqueda
changeSearchParams= function(p,button) {
    button==null?button=false:button=true;
    var par='#';
    var incl_radios=new Array();
    var incl_minmax=new Array();
    var reg_minmax=new RegExp('^search:[a-z_]+\.[a-z_]+(\<|\>)$');
    var reg_cbo=new RegExp('^search:([a-z_]+)?$');
    var reg_input=new RegExp('^search:[a-z_]+\.[a-z_]+$');
    var search_inputs=$$('#search_form input[type="radio"]','#search_form select','#search_form input[type="text"]','#search_form input[type="checkbox"]','#search_form textarea');
    
	if (search_inputs == null || search_inputs == 'undefined' || search_inputs.size() == 0) {
            //search_inputs = $$('#search_form input[type="radio"]', '#search_form select', '#search_form input[type="text"]', '#search_form input[type="checkbox"]', '#search_form textarea');
            var radios = $$('#search_form input[type="radio"]');
            var selects = $$('#search_form select');
            var texts = $$('#search_form input[type="text"]');
            var textboxes = $$('#search_form input[type="checkbox"]');
            var textareas = $$('#search_form textarea');
            search_inputs = radios.concat(selects).concat(texts).concat(textboxes).concat(textareas);
        }
	
	if(button) {
        search_inputs.each(function(input,ix) {
            var letter=ixToLetter(ix);
            if(par=='#'){append='';}else{append=',';};
            if(input.readAttribute('type')=='text' || input.tagName.toLowerCase()=='select' || input.tagName.toLowerCase()=='textarea') {
                if(input.readAttribute('name').match(reg_minmax)) { // MIN-MAX
                    if(incl_minmax.indexOf(input.readAttribute('name').gsub(/\<|\>/,''))==-1) {
                        var min=0;
                        var max=0;
                        var last_chr='<';
                        var last_chr_vs='>';
                        if(input.readAttribute('name').endsWith('<')){last_chr='<';}else{last_chr='>';};
                        if(last_chr=='<'){last_chr_vs='>';}else{last_chr_vs='<';};
                        var second=$$('#search_form input[name="'+input.readAttribute('name').gsub(last_chr,last_chr_vs)+'"]')[0];
                        if(input.value=='-' || input.value=='' || input.value==null) {
                            min=0;
                        }else {
                            min=input.value;
                        }
                        if(second.value=='-' || second.value=='' || second.value==null) {
                            max=0;
                        }else {
                            max=second.value;
                        }
                        var val=min+'-'+max;
                        if(val!='0-0'){
                            par+=append+letter+':'+val;
                        }
                        incl_minmax.push(input.readAttribute('name').gsub(/\<|\>/,''));
                    }
                }else if(input.readAttribute('name').match(reg_cbo)) { // COMBOS SIN VALOR
                    par+=append+letter+':'+input.selectedIndex;
                }else if(input.readAttribute('name').match(reg_input)) { // COMBOS, TEXTBOXES Y TEXTAREAS CON VALOR
                    if(input.value!='-') {
                        par+=append+letter+':'+input.value;
                    }
                }
            }else if(input.readAttribute('type')=='checkbox') {
                if(input.checked){par+=append+letter+':1'}else{par+=append+letter+':0'};
            }else if(input.readAttribute('type')=='radio') {
                if(incl_radios.indexOf(input.readAttribute('name'))==-1) {
                    var radios=$$('#search_form input[type="radio"][name="'+input.readAttribute('name')+'"]');
                    var index=0;
                    radios.each(function(radio,ix2) {
                        if(radio.checked==true) {
                            index=ix2;
                            incl_radios.push(input.readAttribute('name'));
                        }
                    });
                    par+=append+letter+':'+index;
                }
            }
        });
        document.location.href=par+',page:'+p;
    }else {
        var old_params=document.location.href.substring(document.location.href.indexOf('#')+1);
        old_params=old_params.substring(0,old_params.lastIndexOf(':')+1);
        document.location.href='#'+old_params+p;
    }
    callSearch();
} 

callSearch= function() {
    try {
        var p=document.location.href.substring(document.location.href.indexOf('#'));
        if(p.charAt(0)!='#'){throw'';}else{p=p.gsub('#','');};
        var h= new Hash();
        var pa=p.split(',');pa.each(function(s) {
            h[s.split(':')[0]]=s.split(':')[1];
            h.map();
        });
        //Inspeccionamos el formulario
        var j='{';
        var incl_radios=new Array();
        var incl_minmax=new Array();
        var reg_minmax=new RegExp('^search:[a-z_]+\.[a-z_]+(\<|\>)$');
        var reg_cbo=new RegExp('^search:([a-z_]+)?$');
        var reg_input=new RegExp('^search:[a-z_]+\.[a-z_]+$');
        var search_inputs=$$('#search_form input[type="radio"]','#search_form select','#search_form input[type="text"]','#search_form input[type="checkbox"]','#search_form textarea');
        
		if (search_inputs == null || search_inputs == 'undefined' || search_inputs.size() == 0) {
            //search_inputs = $$('#search_form input[type="radio"]', '#search_form select', '#search_form input[type="text"]', '#search_form input[type="checkbox"]', '#search_form textarea');
            var radios = $$('#search_form input[type="radio"]');
            var selects = $$('#search_form select');
            var texts = $$('#search_form input[type="text"]');
            var textboxes = $$('#search_form input[type="checkbox"]');
            var textareas = $$('#search_form textarea');
            search_inputs = radios.concat(selects).concat(texts).concat(textboxes).concat(textareas);
        }
		
		search_inputs.each(function(input,ix) {
            var letter=ixToLetter(ix);
            if(j=='{'){append='';}else{append=','};
            if(input.readAttribute('type')=='text' || input.tagName.toLowerCase()=='select' || input.tagName.toLowerCase()=='textarea') {
                if(input.readAttribute('name').match(reg_minmax)) {
                    if(incl_minmax.indexOf(input.readAttribute('name').gsub(/\<|\>/,''))==-1) {
                        var last_chr='<';
                        var last_chr_vs='>';
                        if(input.readAttribute('name').endsWith('<')){last_chr='<';}else{last_chr='>';};
                        if(last_chr=='<'){last_chr_vs='>';}else{last_chr_vs='<';};
                        var second=$$('#search_form input[name="'+input.readAttribute('name').gsub(last_chr,last_chr_vs)+'"]')[0];
                        var val='0-0';
                        if(h[letter]=='-' || h[letter]=='' || h[letter]==null) {
                            val='0-0';
                        }else {
                            val=h[letter];
                        }
                        input.fire('elemento:cambia', {prop_name: 'value', val: val.split('-')[0]});
                        second.fire('elemento:cambia', {prop_name: 'value', val: val.split('-')[1]});
                        //Creamos el JSON
                        j=jsonAppend(j,append,input.readAttribute('name').gsub(/search\:|\<|\>/,''),val);
                        incl_minmax.push(input.readAttribute('name').gsub(/\<|\>/,''));
                    }
                }else if(input.readAttribute('name').match(reg_cbo)) {
                    input.fire('elemento:cambia', {prop_name: 'index', val: h[letter]});
                    var val=input.options[h[letter]].value;
                    j=jsonAppend(j,append,val.split(':')[0],val.split(':')[1]);
                }else if(input.readAttribute('name').match(reg_input)) {
                    input.fire('elemento:cambia', {prop_name: 'value', val: h[letter]});
                    j=jsonAppend(j,append,input.readAttribute('name').gsub(/search\:/,''),h[letter]);
                }
            }else if(input.readAttribute('type')=='checkbox') {
                if(h[letter]=='1') {
                    input.fire('elemento:cambia', {prop_name: 'checked', val: true});
                    j=jsonAppend(j,append,input.readAttribute('name').gsub(/search\:/,''),h[letter]);
                }else {
                    input.fire('elemento:cambia', {prop_name: 'checked', val: false});
                }
            }else if(input.readAttribute('type')=='radio') {
                if(incl_radios.indexOf(input.readAttribute('name'))==-1) {
                    var radios=$$('#search_form input[type="radio"][name="'+input.readAttribute('name')+'"]');
                    var prop,val;
                    radios.each(function(radio,ix2) {
                        if(h[letter]==ix2) {
                            radio.fire('elemento:cambia', {prop_name: 'checked', val: true});
                            if(radio.readAttribute('name').match(reg_cbo)) {
                                prop=radio.value.split(':')[0];
                                val=radio.value.split(':')[1];    
                            }else{
                                prop=radio.readAttribute('name').gsub(/search\:/,'');
                                val=radio.value;    
                            }
                            incl_radios.push(input.readAttribute('name'));
                        }
                    });
                    j=jsonAppend(j,append,prop,val);
                }
            }
        });
        if(j=='{') {
            if(h['page']==null){j+='"page":"1"';}else{j+='"page":"'+h['page']+'"';}
        }else {
            if(h['page']==null){j+=',"page":"1"';}else{j+=',"page":"'+h['page']+'"';}
        }
        j+='}';
        new Ajax.Request('ajaxrecep.aspx', {
          method: 'post',
          parameters: {
            mode: 'advsearch',
            mod_query: ($('mod_query')==null)?'-':$F('mod_query'),
            json: j
          },
          onLoading: function(transport) {
            if($('mini_indicator')!=null){
                $('mini_indicator').setStyle({
                    display: 'block'
                });
            }
            $('search-results').update('<div id="searchLoading" class="search_loading" style="border:0px;width:100%;">&nbsp;</div>');
            new PeriodicalExecuter(function(pe) {
                $('searchLoading').update('<div style="text-align:center;padding-top:60px;width:100%;">¿No termina de cargar?<br /><a href="javascript:callSearch();">Pulsa aqu&iacute;</a>.</div>')
                pe.stop();
            }, 8);
          },
          onSuccess: function(transport) {
            if($('mini_indicator')!=null){
                $('mini_indicator').setStyle({
                    display: 'none'
                });
            }
            if(transport.responseText.startsWith('<div style="border:1px solid gray;"></div>')) {
                $('search-results').update('<center><span class="information">No hay ning&uacute;n resultado para esta b&uacute;squeda.</span></center>');
            }else {
                $('search-results').update(transport.responseText);
            }
          },
          onFailure: function(transport) {
            $('search-results').update('<center><span class="information">No se han podido mostrar los resultados de la consulta debido a un error interno.<br /><br /><a href="javascript:;" onclick="javascript:$(\'errDiv\').toggle();">Pulsando aqu&iacute;</a> podr&aacute; conocer los detalles del error.</span></center><div id="errDiv" style="display:none;width:600px;border:2px solid gray;margin:0 auto;overflow:hidden;">'+transport.responseText+'</div>');
          }
        });
    }catch(e){
        //alert(e.message)
    }
}

ixToLetter= function(word) {
    word=word.toString();
    var str='';
    for(var ix=0; ix < word.length; ix++) {
        switch(word.charAt(ix).toString()){
            case '0': str+='a';break;
            case '1': str+='b';break;
            case '2': str+='c';break;
            case '3': str+='d';break;
            case '4': str+='e';break;
            case '5': str+='f';break;
            case '6': str+='g';break;
            case '7': str+='h';break;
            case '8': str+='i';break;
            case '9': str+='j';break;
            default: str+='x';
        }
    }
    return str;
}

nullFunction= function(){}

jsonAppend= function(j,append,prop,value) {
    if(value==null || value=='0-0' || value=='-' || value=='') {
        return j;
    }else {
        return j+append+'"'+prop+'":"'+value+'"';
    }
}

/* 
    FINALIZACIÓN DEL PEDIDO
*/
doCheckCartStep= function(step,bonds) {
    if(bonds!=null){checkCartBonds=bonds};
    new Ajax.Request('ajaxrecep.aspx', {
      method: 'post',
      parameters: {
        mode: 'checkcart',
        json: '{"step":"'+step+'"'+getCheckCartCurrentJson(step)+'}'
      },
      onLoading: function(transport) {
        var wObj=null;$('wizardSteps').getStyle('display')=='none'?wObj=$('wizardFinish'):wObj=$('wizardSteps');
        var offS= wObj.cumulativeOffset();
        $('wizardLoading').setStyle({
            width: wObj.getWidth()+'px',
            height: wObj.getHeight()+'px',
            display: 'block',
            left: offS[0]+'px',
            top: offS[1]+'px'
        });
      },
      onSuccess: function(transport) {
        //Ocultamos el panel de carga        
        $('wizardLoading').setStyle({
            display: 'none'
        });
        //Realizamos funciones
        var joptions= transport.responseText.substring(0,transport.responseText.indexOf('<html>')).strip().evalJSON();
        if(!joptions.isFinal) {
            //Mostramos \ ocultamos paneles
            $('wizardSteps').setStyle({display:'block',visibility:'visible'});
            $('wizardFinish').setStyle({display:'none'});
            //Establecemos valores
            $('text-options').update(joptions.textOptions);
            $('main-content').update(joptions.mainContent);
            $('back-button').writeAttribute((Prototype.Browser.IE?'href':'onclick'),joptions.backButtonOnclick);
            $('back-button').setStyle({display: joptions.backButtonDisplay});
            $('next-button').writeAttribute((Prototype.Browser.IE?'href':'onclick'),joptions.nextButtonOnclick);
            $('next-button').setStyle({display: joptions.nextButtonDisplay});
            $('importeTotal').update(joptions.importeTotal);
            //Ocultamos el botón de finalizar
            $('ctl00_ContentPlaceHolder1_cmdConfirmar').setStyle({display: 'none'});
            //Mostramos imagenes de progreso
            $('steps-content').update(getCheckCartImageStep(step));
        }else {
            //Mostramos \ ocultamos paneles
            $('wizardSteps').setStyle({display:'none'});
            $('wizardFinish').setStyle({display:'block'});
            //Establecemos valores
            $('formaPagoElegida').update(joptions.formaPagoElegida);
            $('formaEnvioElegida').update(joptions.formaEnvioElegida);
            $('costeEnvio').update(joptions.costeEnvio);
            $('otrosGastos').update(joptions.otrosGastosEnvio);
            $('bonoElegido').update(joptions.bonoElegido);
            $('observaciones').update(joptions.observacionesPedido);
            $('precioArticulos').update(joptions.precioArticulos);
            $('ivaArticulos').update(joptions.ivaArticulos);
            $('totalRecargos').update(joptions.totalRecargos);
            $('importeTotal').update(joptions.importeTotal);
            //Mostramos el botón de finalizar
            $('ctl00_ContentPlaceHolder1_cmdConfirmar').setStyle({display: 'block'});
        }
      },
      onFailure: function(transport) {
        $('wizardLoading').update('<br /><br /><br /><b style="color:red;">Ha ocurrido un error con la siguiente descripci&oacute;n:<br /><br />"'+transport.responseText.substring(transport.responseText.indexOf('<title>'), transport.responseText.indexOf('</title>')).stripTags().replace(/^\s+|\s+$/g,'')+'..."<br /><br />En 5 segundos se refrescar&aacute; la p&aacute;gina.</b>');
        new PeriodicalExecuter(function(pe) {
            document.location.href=document.location.href.split('#')[0];
        }, 5);
      }
    });
}

doCheckCartShipMove= function() {
    var arr= $('wizardSteps').select('input[name="formas_envio"]');
    var chkd;
    arr.each(function(item) {
        if(item.checked) {
            chkd=item;
            throw $break;
        }
    });
    new Ajax.Request('ajaxrecep.aspx', {
      method: 'post',
      parameters: {
        mode: 'checkcart_shipmove',
        id: chkd.value,
        sleep: 'false'
      },
      onSuccess: function(transport) {
        var j= transport.responseText.substring(0,transport.responseText.indexOf('<html>')).strip().evalJSON();
        $('costeEnvio').update(j.costeEnvio);
        $('otrosGastos').update(j.otrosGastos);
      }
    });
}

doCheckCartPayMove= function() {
    var arr= $('wizardSteps').select('input[name="formas_pago"]');
    var chkd;
    arr.each(function(item) {
        if(item.checked) {
            chkd=item;
            throw $break;
        }
    });
    new Ajax.Request('ajaxrecep.aspx', {
      method: 'post',
      parameters: {
        mode: 'checkcart_paymove',
        id: chkd.value,
        sleep: 'false'
      },
      onSuccess: function(transport) {
        var j= transport.responseText.substring(0,transport.responseText.indexOf('<html>')).strip().evalJSON();
        $('portesGratuitosLabel').setStyle({
            display: j.portesGratuitos?'block':'none'
        });
      }
    });
}

doCheckCartActiveBondsChange= function(me) {
    $('listadoBonos').select('label','input').each(function(item,ix) {
        me.checked?item.disabled='':item.disabled='disabled';
    });
    $('listadoBonos').select('input[type="radio"]').each(function(item,ix) {
        if(me.checked) {
            ix==0?item.checked=true:item.checked=false;
        }
    });
    if(me.checked) {
        doCheckCartBondMove();
        $('mensajeBonosLabel').setStyle({
            display: 'block'
        });
    }else {
        $('mensajeBonosLabel').setStyle({
            display: 'none'
        });
        $('handlerValidarLink').update('<span style="color:gray;">&raquo;Validar.</span>');
        $('next-button').writeAttribute((Prototype.Browser.IE?'href':'onclick'),'javascript:doCheckCartStep(\'observaciones\');');
    }
}

doCheckCartBondMove= function(nr) {
    if(nr==null){nr=false};
    var arr= $('wizardSteps').select('input[name="listado_bonos"]');
    var chkd;
    arr.each(function(item) {
        if(item.checked) {
            chkd=item;
            throw $break;
        }
    });
    if(chkd.value!='0_0') {
        $('claveBono').disabled='disabled';
        $('handlerValidarLink').update('<span style="color:gray;">&raquo;Validar.</span>');
    }else {
        $('claveBono').disabled='';
        $('handlerValidarLink').update('<a href="javascript:;" onclick="javascript:doCheckCartBondMove(true);">&raquo;Validar.</a>');
    }
    new Ajax.Request('ajaxrecep.aspx', {
      method: 'post',
      parameters: {
        mode: 'checkcart_bondmove',
        id: chkd.value,
        notrep: nr,
        clave: $F('claveBono'),
        sleep: 'false'
      },
      onSuccess: function(transport) {
        var j= transport.responseText.substring(0,transport.responseText.indexOf('<html>')).strip().evalJSON();
        $('mensajeBonosLabel').setStyle({
            color: j.bonoCorrecto?'green':'red'
        });
        $('mensajeBonosLabel').update(j.fraseBono);
        if(!j.bonoCorrecto) {
            $('next-button').writeAttribute((Prototype.Browser.IE?'href':'onclick'),'javascript:alert(\'Ha ocurrido algún error con la configuración de los bonos, debe seleccionar un bono\\ncorrecto de la lista o introducir un código correcto para continuar.\\n\\nSi el problema persiste debe desactivar los bonos y continuar con el siguiente paso\\ndel asistente.\');');
        }else {
            $('next-button').writeAttribute((Prototype.Browser.IE?'href':'onclick'),'javascript:doCheckCartStep(\'observaciones\');');
        }
      }
    });
}

getCheckCartCurrentJson= function(step) {
    var jsteps= ('{bienvenida:\'-\',\'formas-envio\':\'bienvenida\',\'formas-pago\':\'formas-envio\',bonos:\'formas-pago\',observaciones:\''+(checkCartBonds?'bonos':'formas-pago')+'\',final:\'observaciones\'}').evalJSON();
    var anterior= jsteps[step];
    var jreturn='';
    switch(anterior) {
        case 'formas-envio':
            try{
                var arr= $('wizardSteps').select('input[name="formas_envio"]');
                var chkd;
                arr.each(function(item) {
                    if(item.checked) {
                        chkd=item;
                        throw $break;
                    }
                });
                jreturn=',"saving_step":"'+anterior+'","forma_envio":"'+chkd.value+'"';
                break;
            }catch(ex){/*alert(ex.message);*/}
        case 'formas-pago':
            try{
                var arr= $('wizardSteps').select('input[name="formas_pago"]');
                var chkd;
                arr.each(function(item) {
                    if(item.checked) {
                        chkd=item;
                        throw $break;
                    }
                });
                jreturn=',"saving_step":"'+anterior+'","forma_pago":"'+chkd.value+'"';
                break;
            }catch(ex){/*alert(ex.message);*/}
        case 'bonos':
            try{
                var arr= $('wizardSteps').select('input[name="listado_bonos"]');
                var chkd;
                arr.each(function(item) {
                    if(item.checked) {
                        chkd=item;
                        throw $break;
                    }
                });
                var bonoSeleccionado= chkd==null?'-':chkd.value;
                var claveBono= bonoSeleccionado=='0_0'?($F('claveBono')==''?'-':$F('claveBono')):($('wizardSteps').select('label[for="'+chkd.id+'"]')[0].innerHTML);
                jreturn=',"saving_step":"'+anterior+'","bonos_activos":"'+($('activarBonos').checked?'true':'false')+'","bono_seleccionado":"'+bonoSeleccionado+'","clave_bono":"'+claveBono+'","mensaje_bono":"'+$('mensajeBonosLabel').innerHTML.escapeHTML()+'"';
                break;
            }catch(ex){/*alert(ex.message);*/}
        case 'observaciones':
            try{
                jreturn=',"saving_step":"'+anterior+'","observaciones":"'+($F('txtObservaciones')==''?'-':$F('txtObservaciones').stripTags().escapeHTML().gsub(/\n|\'|\"/,' '))+'"';
                break;
            }catch(ex){/*alert(ex.message);*/}
        default:
            jreturn='';
    }
    return jreturn;
}

getCheckCartImageStep= function(step) {
    var tdW=(checkCartBonds?'20%':'25%');
    var tpl=new Template('<table style="width:100%;" border="0" cellspacing="0" cellpadding="0"><tr class="Art_Asistente_Progreso_Bg"><td style="text-align:center;width:'+tdW+';">#{imgBienvenida}</td><td style="text-align:center;width:'+tdW+';">#{imgFEnvio}</td><td style="text-align:center;width:'+tdW+';">#{imgFPago}</td>#{imgBonos}<td style="text-align:center;width:'+tdW+';">#{imgObservaciones}</td></tr><tr><td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">#{desBienvenida}</td><td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">#{desFEnvio}</td><td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">#{desFPago}</td>#{desBonos}<td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">#{desObservaciones}</td></tr></table>');
    var rep;
    switch(step) {
        case 'bienvenida':rep= {
            imgBienvenida: '<img src="App_Themes/default/images/wizard_step.gif" style="border-width:0px;" alt="" />',
            imgFEnvio: '&nbsp;',
            imgFPago: '&nbsp;',
            imgBonos: (checkCartBonds?'<td style="text-align:center;width:'+tdW+';">&nbsp;</td>':''),
            imgObservaciones: '&nbsp;',
            desBienvenida: '<span style="font-weight:bold;">Inicio</span>',
            desFEnvio: '&nbsp;',
            desFPago: '&nbsp;',
            desBonos: (checkCartBonds?'<td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">&nbsp;</td>':''),
            desObservaciones: '&nbsp;'
        }
        break;
        case 'formas-envio':rep= {
            imgBienvenida: '&nbsp;',
            imgFEnvio: '<img src="App_Themes/default/images/wizard_step.gif" style="border-width:0px;" alt="" />',
            imgFPago: '&nbsp;',
            imgBonos: (checkCartBonds?'<td style="text-align:center;width:'+tdW+';">&nbsp;</td>':''),
            imgObservaciones: '&nbsp;',
            desBienvenida: '&nbsp;',
            desFEnvio: '<span style="font-weight:bold;">Formas de env&iacute;o</span>',
            desFPago: '&nbsp;',
            desBonos: (checkCartBonds?'<td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">&nbsp;</td>':''),
            desObservaciones: '&nbsp;'
        }
        break;
        case 'formas-pago':rep= {
            imgBienvenida: '&nbsp;',
            imgFEnvio: '&nbsp;',
            imgFPago: '<img src="App_Themes/default/images/wizard_step.gif" style="border-width:0px;" alt="" />',
            imgBonos: (checkCartBonds?'<td style="text-align:center;width:'+tdW+';">&nbsp;</td>':''),
            imgObservaciones: '&nbsp;',
            desBienvenida: '&nbsp;',
            desFEnvio: '&nbsp;',
            desFPago: '<span style="font-weight:bold;">Formas de pago</span>',
            desBonos: (checkCartBonds?'<td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">&nbsp;</td>':''),
            desObservaciones: '&nbsp;'
        }
        break;
        case 'bonos':rep= {
            imgBienvenida: '&nbsp;',
            imgFEnvio: '&nbsp;',
            imgFPago: '&nbsp;',
            imgBonos: (checkCartBonds?'<td style="text-align:center;width:'+tdW+';"><img src="App_Themes/default/images/wizard_step.gif" style="border-width:0px;" alt="" /></td>':''),
            imgObservaciones: '&nbsp;',
            desBienvenida: '&nbsp;',
            desFEnvio: '&nbsp;',
            desFPago: '&nbsp;',
            desBonos: (checkCartBonds?'<td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;"><span style="font-weight:bold;">Bonos</span></td>':''),
            desObservaciones: '&nbsp;'
        }
        break;
        case 'observaciones':rep= {
            imgBienvenida: '&nbsp;',
            imgFEnvio: '&nbsp;',
            imgFPago: '&nbsp;',
            imgBonos: (checkCartBonds?'<td style="text-align:center;width:'+tdW+';">&nbsp;</td>':''),
            imgObservaciones: '<img src="App_Themes/default/images/wizard_step.gif" style="border-width:0px;" alt="" />',
            desBienvenida: '&nbsp;',
            desFEnvio: '&nbsp;',
            desFPago: '&nbsp;',
            desBonos: (checkCartBonds?'<td style="text-align:center;color:rgb(193, 193, 193);font-size:9px;">&nbsp;</td>':''),
            desObservaciones: '<span style="font-weight:bold;">Observaciones</span>'
        }
        break;
        default:
            rep=null;
    }
    return tpl.evaluate(rep);
}
