/*

Inspired by the lightbox implementation found at http://www.huddletogether.com/projects/lightbox/
*/

/*-------------------------------GLOBAL VARIABLES------------------------------------*/

var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

/*-----------------------------------------------------------------------------------------------*/
//Browser detect script origionally created by Peter Paul Koch at http://www.quirksmode.org/

function getBrowserInfo() {
	if (checkIt('konqueror')) {
		browser = "Konqueror";
		OS = "Linux";
	}
	else if (checkIt('safari')) browser 	= "Safari"
	else if (checkIt('omniweb')) browser 	= "OmniWeb"
	else if (checkIt('opera')) browser 		= "Opera"
	else if (checkIt('webtv')) browser 		= "WebTV";
	else if (checkIt('icab')) browser 		= "iCab"
	else if (checkIt('msie')) browser 		= "Internet Explorer"
	else if (!checkIt('compatible')) {
		browser = "Netscape Navigator"
		version = detect.charAt(8);
	}
	else browser = "An unknown browser";

	if (!version) version = detect.charAt(place + thestring.length);

	if (!OS) {
		if (checkIt('linux')) OS 		= "Linux";
		else if (checkIt('x11')) OS 	= "Unix";
		else if (checkIt('mac')) OS 	= "Mac"
		else if (checkIt('win')) OS 	= "Windows"
		else OS 								= "an unknown operating system";
	}
}

function checkIt(string) {
	place = detect.indexOf(string) + 1;
	thestring = string;
	return place;
}
/*-----------------------------------------------------------------------------------------------*/


//
//	Configuration
//
var fileBottomNavCloseImage = "cmsimages/close.gif";
var redGearLogo = "cmsimages/redgearlolgo.jpg";

// -----------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------


Event.observe(window, 'load', initialize, false);
Event.observe(window, 'load', getBrowserInfo, false);
Event.observe(window, 'unload', Event.unloadCache, false);

// Onload, make all links that need to trigger a lightbox active
function initialize(){
   	addLightboxMarkup();
	
}

// Add in markup necessary to make this work. Basically two divs:
// Overlay holds the shadow
// Lightbox is the centered square that the content is put into.
function addLightboxMarkup() {

       var objBody = document.getElementsByTagName("body").item(0);
		
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','overlay');
		objOverlay.style.display = 'none';
		objBody.appendChild(objOverlay);
		
		var objLightbox = document.createElement("div");
		objLightbox.setAttribute('id','lightbox');
		objLightbox.style.display = 'none';
		objBody.appendChild(objLightbox);
	
		var objOuterInfoContainer = document.createElement("div");
		objOuterInfoContainer.setAttribute('id','outerInfoContainer');
		objLightbox.appendChild(objOuterInfoContainer);

		var objInfoContainer = document.createElement("div");
		objInfoContainer.setAttribute('id','infoContainer');
		objOuterInfoContainer.appendChild(objInfoContainer);
		
		var objInfoContent = document.createElement("div");
		objInfoContent.setAttribute('id','infoContent');
		objInfoContainer.appendChild(objInfoContent);
		
		var objInfoContent = document.createElement("div");
		objInfoContent.setAttribute('id','infoContent');
		objInfoContainer.appendChild(objInfoContent);
		
		var objCardLogoContainer = document.createElement("div");
		objCardLogoContainer.setAttribute('id','cardLogo');
		objInfoContent.appendChild(objCardLogoContainer);
		
		var objLogo = document.createElement("img");
		objLogo.setAttribute('src', redGearLogo);
		objLogo.setAttribute('style','top:0;left:0;float: left;background-repeat: no-repeat;');
		objCardLogoContainer.appendChild(objLogo);
		
		var objCardInfo = document.createElement("div");
		objCardInfo.setAttribute('id','cardInfo');
		objInfoContent.appendChild(objCardInfo);
		
		var objTitleContainer = document.createElement("div");
		objTitleContainer.setAttribute('id','titleContainer');
		objTitleContainer.className = 'clearfix';
		objLightbox.appendChild(objTitleContainer);

		var objTitleData = document.createElement("div");
		objTitleData.setAttribute('id','titleData');
		objTitleContainer.appendChild(objTitleData);
	
		var objTitleDetails = document.createElement("div");
		objTitleDetails.setAttribute('id','titleDetails');
		objTitleContainer.appendChild(objTitleDetails);
	
		var objCaption = document.createElement("span");
		objCaption.setAttribute('id','caption');
		objTitleDetails.appendChild(objCaption);
	
		var objBottomPrevNext = document.createElement("span");
		objBottomPrevNext.setAttribute('id','objBottomPrevNext');
		objTitleData.appendChild(objBottomPrevNext);     
		
		var objBottomNavCloseLink = document.createElement("a");
		objBottomNavCloseLink.setAttribute('id','bottomNavClose');
		objBottomNavCloseLink.setAttribute('class','lbAction');
		objBottomNavCloseLink.setAttribute('rel','deactivate');
		objBottomNavCloseLink.onclick = function() { deactivate(); return false; }
		objBottomNavCloseLink.setAttribute('href','#');
		
		objBottomPrevNext.appendChild(objBottomNavCloseLink);
	
		var objBottomNavCloseImage = document.createElement("img");
		objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage);
		objBottomNavCloseImage.setAttribute('style','padding-left: 50px;');
		objBottomNavCloseLink.appendChild(objBottomNavCloseImage);
 
}

