// JavaScript Document
/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, oClassNames){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function getTextForElement(obj) {
		var str=""
		for (var i=0;i < obj.childNodes.length;i++) {
			if (obj.childNodes[i].nodeType==1) {
			// Element node - walk children
				str+=getTextForElement(obj.childNodes[i])
			} else if (obj.childNodes[i].nodeType==3) {
			// Text Node - extract contents
				str = obj.childNodes[i].data
			}
		}
		return str	
}
function setTextForElement(obj,textVal) {
		var str=""
		for (var i=0;i < obj.childNodes.length;i++) {
			if (obj.childNodes[i].nodeType==1) {
			// Element node - walk children
				str+=getTextForElement(obj.childNodes[i])
			} else if (obj.childNodes[i].nodeType==3) {
			// Text Node - extract contents
				obj.childNodes[i].data = textVal;
			}
		}
		return str	
}
function changeTabs (elmidTop, elimidBottom) {
		modelListHeight=document.getElementById('modelLists').offsetHeight;
		oldIdentity = getElementsByClassName(document.getElementById('shopByModelArea'), 'div', 'tabSelected');
		for (var i=0; i<oldIdentity.length; i++) {
			oldIdentity[i].className = 'tab';
		}
		oldIdentityX = getElementsByClassName(document.getElementById('shopByModelArea'), 'div', 'shopByModelList');
		for (var i=0; i<oldIdentityX.length; i++) {
			oldIdentityX[i].className = 'hidden';
		}
		identity=document.getElementById(elmidTop);
		identity.className='tabSelected';
		identity=document.getElementById(elimidBottom);
		identity.className='shopByModelList';
		/*
		identity=document.getElementById('modelLists');
		if (document.getElementById('modelLists').offsetHeight > modelListHeight) {
			modelListHeight=document.getElementById('modelLists').offsetHeight+10;
		}
		identity.style.height = modelListHeight - 4;
		*/
}
function changeClass (elmId,className) {
		identity=document.getElementById(elmId);
		identity.className=className;		
}
function openMenu(caller) {
	hideAll();
	if (myBtn = document.getElementById('showHideButton')) {
		showHide(myBtn,'hide');
	}
	var myX = findPosX(caller);
	var myY = findPosY(caller)+20;
	var menuId = "M-" + caller.id;
	identity=document.getElementById(menuId);
	identity.className="menuOpen";
	identity.style.left = myX + 'px';
	identity.style.top = myY + 'px';
	//changeClass(menuId,"menuOpen",caller);
}
function hideAll () {
		changeClass('M-Our-Watches',"menuClosed");
		changeClass('M-Latest-Arrivals',"menuClosed");
		changeClass('M-Jewelry',"menuClosed");
		changeClass('M-Info',"menuClosed");
}
function showHide (element,expliciteSet) {
	eText = getTextForElement(element);
	if (eText == 'Show' && expliciteSet != 'hide') {
		setTextForElement(element,"Hide");
		changeClass('searchForm','open');
	} else if (eText == 'Hide' || expliciteSet == 'hide') {
		setTextForElement(element,"Show");
		changeClass('searchForm','closed');
	}
}

function openRolexWindow(caller) {
	hideAll();
	var myX = findPosX(caller);
	var myY = findPosY(caller)+20;
	var menuId = "rolexModelInfo";
	identity=document.getElementById(menuId);
	identity.style.left = myX + 'px';
	identity.style.top = myY + 'px';
	identity.style.display = 'block';
}
function closeRolexWindow() {
	var menuId = "rolexModelInfo";
	identity=document.getElementById(menuId);
	identity.style.display = 'none';
}

function openDefinitionWindow(caller) {
	hideAll();
	var callerObj = document.getElementById(caller);
	var myX = findPosX(callerObj);
	var myY = findPosY(callerObj)+20;
	//alert(myY);
	var menuId = caller + "Window";
	identity=document.getElementById(menuId);
	identity.style.left = myX + 'px';
	identity.style.top = myY + 'px';
	identity.style.display = 'block';
}
function closeDefinitionWindow(caller) {
	var menuId = caller + "Window";
	identity=document.getElementById(menuId);
	identity.style.display = 'none';
}
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
userAgent = window.navigator.userAgent;
browserVers = parseInt(userAgent.charAt(userAgent.indexOf("/")+1),10);
function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function findElement(n,ly) {
	if (browserVers < 4)		return document[n];
	var curDoc = ly ? ly.document : document;
	var elem = curDoc[n];
	if (!elem) {
		for (var i=0;i<curDoc.layers.length;i++) {
			elem = findElement(n,curDoc.layers[i]);
			if (elem) return elem;
		}
	}
	return elem;
}

function changeImages() {
	return;
	if (document.images && (preloadFlag == true)) {
		var img;
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			img = null;
			if (document.layers) {
				img = findElement(changeImages.arguments[i],0);
			}
			else {
				img = document.images[changeImages.arguments[i]];
			}
			if (img) {
				img.src = changeImages.arguments[i+1];
			}
		}
	}
}
