/**
 * cat Input Krams
 */
var PresseCatIntelliSense = function () {
	var that = this;
	this.input = document.getElementById('presseCat');
	this.httpRequest = new HttpRequest;

	this.input.onkeyup = function (event) {
        if (this.timeout) window.clearTimeout(this.timeout);
        this.timeout = window.setTimeout(function () {
            if(this.input.value.length > 0){
                this.httpRequest.init(this.buildCatSelect.bindTo(this));
                this.httpRequest.load('pressemeldungen.html?presseAjax=1&cat='+this.input.value);
            }
        }.bindTo(this), 500)
	}.bindTo(this);

}

PresseCatIntelliSense.prototype.buildCatSelect = function(response){
    response = eval('('+response+')');
	document.pressemitteilungen.presseUeCat.disabled = false;
	if (document.getElementById('intelliCat')) {
		var toDelete = document.getElementById('intelliCat');
		toDelete.parentNode.removeChild(document.getElementById('intelliCat'));
		toDelete = undefined;
		document.getElementById('intelliCatClose').style.display = "none";
	}
	document.getElementById('intelliCatClose').style.display = "block";
	if( response.length == 0) return false;
	var catSelect = document.createElement('select');
	catSelect.size = "5";
	catSelect.id="intelliCat";
	var newOption = new Option('Bitte wählen Sie Ihren Ort...', '', false, true);
	catSelect.options[catSelect.options.length] = newOption;
	for(var i = 0; i < response.length; i++){
		var newOption = new Option(response[i].catName+' ::: '+response[i].ueCatName,response[i].catName);
		newOption.ueCatId = response[i].ueCatId;
		catSelect.options[catSelect.options.length] = newOption;
	}

	this.input.parentNode.insertBefore(catSelect,this.input.nextSibling);
	catSelect.onchange = function(){
		this.input.value = catSelect.value;
		// select presseCat in select
		for (var n=0;n<document.pressemitteilungen.presseUeCat.options.length;n++) {
			if (document.pressemitteilungen.presseUeCat.options[n].value.indexOf(catSelect.options[catSelect.selectedIndex].catUeId)==0) {
				document.pressemitteilungen.presseUeCat.selectedIndex = n;
				document.pressemitteilungen.presseUeCat.disabled = true;
				break;
			}
		}
		this.input.parentNode.removeChild(catSelect);
		document.getElementById('intelliCatClose').style.display = "none";
	}.bindTo(this)
}

/********Formular für Eingabe von Pressemitteilungen***************/
function valPresseForm(){
	var validate=new Array('adressId', 'name', 'strasse', 'plz', 'ort', 'vtel', 'tel', 'titel', 'text1', 'agb', 'presseCat', 'presseUeCat');
	var rt = 0;
	var label = '';
	var error=new Array();
	var re = new RegExp ("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[_a-z0-9-]+(\.[_a-z0-9-]+)*\.[a-z]{2,4}$");
    var telreg = new RegExp ("^[- 0-9+/()]{3,}$");
	for (x=0;x<validate.length;x++) {
        if(document.pressemitteilungen[validate[x]]){
            if (document.pressemitteilungen[validate[x]].value=='') {
                validate[x] == 'ort' ? validate[x] = 'plz' : validate[x];
                validate[x] == 'tel' ? validate[x] = 'vtel' : validate[x];
                error.push(validate[x]);
            }
            validate[x] == 'ort' ? validate[x] = 'plz' : validate[x];
            validate[x] == 'tel' ? validate[x] = 'vtel' : validate[x];
            label = validate[x]+'Label';
            document.getElementById(label).style.color='#4D546E';
        }
		document.getElementById('emailLabel').style.color='#4D546E';
		document.getElementById('presseImgLabel').style.color='#4D546E';
	}
	if (typeof document.pressemitteilungen.adressId != 'undefined' &&
        document.pressemitteilungen.adressId.selectedIndex == 0){
		error.push('adressId');
	}
	if (isNaN(document.pressemitteilungen.plz.value) || document.pressemitteilungen.plz.value.length < 5){
		error.push('plz');
	}
	if (!telreg.test(document.pressemitteilungen.vtel.value)){
		error.push('vtel');
	}
	if (!telreg.test(document.pressemitteilungen.tel.value)){
		error.push('vtel');
	}
	if (re.test(document.pressemitteilungen.email.value) == false){
		error.push('email');
	}
	if (document.pressemitteilungen['agb'].checked==false){
		error.push('agb');
	}
	if (document.pressemitteilungen.presseImg.value != ''&&
        document.pressemitteilungen.presseImg.value.substr(-3, 3) != 'gif' &&
        document.pressemitteilungen.presseImg.value.substr(-3, 3) != 'jpg' &&
        document.pressemitteilungen.presseImg.value.substr(-4, 4) != 'jpeg'){
		error.push('presseImg');
	}

	if (error.length>0){
		alert("Bitte alle mit * markierten Felder ausfüllen.");
		for (x=0;x<error.length;x++){
			label = error[x]+'Label';
			document.getElementById(label).style.color='#ff0000';
		}
		return false;
	}
	document.pressemitteilungen.presseCat.disabled = false;
	document.pressemitteilungen.presseUeCat.disabled = false;
	document.pressemitteilungen.removeChild(document.pressemitteilungen.presseCatGesamt);
	document.pressemitteilungen.removeChild(document.pressemitteilungen.presseUeCatGesamt);
	return true;
}

function removeIntelliPresseCat(){
	if(document.getElementById('intelliCat')){
		document.pressemitteilungen.removeChild(document.pressemitteilungen.intelliCat);
	}
}



