﻿function createLayer(name)
{
	if(document.layers)
	{
		var elem = new Layer(inset.innerWidth)
		elem.name = name
		elem.style = elem
	}
	else if(document.getElementById)
	{
		var elem = document.createElement("div")
		elem.id = name
		document.body.appendChild(elem)
	}
	return elem
}

function getElement(id)
{
	if(document.layers)
	{
		return document.layers[id]
	}
	else if(document.getElementById)
	{
		return document.getElementById(id)
	}
	else if(document.all)
	{
		return document.all(id)
	}
}

function getMouseX(e)
{
	if(!e) e = window.event;
	if(document.layers)
	{
		return e.pageX;
	}
	else if(document.all)
	{
		return e.clientX + getWindowScrollX();
	}
	else if(document.getElementById)
	{
		return e.clientX + getWindowScrollX();
	}
}

function getMouseY(e)
{
	if(!e) e = window.event;
	if(document.layers)
	{
		return e.pageY;
	}
	else if(document.all)
	{
		return e.clientY + getWindowScrollY();
	}
	else if(document.getElementById)
	{
		return e.clientY + getWindowScrollY();
	}
}

function getElementLeft(id)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.left)
		{
			return parseInt(elem.left)
		}
		else if(elem.offsetLeft)
		{
			return parseInt(elem.offsetLeft)
		}
		else if(elem.style)
		{
			return parseInt(elem.style.left)
		}
	}
}

function getElementTop(id)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.top)
		{
			return parseInt(elem.top)
		}
		else if(elem.offsetTop)
		{
			return parseInt(elem.offsetTop)
		}
		else if(elem.style)
		{
			return parseInt(elem.style.top)
		}
	}
}

function getElementWidth(id)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.width)
		{
			return parseInt(elem.width)
		}
		else if(elem.offsetWidth)
		{
			return parseInt(elem.offsetWidth)
		}
		else if(elem.style)
		{
			return parseInt(elem.style.pixelWidth)
		}
	}
}

function getElementHeight(id)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.height)
		{
			return parseInt(elem.height)
		}
		else if(elem.offsetHeight)
		{
			return parseInt(elem.offsetHeight)
		}
		else if(elem.style)
		{
			return parseInt(elem.style.pixelHeight)
		}
	}
}

function showLayer(layerObject) {
	if(document.layers) {
		layerObject.style.visibility = "show"
	}
	else {
		if(document.all || document.getElementById) {
			layerObject.style.visibility = "visible"
		}
	}
}
function hideLayer(layerObject) {
	if(document.layers) {
		layerObject.style.visibility = "hide"
	}
	else {
		if(document.all || document.getElementById) {
			layerObject.style.visibility = "hidden"
		}
	}
}

function removeLayer(layer) {
     layer.parentNode.removeChild(layer);
}

function setZIndex(elementObject, newZIndex)
{
	if(document.layers)
		elementObject.zIndex = newZIndex;
	else
		elementObject.style.zIndex = newZIndex;
}

function moveObject(moveObject, x, y)
{
	if(moveObject)
		if(document.layers)
			moveObject.moveTo(x, y);
		else if(document.getElementById)
		{
			moveObject.style.left = x;
			moveObject.style.top = y;
		}
		else
		{
			moveObject.style.pixelLeft = x;
			moveObject.style.pixelTop = y;
		}
}
function scrollPageTo(x, y)
{
	
	var newLeft;
	var newTop;
	var windowWidth;
	var windowHeight;
	var windowLeft;
	var windowTop;
	var scrollSpeed = .5;
	var scrollMargin = 100
	
	// Determine window properties.
	if(navigator.userAgent.toLowerCase().indexOf("firefox") != -1)
	{
		var windowWidth = document.body.clientWidth;
		var windowHeight = document.body.clientHeight;
		var windowLeft = document.body.scrollLeft;
		var windowTop = document.body.scrollTop;
		x -= windowLeft;
		y -= windowTop;
	}
	else if(document.layers || document.getElementById)
	{
		var windowWidth = window.innerWidth;
		var windowHeight = window.innerHeight;
		var windowLeft = window.pageXOffset;
		var windowTop = window.pageYOffset;
		x -= windowLeft;
		y -= windowTop;
	}
	else 
	{
		var windowWidth = document.body.offsetWidth;
		var windowHeight = document.body.offsetHeight;
		var windowLeft = document.body.scrollLeft;
		var windowTop = document.body.scrollTop;
	}
	if(y < scrollMargin) 
	{
		y -= scrollMargin
	}
	else if(y > windowHeight - scrollMargin) 
	{
		y += scrollMargin
	}
	
	newLeft = windowLeft;
	newTop = windowTop;
	
	// Determine scroll properties.
	if(x < windowLeft) newLeft = windowLeft + (x * scrollSpeed);
	if(x > windowWidth) newLeft = windowLeft + ((x - windowWidth) * scrollSpeed);
	if(y < 0) newTop = windowTop + (y * scrollSpeed);
	if(y > windowHeight) newTop = windowTop + ((y - windowHeight) * scrollSpeed);
	
	// Scroll the page.
	if(document.layers) self.scrollTo(newLeft, newTop);
	else parent.scroll(newLeft, newTop);
}

