/*
 * nbsp, AH | 2008-10-17 - default.js fuer allgemeine Funktionen
 * 
 */

/* JS Funktionen fuer JS und CSS nachtraeglich hinzufuegen */
function addCSS(content) {
	var script = document.createElement('link');
	script.setAttribute('rel', 'stylesheet');
	script.setAttribute('type', 'text/css');
	script.setAttribute('href', content);
	document.getElementsByTagName('head')[0].appendChild(script);
}

function addJS(src, content){
	var script = document.createElement('script');
	script.setAttribute('type', 'text/javascript');
	if(src != 'undefined' && src != '')
		script.setAttribute('src', src);
	if(content != 'undefined' && content != '')
		script.innerHTML = content;
	document.getElementsByTagName('head')[0].appendChild(script);
}

/*Nachladen von js-Skripts*/
function loadScripts(source){
	for(i=0; i < source.length; i++){
		var script = document.createElement('script');
		script.setAttribute('src', source[i]);
		script.setAttribute('type', 'text/javascript');
		Ext.select('head').appendChild(script);
	}
};

// kw // nbsp // 03:11.2008 // Maximale und minimale breite von Messageboxen:
Ext.MessageBox.maxWidth = 324;
Ext.MessageBox.minWidth = 324;

// jr // nbsp // 05.11.2005 // Blank Image URL:
Ext.BLANK_IMAGE_URL = '/img/0.gif';

/* jr | Quicktips initialisieren: */
Ext.onReady(function() {
	Ext.QuickTips.init();
});

/* jr | nbsp GmbH | 21.10.2008 | Sprachfile laden (auch das Ext-Language-File wird hier geladen!) */
/* AF / 06.05.2011 / Hier die Funktion direkt definieren, weil im FF4 das das Ding sonst einen Fehler wirft, weiß da Geier warum */
loadScripts(['/global/js/extapp/language/language_functions.js']);
function getLanguageText(pKey,pDefault){
	return (typeof cLangCache != 'undefined' && cLangCache[pKey] && cLangCache[pKey].length)?cLangCache[pKey]:(typeof pDefault != "undefined" && pDefault.length)?pDefault:'#' + pKey + '#';
}

/* mw - nbsp GmbH / 25.10.2008 / Standard-Popup fuer Fehlermeldungen */
function errorPopupExt(pMessage){
	Ext.MessageBox.alert(getLanguageText('defaults.hint'), pMessage);
}

/* *************************************************************** */ 
/* KW | nbsp GmbH |  10/29/2008 - 12:38:39 PM | Validierung von PW un Mail*/	
loadScripts(['/global/js/vtypes.js']);


var source = new Array();
/* hilfepopups */
source.push('/global/js/extapp/popup/content.js');
/* userbilder */
source.push('/global/js/extapp/mysite/mysite.js');
/* Beitragsfunktionen allgemein */
source.push('/global/js/extapp/documents/documents.js');
loadScripts(source);

/* NBSP GmbH / AF / 10.11.2008 / Einbindung Passwort vergessen funktionen*/
loadScripts(['/global/js/forgotten_pw.js']);

/* wm | 03.11.2008 | Ajaxaufruf */
function doResult(result){
	eval(result.responseText);	
}

function doAjax(path){
	Ext.Ajax.request({
		url: path,
		success: function(result, request){
			doResult(result)
			}
		//failure: alert('Fehler')			
	});
}	

