/* $RCSfile: toolkit_bonus_layer.js,v $ */
/* $Revision: 1.13 $ - $Date: 2010/12/13 17:45:18 $ */
/* $Author: shollstein $	*/

/*
	Toolkit um BonusLayer für Gratisartikel und Bonusnumber zu öffnen
	JQuery ist erforderlich!
	Syntax zum Öffnen:
	
	BonusLayer.url = ZielURL;
	BonusLayer.init({
		id: 'ID des Layers',
		[width: 'Breite des Layers' | Optional, Standard ist 480],
		[height: 'Höhe des Layers' | Optional, Standard ist 360],
		[top: 'Position des Layers' | Optional, Standard ist 90],
		[left: 'Position des Layers' | Optional, Standard ist 72]
	});
*/

var obsoleteBrowsers = false;
if (jQuery.browser.msie && parseInt(jQuery.browser.version) < 7 ){
	obsoleteBrowsers = true;
}

var BonusLayer = function(basis){
	
	var initializeModalBox = false;
	if( basis.id == 'detailview_zoom_layer' ){
		initializeModalBox = true;
	}
	
	$('#' + basis.id).remove();
	var layer = BonusLayer.addNewDivLayer(basis.id, 'layerpopup');
	var layer_frame = BonusLayer.addNewDivLayer('layer_' + basis.id, 'layer');	
	$(layer_frame).css({
		'width' : basis.width + 'px',
		'height' : basis.height + 'px',
		'margin-top' : basis.top + 'px',
		'margin-left' : basis.left + 'px'
	});
	
	
	if ( obsoleteBrowsers ) {
		var layerShadowContainer_begin = '<div id="modalBoxBody"><div class="modalboxStyleContainerTopRight"><div class="modalboxStyleContainerContent">';
		var layerShadowContainer_end = '</div></div><div class="modalboxStyleContainerBottomRight"></div><div class="modalboxStyleContainerTopLeft"></div><div class="modalboxStyleContainerBottomLeft"></div></div>';
	} else {
		var layerShadowContainer_begin = '<div id="modalBoxBody"><div class="modalboxStyleContainerTopLeft"><div class="modalboxStyleContainerTopRight"><div class="modalboxStyleContainerContent">';
		var layerShadowContainer_end = '</div></div></div><div class="modalboxStyleContainerBottomLeft"><div class="modalboxStyleContainerBottomRight"></div></div></div>';
	}
	
	
	var layer_schliessen = BonusLayer.addNewDivLayer('layerschliessen_' + basis.id, 'layerclose');
	$(layer_frame).append(layer_schliessen);
	var layer_content = BonusLayer.addNewDivLayer('layercontent_' + basis.id, '');
	$(layer_frame).append(layer_content);
	
	if (basis.type == 'frame')
	{
		var iFrame = BonusLayer.addNewIFrame({
			id: "iFrame_" + basis.id,
			src: basis.src,
			width: parseInt(basis.width) - 20,
			height: parseInt(basis.height) - 20,
			scrolling: "auto",
			frameborder: "0"
		});
		var x = $(layer_content).append(iFrame);
	}
	else if (basis.type == 'layer')
	{
		if( initializeModalBox ){
			$("#"+basis.src).css({/*'display' : ''*/}).appendTo(layer_content);
		} else {
			$("#"+basis.src).css({'display' : ''}).appendTo(layer_content);
		}
	}
	
	if( !initializeModalBox ){
		$(layer_frame).html( layerShadowContainer_begin + $(layer_frame).html() + layerShadowContainer_end );
	}
	$(layer).append(layer_frame);
	var x = $('body').append(layer);
	
	if( !initializeModalBox ){
		$('#' + 'layer_' + basis.id).draggable({ opacity: false, iframeFix: true, refreshPositions: true });
		$('#layerschliessen_' + basis.id).html('<a href="javascript:BonusLayer.closeLayers(\'' + basis.id + '\');">Fenster schliessen</a>');
	}
	setLandmark( "page", "&pc=popup_Layer_" + basis.id);
	
	if( initializeModalBox ){
		jQuery.fn.modalBox({ 
			directCall : {
				element : '#layercontent_' + basis.id
			}
		});
		jQuery('#layer_' + basis.id).remove();
	}
}

BonusLayer.init = function(o){
	var paramTrenner = "";
	
	if (o.src.indexOf("?")>-1) paramTrenner += "&";
	else paramTrenner += "?";
	var layern = (typeof o.id != "undefined") ? o.id : "StandardLayer";
	
	var height = (typeof o.height != "undefined") ? o.height : "360";
	var width =  (typeof o.width != "undefined") ? o.width : "480";
	var type =  (typeof o.type != "undefined") ? o.type : "frame";
	if (type == "frame")
	{
		var urlSplit = BonusLayer.splitUrlHash(o.src);
		o.src = urlSplit.urlWithOutHash + paramTrenner + "layerNumber=" + layern + (urlSplit.urlHash == "" ? "" : "#" + urlSplit.urlHash);
	}
	var basis = {
		
		id: (typeof o.id != "undefined") ? o.id : "StandardLayer",
		width: width,
		height: height,
		top: parseInt((parseInt(height)) / 2)*(-1),
		left: parseInt((parseInt(width)) / 2)*(-1),
		type: type,
		src: o.src
	};
	
	var layer = new BonusLayer(basis);
}

BonusLayer.closeLayers = function(id) {
	$("#" + id).css({'display':'none'});
	$("#" + id).remove();
};
BonusLayer.addNewDivLayer = function (id, className){
	var layer = document.createElement("DIV");
	var node_id = document.createAttribute("id");
	var node_class = document.createAttribute("class");
	node_id.nodeValue = id;
	node_class.nodeValue = className;
	layer.setAttributeNode(node_id);
	layer.setAttributeNode(node_class);
	return layer;
};

BonusLayer.addNewIFrame = function(o){
	var iFrame = document.createElement("IFRAME");
	var id_iFrame = document.createAttribute("id");
	id_iFrame.nodeValue = o.id;
	var src_iFrame = document.createAttribute("src");
	var width_iFrame = document.createAttribute("width");
	width_iFrame.nodeValue=o.width;
	var height_iFrame = document.createAttribute("height");
	height_iFrame.nodeValue=o.height;
	var scrolling_iFrame = document.createAttribute("scrolling");
	scrolling_iFrame.nodeValue = o.scrolling;
	var frameborder_iFrame = document.createAttribute("frameborder");
	frameborder_iFrame.nodeValue = o.frameborder;
	iFrame.setAttributeNode(id_iFrame);
	iFrame.setAttributeNode(src_iFrame);
	iFrame.setAttributeNode(width_iFrame);
	iFrame.setAttributeNode(height_iFrame);
	iFrame.setAttributeNode(scrolling_iFrame);
	iFrame.setAttributeNode(frameborder_iFrame);
	iFrame.src = o.src;
	return iFrame;
};
BonusLayer.openUmfrage = function()
{
	MM_openBrWindow(BonusLayer.umfrageURL ,BonusLayer.umfrageID,'scrollbars=yes,resizable=yes,width=' + BonusLayer.umfrageWidth + ',height=' + BonusLayer.umfrageHeight);
	BonusLayer.closeLayer();
};
BonusLayer.closeLayer = function()
{
	$('#'+BonusLayer.umfrageID).css({'display':'none'});
};
BonusLayer.splitUrlHash = function(url){
	var urlArray = url.split("#");
	return {urlWithOutHash: urlArray[0],urlHash: urlArray.length>1 ? urlArray[1] : ""};
};
