/*
focusSearch() clears search field when clicked on (if no other value has been entered)
blurSearch() repopulates the search field with original text if blank on blur
*/
function focusSearch(el,getText)
{
	if (el.value == getText)
	{
		el.value = '';
	}
}

function blurSearch(el,getText)
{
	if (el.value == '')
	{
		el.value = getText;
	}
}

/*
changeGender() changes colours on site and gets relevant categories depending on sex chosen
*/
function changeGender(getGender)
{
	newUrl = "ajax/gender.php?sex=";
	
	if (getGender == 'male')
	{
		el = document.getElementById('female');
		el.id = 'male';
		newUrl = newUrl + "m";
		sendRequest(newUrl,genderResponse);
	}
	else
	{
		el = document.getElementById('male');
		el.id = 'female';
		newUrl = newUrl + "f";
		sendRequest(newUrl,genderResponse);
	}
}

/*
genderResponse() returns main search categories based on gender
*/
function genderResponse()
{
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
	{
		categoriesDiv = document.getElementById('mainCategories');
		categoriesDiv.innerHTML = xmlHttp.responseText;
	}
}

/*
checkLogin() checks validity of login fields before submitting
*/
var xmlHttp;

function checkLogin()
{
	var getEmail = document.signInForm.signInEmail.value;
	var getPassword = document.signInForm.signInPassword.value;
	emailErr = document.getElementById('emailError');
	passwordErr = document.getElementById('passwordError');
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var err = 0;
	
	if ((getEmail == "Email Address") || (getEmail == "") || (!filter.test(getEmail)))
	{
		emailErr.innerHTML = "Please check your email address";
		document.signInForm.signInEmail.className = "fieldError";
		emailErr.className = "errorIcon";
		err = 1;
	}
	else
	{
		emailErr.innerHTML = "";
		document.signInForm.signInEmail.className = "";
		emailErr.className = "";
	}
	
	if (getPassword.length < 6)
	{
		passwordErr.innerHTML = "Your password must contain at least 6 characters";
		document.signInForm.signInPassword.className = "fieldError";
		passwordErr.className = "errorIcon";
		err = 1;
	}
	else
	{
		passwordErr.innerHTML = "";
		document.signInForm.signInPassword.className = "";
		passwordErr.className = "";
	}
	
	if (err == 0)
	{
		loginUser(getEmail,getPassword);
	}
}

/*
loginUser() sends user information to database to check identification
*/
function loginUser(userEmail,userPassword)
{
	newUrl = "ajax/login.php?email="+userEmail+"&password="+userPassword;
	sendRequest(newUrl,loginResponse);
}

/*
loginResponse() informs of any login errors and submits form on success
*/
function loginResponse() 
{ 
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
	{ 
		if (xmlHttp.responseText == "e")
		{
			emailErr.innerHTML = "The email address you entered cannot be found.  Please try again.";
			document.signInForm.signInEmail.className = "fieldError";
			emailErr.className = "errorIcon";
		}
		else if (xmlHttp.responseText == "p")
		{
			passwordErr.innerHTML = "The password you entered is incorrect.  Please try again.";
			document.signInForm.signInPassword.className = "fieldError";
			passwordErr.className = "errorIcon";
		}
		else
		{
			document.getElementById('signInForm').submit();
		}
	} 
}

/*
autoComplete() sends search info to database to find any matches
*/
function autoComplete()
{
	suggestionDiv = document.getElementById('autoCompleteChoices');
	searchField = document.getElementById('searcher');
	getSearchVal = searchField.value;
	if (getSearchVal.length > 0)
	{
		newUrl = "ajax/autocomplete.php?val="+searchField.value;
		sendRequest(newUrl,autoSuggestions);
	}
	else
	{
		suggestionDiv.style.display = 'none';
	}
}

/*
autoSuggestions() returns suggestion list if any matches found
*/
function autoSuggestions()
{
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
	{
		suggestionDiv.innerHTML = xmlHttp.responseText;
		
		if (xmlHttp.responseText != "")
		{
			suggestionDiv.style.display = 'block';
		}
		else
		{
			suggestionDiv.style.display = 'none';
		}
	}
}

