var g_ajaxLoading = false;
var g_ajaxLoadingCart = false;
var g_prevProduct = null;
var g_prevSideBar = null;
var g_prevNavTop = null;
var g_prevNavPrevNext = null;
var g_userloggedin = 0;
var g_cycleIdx = 0;
g_prevSize = 0;
var g_arrHTTPSFiles = new Array('myCB-login.html',
														'myCB-card-topup.html',
														'cart.php',
														'myCB-card-check.html',
														'myCB-reg.html',
														'myCB-forgotpass.html',
														'orderhistory.php',
														'tcbtopup.php',
														'myCB-card-register.html',
														'myCB-profile.html');

$(document).ready(function() {
	// protect private pages with https
	var szTmp = window.document.location.href;
	var nFilePos = szTmp.lastIndexOf('/');
	var curFile = szTmp.substr(nFilePos+1);
	nFilePos = curFile.indexOf('?');
	if(nFilePos>0) curFile = curFile.substr(0, nFilePos);
	if(isRedirectHTTPS(curFile)) {
		if(szTmp.indexOf('https://')!=0) {
			var szRedirect = 'https://'+szTmp.substr(7);
			window.open(szRedirect, '_self');
			return;
		} else {
			//$('body').append('<a href="http://www.instantssl.com" id="comodoTL">SSL</a><script language="JavaScript" type="text/javascript">COT("http://www.coffeebean.com.my/i/cot.gif", "SC2", "none");</script>');
		}
	} else {
		if(szTmp.indexOf('https://')==0) {
			var szRedirect = 'http://'+szTmp.substr(8);
			window.open(szRedirect, '_self');
			return;
		}
	}
	initWindow();
	
});
function initWindow()
{
	try{
		// set mouseover effect
		$('img[rollover]').each(function(index){
			if($(this).parent().attr('href')==CLASSID) {
				$(this).attr('norollover', $(this).attr('src'));
				$(this).attr('src', $(this).attr('rollover'));
			} else {
				$(this).attr('norollover', $(this).attr('src'));
				$(this).hover(function () {
						$(this).attr('src', $(this).attr('rollover'));
					},
					function () {
						$(this).attr('src', $(this).attr('norollover'));
					}
				);
			}
		});
	}catch(e) {}
	loadAccordion();
	loadNav();
	updateFooter();
}
function updateLinks()
{
	var szTmpC = new String(window.location);
	var nPos = szTmpC.lastIndexOf('/');
	if(nPos!=-1)
		szTmpC = szTmpC.substr(0, nPos);
	else
		szTmpC = '';
	szHTTP = szTmpC.replace(/^https:/i, 'http:');
	szHTTPS = szTmpC.replace(/^http:/i, 'https:');
	
	$('a').each(function() {
		var szTmp = $(this).attr('href');
		if(szTmp.indexOf('javascript')==0) return;
		
		var nFilePos = szTmp.lastIndexOf('/');
		if(nFilePos!=-1)
			szTmp = szTmp.substr(nFilePos+1);
		
		var curFile = szTmp;
		nFilePos = curFile.indexOf('?');
		if(nFilePos!=-1) curFile = curFile.substr(0, nFilePos);
		if(szTmp.indexOf('http')!=-1) {
			if(isRedirectHTTPS(curFile)) $(this).attr('href', szTmp.replace(/^http:/i, 'https:'));
			else $(this).attr('href', szTmp.replace(/^https:/i, 'http:'));
			return;
		}
		if(isRedirectHTTPS(curFile)) $(this).attr('href', szHTTPS+'/'+szTmp);
		else $(this).attr('href', szHTTP+'/'+szTmp);
	});
}
function showLoading(szMsg)
{
	if(!g_ajaxLoadingCart)
		$('body').css('overflow', 'hidden');
	var nLeft = $(window).width()/2-100;
	var nTop = $(window).height()/2+$(window).scrollTop()-120;
	if(szMsg==''||szMsg==undefined) szMsg = 'Processing data. Please wait while we load your page...';
	$('<div id="soul_overlay"></div><div id="soul_message" style="left:'+nLeft+'px;top:'+nTop+'px;"><b>'+szMsg+'</b></div>').appendTo('body');
}
function removeLoading()
{
	$('#soul_overlay').remove();
	$('#soul_message').remove();
}
function loadNav()
{
	$('#top-nav').html('');
	// load top-nav
	if($('#top-nav').html()!=null) {
		$.ajax({url: 'checkaccess.php',
			type: 'GET',
			cache: false,
			dataType: 'html',
			timeout: 10000,
			error: function() { loadNav(); },
			success: function(data){
				$('#top-nav').html(data);
				$('#top-nav').css('position', 'absolute');
				// plug in accordion / card info
				if($('#col-left').html()!=null) {
					if($('#col-left').attr('nocard')==1) return;
					$.ajax({url: 'tcbnav.php',
						type: 'GET',
						cache: false,
						dataType: 'html',
						success: function(data){
							if(data=='') return;
							$('#col-left').append(data);
							updateFooter();
						},
						timeout: 10000
					});
					updateLinks();
				}
				updateLinks();
				try{ loginUser(); } catch(e) {}
			}
		});
	}
}
function loadAccordion()
{
	$('#top-nav').html('#sidenav');
	try{
		$.ajax({url: 'js/accordion/'+g_includeAccordion,
			type: 'GET',
			cache: true,
			dataType: 'text',
			timeout: 10000,
			error: function() {
				loadAccordion();
			},
			success: function(data){
				$('#sidenav').html(data);
				ddaccordion.init({
					headerclass: "lv1", //Shared CSS class name of headers group
					headerclass2: "lv0", //non expandable header
					contentclass: "submenu", //Shared CSS class name of contents group
					revealtype: "mouseover", //Reveal content when user clicks or onmouseover the header? Valid value: "click" or "mouseover
					mouseoverdelay: 800, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover
					collapseprev: true, //Collapse previous content (so only one open at any time)? true/false
					defaultexpanded: [], //index of content(s) open by default [index1, index2, etc] [] denotes no content
					onemustopen: false, //Specify whether at least one header should be open always (so never all headers closed)
					animatedefault: false, //Should contents open by default be animated into view?
					persiststate: false, //persist state of opened contents within browser session?
					toggleclass: ["", "selected"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
					togglehtml: ["", "", ""], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
					animatespeed: "normal", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow"
					oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
						//do nothing
					},
					onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
						//initScroller();
					}
				});
			}
		});
	}catch(e) { }
}
$(window).load(function() {
	// load ajax product loader
	// create an absolute
	if($('.controlbtn').html()!=null) {
		if(g_prevNavPrevNext==null) {
			$('#product-title').css('visibility', 'hidden');
			$('.controlbtn').css('visibility', 'hidden');
			g_prevNavPrevNext = $('.controlbtn').clone();
			g_prevNavTop = $('#product-title').clone();
			
			$('#col-center').append(g_prevNavPrevNext);
			g_prevNavPrevNext.css('position', 'absolute');
			var objPos = $('.controlbtn').position();
			g_prevNavPrevNext.css('left', objPos.left+'px');
			g_prevNavPrevNext.css('top', objPos.top+'px');
			g_prevNavPrevNext.css('visibility', 'visible');
			
			$('#col-center').append(g_prevNavTop);
			g_prevNavTop.css('position', 'absolute');
			objPos = $('#product-title').position();
			g_prevNavTop.css('left', objPos.left+'px');
			g_prevNavTop.css('top', objPos.top+'px');
			g_prevNavTop.css('visibility', 'visible');
		}
		updatePrevNext('img[src$=i/btn-next.gif]', true);
		updatePrevNext('img[src$=i/btn-pre.gif]', false);
	}
	updateFooter();
});
function updatePrevNext(szKey, bNext)
{
	var objTmp = '';
	if(bNext)
		objTmp = $(szKey).prev();
	else
		objTmp = $(szKey).next();
	if(objTmp.html()==null) return;
	if(objTmp.attr('ajaxIgnore')!=1) {
		var szHREF = objTmp.attr('href');
		//objTmp.attr('href', '#'+szHREF);
		objTmp.attr('href', 'javascript:void(0);');
		objTmp.attr('ajaxIgnore', 1);
		objTmp.attr('ajaxURL', szHREF);
		objTmp.unbind();
		objTmp.click(function() {
			if(g_ajaxLoading) return;
			var objProduct = $('#product');
			g_prevProduct = objProduct;
			var objContainer = objProduct.parent();
			var nTmp = objProduct.width();
			objContainer.width(nTmp);
			objContainer.height(objProduct.height());
			objContainer.css('overflow', 'hidden');
			
			// update sidebar
			var objSideBarC = $('#col-right');
			
			var szURL = $(this).attr('ajaxURL');
			CLASSID = szURL;
			g_ajaxLoading = true;
			$.ajax({url: szURL,
				type: 'GET',
				cache: false,
				dataType: 'html',
				timeout: 10000,
				error: function() {
					alert('Unable to load product. Please refresh. Thank you.');
					g_ajaxLoading = false;
				},
				success: function(data){
					var objTmp = $(data).find('#product');
					objTmp.find('#product-title').css('visibility', 'hidden');
					objTmp.find('.controlbtn').css('visibility', 'hidden');
					
					// update sidebar
					if(false) {
					//if(objSideBarC.html()!=null) {
						var objSideBar = $(data).find('#col-right');
						objSideBarC.fadeOut(500, function(){ objSideBarC.html(objSideBar.html()); objSideBarC.fadeIn(500); });
					}
					if(!bNext) {
						objTmp.css('marginLeft', '-'+nTmp+'px');
						objContainer.prepend(objTmp);
						objProduct.animate({'marginLeft': nTmp}, 500, "easeInOutSine", function() { objTmp.animate({'marginLeft': 0}, 500, "easeInOutSine", function() {resetPrevNext(); }); });
					} else {
						objTmp.css('marginLeft', nTmp+'px');
						objContainer.append(objTmp);
						objProduct.animate({'marginLeft': nTmp*-1}, 500, "easeInOutSine", function() { objTmp.animate({'marginLeft': 0}, 500, "easeInOutSine", function() {resetPrevNext(data); }); });
					}
				}
			});
		});
	}
}
function resetPrevNext(data)
{
	g_ajaxLoading = false;
	var objContainer = $('#product').parent();
	if(g_prevProduct!=null) {g_prevProduct.remove(); g_prevProduct = null;}
	objContainer.width('');
	objContainer.height('');
	objContainer.css('overflow', 'visible');
	
	if(g_prevNavPrevNext!=null) {
		g_prevNavPrevNext.remove();
		g_prevNavTop.remove();
		g_prevNavPrevNext = g_prevNavTop = null;
		
		g_prevNavPrevNext = $('.controlbtn').clone();
		g_prevNavTop = $('#product-title').clone();
		
		$('#col-center').append(g_prevNavPrevNext);
		g_prevNavPrevNext.css('position', 'absolute');
		var objPos = $('.controlbtn').position();
		g_prevNavPrevNext.css('left', objPos.left+'px');
		g_prevNavPrevNext.css('top', objPos.top+'px');
		g_prevNavPrevNext.css('visibility', 'visible');
		
		$('#col-center').append(g_prevNavTop);
		g_prevNavTop.css('position', 'absolute');
		objPos = $('#product-title').position();
		g_prevNavTop.css('left', objPos.left+'px');
		g_prevNavTop.css('top', objPos.top+'px');
		g_prevNavTop.css('visibility', 'visible');
	}
	updatePrevNext('img[src$=i/btn-next.gif]', true);
	updatePrevNext('img[src$=i/btn-pre.gif]', false);
	updateFooter();
}
$(window).resize(function() {
	updateFooter();
});
function updateFooter() {
	$('#footer').css('position', 'relative');
	if($(document).height()>$(window).height()) {
		$('#footer').css('position', 'relative');
	} else {
		$('#footer').css('position', 'fixed');
	}
}
function addToCart(nID, nUndo) {
	if(nID!=-1) {
		if(g_ajaxLoadingCart) return;
		g_ajaxLoadingCart = true;
		showLoading('Adding product to your shopping bag. Please wait...');
	}
	$('#shoppingcart').find('.shopbag-itemadd').remove();
	$('#shoppingcart').find('#shopbag-plisting').remove();
	$('#shoppingcart').find('.shopbag-bottom').remove();
	//$('#shoppingcart').remove();
      
	var szAdd=(nUndo==undefined)?'':'&r='+nUndo;
	$.ajax({url: 'product.php?manid=11&pageid=101&prodbrowseid='+nID+szAdd,
		type: 'GET',
		cache: false,
		dataType: 'html',
		timeout: 10000,
		error: function() {
			//alert('Network error. Unable to add product to cart. Please try again. Thank you.');
			g_ajaxLoadingCart = false;
			removeLoading();
		},
		success: function(data){
			var objTmp = $('#shoppingcart');
			if(objTmp.html()==null) {
				$('#col-right').prepend('<div id="shoppingcart"></div>');
				objTmp = $('#shoppingcart');
			}
			var szTmp = $(data).find('div.shopbag-item').html();
			if(szTmp!=null) {
				try {
					szTmp = parseInt(szTmp.substr(0, szTmp.indexOf(' ')));
				} catch(e) { szTmp=0; }
				$('#cart_count').html(szTmp);
			}
			
			objTmp.html(data);
			updateFooter();
			g_ajaxLoadingCart = false;
			removeLoading();
		}
	});
}
function addToCartMore(objForm) {
	if(g_ajaxLoadingCart) return;
	g_ajaxLoadingCart = true;
	showLoading('Adding product to your shopping bag. Please wait...');
	$('#shoppingcart').find('.shopbag-itemadd').remove();
  $('#shoppingcart').find('#shopbag-plisting').remove();
  $('#shoppingcart').find('.shopbag-bottom').remove();
  //$('#shoppingcart').remove();
  
	$(objForm).ajaxSubmit({
      dataType: 'html',
      target: '#shoppingcart',
      type: 'POST',
      timeout: 10000,
			error: function() {
				//alert('Network error. Unable to add product to cart. Please try again. Thank you.');
				g_ajaxLoadingCart = false;
				removeLoading();
			},
      success: function(data) {
      	var objTmp = $('#shoppingcart');
      	
				if(objTmp.html()==null) {
					$('#col-right').prepend('<div id="shoppingcart"></div>');
					objTmp = $('#shoppingcart');
				}
				var szTmp = $(data).find('div.shopbag-item').html();
				if(szTmp!=null) {
					try {
						szTmp = parseInt(szTmp.substr(0, szTmp.indexOf(' ')));
					} catch(e) { szTmp=0; }
					$('#cart_count').html(szTmp);
				}
			
				objTmp.html(data);
      	updateFooter();
				g_ajaxLoadingCart = false;
				removeLoading();
      }
  });
}
function isRedirectHTTPS(szFile)
{
	for(var i=0;i<g_arrHTTPSFiles.length;i++) {
		if(g_arrHTTPSFiles[i]==szFile) return true;
	}
	return false;
}
<!-- //Print function
function printSpecial(szTitle, szPrint)
{
var printReadyElem = null;
if (document.getElementById != null)
{
var html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n"+
"<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n"+
"<head>\r\n"+
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n"+
"<title>"+szTitle+"</title>\r\n"+
"</head>\r\n"+
"<body>\r\n"+
"<div id=\"ec-holder\">\r\n"+
"<!-- BEGIN MAIN CONTENT -->";

printReadyElem = document.getElementById(szPrint);
var szTmp = printReadyElem.innerHTML;
szTmp = szTmp.replace(/<img\b[^>]*>/img, '');
html += szTmp;
if (printReadyElem == null) {
	alert("Could not find the printable section in the HTML");
	return;
}
var ver = navigator.appName;
var num = parseInt(navigator.appVersion);
var szPrintMe = '';
if (!(ver == "Microsoft Internet Explorer"))
	szPrintMe = "<scr"+"ipt language='javascript'>setTimeout('window.print();', 2000);</sc"+"ript>";

	html += '<!-- END MAIN CONTENT -->\r\n'+
'</div>'+szPrintMe+
'</body>\r\n'+
'</html>';

var printWin = window.open("","printSpecial","left=20,top=20,width=700,height=500,scrollbars=yes,resizable=yes,location=no,address=no,toolbars=no");
	printWin.document.open();
	printWin.document.write(html);
	printWin.document.close();
var headID = printWin.document.getElementsByTagName("head")[0];         
var cssNode = printWin.document.createElement('link');
cssNode.type = 'text/css';
cssNode.rel = 'stylesheet';
cssNode.href = 'css/coffeebeanprint.css';
cssNode.media = 'screen,print';
headID.appendChild(cssNode);
// don't auto print for mozilla
if ((ver == "Microsoft Internet Explorer")&&(num >= 4)) {
	setTimeout(function() {printWin.print();}, 2000);
}
}else {
alert("Sorry, the print ready feature is only available in modern browsers.");
}
}
//-->