function GetDocumentHeight() {
	if(document.layers || document.getElementById)
	{
		return document.body.offsetHeight;
	}		
	else 
	{
		return document.body.scrollHeight;
	}

}

function myLayerObject()
{
	// Create new layer object.
	var obj = new Object();
	// Assign default values to new layer object.
	obj.layer = null;
	obj.index = 0;
	obj.left = 0;
	obj.top = 0;
	obj.width = 0;
	obj.height = 0;
	// Return new layer object.
	return obj;
}

function handleNNresize()
{
	if (document.layers)
		if (window.innerWidth != ws || window.innerHeight != hs)
			window.location.href = window.location.href;
}
function getOverProductObject(x, y)
{
	var o = null;
	for(var i = 0; i < myProductLayerObjects.length; i++)
	{
		o = myProductLayerObjects[i];			
		if(x >= o.left && x <= (o.left + o.width) && y >= o.top && y <= (o.top + o.height))
			return o;
	}	
	return null;
}

function getProductObjectbyImageLayerObject(imageLayerObject)
{
	var o = null;
	for(var i = 0; i < myProductLayerObjects.length; i++)
	{
		o = myProductLayerObjects[i];
		if(o.imageLayerObject == imageLayerObject)
			return o;
	}
	
	return null;
}	

function swapOut(imageIndex, type) {
	//reset
	for(var i = 0;  i < imageIDs.length; i++) {
		document['ImageBG' + i].src = "/personality/images/contact_sheet_off.gif";
	}
	if(type == "over") {
		document['ImageBG' + imageIndex].src = "/personality/images/contact_sheet_over.gif";
	}
	else {	
		document['ImageBG' + imageIndex].src = "/personality/images/contact_sheet_off.gif";
	}
}


function getElementAspectRatio(id, width, height)
{
	var elem = getElement(id)
	if(elem)
	{
		return parseFloat(getElementWidth(id)) / getElementHeight(id)
	}
}

function setElementAnchor(id, left, top)
{
	setElementLeft(id, left)
	setElementTop(id, top)
}

function setElementDimensions(id, width, height)
{
	setElementWidth(id, width)
	setElementHeight(id, height)
}

function setElementLeft(id, left)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.left)
		{
			elem.left = left
		}
		else if(elem.style)
		{
			elem.style.left = left + "px"
		}
	}
} 

function setElementHeight(id, height)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.height)
		{
			elem.height = height
		}
		else if(elem.style)
		{
			elem.style.height = height + "px"
		}
	}
}

function setElementHTML(name, content)
{
	if(document.getElementById) {
		var div = document.getElementById(name)
		div.innerHTML = content
	} else if(document.all) {
		var div = document.all(name)
		div.innerHTML = content
	} else if(document.layers) {
		var div = document.layers[name]
		div.document.open()
		div.document.write(content)
		div.close()
	}
}

function setElementStyleProperty(id, property, value)
{
	var elem = getElement(id)
	if(elem)
	{
		try
		{
			eval("elem.style." + property + "='" + value + "'")
		}
		catch(e) {}
	}
}

function setElementTop(id, top)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.top)
		{
			elem.top = top
		}
		else if(elem.style)
		{
			elem.style.top = top + "px"
		}
	}
}

function setElementVisibility(id, newVisibility)
{
	var elem = getElement(id)
	if(elem)
	{
		if(document.layers)
		{
			elem.visibility = (newVisibility ? "show" : "hide")
		}
		else if(document.getElementById)
		{
			elem.style.visibility = (newVisibility ? "visible" : "hidden")
		}
	}
}

function setElementWidth(id, width)
{
	var elem = getElement(id)
	if(elem)
	{
		if(elem.width)
		{
			elem.width = width
		}
		else if(elem.style)
		{	
			elem.style.width = width + "px"
		}
	}
}


function pageWidth() {
	if (document.body.scrollWidth > document.body.offsetWidth) // all but Explorer Mac
	{
		return document.body.scrollWidth
	}
	else // Explorer Mac, would also work in Explorer 6 Strict, Mozilla and Safari
	{
		return document.body.offsetWidth
	}
}

function pageHeight() {
	if (document.body.scrollHeight > document.body.offsetHeight) // all but Explorer Mac
	{
		return document.body.scrollHeight
	}
	else // Explorer Mac, would also work in Explorer 6 Strict, Mozilla and Safari
	{
		return document.body.offsetHeight
	}
}

