if(document.images){
	preloadImage = new Image();
	preloadImage.src = "/images/tooltip.png";
	preloadImage = new Image();
	preloadImage.src = "/images/nextlabel.gif";
	preloadImage = new Image();
	preloadImage.src = "/images/prevlabel.gif";
	preloadImage = new Image();
	preloadImage.src = "/images/closelabel.gif";
	preloadImage = new Image();
	preloadImage.src = "/images/loading.gif";	
}

function checkForm(theForm){
	if(theForm.id=='checkout_form'){
		var checkThese=new Array(
			'name|',
			'address1|',
			'town_city|',
			'postcode|',
			'email|'
		);
	}
	
	return checkLoop(checkThese, theForm.id);
}

function checkLoop(checkTheseArray, form){
	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" || elementType=="textarea")){
			elementObject.addClass('alert');
			elementObject.focus();
			return false;
		}else if((elementType=="select-one") && (elementObject.options[elementObject.selectedIndex].value)==elementDefault){
			elementObject.addClass('alert');
			elementObject.focus();
			return false;
		}else if((elementName.toLowerCase().match("email")) && (elementType=="text") && (!email_regex.test(elementValue))){
			elementObject.addClass('alert');
			elementObject.focus();
			return false;
		}else if((elementObject.checked==false) && (elementType=="checkbox")){
			elementObject.addClass('alert');
			elementObject.focus();
			return false;
		}else{
			if(elementType=="checkbox"){
				//elementObject.removeClass('alert');
			}else{
				elementObject.removeClass('alert');
			}
		}
	}
	return true;
}

function website(url){
	new_window = window.open(url, '_blank','');
	new_window.focus();
}

function toggleGiftVoucher(){
	if($('gift_vouchers_div').className=='shown'){
		$('gift_vouchers_div').className='hidden';
	}else{
		$('gift_vouchers_div').className='shown';
	}
}

function toggleDelivery(checkout){
	if(!$('delivery_address').checked){
		$('delivery_address_div').className='hidden';
		
		if(checkout){
			updateDelivery(0, 'country');
		}
	}else{
		$('delivery_address_div').className='shown';
		
		if(checkout){
			updateDelivery(1, 'country_delivery');
		}
	}
}

function updateDelivery(check_type, selectbox){
	objecter=$(selectbox);
	var url = '/inc/totals.php';
		
	if(($('delivery_address').checked && check_type==1) || (!$('delivery_address').checked && check_type==0)){
		var country_value=objecter.options[objecter.selectedIndex].value;
		
		var div = $('totals');
	
		var fade = new Fx.Style(div, 'opacity', {duration:300}).set(1);
	
		$('totals_loading').addClass('totals_loading');
		fade.set(0);
		
		new Ajax(url+'?update_country='+country_value, {
			update: div,
			
			onComplete: function(){
				fade.start(0,1),
				setTimeout("$('totals_loading').removeClass('totals_loading')", 700)
			}
		}).request();
	}
}

function changeable(){
	var url = '/inc/feature.php';
 
	var timer = 8;
	var periodical, dummy; 
	var div = $('changeable');
	
	var fade = new Fx.Style(div, 'opacity', {duration:600}).set(1);
 
	var refresh = (function() {
		fade.set(0);
		
		new Ajax(url, {
			update: div,
			
			onComplete: function(){
				fade.start(0,1)
			}
		}).request();
	});

	periodical = refresh.periodical(timer * 1000, this);
}

function productsSetup(large){
	var productselects = $$(".product select.onchange");
	productselects.each(function(productselect, i) {
		productselect.addEvent("change", function(e) {
			new Event(e).stop();
			
			submitProductForm(this.form, large);
		});
	});
}

function submitCartForm(form, removeid){
	var action = '/inc/cart.php';
	
	if(removeid!=''){
		action=action+'?remove='+removeid
	}else{
		if(this.window.getScrollTop()>280){
			this.scroll = new Fx.Scroll(window, {
				offset: {
					x: 0,
					y: -100
				}
			});
			this.scroll.toElement($('cart'));
		}
	}
	
	form.setProperty('action', action);
						
	var div = $('cart');
	
	$('cart_loading').addClass('cart_loading_active');
		
	var fade = new Fx.Style(div, 'opacity', {duration:300}).set(1);
	fade.set(0);
			
	form.send({
		update: div,
		onComplete: function() {
			fade.start(0,1),
			this.evalScripts(),
			setTimeout("$('cart_loading').removeClass('cart_loading_active')", 700)
		}
	});
}

function submitProductForm(form, large){
	var action = '/inc/product.php';
	
	// This is for IE
	form=$(form.id);
	form.setProperty('action', action);
		
	if(large==1){
		$('loading').addClass('loading_large');
	}
						
	var divid = form.id;
	
	divid=divid.replace('_form', '');
	
	var div = $(divid);
	var fade = new Fx.Style(div, 'opacity', {duration:300}).set(1);
	fade.set(0);
			
	form.send({
		update: div,
		onComplete: function(e) {
			fade.start(0,1),
			this.evalScripts(),
			(large==1 ? setTimeout("$('loading').removeClass('loading_large')", 700) : '')
		}
	});
}

function submitAdminForm(form){
	var action = '/admin/all_update.php';
	
	// This is for IE
	form=$(form.id);
	form.setProperty('action', action);
		
	$(form.id+'_loading').addClass('admin_loading');
	
	var div = $(form.id+'_status');
	
	new Ajax(action, {
		update: div,
		method: 'post',
		postBody: form,
		onComplete: function(){
			$(form.id+'_loading').removeClass('admin_loading')	
		}
	}).request();
}

function playground(){
	var url = '/inc/playground.php';
	var div = $('playground');
	var fade = new Fx.Style(div, 'opacity', {duration:600}).set(1);
	
	var thumbs = $$(".thumbicons a");
	thumbs.each(function(thumb, i) {
		thumb.addEvent("click", function(e) {
			new Event(e).stop();
			
			fade.set(0);
			
			new Ajax(url+'?p='+this.id, {
				update: div,
			
				onComplete: function(){
					fade.start(0,1),
					this.evalScripts()
				}
			}).request();
			
			var resets = $$(".thumbicons a");
			resets.each(function(reset, i) {
				reset.className='';
			});
			
			this.className='active';
		});
	});
}

function cartSetup(wide){
	var removebuttons = $$(".cart_inner input.submit");
	removebuttons.each(function(removebutton, i) {
		removebutton.addEvent("click", function(e) {
			new Event(e).stop();
			
			submitCartForm($('cart_form'), this.name);
		});
	});
	
	if(wide==1){
		var productselects = $$(".cart_contents_wide select");
		productselects.each(function(productselect, i) {
			productselect.addEvent("change", function(e) {
				new Event(e).stop();
			
				submitCartForm($('cart_form'), '');
			});
		});
	}
}


function loadImage(select, img, url){
	var filename=select.options[select.selectedIndex].value;
	
	if(filename==''){
		filename='blank.gif';
		url='/images/';
	}
	
	$(img).src=url+filename;
}

function external(){
	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=='external')){
			anchor.onclick = function() {
				website(this);
				return false;
			};
		}
	}
}

window.onload=external;

