function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function changeTo(idul,what)
{
	document.getElementById('productDesc1').style.display = 'none';
	document.getElementById('productDesc2').style.display = 'none';
	document.getElementById(idul).style.display = 'block';
	
	var lis = document.getElementById('productDesc0').getElementsByTagName('li').length;
	for (var i=0;i<lis;i++)
	{
		document.getElementById('productDesc0').getElementsByTagName('li')[i].removeAttribute('id');
	}
	what.parentNode.id = 'active';
	return false;
}

function changeColorTo(color)
{
	document.getElementById('productImage').src = 'img/products/'+color+'.jpg';
	document.getElementById('tooltip_img').innerHTML = '<img src="img/products/'+color+'b.jpg" alt="" />';
}

function validateContact(formbox)
{
	var message = '';
	// email validation
	if (formbox.Email.value == '' || !isemail(formbox.Email.value))
		message += 'You must enter a valid email address. ';
	
	// full name validation
	if (trim(formbox.Name.value) == '')
		message += 'Please write your full name. ';
	
	// subject validation
	if (trim(formbox.Subject.value) == '')
	{
		message += 'Please write a subject. ';
	}
	
	// message validation
	if (trim(formbox.Message.value) == '')
	{
		message += 'Please write a message. ';
	}
	
	if (message != '')
	{
		document.getElementById('message').style.display = 'block';
		document.getElementById('message').innerHTML = 'Please fix the following errors: <br />'+message;
		return false;
	}
	else
		return true;
}

function validateRegister(formbox)
{
	var message = '';
	// email validation
	if (formbox.Email.value == '' || !isemail(formbox.Email.value))
	{
		document.getElementById('Email').className = 'notok';
		message += 'You must enter a valid email address. ';
	}
	else
		document.getElementById('Email').className = 'ok';
	
	// password validation
	if (trim(formbox.Password.value).length < 5)
	{
		document.getElementById('Password').className = 'notok';
		message += 'Your password must be <b>at least 5 characters</b> long. ';
	}
	else
		document.getElementById('Password').className = 'ok';	
	
	// password 2 validation
	if (trim(formbox.Password2.value).length == 0 || trim(formbox.Password2.value) != trim(formbox.Password.value))
	{
		document.getElementById('Password2').className = 'notok';
		message += 'Both password fields should contain the same password. ';
	}
	else
		document.getElementById('Password2').className = 'ok';	
	
	// shipping
	// first name validation
	if (trim(formbox.SFirstName.value) == '')
	{
		document.getElementById('SFirstName').className = 'notok';
		message += 'Please write your shipping first name. ';
	}
	else
		document.getElementById('SFirstName').className = 'ok';	
	
	// last name validation
	if (trim(formbox.SLastName.value) == '')
	{
		document.getElementById('SLastName').className = 'notok';
		message += 'Please write your shipping last name. ';
	}
	else
		document.getElementById('SLastName').className = 'ok';
	
	// address validation
	if (trim(formbox.SAddress.value) == '')
	{
		document.getElementById('SAddress').className = 'notok';
		message += 'Please write your full shipping address. ';
	}
	else
		document.getElementById('SAddress').className = 'ok';
	
	// city	validation
	if (trim(formbox.SCity.value) == '')
	{
		document.getElementById('SCity').className = 'notok';
		message += 'Please write your shipping city name. ';
	}
	else
		document.getElementById('SCity').className = 'ok';
	
	// zip validation
	if (trim(formbox.SZip.value) == '')
	{
		document.getElementById('SZip').className = 'notok';
		message += 'Please write your shipping zip code. ';
	}
	else
		document.getElementById('SZip').className = 'ok';
	
	// billing
	// first name validation
	if (trim(formbox.BFirstName.value) == '')
	{
		document.getElementById('BFirstName').className = 'notok';
		message += 'Please write your billing first name. ';
	}
	else
		document.getElementById('BFirstName').className = 'ok';	
	
	// last name validation
	if (trim(formbox.BLastName.value) == '')
	{
		document.getElementById('BLastName').className = 'notok';
		message += 'Please write your billing last name. ';
	}
	else
		document.getElementById('BLastName').className = 'ok';
	
	// address validation
	if (trim(formbox.BAddress.value) == '')
	{
		document.getElementById('BAddress').className = 'notok';
		message += 'Please write your full billing address. ';
	}
	else
		document.getElementById('BAddress').className = 'ok';
	
	// city	validation
	if (trim(formbox.BCity.value) == '')
	{
		document.getElementById('BCity').className = 'notok';
		message += 'Please write your billing city name. ';
	}
	else
		document.getElementById('BCity').className = 'ok';
	
	// zip validation
	if (trim(formbox.BZip.value) == '')
	{
		document.getElementById('BZip').className = 'notok';
		message += 'Please write your billing zip code. ';
	}
	else
		document.getElementById('BZip').className = 'ok';
	
	if (message != '')
	{
		document.getElementById('message').style.display = 'block';
		document.getElementById('message').innerHTML = 'Please fix the following errors: <br />'+message;
		return false;
	}
	else
		return true;
}