// nbsp GmbH / CE / 16.03.2009 / Forumhandling fuer User, die noch nicht in der TT-Community sind
function doGetTTCMembership(clientid){
		
	var hPrivacy = getLanguageText('pages.register.labels.privacy');
	var hABG = getLanguageText('pages.register.labels.agb');
	
	hPrivacy = hPrivacy.replace(/<link>/, '<a href="javascript:void(0);" onclick="showPrivacy(\'/index.cfm?cid=' + hPrivacyURL + '\')" tabindex="16">');
	hPrivacy = hPrivacy.replace(/link>/, 'a>');
	
	hABG = hABG.replace(/<link>/, '<a href="javascript:void(0);" onclick="showAGB(\'/index.cfm?cid=' + hABGURL + '\')">');
	hABG = hABG.replace(/link>/, 'a>');
	
	fpMessageDataForm = new Ext.FormPanel({
		labelWidth: 225,
        layoutConfig: {labelSeparator: ''},
    	bodyStyle:'background-color:transparent;border:0px none;',
    	style: 'margin-top: 10px;',
		url: '/index.cfm?event=ajax.client.setmembership',    	
    	items: [{
        	xtype: 'panel',
 			border: false,
 			html: '<div class="comphead" style="margin:0px 0px 10px 10px;">' + getLanguageText('pages.forum.ttcmembership.intro') + '<br/><br/>'
        },{
			xtype: 'textfield',
			inputType: 'password',
			width: 200,
			fieldLabel: getLanguageText('pages.forum.ttcmembership.password'),
			labelSeparator: '',			
			name: 'pw',
			id: 'pw',
			ctCls: 'cb ',
			itemCls: 'comppw',
			labelStyle: 'width:368px;text-align:right;',
			tabIndex: 15
		},{
			xtype: 'checkbox',
			fieldLabel: '',
			labelSeparator: '',
			boxLabel: '*' + hPrivacy,
			name: 'checkdata',
			id: 'checkdata',
			labelStyle: 'width:224px;text-align:right;',
			tabIndex: 15
		},{
			xtype: 'checkbox',
			fieldLabel: '',
			labelSeparator: '',
			boxLabel: '*' + hABG,
			name: 'checkagb',
			id: 'checkagb',
			labelStyle: 'width:224px;text-align:right;',
			inputValue: '1'
		},{
        	xtype: 'hidden',
        	id: 'clientid',
			name: 'clientid',
			value: clientid
        },{
 			xtype: 'panel',
 			border: false,
 			html: '<div class="fll ml10 mandatoryfield">* Pflichtfeld</div><a style="margin-left:166px;" class="btn_red fll mr10" href="/"><span><strong>'+getLanguageText('defaults.cancel')+'</strong></span></a>'
 				+ '<a class="btn_red fll" href="javascript:void(0);" onclick="fpMessageDataForm.doSubmit();"><span><strong>'+getLanguageText('defaults.send')+'</strong></span></a>'
 		}],
		key: {
        	key: [10, 13],
			fn: function(){
				fpMessageDataForm.doSubmit();
			}
		},
		// Submit:
		doSubmit: function(){
			if (fpMessageDataForm.validate()) {				
				fpMessageDataForm.getForm().submit({
					success: function(pForm, pAction){						
						sResult = pAction.result.message;
						if (sResult.trim().length == 0) {
							Ext.MessageBox.show({
								title: getLanguageText('defaults.hint'),
								msg: getLanguageText('pages.forum.ttcmembership.success'),
								buttons: Ext.Msg.OK,
								fn: function() {
										location.reload();
									}								
							});
							fpMessageDataFormPopup.close();
						}
						else {
							Ext.getCmp("pw").setValue('');
							Ext.MessageBox.alert(getLanguageText('defaults.error'),sResult);
						}
					},
					failure: function(pForm, pAction){
						Ext.MessageBox.alert(getLanguageText('defaults.error'),getLanguageText('pages.forum.ttcmembership.error'));
					}
				})
			}
		}
		,
		// Validierung:
		validate: function(){
		
			if (!Ext.getCmp('checkdata').getValue()) {
				Ext.MessageBox.alert(getLanguageText('defaults.error'), getLanguageText('defaults.requiredfield') + ' ' + getLanguageText('pages.register.error.privacy'));
				return false;
			}
			
			if (!Ext.getCmp('checkagb').getValue()) {
				Ext.MessageBox.alert(getLanguageText('defaults.error'), getLanguageText('defaults.requiredfield') + ' ' + getLanguageText('pages.register.error.agb'));
				return false;
			}
			
			/*if (!Ext.getCmp('checkmembership').getValue()) {
				Ext.MessageBox.alert(getLanguageText('defaults.error'), getLanguageText('defaults.requiredfield') + ' ' + getLanguageText('pages.forum.ttcmembership.membership'));
				return false;
			}*/
			
			return true;
		},
		showError: function(fieldName, Msg){
			Ext.MessageBox.alert(getLanguageText('defaults.error'), Msg, function(){
				fpMessageDataForm.getForm().findField(fieldName).focus();
			});
		}		
    });
	
 	fpMessageDataFormPopup = new Ext.Window({
	            	id:'fpMessageDataFormPopup',
	            	resizable:false,
	            	closable:false,
	                closeAction:'hide',
	                plain:false,
	                floating:true,
	                modal:true,
	            	width:650,
	            	cls: 'gallerypopup checkmembership',
	                title: '<div onClick="location.href=\'/\';" class="x-tool x-tool-close"> </div> <a href="/" class="mysitegallerydestroy" style="cursor: pointer;"><span style="font-size: 12px ! important; padding-right: 5px;" class="flr">'+getLanguageText('teasers.popup.windowclose')+'</span></a>',
	                shadow:true,
	                items: [ fpMessageDataForm ]
		            });
	
	// Fenster ausgeben	            
	fpMessageDataFormPopup.show();	
}

function showAGB(pUrl){
	wAGB = window.open(pUrl, "", "");
	undoCheck('checkagb');
}
function showPrivacy(pUrl){
	wPrivacy = window.open(pUrl, "", "");
	undoCheck('checkdata');
}
function undoCheck(pCboId){
	var tmpCbo = Ext.getCmp(pCboId);
	if (tmpCbo.getValue()) {
		tmpCbo.setValue(false);
	}
	else {
		tmpCbo.setValue(true);
	}
}

