
function lockCheckBox(item){
	if(item.checked == false)
		{item.checked = true}
	else if(item.checked == true)
		{item.checked = false}
}

var formID = 'fEmpty';

// extended text form switch
function changeForms(fID){
	// hide previos form
	if(frmOld = document.getElementById(formID)){
		frmOld.style.display = 'none';	
	}
	// show new form
	if(frmNew = document.getElementById(fID)){
		frmNew.style.display = '';	
	}
	// show empty form (close)
	if(formID == fID){
		if(frmNew = document.getElementById(fID)){
			frmNew.style.display = 'none';	
		}
		if(frmEmpty = document.getElementById('fEmpty')){
			frmEmpty.style.display = '';
			frmEmpty.innerHTML = '&nbsp;';	
		}
		
		formID = 'fEmpty';
	} else {
		formID = fID;
	}
}


// client form
function checkClientForm(){
	canSend = 1;
	
	if(fldMail = document.getElementById('fMail')){
		regExpr = /^[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*@[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*$/i;
		if(regExpr.test(fldMail.value) == false){
			canSend = 0;
			alert(errorMail);
			return;	
		}
	}
	
	if(fldName = document.getElementById('fName')){
		if(fldName.value == ''){
			canSend = 0;
			alert(errorName);
			return;
		}
	}
	
	if(fldPhone= document.getElementById('fPhone')){
		if(fldPhone.value == ''){
			canSend = 0;
			alert(errorPhone);
			return;
		}
	}
	
	if(fldCaptcha = document.getElementById('captchaI')){
		if(fldCaptcha.value == ''){
			canSend = 0;
			alert(errorCaptcha);
			return;	
		}
	}
	
	if(canSend == 1){
		var frmAskMargin = document.getElementById('frmAsk');		
		if ( frmAskMargin != undefined )
			frmAskMargin.submit();		
	}
}

// extended send form
function checkSendForm(){
	canSend = 1;
	
	if(fldMail = document.getElementById('sendMail')){
		regExpr = /^[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*@[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*$/i;
		if(regExpr.test(fldMail.value) == false){
			canSend = 0;
			alert(errorMail);
			return;	
		}
	}
	
	if(fldName = document.getElementById('sendName')){
		if(fldName.value == ''){
			canSend = 0;
			alert(errorName)
			return;	
		}
	}
	
	if(canSend == 1){
		document.forms['frmSend'].submit();
	}
}

// extended ask form
function checkAskForm(){
	canSend = 1;
	
	if(fldName = document.getElementById('askName')){
		if(fldName.value == ''){
			canSend = 0;
			alert(errorNameA);
			return;	
		}
	}
	
	if(fldPhone = document.getElementById('askPhone')){
		regExpr = /^(\+(\d){1,3}( )?)?\d{7,}$/;
		if(regExpr.test(fldPhone.value) == false){
			canSend = 0;
			alert(errorPhoneA);
			return;	
		}
	}
	
	if(fldMail = document.getElementById('askMail')){
		regExpr = /^[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*@[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*$/i;
		if(regExpr.test(fldMail.value) == false){
			canSend = 0;
			alert(errorMailA);
			return;	
		}
	}
	
	if(fldTheme = document.getElementById('askTheme')){
		if(fldTheme.value == 0){
			canSend = 0;
			alert(errorTopicA);
			return;	
		}
	}
	
	if(fldText = document.getElementById('askText')){
		if(fldText.value == ''){
			canSend = 0;
			alert(errorTextA);
			return;	
		}
	}
	
	if(canSend == 1){
		document.forms['frmAsk'].submit();
	}
}

// block Suggestions
function checkSuggestionsForm(){
	canSend = 1;
	
	if(fldName = document.getElementById('askName')){
		if(fldName.value == ''){
			canSend = 0;
			alert(errorName);
			return;	
		}
	}
	
	if(fldPhone = document.getElementById('askPhone')){
		regExpr = /^(\+(\d){1,3}( )?)?\d{7,}$/;
		if(regExpr.test(fldPhone.value) == false){
			canSend = 0;
			alert(errorPhone);
			return;	
		}
	}
	
	if(fldMail = document.getElementById('askMail')){
		regExpr = /^[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*@[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*$/i;
		if(regExpr.test(fldMail.value) == false){
			canSend = 0;
			alert(errorMail);
			return;	
		}
	}
	
	if(fldText = document.getElementById('askTextX')){
		if(fldText.value == ''){
			canSend = 0;
			alert(errorText);
			return;	
		}
	}
	
	if(fldCaptcha = document.getElementById('captchaI')){
		if(fldCaptcha.value == ''){
			canSend = 0;
			alert(errorCaptcha);
			return;	
		}
	}
	
	if(canSend == 1){
		document.forms['frmAsk'].submit();
	}
}

// CV form
function checkCVForm(){
	canSend = 1;
	
	if(fldName = document.getElementById('pdName')){
		if(fldName.value == ''){
			canSend = 0;
			alert(errorName);
			return;	
		}
	}
	if ( ( lg  == 'lv') || ( lg  == 'ru') || ( lg  == 'en') ){ 
		if(pdCode = document.getElementById('pdCode1')){
			regExpr = /^\d{6}$/;
			if(regExpr.test(pdCode.value) == false){
				canSend = 0;
				alert(errorCode);
				return;	
			}
		}
		
		if(pdCode = document.getElementById('pdCode2')){
			regExpr = /^\d{5}$/;
			if(regExpr.test(pdCode.value) == false){
				canSend = 0;
				alert(errorCode);
				return;	
			}
		}
	}
	
	if(fldPhone = document.getElementById('pdPhone')){
		if(fldMobile = document.getElementById('pdMobile')){
			regExpr = /^(\+(\d){1,3}( )?)?\d{7,}$/;
			if(regExpr.test(fldPhone.value) == false || regExpr.test(fldMobile.value) == false){
				canSend = 0;
				alert(errorPhone);
				return;	
			}
		}
	}
	
	if(fldMail = document.getElementById('pdMail')){
		regExpr = /^[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*@[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*$/i;
		if(regExpr.test(fldMail.value) == false){
			canSend = 0;
			alert(errorMail);
			return;	
		}
	}
	
	if(fldCaptcha = document.getElementById('captchaI')){
		if(fldCaptcha.value == ''){
			canSend = 0;
			alert(errorCaptcha);
			return;	
		}
	}
	
	if(canSend == 1){
		document.forms['frmAsk'].submit();
	}
}

// personal form
function checkPersonalForm(){
	canSend = 1;
	
	if(fldName = document.getElementById('pdName')){
		if(fldSurname = document.getElementById('pdSurname')){
			if(fldName.value == '' || fldSurname.value == ''){
				canSend = 0;
				alert(errorName);
				return;	
			}
		}
	}
	
	if(fldMail = document.getElementById('pdMail')){
		regExpr = /^[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*@[!#$%&\'*+\/=?^_`{|}~a-z0-9-]+([.][!#$%&\'*+\/=?^_`{|}~a-z0-9-]+)*$/i;
		if(regExpr.test(fldMail.value) == false){
			canSend = 0;
			alert(errorMail);
			return;	
		}
	}
	
	
	
	
	time = new Date();
	cy = time.getFullYear();
	cm = time.getMonth() + 1;
	cd = time.getDate();
		
	if(cm < 10)
		cm = '0' + cm;
			
	if(cd < 10)
		cd = '0' + cd;
			
	curr = cy + '' + cm + '' + cd;
	
	if(fldDateD = document.getElementById('pdBirthDate1')){
		if(fldDateM = document.getElementById('pdBirthDate2')){
			if(fldDateY = document.getElementById('pdBirthDate3')){
				
				regExpr = /^\d{2}$/;
				regExpr2 = /^\d{4}$/;
				if(regExpr.test(fldDateD.value) == false || regExpr.test(fldDateM.value) == false || regExpr2.test(fldDateY.value) == false){
					canSend = 0;
					alert(errorBDate);
					return;	
				}
				
				emTMP = fldDateM.value;
				if(fldDateM.value.substr(0,1) == 0)
					emTMP = fldDateM.value.substr(1,1)
			
				edTMP = fldDateD.value;
				if(fldDateD.value.substr(0,1) == 0)
					edTMP = fldDateD.value.substr(1,1)
				
				if(emTMP < 1 || emTMP > 12){
					canSend = 0;
					alert(errorBDate);
					return;	
				}
		
				if(edTMP < 1 || edTMP > 31){
					canSend = 0;
					alert(errorBDate);
					return;	
				}
		
				if(emTMP == 4 || emTMP == 6 || emTMP == 9 || emTMP == 11){
					if(edTMP > 30){
						canSend = 0;
						alert(errorBDate);
						return;	
					}
				}
				
				if(emTMP == 2){
					if(edTMP > 28){
						canSend = 0;
						alert(errorBDate);
						return;	
					}
				}
				
				currEntered = fldDateY.value + '' + fldDateM.value + '' + fldDateD.value;
		
				if(currEntered > curr){
					canSend = 0;
					alert(errorBDate);
					return;		
				}
			}
		}
	}
	
	if(fldDateD = document.getElementById('docDate1')){
		if(fldDateM = document.getElementById('docDate2')){
			if(fldDateY = document.getElementById('docDate3')){
				
				regExpr = /^\d{2}$/;
				regExpr2 = /^\d{4}$/;
				if(regExpr.test(fldDateD.value) == false || regExpr.test(fldDateM.value) == false || regExpr2.test(fldDateY.value) == false){
					canSend = 0;
					alert(errorDate);
					return;	
				}
				
				emTMP = fldDateM.value;
				if(fldDateM.value.substr(0,1) == 0)
					emTMP = fldDateM.value.substr(1,1)
			
				edTMP = fldDateD.value;
				if(fldDateD.value.substr(0,1) == 0)
					edTMP = fldDateD.value.substr(1,1)
				
				if(emTMP < 1 || emTMP > 12){
					canSend = 0;
					alert(errorDate);
					return;	
				}
		
				if(edTMP < 1 || edTMP > 31){
					canSend = 0;
					alert(errorDate);
					return;	
				}
		
				if(emTMP == 4 || emTMP == 6 || emTMP == 9 || emTMP == 11){
					if(edTMP > 30){
						canSend = 0;
						alert(errorDate);
						return;	
					}
				}
				
				if(emTMP == 2){
					if(edTMP > 28){
						canSend = 0;
						alert(errorDate);
						return;	
					}
				}
				
				currEntered = fldDateY.value + '' + fldDateM.value + '' + fldDateD.value;
		
				if(currEntered > curr){
					canSend = 0;
					alert(errorDate);
					return;		
				}
			}
		}
	}
	
	if(fldCaptcha = document.getElementById('captchaI')){
		if(fldCaptcha.value == ''){
			canSend = 0;
			alert(errorCaptcha);
			return;	
		}
	}
		
	if(canSend == 1){
		document.forms['frmAsk'].submit();
	}
}

// corporate form
function checkCorporateForm(){
	canSend = 1;
	
	if(fldName = document.getElementById('cdName')){
		if(fldName.value == ''){
			canSend = 0;
			alert(errorName);
			return;	
		}
	}
	
	time = new Date();
	cy = time.getFullYear();
	cm = time.getMonth() + 1;
	cd = time.getDate();
		
	if(cm < 10)
		cm = '0' + cm;
			
	if(cd < 10)
		cd = '0' + cd;
			
	curr = cy + '' + cm + '' + cd;
	
	if(fldDateD = document.getElementById('cdDate1')){
		if(fldDateM = document.getElementById('cdDate2')){
			if(fldDateY = document.getElementById('cdDate3')){
				
				regExpr = /^\d{2}$/;
				regExpr2 = /^\d{4}$/;
				if(regExpr.test(fldDateD.value) == false || regExpr.test(fldDateM.value) == false || regExpr2.test(fldDateY.value) == false){
					canSend = 0;
					alert(errorDate);
					return;	
				}
				
				emTMP = fldDateM.value;
				if(fldDateM.value.substr(0,1) == 0)
					emTMP = fldDateM.value.substr(1,1)
			
				edTMP = fldDateD.value;
				if(fldDateD.value.substr(0,1) == 0)
					edTMP = fldDateD.value.substr(1,1)
				
				if(emTMP < 1 || emTMP > 12){
					canSend = 0;
					alert(errorDate);
					return;	
				}
		
				if(edTMP < 1 || edTMP > 31){
					canSend = 0;
					alert(errorDate);
					return;	
				}
		
				if(emTMP == 4 || emTMP == 6 || emTMP == 9 || emTMP == 11){
					if(edTMP > 30){
						canSend = 0;
						alert(errorDate);
						return;	
					}
				}
				
				if(emTMP == 2){
					if(edTMP > 28){
						canSend = 0;
						alert(errorDate);
						return;	
					}
				}
				
				currEntered = fldDateY.value + '' + fldDateM.value + '' + fldDateD.value;
		
				if(currEntered > curr){
					canSend = 0;
					alert(errorDate);
					return;		
				}
			}
		}
	}
		
	if(canSend == 1){
		document.forms['frmAsk'].submit();
	}
}

// partner search..
function checkPartnerSearchForm(){
	document.forms['frmAsk'].submit();
}

function checkFields() {
	var num, tp = document.getElementById('type'), sum = document.getElementById('summa');
	if (tp.selectedIndex != 1) {
		num = parseFloat(sum.value);
		if (isNaN(num) || num <= 0) {
			displayError(errSUMMA);
			return false;
		} else
			sayNum(sum,num,2,true);
	}
	var pc = document.getElementById('procent');
	num = parseFloat(pc.value);
	if (isNaN(num) || num <= 0.0) {
		displayError(errLIKME);
		return false;
	} else
		sayNum(pc,num,2,true);

	if (tp.selectedIndex != 2) {
		var tm = document.getElementById('terminsI');
		num = parseInt(tm.value,10);
		if (isNaN(num) || num <= 0) {
			displayError(errTERMINS);
			return false;
		} else
			sayNum(tm,num,0,false);
	}
	if (tp.selectedIndex != 0) {
		var mn = document.getElementById('month');
		num = parseFloat(mn.value);
		if (isNaN(num) || num <= 0) {
			displayError(errMONTH);
			return false;
		} else
			sayNum(mn,num,2,false);
	}
	var min = document.getElementById('minimum');
	num = parseFloat(min.value);
	if (isNaN(num) || num <= 0)
		min.value = '';
	else
		sayNum(min,num,2,true)
	displayError('');
	return true;
}

function changeType() {
	var tp = document.getElementById('type'), 
		sum = document.getElementById('summa');
	if (tp.selectedIndex == 1) {
		sum.value = '';
		sum.disabled = true;
		sum.style.backgroundColor = '#f0f0f0';
	} else {
		sum.disabled = false;
		sum.style.backgroundColor = '';
	}
	var ts = document.getElementById('terminsS');
	var ti = document.getElementById('terminsI');
	if (tp.selectedIndex == 2) {
		ts.selectedIndex = 0;
		ts.disabled = true;
		ts.style.backgroundColor = '#f0f0f0';
		ti.value = '';
		ti.disabled = true;
		ti.style.backgroundColor = '#f0f0f0';
	} else {
		ts.disabled = false;
		ts.style.backgroundColor = '';
		ti.disabled = false;
		ti.style.backgroundColor = '';
	}
	var mn = document.getElementById('month');
	if (tp.selectedIndex == 0) {
		mn.value = '';
		mn.disabled = true;
		mn.style.backgroundColor = '#f0f0f0';
	} else {
		mn.disabled = false;
		mn.style.backgroundColor = '';
	}

}
function displayError(str) {
	if (str != "") document.getElementById("errorField").style.display = "";
	var td = document.getElementById('tdError');
	td.innerHTML = str;
}

function logn(x,n){					
	return (Math.log(x) / Math.log(n));
}

function sayNum(obj,num,dec,zero) {
	if (dec == 0) { 
		num = Math.round(num);
		var str = ( '' + num == '0' && zero == false) ? '' : num;
		if (obj) obj.value = str;
		return str;
	} else {
		num = Math.round(num * Math.pow(10,dec)) / Math.pow(10,dec);
		if (''+num == '0' && zero == false) {
			if (obj) obj.value = '';
			return '';
		} else {
			var str, x, point = false, cnt = 0;
			str = '' + num;
			for (x = 0; x < str.length; x++){
				if (str.substr(x,1) == '.')
					point = true;
				else if (point)
					cnt++;
			}
			if (dec > 0 && point == false)
				str += '.';
			for (x = cnt; x < dec; x++)
				str += '0';
			if (obj) obj.value = str;
			return str;
		}
	}
}

function Calc() {
	var rT = document.getElementById("resultTable");
	document.getElementById("errorField").style.display = "none";
	if (!checkFields()) {
		rT.style.display = "none";
		rT.innerHTML = "";
		return;
	}
	var B3,B4,B5,B6;
	var grafik, tp, obj, month;
	grafik = document.getElementById('grafik0').checked ? 0 : 1;
	obj = document.getElementById('type');
	tp = obj.options[obj.selectedIndex].value;
	switch (tp) {
 		case '0':
					B3 = parseFloat(document.getElementById('summa').value);
					B4 = parseFloat(document.getElementById('procent').value);
					B5 = parseInt(document.getElementById('terminsI').value,10);
					obj = document.getElementById('terminsS');
					if (obj.selectedIndex == 1)
						B5 *= 12;
					if (grafik == 1) {
						B6 = B3/B5+B3*B4/100*30/365;
					} else {
						B6 =(B3*(B4/1200)*Math.pow(1+B4/1200,B5))/(Math.pow(1+B4/1200,B5)-1);
					}
					sayNum(document.getElementById('month'),B6,2,true)
					break;
		case '1':
					B4 = parseFloat(document.getElementById('procent').value);
					B5 = parseInt(document.getElementById('terminsI').value,10);
					obj = document.getElementById('terminsS');
					if (obj.selectedIndex == 1)
						B5 *= 12;
					B6 = parseFloat(document.getElementById('month').value);
					if (grafik == 1) {
						B3 = B6/(1/B5+B4/100*30/360);
					} else {
						B3 = B6/(((B4/1200)*Math.pow(1+B4/1200,B5))/(Math.pow(1+B4/1200,B5)-1));
					}
					sayNum(document.getElementById('summa'),B3,2,true)
					break;
		case '2':
					B3 = parseFloat(document.getElementById('summa').value);
					B4 = parseFloat(document.getElementById('procent').value);
					B6 = parseFloat(document.getElementById('month').value);
					if (grafik == 1) {
						B5 = 1/(B6/B3-B4/100*30/360);
					} else {
						B5 = logn(1/(1-(B3*(B4/1200))/B6),1+B4/1200);
					}
					if (isNaN(B5) || B5 <= 0) {
						document.getElementById('terminsI').value ='###';
					} else {
						B5 = Math.ceil(B5);
						sayNum(document.getElementById('terminsI'),B5,0,true);
						document.getElementById('terminsS').selectedIndex = 0;
					}
					break;
	}
	displayLimit();
	var summa = document.getElementById('summa').value;
	var pcnt = document.getElementById('procent').value / 1200;
	var month = document.getElementById('terminsI').value;
	obj = document.getElementById('terminsS');
	if (obj.selectedIndex == 1)
		month *= 12;
	var graph = grafik;
	
	var html = "";
	html += '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
	html += '<tr>';
	for (i = 0; i < 5; i++)
		html += '<td class="ctHeaderRow' + (i == 0 ? 'F' : (i == 4 ? 'L' : 'O')) + 'C" style="width: 20%;">' + head[i] + '<\/td>';
	html += '<\/tr>';
	html += '<tr>';
	html += '<td class="ct2ndRowFC">&nbsp;<\/td>';
	html += '<td class="ct2ndRowOC"><b>' + summa + '<\/b><\/td>';
	html += '<td class="ct2ndRowOC">&nbsp;<\/td>';
	html += '<td class="ct2ndRowOC">&nbsp;<\/td>';
	html += '<td class="ct2ndRowLC">&nbsp;<\/td>';
	html += '<\/tr>';
	
	if (graph == 1) {
		var money = summa / month + summa * pcnt;
	} else {
		var money = (summa * pcnt * Math.pow(1 + pcnt, month)) / (Math.pow(1 + pcnt, month) - 1);
	}

	var item = new Array();
	var total = new Array(0,0,0);
	if (graph == 0) {
		for(x = 1; x <= month; x++) {
			var sum = Math.round(summa * pcnt * 100) / 100;
			if (x == month)
				money += summa - money + sum;
			summa -= (money - sum);
			total[0] += money - sum;
			total[1] += sum;
			total[2] += money;
			var td2 = sayNum(false, summa, 2, true);
			var td3 = sayNum(false, money - sum, 2, true);
			var td4 = sayNum(false, sum, 2, true);
			var td5 = sayNum(false, money, 2, true);
			
			item[item.length] = {'class':(x % 2 ? 'Ev' : ''),'td1':x,'td2':td2,'td3':td3,'td4':td4,'td5':td5};
		}
	} else {
		for(x = 1, sub = 0; x <= month; x++) {
			var sum = Math.round(summa * pcnt * 100) / 100;
			if (!sub)
				sub = money - sum;
			if (x == month)
				sub += summa - sub;
			money = sub + sum;
			summa -= sub;
			total[0] += sub;
			total[1] += sum;
			total[2] += money;
			var td2 = sayNum(false, summa, 2, true);
			var td3 = sayNum(false, sub, 2, true);
			var td4 = sayNum(false, sum, 2, true);
			var td5 = sayNum(false, money, 2, true);
			
			item[item.length] = {'class':(x % 2 ? 'Ev' : ''),'td1':x,'td2':td2,'td3':td3,'td4':td4,'td5':td5};
		}
	}
	
	for (j = 0, jmax = item.length; j < jmax; j++) {
		html += '<tr>';
		html += '<td class="ctRowFC' + item[j]['class'] + '">';
		html += item[j]['td1'];
		html += '<\/td>';
		html += '<td class="ctRowOC' + item[j]['class'] + '">';
		html += item[j]['td2'];
		html += '<\/td>';
		html += '<td class="ctRowOC' + item[j]['class'] + '">';
		html += item[j]['td3'];
		html += '<\/td>';
		html += '<td class="ctRowOC' + item[j]['class'] + '">';
		html += item[j]['td4'];
		html += '<\/td>';
		html += '<td class="ctRowLC' + item[j]['class'] + '">';
		html += item[j]['td5'];
		html += '<\/td>';
		html += '<\/tr>';
	}
	
	html += '<tr>';
	html += '<td class="ctRowFC' + (item.length % 2 == 0 ? 'Ev' : '') + '">&nbsp;<\/td>';
	html += '<td class="ctRowOC' + (item.length % 2 == 0 ? 'Ev' : '') + '">&nbsp;<\/td>';
	html += '<td class="ctRowOC' + (item.length % 2 == 0 ? 'Ev' : '') + '"><b>' + sayNum(false, total[0], 2, true) + '<\/b><\/td>';
	html += '<td class="ctRowOC' + (item.length % 2 == 0 ? 'Ev' : '') + '"><b>' + sayNum(false, total[1], 2, true) + '<\/b><\/td>';
	html += '<td class="ctRowLC' + (item.length % 2 == 0 ? 'Ev' : '') + '"><b>' + sayNum(false, total[2], 2, true) + '<\/b><\/td>';
	html += '<\/tr>';
	html += '<\/table>';
	rT.innerHTML = html;
	rT.style.display = "";
	init();
}

function displayLimit() {
	var str = '';
	var sm = parseFloat(document.getElementById('summa').value);
	var mn = parseFloat(document.getElementById('month').value);
	var ti = parseInt(document.getElementById('terminsI').value,10);
	if (document.getElementById('terminsS').selectedIndex == 1)
		ti *= 12;
	sayNum(document.getElementById('minimum'),mn / 0.4,2,true);
	if (mn > sm)
		str += limSUMMA + '<br />';
	if (isNaN(ti) || (ti > 480))
		str += limPEDIOD + '<br />';
	displayError(str);
}

function checkOffContForm(id) {
	var checks = new Array("compName", "offer", "cPerson", "cPhone", "cAddress", "email", "interest");
	for (i = 0, imax = checks.length; i < imax; i++) {
		var el = document.getElementById(checks[i] + '_' + id);
		if (i == 5) var elMail = el;
		if (!el) break;
		if (el.value.match(/^[\s]*$/)) {
			alert(errorMessages[i]);
			return false;
		}
	}
	if (elMail) {
		if (!elMail.value.match(/^[!#$%&\'\*\+\/=?^_`{|}~a-z0-9-]+(\.[!#$%&\'\*\+\/=?^_`{|}~a-z0-9-]+)*@[!#$%&\'\*\+\/=?^_`{|}~a-z0-9-]+(\.[!#$%&\'\*\+\/=?^_`{|}~a-z0-9-]{2,})+$/)) {
			alert(errorMessages[errorMessages.length - 1]);
			return false;
		}
	}
}

function showHideInfo(id, t, h) {
	if (t == 1) 
		el = document.getElementById("moreInfo" + id);
	else
		el = document.getElementById("contactForm" + id);
	if (!el) return;
	if (el.style.display == "none" && !h) {
		el.style.display = "";
	} else {
		el.style.display = "none";
	}
	if (!h) {
		showHideInfo(id, 1 - t, 1);
		if (t == 0) {
			var els = document.getElementsByName("partnNrLbl");
			for (i = 0, imax = els.length; i < imax; i++) {
				var newId = els[i].value;
				if (newId != id) {
					var el = document.getElementById("contactForm" + newId);
					if (!el) break;
					el.style.display = "none";
				}
			}
		}
	}
	init();
}

function openimg(charity, name, width, height, path)
{
	win = window.open(path + "/slideshow?path=" + charity + "&start=" + name , charity, "width=" + width + ",height=" + height + ",location=no,status=no,resizable=no,toolbar=no,scrollbars=no,menubar=no");
}

function image(name, w, h) {
	window.open("http://www.paritate.pt/img/conf2004/" + name, "image", "width=" + (parseInt(w) + 20) + ",height=" + (parseInt(h) + 20) + ",location=no,status=no,resizable=no,toolbar=no,scrollbars=no,menubar=no");
}

/*
FORUM

1.Global Functions
*/
var adState = 0;
var speed = 4;
var timeout = 150;


var psdSwapState = 0;
var pfSwapState = 0;
var pfSwapC1 = '';
var pfSwapC2 = '';
var pfAdv = 0;
var pfAdvTmp = '';
var firsttime = [1,1,1,1,1];
var pics = ['tyre','tyre','batt','oil','disc'];

//total: 8
var checkclasses = ['blank','wrong','right']
var userData = {id:1};
var loginState = 0;
var regmatrix = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
var regNames = ['login', 'firstName', 'lastName', 'password', 'email'];

var currentDialog = 1;

//forumStr = 'Forums'; // added to block.tmpl

var action = "";
var aid = "";

var regError = 1;
var errorFlag = 0;

//Added stupidvars
//var gid = parseInt("0");
var gid = parseInt("0");
var fid = parseInt("0");
var tid = parseInt("0");
var pid = parseInt("0");
var cd = parseInt("0");
var cp = parseInt("0");

//DB ForumVars
var regUsers;

//request vars
var req;
var response;
var funcs = ['pfReset', 'loginDo', 'dummy', 'dummy', 'fInputCheck', 'popResult', 'popResult', 'dummy', 'showForumStatus', 'loadForumVars', 'xmlPut', 'postListener', 'postListener', 'threadListener'];
var maxProcs = 1;
var currentProcs = 0;

//IE check regexp
var t = new RegExp('internet explorer','gi');
var ie = (t.test(navigator.appName) ? 1 : 0)

//XML listener
var xmlData;
var xmlLevel;
var xmlDone;
var xmlNext;
var xmlDepth = 0;
var xmlRowsBefore;
var xmlPages = [];
var postForm = 0;
var lastPost = 0;

//posts
var editing = 0;
var editID = 0;

//path constructor
var currentPath = [];
//var pathMatrix = [forumStr];  // added to block.tmpl

//ppp
var postsPerPage = 10;
var currentPage = 0;
var totalPages = 0;

//insert your onload functions here
window.onload = function() {
	
	if(action && !iiosb)
		doAction(action, aid);
	
	if(obj = document.getElementById("pType"))
		switchProd(obj);
	
	if(typeof pfStart != 'undefined')
		if(pfStart == 1)
			pfSwap();
			
	if(typeof(forumModes) != "undefined"){
		d = jsGetCookie('', 1);
		if(parseInt(d['id']) > 0)
			userData = d;
		
		
		if(gid != 0){
			currentPath[0] = gid;
			if(fid != 0){
				currentPath[1] = fid;
				if(tid != 0){
					currentPath[2] = tid;
				}
			}
		}
		
		if(cd != 0){
			currentDialog = cd;
		}

		if(cp != 0){
			currentPage = cp;
		}
		
		//if(typeof(d.path) != 'undefined' && d.path != 'undefined')
		//	currentPath = d.path.split(',');
		
		initForum();
	}
	init();
}

window.onunload = function() {
	if(typeof(forumModes) != "undefined"){
		//jsSetCookie('path', currentPath);
		if(userData.id)
			logoutDo(0);
		if(clockID)
			killClock();
	}
}

function refreshDivs(){
	if(el = document.getElementById("headerDivs"))
		el.refresh();
}

function dummy(response){
	//do nothing;
	return;
}

function jsSetCookie(sName, sValue){
	document.cookie = sName + "=" + escape(sValue) + "; ";
}
	
function jsGetCookie(sName, mode){
	var aCookie = document.cookie.split("; ");
	if(mode == 0)
		for (var i = 0, maxi = aCookie.length; i < maxi; i++){
			var aCrumb = aCookie[i].split("=");
			if (sName == aCrumb[0]){
				return unescape(aCrumb[1]);
			}
		}
	else {
		var d = [];
		c = 0;
		for (var i = 0, maxi = aCookie.length; i < maxi; i++){
			var aCrumb = aCookie[i].split("=");
			d[aCrumb[0]] = unescape(aCrumb[1]);
			c++;
		}
		return d
	}
	return false;
}

function serialize(x){
	function sN(x)
	{
		return((parseInt(x)==x)&&(x<2147483648)?'i':'d')+':'+x+';'
	}
	function sS(x)
	{
		//x=escape(x);
		return 's:'+x.length+':"'+x+'";'
	}
	function sO(x)
	{
		var a=[];
			for(var i in x)
				if('function'!=typeof(x[i]))
					a[a.length]=sX(isNaN(d=parseInt(i))?i:d)+sX(x[i]);
		return 'a:'+a.length+':{'+a.join('')+'}';
	}
	function sX(x)
	{
		if(x==null)return 'N;';
		switch(typeof(x))
		{
			case 'string':
				return sS(x);
			case 'number':
				return sN(x);
			case 'object':
				return sO(x)
		}
	}
	return sX(x)
}


/*
XMLHTTPRequest Module
*/

//if (typeof XMLHttpRequest != "object")
//function XMLHttpRequest(){
//	return new ActiveXObject("Microsoft.XMLHTTP");
//}


function CRObj()
{
	var obj = null;
	try{
		obj = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e){
		try{
			obj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(oc){
			obj = null;
		}
	}

	if (!obj && typeof XMLHttpRequest!="undefined"){
		obj = new XMLHttpRequest();
	}
	return obj;
}

function request(matrix, mode, func, lang){
	//alert('called: ' + funcs[func] + ' (' + func + '), working: ' + currentProcs + ', mode: ' + mode + ', matrix: ' + matrix);
	if (!lang) lang = 0;
	if(currentProcs < maxProcs){
		
		currentProcs++;
	
		req = CRObj();
				requrl = "/pa385/request";
		
		if (req){
			req.onreadystatechange = processReqChange;
			//the Matrix has you! (:
			//q = requrl + '?mode=' + mode + '&matrix=' + escape(matrix) + '&func=' + func + '&rand=' + Math.random();
			q = 'mode=' + mode + '&matrix=' + escape(matrix) + '&func=' + func + '&lang=' + lang + '&rand=' + Math.random();
			
			req.open("POST", requrl);
			req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			req.send(q);
		} else {
			var url = requrl + '?mode=' + mode + '&matrix=' + matrix + '&func=' + func + '&lang=' + lang + '&non=1&rand=' + Math.random();
			
			var span = null;
			span = document.body.appendChild(document.createElement("SPAN"));
	
			span.style.display = 'none';
			span.innerHTML = 'script span<script></' + 'script>';
	
			var s = span.getElementsByTagName("script")[0];
			s.type = "text/javascript";
	
			if (s.setAttribute) 
				s.setAttribute('src', url); 
			else 
				s.src = url;
		}
		
	} else {
		//alert('once more');
		setTimeout('request("' + matrix + '", ' + mode + ', ' + func + ', ' + lang + ')', 500);
	}
	init();
}

function processReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			currentProcs--;
			//alert(req.responseText);
			
			eval('response = ' + unescape(req.responseText));
			
			if(parseInt(response.func) == 10)
				xmlPut(response);
			else
				eval(funcs[response.func] + '(response)');
		}
	}
}


/*
Login
*/
function loginSwap(){
	c1 = document.getElementById("loginLinks");
	c2 = document.getElementById("loginField");
	
	if(loginState == 0){
		c1.innerHTML = loginLinks1;
		c2.innerHTML = loginCases[1];
		loginState = 1;
	} else {
		c1.innerHTML = loginLinks0;
		c2.innerHTML = loginCases[0];
		loginState = 0;
	}
}

function loginCheck(inp, state){
	if(state == 0){
		saveForm('forumLog');
		if(inp.value != "")
			request(inp.value, 0, 1);
	} else {
		if(inp = document.getElementById("login"))
			if(inp2 = document.getElementById("password_"))
				if(inp.value != "" && inp2.value != "")
					request(inp.value + ',' + inp2.value, 1, 1);
	}
}

function loginDo(response, ctrl){
	if(ctrl){
		if(inp = document.getElementById("login"))
			inp.value = "";
		if(inp2 = document.getElementById("password_"))
			inp2.value = "";
		
		loginSwap();
		
		if(us = document.getElementById("user"))
			us.innerHTML = userData.login;
			
		request(userData.id, 0, 3);
		
		//reloading
		regUsers = null;
		loadForumVars(0, 1);
		reloadForum();

	} else
		if(response.mode == 0){
			if(inp = document.getElementById("login"))
				if(response.data > 0)
					inp.className = checkclasses[2];
				else
					inp.className = checkclasses[1];
		} else {
			if(response.data == false){
				if(inp2 = document.getElementById("password_")){
					inp2.className = checkclasses[1];
				}
			} else {
				userData = response.data;
				
				//reloading
				regUsers = null;
				loadForumVars(0, 1);
				reloadForum();
				
				if(inp = document.getElementById("login"))
					inp.value = "";
				if(inp2 = document.getElementById("password_"))
					inp2.value = "";
				
				loginSwap();
				
				if(us = document.getElementById("user"))
					us.innerHTML = userData.login;
				
				
				for (var i in userData)
					jsSetCookie(i, userData[i]);
			}
		}
}

function logoutDo(mode){
	if(mode) {
		loginSwap();
		
		request(userData.id, 0, 2);
		userData = [];
		
		regUsers = null;
		loadForumVars(0, 1);
		reloadForum();
	} else {
		if(userData){
			for (var i in userData)
				jsSetCookie(i, userData[i]);
			request(userData.id, 0, 2);
		}
	}
}

/*
Forum
*/

//use this one for loading everything in
function initForum(){
	
	if(typeof(userData.id) == "undefined")
		loadForumVars(0, 1);
	
	runForum();
}

function reloadForum(){
	if(regUsers != null){
		buildDialog(currentDialog, currentPath, true);
	} else
		setTimeout(reloadForum, 300);
}

function runForum(){
	//alert('runforum');
	if(userData.id)
		loginDo(userData, 1);
	else
		if(regUsers != null){
			buildDialog(currentDialog, currentPath, true);
		} else
			setTimeout(runForum, 300);
}

function loadForumVars(d, ctrl){
	if(ctrl){
		if(userData.id){
			request(0, 1, 9);
		} else {
			request(0, 0, 9);
		}
	} else {
		switch(parseInt(d.mode)){
			case 0:
				regUsers = d.data;
				break;
			case 1:
				regUsers = d.data;
				break;
		}
	}
	
}


function buildDialog(mode, data, norel){
	//alert('mode: ' + mode + ', data: ' + data + ', norel: ' + norel);
	if(norel){
		if(errorFlag)return;
	
		if(typeof(forumModes) == "object"){
			if(d = document.getElementById("forum")){
				switch(mode){
					case 1:
						//main forum
						if(data){
							if(data.length > 2){
								d.innerHTML = forumModes[3];
								startClock();
								postForm = 1;
							} else
								d.innerHTML = forumModes[2];
								
							if(data.length > 0){
								xmlLoad(data);
								currentPath = data;
							} else {
								xmlLoad(0);
								currentPath = [];
							}
						} else {
							d.innerHTML = forumModes[2];
							xmlLoad(0);
							currentPath = [];
							//alert('currentPath: ' + currentPath.length);
							if(p = document.getElementById("path"))
								p.innerHTML = '<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(1, [], false);">' + forumStr + '<\/span><\/a>';
						}
						
						//forumStatus
						loadForumStatus();
						break;
					case 2:
						//lost password
						d.innerHTML = forumModes[5];
						
						tmp = '';
						if(t = document.getElementById("fTitle"))
							tmp = t.innerHTML;
						
						if(p = document.getElementById("path"))
							p.innerHTML = '<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(1, [], false);">' + forumStr + '<\/span><\/a>&nbsp;\/&nbsp;<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(' + mode + ');">' + tmp + '<\/span><\/a>';
							
						break;
					case 3:
						//view profile
						d.innerHTML = forumModes[0];
						//d.innerHTML = forumModes[1];
						
						tmp = '';
						if(t = document.getElementById("fTitle"))
							tmp = t.innerHTML;
						
						if(p = document.getElementById("path"))
							p.innerHTML = '<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(1, [], false);">' + forumStr + '<\/span><\/a>&nbsp;\/&nbsp;<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(' + mode + ');">' + tmp + '<\/span><\/a>';
						
						buildProfile();
						
						break;
					case 4:
						//register
						d.innerHTML = forumModes[1];
						
						tmp = '';
						if(t = document.getElementById("fTitle"))
							tmp = t.innerHTML;
						
						if(p = document.getElementById("path"))
							p.innerHTML = '<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(1, [], false);">' + forumStr + '<\/span><\/a>&nbsp;\/&nbsp;<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(' + mode + ');">' + tmp + '<\/span><\/a>';
							
						break;
				}
				
				currentDialog = mode;
	
				if(userData.id)
					request(userData.id, 0, 3);
			}
		}
	} else {
		if(data)
			document.location = addy + '?gid=' + (typeof(data[0]) != 'undefined' ? data[0] : 0) + '&fid=' + (typeof(data[1]) != 'undefined' ? data[1] : 0) + '&tid=' + (typeof(data[2]) != 'undefined' ? data[2] : 0) + '&cd=' + mode + 'cp=' + currentPage;
		else
			document.location = addy + '?gid=' + (typeof(currentPath[0]) != 'undefined' ? currentPath[0] : 0) + '&fid=' + (typeof(currentPath[1]) != 'undefined' ? currentPath[1] : 0) + '&tid=' + (typeof(currentPath[2]) != 'undefined' ? currentPath[2] : 0) + '&cd=' + mode + 'cp=' + currentPage;
	}
}

function buildProfile(){
	
	if(userData.id){
		
		if(el = document.getElementById("inp0"))
			el.value = userData.login;
			
		if(el = document.getElementById("inp1"))
			el.value = userData['firstName'];
			
		if(el = document.getElementById("inp2"))
			el.value = userData.lastName;
			
		if(el = document.getElementById("inp5"))
			el.value = userData.email;
		
		if(el = document.getElementById("inp6"))
			el.value = userData.email;
	}
}

function loadForumStatus(){
	if(el = document.getElementById("statusInfo")){
		if(userData.id){
			request(0, 1, 8);
		} else {
			request(0, 0, 8);
		}
	}
}

function constructPath(){
	var str = new String();
	var path = [];
	str += '<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(' + currentDialog + ', [], false);">' + pathMatrix[0] + '<\/span><\/a>';
	path[0] = currentPath[0];
	if(p = document.getElementById("path")){
		for(i = 1, imax = currentPath.length; i < imax; i++){
			if(typeof(currentPath[i]) == "number" || parseInt(currentPath[i]) > 0){
				path[path.length] = currentPath[i]; 
				if (typeof(xmlData[i][0]) == 'undefined') break;
				if(typeof(xmlData[i][0]['title']) != "undefined"){
					str += '&nbsp;\/&nbsp;';
					str += '<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(' + currentDialog + ', [' + path + ']);">' + xmlData[i][0]['title'] + '<\/span><\/a>';
				} else if(typeof(xmlData[i][0][0]['title']) != "undefined"){
					str += '&nbsp;\/&nbsp;';
					str += '<a href="#" class="path"><span class="fPath" onclick="javascript: buildDialog(' + currentDialog + ', [' + path + ']);">' + xmlData[i][0][0]['title'] + '<\/span><\/a>';
				} else
					break;
			} else 
				break;
		}
		p.innerHTML = str;
	} else
		return;
}

function closeDialog(){
	if(mydiv = document.getElementById("matrix")){
		mydiv.style.visibility = "hidden";
		mydiv.style.left = "-1000px";
		mydiv.style.top = "-1000px";
		
		errorFlag = 0;
	}
}

function fInputCheck(response, inp, mode){
	//regError
	if(response){
		if(el = document.getElementById("inp0")){
			if(response.data > 0){
				el.className = checkclasses[1];
				regmatrix[0] = 1;
			} else {
				el.className = checkclasses[2];
				regmatrix[0] = 2;
			}
		}
		return;
	}

	if(!mode && inp.name == "login" && inp.value != "" && inp.value.match(/^[_a-zA-Z0-9-]{5,16}$/)){
		put = new Array();
		put[inp.name] = inp.value;
		request(serialize(put), 0, 4);
	}
	
	if (inp){
		if(inp.name == "login" || inp.name == "password" || inp.name == "fpassword2x"){
			if(inp.value == '' || !inp.value.match(/^[_a-zA-Z0-9-]{5,16}$/)){
				inp.className = checkclasses[1];
				return false;
			} else {
				inp.className = checkclasses[2];
				if(inp.name != "login"){
					if(checkEquals(0) == true)
						return true;
					else
						return false;
				} else
					return true;
			}
		}
		
		if(inp.name == "firstName" || inp.name == "lastName"){
			if(inp.value == '' || !inp.value.match(/^[_a-zA-Z]{1,}$/)){
				inp.className = checkclasses[1];
				return false;
			} else {
				inp.className = checkclasses[2];
				return true;
			}
		}
		
		if(inp.name == "email" || inp.name == "mail2x"){
			if(inp.value == '' || !inp.value.match(/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]{2,})+$/)){
				inp.className = checkclasses[1];
				return false;
			} else {
				inp.className = checkclasses[2];
				if(checkEquals(1) == true)
					return true;
				else
					return false;
			}
		}
		
		if(inp.name == "phone" || inp.name == "fax"){
			if(inp.value != ''){
				if(!inp.value.match(/^[0-9]{7,}$/)){
					inp.className = checkclasses[1];
					return false;
				} else {
					inp.className = checkclasses[2];
					return true;
				}
			}
		}
	}
}

function checkEquals(mode){
	switch (mode){
		case 0:
			// password compare
			if(regmatrix[3] == 1 && regmatrix[4] == 1){
				if(pass1 = document.getElementById("inp3")){
					if(pass2 = document.getElementById("inp4")){
						if(pass1.value == '' || pass2.value == '' || pass1.value != pass2.value || pass1.value.length < 5 || pass2.value.length < 5){
							//pass1.className = checkclasses[1];
							pass2.className = checkclasses[1];
							return false;
						} else {
							pass1.className = checkclasses[2];
							pass2.className = checkclasses[2];
							return true;
						}
					}
				}	
			}
			break;
		
		case 1:
			// mail compare
			if(regmatrix[5] == 1 && regmatrix[6] == 1){
				if(pass1 = document.getElementById("inp5")){
					if(pass2 = document.getElementById("inp6")){
						if(pass1.value == '' || pass2.value == '' || pass1.value != pass2.value){
							//pass1.className = checkclasses[1];
							pass2.className = checkclasses[1];
							return false;
						} else {
							pass1.className = checkclasses[2];
							pass2.className = checkclasses[2];
							return true;
						}
					}
				}	
			}
			break;
	}
	return false;
}

function fRegButton(){
	if(el = document.getElementById('fmRegButton'))
		if(el.style.visibility == 'hidden')
			el.style.visibility = 'visible';
		else
			el.style.visibility = 'hidden';	
}

function submitProfile(mode){
	if(mode){
		
		//if(!in_array(1, regmatrix)){
		//	popError('all');
		//	return;
		//}
		
		//if(regmatrix[0] == 2){
		var regVars = [];
		error = 0;
		for(i = 0, imax = 7; i < imax; i++){
			if(el = document.getElementById("inp" + i)){
				if(fInputCheck(false, el, true) == false){
					error = el.name;
					//break;
				} else if(in_array(el.name, regNames)){
					regVars[el.name] = el.value;
				}
			}
		}
		if(error == "mail2x")
			error = 0;
		//alert(checkEquals(0));	
		//alert(checkEquals(1));
		
		if(regmatrix[3] == 1 && regmatrix[4] == 1)
			if(checkEquals(0) == false){
				error = 'password';
			}
		
		if(regmatrix[5] == 1 && regmatrix[6] == 1)
			if(checkEquals(1) == false){
				error = 'email';
			}
			
		regVars['id'] = userData.id;
		
		if(error)
			popError(error);
		else {
			saveForm('forumReg');
			request(serialize(regVars), mode, 5);
		}
		
	} else {
		if(!in_array(1, regmatrix)){
			popError('all');
			return;
		}
		
		//if(regmatrix[0] == 2){
		var regVars = [];
		error = 0;
		for(i = 0, imax = 7; i < imax; i++)
			if(el = document.getElementById("inp" + i))
				if(fInputCheck(false, el, true) == false){
					error = el.name;
					break;
				} else if(in_array(el.name, regNames))
					regVars[el.name] = el.value;
			
		for(i = 0, imax = 2; i < imax; i++)
			if(checkEquals(i) == false){
				error = (i == 0 ? 'password' : 'email');
				break;
			}
		
		if(error)
			popError(error);
		else {
			saveForm('forumReg');
			request(serialize(regVars), mode, 5);
		}
		//} else {
		//	popError('login');
		//}
	}
}

function popError(what){
	if(typeof(forumErrors) == "object"){
		if(mydiv = document.getElementById("matrix")){
			if(t = document.getElementById("fTitle"))
				if(dt = document.getElementById("fDTitle"))
					dt.innerHTML = t.innerHTML;
			
			if(c = document.getElementById("dContent"))
				c.innerHTML = forumErrors[what];
			//alert(mydiv);
			mydiv.style.width = "500px";
			mydiv.style.left = "400px";
			mydiv.style.top = "300px";
			mydiv.style.visibility = "visible";
			
			errorFlag = 1;
		}
	}
}

function popResult(response){
	if(errorFlag)return;
	
	if(response.data['e']){
		if(response.data['e'] == 0){
			popError(response.data['e']);
			if(response.data['e'] == 'login')
				if(el = document.getElementById('inp0'))
					fInputCheck(false, el);
		}
		return;
	}
	
	//alert(response.data);
	
	if(typeof(forumResults) == "object"){
		//if(typeof(forumResults[response.data['d']]) != 'undefined' && typeof(forumResults[response.data['d']][response.data['r']]) != 'undefined')
			if(mydiv = document.getElementById("matrix")){
				if(t = document.getElementById("fTitle"))
					if(dt = document.getElementById("fDTitle"))
						dt.innerHTML = t.innerHTML;
				
				if(c = document.getElementById("dContent"))
					c.innerHTML = forumResults[response.data['d']][response.data['r']];
				
				mydiv.style.width = "500px";
				mydiv.style.left = "400px";
				mydiv.style.top = "300px";
				mydiv.style.visibility = "visible";
			}
	}
	
	//buildDialog(1, [], false);
}

function doAction(action, aid){
	request(aid, action, 6);
}

function getPass(){
	if(el = document.getElementById("inp0"))
		if(el.value != "")
			request(el.value, 0, 7);
}

function saveForm(form){
	if(typeof(window.external) == "oject")
	 	window.external.AutoCompleteSaveForm(document.forms[form]);
}

function showForumStatus(response){
	if(el = document.getElementById("statusInfo")){
		if(forumBlurbs[0]){
			if(parseInt(response.mode) == 1){
				
				var userNames = [];
				
				if(response.data != userNames){
					
					var cnt = 0;
					
					for(var a in regUsers){
						cnt++;
						for(i = 0, imax = response.data.length; i < imax; i++)
							if(regUsers[a]['id'] == response.data[i]){
								userNames[i] = regUsers[a]['login'];
								continue;
							}
					}
					
					var needles = ['{online}', '{pop}', '{members}'];
					var replaces = [imax, cnt, userNames.join(', ')]
				} else {
					var cnt = 0;
					for(var a in regUsers){
						cnt++;
					}
					
					var needles = ['{online}', '{pop}', '{members}'];
					var replaces = [0, cnt, '']
				}
				
				var str = forumBlurbs[0][response.mode]
				
				for(i = 0, imax = needles.length; i < imax; i++){
					if(replaces[i])
						str = str.replace(needles[i], replaces[i]);
				}
			} else {
				var needles = ['{online}', '{pop}'];
				var replaces = [response.data, regUsers];
				var str = forumBlurbs[0][response.mode];
				
				for(i = 0, imax = needles.length; i < imax; i++){
					if(replaces[i])
						str = str.replace(needles[i], replaces[i]);
				}
			}
			
			el.innerHTML = str;
		}
	}
}

/*
PHP associated
*/

function in_array(n, a){
	if(typeof(a) == "array"){
		for(i = 0, im = a.length; i < im; i++){
			if(a[i] == n)
				return true;
		}
	
	} else if (typeof(a) == "object"){
		for (var i in a){
			if(a[i] == n)
				return true;
		}
	}
	return false;
}

function array_keys(a){
	var keys = [];
	if(typeof(a) == "array"){
		for(i = 0, im = a.length; i < im; i++){
			if(typeof(a[i]) != 'undefined')
				keys[keys.length] = i;
		}
	} else if (typeof(a) == "object"){
		for (var i in a){
			if(typeof(a[i]) != 'undefined')
				keys[keys.length] = i;
		}
	}
	return keys;
}



/*
XML DSO dor non-IE
*/
var sources = document.getElementsByTagName("xml");;
//tags to check
var checkPoints;
//tables in the document
var tables = document.getElementsByTagName("table");

function xmlLoad(matrix){
	
	var query = new String();
	
	if(typeof(matrix) == "array")
		query = matrix.join(",");
	else
		query = matrix;
	
	if(userData.id)
		request(query, userData.id, 10);
	else
		request(query, 0, 10);
}

/*
function DUMPag(a, n, m) {
	var str = '';
	if (typeof a == 'object') {
		if (n > m) str += ' O-B-J-E-C-T '; else {
			for (i in a) {
				str += '\n';
				for (j = 0; j < n; j++) str += ' ';
				str += '[' + i + '] - {';
				if (a[i])
					str += DUMPag(a[i], n + 1, m);
				str += '}';
			}
		}
	} else {
		if (typeof a != 'function')
			str += a;
		else
			str += 'function';
	}
	
	return str;
}
*/

var noEntries = false;

function xmlPut(response){
	noEntries = false;
	if (elm = document.getElementById("entriesTable"))
		elm.style.display = "";
	if (elm = document.getElementById("errorTable"))
		elm.style.display = "none";
	if(ie) {
		if(xmls = document.getElementsByTagName("xml")){
			var d = response.data.length - 2;
			xmlDepth = Math.max(0, d);
			
			if (d == 1 && response.data[2][0][0]['id'] == '') {
				noEntries = true;
			}
			var cnt = 0;
			for (var a in response.data){
				if(parseInt(a) == xmlDepth){
					if(response.data[a].length > 0 || (noEntries)){ 
						if(xmls[cnt])
							xmls[cnt].parentElement.innerHTML = '<xml id="srcL' + cnt + '">' + generateXML(response.data[a]) + '</xml>';
					} else {
						if(c = document.getElementById("content")){
							c.innerHTML = forumResults[2][0];
							c.style.visibility = "visible";
						}
					}
					
					if (noEntries) {
						if (elm = document.getElementById("entriesTable"))
							elm.style.display = "none";
						if (elm = document.getElementById("errorTable"))
							elm.style.display = "";
					}
					if(cnt < xmls.length)
						cnt++;
				} else if(parseInt(a) > xmlDepth) {
					if(xmls["srcL" + cnt]){
						xmlData = response.data;
						xmlLevel = parseInt(a);
						xmlDone = 1;
						//xmlNext = 1;
						
						if(xmlData.length == 4)
							preparePages();
						else {
							xmlListener();
						}
						
					}
					break;
				}
				
			}
		} else {
			setTimeout('xmlPut(' + response + ')', 100);
		}
	} else {
		if (response.data.length == 3 && response.data[2][0][0]['id'] == '') noEntries = true;
		
		document.getElementById("content").style.visibility = "visible";
		xmlData = response.data;
		xmlLevel = xmlData.length - 2;
		xmlDone = 0;
		
		if(xmlData.length == 4)
			preparePages();
		else
			fillTables();
		
		if (noEntries) {
			if (elm = document.getElementById("entriesTable"))
				elm.style.display = "none";
			if (elm = document.getElementById("errorTable"))
				elm.style.display = "";
		}
	}
}

var log = [];
var cnt = [];

function fillTables(){
	if(typeof(xmlData[xmlLevel]) != 'undefined'){
		var tables = document.getElementsByTagName("table");
		
		var srcstr = '#srcL' + xmlDone;
		
		cnt[xmlLevel] = 0;
		
		for(i = 0, imax = tables.length; i < imax; i++){
			if(tables[i].getAttribute('datasrc') != null && tables[i].getAttribute('datasrc') == srcstr){
				if(xmlLevel){
					for(j = 0, jmax = xmlData[xmlLevel][cnt[xmlLevel]].length; j < jmax; j++){
						if(j){
							var clone = tables[i].childNodes[1].cloneNode(true);
							tables[i].appendChild(clone);
//							var spans = clone.getElementsByTagName("SPAN");
//							fillNode(spans, xmlData[xmlLevel][cnt][j]);
						}
					}
				} else {
					for(j = 0, jmax = xmlData[xmlLevel].length; j < jmax; j++){
						if(j){
							var clone = tables[i].childNodes[1].cloneNode(true);
							tables[i].appendChild(clone);
//							var spans = clone.getElementsByTagName("SPAN");
//							fillNode(spans, xmlData[xmlLevel][j]);
						}
					}
				}
				//tables[i].setAttribute('datasrc', (srcstr + cnt[xmlLevel]));
				cnt[xmlLevel]++;
			}
			if(typeof(xmlData[xmlLevel][cnt[xmlLevel]]) == 'undefined')break;
		}
		xmlDone++;
		xmlLevel++;
		fillTables();
	} else {
		constructPath();
		xmlDone--;
		xmlLevel--;
		fillCells();
	}
}
function DUMP(obj,inc)
{
	var res = [];
	if (!inc) inc = 0;
	var app = '';
	for(i=0;i < inc; i++) app += ' ';
	res.push(typeof(obj)+':');
	if (inc && typeof(obj) == 'object') return res.join('');
	switch(typeof(obj))
	{
		case 'object':
			res.push(' {');
			for(a in obj)
			{
				res.push("\n"+app+a+':'+DUMP(obj[a],inc+1));
			}
			break;
		case 'string':
			res.push('"'+obj+'"');
			break;
		default:
			res.push(obj);
			break;
	}
	return res.join('');
}
function fillCells(){
	if(typeof(xmlData[xmlLevel]) != 'undefined'){
		var tables = document.getElementsByTagName("table");
		var srcstr = '#srcL' + xmlDone;
		for(i = tables.length - 1; i > 0; i--){
			if(tables[i].getAttribute('datasrc') != null && tables[i].getAttribute('datasrc') == srcstr){
				var c = 0;
				for(j = 0, jmax = tables[i].childNodes.length; j < jmax; j++){
					if(tables[i].childNodes[j].nodeType != 3 && tables[i].childNodes[j].tagName == "TBODY"){
						
						var spans = tables[i].childNodes[j].getElementsByTagName("SPAN");
						
						if(xmlLevel){
							if(typeof(xmlData[xmlLevel][cnt[xmlLevel] - 1][c]) != 'undefined')
								fillNode(spans, xmlData[xmlLevel][cnt[xmlLevel] - 1][c]);
						} else {
							if(typeof(xmlData[xmlLevel][c]) != 'undefined')
								fillNode(spans, xmlData[xmlLevel][c]);
						}
						
						
						c++;
					}
				}
				cnt[xmlLevel]--;
			}
			if(typeof(xmlData[xmlLevel][cnt[xmlLevel] - 1]) == 'undefined'){
				break;
			}
		}
		xmlDone--;
		xmlLevel--;
		fillCells();
	} else {
		//alert(userData.id);
		
		if(xmlData.length > 2){
			if(t = document.getElementsByName("threadHide")){
				for(i = 0, imax = t.length; i < imax; i++){
					t[i].style.display = "none";
				}
			}
			
			/*
			if(t1 = document.getElementById("thread1"))
				t1.style.display = "none";
			
			if(t2 = document.getElementById("thread2"))
				t2.style.display = "none";
				
			if(t3 = document.getElementById("thread3"))
				t3.style.display = "none";*/
		}
		if(userData.id){
			var invisibles = ['editPost'];
			if(invisibles.length > 0)
				for(i = 0, imax = invisibles.length; i < imax; i++)
					if(el = document.getElementById(invisibles[i]))
						el.style.visibility = "visible";
			
			var nodisplays = [];
			if(nodisplays.length > 0)
				for(i = 0, imax = nodisplays.length; i < imax; i++)
					if(el = document.getElementById(nodisplays[i]))
						el.style.display = "none";
						
			if(xmlData.length > 2){
				if(nts = document.getElementById("newThread")){
					nts.innerHTML = addThreadTXT;
					nts.style.visibility = "visible";
				}
			}
			
			postForm = 1;
			buildPostForm();
		}
	}
}


function drawLog(){
	alert(log.join('\n'));
}

//function getChildsByTag(p, tag){
//	var 
//	
//	return false;
//}

function fillNode(t, inp){
	//alert('t: ' + t + ', inp: ' + inp);
	
	for(x = 0, imax = t.length; x < imax; x++){
		for(var k in inp){
			//alert('k: ' + k + ', inp[k]: ' + inp[k]);
			if(t[x].getAttribute('datafld') != null && t[x].getAttribute('datafld') == k && t[x].innerHTML == ''){
				t[x].innerHTML = inp[k];
				//break;
			}
		}
	}
	//return false;
}



//var xmlData;
//var xmlLevel;
//var xmlDone;
//var xmlNext;

function preparePages(){
	var l = xmlData[3][0].length;
	
	if(l > postsPerPage){
		if(el = document.getElementById("pageNav")){
			
			totalPages = Math.ceil(l / postsPerPage);
			
			var item = [];
			var sum = 0;
			var str = new String;
			str += '<table cellpadding="0" cellspacing="0" style="padding: 0px 5px 0px 5px !important; text-align: center; width: 100%; font-size: 8px;"><tr><td><span class="topMenuLink"><a href="javascript: switchPage(0);"><img src="/pic/arrows/navLeft.gif" width="5" height="7" border="0" alt="" /></a></span>&nbsp;&nbsp;';
			
			if(lastPost){
				currentPage = totalPages - 1;
				lastPost = 0;
			}
			
			var amp1 = 3;
			var amp2 = 3;
			var total = amp1 + amp2;
			var da = totalPages - currentPage;
			
			if(da < amp2){
				amp1 = amp2 + amp1 - da;
				amp2 = da;
			}
			
			var db = currentPage - amp1;
			
			if(db < 0){
				amp1 = currentPage;
				amp2 = Math.min((totalPages - currentPage), (total - amp1));
			}
			
			var c = 0;
			for(i = 0; i < totalPages; i++){
				item = [];
				for(j = 0; j < postsPerPage; j++){
					
					item[item.length] = xmlData[3][0][sum];
					if(sum < (l - 1))
						sum++;
					else
						break;
				}
				xmlPages[i] = item;
				
				if(i < (currentPage - amp1) && c == 0)
					str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">...</a>&nbsp;&nbsp;';
				
				if(i >= (currentPage - amp1) && i < (currentPage + amp2))
					str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">' +(i +1) +'</a>&nbsp;&nbsp;';
				
				if(i >= (currentPage + amp2) && c >= i){
					str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">...</a>&nbsp;&nbsp;';
					c = 0;
				}
	
				c++;
			}
			//alert(currentPage);
			if(xmlPages.length != totalPages)
				totalPages = xmlPages.length;
			
			xmlData[3][0] = xmlPages[currentPage];
			
			str += '<span class="topMenuLink"><a href="javascript: switchPage(' + totalPages + ');"><img src="/pic/arrows/navRight.gif" alt="" /></a></span></td></tr></table>';
			
			el.innerHTML = str;
		} else
			totalPages = 0;
	} else
		totalPages = 0;
	
	if(ie)
		xmlListener();
	else
		fillTables();
}

function redrawPages(){
	if(el = document.getElementById("pageNav")){
		var str = new String;
		str += '<table cellpadding="0" cellspacing="0" style="padding: 0px 5px 0px 5px !important; text-align: center; width: 100%; font-size: 8px;"><tr><td><span class="topMenuLink"><a href="javascript: switchPage(0);"><img src="/pic/arrows/navLeft.gif" width="5" height="7" border="0" alt="" /></a></span>&nbsp;&nbsp;';
		
		var amp1 = 3;
		var amp2 = 3;
		var total = amp1 + amp2;
		var da = totalPages - currentPage;
		
		if(da < amp2){
			amp1 = amp2 + amp1 - da;
			amp2 = da;
		}
		
		var db = currentPage - amp1;
		
		if(db < 0){
			amp1 = currentPage;
			amp2 = Math.min((totalPages - currentPage), (total - amp1));
		}
		
		var c = 0;
		for(i = 0; i < totalPages; i++){
			if(i < (currentPage - amp1) && c == 0)
				str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">...</a>&nbsp;&nbsp;';
				
			if(i >= (currentPage - amp1) && i < (currentPage + amp2))
				str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">' +(i +1) +'</a>&nbsp;&nbsp;';
			
			if(i >= (currentPage + amp2) && c >= i){
				str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">...</a>&nbsp;&nbsp;';
				c = 0;
			}

			c++;
		}
		
		str += '<span class="topMenuLink"><a href="javascript: switchPage(' + totalPages + ');"><img src="/pic/arrows/navRight.gif" alt="" /></a></span></td></tr></table>';
				
		el.innerHTML = str;
	}
}

function switchPage(val){

	if(ie){
		var xmls = document.getElementsByTagName("xml");
		
		if(val < 0)
			val = 0;
		if(val > (xmlPages.length - 1))
			val = xmlPages.length - 1;
		
		var xmlId = xmls[xmls.length - 1].id;
		
		//xmls[xmls.length - 1].parentElement.innerHTML = '<xml id="' + xmlId + '">' + generateXML(xmlPages[val]) + '</xml>';
		
		currentPage = val;
		document.location = addy + '?gid=' + (typeof(currentPath[0]) != 'undefined' ? currentPath[0] : 0) + '&fid=' + (typeof(currentPath[1]) != 'undefined' ? currentPath[1] : 0) + '&tid=' + (typeof(currentPath[2]) != 'undefined' ? currentPath[2] : 0) + '&cd=' + currentDialog + '&cp=' + currentPage;
		
		/*
		if(el = document.getElementById("pageNav")){
			for(i = 1, imax = el.firstChild.firstChild.firstChild.childNodes.length - 2; i < imax; i++){
				if((i - 1) == val)
					el.firstChild.firstChild.firstChild.childNodes[i].firstChild.className = 'psdSel';
				else
					el.firstChild.firstChild.firstChild.childNodes[i].firstChild.className = 'psdUnsel';
			}
		}
		*/
		
		redrawPages();
		
	} else {
		currentPage = val;
		document.location = addy + '?gid=' + (typeof(currentPath[0]) != 'undefined' ? currentPath[0] : 0) + '&fid=' + (typeof(currentPath[1]) != 'undefined' ? currentPath[1] : 0) + '&tid=' + (typeof(currentPath[2]) != 'undefined' ? currentPath[2] : 0) + '&cd=' + currentDialog + '&cp=' + currentPage;
		
		if(el = document.getElementById("pageNav")){
			
			var sum = 0;
			var str = new String;
			str += '<table cellpadding="0" cellspacing="0" style="padding: 0px 5px 0px 5px !important; text-align: center; width: 100%; font-size: 8px;"><tr><td><span class="topMenuLink"><a href="javascript: switchPage(0);"><img src="/pic/arrows/navLeft.gif" width="5" height="7" border="0" alt="" /></a></span>&nbsp;&nbsp;';
			
			var amp1 = 3;
			var amp2 = 3;
			var total = amp1 + amp2;
			var da = totalPages - currentPage;
			
			if(da < amp2){
				amp1 = amp2 + amp1 - da;
				amp2 = da;
			}
			
			var db = currentPage - amp1;
			
			if(db < 0){
				amp1 = currentPage;
				amp2 = Math.min((totalPages - currentPage), (total - amp1));
			}
			
			var c = 0;
			for(i = 0; i < totalPages; i++){
				
				if(i < (currentPage - amp1) && c == 0)
				str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">...</a>&nbsp;&nbsp;';
				
				if(i >= (currentPage - amp1) && i < (currentPage + amp2))
					str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">' + (i + 1) + '</a>&nbsp;&nbsp;';
				
				if(i >= (currentPage + amp2) && c >= i){
					str += '<a class="' + (currentPage == i ? 'psdSel' : 'psdUnsel') + '" href="javascript: switchPage(' + i + ');">...</a>&nbsp;&nbsp;';
					c = 0;
				}
	
				c++;
			}
			//alert(xmlPages);
			//alert(currentPage);
			//alert(generateXML(xmlData[3][0]));
			//alert(generateXML(xmlPages[currentPage]));
			
			xmlData[3][0] = xmlPages[currentPage];
			
			//alert(generateXML(xmlData[3][0]));
			
			str += '<span class="topMenuLink"><a href="javascript: switchPage(' + totalPages + ');"><img src="/pic/arrows/navRight.gif" alt="" /></a></span></td></tr></table>';
			
			xmlLevel = xmlData.length - 2;
			xmlDone = 0;
			
			d = document.getElementById("forum");
			d.innerHTML = forumModes[3];
			document.getElementById("content").style.visibility = "visible";
			fillTables();
			el = document.getElementById("pageNav")
			el.innerHTML = str;
			loadForumStatus();
		}
	}
	oddColors();
}

function putSrc(xmls, needles, replaces, data){
	for(i = xmlDone, imax = xmls.length; i < imax; i++){
		curPos = i - xmlDone;
		needles[needles.length] = "#srcL" + (xmlLevel - xmlDepth);
		
		if(data[curPos]){
			xmls[i].parentElement.innerHTML = '<xml id="srcL' + xmlLevel + curPos + '">' + generateXML(data[curPos]) + '</xml>';
			replaces[replaces.length] = "#" + xmls[i].id;
		} else {
			xmls[i].parentElement.innerHTML = '<xml id="srcL' + xmlLevel + curPos + '"></xml>';
			replaces[replaces.length] = 0;
		}
	}
	xmlDone = imax;
}

function xmlListener(){
	//alert(xmlLevel + ' : ' + xmlData[xmlLevel])
	
	if(typeof(xmlData[xmlLevel]) == "undefined"){
		if(el = document.getElementsByName("fbuttons")){
			if(el.length > 1)
				for(i = 1, imax = el.length; i < imax; i++){
					el[i].style.display = "none";
				}
		}
		constructPath();

		var xmls = document.getElementsByTagName("xml");
		
		if(xmls.length < 2) {
			setTimeout('xmlListener()', 100);
			return;
		}
		
		var tables = document.getElementsByTagName("table");
		
		for(i = (tables.length - 1); i > 0; i--){
			if(typeof(tables[i].dataSrc) != "undefined" && tables[i].dataSrc != ""){
				for(j = (xmls.length - 1); j > 0; j--){
					if(("#" + xmls[j].id) == tables[i].dataSrc){
						if((xmls[j].childNodes[1].childNodes.length * xmlRowsBefore) <= tables[i].rows.length){
							if(buildPostForm()){
								clearTimeout("xmlListener");
								xmlExit();
							}
						} else
							setTimeout('xmlListener()', timeout);
						break;
					}
				}
				break;
			}
		}
		
	} else {
	
		if(userData.id){
			var invisibles = ['editPost'];
			if(invisibles.length > 0)
				for(i = 0, imax = invisibles.length; i < imax; i++)
					if(el = document.getElementById(invisibles[i]))
						el.style.visibility = "visible";
			
			var nodisplays = [];
			if(nodisplays.length > 0)
				for(i = 0, imax = nodisplays.length; i < imax; i++)
					if(el = document.getElementById(nodisplays[i]))
						el.style.display = "none";
						
			if(xmlData.length > 2){
				if(nts = document.getElementById("newThread")){
					nts.innerHTML = addThreadTXT;
					nts.style.visibility = "visible";
				}
			}
		}
		if(xmlData.length > 2){
			
			if(t1 = document.getElementById("thread1"))
				t1.style.display = "none";
			
			if(t2 = document.getElementById("thread2"))
				t2.style.display = "none";
				
			if(t3 = document.getElementById("thread3"))
				t3.style.display = "none";
		}
		
		var xmls = document.getElementsByTagName("xml");
		
		if(xmlData[xmlLevel - 1])
			xmlNext = xmlDone + xmlData[xmlLevel - 1].length;
		else
			xmlNext = xmlDone;
		
		if((xmls.length + xmlDepth) >= xmlNext){
			var tables = document.getElementsByTagName("table");
			
			var needles = [];
			var replaces = [];
			
			putSrc(xmls, needles, replaces, xmlData[xmlLevel]);
			
			cnt = 0;
			for(j = 0, jmax = tables.length; j < jmax; j++){
				if(typeof(tables[j].dataSrc) != "undefined" && tables[j].dataSrc != ""){
					if(tables[j].dataSrc == needles[cnt]){
						if(replaces[cnt]){
							xmlRowsBefore = tables[j].rows.length;
							tables[j].dataSrc = replaces[cnt];
						} else
							tables[j].parentElement.style.display = "none";
						cnt++;
					}
				}
			}
			xmlLevel++;
			
			setTimeout('xmlListener()', timeout);
		} else
			setTimeout('xmlListener()', timeout);
	}
}

function xmlExit(){
	if(postForm){
		setTimeout("xmlExit", timeout);
	} else {
		window.clearTimeout("xmlListener");
		window.clearTimeout("xmlExit");
		document.getElementById("content").style.visibility = "visible";
		return;
	}
}

function groupPath(ref){
	if(ie){
		invoker = window.event.srcElement
		
		var path = [];
		
		switch(invoker.tagName){
			case 'TD':
			
				//if(currentPath.length > 0)
				//	path[1] = invoker.parentElement.parentElement.firstChild.firstChild.firstChild.innerHTML;
				//else
					var dataHolder = invoker.parentElement.parentElement.firstChild.firstChild;
				
				break;
			case 'SPAN':
				
				//if(currentPath.length > 0)
				//	path[1] = invoker.parentElement.parentElement.parentElement.firstChild.firstChild.firstChild.innerHTML;
				//else
					var dataHolder = invoker.parentElement.parentElement.parentElement.firstChild.firstChild;
				
				break;
		}
		if(dataHolder){
			for(i = dataHolder.childNodes.length - 1; i >= 0; i--)
				if(dataHolder.childNodes[i].innerHTML != "")
					path[path.length] = dataHolder.childNodes[i].innerHTML;
			
			buildDialog(currentDialog, path);
		}
	} else {
		var dataHolder = ref.childNodes[1].childNodes[1].childNodes[0].childNodes[1];
		var path=[];
		
		if(dataHolder){
			for(i = dataHolder.childNodes.length - 1; i >= 0; i--)
				if(dataHolder.childNodes[i].nodeType != 3 && dataHolder.childNodes[i].innerHTML != "")
					path[path.length] = dataHolder.childNodes[i].innerHTML;
			
			buildDialog(currentDialog, path);
		}
	}
}

function forumPath(ref){
	if(ie){
		invoker = window.event.srcElement
		
		var path = [];
		//path = currentPath;
		
		switch(invoker.tagName){
			case 'TD':
				if(typeof(invoker.id) == "undefined" || invoker.id == "")
					var dataHolder = invoker.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.firstChild;
				else
					var dataHolder = invoker.parentElement.parentElement.parentElement.firstChild.firstChild.firstChild;
				break;
			case 'SPAN':
				var dataHolder = invoker.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.firstChild;
				
				//if(invoker.dataFld == "title"){
				//	alert(invoker.parentElement.innerHTML);
				//} else if(invoker.dataFld == "short") {
				//	
				//}
				
				break;
			case 'IMG':
				var dataHolder = invoker.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.firstChild.firstChild;
				
				break;
		}
		if(dataHolder){
			for(i = dataHolder.childNodes.length - 1; i >= 0; i--)
				if(dataHolder.childNodes[i].innerHTML != "")
					path[path.length] = dataHolder.childNodes[i].innerHTML;
			//alert(path);
			
			buildDialog(currentDialog, path, false);
		}
	} else {
		var dataHolder = ref.parentNode.parentNode.childNodes[0].childNodes[1];
		var path=[];
		
		if(dataHolder){
			for(i = dataHolder.childNodes.length - 1; i >= 0; i--)
				if(dataHolder.childNodes[i].nodeType != 3 && dataHolder.childNodes[i].innerHTML != "")
					path[path.length] = dataHolder.childNodes[i].innerHTML;
			
			buildDialog(currentDialog, path, false);
		}
		
		/*
		var path = [];
		//path = currentPath;
		
		switch(invoker.tagName){
			case 'TD':
				if(typeof(invoker.id) == "undefined" || invoker.id == "")
					var dataHolder = invoker.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.firstChild;
				else
					var dataHolder = invoker.parentElement.parentElement.parentElement.firstChild.firstChild.firstChild;
				break;
			case 'SPAN':
				var dataHolder = invoker.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.firstChild;
				
				//if(invoker.dataFld == "title"){
				//	alert(invoker.parentElement.innerHTML);
				//} else if(invoker.dataFld == "short") {
				//	
				//}
				
				break;
			case 'IMG':
				var dataHolder = invoker.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.firstChild.firstChild;
				
				break;
		}
		if(dataHolder){
			for(i = dataHolder.childNodes.length - 1; i >= 0; i--)
				if(dataHolder.childNodes[i].innerHTML != "")
					path[path.length] = dataHolder.childNodes[i].innerHTML;
			//alert(path);
			
			buildDialog(currentDialog, path);
		}
		*/
	}
}

function xmlTest(){
	var tbls = document.getElementsByTagName("table");
	var xmls = document.getElementsByTagName("xml");
	var dtbls = 0;
	var dsrcs = [];
	
	alert("total tables: " + tbls.length + ", total xml data islands: " + xmls.length);
	
	for(i = 0, imax = tbls.length; i < imax; i++){
		if(tbls[i].datasrc != "undefined" && tbls[i].datasrc != ""){
			dtbls++;
			dsrcs[dsrcs.length] = tbls[i].datasrc;
		}
	}
	
	alert("total data bind tables: " + dtbls + ", datasrc string: " + dsrcs.join("\n"));
}

//function xmlSet() {
//	if(ie.test(navigator.appName)) {
//		var loaded = 0;
//		
//		for(i = 0, imax = sources.length; i < imax; i++)
//			if(sources[0].parsed == true)
//				loaded++;
//				
//		if(loaded == sources.length){
//			//nothing
//		} else {
//			setTimeout("xmlSet()", 200);
//		}
//	}
//}

function oddColors(){
	if(tables = document.getElementsByTagName("table")){
		var cnt = 0;
		for(i = 0, imax = tables.length; i < imax; i++)
			if(typeof(tables[i].dataSrc) != "undefined" && tables[i].dataSrc != "")
				if(!cnt)
					cnt++;
				else {
					var n = 0;
					for(j = 0, jmax = tables[i].rows.length; j < jmax; j++){
						if(n > 3)
							for(x = 0, xmax = tables[i].rows[j].cells.length; x < xmax; x++) {}
								//tables[i].rows[j].cells[x].style.background = "#eee";
						if(n > 4)
							n = 0;
						else
							n++;
					}
				}
	}
}

function buildPostForm(){
	//alert('postForm called, data: ' + postForm);
	if(postForm > 0){
		if(userData.id){
			if(el = document.getElementById("p1"))
				el.style.display = "";
				
			if(subj = document.getElementById("title"))
				subj.value = "RE: " + xmlData[3][0][0]['title'];
			if(!ie){
				if(div = document.getElementById("short"))
					div.parentNode.innerHTML = '<textarea class="frInput" id="short" name="short" value="" style="height: 150px; width: 100%;"></textarea>';
			}
			
		}
		oddColors();
		
		postForm = 0;
	}
	
	return true;
}

function submitPost(){
	function noescape(s) {
		return s;
	}
	if(userData.id){
		var matrix = [];
		
		for(i = 0, imax = currentPath.length; i < imax; i++)
			matrix[matrix.length] = currentPath[i];
		
		if(subj = document.getElementById("title"))
			if(subj.value != ''){
				if(subj.value.length > 64){
					alert("Please do not enter more than 64 symbols in the subject field of your post.");
					return false;
				} else {
					var str = [];
					str = subj.value.split(',');
					// matrix[matrix.length] = noescape(str.join(':comma:'));
					
					matrix[matrix.length] = subj.value;
				}
			} else {
				alert("Please type in a title for your post.");
				return false;
			}
		if(ie){
			if(el = document.getElementById("short"))
				if(el.innerHTML != '')
					if(el.innerHTML.length > 1024){
						alert("Please do not enter more than 1024 symbols in your post.");
						return false;
					} else {
						var str = [];
						str = el.innerHTML.split(',');
						// matrix[matrix.length] = noescape(str.join(':comma:'));

						matrix[matrix.length] = el.innerHTML;
					}
				else {
					alert("The post is empty. Please write the post and then submit it.");
					return false;
				}
		} else {
			if(el = document.getElementById("short"))
				if(el.value != '')
					if(el.value.length > 1024){
						alert("Please do not enter more than 1024 symbols in your post.");
						return false;
					} else {
						var str = [];
						str = el.value.split(',');
						// matrix[matrix.length] = noescape(str.join(':comma:'));
						
						matrix[matrix.length] = el.value;
					}
				else {
					alert("The post is empty. Please write the post and then submit it.");
					return false;
				}
		}
		if(subj = document.getElementById("FuserName"))
			if(subj.value != ''){
				if(subj.value.length > 64){
					alert("Please do not enter more than 64 symbols in the name field of your post.");
					return false;
				} else {
					var str = [];
					str = subj.value.split(',');
					// matrix[matrix.length] = noescape(str.join(':comma:'));
					
					matrix[matrix.length] = subj.value;
				}
			} else {
				alert("Please type your name for your post.");
				return false;
			}
		if(subj = document.getElementById("FuserMail"))
			if(subj.value != ''){
				if(subj.value.length > 64){
					alert("Please do not enter more than 64 symbols in the e-mail field of your post.");
					return false;
				} else {
					var str = [];
					str = subj.value.split(',');
					// matrix[matrix.length] = noescape(str.join(':comma:'));
					
					matrix[matrix.length] = subj.value;
				}
			} else {
				alert("Please type your e-mail for your post.");
				return false;
			}
		/*var mstr = '';
		for (i = 0, imax = matrix.length; i < imax; i++) {
			mstr += '\n[' + i + '] - ' + matrix[i];
		}
		alert(mstr);*/
		
		if(editing){
			if(editID){
				matrix[matrix.length] = editID;
				request(matrix, userData.id, 12);
			} else 
				request(matrix, userData.id, 11);
		} else
			request(matrix, userData.id, 11);
	} else
		alert('Only registered and logged in users may post replies! Please log in or register if you have not done it.');
}

function editPost(ref, quote){
	
	if(!userData.id){
		alert("You need to be registered and logged in to edit or post in forum.");
		return false;
	}
	//alert(ref.tagName);
	var t = ref.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.firstChild.firstChild.innerHTML;
	var s = ref.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.nextSibling.childNodes[1].firstChild.firstChild.firstChild.firstChild.firstChild.innerHTML;
	var pid = ref.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.previousSibling.firstChild.firstChild.innerHTML;
	
	editing = 1;
	
	if(subj = document.getElementById("title"))
		subj.value = t;
		
	if(el = document.getElementById("short"))
		el.innerHTML = s;
		
	if(quote)
		editID = 0;
	else
		editID = pid;
}

function postListener(response){
	if(parseInt(response.data) == 1){
		lastPost = 1;
		buildDialog(currentDialog, currentPath);
		editing = 0;
		editID = 0;
	} else {
		alert('There was a problem inserting your post. Try posting again and/or reloading the screen. Apologies for inconvenience');
		editing = 0;
		editID = 0;
	}
}

function toLastPost(){
	if(lastPost > 0){
		if(pc = document.getElementByID("postContainer")){
			//alert(pc.offsetHeight);
			//window.scroll(pc.offsetHeight, 0);
		}
		lastPost = 0;
	}
	
	return true;
}

function addThread(){
	if(userData.id){
		if(el = document.getElementById("p2"))
			el.innerHTML = addThreadHTML;
			
		if(!ie){
			if(div = document.getElementById("short"))
				div.parentNode.innerHTML = '<textarea class="frInput" id="short" name="short" value="" style="height: 150px; width: 100%;"></textarea>';
			else
				setTimeout("replaceP2()", timeout);
		}
	}
}

function replaceP2(){
	if(div = document.getElementById("short"))
		div.parentNode.innerHTML = '<textarea class="frInput" id="short" name="short" value="" style="height: 150px; width: 100%;"></textarea>';
	else
		setTimeout("replaceP2()", timeout);
}

function submitThread(lang){
	if(userData.id){
		var matrix = [];
		
		for(i = 0, imax = currentPath.length; i < imax; i++)
			matrix[matrix.length] = currentPath[i];
		
		if(subj = document.getElementById("title"))
			if(subj.value != ''){
				if(subj.value.length > 64){
					alert("Please do not enter more than 64 symbols in the title field of your thread.");
					return false;
				} else {
					var str = [];
					str = subj.value.split(',');
					matrix[matrix.length] = escape(str.join(':comma:'));
				}
			} else {
				alert("Please type in a title for your thread.");
				return false;
			}
			
		if(ie){
			if(el = document.getElementById("short"))
				if(el.innerHTML != '')
					if(el.innerHTML.length > 1024){
						alert("Please do not enter more than 1024 symbols in your post.");
						return false;
					} else {
						var str = [];
						str = el.innerHTML.split(',');
						matrix[matrix.length] = escape(str.join(':comma:'));
					}
				else {
					alert("The post is empty. Please write the post and then submit it.");
					return false;
				}
		} else {
			if(el = document.getElementById("short"))
				if(el.value != '')
					if(el.value.length > 1024){
						alert("Please do not enter more than 1024 symbols in your post.");
						return false;
					} else {
						var str = [];
						str = el.value.split(',');
						matrix[matrix.length] = escape(str.join(':comma:'));
					}
				else {
					alert("The post is empty. Please write the post and then submit it.");
					return false;
				}
		}
		if(subj = document.getElementById("FuserName"))
			if(subj.value != ''){
				if(subj.value.length > 64){
					alert("Please do not enter more than 64 symbols in the name field of your post.");
					return false;
				} else {
					var str = [];
					str = subj.value.split(',');
					// matrix[matrix.length] = noescape(str.join(':comma:'));
					
					matrix[matrix.length] = subj.value;
				}
			} else {
				alert("Please type your name for your post.");
				return false;
			}
		if(subj = document.getElementById("FuserMail"))
			if(subj.value != ''){
				if(subj.value.length > 64){
					alert("Please do not enter more than 64 symbols in the e-mail field of your post.");
					return false;
				} else {
					var str = [];
					str = subj.value.split(',');
					// matrix[matrix.length] = noescape(str.join(':comma:'));
					
					matrix[matrix.length] = subj.value;
				}
			} else {
				alert("Please type your e-mail for your post.");
				return false;
			}

		//alert('ready!');
		request(matrix, userData.id, 13, lang);
	} else
		alert('Only registered and logged in users may post replies! Please log in or register if you have not done it.');
}

function threadListener(response){
	if(parseInt(response.data) == 1)
		buildDialog(currentDialog, currentPath);
	else
		alert('There was a problem inserting your thread. Try posting again and/or reloading the screen. Apologies for inconvenience');
}

//XML generation
function recurseXML(d, x){
	if((typeof(d) == "array" && d.length)){
		for(k = 0, kmax = d.length; k < kmax; k++){
			if((typeof(d[k]) == "array" && d[k].length) || (typeof(d[k]) == "object" && d[k] != "{}")){
				if(parseInt(k) == k){
					if(x[x.length - 1] && x[x.length - 1] != "<item>")
						x[x.length] = "<item>";
				} else {
					x[x.length] = "<" + k + ">";
				}
				
				recurseXML(d[k], x);
				
				if(parseInt(k) == k){
					if(x[x.length - 1] && x[x.length - 1] != "</item>")
						x[x.length] = "</item>";
				} else {
					x[x.length] = "</" + k + ">";
				}
			} else {
				if(parseInt(k) == k){
					x[x.length] = "<item>" + d[k] + "</item>";
				} else {
					x[x.length] = "<" + k + ">" + d[k] + "</" + k + ">";
				}
			}
		}
	} else if (typeof(d) == "object" && d != "{}") {
		for(var k in d){
			if((typeof(d[k]) == "array" && d[k].length) || (typeof(d[k]) == "object" && d[k] != "{}")){
				if(parseInt(k) == k){
					if(x[x.length - 1] && x[x.length - 1] != "<item>")
						x[x.length] = "<item>";
				} else {
					x[x.length] = "<" + k + ">";
				}
				
				recurseXML(d[k], x);
				
				if(parseInt(k) == k){
					if(x[x.length - 1] && x[x.length - 1] != "</item>")
						x[x.length] = "</item>";
				} else {
					x[x.length] = "</" + k + ">";
				}
			} else {
				if(parseInt(k) == k){
					x[x.length] = "<item>" + d[k] + "</item>";
				} else {
					x[x.length] = "<" + k + ">" + d[k] + "</" + k + ">";
				}
			}
		}
	}
}
	
function generateXML(d){
	
	x = [];
	
	x[0] = "<\?xml version=\"1.0\"\?><list>";
	
	recurseXML(d, x);
	
	x[x.length] = "</list>";
	
	return x.join("");
}


/*
Post Specific
*/

var flgCode = false;
function codeClick(item){
	if (flgCode){
		var tag = "[/CODE]";								
		flgCode = false;
	} else {
		var tag = "[CODE]";
		flgCode = true;
	}
		
	if (ie){							
		var body = document.getElementById( "body" );
		body.innerHTML += tag;
	} else
		document.forms["frmNewPost"].body.value += tag;
}

function boldClick(item){
	if(ie)
		document.execCommand("Bold");
	else							
		document.forms["frmNewPost"].body.value += "<b> </b>";
		
	//checkCommand("Bold");
}

function italicClick(item){	
	if(ie)
		document.execCommand("Italic");
	else							
		document.forms["frmNewPost"].body.value += "<i> </i>";
		
	//checkCommand("Italic");
}

function underlineClick(item){
	if(ie)
		document.execCommand("Underline");
	else							
		document.forms["frmNewPost"].body.value += "<u> </u>";
		
	//checkCommand("Underline");
}

function checkCommand(which){
	if(el = document.getElementById("short")){
		alert(el.isContentEditable);
	}
	
	alert('enabled: ' + document.queryCommandEnabled(which));
	alert('indeterminate: ' + document.queryCommandIndeterm(which));
	alert('state: ' + document.queryCommandState(which));
	alert('supported: ' + document.queryCommandSupported(which));
	alert('value: ' + document.queryCommandValue(which));
}

/*
function fillFields(item){						
	if(ie){
		var body = document.getElementById( "body" );								
		var hiddenBody = document.forms["frmNewPost"].hiddenBody;
		hiddenBody.value = body.innerHTML;
	}
	else {
		var hiddenBody = document.forms["frmNewPost"].hiddenBody;
		hiddenBody.value = document.forms["frmNewPost"].body.value;
	}
	return true;
}


//function insertSmile(smile){
//	if(ie){
//		var short = document.getElementById("short");
//		short.innerHTML += smile;
//	} else {
//		document.forms["frmNewPost"].body.value += " :" + smile + ": ";
//	}
//}
*/
/*
Clock
*/
var clockID = 0;
var clock = 0;

function updateClock() {
	if(clock = document.getElementById("postClock")){
		if(clockID) {
			clearTimeout(clockID);
			clockID = 0;
		}
		
		var tDate = new Date();
		
		str = new String();
		
		str += tDate.getYear().toString();
		str += "-";
		str += ((tDate.getMonth() + 1).toString().length < 2 ? "0" + (tDate.getMonth() + 1).toString() : (tDate.getMonth() + 1).toString());
		str += "-";
		str += (tDate.getDate().toString().length < 2 ? "0" + tDate.getDate().toString() : tDate.getDate().toString());
		str += "&nbsp;";
		str += (tDate.getHours().toString().length < 2 ? "0" + tDate.getHours().toString() : tDate.getHours().toString());
		str += ":";
		str += (tDate.getMinutes().toString().length < 2 ? "0" + tDate.getMinutes().toString() : tDate.getMinutes().toString());
		str += ":";
		str += (tDate.getSeconds().toString().length < 2 ? "0" + tDate.getSeconds().toString() : tDate.getSeconds().toString());;
		
		clock.innerHTML = str;
		
		clockID = setTimeout("updateClock()", 1000);
	} else 
		clockID = setTimeout("updateClock()", 1000);
}
function startClock() {
	clockID = setTimeout("updateClock()", 500);
}

function killClock() {
	if(clockID) {
		clearTimeout(clockID);
		clockID = 0;
	}
}