if(document.images){
	preloadImage = new Image();
	preloadImage.src = "/images/load.gif";
	preloadImage = new Image();
	preloadImage.src = "/images/load_white.gif";
}


var g = false;
var divid = '';
var appearAfterDiv;

function appearToggle(link, element){
	if(g == false){
		g = true;
		var pars = '';
		var linkurl=link.href;
			
		loading(1);
				
		$(element).innerHTML='';
		$(element).style.display='none';
			
		linkurl=linkurl.replace('http://', '');
		linkurl=linkurl.replace('/', '/info/');
				
		linkurl='http://'+linkurl;

		link.blur();
				
		appearAfterDiv=element;
			
		var myAjax = new Ajax.Updater(
			appearAfterDiv,
			linkurl,
				{
				method: 'get',
				parameters: pars,
				onComplete: function(t) {
					new Effect.Appear(appearAfterDiv,{queue: 'end',duration: .5, delay: .5, afterFinish: endFixer});
				}
			});
	}
}

function endFixer(){
	$(appearAfterDiv).style.display='block';
	attachToggles();
	loading(0);
	g = false;
}

function contactPost(){
	var checkThese=new Array(
		'name|My name is',
		'email|My email address is',
		'message|My message is'
	);
	
	appearAfterDiv='contactformstatus';
	
	if(g == false && checkLoop(checkThese, 'contacttheform')){
		g = true;
		
		loading(1);
		
		var url = '/processcontact/';
		var pars = Form.serialize($('contacttheform'));
	
		new Ajax.Request(
			url,
			{
			method: 'post',
			parameters: pars,
			onSuccess: function(t) {
				eval(t.responseText);
				if(status==0){
					new Effect.Fade('contactforminner');
					new Effect.Fade('check');
					$(appearAfterDiv).innerHTML='<p class="status">Thank you, we\'ll be in touch as soon as possible.</p>';
					loading(0);
					g = false;
				}else{
					$(appearAfterDiv).innerHTML='<p class="status">'+status+'</p>';
					shakeStatus('contactforminner');
					loading(0);
				}
			}
			});

		return false;
	}else{
		$(appearAfterDiv).innerHTML='<p class="status">All fields are mandatory unless stated otherwise.</p>';
		shakeStatus('contactforminner');
		return false;
	}
}

function newsletterPost(){
	var checkThese=new Array(
		'nl_name|My name is',
		'nl_email|My email address is'
	);
	
	appearAfterDiv='newsletterformstatus';
	
	if(g == false && checkLoop(checkThese, 'newslettertheform')){
		g = true;
		
		loading(1);
		
		var url = '/processnewsletter/';
		var pars = Form.serialize($('newslettertheform'));
	
		new Ajax.Request(
			url,
			{
			method: 'post',
			parameters: pars,
			onSuccess: function(t) {
				eval(t.responseText);
				if(status==0){
					new Effect.Fade('newsletterforminner');
					$(appearAfterDiv).innerHTML='<p class="status">Thanks, you\'ll receive a welcome email shortly.</p>';
					loading(0);
					g = false;
				}else{
					$(appearAfterDiv).innerHTML='<p class="status">'+status+'</p>';
					shakeStatus('newsletterforminner');
					loading(0);
				}
			}
			});

		return false;
	}else{
		$(appearAfterDiv).innerHTML='<p class="status">All fields are mandatory.</p>';
		shakeStatus('newsletterforminner');
		return false;
	}
}

function shakeStatus(divid){
	new Effect.Shake(divid, 40);
	g = false;
}

function loading(action){
	if(action==1){
		$('bag').className='dropzone';
		loadingC='<img src="/images/load.gif" width="25" height="25" alt="loading" />';
		//$('loading').style.display='block';
		//$('loadingbag').style.display='block';
	}else{
		$('bag').className='';
		loadingC='';
		//$('loading').style.display='none';
		//$('loadingbag').style.display='none';
	}
	$('loading').innerHTML=loadingC;
	$('loadingbag').innerHTML=loadingC;
}
function loadingProSm(action){
	if(action==1){
		loadingC='<img src="/images/load_white.gif" width="25" height="25" alt="loading" />';
	}else{
		loadingC='';
	}
	$(divid).innerHTML=loadingC;
}
function loadingYSB(action){
	if(action==1){
		loadingC='<img src="/images/load.gif" width="25" height="25" alt="loading" />';
	}else{
		loadingC='';
	}
	$('loading').innerHTML=loadingC;
}

