function initBackground(img) {
	// initialise 
	var currentImage = dojo.byId('headerImage');
	if (img == undefined) {
		var newImage = new Image();
		newImage.src = randomBackground();
		if (newImage.src == currentImage.src) {
			newImage.src = randomBackground();
		}
	} else {
		var newImage = new Image();
		newImage.src = img;
	}


	if (newImage.complete) {

//		var contentNode = dojo.byId('headerBox');
		imageAnimateIn = dojo.fadeIn({
							node: currentImage,
							delay:0,
							duration:1000
							});
		imageAnimateOut = dojo.fadeOut({
							node: currentImage,
							delay:0,
							duration:1000,
							onEnd: function() {
										currentImage.src = newImage.src;
										
										imageAnimateIn.play();
									}
							}).play();

//		currentImage.src = newImage.src;
		setTimeout('initBackground()', 15000);		
	} else {	// image hasn't loaded. wait for it
		setTimeout('initBackground("' + newImage.src + '")', 250);		
	}
}

// 	dojo.place('<div class="errorTextMessage displayMe">We couldn\'t verify your details. Please try again.</div>', dojo.byId('accountSignInMessages'), 'first');
dojo.addOnLoad(function(){
    dojo.connect(dojo.byId("coverBox"),"click",function(){ 
    														closeSignInBox(); 
    														closeSignUpBox(); 
    														closeSearchBox(); 
    											});  
});


function reloadPage() {
	location.reload(true);
	return true;
}

function processSearch() {
	openSearchBox();
	dojo.xhrPost({
		url: "do/store/?" + icmsID + "&action=processSearch", 
		handleAs: "json-comment-filtered",
		load: function(data,args){
			if (data.status == 'success') {
				dojo.byId('quickSearchResults').innerHTML = data.content;
			} 
		},
		// if any error occurs, it goes here:
		error: function(error,args){
			alert('Something happened and i cannot recover.\n\nRef:QS1-00\n\n' + error);
		},
		form: "quickSearch"
	});
}
//quickSearchResults
function openSearchBox() { dojo.toggleClass(dojo.byId('quickSearchResults'), 'displayToggle', true); dojo.toggleClass(dojo.byId('coverBox'), 'displayToggle', true); dojo.style(dojo.byId('quickFind'), 'zIndex', '90010'); }
function closeSearchBox() { dojo.toggleClass(dojo.byId('quickSearchResults'), 'displayToggle', false); dojo.toggleClass(dojo.byId('coverBox'), 'displayToggle', false);  dojo.style(dojo.byId('quickFind'), 'zIndex', '9000');}


