/**************************************************/
/*START: Browser Detection */
function BrowserDetection()
{
	var sUserAgent = navigator.userAgent.toLowerCase();

	// browser name
	this.isIE = (sUserAgent.indexOf('msie') != -1);
}

var oBrowser = new BrowserDetection();
/*END: Browser Detection */
/**************************************************/

/**************************************************/
var BrowserInfo = new function() {

	var userAgent = navigator.userAgent.toLowerCase();

	// check user agent
	function is(str) { return userAgent.indexOf(str) > -1; }

	// version detection
	function version() {
		var versionString = '';
		var specificOffset = 0;
		var specificLength = 1;

		if(b.isIE)      { versionString = 'msie'; specificOffset = 1; }
		if(b.isFirefox) { versionString = 'firefox/'; specificLength = 3; }
		if(b.isSafari)  { versionString = 'version/'; } // note: detects only safari 3+
		if(b.isChrome)  { versionString = 'chrome/'; }
		if(b.isOpera)   { versionString = 'version/'; specificLength = 2;
			// for Opera version < 10
			if(userAgent.indexOf(versionString) == -1) {
				versionString = 'opera/'; specificLength = 1;
			}
		}

		return parseFloat((userAgent.substr(userAgent.indexOf(versionString) + versionString.length + specificOffset, specificLength)));
	}

	// browser detection
	var b = {};
	b.isOpera      = typeof window.opera != 'undefined';
	b.isIE         = is('msie') && b.isOpera == false;
	b.isWebkit     = is('webkit');
	b.isChrome     = is('chrome');
	b.isSafari     = is('safari') && (b.isChrome == false) && is('version'); // note: detects only safari 3+
	b.isMozilla    = is('gecko') && b.isWebkit == false && b.isSafari == false && b.isChrome == false && b.isOpera == false;
	b.isFirefox    = b.isMozilla == true && is('firefox');
	b.isKonqueror  = navigator.product != null && navigator.product.toLowerCase().indexOf('konqueror') > -1;

	this.browser   = b;

	//browser version initialization
	b.version = version();
	if(b.version == 0 || isNaN(b.version)) { b.version = false; }

	// backward compatibility, use b.version to detect browser version in new scripts
	b.isSafari3    = b.isSafari && (b.version == 3);
	b.isSafariGte3 = b.isSafari && (b.version >= 3);
	b.isIE7        = b.isIE && (b.version == 7);
	b.isIEpre8     = b.isIE && (b.version < 8);
	b.isIEpre7     = b.isIE && (b.version < 7);
	b.isIEpre6     = b.isIE && (b.version < 6);

	//OS detection
	var os = {};
	os.isLinux     = (navigator.platform.indexOf("Linux") == 0),
	os.isMac       = (navigator.platform.indexOf("Mac") == 0),
	os.isWin       = (navigator.platform.indexOf("Win") == 0)
	this.os        = os;
	
	// windows version detection >> 5.0=2000 5.1=XP, 5.2=2003, 6.0=Vista, 6.1=Win7
	if(this.os.isWin) {
		this.os.winVersion = parseFloat(userAgent.substr(userAgent.indexOf('nt') + 3, 3));
	}
	
	//has transparency support detection
	this.hasTransparencySupport = true;
	if(this.os.isLinux || this.browser.isKonqueror || (this.os.isMac && !this.browser.isSafariGte3)) {
		this.hasTransparencySupport = false;
	}

	
}



/**************************************************/

if (BrowserInfo.browser.isIEpre8) window.attachEvent("onload", initNavigation);

function initNavigation()
{
	var ulLevel1 = document.getElementById("subnavigation");
	if (!ulLevel1) return;
	
	for (var i=0; i<ulLevel1.childNodes.length; i++) 
	{
		var liLevel1 = ulLevel1.childNodes[i];	// Primnav-li
		if (liLevel1.nodeName == 'LI')
		{
			var ulLevel2 = liLevel1.getElementsByTagName('ul')[0];	// Seknav-UL
			if (ulLevel2)
			{
				liLevel1.ulLevel2 = ulLevel2;
				liLevel1.onmouseover = function()
				{
					showFrame(this.ulLevel2);
				};
			}
		}
	}
	
	ulLevel1.onmouseout = function()
	{
		hideFrame();
	};
}

function showFrame(obj)
{
	obj.style.display = "block";
	var iframe = document.getElementById("nav-iframe-layer");
	iframe.style.top = getPosition(obj).top + "px";
	iframe.style.left = getPosition(obj).left + "px";
	iframe.style.height = getObjectHeightObj(obj) +"px"
	iframe.style.width = getObjectWidthObj(obj) + "px";
	iframe.style.display = "block";
	iframe.menuLayer = obj;
}

function hideFrame()
{
	var iframe = document.getElementById("nav-iframe-layer");
	if(iframe.menuLayer) iframe.menuLayer.style.display = "none";
	iframe.style.display = "none";
}


function getPosition(obj)
{
	var pos = {left:0, top:0};
	if(typeof obj.offsetLeft != 'undefined') {
		while (obj) {
			pos.left += obj.offsetLeft;
			pos.top += obj.offsetTop;
			obj = obj.offsetParent;
		}
	} else {
		pos.left = obj.left;
		pos.top = obj.top;
	}
	return pos;
}

function getObjectWidthObj(obj)
{
	var iObjectWidth = 0;
	iObjectWidth = obj.offsetWidth;
	return parseInt(iObjectWidth);
}

function getObjectHeightObj(obj)
{
	var iObjectHeight = 0;
	iObjectHeight = obj.offsetHeight;
	return parseInt(iObjectHeight);
}

function displayForms(that)
{
	//only for radio buttons
	if(that.type == 'radio') {
		var elementName = that.name;
		var elements = document.getElementsByName(elementName);
		
		for (var i=0; i<elements.length; i++) {
			var singleElementId = 'table-'+elements[i].id;
			var singleElement = document.getElementById(singleElementId);
			if (singleElement)
				singleElement.style.display = "none";
		}
	}

	//for radio buttons and checkboxes
	var elementId = 'table-'+that.id;
	var element = document.getElementById(elementId);
	if (element) {
		if(that.checked) {
			element.style.display = "block";
		} else {
			element.style.display = "none";
		}
	}
}

function submitForm()
{
	form1Validator.resetMarks();
	var v = form1Validator.validate();
	return (v==null);
}

function clearForm() {
	form1Validator.resetMarks();
	document.getElementById('summary').className="summary-hidden";
}

function zoom_image(img)
{
	var f = window.open("/service/image_zoom.jsp?img="+img, "imagezoom", "width=600,height=500,menubar=no,resizable=yes,scrollbars=yes");
	f.focus();
}

function checkPostalCode(langPostcode, msg)
{
	var postcode = document.merchantsearchform.postalCode.value;
	if(postcode.length > 1 && postcode != langPostcode)
	{
		document.merchantsearchform.submit();
		return true;
	}
	else
	{
		alert(msg);
		document.merchantsearchform.postalCode.focus();
		return false;
	}	
}
