// ======================================================================
// 
// JScript Source File -- copyright 2002 derStandard.at
// 
// NAME: Tools.js
// 
// AUTHOR: Michael Levitin, Bronner Online AG
// DATE  : 12.01.2006 v3.7
// 
// COMMENT: Site Tools Support 2002
// 
// sources are not to be used in other websites.
// if you want to use the navigation write to webmaster@derStandard.at
// =========================================================================

function popupwin(page,width,height,noscroll) {
	popup=window.open(page,'popupwin','toolbar=no,menubar=no,scrollbars='+(noscroll?'no':'yes')+',resizable=yes,'+'width='+width+',height='+height+',left=100,top=160');
	if (popup!=null) {
		popup.focus();
	}
}

function FillForm(FillForm,FillValues) {
	var FormObject
	for (FormObject=0;FormObject<FillForm.elements.length;FormObject++) {
		switch (FillForm.elements[FormObject].type) {
			case 'hidden':
			case 'file':
			case 'button':
			case 'submit':
			case 'reset':
				break;
			case 'select-one':
				for (SelectValue=0;SelectValue<FillForm.elements[FormObject].length;SelectValue++) {
					if (FillForm.elements[FormObject].options[SelectValue].value == FillValues[FillForm.elements[FormObject].name]) {
						FillForm.elements[FormObject].options[SelectValue].selected = true;
					}
				}
				break;
			case 'checkbox':
			case 'radio':
				for (FillValue in FillValues[FillForm.elements[FormObject].name]) {
					if (FillForm.elements[FormObject].value == FillValues[FillForm.elements[FormObject].name][FillValue]) {
						FillForm.elements[FormObject].checked = true;
					}
				}
				break;
			default:
				if (FillValues[FillForm.elements[FormObject].name] && FillValues[FillForm.elements[FormObject].name][0]) {
					FillForm.elements[FormObject].value = FillValues[FillForm.elements[FormObject].name][0];
					FillForm.elements[FormObject].disabled = false;
				}
		}
	}
}

function CheckForm(CheckString) {
	var CheckSplits;
	var Splits;
	var SplitsSplit;
	this.Checks = new Object();
	
	if (CheckString) {
		CheckSplits = CheckString.split(';');
		for (Splits in CheckSplits) {
			if (CheckSplits[Splits] != '') {
				SplitSplits = CheckSplits[Splits].split(':');
				if (SplitSplits[1]) {
					this.Checks[SplitSplits[0]] = [SplitSplits[1],false];
				} else {
					this.Checks[SplitSplits[0]] = ['',false];
				}
			}
		}
	}
	
	this.Validate = function(CheckForm,CheckDoc) {
		var test=true;
		var Check;
		var CheckDocDivs;
		var checkboxradios='';
		var RegEx;
		var CheckCheckBoxes = new Object();
		for (Check=0;Check<CheckForm.elements.length;Check++) {
			if (this.Checks[CheckForm.elements[Check].name]) {
				switch (CheckForm.elements[Check].type) {
					case 'hidden':
					case 'file':
					case 'button':
					case 'submit':
					case 'reset':
						break;
					case 'checkbox':
						if (CheckCheckBoxes[CheckForm.elements[Check].name] || CheckForm.elements[Check].checked) {
							CheckCheckBoxes[CheckForm.elements[Check].name] = true;
						} else {
							CheckCheckBoxes[CheckForm.elements[Check].name] = false;
						}
						break;
					case 'radio':
						if (CheckForm.elements[Check].checked) {
							this.Checks[CheckForm.elements[Check].name][1] = true;
						}
						break;
					default:
						if (CheckForm.elements[Check].value != '' || this.Checks[CheckForm.elements[Check].name][0].charAt(0) == 'l') {
							switch (this.Checks[CheckForm.elements[Check].name][0]) {
								case 'le':
								case 'e':
									var RegEx = /^([a-zA-Z0-9]+[\.\-_]?)*[a-zA-Z0-9]{1}\@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([a-zA-Z0-9]+[\.\-]?)*[a-zA-Z0-9]{1}\.(([a-zA-Z]{2,3})|(aero|coop|info|jobs|mobi|museum|name|travel))))$/gi
									if (RegEx.test(CheckForm.elements[Check].value)) {
										this.Checks[CheckForm.elements[Check].name][1] = true;
									} else {
										this.Checks[CheckForm.elements[Check].name][1] = false;
									}
									break;
								case 'ln':
								case 'n':
									var RegEx = /^\d*$/gi;
									if (RegEx.test(CheckForm.elements[Check].value)) {
										this.Checks[CheckForm.elements[Check].name][1] = true;
									} else {
										this.Checks[CheckForm.elements[Check].name][1] = false;
									}
									break;
								default:
									this.Checks[CheckForm.elements[Check].name][1] = true;
							}
						} else {
							if (CheckForm.elements[Check].disabled) {
								this.Checks[CheckForm.elements[Check].name][1] = true;
							} else {
								this.Checks[CheckForm.elements[Check].name][1] = false;
							}
						}
				}
			}
		}
		for (CheckCheckBox in CheckCheckBoxes) {
			if (CheckCheckBoxes[CheckCheckBox]) {
				this.Checks[CheckCheckBox][1] = true;
			} else {
				this.Checks[CheckCheckBox][1] = false;
			}
		}
		for (Check in this.Checks) {
			test = test && this.Checks[Check][1];
			if (CheckDoc) {
				CheckDocDivs = CheckDoc.getElementsByName(Check);
				if (CheckDocDivs.length) {
					for (var i=0;i<CheckDocDivs.length;i++) {
						if (CheckDocDivs[i].parentNode.tagName.toLowerCase() == 'div' || CheckDocDivs[i].parentNode.tagName.toLowerCase() == 'td') {
							if (this.Checks[Check][1]) {
								CheckDocDivs[i].parentNode.style.backgroundColor=CheckDoc.bgColor;
								//CheckDocDivs[i].parentNode.style.border='';
							} else {
								CheckDocDivs[i].parentNode.style.backgroundColor='#FF0000';
								//CheckDocDivs[i].parentNode.style.border='solid red 1px';
							}
						}
					}
				}
			}
		}
		if (!test) alert('Bitte füllen Sie alle Pflichtfelder korrekt aus!');
		return test;
	}
}

function MailTo(Name, EncodedMail) {
	var decoded = "";
	if (EncodedMail != '') {
		for (var i = 0; i < EncodedMail.length; i += 2) {
			if (i + 1 == EncodedMail.length) {
				decoded += EncodedMail.charAt(i);
			} else {
				decoded += EncodedMail.charAt(i + 1) + EncodedMail.charAt(i);
			}
		}
		decoded = '@' + decoded.replace(/\?/g,'.');
	}
	location.href="mailto:" + Name + decoded;
}
