dojo.require("dojo.NodeList-traverse");

// 	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(); 
    											});  
});
dojo.addOnLoad(resizeCartColumn);
//dojo.addOnLoad(resizeContentBox);
*/

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"
	});
}
/* 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 AJAXAllLinks() {
	dojo.query('a:not(.noAjax)').forEach(function(node) { 
		if (node.href.substr(0,7) == 'http://') {
			if (node.href.match(serverURL) != null) {
				node.href = 'javascript:navigate("'+node.href.replace(serverURL, '')+'");'; 
				node.target = '_self';
			} else {
				node.target = '_blank';
			}
		} else if (node.href.substr(0,8) == 'https://') {
			node.target = '_blank';
		} else {
			node.href = 'javascript:navigate("'+node.href+'");'; 
			node.target = '_self';
		}
	});
}
function AJAXBodyLinks() {
	dojo.query('#body a:not(.noAjax)').forEach(function(node) { 
		if (node.href.substr(0,7) == 'http://') {
			if (node.href.match(serverURL) != null) {
				node.href = 'javascript:navigate("'+node.href.replace(serverURL, '')+'");'; 
				node.target = '_self';
			} else {
				node.target = '_blank';
			}
		} else if (node.href.substr(0,8) == 'https://') {
			node.target = '_blank';
		} else if (node.href.substr(0,7) == 'mailto:') {
			//
		} else if (node.href.substr(0,4) == 'java') {
			node.target = '_self';
		} else {
			node.href = 'javascript:navigate("'+node.href+'");'; 
			node.target = '_self';
		}
	});
}

function navigate(url) {
	drawContentLoader();
	myUrl = url.split('?');
    dojo.xhrGet({
	  	url: "do/navigate/?p=" + myUrl[0] + "&" + myUrl[1], 
		handleAs: "json-comment-filtered",
        load: function(response){
			if (response.css) { appendCSS(response.css[0], response.css[1]); }
			if (response.js) { appendJS(response.js[0], response.js[1]); }
			updateContent(response.main);
			window.location.hash = myUrl[0].replace('http://', '');
			if (processGA == 'true') { _gaq.push(['_setAccount', 'UA-16412818-1'],['_setDomainName', 'www.limeworks.com.au'],['_trackPageview', myUrl[0].replace('http://', '')]); }
			if (response.title) { document.title = response.title; }
		 	var descTag, keyMeta, descMeta;
		 	if (descTag = dojo.query('meta[ name $= \'description\' ],[ name $= \'description\' ],[ name $= \'keywords\' ]', 'head')) { descTag.forEach(function(node, index, arr) { if (node.name == 'description') node.content = response.description; if (node.name == 'keywords') node.content = response.keywords; }); }
			}, 
       	error: 	function(error,args){
					alert('Warning: Something has happened, and I cannot recover. Please refresh the page and try again.' + error);
					setTimeout("resetContentLoader()", 100);
				}
	});
}
dojo.addOnLoad(function() {
	// user menu special effects
	var userMenu = dojo.byId("userMenu");
	if (userMenu) {
		dojo.query(".dropdown").forEach(function(n) {
	    	var l = dojo.query(n);
	        l.parent().at(0)
				.onmouseenter(function(){
					dojo.style(l[0], "right", "0");
					dojo.fx.wipeIn({node: l[0], duration: 250}).play();
				})
				.onmouseleave(function(){
					dojo.style(l[0], "right", "19999px");
					dojo.style(l[0], "display", "none");
				});
	    });
    }
});


function updateContent(content) {
	var contentNode = dojo.byId('bodyContentInner');
 	var wipeBodyOut = dojo.fx.wipeOut({ node: contentNode, onEnd: function() { contentNode.innerHTML = content; } }); 
	var wipeBodyIn = dojo.fx.wipeIn({ node: contentNode, onEnd: function() { AJAXBodyLinks(); resetContentLoader(); captcha_refresh(); } });    
// 	var wipeBodyOut = dojo.fadeOut({ node: contentNode, duration:400, onEnd: function() { contentNode.innerHTML = content; } }); 
 //	var wipeBodyIn = dojo.fadeIn({ node: contentNode, duration:800, onEnd: function() { AJAXBodyLinks(); resetContentLoader(); captcha_refresh(); } });    
	dojo.fx.chain([wipeBodyOut, wipeBodyIn]).play();
}

function fadeInContent() {
	var contentNode = dojo.byId('bodyContentInner');
 	dojo.fx.wipeIn({ node: contentNode, duration:500 }).play();    
}
function drawContentLoader() {
	var loaderDIVLocator = dojo.byId("bodyContentInner");
	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();
		}
	}
}
function captcha_refresh() {
	if (e = dojo.byId('captcha')) {
		dv=new Date();
		e.src="captcha/?dummy=" + dv.getTime();
		return false;
	}
}

function captcha_load_handler()  { captcha_refresh(); }
function captcha_unload_handler()  { } 
dojo.addOnLoad(captcha_load_handler);

