window.addEvent("domready",function(){
	
	if($defined($E('.form_register'))) {
	    if($defined($('ctrl_street'))) mergeFields([$('ctrl_street'),$('ctrl_address2')]," / ");
	    if($defined($('ctrl_postal'))) mergeFields([$('ctrl_postal'),$('ctrl_city')]," / ");
	    if($defined($('ctrl_phone_first_num'))) mergeFields([$('ctrl_phone_first_num'),$('ctrl_phone_second_num')],"","Telefonnummer");
	    if($defined($('ctrl_mobile_first_num'))) mergeFields([$('ctrl_mobile_first_num'),$('ctrl_mobile_second_num')],"","Handynummer");  
	    if($defined($('ctrl_dateOfBirth'))) dateFields($('ctrl_dateOfBirth'),".");
	    //if($defined($('ctrl_country'))) limitLang($('ctrl_country'),new Array("de","at","ch"));
	    //$('ctrl_agreement').setProperty("checked","checked");
	}
});


function limitLang(el,languages)
{
	el.getElements("option").each(function(eli,cnt){
		if(!languages.contains(eli.getProperty("value")))
			eli.remove();		
	});		
}

function mergeFields(elements,separator,text)
{
	var el1 = elements[0];
	var el2 = elements[1];
	var el1_name = el1.getProperty("id");
	var el2_name = el2.getProperty("id");
    var el1_txt = $E("label[for='"+el1_name+"']").getText();
    var el2_txt = $E("label[for='"+el2_name+"']").getText();
	var el1_label = $E("label[for='"+el1_name+"']").setText("");
	var el2_label = $E("label[for='"+el2_name+"']").setText("");
	var el1_tr = el1.getParent().getParent();
	var el2_tr = el2.getParent().getParent();
    var sep = (typeof(separator) == "undefined") ? "" : separator;
    
    if(typeof(text) == "undefined") {
        new Element("span", { 'class': "mergedElement_text mergedElement_1_text" }).injectInside(el1_label).setText(el1_txt);
        new Element("span", { 'class': "mergedElement_separator mergedElement_separator" }).injectInside(el1_label).setText(sep);
        new Element("span", { 'class': "mergedElement_text mergedElement_2_text" }).injectInside(el1_label).setText(el2_txt);
    } else {
        el1_label.setText(text);  
    }
	
	if($defined(el2.getParent().getElement(".error"))){
		el2.getParent().getElement(".error").injectBefore(el1);
	}
	                                                                   
	el2.injectInside(el1.getParent());
	el2_tr.remove();
	
	el1.addClass("mergedElement").addClass("mergedElement_1");
	el2.addClass("mergedElement").addClass("mergedElement_2");
    
				
}

function splitFields(element,delimiter)
{
	var el = element;
	var el_name = el.getProperty("id");
	var el1 = new Element("input",{ 'type': "text", 'value': "", 'class': "text splittedElement splittedElement_1 splittedElement_" + el_name + "_1" }).injectInside(el.getParent());
	var el2 = new Element("input",{ 'type': "text", 'value': "", 'class': "text splittedElement splittedElement_2 splittedElement_" + el_name + "_2" }).injectInside(el.getParent());
	
	el.setStyle("display","none");
	
	([el1,el2]).each(function(eli,cnt){
		eli.addEvent("change",function(e){
			el.setProperty("value", el1.getProperty("value") + delimiter + el2.getProperty("value"));
		});			
	});
	
}

function dateFieldValidation(date)
{
	var regexDate = date.match(/(((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))$/);
	return (regexDate != null && $type(regexDate) == "array") ? regexDate[0] : null;
}

function dateFields(element,dateSeparator)
{
	var dateObject = new Date();
	var td = element.getParent();
	var d = new Element("select",{ 'class': "dateField dateDay" }).injectInside(td);
	var m = new Element("select",{ 'class': "dateField dateMonth" }).injectInside(td);
	var y = new Element("select",{ 'class': "dateField dateYear" }).injectInside(td);
	var currentInputDate = (element.getProperty("value").contains(dateSeparator)) ? element.getProperty("value").split(dateSeparator) : undefined;
	
	var yearMin = dateObject.getFullYear() - 100;
	var yearMax = dateObject.getFullYear() - 18;
	
	element.setStyle("display","none");
    new Element("option").injectInside(d).setText("--");
    new Element("option").injectInside(m).setText("--");
	
	for(i=1;i<=31;i++) {
        if(i<=9) var iTmp = "0" + i; else var iTmp = i;
		var dd = new Element("option", { 'value': iTmp }).injectInside(d).setText(iTmp);
		
		if(typeof(currentInputDate) != "undefined" &&  iTmp == currentInputDate[0])
			dd.setProperty("selected","selected");
	}
	
	for(i=1;i<=12;i++) {
        if(i<=9) var iTmp = "0" + i; else var iTmp = i;
		var mm = new Element("option", { 'value': iTmp }).injectInside(m).setText(iTmp);
		
		if(typeof(currentInputDate) != "undefined" &&  iTmp == currentInputDate[1])
			mm.setProperty("selected","selected");
	}
	
	for(i=yearMin;i<=yearMax;i++) {
		var yy = new Element("option", { 'value': i }).injectInside(y).setText(i);
		
		if (typeof(currentInputDate) != "undefined") {
			if (i == currentInputDate[2]) 
				yy.setProperty("selected", "selected");
		}
		else 
			if (yearMax == i) 
				yy.setProperty("selected", "selected");
	}
	
	([d,m,y]).each(function(eli,cnt){
		eli.addEvent("change",function(e){
			element.setProperty("value", d.getProperty("value") + dateSeparator + m.getProperty("value") + dateSeparator + y.getProperty("value"));
		});			
	});			
			
}

