/* Ajax Formular*/

var QLIKUTILS = {
	getDocumentHeight : function() {
		var b = $$("body")[0];
		var d = document, de = d.documentElement;
		var ih = ((self.innerHeight && !isNaN(self.innerHeight)) ? self.innerHeight : 0);
		if (d.documentElement && (!d.compatMode || d.compatMode=="CSS1Compat")) { return Math.max(b.offsetHeight, b.scrollHeight, de.clientHeight, de.scrollHeight, ih); }
		return Math.max(b.scrollHeight, b.clientHeight, ih);
	}
	, centerVertical : function(el) {
		var dim = document.viewport.getDimensions();
		var so = document.viewport.getScrollOffsets();
		var yPos = (dim.height / 2) - (el.getHeight() / 2);
		var elHeight = el.getHeight();
		var docHeight = QLIKUTILS.getDocumentHeight();
		var topPos = (so.top + (yPos < 20 ? 20 : yPos));
		if ((elHeight + topPos) > (docHeight - 20)) { topPos = docHeight - elHeight - 20; }
		if (topPos < 20) topPos = 20;
		el.setStyle({ top: topPos  + "px" });
	}
};




var QLIKOVERLAY = { 
	isInitialized : false
	, init : function() {
		if (QLIKOVERLAY.isInitialized !== true) {
			var b = $$("body")[0];
			if (b) { b.insert('<div align="center" id="elQlikOverlayBackground" style="display:none;">&nbsp;</div>'); }
			QLIKOVERLAY.isInitialized = true;
		}
	}
	, show : function() { $('elQlikOverlayBackground').setStyle({ height: QLIKUTILS.getDocumentHeight() + 320 + "px"  }); $('elQlikOverlayBackground').show(); return false; }
	, hide : function() { $('elQlikOverlayBackground').hide(); return false; }
};

var QLIKFORM = {
	isInitialized : false
	, show : function(parameters) { QLIKFORM.init(); QLIKFORM.setSize(parameters); QLIKOVERLAY.show(); $('elQLIKFORM').show(); return false; }
	, hide : function(hideBG) { if (hideBG) { try { Event.stop(hideBG); } catch (e) {} } if (hideBG !== false) { QLIKOVERLAY.hide(); } $('elQLIKFORM').hide(); return false; }
	, init : function() {
		if (QLIKFORM.isInitialized !== true) {
			QLIKOVERLAY.init();
			var b = $$("body")[0];
			if (b) { b.insert('<div align="center" id="elQLIKFORM" style="display:none;"><table border="0" align="center" cellpadding="0" cellspacing="0" class="popupForm leftCorner"><tr><td align="right"><a href="#" id="lnkQLIKFORMHide"><img src="/images/closelabel2.gif" width="66" height="22" border="0" hspace="10" vspace="10" /></a></td></tr><tr><td valign="top"><div id="elQLIKFORMContent" style="text-align:left"></div></td></tr></table></div>'); }
			Event.observe($("lnkQLIKFORMHide"), "click", QLIKFORM.hide);
			QLIKFORM.isInitialized = true;
		}
	}
	, setSize : function(parameters) { 
		if (!parameters) { parameters = {}; } 
		$$('#elQLIKFORM table.popupForm')[0].setStyle({
			width:(parameters.width ? parameters.width + (!isNaN(parameters.width) ? 'px' : '') : 'auto') 
			, height:(parameters.height ? parameters.height + (!isNaN(parameters.height) ? 'px' : '') : 'auto') 
		});
	}
	, centerVertical : function() {
		var dim = document.viewport.getDimensions();
		var so = document.viewport.getScrollOffsets();
		var yPos = (dim.height / 2) - ($('elQLIKFORM').getHeight() / 2);
		//$('elQLIKFORM').setStyle({ top: (so.top + (yPos < 0 ? 0 : yPos)) + "px" });
		//$('elQLIKFORM').setStyle({ top: 50 + "px" });
		$('elQLIKFORM').setStyle({ top: ((so.top + 20)) + "px" });
	}
	, displayHTML : function (r) {
		var sContent = r.responseText;
		var parameters = r.request.options.internalParameters;
		sContent.evalScripts();
		QLIKMSG.hide();
		QLIKFORM.show({ width: parameters.width, height:parameters.height });
		$('elQLIKFORMContent').innerHTML = sContent;
		QLIKFORM.centerVertical();
		//if (initEditor) { initEditor(); }
		//if (initSnippet) { initSnippet(); }
	}
	, showDialog : function(fnName, parameters) {
		switch (fnName) {
			case 'contactCompany' : return QLIKFORM.showContactCompany(parameters); break;
			default : return false;
		}	  
	}
	, _showDialog : function (parameters) {
		QLIKMSG.Wait();
		new Ajax.Request(parameters.url, { method: (parameters.method || 'get'), onSuccess : QLIKFORM.displayHTML, internalParameters : parameters });
		return false;
	}
	, showContactCompany : function() {
		var url ="/include/request4advertising.asp?t="+ (new Date()).getTime();
		return QLIKFORM._showDialog({ url: url, width:'auto', height:'auto' });
	}
};

var QLIKMSG = {
	isInitialized : false
	, init : function() {
		QLIKOVERLAY.init();
		QLIKOVERLAY.show();
		if (QLIKMSG.isInitialized !== true) { 
			var b = $$("body")[0];
			if (b) { b.insert('<div id="elQLIKMSG" style="display:none;"><div class="QLIKMSGContent"><div class="header"><h3 id="elQLIKMSGTitle">&nbsp;</h3></div><div id="elQLIKMSGContent"></div><div id="elQLIKMSGButtons"><input type="button" value="OK" style="width:80px;" id="lnkQLIKMSGHide" /></div></div></div>'); }
 			Event.observe($("lnkQLIKMSGHide"), "click", QLIKMSG.hide);
		}
	}
	, Alert : function(title, msg, showButtons) {
		QLIKMSG.init();
		if (showButtons == false) { QLIKMSG.hideButtons(); } else { QLIKMSG.showButtons(); }
		QLIKMSG.setTitle(title);
		QLIKMSG.setContent(msg);
		QLIKMSG.centerVertical();
		$('elQLIKMSG').show();
	}
	, Wait : function(msg) {
		msg = '<table width="100%"><tr><td width="100" valign="middle"><img src="/images/ajax-wait.gif" alt="" /></td><td valign="middle">' + (msg ? msg : 'Please wait ...') + '</td></tr></table>';
		QLIKMSG.Alert("Info", msg, false);
	}
	, showButtons : function() { $('elQLIKMSGButtons').show(); }
	, hideButtons : function() { $('elQLIKMSGButtons').hide(); }
	, hide : function(hideBG) { if (hideBG) { try { Event.stop(hideBG); } catch (e) {} } if (hideBG !== false) { QLIKOVERLAY.hide(); } $('elQLIKMSG').hide(); return false; }
	, setTitle : function(title) { $('elQLIKMSGTitle').update(title.replace(/\n/, '<br />')); } 
	, setContent : function(content) { $('elQLIKMSGContent').update(content.replace(/\n/, '<br />')); }
	, centerVertical : function() {
		var dim = document.viewport.getDimensions();
		var so = document.viewport.getScrollOffsets();
		//$('elQLIKMSG').setStyle({ top: (so.top + ((dim.height / 2) - ($('elQLIKMSG').getHeight() / 2))) + "px" });
		//$('elQLIKMSG').setStyle({ top: (so.top + (dim.height / 2) + 260) + "px" });
		$('elQLIKMSG').setStyle({ top: ((so.top + 200)) + "px" });
	}
};