function validateSend(formbox)
{
	var message = '';
	
	// shipping
	// first name validation
	if (trim(formbox.SFirstName.value) == '')
	{
		document.getElementById('SFirstName').className = 'notok';
		message += 'Please write your shipping first name. ';
	}
	else
		document.getElementById('SFirstName').className = 'ok';	
	
	// last name validation
	if (trim(formbox.SLastName.value) == '')
	{
		document.getElementById('SLastName').className = 'notok';
		message += 'Please write your shipping last name. ';
	}
	else
		document.getElementById('SLastName').className = 'ok';
	
	// address validation
	if (trim(formbox.SAddress.value) == '')
	{
		document.getElementById('SAddress').className = 'notok';
		message += 'Please write your full shipping address. ';
	}
	else
		document.getElementById('SAddress').className = 'ok';
	
	// city	validation
	if (trim(formbox.SCity.value) == '')
	{
		document.getElementById('SCity').className = 'notok';
		message += 'Please write your shipping city name. ';
	}
	else
		document.getElementById('SCity').className = 'ok';
	
	// zip validation
	if (trim(formbox.SZip.value) == '')
	{
		document.getElementById('SZip').className = 'notok';
		message += 'Please write your shipping zip code. ';
	}
	else
		document.getElementById('SZip').className = 'ok';
	
	// billing
	// first name validation
	if (trim(formbox.BFirstName.value) == '')
	{
		document.getElementById('BFirstName').className = 'notok';
		message += 'Please write your billing first name. ';
	}
	else
		document.getElementById('BFirstName').className = 'ok';	
	
	// last name validation
	if (trim(formbox.BLastName.value) == '')
	{
		document.getElementById('BLastName').className = 'notok';
		message += 'Please write your billing last name. ';
	}
	else
		document.getElementById('BLastName').className = 'ok';
	
	// address validation
	if (trim(formbox.BAddress.value) == '')
	{
		document.getElementById('BAddress').className = 'notok';
		message += 'Please write your full billing address. ';
	}
	else
		document.getElementById('BAddress').className = 'ok';
	
	// city	validation
	if (trim(formbox.BCity.value) == '')
	{
		document.getElementById('BCity').className = 'notok';
		message += 'Please write your billing city name. ';
	}
	else
		document.getElementById('BCity').className = 'ok';
	
	// zip validation
	if (trim(formbox.BZip.value) == '')
	{
		document.getElementById('BZip').className = 'notok';
		message += 'Please write your billing zip code. ';
	}
	else
		document.getElementById('BZip').className = 'ok';
	
	if (message != '')
	{
		document.getElementById('message').style.display = 'block';
		document.getElementById('message').innerHTML = 'Please fix the following errors: <br />'+message;
		return false;
	}
	else
		return true;
}

function validateEmail(formbox)
{
	var message = '';
	// email validation
	if (formbox.Email.value == '' || !isemail(formbox.Email.value))
	{
		document.getElementById('Email').className = 'notok';
		message += 'You must enter a valid email address. ';
	}
	else
		document.getElementById('Email').className = 'ok';
		
	if (message != '')
	{
		document.getElementById('message').style.display = 'block';
		document.getElementById('message').innerHTML = 'Please fix the following errors: <br />'+message;
		return false;
	}
	else
		return true;
}

function validatePassword(formbox)
{
	var message = '';
	// password validation
	if (trim(formbox.Password.value).length < 5)
	{
		document.getElementById('Password').className = 'notok';
		message += 'Your password must be <b>at least 5 characters</b> long. ';
	}
	else
		document.getElementById('Password').className = 'ok';	
		
	if (message != '')
	{
		document.getElementById('message').style.display = 'block';
		document.getElementById('message').innerHTML = 'Please fix the following errors: <br />'+message;
		return false;
	}
	else
		return true;
}

