
var windowsdownload = null;
var macdownload = null;
var os = null;
var currenttooltip = null;
var tooltiptimer = null;
var tooltipbuttons = null;
var tooltips = null;
registerEvent(window, "load", homelanding);
registerEvent(window, "load", tooltipLoader);

function registerEvent(element, etype, efunction){
	if(document.attachEvent){
		element.attachEvent("on"+etype, efunction);
	}
	else{
		element.addEventListener(etype, efunction, false);
	}
}

function homelanding(){
	windowsdownload = document.getElementById("windowsdownload");
	macdownload = document.getElementById("macdownload");
	var windows1btn = document.getElementById("windows1btn");
	var windows2btn = document.getElementById("windows2btn");
	var mac1btn = document.getElementById("mac1btn");
	var mac2btn = document.getElementById("mac2btn");
	var screenshots = elmtsByClassName(null,"screenshot","a");
	if (navigator.userAgent.indexOf("Win") != -1){		
		os = "windows";
	}
	else if(navigator.userAgent.indexOf("Mac") != -1){
		os = "mac";
	}	
	if(os){	
		if(windows1btn && windows2btn && mac1btn && mac2btn){
			registerEvent(windows1btn, "click", function(e){return toggleOS(e, true)});
			registerEvent(windows2btn, "click", function(e){return toggleOS(e, true)});
			registerEvent(mac1btn, "click", function(e){return toggleOS(e, false)});
			registerEvent(mac2btn, "click", function(e){return toggleOS(e, false)});
		}
		if(os == "windows"){
			windowsdownload.style.display = "block";
			macdownload.style.display = "none";
		}
		else if(os == "mac"){
			windowsdownload.style.display = "none";
			macdownload.style.display = "block";			
		}
	}
	else{
		if(windowsdownload && macdownload){
			windowsdownload.style.display = "block";
			macdownload.style.display = "block";
		}
		if(windows1btn && windows2btn && mac1btn && mac2btn){
			windows1btn.parentNode.style.display = "none";
			windows2btn.parentNode.style.display = "none";
			mac1btn.parentNode.style.display = "none";
			mac2btn.parentNode.style.display = "none";
		}
	}
	var moreabouthome = document.getElementById("moreabouthome");
	var moreabouthomepanel = document.getElementById("moreabouthomepanel");
	if(moreabouthome && moreabouthomepanel){
		registerEvent(moreabouthome, "click", function(e){return toggleAbout(e, moreabouthomepanel, moreabouthome, true)});
	}
	
	for(i=0;i<screenshots.length;i++){
		registerEvent(screenshots[i], "click", function(e){return openscreenshot(e)});
	}
}

function toggleOS(e, windows){
	if(windowsdownload && macdownload){
		if(windows){
			macdownload.style.display = "none";
			windowsdownload.style.display = "block";
		}
		else{
			windowsdownload.style.display = "none";
			macdownload.style.display = "block";
		}
	}
	if(e.preventDefault){
		e.preventDefault();
	}
	else{
		e.cancelBubble = true;
		return false;
	}
}

function toggleAbout(e, element, srcelement, block){
	if(element){		
		if(element.style.display == "" || element.style.display == "none"){
			element.style.display = "block";
			srcelement.className = "open";
		}
		else{
			element.style.display = "none";
			srcelement.className = "";
		}
	}
	if(e.preventDefault){
		e.preventDefault();
	}
	else{
		e.cancelBubble = true;
		return false;
	}
}

function openscreenshot(e){
	var element = getSourceElement(e);
	if( element.nodeName == "IMG", "EM" ) element = element.parentNode;
	
	if(element.href){
		window.open(element.href,"screenshot",'width=780,height=537,menubar=no,status=no,titlebar=no,toolbar=no',true)
	}
	if(e.preventDefault){
		e.preventDefault();
	}
	else{
		e.cancelBubble = true;
		return false;
	}
}

function elmtsByClassName(root, classname, tag){
	if (!root){
		root = document.body;	
	}
	var elmts = root.getElementsByTagName(tag);
	var newelmts = new Array();
	for(var i=0; i<elmts.length; i++){	
		if(elmtHasClass(elmts[i],classname)){
			newelmts.push(elmts[i]);
		}
	}
	return newelmts;
}