function addCSS(content) {
	var script = document.createElement('link');
	script.setAttribute('rel', 'stylesheet');
	script.setAttribute('type', 'text/css');
	script.setAttribute('href', content);
	document.getElementsByTagName('head')[0].appendChild(script);
}

//	AF - 09.06.2009 -  Login Popup anzeigen
function doLoginPopUp(txt, email, num) {
	
	if(num == 1) {
		
		fpLoginWindow = new Ext.Window({
	    	id:'fpPWDataFormPopup',
	    	resizable:false,
	    	closable:false,
	        closeAction:'hide',
	        plain:false,
	        floating:true,
	        cls: 'popupmaster',
	        modal:true,
	    	width:400,
	        title: getLanguageText('defaults.hint'),
	        items: [ 
					{ 
						html: 	'<div><div class="mt10">' + txt + '</div><div class="mt10 mb10 line_dotted"></div>' + 
								'<div class="buttonbox"><div class="submitbtn left"><a onclick="fpLoginWindow.close();" href="javascript:void(0);">'+ getLanguageText('defaults.cancel') +'</a></div><div class="submitbtn fll"><a onclick="doAjax(\'/?event=ajax.sendActivateMail&email='+ email +'\');" href="javascript:void(0);">'+ getLanguageText('defaults.send') +'</a></div></div></div>'
					}			
				],
	        shadow:true
	        });
		
		/*fpLoginWindow = new Ext.Window({
	    	id:'floginpopup',
	    	resizable:false,
	    	closable:true,
	        closeAction:'hide',
	        plain:false,
	        floating:true,
	        modal:true,
	    	width:400,
	        title: 'Hinweis',
	        shadow:true,
	        items: [ 
				{ 
					html: 	'<div class="mt10" style="font-size:12px;">' + txt + '</div><div class="mt10 mb10 line_dotted"></div>' + 
							'<div class="flr"><a class="mr10" onclick="fpLoginWindow.close(); return false;" href="#"><img onmouseout=\'src="img/buttons/btn_abbrechen_01_77x21.gif";\' onmouseover=\'src="img/buttons/btn_abbrechen_02_77x21.gif";\' src="img/buttons/btn_abbrechen_01_77x21.gif"/></a>' +
							'<a onclick="doAjax(\'/?event=ajax.sendActivateMail&email='+ email +'\'); return false;" href="#"><img onmouseout=\'src="img/buttons/btn_absenden_01_80x21.gif";\' onmouseover=\'src="img/buttons/btn_absenden_02_80x21.gif";\' src="img/buttons/btn_absenden_01_80x21.gif"/></a></div>',
					cls: 'ext-mb-content'
				}			
			]
		});*/
		
	} else {
		
		fpLoginWindow = new Ext.Window({
	    	id:'fpPWDataFormPopup',
	    	resizable:false,
	    	closable:false,
	        closeAction:'hide',
	        plain:false,
	        floating:true,
	        modal:true,
	        cls: 'popupmaster',
	    	width:400,
	        title: getLanguageText('defaults.hint'),
	        items: [ 
					{ 
						html: 	'<div><div class="mt10">' + txt + '</div><div class="mt10 mb10 line_dotted"></div>' + 
								'<div class="buttonbox"><div class="submitbtn left"><a onclick="fpLoginWindow.close();" href="javascript:void(0);">'+ getLanguageText('defaults.cancel') +'</a></div><div class="submitbtn fll"><a href="/?cid='+ cid_register +'&doemail=' + email + '&num=' + num + '">'+ getLanguageText('pages.register.sso.registernow') +'</a></div></div></div>'
					}			
				],
	        shadow:true
	        });
		
		
		
		/*fpLoginWindow = new Ext.Window({
	    	id:'floginpopup',
	    	resizable:false,
	    	closable:true,
	        closeAction:'hide',
	        plain:false,
	        floating:true,
	        modal:true,
	    	width:400,
	        title: 'Hinweis',
	        shadow:true,
	        items: [ 
				{ 
					html: 	'<div class="mt10" style="font-size:12px;">' + txt + '</div><div class="mt10 mb10 line_dotted"></div>' + 
							'<div class="flr"><a class="mr10" onclick="fpLoginWindow.close(); return false;" href="#"><img onmouseout=\'src="img/buttons/btn_abbrechen_01_77x21.gif";\' onmouseover=\'src="img/buttons/btn_abbrechen_02_77x21.gif";\' src="img/buttons/btn_abbrechen_01_77x21.gif"/></a>' +
							'<a onclick="location.href = \'/?cid=66&doemail=' + email + '&num=' + num + '\'; return false;" href="#"><img onmouseout=\'src="img/buttons/btn_jetztregistrieren_01_108x21.gif";\' onmouseover=\'src="img/buttons/btn_jetztregistrieren_02_108x21.gif";\' src="img/buttons/btn_jetztregistrieren_01_108x21.gif"/></a></div>',
					cls: 'ext-mb-content'
				}			
			]
		});*/
		
	}
	
	
	
	fpLoginWindow.show();

}


