var titreAcc=Array();
var texteAcc=Array();
var itemAcc;
var numPage=1
var nbItem=10

function isEmail(emailAddress){
	emailAddressValue=emailAddress.value.toLowerCase();
	var countryTLDs=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cat|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$/;
	var gTLDs=/^(aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|jobs)$/;
	var basicAddress=/^(.+)@(.+)$/;
	var specialChars='\\(\\)><@,;:\\\\\\\"\\.\\[\\]';
	var validChars='\[^\\s'+specialChars+'\]';
	var validCharset='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\'-_.';
	var quotedUser='(\"[^\"]*\")';
	var atom=validChars+'+';
	var word='('+atom+'|'+quotedUser+')';
	var validUser=new RegExp('^'+word+'(\.'+word+')*$');
	var symDomain=new RegExp('^'+atom+'(\.'+atom+')*$');
	var matchArray=emailAddressValue.match(basicAddress);
	if(emailAddress.value==''||emailAddress==null){
	return true;
	}
	if(matchArray==null){
		alert('Het emailadres klopt niet, controleer of er een @ in staat.');
		emailAddress.focus();
		return false;
	}else{
		var user=matchArray[1];
		var domain=matchArray[2];
		for(i=0;i<user.length;i++){
		if(validCharset.indexOf(user.charAt(i))==-1){
		alert('Het emailadres bevat ongeldige karakters, controleer de naam.');
		emailAddress.focus();
		return false;
		}
		}
		for(i=0;i<domain.length;i++){
		if(validCharset.indexOf(domain.charAt(i))==-1){
		alert('Het emailadres bevat ongeldige karakters, controleer het domein.');
		emailAddress.focus();
		return false;
		}
		}
		if(user.match(validUser)==null){
		alert('Het emailadres klopt niet, controleer de naam.');
		emailAddress.focus();
		return false;
		}
		var atomPat=new RegExp('^'+atom+'$');
		var domArr=domain.split('.');
		var len=domArr.length;
		for(i=0;i<len;i++){
		if(domArr[i].search(atomPat)==-1){
		alert('Het emailadres klopt niet, controleer het domein.');
		emailAddress.focus();
		return false;
		}
		}
		if((domArr[domArr.length-1].length==2)&&(domArr[domArr.length-1].search(countryTLDs)==-1)){
		alert('Het emailadres klopt niet, controleer het domein.');
		emailAddress.focus();
		return false;
		}
		if((domArr[domArr.length-1].length>2)&&(domArr[domArr.length-1].search(gTLDs)==-1)){
		alert('Het emailadres klopt niet, controleer het domein.');
		emailAddress.focus();
		return false;
		}
		if((domArr[domArr.length-1].length<2)||(domArr[domArr.length-1].length>6)){
		alert('Het emailadres klopt niet, controleer het domein.');
		emailAddress.focus();
		return false;
		}
		if(len<2){
		alert('Het emailadres klopt niet, Zou je aub de ontbrekende hostnaam willen nakijken?.');
		emailAddress.focus();
		return false;
		}
	}
	return true;
}

