﻿var modalPopup = {
	
	flashIsDimmed:false,
	
	init:function()
	{},
	
	openModal:function(divId, closeCallbackObj, closeCallbackFuncName) 
	{
	    // Anledningen till att closeCallbackFuncName är ett namn istället för en 
	    // funktionspekare är för att slippa "Illegal operation on WrappedNative prototype object" exception //Niclas
	    
		// Inaktivera alla select-element så att de inte skiner igenom i IE6.
		var killSelects = document.getElementsByTagName("select");
		for(var i = 0; i < killSelects.length; i++)
		{
			killSelects[i].style.visibility = "hidden";
		}
		
		var alphaDiv = document.getElementById("modal-alpha-box");
		var slideshowDiv = document.getElementById(divId);
		var activeFlashDiv = document.getElementById("flashy");
		
		if(activeFlashDiv != null)
		    activeFlashDiv.style.zIndex = "3000";
        
        var isFFMac = modalPopup.detectIfMacFF();
                
        // Checkar så att den inskickade diven verkligen finns
        if(slideshowDiv != null)
        {        
            if(isFFMac)
            {
                alphaDiv.style.backgroundImage= "url(/Housing/static/img/opac20.png)";
                alphaDiv.style.backgroundRepeat="repeat";
            }
            else
            {
                alphaDiv.style.backgroundColor = "#000";
                alphaDiv.className = "opac20";                
            }
            
            alphaDiv.style.display = "block"; 
            modalPopup.changeScrollPosition(slideshowDiv);
            slideshowDiv.style.display = "block";		
            slideshowDiv.closeCallback = closeCallbackFuncName;
            slideshowDiv.closeCallbackObj = closeCallbackObj;
        }
		
	},
	
	closeModal:function(divId, callbackArgument1, callbackArgument2)
	{
		// Aktiverar alla select-element igen.
		var showSelects = document.getElementsByTagName("select");
		for(var i = 0; i < showSelects.length; i++)
		{
			showSelects[i].style.visibility = "visible";
		}
				
		var alphaDiv = document.getElementById("modal-alpha-box");
        var slideshowDiv = document.getElementById(divId);
        var activeFlashDiv = document.getElementById("flashy");
        
        if(activeFlashDiv != null)
            activeFlashDiv.style.zIndex = "10000";
              

        alphaDiv.style.display = "none"; 
          
        slideshowDiv.style.display = "none";
        if(slideshowDiv.closeCallback!=null)
            slideshowDiv.closeCallbackObj[slideshowDiv.closeCallback](callbackArgument1, callbackArgument2);
	},
	
	switchModal:function(oldDivId, newDivId)
	{
	    var oldDiv = document.getElementById(oldDivId);
	    var newDiv = document.getElementById(newDivId);
	    
	       modalPopup.changeScrollPosition(newDiv);
	    
	    // Checkar så att den nya diven verkligen finns och att den gamla är korrekt
        if(oldDiv != null && newDiv != null)
        {
	        oldDiv.style.display = "none";
	        newDiv.style.display = "block";   
	        newDiv.closeCallback  = oldDiv.closeCallback;
	        oldDiv.closeCallback = null;
	        newDiv.closeCallbackObj  = oldDiv.closeCallbackObj;
	        oldDiv.closeCallbackObj = null;
	    }
	},
	
	openFlashModal:function()
	{
	    // Inaktivera alla select-element så att de inte skiner igenom i IE6.
		var killSelects = document.getElementsByTagName("select");
		for(var i = 0; i < killSelects.length; i++)
		{
			killSelects[i].style.visibility = "hidden";
		}
		
		var alphaDiv = document.getElementById("modal-alpha-box");
		var slideshowDiv = document.getElementById("flashy");
        
        var isFFMac = modalPopup.detectIfMacFF();
                
        // Checkar så att den inskickade diven verkligen finns
        if(slideshowDiv != null)
        {        
            modalPopup.flashIsDimmed = true;
            
            if(isFFMac)
            {
                alphaDiv.style.backgroundImage= "url(/Housing/static/img/opac20.png)";
                alphaDiv.style.backgroundRepeat="repeat";
            }
            else
            {
                alphaDiv.style.backgroundColor = "#000";
                alphaDiv.className = "opac20";                
            }
            
            alphaDiv.style.display = "block"; 
            slideshowDiv.style.display = "block";		
            slideshowDiv.style.zIndex = "10000";
        }
	},
	
	closeFlashModal:function()
	{
	    modalPopup.flashIsDimmed = false;
	    modalPopup.closeModal("modal-alpha-box");
	},
	
	changeScrollPosition:function(div)
	{
      if($.browser.safari)
        div.style.top = document.body.scrollTop+200+"px";
      else
        div.style.top = document.documentElement.scrollTop+200+"px"
	},
		
	detectIfMacFF:function() 
	{
        var userAgent = navigator.userAgent.toLowerCase();
        
        if (/firefox[\/\s](\d+\.\d+)/.test(userAgent)) 
        {
            var ffversion = new Number(RegExp.$1);
            
            if (ffversion < 3 && userAgent.indexOf('mac') != -1) 
            {
                return true;
            }
        }
    }	
} 

//var $n = jQuery.noConflict();
$(document).ready(function () {
    setTimeout("modalPopup.init()", 200);  
}); 