/* WM 23.11.08 FÃ¼r Bilder Gallerien */

/* Component for calling functions after all specified Ajax-Request have finished */
Ext.namespace('Ext.ux');

Ext.ux.wait4ajax = Ext.extend(Ext.Component, {
    // Prototype Defaults
    /* List of Eventname to call after Ajax is ready */
	myEvents: [],
	/* List of started Ajax-Requests */
	myStartedAjax: [],

	initComponent : function(){
        Ext.ux.wait4ajax.superclass.initComponent.call(this);		
    },	

    // public
	/* remember started ajax requests */
	addAjaxStarted: function(fnname){		
		this.myStartedAjax.push(fnname);
	},
	
    addAjaxReady: function(fnname,fn){
		/* if function is passed: add function to listeners and save Eventname*/	
		if(typeof fn != 'undefined'){
			this.addListener(fnname,fn,this,0,true);
			/* */
			this.addMyEvents(fnname);
		}		
				
		this.removeAjaxStarted(fnname);
		
		this.checkWaitingAjax();
	}, 	

	// private
	
	addMyEvents : function(fnname){		
		this.myEvents.push(fnname);
    },
	
	/* remove Entry from started Ajax Requests */
	removeAjaxStarted: function(fnname){		
		var nLen = this.myStartedAjax.length;
		var tmpArr = new Array();
		for (i = 0; i < nLen; i++) {
			if(this.myStartedAjax[i] != fnname){
				tmpArr.push(this.myStartedAjax[i]);
			}				
		}
		this.myStartedAjax = tmpArr;
	},	
	
	/* check if there are still unfinished ajax request*/
	checkWaitingAjax : function(){		
		if(this.myStartedAjax.length == 0){
			this.onReady();
		}
    },
	
	/* fire all saved Events*/
	onReady : function(){
		var nLen = this.myEvents.length;
		for(i=0;i<nLen; i++){
			this.fireEvent(this.myEvents[i]);
			//this.removeListener(this.myEvents[nLen]);
		}
    },
	
	onRender : function(ct, position){
	
	},

	
    afterRender : function(){
		Ext.ux.wait4ajax.superclass.afterRender.call(this);
    }


});

function VotePoll(objname,url)
{
	var params = "";
	
	var keys = document.getElementById(objname);
	if (keys) {
		var inputs = keys.getElementsByTagName ('input');
  		if (inputs) {
    		for (var i = 0; i < inputs.length; ++i) {
    		         //alert(inputs[i].type);
    		         //alert(inputs[i].name);
					if(inputs[i].type == "checkbox" || inputs[i].type == "radio"){
						if(inputs[i].checked == true)
						{
							params = params + "&" + inputs[i].name + "=" + inputs[i].value;
						}
    		        }
    		        if(inputs[i].type == "hidden"){
    		        	params = params + "&" + inputs[i].name + "=" + inputs[i].value;
    		        }
    		}
  		}
	};
	
	//alert(params);
	doAjax(url + params);
	
}


function doToggleDownRight(pId,pLink){
	Ext.select('a[class~="blue_down"]',true);
	Ext.select('a[class~="blue_right"]',true);
	
	var el = Ext.get(pId);
	el.setVisibilityMode(Ext.Element.DISPLAY);
	if(el.isVisible()){
		Ext.get(pLink.id).removeClass('blue_down');
		Ext.get(pLink.id).addClass('blue_right');
		el.hide();
	}else{
		Ext.get(pLink.id).removeClass('blue_right');
		Ext.get(pLink.id).addClass('blue_down');
		el.show();
	}
}

/* slider */
/*
var ssource = [];

if (typeof jQuery == 'undefined') {
	ssource.push('/global/js/jquery/jquery-1.6.2.min.js');
}
ssource.push('/global/js/slider.js');
loadScripts(ssource);
*/

function ReloadIVWImages(pIVW){
	var IVW= pIVW + ";";
	
	if(typeof document.szmimages == "undefined"){
		var newimg = document.createElement('img');
		newimg.setAttribute("name","szmimages");
		newimg.setAttribute("height","1");
		newimg.setAttribute("width","1");
		newimg.setAttribute("src", IVW + "?r="+escape(document.referrer)+"&d"+(Math.random()*100000));
		document.body.appendChild(newimg);
	}
	else{
		document.szmimages.src = IVW+"?r="+escape(document.referrer)+"&d="+(Math.random()*100000);
	}	
}