function showForm(id_form) {
	var tabId=['lid_niet_gebruiker','niet_lid'];
	for (var i=0;i<tabId.length;i++) {
		Ext.get(tabId[i]).setVisibilityMode(Ext.Element.DISPLAY);
		if (id_form==tabId[i])
			Ext.get(tabId[i]).show();
		else
			Ext.get(tabId[i]).hide();
	}
}
String.prototype.trim = function() { return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");	}
function checkForm(myForm) {
	fields=Ext.DomQuery.select('form#' + myForm.id + ' input[class*=frm_valid]')
	formOk=true
	for(var i=0;i<fields.length;i++) {
		if (fields[i].value.trim()==''||fields[i].value==null) {
			//console.log(fields[i].name)
			alert(''+fields[i].name+' is verplicht.');
			formOk=false
		}
	}
	if(formOk){
		fields=Ext.DomQuery.select('form#' + myForm.id + ' input[class*=email_valid]')
		for(var i=0;i<fields.length;i++) {
			if (!isEmail(fields[i])) {
				//console.log(fields[i].name)
				formOk=false
			}
		}
	}
	return formOk
}
function checkNormalForm(myForm) {
	fields=Ext.DomQuery.select('form#' + myForm.id + ' input[class*=frm_valid]')
	errorsTip=Ext.DomQuery.select('form#' + myForm.id + ' img[class*=errorTip]')
	formOk=true
	for(var i=0;i<fields.length;i++) {
		iconError=Ext.get(errorsTip[i]);
		if (fields[i].value.trim()==''||fields[i].value==null) {
			iconError.setVisibilityMode(Ext.Element.DISPLAY);
			iconError.show();
		    new Ext.ToolTip({
		        target: Ext.get(errorsTip[i]),
		        ctCls:'x-form-invalid-tip',
		        html: 'verplicht veld'
		    });
			formOk=false;
		} else {
			iconError.setVisibilityMode(Ext.Element.DISPLAY);
			iconError.hide();
		}
	}
	errorsTip=Ext.DomQuery.select('form#' + myForm.id + ' img[class*=errorEmailTip]')
	fields=Ext.DomQuery.select('form#' + myForm.id + ' input[class*=email_valid]')
	for(var i=0;i<fields.length;i++) {
		if (!isEmail(fields[i])) {
//			new Ext.ToolTip({
//		        target: Ext.get(errorsTip[i]),
//		        ctCls:'x-form-invalid-tip',
//		        html: 'verplicht veld'
//		    });
			formOk=false
		}
	}
	return formOk
}

function collapseAcc(id_bloc_sel,id_item_sel) {
	for (var i = 0; i < titreAcc[id_bloc_sel].length; i++) {
		accItem = Ext.get(texteAcc[id_bloc_sel][i]);
		acctitre = Ext.get(titreAcc[id_bloc_sel][i])
		if (i != id_item_sel) {
			if (accItem.isVisible()) {
				accItem.setVisibilityMode(Ext.Element.DISPLAY);
				accItem.hide();
				classOn=acctitre.dom.className;
				classOff=acctitre.dom.className.replace('On','Off');
				acctitre.removeClass(classOn);
				acctitre.addClass(classOff);
			} 
		} else {
			classOff=acctitre.dom.className;
			classOn=acctitre.dom.className.replace('Off','On');
			acctitre.removeClass(classOff);
			acctitre.addClass(classOn);
			accItem.setVisibilityMode(Ext.Element.DISPLAY);
			accItem.show();
		}
	}
}

function expandContentAcc(ev, target, obj_arg) {
	id_bloc=obj_arg['id_bloc']
	id_item=obj_arg['id_item']
	var item = Ext.get(texteAcc[id_bloc][id_item])
	if (item.isVisible() == false) {
		acctitre = Ext.get(titreAcc[id_bloc][id_item])
		classOff=acctitre.dom.className;
		classOn=acctitre.dom.className.replace('Off','On');
		acctitre.removeClass(classOff);
		acctitre.addClass(classOn);
		accItem.setVisibilityMode(Ext.Element.DISPLAY);
		item.show();
		collapseAcc(id_bloc,id_item);
	}
}

function showAcc(uid,numPage,nbItem) {
	var itemAcc=Ext.DomQuery.select('div#' + uid + ' div[class*=Acc_Point]');
	var blocAccordeon=Ext.DomQuery.select('div[class*=extjs_Acc_Body]');
	var posBlocAcc=0
	var divPagin=Ext.DomQuery.select('div#pagin_' + uid + ' div[class*=Pg_middle]');
	for (var i=0;i<divPagin.length;i++) {
		if(i==numPage-1) {
			Ext.get(divPagin[i]).removeClass('Pg_middle');
			Ext.get(divPagin[i]).addClass('Pg_middle_A');
		} else {
			Ext.get(divPagin[i]).removeClass('Pg_middle_A');
			Ext.get(divPagin[i]).addClass('Pg_middle');
		}		
	}	
	for (var i=0;i<blocAccordeon.length;i++) {
		if (blocAccordeon[i].id==uid) {
			posBlocAcc=i;
		}
	}	
	var first=1
	for(var j=0;j<itemAcc.length;j++) {
		if (j>=(numPage*nbItem) || j<((numPage-1)*nbItem) ) {				
			Ext.get(itemAcc[j]).setVisibilityMode(Ext.Element.DISPLAY);
			Ext.get(itemAcc[j]).hide();
		}else{
			if(first==1) {
				first=0;
				collapseAcc(posBlocAcc,j);
			}
			Ext.get(itemAcc[j]).setVisibilityMode(Ext.Element.DISPLAY);
			Ext.get(itemAcc[j]).show();
		}
	}
}

function initAcc(uidfaq){
	var blocAccordeon=Ext.DomQuery.select('div[class*=extjs_Acc_Body]');
	var defautAcc=0
	var jumpNumPage=0
	var searchUid = ''
	for (var i=0; i<blocAccordeon.length; i++) {
		titreAcc[i]=Ext.DomQuery.select('div#' + blocAccordeon[i].id + ' div[class*=extjs_Acc_Off]');
		texteAcc[i]=Ext.DomQuery.select('div#' + blocAccordeon[i].id + ' div[class*=extjs_Acc_Desc]');
		var itemAcc=Ext.DomQuery.select('div#' + blocAccordeon[i].id + ' div[class*=Acc_Point]');
		for (var j=0; j<titreAcc[i].length; j++) {
			if (uidfaq != '')
				searchUid = uidfaq
			else
				searchUid = Ext.urlDecode(location.search.substring(1)).id;
			if (Ext.get(itemAcc[j]).id== searchUid){
				defautAcc=j;
				jumpNumPage=Math.ceil(j/10)
			}			
			if (j>=(numPage*nbItem) || j<((numPage-1)*nbItem) ) {				
				Ext.get(itemAcc[j]).setVisibilityMode(Ext.Element.DISPLAY);
				Ext.get(itemAcc[j]).hide();
			}
			Ext.get(titreAcc[i][j]).on('click', expandContentAcc, null, {
					id_bloc : i,
					id_item : j
				});
		}
		if (jumpNumPage > 1)
			showAcc(blocAccordeon[i].id,jumpNumPage,nbItem)
		collapseAcc(i,defautAcc);
	}
}
function showFaq(theLink,titleFaq) {
	var arrayLink=Ext.DomQuery.select('ul[class=Python] li');
	for(var i=0;i<arrayLink.length;i++) {
		if(theLink.parentNode!=arrayLink[i] && Ext.get(arrayLink[i]).hasClass("CTR_MenuActive")) {
			Ext.get(arrayLink[i]).removeClass("CTR_MenuActive");
			//text=Ext.get(arrayLink[i]).dom.innerHTML.substr(Ext.get(arrayLink[i]).dom.innerHTML.search(/<\/a>/i)+4);
			text=Ext.get(arrayLink[i]).dom.innerHTML.replace(/<\/a>/i,"")+"</a>";
			//alert(text)
			//Ext.get(arrayLink[i]).first().update(text);
			//elTmp=Ext.get(arrayLink[i]).first();				
			Ext.get(arrayLink[i]).update(text);
			//elTmp.appendTo(Ext.get(arrayLink[i]));
		}
	}
	Ext.get(theLink.parentNode).insertHtml("beforeEnd",Ext.get(theLink).dom.innerHTML);
	Ext.get(theLink).update('');
	Ext.get(theLink.parentNode).addClass("CTR_MenuActive");
	Ext.Ajax.request({
		   url: titleFaq+'/faq',
		   success: function(response, opts) {
		      Ext.get("CCT_Left").update(response.responseText);
		      initAcc('');
		   }
	});
}

function showTopFaq(theLink, titleFaq, uidfaq){
	Ext.Ajax.request({
		   url: titleFaq+'/faq',
		   success: function(response, opts) {
		      Ext.get("CCT_Left").update(response.responseText);
		      initAcc(uidfaq);
		   }
	});

}

function expandForPrint() {
	var blocAcc=Ext.DomQuery.select('div[class*=extjs_Acc_Body]');
	for (var i=0; i<blocAcc.length; i++) {
		titreAcc[i]=Ext.DomQuery.select('div#' + blocAcc[i].id + ' div[class*=extjs_Acc_Off]');
		texteAcc[i]=Ext.DomQuery.select('div#' + blocAcc[i].id + ' div[class*=extjs_Acc_Desc]');
		for (var j=0; j<titreAcc[i].length; j++) {			
			
			//if (texteAcc[i][j].isVisible() == false) {
			//	alert(j)
				acctitre = Ext.get(titreAcc[i][j]);
				classOff=acctitre.dom.className;
				classOn=acctitre.dom.className.replace('Off','On');
				acctitre.removeClass(classOff);
				acctitre.addClass(classOn);
				//accItem.setVisibilityMode(Ext.Element.DISPLAY);
				Ext.get(texteAcc[i][j]).show();
			//}
		}
	}
}


Ext.onReady(function() {
	
	if (Ext.QuickTips!=null) {
	  Ext.QuickTips.init();
	}
	errorsTip=Ext.DomQuery.select('form img[class*=error]')
	for (var i=0;i<errorsTip.length;i++) {
		Ext.get(errorsTip[i]).setVisibilityMode(Ext.Element.DISPLAY);
		Ext.get(errorsTip[i]).hide() 
	}
	if (Ext.get('lid_niet_gebruiker') != null) {
		showForm('lid_niet_gebruiker');
	}	
	if (Ext.urlDecode(location.search.substring(1)).idfaq)
		showTopFaq(this, Ext.urlDecode(location.search.substring(1)).idfaq, Ext.urlDecode(location.search.substring(1)).uid)
	else
		initAcc('');
});






/// Print Script - Nicolas

var gAutoPrint = false;
function processPrint(){
		var html = '<HTML>\n<HEAD>\n';
		var headTags = Ext.DomQuery.select("/html/head");		
		if (headTags.length > 0) html += headTags[0].innerHTML;

		html=html.replace(/<script.[^>]*><\/script>/g,"");
		html=html.replace(/<script.[^>]*>/g,"");
		var title=html.match(/<title>(.[^<]*)<\/title>/i);
		title=title[1];
		var footerHtml=Ext.get("footer").dom.innerHTML;
		var adresse=footerHtml.match(/\|(.[^\|]*)/);
		adresse=adresse[1]
		var tel=footerHtml.match(/([^\|]*)/g);
		tel=tel[4]
		adresse+=tel
		html +='<link rel=\"stylesheet\" type=\"text/css\" href=\"../++resource++MutNeutresCss/mainstyle.css\"><link rel=\"stylesheet\" type=\"text/css\" href=\"../++resource++MutNeutresCss/innerpages.css\"><link rel=\"stylesheet\" type=\"text/css\" href=\"../++resource++MutNeutresCss/portlets.css\">';
		html += '\n</HEAD>\n<BODY style=\"background:#fff;\"><div id=\"mainCT\"><h1>'+title+'</h1><h2>'+adresse+'</h2><hr><div id=\"centerCTbody\"><div id=\"CCT_Left\">\n';
		var printReadyElem = Ext.get("CCT_Left").dom;
		if (printReadyElem != null) html += printReadyElem.innerHTML;
			else{
				alert("Error, there is no contents.");
				return;
				}
		html=html.replace(/Acc_Off/gi,"Acc_On");
		html=html.replace(/style="display: none;"/gi,"");
		html += '\n</div></div></div><script>window.print();</script></BODY>\n</HTML>';
		var printWin = window.open("","processPrint");
		printWin.document.open();
		printWin.document.write(html);
		printWin.document.close();
}