// tooltipp im formular fuer pressemitteilungen ein und ausblenden
wmtt = null;

document.onmousemove = updateWMTT;



function updateWMTT(e) {
	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	y = (document.all) ? window.event.y + document.body.scrollTop  : e.pageY;
	if (wmtt != null) {
		wmtt.style.left = (x + 20) + "px";
		wmtt.style.top 	= (y + 20) + "px";
	}
}

function showWMTT(id) {
	wmtt = document.getElementById(id);
	wmtt.style.display = "block"
}

function hideWMTT() {
	wmtt.style.display = "none";
}


// formular fuer pressemeldungen
// functionen fuer gesamte presseCat und gesamte presseUeCat.

function setPresseCatGesamt(){
	if(document.pressemitteilungen.presseCatGesamt.checked == true){ //wenn aktiviert
		document.getElementById('presseCat').style.backgroundColor = "#EBEAEB";
		document.pressemitteilungen.presseCat.disabled = true;	//keine presseCat mehr auswaehlbar. der wert wird beim auswaehlen der presseUeCat gesetzt
		document.pressemitteilungen.presseUeCatGesamt.disabled = true;
		document.pressemitteilungen.presseUeCat.disabled = false;
        if (document.pressemitteilungen.presseUeCat.selectedIndex > 1) {
            var myValue = document.pressemitteilungen.presseUeCat.options[document.pressemitteilungen.presseUeCat.selectedIndex].value;
            var myValueArray = myValue.split("###");
            document.pressemitteilungen.presseCat.value = myValueArray[1]+" gesamt";
        }
		document.pressemitteilungen.presseUeCat.removeChild(document.pressemitteilungen.presseUeCat.options[1]);
		if(document.getElementById('intelliCat')){
			document.pressemitteilungen.removeChild(document.pressemitteilungen.intelliCat);
		}
	}else{
		document.pressemitteilungen.presseCat.disabled = false;
		document.pressemitteilungen.presseCat.value = "";
		document.getElementById('presseCat').style.backgroundColor = "#FFFFFF";
		document.pressemitteilungen.presseUeCatGesamt.disabled = false;
		var newOption = new Option('alle Regierungsbezirke','99');
		document.pressemitteilungen.presseUeCat.insertBefore(newOption, document.pressemitteilungen.presseUeCat.options[1]);
	}

}

function setPresseUeCatGesamt(){
	if(document.pressemitteilungen.presseUeCatGesamt.checked == true){
		document.pressemitteilungen.presseUeCat.selectedIndex = 1;
		document.pressemitteilungen.presseUeCat.disabled = true;
		document.pressemitteilungen.presseCatGesamt.disabled = true;
		document.pressemitteilungen.presseCat.value = "Bayern";
		document.pressemitteilungen.presseCat.disabled = true;
		document.getElementById('presseCat').style.backgroundColor = "#EBEAEB";

		if(document.getElementById('intelliCat')){
			document.pressemitteilungen.removeChild(document.pressemitteilungen.intelliCat);
		}
	}else{
		document.pressemitteilungen.presseUeCat.disabled = false;
		document.pressemitteilungen.presseUeCat.selectedIndex = 0;
		document.pressemitteilungen.presseCatGesamt.disabled = false;
		document.pressemitteilungen.presseCat.disabled = false;
		document.pressemitteilungen.presseCat.value = "";
		document.getElementById('presseCat').style.backgroundColor = "#FFFFFF";
	}
}

//setzt das feld presseCat auf die gewaehlte presseUeCat
function setPresseCatToPresseUeCatGesamt(){
	if(document.pressemitteilungen.presseCatGesamt.checked == true){ //wenn aktiviert
		document.pressemitteilungen.presseCat.disabled = false;
        if (document.pressemitteilungen.presseUeCat.selectedIndex > 0){
            var myValue = document.pressemitteilungen.presseUeCat.options[document.pressemitteilungen.presseUeCat.selectedIndex].value;
            var myValueArray = myValue.split("###");
            document.pressemitteilungen.presseCat.value = myValueArray[1]+" gesamt";
        } else {
            document.pressemitteilungen.presseCat.value = '';
        }
		document.pressemitteilungen.presseCat.disabled = true;
	}else{
		if(document.pressemitteilungen.presseCat.value.indexOf("gesamt")>-1){
			document.pressemitteilungen.presseCat.value = "";
		}
	}
}

function shutIntelliCat(){
	if(document.getElementById('intelliCat')){
		document.pressemitteilungen.removeChild(document.pressemitteilungen.intelliCat);
	}
	document.getElementById('intelliCatClose').style.display = "none";
}

function updateForm (id) {
	var adresse = presseadressen[id];
	if (id > 1){
		for (var i in adresse) {
			var field = document.getElementById(i);
			if (field.tagName == 'INPUT') {
				field.value = adresse[i];
			} else {
				field.selectedIndex = getIndex(adresse[i]);
			}
		}
	} else {
		var adresse = presseadressen[1];
		for (var i in adresse) {
			var field = document.getElementById(i);
			if (field.tagName == 'INPUT') {
				field.value = '';
			} else {
				field.selectedIndex = 0;
			}
		}
	}
}


function getIndex (value) {
	var reg = '^'+value+'###.*';
	reg = new RegExp(reg);
	var options = document.getElementById('presseUeCat').options;
	for (var i in options) {
		if (typeof options[i].value != 'undefined' && options[i].value.match(reg)) {
			return i;
		}
	}
	return false;
}