function validateShipping(formbox)
{
	var message = '';

	// first name validation
	if (trim(formbox.FirstName.value) == '')
	{
		document.getElementById('FirstName').className = 'notok';
		message += 'Please write your first name. ';
	}
	else
		document.getElementById('FirstName').className = 'ok';	
	
	// last name validation
	if (trim(formbox.LastName.value) == '')
	{
		document.getElementById('LastName').className = 'notok';
		message += 'Please write your last name. ';
	}
	else
		document.getElementById('LastName').className = 'ok';
	
	// address validation
	if (trim(formbox.Address.value) == '')
	{
		document.getElementById('Address').className = 'notok';
		message += 'Please write your full address. ';
	}
	else
		document.getElementById('Address').className = 'ok';
	
	// city	validation
	if (trim(formbox.City.value) == '')
	{
		document.getElementById('City').className = 'notok';
		message += 'Please write your city name. ';
	}
	else
		document.getElementById('City').className = 'ok';
	
	// zip validation
	if (trim(formbox.Zip.value) == '')
	{
		document.getElementById('Zip').className = 'notok';
		message += 'Please write your zip code. ';
	}
	else
		document.getElementById('Zip').className = 'ok';
	
	if (message != '')
	{
		document.getElementById('message').style.display = 'block';
		document.getElementById('message').innerHTML = 'Please fix the following errors: <br />'+message;
		return false;
	}
	else
		return true;
}

function validateReview(formbox)
{
	var message = '';
	// review validation
	if (trim(formbox.Review.value).length < 30)
	{
		document.getElementById('Review').className = 'notok';
		message += 'For a review to be published, you need to write at least 30 characters. You wrote '+trim(formbox.Review.value).length+' characters so far.';
	}
	else
		document.getElementById('Review').className = 'ok';
		
	if (message != '')
	{
		document.getElementById('message').style.display = 'block';
		document.getElementById('message').innerHTML = 'Please fix the following errors: <br />'+message;
		return false;
	}
	else
		return true;
}

function isemail(str) {
	if(str == ""){
		return false;
	}
	else{
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		return (filter.test(str) ? true : false);
	}
}

function number_format(a, b, c, d)
{
	// number_format(number, decimals, comma, formatSeparator)
	a = Math.ceil(a * Math.pow(10, b)) / Math.pow(10, b);
	e = a + '';
	f = e.split('.');
	if(!f[0]) f[0] = '0';
	if(!f[1]) f[1] = '';
	if(f[1].length < b){
		g = f[1];
		for(i = f[1].length + 1; i <= b; i++) {
			g += '0';
		}
		f[1] = g;
	}
	if(d != '' && f[0].length > 3) {
		h = f[0];
		f[0] = '';
		for(j = 3; j < h.length; j += 3) {
			i = h.slice(h.length - j, h.length - j + 3);
			f[0] = d + i +  f[0] + '';
		}
		j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
		f[0] = j + f[0];
	}
	c = (b <= 0) ? '': c;
	return f[0] + c + f[1];
}

function format_price(nr) {
	return number_format(nr,2,'.',' ');
}

var xmlHttp

function send_post(parameters,basehref)
{     
    xmlHttp=rst_get_xml_http_object();
    if (xmlHttp==null)
    {
      alert ("Browser does not support HTTP Request");
      return;
    }
    var url=basehref+"add-to-cart.html";
    url=url+"?sid="+Math.random();
    xmlHttp.onreadystatechange=rst_state_changed;
    xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(parameters);
}

function rst_state_changed()
{
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    {
		document.getElementById('id_items').innerHTML = parseInt(document.getElementById('id_items').innerHTML) + parseInt(document.getElementsByName('ProductQuantity')[0].value);
		document.getElementById('id_price').innerHTML = format_price(parseFloat(remove_spaces(document.getElementById('id_price').innerHTML)) + parseInt(document.getElementsByName('ProductQuantity')[0].value)*parseFloat(remove_spaces(document.getElementById('ourPrice').innerHTML)));
        alert('Your product has been added to your shopping cart !');
    }
}

function rst_get_xml_http_object()
{
    var xmlHttp=null;
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

function send_form_values(basehref)
{
	var str = 'empty='+encodeURI('');
	var elem = document.getElementById('productform').elements;
	for(var i = 0; i < elem.length; i++)
		str += "&"+elem[i].name + "=" + encodeURI(elem[i].value);
	send_post(str,basehref);
}

function remove_spaces(string) {
	var tstring = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
	tstring += splitstring[i];
	return tstring;
}

