/*
Funcions JavaScript by Ivan Vitoria
*/

function isEmptyReg(name, value, msg)
{
    if(value != '' || name == 'telf2' || name == 'user')
        return true;
    else
    {
        alert(msg);
        return false;
    }
}
    
function isEmpty(param)
{
    if(param != null && param != "")
        return false;
    else
        return true;
        
}
    
function isPostalCode(postalCode)
{
    var pattern = /^(([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3})$/;
    return (pattern.test(postalCode));
}
    
function isPhone(value)
{
    return (!isNaN(value) && value.length == '9');
}
    
function isEmail(email)
{
    var pattern = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
    //var pattern = /.+@.+\\.[a-z]+/;
    return (email != "" && (pattern.test(email)));
}
    
function isChar(character)
{
    var pattern = /^[a-z]$/i; //Formato de letra
    return (pattern.test(character));
}
    
function isNIF(nif)
{
    var pattern = /^(X|\d{1})\d{7}\-?([a-z]{1}|[A-Z]{1})$/i;
    return (pattern.test(nif));
            
}
        
function validateNifLostFocus(fld)
{
    if(fld.value != "" && !isNIF(fld.value))
    {
        alert("EL NIF introducido no es v\u00E1lido");
        fld.value = "";
        fld.focus();
    }
}
            
function validatePostalCodeLostFocus(fld)
{
    if(fld.value != "" && !isPostalCode(fld.value))
    {
        alert("EL c\u00F3digo postal introducido no es v\u00E1lido");
        fld.value = "";
        fld.focus();
    }
}
                
function validateEmailLostFocus(fld)
{
    if(fld.value != "" && !isEmail(fld.value))
    {
        alert("EL email introducido no es v\u00E1lido");
        fld.value = "";
        fld.focus();
    }
                        
}
                    
function validatePswrd(pass, repass)
{
    if(pass.value == repass.value)
        return true;
    else
    {
        alert('Las contrase\u00F1as no coinciden, por favor, vuelva a introducirlas');
        pass.value = '';
        repass.value = '';
        pass.focus();
        return false;
                                
    }
                            
}
                        
function validarRegistre(idForm)
{
    var form = document.getElementById(idForm);
    var flds = form.getElementsByTagName('input');
    //var flds = document.getElementsByTagName('input');
    var fld, sel, sels;
    var esOk = true;
    var msg;
    var pass, repass;
    var i = 0;
    while(esOk && i < flds.length)
    {
        fld = flds[i];
                                    
        if(fld.type == 'text' || fld.type == 'password')
        {
                                            
            esOk = isEmptyReg(fld.name, fld.value, 'Debe rellenar todos los campos obligatorios');
                                            
            if(esOk)
            {
                if(fld.name == 'cp')
                {
                    if(!isPostalCode(fld.value))
                    {
                        esOk = false;
                        msg = 'El codigo postal es incorrecto, introduzca 5 digitos sin espacios';
                        alert(msg);
                    }
                }else
                {
                    if(fld.name == 'telf1')
                    {
                        if(!isPhone(fld.value))
                        {
                            esOk = false;
                            msg = 'El tel\u00E9fono de contacto es incorrecto, introduzca 9 digitos sin espacios';
                            alert(msg);
                        }
                                                                            
                    }else
                    {
                        if(fld.name == 'pass')
                        {
                            if(fld.value.length < 5)
                            {
                                esOk = false;
                                msg = 'Por su seguridad debe introducir una contrase\u00F1a de almenos 5 car\u00E1cteres';
                                alert(msg);
                            }
                        }
                    }
                }
            }
        }
                                                                    
        i++;
    }
                                                                
    if(esOk)
    {
        pass = document.getElementById('pass');
        repass = document.getElementById('repass');
        esOk = validatePswrd(pass, repass);
    }
    else
        fld.focus();
                                                                    
                                                                    
    if(esOk)
    {
        sels = form.getElementsByTagName('select');
        if(sels != null)
        {
            for(i = 0; i < sels.length; i++ && esOk)
            {
                sel = sels[i];
                if((sel.name.match("Opt") == null) && (trim(sel.value) == ""))
                {
                    esOk = false;
                    msg = 'Debe rellenar todos los campos obligatorios.';
                    alert(msg);
                    sel.focus();
                                                                                                    
                }
            }
        }
                                                                                        
    }
                                                                                    
    if(esOk)
    {
        for(i = 0; i < flds.length; i++)
        {
            fld = flds[i];
            if(fld.type == 'text' || fld.type == 'pass')
                fld.value = escape(fld.value);
        }
    }
    return esOk;
}
                                                                                        
function showBasket(id, idImg)
{
    var div = document.getElementById(id);
	
    if(div != null)
    {
        if(div.style.display != "none")
        //if(div.style.visibility == 'visible')
        {
            //div.style.visibility = 'hidden';
            changeImage(idImg, false);
            Effect.BlindUp(id, {
                duration: 0.5
            });
            return false;
        }
        else
        {	
            //div.style.visibility = 'visible';
            changeImage(idImg, true);
            Effect.BlindDown(id, {
                duration: 0.5
            });
            return false;
                                                                                                            
        }
    }

    return false;
}
                                                                                                
function changeImage(id, isUp)
{
    var img = document.getElementById(id);
    if(img != null)
    {
        if(isUp)
            img.src = 'img/icons/up.png';
        else
            img.src = 'img/icons/down.png';
                                                                                                            
    }
                                                                                                        
}
                                                                                                    
function hideDiv(id)
{
    document.getElementById(id).style.display='none';
}
                                                                                                    
function modQty(fld, qtyOld, idProd, idFrmt)
{
    var qtyNew = fld.value;
    var msg;
                                                                                                        
    if(!isNaN(qtyNew)&& qtyNew > 0) //-- Valor numeric enter positiu
    {
        if(qtyNew != qtyOld) //-- S'ha modificat
            document.location = "ivs?pet=modbskt&id=" + escape(idProd) + "&qty=" + escape(qtyNew) + "&idfrmt=" + escape(idFrmt);
    }
    else
    {
        alert('Solo se admiten valores num\u00E9ricos mayores que 0.');
        fld.value = qtyOld;
        fld.focus();
    }
}
                                                                                                            
                                                                                                            
function enableForm(idForm)
{
    var fld, flds;
    var form = document.getElementById(idForm);
    if(form != null)
    {
        flds = document.getElementsByTagName('input');
        for(var i = 0; i < flds.length; i++)
        {
            fld = flds[i];
            if(fld.disabled)
                fld.disabled = false;
        }
                                                                                                                            
        flds = document.getElementsByTagName('select');
        for(var i = 0; i < flds.length; i++)
        {
            fld = flds[i];
            if(fld.disabled)
                fld.disabled = false;
        }
                                                                                                                                
    }
}
                                                                                                                        
function showDirent(id, idForm, check)
{
    var fld, flds, name, form;
                                                                                                                            
    if(!check.checked)
        showBlock(id);
    else
        hideBlock(id);
                                                                                                                            
    form = document.getElementById(idForm);
                                                                                                                            
    if(form != null)
    {
        flds = form.getElementsByTagName('input');
        for(var i = 0; i < flds.length; i++)
        {
            fld = flds[i];
                                                                                                                                            
            if(fld.type == 'text' && fld.name.match('Env') != null)
            {
                name = fld.name;
                if(check.checked)
                    if(name.match("Opt") == null) fld.name += "Opt";
                    else
                    if(name.match("Opt") != null)
                    {
                        fld.name = name.substring(0, name.indexOf("Opt"));
                    }
            }
        }
        flds = form.getElementsByTagName('select');
        for(var i = 0; i < flds.length; i++)
        {
            fld = flds[i];
                                                                                                                                                            
            if(fld.name.match('Env') != null)
            {
                name = fld.name;
                if(check.checked)
                    if(name.match("Opt") == null) fld.name += "Opt";
                    else
                    if(name.match("Opt") != null)
                    {
                        fld.name = name.substring(0, name.indexOf("Opt"));
                    }
            }
        }
                                                                                                                                                                    
    }
                                                                                                                                                                
}
                                                                                                                                                            
function showBlock(id)
{
    var fld = document.getElementById(id);
    if(fld != null)
    {
        fld.style.display = 'block';
        fld.style.visibility = 'visible';
    }
}
                                                                                                                                                                
function hideBlock(id)
{
    var fld = document.getElementById(id);
    if(fld != null)
    {
        fld.style.display = 'none';
        fld.style.visibility = 'hidden';
    }
                                                                                                                                                                        
}
                                                                                                                                                                    
function goTo(param)
{
    document.location = 'ivs?pet='+ escape(param);
}
                                                                                                                                                                    
function validaForm(form)
{
    var esOk = true, msg;
    var fld, flds, sel, sels, tarea, tareas;
                                                                                                                                                                        
    //-- Validació inputs de text i password
    flds = form.getElementsByTagName('input');
    for(var i = 0; i < flds.length; i++ && esOk)
    {
        fld = flds[i];
        if(fld.type == 'text' || fld.type == 'pass')
        {
            if(fld.name.match("Opt") == null) //-- No es opcional
            {
                if(trim(fld.value) == "")
                {
                    esOk = false;
                    msg = 'Debe rellenar todos los campos obligatorios.';
                    fld.focus();
                    break;
                                                                                                                                                                                                        
                }
            }
        }
    }
                                                                                                                                                                                        
    //-- Validació de combos
    if(esOk)
    {
        sels = form.getElementsByTagName('select');
        if(sels != null)
        {
            for(i = 0; i < sels.length; i++ && esOk)
            {
                sel = sels[i];
                if((sel.name.match("Opt") == null) && (trim(sel.value) == ""))
                {
                    esOk = false;
                    msg = 'Debe rellenar todos los campos obligatorios.';
                    sel.focus();
                    break;
                }
            }
        }
    }
                                                                                                                                                                                                        
    //-- Validació d'areas de text
    if(esOk)
    {
        tareas = form.getElementsByTagName('textarea');
        if(tareas != null)
        {
            for(i = 0; i < tareas.length; i++ && esOk)
            {
                tarea = tareas[i];
                if((tarea.name.match("Opt") == null) && (trim(tarea.value) == ""))
                {
                    esOk = false;
                    msg = 'Debe rellenar todos los campos obligatorios.';
                    tarea.focus();
                    break;
                }
            }
        }
    }
                                                                                                                                                                                                                        
                                                                                                                                                                                                                        
    if(esOk)
    {
        //-- Character Encoding
        for(i = 0; i < flds.length; i++)
        {
            fld = flds[i];
            if(fld.type == 'text' || fld.type == 'password')
                fld.value = escape(fld.value);
        }
                                                                                                                                                                                                                                    
        for(i = 0; i < tareas.length; i++)
        {
            tarea = tareas[i];
            tarea.value = escape(tarea.value);
        }
    }
    else
    {
        alert(msg);
    }
                                                                                                                                                                                                                                        
    return esOk;
}
                                                                                                                                                                                                                                    
function validarFormSrch(form)
{
    return validaForm(form);
}
                                                                                                                                                                                                                                    
function trim(cadena)
{
    for(var i=0; i<cadena.length; i++)
    {
        if(cadena.charAt(i)==" ")
            cadena=cadena.substring(i+1, cadena.length);
        else
            break;
    }
                                                                                                                                                                                                                                            
    for(i=cadena.length-1; i>=0; i=cadena.length-1)
    {
        if(cadena.charAt(i)==" ")
            cadena=cadena.substring(0,i);
        else
            break;
    }
                                                                                                                                                                                                                                                
    return cadena;
}
                                                                                                                                                                                                                                            
function charEncode(id)
{
    var fld, item;
    fld = document.getElementById(id);
                                                                                                                                                                                                                                                
    if(fld != null)
        item = fld.value;
                                                                                                                                                                                                                                                
    if(item != null)
        fld.value = escape(item);
}
                                                                                                                                                                                                                                            
function validaConfirm(form)
{
    var esOk = false;
    var fld, flds = form.getElementsByTagName('input');
    for(var i = 0; i < flds.length; i++)
    {
        fld = flds[i];
        if(fld.type == 'radio' && fld.checked) esOk = true;
    }
                                                                                                                                                                                                                                                    
    if(esOk)
    {
        fld = document.getElementById('obs');
        if(fld != null && fld.value != "")
            fld.value = escape(fld.value);
                                                                                                                                                                                                                                                            
    }
    else
    {
        alert('Seleccione una forma de pago.');
    }
    return esOk;
}
                                                                                                                                                                                                                                                        
function changePay(fld)
{
    if(fld != null)
    {
        document.location = "ivs?pet=modpay&id=" + escape(fld.value);
    }
}
                                                                                                                                                                                                                                                            
function sendForm(id)
{
    var form = document.getElementById(id);
    if(form != null)
        setTimeout("document."+form+".submit()" , 5000);
//setTimeout("alert('"+form.name+"')" , 5000); 
}
                                                                                                                                                                                                                                                            
function search(idForm)
{
    var item;
    var form = document.getElementById(idForm);
    if(idForm != null)
    {
        item = document.getElementById('item');
        if(item != null)
        {
            if(trim(item.value) != '')
            {
                item.value = escape(item.value);
                form.submit();
            }
            else
            {
                alert('Introduzca la palabra clave para buscar.');
            }
                                                                                                                                                                                                                                                                                        
        }
                                                                                                                                                                                                                                                                                    
    }
                                                                                                                                                                                                                                                                                
    return false;
                                                                                                                                                                                                                                                                                
}
                                                                                                                                                                                                                                                                            
function validaFormUser(form, idPass, idRepass)
{
    var fldPass, fldRepass, esOk;
                                                                                                                                                                                                                                                                                
    esOk = validaForm(form);
    if(esOk)
    {
        fldPass = document.getElementById(idPass);
        fldRepass = document.getElementById(idRepass);
                                                                                                                                                                                                                                                                                        
        if(fldPass != null && fldRepass != null)
            esOk = validatePswrd(fldPass, fldRepass);
        else
            esOk = false;
    }
                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                    
    return esOk
}
                                                                                                                                                                                                                                                                                
function showNumOrder(idInput)
{
    var fld;
                                                                                                                                                                                                                                                                                    
    //showBlock(idLayer);
    fld = document.getElementById(idInput);
    if(fld != null && fld.name.match("Opt") != null)
    {
        fld.name = fld.name.substring(0, fld.name.indexOf("Opt"));
        fld.readOnly = false;
                                                                                                                                                                                                                                                                                            
    }
}
                                                                                                                                                                                                                                                                                    
function hideNumOrder(idInput)
{
    var div, fld;
    //hideBlock(idLayer);
                                                                                                                                                                                                                                                                                        
    fld = document.getElementById(idInput);
    if(fld != null && fld.name.match("Opt") == null)
    {
        fld.value = "";
        fld.name += "Opt";
        fld.readOnly = true;
    }
}
                                                                                                                                                                                                                                                                                        
function contactNumOrder(sel, idInput)
{
    var opt = sel.options[sel.selectedIndex];
    if(opt != null)
    {
        if(opt.value == "10")
        {
            showNumOrder(idInput);
        }
        else
        {
            hideNumOrder(idInput);
        }
    }
}
                                                                                                                                                                                                                                                                                                    
function changePass(form)
{
    if(form.pass.length > 4)
        return validatePswrd(form.pass, form.repass);
    else
    {
        alert('Debe introducir un minimo de 5 numeros y/o letras');
        return false;
    }
}
                                                                                                                                                                                                                                                                                                        
function blindUpDown(id)
{
    var container = document.getElementById(id);
    if(container.style.display == "none")
    {
        Effect.BlindDown(id);
    }
    else
    {
        Effect.BlindUp(id);
    }
                                                                                                                                                                                                                                                                                                                    
//return false;
}

function closeDiv(id)
{
    var div = document.getElementById(id);
    if(div != null)
    {
        div.style.visibility = 'hidden';
    }
}

function onLoadTPV(idForm)
{
    setTimeout ( "submitFormTPV('" + idForm + "')" , 0000);
}

function onLoadPayPal(idForm)
{
    setTimeout ( "submitFormPayPal('" + idForm + "')" , 0000);
}

function submitFormTPV(idForm)
{
    var form = document.getElementById(idForm);
    if(form != null && validaFormTPV(form))
    {
        form.submit();
    }
}

function submitFormPayPal(idForm)
{
    var form = document.getElementById(idForm);
    if(form != null && validaFormPayPal(form))
    {
        form.submit();
    }
}

function validaFormPayPal(form)
{
    var esOk = true, msg;
    var fld, flds;
    //-- Validació inputs de text i password
    flds = form.getElementsByTagName('input');
    for(var i = 0; i < flds.length; i++ && esOk)
    {
        fld = flds[i];
        if(fld.type == 'hidden')
        {
            if(trim(fld.value) == "")
            {
                esOk = false;
                break;
            }
        }

        if(fld.name == 'handling_cart' || fld.name == 'amount')
        {
            if(fld.value.indexOf(",") > 0)
                fld.value = fld.value.replace(/,/g,".");
        }
    }
    
    return esOk;
}

function validaFormTPV(form)
{
    var esOk = true, msg;
    var fld, flds;

    //-- Validació inputs de text i password
    flds = form.getElementsByTagName('input');
    for(var i = 0; i < flds.length; i++ && esOk)
    {
        fld = flds[i];
        if(fld.type == 'hidden')
        {
            if(trim(fld.value) == "")
            {
                esOk = false;
                break;
            }
        }
    }

    if(esOk)
    {
        for(i = 0; i < flds.length; i++ && esOk)
        {
            fld = flds[i];
            if(fld.type == 'hidden' && (fld.name == 'Ds_Merchant_Titular' || fld.name == 'Ds_Merchant_MerchantName' || fld.name == 'Ds_Merchant_ProductDescription'))
            {
                fld.value = escape(fld.value);
            }
        }
    }

    return esOk;
}


function addModalProduct(idProd, idFormat, nameProd, nameFormat, pvp)
{
    /*  1. Actualitzar dades popup
     *  2. Mostrar popup
     **/

    var popup = document.getElementById('PopUp');
    if(popup != null)
    {
        document.getElementById('nomProd').innerHTML = nameProd;
        document.getElementById('formatProd').innerHTML = nameFormat;
        document.getElementById('pvp').innerHTML = pvp;
        document.getElementById('inputProd').value = idProd;
        document.getElementById('inputFormat').value = idFormat;
        document.getElementById('qtyProd').value = 1;
        showModal('PopUp', 'windowPopup', 'topPopup');
    }
}

function addProdFromPopUp()
{
    var idProd = document.getElementById('inputProd').value;
    var idFormat = document.getElementById('inputFormat').value;
    var qty = document.getElementById('qtyProd').value;
    hideModal('PopUp');
    addProd(idProd, 1, qty, idFormat);
}

function validaQty(fld)
{
    var qtyNew = fld.value;

    if(isNaN(qtyNew)|| qtyNew <= 0)
    {
        alert('Solo se admiten valores num\u00E9ricos mayores que 0.');
        fld.value = 1;
        fld.focus();
    }

    return false;
}

function showModal(divID, dragID, topID)
{
    /*window.onscroll = function ()
    {
        document.getElementById(divID).style.top = document.body.scrollTop;
    };*/

    document.getElementById(divID).style.display = "block";
    document.getElementById(divID).style.top = document.body.scrollTop;
/*new Draggable(dragID, {
        handle: topID
    });*/

}

function hideModal(divID)
{
    document.getElementById(divID).style.display = "none";
}

function printPage()
{
    if (window.print)
        window.print();
    else
        alert("Para imprimir presione Crtl+P.");

}