function attachEvents(type){
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementsByTagName('a');

	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		
		var relAttribute = String(anchor.getAttribute('rel'));
		
		if (anchor.getAttribute('href') && (relAttribute==type)){
			anchor.onclick = function() {
				setActive(this, type);
				appearToggle(this, type+'appear');
				return false;
			};
		}
	}
}

function setActive(id, type){
	if(g==false){
		if (!document.getElementsByTagName){ return; }
		var anchors = document.getElementsByTagName('a');

		for (var i=0; i<anchors.length; i++){
			var anchor = anchors[i];
		
			var relAttribute = String(anchor.getAttribute('rel'));
				
			if (anchor.getAttribute('href') && (relAttribute==type)){
				anchor.className='';
			}
		}
	
		id.className='active';
	}
}

function website(url){
	popupWindow = window.open(url, '_blank','');
	popupWindow.focus();
}

function checkForm(theForm){
	if(theForm==0){
		var checkThese=new Array(
			'name|Name',
			'email|Your email address',
			'message|Your message'
		);
	}else if(theForm==1){
		var checkThese=new Array(
			'email|Your email address',
			'password|Password'
		);
	
	}else if(theForm==2){
		var checkThese=new Array(
			'name|Name',
			'address1|Address line 1',
			'town_city|Town/City',
			'postcode|Postcode',
			'email|Your email address'
		);
		
		if($('delivery_address').checked==true){
			var checkTheseDelivery=new Array(
				'address1_delivery|Address line 1',
				'town_city_delivery|Town/City',
				'postcode_delivery|Postcode'
			);

			checkThese=checkThese.concat(checkTheseDelivery);
		}
		
		var checkTheseCC=new Array(
			'closest_town|',
			'card_name|Name on Card',
			'card_number|Card Number'
		);
		
		checkThese=checkThese.concat(checkTheseCC);
	}else if(theForm==3){
		var checkThese=new Array(
			'name|Name',
			'email|Your email address'
		);
	}else if(theForm==4){
		var checkThese=new Array(
			'email|Your email address'
		);
	}
	return checkLoop(checkThese);
}

function toggleDelivery(){
	if($('delivery_address_div').className=='shown'){
		$('delivery_address_div').className='hidden'
	}else{
		$('delivery_address_div').className='shown'
	}
}

function updateDelivery(){
	var rural_delivery=0;
	
	$('totals').innerHTML='<img src="/images/load.gif" width="25" height="25" alt="loading" />';
	
	closest_town=$('closest_town').options[$('closest_town').selectedIndex].value;
	
	if($('rural_delivery').checked==true){
		rural_delivery=1;
	}
	
	var url    = '/inc/totals.php';
	var rand   = Math.random(9999);
	var pars   = 'rural_delivery=' + rural_delivery + '&closest_town=' + closest_town + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: showResponseTotals} );
}

function checkLoop(checkTheseArray){
	var elementType;
	var elementName;
	var elementDefault;
	var elementValue;
	var elementObject;
	var valuesArray;

	var email_regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	for (var loop=0;loop<checkTheseArray.length;loop++){
		valuesArray=checkTheseArray[loop].split("|");
		
		elementObject=$(valuesArray[0]);
		elementDefault=valuesArray[1];

		elementType=elementObject.type;
		elementName=elementObject.name.toLowerCase();
		elementValue=elementObject.value;
		
		if((elementValue==""||elementValue==elementDefault)&&(elementType=="text" || elementType=="password")){
			elementObject.className='alert';
			elementObject.focus();
			return false;
		}else if((elementValue==""||elementValue==elementDefault)&&(elementType=="textarea")){
			elementObject.className='alert';
			elementObject.focus();
			return false;
		}else if((elementType=="select-one")&&(elementObject.options[elementObject.selectedIndex].value)==elementDefault){
			elementObject.className='alert';
			elementObject.focus();
			return false;
		}else if((elementName.toLowerCase().match("email"))&&(elementType=="text")&&(!email_regex.test(elementValue))){
			elementObject.className='alert';
			elementObject.focus();
			return false;
		}else if((elementObject.checked==false)&&(elementType=="checkbox")){
			elementObject.className='alert';
			elementObject.focus();
			return false;
		}else{
			if(elementType=="checkbox"){
				elementObject.className='';
			}else{
				elementObject.className='input';
			}
		}
	}
	return true;
}