function elmtHasClass(elmt, classname){
	var classnames = elmt.className.split(" ");
	for(var i=0; i<classnames.length; i++){
		if(classnames[i] == classname){
			return true;
		}
	}
	return false;
}

function getSourceElement(source){
	var sourceelement = null;
	if(!source){
		source = window.event;
	}
	if(source.srcElement){
		sourceelement = source.srcElement;	
	}
	else{
		sourceelement = source.target;	
	}
	return sourceelement;
}

// Tooltip
function tooltipLoader(){
	tooltipbuttons = elmtsByClassName(null, "homettbtn", "img");
	tooltips = elmtsByClassName(null, "homett", "div");
	
	if(tooltipbuttons.length == tooltips.length){
		for(var i=0; i<tooltipbuttons.length; i++) {
			if (i < tooltips.length && !(i >= tooltips.length)){
				var ttbtn = tooltipbuttons[i];
				var tt = tooltips[i];				
				registerEvent(tooltipbuttons[i], "mouseover", function(e){tooltipHover(e, true)});
				registerEvent(tooltips[i], "mouseover", function(e){tooltipHover(e, false)});
				registerEvent(tooltipbuttons[i], "mouseout", function(e){tooltipOut(e)});
				registerEvent(tooltips[i], "mouseout", function(e){tooltipOut(e)});				
			}
		}
	}
}

function coords(x, y) {
	this.x = x;
	this.y = y;
}

function getMouseCoordinates(e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	return new coords(posx, posy);
}


function getObjectCoordinates( obj )
{
	var posX = 0, posY = 0;
	if( !obj ) return false;
	
	if( obj.offsetParent )
	{
		while( obj.offsetParent )
		{
			posX += obj.offsetLeft;
			posY += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}else if( obj.x )
	{
		posX += obj.x;
		posY += obj.y;
	}
	
	return new coords( posX , posY );
}


/*
    function get_obj_x( obj )
    {
      var left = 0;
      if( obj.offsetParent )
      {
        while( obj.offsetParent )
        {
          left += obj.offsetLeft;
          obj = obj.offsetParent;
        }
      }
      else if( obj.x )
      {
        left += obj.x;
      }
      return left;
    }
    
    function get_obj_y( obj )
    {
      var top = 0;
      if( obj.offsetParent )
      {
        while( obj.offsetParent )
        {
          top += obj.offsetTop;
          obj = obj.offsetParent;
        }
      }
      else if( obj.y )
      {
        top += obj.y;
      }
      return top;
    }*/

function tooltipHover(e, isttbtn){
	if(isttbtn){
		var tooltipbtn = getSourceElement(e);
		var newtooltip = null;
		if(tooltipbtn){
			for (var i=0; i<tooltipbuttons.length; i++){
				if (tooltipbuttons[i] == tooltipbtn){
					newtooltip = tooltips[i];	
					if(currenttooltip != newtooltip){
						closecurrenttooltip();		
					}
					clearTimeout(tooltiptimer);
					if(currenttooltip != newtooltip){
						currenttooltip = newtooltip;
						
						newtooltip.style.position = "absolute";
						newtooltip.style.display = 'block';
						var xy = new coords(0, 0);
						
						//xy = getMouseCoordinates(e);
						xy = getObjectCoordinates( e.srcElement ? e.srcElement : e.target );

						var newleft = xy.x - 49 + 5;
						var bodywidth = document.body.offsetWidth;
						var tooltipwidth = newtooltip.offsetWidth;
						
						if (tooltipwidth + newleft > bodywidth){
							newleft = bodywidth - tooltipwidth;
						}
						
						if (newleft < 0){
							newleft = 0;
						}
						
						newtooltip.style.left = (newleft + 'px');
						newtooltip.style.top = ( xy.y + 11 ) + 'px';
					}
					break;	   
				}
			}
		}
	}
	else{
		clearTimeout(tooltiptimer);
	}
}

function tooltipOut(e, tooltip){
	tooltiptimer = setTimeout("closecurrenttooltip()", 500);
}

function closecurrenttooltip(){
	if (currenttooltip != null){
		currenttooltip.style.display = "none";
		currenttooltip = null;
	}
}
// End Tooltip
