var sex, first, last;

var sexer= new Array()
sexer['f'] = 'dames';
sexer['m'] = 'heren';


function clickLogin(e)
{
	if (!e) e = window.event;
	if (e.ctrlKey)
	{
		document.location = '/login';
	}
}

function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}

function $$(searchClass,node,tag) {
	var classElements = new Array();

	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');

	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function showDiv(div, show)
{
	$(div).style.display = (show?'block':'none');
}

function toggleDiv(div)
{
	$(div).style.display = ($(div).style.display=='none'?'block':'none');
}

function validate(regstr, str)
{
	if (window.RegExp)
	{
		reg = new RegExp(regstr);
		return reg.test(str);
	}
	return false;
}

/*
 * requests
 */
 
function createXHR()
{
	if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest();
	else if (window.ActiveXObject) xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
  else alert('Helaas, uw browser ondersteunt geen XMLHttpRequest objecten!');
  return xmlHttp;
}

function xhrGET(url, handler)
{
	xmlHttp = createXHR();
	
	xmlHttp.open('GET', url + '&rnd=' + Math.random(), true);
	xmlHttp.onreadystatechange = function()	{
			if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // if xmlhttp shows 'loaded' and 'OK'
			  handler(xmlHttp.responseXML);
		  }
		  if (xmlHttp.readyState == 4 && xmlHttp.status != 200)
			  alert('Er heeft zich een fout voorgedaan bij het ophalen van de pagina (xmlHttp status ' + xmlHttp.status + ')');
		};
	xmlHttp.send(null);
}

function getBrands(el, sex, first, last)
{
	this.sex = sex;
	this.first = first;
	this.last = last;
	
	try {
		$('focus_trapper').focus();
	}
	catch(e) {
	}
	if((first.length * last.length) != 1)
		return alert('Ongeldige url! length=' + first.length + ':' + last.length);
	if (sex.length != 1)
		return alert('Ongeldige url! length=' + sex.length);
	
	var ordFirst = first.toUpperCase().charCodeAt(0);
	var ordLast = last.toUpperCase().charCodeAt(0);
	
	if(!(ordFirst >= 65 && ordFirst <= 90 && ordLast >= 65 && ordLast <= 90 && ordFirst < ordLast))
		return alert('Ongeldige url!');
		
	xhrGET('/ajax-brands.php?sex=' + sex + '&first=' + first + '&last=' + last, handleBrands);
	setMenuHighLighting(el);
}

function setMenuHighLighting(el)
{
	$$('menu_item_hl', $('main_menu'), 'div')[0].className = 'menu_item';
	el.parentNode.parentNode.className = 'menu_item_hl';
}

function handleBrands(res)
{
	var brands = res.getElementsByTagName('brand');
	
	if($('sub_menu') != null)
		$('sub_menu').parentNode.removeChild($('sub_menu'));
	
	if(brands.length == 0)
		return;
		
	var subMenu = document.createElement('div');
	subMenu.id = 'sub_menu';
	insertAfter($('sub_menu_holder'), subMenu, $('sub_menu_white_space'))
		
	for(var i = 0; i < brands.length; i++)
	{
		var brand = brands[i];
		if(brand.tagName == 'brand')
		{
			if(brand.getElementsByTagName('brandId')[0].firstChild != null && brand.getElementsByTagName('brandName')[0].firstChild != null)
			{
				var item = document.createElement('div');
				item.className = 'sub_menu_item';
				var subLink = document.createElement('a');
				subLink.className = 'sub_link';
				subLink.href = '/'+sexer[sex]+'/'+first+'/'+last+'/'+brand.getElementsByTagName('brandId')[0].firstChild.data+'/'+friendlyURL(brand.getElementsByTagName('brandName')[0].firstChild.data);
				subLink.innerHTML = brand.getElementsByTagName('brandName')[0].firstChild.data;
				item.appendChild(subLink);
				
				subMenu.appendChild(item);
			}
		}
	}
}

function insertAfter(parent, node, referenceNode)
{
  parent.insertBefore(node, referenceNode.nextSibling);
}

function clickAwayEnter(inputField, defaultText)
{
	if (inputField.value == defaultText)
	{
		inputField.value = '';
		return true;
	}
	return false;
}

function clickAwayBlur(inputField, defaultText)
{
	if (inputField.value == '')
	{
		inputField.value = defaultText;
		return true;
	}
	return false;
}

function setPriceField()
{
	var price = parseFloat($('v'+parseInt($('volumeId_f0').value)).firstChild.data.replace(',','|').replace('.','').replace('|','.'));
	var amount = parseInt($('amount_f0').value) + 1;
	
	$('price').firstChild.data = (price*amount).toFixed(2).replace('.',',');
}