jQuery.Namespace = {
	Register: function () {
		var a = arguments, o = null, i, j, d;
		for (i = 0; i < a.length; i = i + 1) {
			d = a[i].split(".");
			o = window;
			for (j = 0; j < d.length; j = j + 1) {
				o[d[j]] = o[d[j]] || {};
				o = o[d[j]];
			}
		}
		return o;
	}
};

jQuery.Namespace.Register('jQuery.Popfizz');

var ns4 = document.layers;
var op5 = (navigator.userAgent.indexOf("Opera 5") != -1) || (navigator.userAgent.indexOf("Opera/5") != -1);
var op6 = (navigator.userAgent.indexOf("Opera 6") != -1) || (navigator.userAgent.indexOf("Opera/6") != -1);
var agt = navigator.userAgent.toLowerCase();
var mac = (agt.indexOf("mac") != -1);
var ie = (agt.indexOf("msie") != -1);
var mac_ie = mac && ie;

var imageWin = null;

function getRealLeft(el) {
	xPos = el.offsetLeft;
	tempEl = el.offsetParent;
	while (tempEl != null) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
	}
	return xPos;
}

function getRealTop(el) {
	yPos = el.offsetTop;
	tempEl = el.offsetParent;
	while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
	}
	return yPos;
}

function showHideMenuNode(node_id, image_id) {
	n = document.getElementById(node_id);
	i = document.getElementById(image_id);
	if (n) {
		n.style.display = n.style.display == "none" ? "block" : "none";
		if (i) {
			i.src = n.style.display == "none" ? skin_images + "/menu_tree_plus.gif" : skin_images + "/menu_tree_minus.gif";
		}
	}
}


