
function overlay(){
    return {
	jq: $('#overlay'),
	popup: popup(),
	init: function(){
	    $('body').append('<div id="overlay"></div><div id="overlay-popup-container"><div id="overlay-popup"><a href="javascript:void()" class="closeButton"></a><div id="overlay-popup-content"/></div></div>');
	    this.jq = $('#overlay');
	    this.jq.css({
		'width': '100%',
		'height': '100%',
		'background-color': '#000000',
		'top': 0,
		'left': 0,
		'position': 'fixed',
		'opacity': '0.7',
		'display': 'none'
	    });
	    $('#overlay-popup');
	    popup().init();
	},
	fadeLength: 100,
	setContentAjax: function(url, failUrl){
	    url = url.replace(/http:\/\/[^\/]*/, "");
	    if(failUrl){
		$('#overlay-popup-content').attr('failUrl', failUrl);
	    }else{
		$('#overlay-popup-content').removeAttr('failUrl');
	    }
	    overlay().show();
	    $('#overlay-popup-content').load(url,
				     {},
				     function(responseText, textStatus, XMLHttpRequest){
					 if(textStatus == "success"){
					     $('#overlay-popup-container').show();
					 }else{
					     if($(this).attr('failUrl')){
						 window.location = $(this).attr('failUrl');
					     }else{
						 alert("Sorry, failed to retrieve the requested information, please try again");
					     }
					 }
				     });
	},
	setContent: function(content){
	    
	},
	show: function(){
	    if(!this.visible()){
		this.jq.fadeIn(this.fadeLength);
		this.jq.toggleClass('visible');
	    }
	},
	hide: function(){
	    if(this.visible()){
		this.jq.fadeOut(this.fadeLength);
		$('#overlay-popup-container').hide();
		this.jq.toggleClass('visible');
	    }
	},
	visible: function(){
	    return this.jq.hasClass('visible');
	}
    };
}
 
function popup(){
    return {
	jq: $('#overlay-popup'),
	init: function(){
	    this.jq = $('#overlay-popup');
	    $('#overlay-popup-container').css({
		'position': 'fixed',
		'top': '0',
		'width': '100%',
		'height': '100%',
		'overflow': 'auto',
		'display': 'none'
	    });

	    this.jq.css({
		'background-color': '#fff',
		'margin': '0 auto',
		'padding': '20px',
		'width': '500px',
		'top': '30%',
		'height': '40%',
		'overflow': 'auto',
		'position' : 'relative'
	    });
	    $("#overlay-popup a.closeButton").css({
		'background': "transparent url('/sites/all/themes/rng/images/close-button.gif') scroll",
		'width' : '20px',
		'height' : '20px',
		'display' : 'block',
		'position' : 'absolute',
		'top' : '2px',
		'right' : '2px'
	    });
	    $("#overlay-popup a.closeButton").bind("click", function(e){
		overlay().hide();
	    });
	}
    };
}

function businessCasesBlock(){
    return {
	jq: $("#business-cases-block"),
	bottomjq: $("#business-cases-block-bottom"),
	init: function(){
	    this.jq = $("#business-cases-block");
	    this.bottomjq = $("#business-cases-block-content").append('<div class="hr" /><div id="business-cases-block-bottom"></div>');
	    $("#business-cases-block-bottom").css({
		'display':'none',
		'padding-left': '3px'
	    });
	    $("#business-cases-block a").bind("click", function(e){
		var b = overlay();
		var casesBlock = businessCasesBlock();
		e.preventDefault();
		$("#business-cases-block a").each(function(){
		    $(this).removeClass('active');
		});
		$(this).addClass('active');
		casesBlock.setContentAjax("/ajax" + $(this).attr('href') + " ul");
	    });

	},
	setContentAjax: function(url, failUrl){
	    url = url.replace(/http:\/\/[^\/]*/, "");
	    if(failUrl){
		this.bottomjq.attr('failUrl', failUrl);
	    }else{
		this.bottomjq.removeAttr('failUrl');
	    }
	    this.bottomjq.load(url,
			       {},
			       function(responseText, textStatus, XMLHttpRequest){
				   if(textStatus == "success"){
				       addBusinessCasesEH("#business-cases-block-bottom a");
				       businessCasesBlock().bottomShow();
				   }else{
				       if($(this).attr('failUrl')){
					   window.location = $(this).attr('failUrl');
				       }else{
					   alert("hey: " + url);
					   alert("Sorry, failed to retrieve the requested information, please try again");
				       }
				   }
			       });
	},
	expand: function(){
	    this.init();
	    if(!this.visible()){
		this.jq.fadeIn(this.fadeLength);
		this.jq.toggleClass('visible');
	    }
	},
	collapse: function(){
	    if(this.visible()){
		this.jq.fadeOut(this.fadeLength);
		$('#overlay-popup-container').hide();
		$('#overlay-popup-container').hide();
		this.jq.toggleClass('visible');
	    }
	},
	visible: function(){
	    return this.jq.hasClass('visible');
	},
	bottomFadeLength: 500,
	bottomVisible: function(){
	    return this.bottomjq.hasClass('visible');
	},
	bottomShow: function(){
	    this.bottomjq.fadeIn(this.bottomFadeLength);
	    this.bottomjq.toggleClass('visible');
	},
	bottomHide: function(){
	    if(this.bottomVisible()){
		this.bottomjq.fadeOut(this.bottomFadeLength);
		this.bottomjq.toggleClass('visible');
	    }
	}
    };
}


function addBusinessCasesEH(id){
    var selector = id?id:"#business-cases a";
    $(selector).bind("click", function(e){
	var o = overlay();
	e.preventDefault();
	var href = this.pathname.replace(/^\//, "");
	o.setContentAjax("/ajax/" + href, $(this).attr('href'));
	/*if(!o.visible()){
	    o.show();
	}*/
    }); 
}


function init(){

    if($.browser.msie && parseInt($.browser.version) < 7)
	return;

    overlay().init();
    businessCasesBlock().init();
    addBusinessCasesEH();
}


$(document).ready(function(){
    init();
});
