/*  Functions.js 
*   Need -> prototype
*/

/**
*   showDetails: Mostra els detalls d'un llistat de productes
*/

function showDetails(id)
{

    $('details-'+id).style.display='block';
    $('show-'+id).style.display='none';
    $('hide-'+id).style.display='block';
}


/**
*   hideDetails: Amaga els detalls d'un llistat de productes
*/
function hideDetails(id)
{
    $('details-'+id).style.display='none';
    $('show-'+id).style.display='block';
    $('hide-'+id).style.display='none';
}

/**
*	Muestra la parte interna del formulario de confirmar datos
*   y oculta el los datos de compra	
*/
function showSendAddress()
{

	$('wrap-form').style.display='block';
	$('title-result-lottery').style.display='none';
	$('link-wrap-form').style.display='none';
	$('wrap-lottery').style.display='none';
	$('wrap-address').style.display='block';
	$('wrap-expenses').style.display='none';
	
}
/**
*	Realiza los cambios contrarios en showSendAddress:
*	Muestra los datos de compra y oculta el formulario
*	de confirmar datos	
*/
function returnBuyCart()
{
	$('wrap-form').style.display='none';
	$('title-result-lottery').style.display='block';
	$('link-wrap-form').style.display='block';
	$('wrap-lottery').style.display='block';
	
	$('wrap-address').style.display='none';
	$('wrap-expenses').style.display='block';

}

/**
*	Aņade / quita los gastos de envio
*/
function toggleExpenses()
{
	gastos=$('expenses').checked;
	if (gastos)
	{
		$('cart-expenses').innerHTML=$('expensesValue').value+' &euro;';
		$('cart-total-price').innerHTML=$('totalPriceValue').value+' &euro;';
		$('expensesFinalValue').value = $('expensesValue').value;
		
		$('link-wrap-send').style.display='block';
		$('link-wrap-confirm').style.display='none';
	} 
	else 
	{
		$('cart-expenses').innerHTML='0 &euro;';
		$('expensesFinalValue').value = '0'; 
		totalPrice=parseInt($('totalPriceValue').value);
		expensesPrice=parseInt($('expensesValue').value);
		totalPrice-=expensesPrice;
		$('cart-total-price').innerHTML=totalPrice+' &euro;';
		
		$('link-wrap-send').style.display='none';
		$('link-wrap-confirm').style.display='block';
	}
}

/** 
*  Valida el formulari de edit.cart
*/

function checkFormEditCart() 
{
	var name=validateField('name','error_name');
	var address=validateField('street','error_address');
    var village=validateField('village','error_village');
    
    if (name!=false) name=true;
    if (address!=false) address=true;
    if (village!=false) village=true;
    
    if (name && address && village)
    {
        $('send_address').submit();
    } else 
    {
        $('messageError').style.display='block';
    }              
}

/**
*   Valida el formulari de contacte
*/

function checkFormContact() 
{

	var name=validateField('name','error_name');
	var email=validateField('email','error_email');
    var message=validateField('message','error_message');
    
    if (name!=false) name=true;
    if (email!=false) email=true;
    if (message!=false) message=true;
    
    if (name && email && message)
    {
        $('contact').submit();
    } else 
    {
        $('messageError').style.display='block';
    }              
}

function checkFormEditClient() 
{

	var name=validateField('name','error_name');
	var surname=validateField('surname','error_surname');
	var email=validateEmail('email','error_email');
	var password=validatePasswords('password','password2','error_password','error_password_2');

    if (name!=false) name=true;
    if (surname!=false) surname=true;
    if (email!=false) email=true;
    if (password!=false) password=true;
    
    if (name && surname && email && password)
    {
        $('edit_client').submit();
    } else 
    {
        $('messageError').style.display='block';
    }              
}

function checkFormEditPassword(){

	var email=validateEmail('email','error_email');

    if (email!=false) email=true;
    
    if (email)
    {
        $('edit_client').submit();
    } else 
    {
        $('error_email').style.display='block';
        $('error_email_noexists').style.display='none';
    }             
}



function checkFormLogin() 
{

	$('noexists').style.display='none';

	var email=validateEmail('email','error_email');
	var password=validateField('password','error_password');

    if (email!=false) email=true;
    if (password!=false) password=true;
    
    if (email && password)
    {
        $('form_identify').submit();
    } else 
    {
        $('messageError').style.display='block';
    }              
}


/*
*  Validation Generic Functions
*/

function validateField(id,msg)
{
    field = $(id);
    if(!check_field(field.value))
    {
        
        $(msg).show(); // mostrem missatge de error
        
        field.addClassName("alertfield");
        field.focus();
        
        return false;
    }
    else 
    {
    	$(msg).hide();
    	field.removeClassName("alertfield");
    	return true;
    }
}

function validateEmail(id,msg)
{
    field = $(id);
    if(!check_email(field.value))
    {
        $(msg).show();
        
        field.addClassName("alertfield");
        field.focus(); 
        
        return false;
    }
    else 
    {
    	$(msg).hide();
    	field.removeClassName("alertfield");
        return true;
    }
}

function validatePasswords(id1, id2,msg1, msg2)
{
    field1 = $(id1);
    field2 = $(id2);
    
    
    if (!validateField(id1,msg1))
    {
    	return false;
    } 
    	else if(!validateField(id2,msg2))
    {	
    	return false;
    } else if(field1.value!=field2.value)
    {
    	
    	field1.addClassName("alertfield");
    	field2.addClassName("alertfield");
        field1.focus();
    	$(msg2).show();
    	return false;
    }
    else 
    {
    	$(msg1).hide();
    	$(msg2).hide();
    	field1.removeClassName("alertfield");
    	field2.removeClassName("alertfield");
    	return true;
    } 
    
}

function validateCheckboxs(id,msg)
{
	var fields = $$('#groups .left-chk');
	
	var checked=false;
	
	for(var i=0;i<fields.length;i++)
	{
		if (fields[i].checked==true)
		{
			checked=true;
		}
	}
	
	if (checked==true)
	{
		$(msg).hide();
	} 
	else
	{
		$(msg).show();
	}
	return checked;    
  
}

function check_field (f)
{
    var field = trim(f);
    if (field.length == 0) {
        return false;
    }
    else {
        return true;
    }
}

function check_email (emailAddress) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    return re.test(emailAddress);
}

function validateTextarea(id,msgArea,msg,alertText,isError)
{
    field = document.getElementById(id);
    if(!check_texta(field.value)){
    showMsg(msgArea, msg, alertText,isError);
    // change the color of text field
    field.style.borderColor = "red";
    field.focus();
    // make sure the form is not submitted
    return false;
    }
    else {
        return true;
    }
}

function check_texta(f)
{
    if (f) {
        var field = trim(f);
        if (field.length == 0) {
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
}

function changeElementText (node,text) 
{
    while (node.hasChildNodes()) {
        node.removeChild(node.lastChild);
    }
    var textNode = document.createTextNode(text);
    node.appendChild(textNode );
}

function isDOMCompliant ()
{
        return (document.getElementsByTagName && document.createElement);
}

function trim(str)
{
    return str.replace(/^\s*|\s*$/g,"");
}
