function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

//var http = createRequestObject();
var blnLinksOn = true;

function sendRequest(address, responseHandler) {
	http = createRequestObject();
	http.open('get', address);
    http.onreadystatechange = responseHandler;
    http.send(null);
}

function pageHandler () {
	if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
			document.getElementById('txt_area').innerHTML = update;
			if (document.getElementById('preview_area')) {
				document.getElementById('preview_area').className = "semiTransparent";				
				if ( blnLinksOn == true ){
					switchOffLinks( 'preview_area' );
					blnLinksOn = false;
				}
			}
        }
    }
}

function backToHome () {
	document.getElementById('txt_area').innerHTML = "";	
	document.getElementById('preview_area').className = "";
	if ( blnLinksOn == false ){
		switchOnLinks( 'preview_area' );
		blnLinksOn = true;
	}
	document.getElementById('preview_area').className = "";
}

function confirmDelete ( strURL, customMessage ) {
	if ( !customMessage ){
		customMessage = 'Are you sure you want to delete this item? This action cannot be undone.';
	}
	if ( confirm( customMessage )){
		document.location.href = strURL;
	}
}

function switchOffLinks ( stringObject ) {
	objElement = document.getElementById( stringObject );
	objElement.innerHTML = objElement.innerHTML.replace(/href/g, '_href');
}

function switchOnLinks ( stringObject ) {
	objElement = document.getElementById( stringObject );
	objElement.innerHTML = objElement.innerHTML.replace(/_href/g, 'href');
}

/**
* @var intImage - This is the position on the page - not idImage!!
**/
function addToBasket( intImage ) {
	idImage = document.getElementById( 'img_'+intImage ).name;
	clearTimeout();
	document.getElementById('basketMessage').innerHTML = 'Adding...';
	sendRequest( 'ajax/addToBasket.php?idImage='+idImage, updateBasket );
}

function updateBasket(){
	if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
			document.getElementById('basketCount').innerHTML = update[0];
			document.getElementById('basketMessage').innerHTML = update[1];
			var objTimeout = setTimeout( "document.getElementById('basketMessage').innerHTML=''", 5000 );
        }
    }
}

function removeFromBasket( idImage, intType ) {
	document.getElementById( 'img_' + idImage ).style.display = 'none';
	intCount = document.getElementById('basketCount').innerHTML;
	/*alert (strCount); 	
	intCount = strCount.parseInt();
	alert (intCount); */
	document.getElementById('basketCount').innerHTML = (intCount-1);
	sendRequest( 'ajax/removeFromBasket.php?idImage='+idImage+'&intType='+intType, doNothing );
}

function doNothing(){}

function getSearchCategories(){
//	document.getElementById('step3').style.display = 'block';
//	document.getElementById('categories').innerHTML = '<p>Loading...</p>';
	str1 ='';
	str2 ='';
	if ( document.getElementById('boys').checked ){ str1 += "'boys'," }
	if ( document.getElementById('girls').checked ){ str1 += "'girls'," }
	if ( document.getElementById('mens').checked ){ str1 += "'mens'," }
	if ( document.getElementById('ladies').checked ){ str1 += "'womens'," }
	if ( document.getElementById('ss').checked ){ str2 += "'Spring Summer'," }
	if ( document.getElementById('aw').checked ){ str2 += "'Fall Winter'," }
//	alert( 'ajax/searchOptions.php?s='+ str1 +'&s2='+ str2 +'' );
	if (( document.getElementById('boys').checked || document.getElementById('girls').checked || document.getElementById('mens').checked || document.getElementById('ladies').checked ) && ( document.getElementById('ss').checked || document.getElementById('aw').checked )){
		disableLayer( "step3" );
		document.getElementById("step3Loading").style.display="block";
		sendRequest( 'ajax/searchOptions.php?s='+ str1 +'&s2='+ str2 +'', updateCategories );
	}
}

function updateCategories(){
	if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
//alert(response);
			if ( response ){
//			document.getElementById('step3p').innerHTML = response;
	        	d = response.split(',');	        	
	        	for(i=0;i<d.length;i++){
	//        		alert(d[i]);
					if ( document.getElementById('li_' + d[i])){
						document.getElementById('li_' + d[i]).style.color = '#000';
						document.getElementById(d[i]).disabled = false;
					}
				}
				document.getElementById("step3Loading").style.display="none";
				enableLayer('step3p');
			} else {
				document.getElementById("step3Loading").style.display="none";
			}
        }
    }
}