function showDialogBox()
{
  this.content = "text.html";
  activate();
}

function activate()
{
	if (browser == 'Internet Explorer')
	{
	  this.getScroll();
	  this.prepareIE('100%', 'hidden');
	  this.setScroll(0,0);
	  this.hideSelects('hidden');
	}
	this.displayLightbox("block");
}

// Taken from lightbox implementation found at http://www.huddletogether.com/projects/lightbox/
function getScroll()
{
  	if (self.pageYOffset) 
  	{
	  	this.yPos = self.pageYOffset;
		} else if (document.documentElement && document.documentElement.scrollTop){
			this.yPos = document.documentElement.scrollTop; 
		} else if (document.body) {
			this.yPos = document.body.scrollTop;
		}
}
	
function setScroll(x, y)
{
	window.scrollTo(x, y); 
}

function displayLightbox(display)
{
    $('overlay').style.display = display;
	$('lightbox').style.display = display;
	if(display != 'none') this.loadText();
}

function prepareIE(height, overflow)
{
		bod = document.getElementsByTagName('body')[0];
		bod.style.height = height;
		bod.style.overflow = overflow;
  
		htm = document.getElementsByTagName('html')[0];
		htm.style.height = height;
		htm.style.overflow = overflow; 
}
	
// In IE, select elements hover on top of the lightbox
function hideSelects(visibility)
{		selects = document.getElementsByTagName('select');
		for(i = 0; i < selects.length; i++) {
			selects[i].style.visibility = visibility;
		}
}

function loadText()
{
    var State = 'SalesRep.aspx?' + 'ST=' + $('states').value;
    new Ajax.Request(State,  
      {
         method:'get',
         onSuccess: function(transport)
                   {response=transport.responseText || "no response text";
                      $('cardInfo').innerHTML = response;
                      dRText = document.getElementsByClassName('contactinfo');
                      info = "<div id='lbContent'>" + dRText[0].innerHTML + "</div>";
                      new Insertion.Before($('lbLoadMessage'), info);
                      $('lightbox').className = "done";	
                      
                    },
         onFailure: function(){ alert('Something went wrong...') }   
      }); 
     
}
	
function deactivate(){
		this.getScroll();
		if (browser == "Internet Explorer"){
		    
			this.setScroll(0,this.yPos);
			this.prepareIE("auto", "auto");
			this.hideSelects("visible");
		}
		this.displayLightbox("none");
	}