function pageInnerWidth() {
	if (self.innerWidth) // all except Explorer
	{
		return self.innerWidth
	}
	else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
	{
		return document.documentElement.clientWidth
	}
	else if (document.body) // other Explorers
	{
		return document.body.clientWidth
	}
}

function pageInnerHeight() {
	if (self.innerHeight) // all except Explorer
	{
		return self.innerHeight
	}
	else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
	{
		return document.documentElement.clientHeight
	}
	else if (document.body) // other Explorers
	{
		return document.body.clientHeight
	}
}
               
function setObjectInCenter(id)
{
//old method - now using new method setObjectInCenter(id, parentId)
    //alert('here' + id);
    var elem = getElement(id); 
     var x = 0;
     var y = 0;

    if (elem)
    {
        if(document.documentElement)
        {
            x = (document.documentElement.clientWidth/ 2) - (getElementWidth(id) / 2)+ document.documentElement.scrollLeft;                   
            y = (document.documentElement.clientHeight / 2) - (getElementHeight(id) / 2) + document.documentElement.scrollTop;
            
        }
        else
        {
            x = (window.innerWidth / 2) - (getElementWidth(id) / 2)+ document.body.scrollLeft;                   
            y = (window.innerHeight / 2) - (getElementHeight(id) / 2)+ document.body.scrollTop; 
        }
                       
        
        elem.style.top = y +'px';
        elem.style.left = x +'px';
    }
    //elem.style.visibility = 'visible';
  
}

function setObjectInCenter(id, parentId)
{
    //alert('id=' + id + '\r\nparentId=' + parentId);
    var elem = getElement(id); 
     var x = 0;
     var y = 0;

    var parentLayer = getElement(parentId);
    if (elem)
    {
        if (parentLayer)
        {
            x = (parentLayer.clientWidth/ 2) - (getElementWidth(id) / 2)+ parentLayer.offsetLeft;                   
            y = (parentLayer.clientHeight / 2) - (getElementHeight(id) / 2) + parentLayer.offsetTop;
        }
        else if(document.documentElement)
        {
            x = (document.documentElement.clientWidth/ 2) - (getElementWidth(id) / 2)+ document.documentElement.scrollLeft;                   
            y = (document.documentElement.clientHeight / 2) - (getElementHeight(id) / 2) + document.documentElement.scrollTop;
            
        }
        else
        {
            x = (window.innerWidth / 2) - (getElementWidth(id) / 2)+ document.body.scrollLeft;                   
            y = (window.innerHeight / 2) - (getElementHeight(id) / 2)+ document.body.scrollTop; 
        }
                       
        
        elem.style.top = y +'px';
        elem.style.left = x +'px';
    }
    //elem.style.visibility = 'visible';
  
}

function updateFloatingPanel(id, parentId)
{
    //alert('here');
    setObjectInCenter(id, parentId);
    getElement(id).style.visibility='visible';
}


function FindPosition(obj, posType)
{
    var curpos = 0;
    if (obj.offsetParent)
    {
        curpos = eval('obj.' + posType);
        while (obj = obj.offsetParent)
        {
	        curpos += eval('obj.' + posType);
        }
    }
    return curpos;
}

function UpdateProgressPanel()
{
    var divLoading1 = document.getElementById('divLoading1');
    
    var h = document.documentElement.clientHeight;
    var w = document.documentElement.clientWidth;
    
    if (document.body.clientHeight > h)
    {
        h = document.body.clientHeight;
    }
    
    if (document.body.clientWidth > w)
    {
        w = document.body.clientWidth;
    }
    
    divLoading1.style.height = h + "px";
    divLoading1.style.width = w + "px"; 
   
   var loadingPara = document.getElementById('loadingPara');
    loadingPara.style.height = "50px";
    loadingPara.style.width = "100px";
    
    setObjectInCenter('loadingPara', null);
}

function getWindowScrollX()
{
	if(window.pageXOffset)
	{
		return window.pageXOffset;
	}
	else if(document.body.scrollLeft)
	{
		return document.body.scrollLeft;
	}
	else if(document.documentElement.scrollLeft)
	{
		return document.documentElement.scrollLeft;
	}
	else
	{
		return 0;
	}
}

function getWindowScrollY()
{
	if(window.pageYOffset)
	{
		return window.pageYOffset;
	}
	else if(document.body.scrollTop)
	{
		return document.body.scrollTop;
	}
	else if(document.documentElement.scrollTop)
	{
		return document.documentElement.scrollTop;
	}
	else
	{
		return 0;
	}
}

function addEvent(obj, type, fn)
{
	if (obj.addEventListener)
		obj.addEventListener(type, fn, false);
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn](window.event); }
		obj.attachEvent("on"+type, obj[type+fn]);
	}
}

function removeEvent(obj, type, fn)
{
	if (obj.removeEventListener)
		obj.removeEventListener(type, fn, false);
	else if (obj.detachEvent)
	{
		obj.detachEvent("on"+type, obj[type+fn]);
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}