//CHECKOUT
function validate ( images ) {
	arrElements = getElementsByClassName ( 'span', 'errorClass')
	for(i=0;i<arrElements.length;i++){
		arrElements[i].style.display = 'none';
	}
	blnReturn = true;
	mNv=document.forms[1].strName.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorName").style.display="block";
	}
	mNv=document.forms[1].strCompany.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorCompany").style.display="block";
	}
	mNv=document.forms[1].strAddress.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorAddress").style.display="block";
	}
	mNv=document.forms[1].strTown.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorTown").style.display="block";
	}
	mNv=document.forms[1].strPostcode.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorPostcode").style.display="block";
	}
	mNv=document.forms[1].strCountry.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorCountry").style.display="block";
	}
	mNv=document.forms[1].strPhone.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorPhone").style.display="block";
	}
	mNv=document.forms[1].strEmail.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorEmail").style.display="block";
	}
	mNv=document.forms[1].idMethod.value;
	if (mNv=='') {
		blnReturn=false;
		document.getElementById("errorMethod").style.display="block";
	}
	
	//Check all images are selected
	/*var arrImage = images.split("|");
	for(i = 0; i < arrImage.length; i++){
		if (arrImage[i] != '') {
			mNv = document.getElementById("arrImage[" + arrImage[i] + "][size]").value;
			if (mNv == '') {
				blnReturn=false;
				document.getElementById("errorImages").style.display="block";
				break;
			}
		}
	}*/
	if (blnReturn==false) {
//		alert('Please complete all fields.');
	}
	return blnReturn;
}


//LOGIN
function validateLogin ( form ) {
	chosen = ""
	len = document.loginForm.requestPass.length
	
	for (i = 0; i <len; i++) {
		if (document.loginForm.requestPass[i].checked) {
			chosen = document.loginForm.requestPass[i].value
		}
	}
	if (chosen == "yes" || chosen == "no") {
		arrElements = getElementsByClassName ( 'span', 'errorClass')
		for(i=0;i<arrElements.length;i++){
			arrElements[i].style.display = 'none';
		}
		blnReturn = true;
		mNv=form.strName.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorName").style.display="block";
		}
		mNv=form.strCompany.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorCompany").style.display="block";
		}
		mNv=form.strPhone.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorPhone").style.display="block";
		}
		mNv=form.strEmail1.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorEmail1").style.display="block";
		}
		mNv=form.strEmail2.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorEmail2").style.display="block";
		}
		mNv=form.strPassword1.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorPassword1").style.display="block";
		}
		mNv=form.strPassword2.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorPassword2").style.display="block";
		}
		
		//Email check 
		mNv1=form.strEmail1.value;
		mNv2=form.strEmail2.value;
		if (mNv1 != mNv2) {
			blnReturn=false;
			document.getElementById("errorEmailMismatch1").style.display="block";
			document.getElementById("errorEmailMismatch2").style.display="block";
			document.getElementById("errorEmail1").style.display="none";
			document.getElementById("errorEmail2").style.display="none";
		}
		//Password check
		mNv1=form.strPassword1.value;
		mNv2=form.strPassword2.value;
		if (mNv1 != mNv2) {
			blnReturn=false;
			document.getElementById("errorPasswordMismatch1").style.display="block";
			document.getElementById("errorPasswordMismatch2").style.display="block";
			document.getElementById("errorPassword1").style.display="none";
			document.getElementById("errorPassword2").style.display="none";
		}
		
		
		//Terms check
		mNv=form.blnAgree.checked;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorTerms").style.display="block";
		}
	
	
		if (chosen == "no") {
			mNv=form.strAddress.value;
			if (mNv=='') {
				blnReturn=false;
				document.getElementById("errorAddress").style.display="block";
			}
			mNv=form.strCity.value;
			if (mNv=='') {
				blnReturn=false;
				document.getElementById("errorCity").style.display="block";
			}
			mNv=form.strZip.value;
			if (mNv=='') {
				blnReturn=false;
				document.getElementById("errorZip").style.display="block";
			}
			mNv=form.strCountry.value;
			if (mNv=='') {
				blnReturn=false;
				document.getElementById("errorCountry").style.display="block";
			}
			
			//Areas you cover check
			chk1=form.blnAreas_boys.checked;
			chk2=form.blnAreas_girls.checked;
			chk3=form.blnAreas_mens.checked;
			chk4=form.blnAreas_womens.checked;
			chk5=form.blnAreas_swim.checked;
			chk6=form.blnAreas_home.checked;
			chk7=form.blnAreas_wovens.checked;
			if ((chk1!=true)&&(chk2!=true)&&(chk3!=true)&&(chk4!=true)&&(chk5!=true)&&(chk6!=true)&&(chk7!=true)) {
				blnReturn=false;
				document.getElementById("errorAreas").style.display="block";
			}
			//Do you buy designs check
			option = ""
			for (i = 0; i <2; i++) {
				if (document.loginForm.strBuy[i].checked) {
					option = document.loginForm.strBuy[i].value
				}
			}
			if (option != "yes" && option != "no") {
				blnReturn=false;
				document.getElementById("errorBuy").style.display="block";
			}
			
		}
		
		if (blnReturn==false) {
			//alert('Please complete all fields.');
		}
	} else {
		mNv=form.strEmail.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorEmail").style.display="block";
		}
		mNv=form.strPassword.value;
		if (mNv=='') {
			blnReturn=false;
			document.getElementById("errorPassword").style.display="block";
		}
	}
	return blnReturn;
}