
var filesurl = "bmphppaket/uploadform.php";
var itemUrls = { 'files' : filesurl };

function myweb2goEncryptedMailto (securemail) {
	email = rot13(securemail);
	document.location.href="mailto:"+email;
}

function rot13(text){
	var a=97, m=109, n=110, z=122, A=65, M=77, N=78, Z=90;
	var len = text.length, c, str = "";
	for(var i=0; i<len; i++)
	{
		c = text.charCodeAt(i);
		if((a <= c && c <= m) || (A <= c && c <= M)){ str += String.fromCharCode(c+13);}
		else if((n <= c && c <= z) || (N <= c && c <= Z)){ str += String.fromCharCode(c-13);}
		else{ str += text.substr(i,1);}
	}
	return str;
}

function startStatusCheck(form) {
	var submit = $('uploadSubmit');
	try {
	    form.submit();
	    submit.disable();
    var up = new Ajax.PeriodicalUpdater('uploadstatus', filesurl, {
        frequency : 1, decay: 1,
        method: 'post', parameters: { status: 1 },
        onSuccess : function(req) {
            var status = req.responseText;
            if(status=="PROGRESS") {
                return;
            }
            else if(status=="OK") {
                up.stop();
                updateFiles();
                Control.Modal.close();
            }
            else { // Fehler
                up.stop();
            	alert(status);
                Control.Modal.close();
            }
        }});
	}
	catch (e) {
	    alert(e.message);
	}
    return false;
}

function submitItem(form,item) {
	Form.Element.disable('itemSubmit');
	$(form).request({onComplete: function(req) {
		Control.Modal.close();
		updateItems(item);
	}});
	return false;
}

function updateFiles() {
	updateItems('files');
}
function updateItems(item) {
    $$('.itemcontainer').each(function(el) {
        var elItem = el.getAttribute('item');
        if(elItem!=item) return;
    	var url = itemUrls[item] || "bmphppaket/" + item + "form.php";
    	var filterString = el.getAttribute('filter') || "{}";
    	var parameters = $H({ show: 1});
    	var filter = $H(filterString.evalJSON());
    	filter.each(function(pair) {
    	    var vals = $A(pair.value);
    	    vals.each(function(val,index) {
    	        var key = 'filter[' + pair.key + ']['+index+']';
        	    parameters.set(key, val);
    	    });
    	});
        new Ajax.Updater(el, url, {
            method:'post', parameters: Object.toQueryString(parameters) });
    });
}

var Rules = {
      'a.modal': function(element) {
           if(!element._loaded) {
               element._loaded=true;
           }
           else { return }
           var w = element.getAttribute('width') || '200';
           var m = new Control.Modal(element, {
               draggable: 'close',
               closeOnClick: false,
               iframeshim:false,
               opacity: 0.2,
               width:w
           });
           m.observe('afterOpen', function() {
                var bDim = document.body.getDimensions();
                var left = (bDim['width'] > 600)?200:40;
                m.container.setStyle({top:200, left:left});
                m.remoteContentLoaded=false;
                Control.Modal.current = m;
           });
           m.observe('afterClose', function() {
               m.container.update("");
           });

      },
      'a.submit': function(element) {
          if(!element._loaded) {
            element.show();
            myTab.observe('afterChange', function(container) {
                 var lastLink = myTab.links.last();
                 if(lastLink==myTab.activeLink) {
                    element.update(element.getAttribute('textb'));
                 }
                 else {
                    element.update(element.getAttribute('texta'));
                 }
                 do_bwmRecalcHeight();
            });
            if(anzahlTabs>1) { // wenn mehr als ein tab -> weiter anzeigen
                element.update(element.getAttribute('texta'));
            }
            element._loaded=true;
         }
      },
      'a.submit:click': function(element,event) {
          Event.stop(event);
          var lastLink = myTab.links.last();
          if(lastLink==myTab.activeLink) { // letzter Submit!
              var form = element.getAttribute('refid');
			  element.hide();
              $(form).submit();
          }
          else {
              myTab.next();
          }
      },
      'a.filedel:click': function(element,event) {
                    Event.stop(event);
                    var file = element.getAttribute('file');
                    new Ajax.Request(filesurl, {
                        method:'post', parameters: { remove: file },
                        onSuccess: function(req) {
                        Effect.Fade($(file), {afterFinish: updateFiles});
                        }});
                    return false;
      },
      'tr[title], a[title]': function(element) {
      		new Tooltip(element, {backroundColor: "#E0E0E0", borderColor: "#B0B0B0",
                                  textColor: "#000", textShadowColor: "#FFF"});
      },
      'a.itemdel:click': function(element,event) {
                    Event.stop(event);
                    var item = element.getAttribute('item');
                    var url = itemUrls[item] || "bmphppaket/" + item + "form.php";
                    var idx=element.getAttribute('idx');
                    new Ajax.Request(url, {
                        method:'post', parameters: { remove: idx },
                        onSuccess: function(req) {
                        	Effect.Fade($('item'+idx))}});
                    return false;
      },
      'a.itemedit': function(element) {
                    if(!element._loaded) {
               element._loaded=true;
           }
           else { return }
           var w = element.getAttribute('width') || '200';
           var m = new Control.Modal(element, {
               draggable: 'close',
               closeOnClick: false,
               iframeshim:false,
               opacity: 0.2,
               width:w
           });
           m.observe('afterOpen', function() {
                m.container.setStyle({top:200, left:200});
                m.remoteContentLoaded=false;
                Control.Modal.current = m;
           });
           m.observe('afterClose', function() {
               m.container.update("");
           });
      },
     '.modalclose:click': function(element,event) {
		Control.Modal.close();
     },
     '#field_schwerbehindert': function(element) {
         if(!element._loaded) {
             element_loaded = true;
             schwerbehindertChange(element);
         }
     },
     '#field_schwerbehindert:change': function(element,event) {
        schwerbehindertChange(element);
     }
};
var ListRules = {
    '.hidelistdetails tr.details' : function(tr) {
        $(tr).hide();
    }
//    'a.detaillink:click' : function(link,event) {
//        var table = $(link).up('table.stelle');
//        table.select('tr.details').each(function(el) {
//            el.toggle();
//            do_bwmRecalcHeight();
//        });
//    }
}

function schwerbehindertChange(el) {
    var feld = $('field_gradDerBehinderung');
    if(feld) {
        var tr = feld.up().up();
        if($F(el)=='ja') {
            tr.show();
        }
        else {
            tr.hide();
        }
    }
}


var saveRunning = false;
/**
 * speichert im Hintergrund das formular zwischen
 */
function saveFormular(pe) {
    if(saveRunning) return;
    saveRunning = true;
    var parameters = $('bwmform').serialize();
    new Ajax.Request('bmphppaket/save.php', {
                         method : 'post',
                         parameters : parameters,
                         onSuccess : function(req) {
                              saveRunning = false;
                          },
                          onError : function() {
                              saveRunning = false;
                          }});
}

function do_bwmRecalcHeight() {
    if(Object.isFunction(window.bwmRecalcHeight)) {
        bwmRecalcHeight();
    }
}


var myTab;
var anzahlTabs=1;
FastInit.addOnLoad(function(){
        if($('formtab')) {
            myTab = new Control.Tabs($('formtab'));
            anzahlTabs = myTab.links.length;
            EventSelectors.start(Rules);
            ['files', 'lebenslauf', 'fertigkeit'].each(function(item) {
                    updateItems(item);
                    });
            new PeriodicalExecuter(saveFormular, 10);
        }
        else {
            Rules = ListRules;
            EventSelectors.start(Rules);
        }
    });

