var detailData;
var detailDataTimeOut;
var slideShows = [];

var cancelSlideShows = function()
{
   var length = slideShows.length;
   for(var i = 0; i < length; i++)
   {
      show = slideShows.pop();
      show.stop();
      show = null;
   }
}

function prefixHref(href, prefix)
{
   var newHref = "";
   if(href.search(/(^http)/) == 0)
   {
      var hrefParts = href.match(/(^http:\/\/[^\/]+)(.+)/);
      newHref = hrefParts[1]+prefix;
      if(hrefParts[2])
      {
         newHref += hrefParts[2];
      }
   } else
   {
      newHref = prefix+href;
   }
   return newHref;
}

function trimPrefixHref(href, prefix)
{
   var newHref = href.replace(prefix,"");  
   return newHref;
}


function postfixHref(href,postfix)
{
   var newHref = "";
   if(href.search(/.*\/$/) == 0)
   {
      newHref += href+postfix;
   } else
   {
      newHref = href+"/"+postfix;
   }
   return newHref;
}

var detailPartFadeIn = function()
{
   
   jQuery("#lowerContent").stop(true, true);
   jQuery("#lowerContent").html(detailData);
   //jQuery("#lowerContent").css("display","block");
   jQuery("#lowerContent").animate({ opacity: "1.0"}, 1000);
}

var detailPartLoad = function(data)
{
   detailData= data;
   if(detailDataTimeOut)
   {
      clearTimeout(detailDataTimeOut);
   }
   detailDataTimeOut=setTimeout("detailPartFadeIn()",850);
}

var linkSubMenuItemCallback = function(index, domElement)
{
   var href = jQuery(this).attr("href");
   var newHref = prefixHref(href,"#");
   jQuery(this).attr("href",newHref);
   jQuery(this).attr("title",href);
   jQuery(this).click(function()
   {
      cancelSlideShows();
      jQuery("#lowerContent").animate({ 
              "opacity": "0.0"
      }, 1000 , function(){
         //jQuery("#lowerContent").css("display","none");
      });
      jQuery.get(postfixHref(href, "j"),detailPartLoad);
      jQuery(this).blur();
      jQuery("#historyiFrame").attr("src",newHref);
   });
}


function linkSubMenu()
{
   jQuery("#subMenu a").each(linkSubMenuItemCallback);
}

var subMenuPartLoad = function(data)
{
   var domID = "#subMenuWrapper";
   jQuery(domID).html(data).fadeIn("fast").animate({ 
                    "left": "222px"
                  }, 1000 );
}


var linkMainMenuItemCallback = function(index, domElement)
{
   var href = jQuery(this).attr("href");
   var newHref = prefixHref(href,"#");
   jQuery(this).attr("href",newHref);
   jQuery(this).attr("title",href);
   jQuery(this).click(function()
   {
      jQuery(this).blur();
      jQuery("#subMenuWrapper").fadeOut("fast",function(){
         jQuery(this).css("left","60px");
         jQuery.get(postfixHref(href, "j"),subMenuPartLoad);
      });
      var reload = true;
      if(reload)
      {
         cancelSlideShows();
         jQuery("#lowerContent").animate({ 
                 "opacity": "0.0"
         }, 1000 , function(){
            //jQuery("#lowerContent").css("display","none");
         });
         jQuery.get("/homeBlankPart/j",detailPartLoad);
      }
      jQuery("#historyiFrame").attr("src",newHref);
   });

}

function getLocationHref()
{
   return document.location.href;
}



function linkMainMenu()
{
   jQuery("#mainMenu a").each(linkMainMenuItemCallback);
}



function activateMainMenuLink(section,category)
{
   
   jQuery("#mainMenu a").removeClass("activeLink");
   jQuery("#mainMenu a#"+section+"_"+category+"_Link").addClass("activeLink");
   try
	{
		jQuery("title").html(category+" "+section+" - Marlon Blackwell Architects");
	} catch(e)
	{
		;//
	}
   try
   {
      document.title = category+" "+section+" - Marlon Blackwell Architects";
   } catch(e)
   {
      ;//
   }
}

function activateSubMenuLink(section,category,title,id)
{
   jQuery("#subMenu a").removeClass("activeLink");
   if(id != "" && section != "")
   {
      jQuery("#subMenu a#pageid_"+section+"_"+category+"_"+id).addClass("activeLink");
   }
   try
	{
		jQuery("title").html(title+" - Marlon Blackwell Architects");
	} catch(e)
	{
		;//
	}
   try
   {
      document.title = title+" - Marlon Blackwell Architects";
   } catch(e)
   {
      ;//
   }
}

function LocationSync()
{
   var me = this;
   me.href = getLocationHref();
   me.timer = null;
   me._pollHref = function()
   {
      return me.pollHref;
   }
   me.pollHref();
}

LocationSync.prototype.pollHref = function()
{
   var me = this;
   if(me.href != getLocationHref())
   {
      me.href = getLocationHref();
      me.processHref();
   }
   me.timer = setTimeout('me._pollHref()',100);
}

LocationSync.prototype.processHref = function()
{
   var me = this;
   hrefToLoad = postFixHref(trimPrefixHref(me.href,"#/"),"j");
   //TODO: Identify what callback is needed by pattern
   //TODO: load href and with callback
}


jQuery(function()
   {
      var historyiFrame =  document.createElement("iframe");
      jQuery(historyiFrame).attr("id","historyiFrame").css('display','none');
      
      jQuery("body").prepend(historyiFrame);
   });