/*
fillSearch() populates search box with chosen suggestion
*/
function fillSearch(getVal,getStr)
{
	searchField.value = getVal;
	suggestionDiv.style.display = 'none';
	suggestionDiv.innerHTML = "";
	
	document.getElementById('searchForm').action = "shop_now.php?"+getStr;
}

/*
PopupWin(pagefile,winname,w,h,scroller)
*/
function PopupWin(pagefile,winname,w,h,scroller)
{ 
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+'resizable=0,scrollbars='+scroller;
	window.open(pagefile,winname,winprops);
}

/*
sendRequest() sends url to relevant ajax page
*/
function sendRequest(getUrl,getResponse)
{
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url = getUrl;
	url = url + "&sid=" + Math.random();
	xmlHttp.onreadystatechange = getResponse;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

// GetXmlHttpObject() initialises new ajax object
function GetXmlHttpObject()
{
	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;
}

barIsOpen = 0;

// vendorsActive() deactivates buyers button and activates vendors button
function vendorsActive()
{
	buyersSpan = document.getElementById('buyersSpan');
	buyersSpan.style.background = "url('images/buttons/buyers.gif') no-repeat top left";
	
	vendorsSpan = document.getElementById('vendorsSpan');
	vendorsSpan.style.background = "url('images/buttons/vendors.gif') no-repeat bottom left";
	
	if (barIsOpen == 1)
	{
		buyersBar = document.getElementById('buyersBar');
		buyersBar.style.display = "none";
		
		vendorsBar = document.getElementById('vendorsBar');
		vendorsBar.style.display = "block";
		
		buyersButt = document.getElementById('buyersButt');
		buyersButt.onclick = "";
		buyersButt.href = "javascript:buyersActive();";
	}
	
	barIsOpen = 1;
}

// buyersActive() deactivates vendors button and activates buyers button
function buyersActive()
{
	buyersSpan = document.getElementById('buyersSpan');
	buyersSpan.style.background = "url('images/buttons/buyers.gif') no-repeat bottom left";
	
	vendorsSpan = document.getElementById('vendorsSpan');
	vendorsSpan.style.background = "url('images/buttons/vendors.gif') no-repeat top left";
	
	if (barIsOpen == 1)
	{
		vendorsBar = document.getElementById('vendorsBar');
		vendorsBar.style.display = "none";
		
		buyersBar = document.getElementById('buyersBar');
		buyersBar.style.display = "block";
		
		vendorsButt = document.getElementById('vendorsButt');
		vendorsButt.onclick = "";
		vendorsButt.href = "javascript:vendorsActive();";
	}
	
	barIsOpen = 1;
}

// advancedSearch() sends the following params to shop: sub_cat,brand,size,price limit
function advancedSearch()
{
	getCat = document.getElementById('searchCat');
	selCat = getCat.selectedIndex;
	valCat = getCat.options[selCat].value;
	arrCat = valCat.split(",");
	getMain = arrCat[0];
	getSub = arrCat[1];
	
	getBrand = document.getElementById('searchBrand');
	selBrand = getBrand.selectedIndex;
	valBrand = getBrand.options[selBrand].value;
	
	getSize = document.getElementById('searchSize');
	selSize = getSize.selectedIndex;
	valSize = getSize.options[selSize].value;
	
	getPrice = document.getElementById('searchPrice');
	selPrice = getPrice.selectedIndex;
	valPrice = getPrice.options[selPrice].value;
	
	getUrl = "shop_now.php?sex=female&main="+getMain+"&sub="+getSub+"&brand="+valBrand+"&size="+valSize+"&price="+valPrice+"&page=1&per=8";
	document.location = getUrl;
}

// Safely make email
function makeEmail(getName,getDomain)
{
	str = "<a href=\"mailto:"+getName+"@"+getDomain+"\">"+getName+"@"+getDomain+"</a>";
	document.write(str);
}