/* shopping bag */

function addProduct(element, dropon, event) {
	sendData(element.id);
}

function productRefresh(id, large, searchstring, refresh_type) {
	var productid=$('productid'+id).value;
	
	divid='list' + id;
		
	var type=$('type'+id).options[$('type'+id).selectedIndex].value;
	var weight=$('weight'+id).options[$('weight'+id).selectedIndex].value;
	
	var url    = '/inc/product.php';
	var rand   = Math.random(9999);
	var pars   = 'p=' + id + '&productid=' + productid + '&type=' + type + '&weight=' + weight + '&large=' + large + searchstring + '&refresh_type=' + refresh_type + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoadProSm, onComplete: showResponseProSm} );
}

function sendData (id) {
	id=String(id);
	id=id.replace('product', '');
		
	var productid=$('productid'+id).value;
	var qty=$('qty'+id).options[$('qty'+id).selectedIndex].value;
	
	var priceid=$('weight'+id).options[$('weight'+id).selectedIndex].value;
	
	var url    = '/inc/bag.php';
	var rand   = Math.random(9999);
	var pars   = 'productid=' + productid + '&qty=' + qty + '&priceid=' + priceid + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}		
function clearCart () {
	var url    = '/inc/bag.php';
	var rand   = Math.random(9999);
	var pars   = 'clear=true&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}
function clearProduct (id) {
	var url    = '/inc/bag.php';
	var rand   = Math.random(9999);
	var pars   = 'clearProduct=true&id=' + id + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}
function showResponse (originalRequest) {
	loading(0);
	$('bagcontents').innerHTML = originalRequest.responseText;
	
	var url    = '/inc/shopinfo.php';
	var rand   = Math.random(9999);
	var pars   = 'rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: showResponseShopInfo} );
}


function clearProductYSB (id) {
	var url    = '/inc/shopping_bag.php';
	var rand   = Math.random(9999);
	var pars   = 'clearProduct=true&id=' + id + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoadYSB, onComplete: showResponseYSB} );
}
function showResponseYSB (originalRequest) {
	loadingYSB(0);
	$('bagcontents').innerHTML = originalRequest.responseText;
	
	var url    = '/inc/shopinfo.php';
	var rand   = Math.random(9999);
	var pars   = 'rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: showResponseShopInfo} );
}

function showResponseShopInfo (originalRequest) {
	$('shopinfo').innerHTML = originalRequest.responseText;
}
function showResponseTotals (originalRequest) {
	$('totals').innerHTML = originalRequest.responseText;
}
function showResponseProSm (originalRequest) {
	loadingProSm(0);
	$(divid).innerHTML = originalRequest.responseText;
	
	attachDrag();
}
function showLoad () {
	loading(1);
}
function showLoadProSm () {
	loadingProSm(1);
}
function showLoadYSB () {
	loadingYSB(1);
}

function attachDrag(){
	if (!document.getElementsByTagName){ return; }

	var anchors = document.getElementsByTagName('a');
	
	var d=0;
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		
		var relAttribute = String(anchor.getAttribute('rel'));
				
		if (relAttribute=='product'){
			new Draggable(anchor.id, {ghosting:true, revert:true})
			
			anchor.style.cursor='move';
			
			anchor.onclick = function() {
				return false;
			};
			
			d++;
		}
	}
	
	if(d>0){
		Droppables.add('bag', {hoverclass: 'dropzone',onDrop:addProduct});
	}
}

function attachExternal(){
	if (!document.getElementsByTagName){ return; }

	var anchors = document.getElementsByTagName('a');
	
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		
		var relAttribute = String(anchor.getAttribute('rel'));
				
		if (relAttribute=='external'){
			anchor.onclick = function() {
				website(this);
				return false;
			};
		}
	}
}