/* Ajax Formular*/
document.write('<scr' + 'ipt language="JavaScript" src="/js/editor/tiny_mce/tiny_mce.js"><' + '/script>');
var QLIKFORM = {
	isInitialized : false
	, show : function(parameters) { QLIKFORM.init(); QLIKFORM.setSize(parameters); QLIKOVERLAY.show(); $('elQLIKFORM').show(); return false; }
	, hide : function(e) { if (e) { e.stop(); } 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') 
		});
	}
	, 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;
		QLIKUTILS.centerVertical($('elQLIKFORM'));
		if (initSnippet) { initSnippet(); }
		return false;
	}
	, showDialog : function(fnName, parameters) {
		parameters = parameters || {};
		switch (fnName) {
			case 'modifyCompanyData' : return QLIKFORM.showModifyCompanyData(parameters);
			case 'contactCompany' : return QLIKFORM.showContactCompany(parameters);
			case 'RedactionTipps' : return QLIKFORM.showRedactionTipps(parameters); 
			case 'productOrder' : return QLIKFORM.showProductOrder(parameters);
			case 'request4Ad' : return QLIKFORM.showRequest4Ad(parameters);
			case 'Request4Pos1' : return QLIKFORM.showRequest4Pos(parameters, 1); 
			case 'Request4Pos2' : return QLIKFORM.showRequest4Pos(parameters, 2); 
			case 'Request4Pos3' : return QLIKFORM.showRequest4Pos(parameters, 3); 
			case 'Request4Pos4' : return QLIKFORM.showRequest4Pos(parameters, 4); 
			case 'Request4Pos5' : return QLIKFORM.showRequest4Pos(parameters, 5); 
			default : return false;
		}	
	}
	, _showDialog : function (parameters) {
		QLIKMSG.Wait(parameters.waitMsg);
		new Ajax.Request(parameters.url, { method: (parameters.method || 'get'), onSuccess : QLIKFORM.displayHTML, internalParameters : parameters });
		return false;
	}
	, showModifyCompanyData : function(parameters) {
		parameters = parameters || {};
		var url ="/include/snippets/change-company-data.asp?InfoID=" + pageConfig.ii + "&t="+ (new Date()).getTime();
		return QLIKFORM._showDialog({ url : url, width:780, height:800, waitMsg:parameters.waitMsg });
	}
	, showContactCompany : function(parameters) {
		parameters = parameters || {};
		var url ="/include/snippets/contact-company.asp?InfoID=" + pageConfig.ii + "&t="+ (new Date()).getTime();
		return QLIKFORM._showDialog({ url: url, width:500, height:'auto', waitMsg:parameters.waitMsg });
	}
	, showRedactionTipps : function(parameters) {
		parameters = parameters || {};
		var url ="/include/snippets/showRedactionTipps.asp?InfoID=" + pageConfig.ii + "&t="+ (new Date()).getTime();
		return QLIKFORM._showDialog({ url: url, width:500, height:'auto', waitMsg:parameters.waitMsg });
	}
	, showRequest4Ad : function(parameters) {
		parameters = parameters || {};
		var url ="/include/snippets/requestOfAd.asp?InfoID=" + pageConfig.ii + "&t="+ (new Date()).getTime();
		return QLIKFORM._showDialog({ url: url, width:500, height:'auto', waitMsg:parameters.waitMsg });
	}
	, showRequest4Pos : function(parameters, topPos) {
		parameters = parameters || {};
		var url ="/include/snippets/requestOfPos.asp?InfoID=" + pageConfig.ii + "&branchId=" + pageConfig.branchId + "&regionId=" + pageConfig.regionId + "&param=" + topPos + "&t="+ (new Date()).getTime();
		return QLIKFORM._showDialog({ url: url, width:500, height:'auto', waitMsg:parameters.waitMsg });
	}
	, showProductOrder : function(parameters) {
		parameters = parameters || {};
		var url ="/include/snippets/order.asp?InfoID=" + pageConfig.ii + "&prTitle=" + encodeURIComponent(pageConfig.ProductItem) + "&t="+ (new Date()).getTime();
		return QLIKFORM._showDialog({ url: url, width:500, height:'auto', waitMsg:parameters.waitMsg });
	}
};

var QLIKFORMCHECK = {
	checkForm : function (frm, msgTemplate) {
		var elList = frm.getElements();
		var retVal = true;
		var returnMsg = [];
		var i;
		for (i = 0; i < elList.length; i++) { retVal = retVal & QLIKFORMCHECK.checkSingleFormElement(elList[i], returnMsg); }
		if (returnMsg.length > 0) {
			if (!msgTemplate) { msgTemplate = '<tr><td width="10%">&rArr; </td><td align="left">[MSG]</td><td width="10%"></td></tr>'; }
			var msg = "";
			for (i = 0; i < returnMsg.length; i++) { msg += msgTemplate.replace(/\[MSG\]/gi, returnMsg[i]); }
			QLIKMSG.Alert((frm.getAttribute("errTitle") !== null ? frm.getAttribute("errTitle") : ""), (frm.getAttribute("errMsg") !== null ? frm.getAttribute("errMsg") + "<br /><br />" : "") + (msg !== "" ? "<table>" + msg + "</table>" : ""));
		}
		return retVal;
	}
	, checkSingleFormElement : function(el, returnMsg, dependent) {
		var retVal = true;
		var errRegEx = el.getAttribute("errRegEx");

		if (errRegEx !== null) {
			var re = new RegExp(errRegEx, "g" + (el.getAttribute("errRegExCase") !== null ? el.getAttribute("errRegExCase")  : ""));
			retVal = re.test(el.getValue());
			
			if (dependent !== true) {
				var errOrFld = el.getAttribute("errOrFld");
				if (errOrFld !== null) {
					var elOrFldList = errOrFld.split(',');
					for (var i = 0; i < elOrFldList.length; i++) { retVal = retVal || QLIKFORMCHECK.checkSingleFormElement($(elOrFldList[i]), returnMsg, true); }
				}
			}
			
			if (retVal === false) {
				if (el.getAttribute("errCSSClass") !== null) { el.addClassName(el.getAttribute("errCSSClass")); }
				if (el.getAttribute("errEl") !== null) { $(el.getAttribute("errEl")).show(); }
				if (dependent !== true) { if (el.getAttribute("errMsg") !== null) { returnMsg.push(el.getAttribute("errMsg")); } }
			}
			else {
				if (el.getAttribute("errCSSClass") !== null) { el.removeClassName(el.getAttribute("errCSSClass")); }
				if (el.getAttribute("errEl") !== null) { $(el.getAttribute("errEl")).hide(); }
			}
		}
		return retVal;
	}	
};