function getElementHeight(Elem) {
	if (ns4) {
		var elem = document.getElementById(Elem);
		return elem.clip.height;
	} else {
		if (document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all) {
			var elem = document.all[Elem];
		}
		if (op5) {
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	}
}

function getElementWidth(Elem) {
	if (ns4) {
		var elem = document.getElementById(Elem);
		return elem.clip.width;
	} else {
		if (document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all) {
			var elem = document.all[Elem];
		}
		if (op5) {
			xPos = elem.style.pixelWidth;
		} else {
			xPos = elem.offsetWidth;
		}
		return xPos;
	}
}


if (document.layers) {
	_browser = "nn";
}
if (document.all) {
	_browser = "ie";
}
if (navigator.userAgent.toLowerCase().match("gecko")) {
	_browser = "gecko";
}
function isEmail(entry) {
	var rex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
	return rex.test(entry);
}

function delay(gap) { /* gap is in millisecs */
	var then, now;
	then = new Date().getTime();
	now = then;
	while ((now - then) < gap) {
		now = new Date().getTime();
	}
}

function showImage(image_url, image_width, image_height) {
	image_width = image_width == "" ? 400 : image_width;
	image_height = image_height == "" ? 380 : image_height;

	var w = screen.width;
	var h = screen.height;
	var ww = image_width * 1 + 30;
	var wh = image_height * 1 + 45;
	var wx = (w - ww) / 2;
	var wy = (h - wh) / 2;

	if (imageWin != null) {
		imageWin.close();
	}
	imageWin = null;
	imageWin = window.open(
		"",
		"ProductImageWindow",
		"titlebar=yes, toolbar=no, menubar=no, status=no, directories=no, resizable=yes, scrollbars=yes, top=" + wy.toString() + ", left=" + wx.toString() + ", width=" + ww.toString() + ", height=" + wh.toString() + ""
	);
	while (imageWin == null);
	imageWin.focus();

	imageWin.document.body.innerHTML = "";
	imageWin.document.write('<body style="padding:5px;margin:0px">');
	imageWin.document.write('<div align="center"><img hspace="0" vspace="0" src="' + image_url + '"></div><br/>');
	imageWin.document.write('<div align="center" style="font-family:arial;font-color:black;font-size:11px;"><a href="javascript:window.close();" style="color:#0000AA;">Close Window</a></div>');
	imageWin.document.write('</body>');
	imageWin.width = ww;
	imageWin.height = wh;
}

function showPrinterPage(url) {
	var prWin = null;
	prWin = window.open(
		url,
		"PrintVer",
		"titlebar=yes, toolbar=no, menubar=yes, status=yes, directories=no, resizable=yes, scrollbars=yes, top=20, left=20, width=810, height=600"
	);
	while (prWin == null);
	prWin.focus();
}

function OnButton(bt) {
	document.images[bt].src = skin_images + bt + "_on.gif";

}
function OffButton(bt) {
	document.images[bt].src = skin_images + bt + "_off.gif";
}

function OnMenu(cid) {
	document.images["menul_" + cid].src = skin_images + "catl_bg_on.gif";
	document.all["menur_" + cid].background = skin_images + "catr_bg_on.gif";
}
function OffMenu(cid) {
	document.images["menul_" + cid].src = skin_images + "catl_bg_off.gif";
	document.all["menur_" + cid].background = skin_images + "catr_bg_off.gif";
}
var RecentTimeOut, CartTimeOut;

function ShowCart() {
	window.clearTimeout(CartTimeOut);
	if (_browser == "ie") {
		cartDiv.style.visibility =
			cartDiv.style.visibility == "hidden" ? "visible" : "hidden";
		document.images["cartImage"].src =
				cartDiv.style.visibility == "hidden" ?
				(skin_images + "ic_expand.gif") :
				(skin_images + "ic_collapse.gif");
	}
	else if (_browser == "gecko") {
		document.getElementById('cartDiv').style.visibility =
			document.getElementById('cartDiv').style.visibility == "hidden" ? "visible" : "hidden";
		document.images["cartImage"].src =
			document.getElementById('cartDiv').style.visibility == "hidden" ?
			(skin_images + "ic_expand.gif") :
			(skin_images + "ic_collapse.gif");
	}
	else {
		document.cartDiv.visibility = document.cartDiv.visibility == "hidden" ? "visible" : "hidden";
	}
}


function ShowRecent() {
	window.clearTimeout(RecentTimeOut);
	if (_browser == "ie") {
		recentDiv.style.visibility =
			recentDiv.style.visibility == "hidden" ? "visible" : "hidden";
		document.images["recentImage"].src =
			recentDiv.style.visibility == "hidden" ?
			(skin_images + "ic_expand.gif") :
			(skin_images + "ic_collapse.gif");
	}
	else if (_browser == "gecko") {
		document.getElementById('recentDiv').style.visibility =
			document.getElementById('recentDiv').style.visibility == "hidden" ? "visible" : "hidden";
		document.images["recentImage"].src =
			document.getElementById('recentDiv').style.visibility == "hidden" ?
			(skin_images + "ic_expand.gif") :
			(skin_images + "ic_collapse.gif");
	}
	else {
		document.recentDiv.visibility = document.recentDiv.visibility == "hidden" ? "visible" : "hidden";
	}
}

function PopUpCart() {
	CartTimeOut = window.setTimeout('ShowCart();', 1000);
}

function PopUpRecent() {
	RecentTimeOut = window.setTimeout('ShowRecent();', 1000);
}

function OnMenu(img) {
	document.images[img].src = skin_images + "menu_arrow_on.gif";
}
function OffMenu(img) {
	document.images[img].src = skin_images + "menu_arrow.gif";
}

function ShowPopup(src) {
	var bWin = null;
	bWin = window.open(
		src,
		"PopupWind",
		"titlebar=no, toolbar=no, menubar=no, status=no, directories=no, resizable=no, scrollbars=no, top=20, left=20, width=320, height=240"
	);
	while (bWin == null);
	bWin.focus();
}

function PopUpImage(image_source, image_width, image_height) {
	var bWin = null;
	bWin = window.open(
		image_source,
		"ImageWind",
		"titlebar=no, toolbar=no, menubar=no, status=no, directories=no, resizable=no, scrollbars=no, top=20, left=20, width=" + (image_width + 20) + ", height=" + (image_height + 20)
	);
	while (bWin == null);
	bWin.focus();
}

function EnlargeImage(image_source, image_width, image_height) {
	var bWin = null;
	bWin = window.open(
		image_source,
		"ImageWind",
		"titlebar=no, toolbar=no, menubar=no, status=no, directories=no, resizable=no, scrollbars=no, top=20, left=20, width=" + (image_width + 20) + ", height=" + (image_height + 20)
	);
	while (bWin == null);
	bWin.focus();
}

function ConfirmLogout() {
	if (orderItemsCount > 0) {
		if (confirm("You have items in your cart. Logging out will empty your cart\nAre you sure want to continue?")) {
			document.location = urlLogout;
		}
	}
	else {
		if (confirm("Do you really want to logout?")) {
			document.location = urlLogout;
		}
	}
}

function CartConfirmDeleteItem(ocid) {
	if (confirm(msg_confirm_delete_item)) {
		document.location = CartDeleteItemUrl + '&ocid=' + ocid;
	}
}
function CartConfirmEmpty() {
	if (confirm(msg_confirm_empty_cart)) {
		document.location = CartEmptyUrl;
	}
}
function doSearch(text) {
	var frm = document.getElementById('frmHeader');
	frm.search_str.value = text;
	frm.submit();
}

jQuery.extend(jQuery.Popfizz, {
	LoadPopupPage: function (selector, url, spinner) {
		var html = $.getHTML(url);
		jQuery.Popfizz.LoadPopupHtml(selector, html, spinner);
	},
	LoadPopupHtml: function (selector, html, spinner) {
		var content = $('#facebox').find('.content');
		if (content.html() === "") {
			content.append($('<div></div>').attr('id', selector));
		}

		if (spinner !== undefined) {
			var newSpinner = spinner.clone();
			content.append(newSpinner);
			newSpinner.show();
		}

		var container = $($.format('#{0}', selector))
		container.html(html);
		content.html(container.html());
		container.html("");

		if (spinner !== undefined) {
			$('#facebox').find('#spinner').remove();
		}

		// resize
		var popupWidth = $('#facebox').width();
		var docWidth = $(document).width();
		$('#facebox').css('left', $.format("{0}px", (docWidth / 2) - (popupWidth / 2)));
	},
	ShowImage: function (url) {
		var html = $.format('<img src="{0}" />', url);
		$.Popfizz.LoadPopupHtml('popup', html);
	}
});

jQuery.extend({
	format: function (source, params) {
		if (arguments.length === 1) {
			return function () {
				var args = jQuery.makeArray(arguments);
				args.unshift(source);
				return jQuery.format.apply(this, args);
			};
		}
		if (arguments.length > 2 && params.constructor !== Array) {
			params = jQuery.makeArray(arguments).slice(1);
		}
		if (params.constructor !== Array) {
			params = [params];
		}
		jQuery.each(params, function (i, n) {
			source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
		});
		return source;
	},
	startsWith: function (string, match, caseSensitive) {
		if (caseSensitive === false) {
			return (match === string.substring(0, match.length));
		} else {
			return (match.toLowerCase() === string.substring(0, match.length).toLowerCase());
		}
	},
	endsWith: function (string, match, caseSensitive) {
		if (caseSensitive === false) {
			return (match === string.substring(string.length - match.length));
		} else {
			return (match.toLowerCase() === string.substring(string.length - match.length).toLowerCase());
		}
	}
});

$(document).ready(function () {
	$('a[rel*=facebox]').each(function (i, a) {
		var url = $(a).attr('href');
		$(a).attr({ 'href': '#popup' });
		$(a).facebox();
		$(a).click(function (e) {
			$.Popfizz.ShowImage(url);
			return false;
		});
	});
})