//createAccount
function processSignIn() {
	dojo.style('accountSignInLoader', 'display', 'block');
	dojo.xhrPost({
		url: "do/main/?" + icmsID + "&action=processSignIn", 
		handleAs: "json-comment-filtered",
		load: function(data,args){
			if (data.status == 'success') {
				dojo.style('accountSignInLoader', 'display', 'none');
				dojo.byId('accountSignIn').innerHTML = '<div class="message successText displayMe">' + data.message + '</div>' + data.content;
				setTimeout("location.reload(true);", 5000);	// reload page
			} else {
				captcha_refresh('sCaptcha');
				dojo.style('accountSignInLoader', 'display', 'none');
				document.signInForm.captchaS.value = '';
				var messageNode; // display errors in the message DIV. if it doesn't exist, create it
				if (messageNode = dojo.byId('accountSignInMessages')) { messageNode.innerHTML = data.content; } else { dojo.place('<div class="message errorText displayMe" id="accountSignInMessages">' + data.content + '</div>', dojo.byId('accountSignIn'), 4); }
			}
		},
		error: function(error,args){
			alert('Something happened and i cannot recover.\n\nRef:PSI1-22\n\n' + error);
			dojo.style('accountSignInLoader', 'display', 'none');
			document.signInForm.captchaS.value = '';
			captcha_refresh('sCaptcha');
		},
		form: "signInForm"
	});
}
function toggleSignInBox() { dojo.toggleClass(dojo.byId('accountSignIn'), 'displayToggle'); dojo.toggleClass(dojo.byId('coverBox'), 'displayToggle'); document.signInForm.email.focus(); captcha_refresh('sCaptcha'); signInCleanup(); }
function closeSignInBox() { dojo.toggleClass(dojo.byId('accountSignIn'), 'displayToggle', false); dojo.toggleClass(dojo.byId('coverBox'), 'displayToggle', false); signInCleanup();  }
function signInCleanup() { if (dojo.byId('accountSignInMessages')) { dojo.destroy('accountSignInMessages') } captcha_refresh('captcha'); }
// sign up box
function processSignUp() {
	dojo.style('accountSignUpLoader', 'display', 'block');
	dojo.xhrPost({
		url: "do/main/?" + icmsID + "&action=processSignUp", 
		handleAs: "json-comment-filtered",
		load: function(data,args){
			if (data.status == 'success') {
				dojo.style('accountSignUpLoader', 'display', 'none');
				dojo.byId('accountSignUp').innerHTML = '<div class="message successText displayMe">' + data.message + '</div>' + data.content;
//				setTimeout("location.reload(true);", 5000);	// reload page
			} else {
				captcha_refresh('suCaptcha');
				dojo.style('accountSignUpLoader', 'display', 'none');
				document.signUpForm.captchaSU.value = '';
				var messageNode; // display errors in the message DIV. if it doesn't exist, create it
				if (messageNode = dojo.byId('accountSignUpMessages')) { messageNode.innerHTML = data.content; } else { dojo.place('<div class="message errorText displayMe" id="accountSignUpMessages">' + data.content + '</div>', dojo.byId('accountSignUp'), 4); }
			}
		},
		error: function(error,args){
			alert('Something happened and i cannot recover.\n\nRef:PSI1-22\n\n' + error);
			dojo.style('accountSignUpLoader', 'display', 'none');
			document.signUpForm.captchaSU.value = '';
			captcha_refresh('suCaptcha');
		},
		form: "signUpForm"
	});
}
function toggleSignUpBox() { dojo.toggleClass(dojo.byId('accountSignUp'), 'displayToggle'); dojo.toggleClass(dojo.byId('coverBox'), 'displayToggle'); document.signUpForm.first_name.focus(); captcha_refresh('suCaptcha'); signUpCleanup(); }
function closeSignUpBox() { dojo.toggleClass(dojo.byId('accountSignUp'), 'displayToggle', false); dojo.toggleClass(dojo.byId('coverBox'), 'displayToggle', false); signUpCleanup();  }
function signUpCleanup() {
	if (dojo.byId('accountSignUpMessages')) { dojo.destroy('accountSignUpMessages') }
	captcha_refresh('captcha');
}
function signOut() {
	dojo.xhrGet({
		url: "do/main/?" + icmsID + "&action=signOut", 
		handleAs: "json-comment-filtered",
		load: function(data,args){
			if (data.status == 'success') {
				location.reload(true);	// reload page
			} else {
				alert('Something happened and you were not signed out. Please try again.\n\nRef:SO-01a\n\n' + error);
			}
		},
		error: function(error,args){
			alert('Something happened and you were not signed out. Please try again.\n\nRef:SO-01b\n\n' + error);
		}
	});
}
/* captcha retrieval system */
function captcha_refresh(id) {
	if (e = dojo.byId(id)) {
		dv=new Date();
		e.src="captcha/?dummy=" + dv.getTime() + id.length;
		return false;
	}
}
function captcha_main_load_handler()  { captcha_refresh('captcha'); }
function captcha_mail_load_handler()  { captcha_refresh('captcha'); }
function captcha_unload_handler()  { } 
dojo.addOnLoad(captcha_main_load_handler);
/* captcha refresh */
function clickclear(thisfield, defaulttext) {
	if (thisfield.value == defaulttext) {
		thisfield.value = "";
	}
}
function clickrecall(thisfield, defaulttext) {
	if (thisfield.value == "") {
		thisfield.value = defaulttext;
	}
}
function fadeInContent() {
	var contentNode = dojo.byId('mainBody');
 	dojo.fx.wipeIn({ node: contentNode, duration:500, onEnd: function() { resizeCartColumn(); } }).play();    
}
function drawContentLoader() {
	var loaderDIVLocator = dojo.byId("body");
	var loaderDIV = dojo.byId("bodyLoader");
		loaderDIV.style.height = loaderDIVLocator.offsetHeight + 'px';
		loaderDIV.style.width = loaderDIVLocator.offsetWidth + 'px';
		loaderDIV.style.display = 'block';
}
function resetContentLoader() {
	var loaderDIV = dojo.byId("bodyLoader");
	loaderDIV.style.height = '0px';
	loaderDIV.style.width = '0px';
	loaderDIV.style.display = 'none';
}

function appendCSS(id, src) {
	if (!dojo.byId(id)) {
		var oHead = document.getElementsByTagName('head').item(0);
		var oScript = document.createElement('link'); oScript.rel = "stylesheet"; oScript.charset = "utf-8"; oScript.type = "text/css"; oScript.id = id; oScript.href = src;
			oHead.appendChild( oScript );
	}
}
function appendJS(id, src) {
	if (!dojo.byId(id)) {
		var oHead = document.getElementsByTagName('head').item(0);
		var oScript = document.createElement('script'); oScript.type = "text/javascript"; oScript.id = id; oScript.src = src;
			oHead.appendChild( oScript );
		if (typeof('startFunc') == 'function') {
			alert('asdf');
		startFunc();
		}
	}
}

