var lastElement = "";

function confirmDelete(action) {
	if (confirm('Wollen Sie wirklich löschen?')) {
		window.location.href=action;
	}
}

function confirmDeleteCommit(action) {
	
	compos = action.indexOf("commit");
	
	if (compos > 0){
		if (commit_app_alt_delapp){
			confirmtext = commit_app_alt_delapp;
		}
		else{
			confirmtext = "Wollen Sie wirklich löschen?";
		}
	}
	else {
		confirmtext = "Wollen Sie wirklich löschen?";
	}
	if (confirm(confirmtext)) {
		window.location.href=action;
	}
}

function confirmDeleteCommitUser(action) {
	
	compos = action.indexOf("commit");
	
	if (compos > 0){
		if (commit_app_alt_delusr){
			confirmtext = commit_app_alt_delusr;
		}
		else{
			confirmtext = "Wollen Sie wirklich löschen?";
		}
	}
	else {
		confirmtext = "Wollen Sie wirklich löschen?";
	}
	if (confirm(confirmtext)) {
		window.location.href=action;
	}
}

function confirmDelete_mo(action) {
	if (confirm('Benutzer wirklich entfernen?')) {
		window.location.href=action;
	}
}

function tab(on) {
	off = "news";
	if (on == "news") {
		off = "veranstaltungen";
	}
	document.getElementById(off+"Component").style.display = "none";
	document.getElementById(off+"Tab").className = off;
	document.getElementById(on+"Component").style.display = "block";
	document.getElementById(on+"Tab").className = on+"_act";
}

function showElement(elem) {
	if (lastElement != "") {
		document.getElementById(lastElement).style.display = "none";
	}
	document.getElementById(elem).style.display = "block";
	lastElement = elem;
}


/*app_Commit_Ob*/
var app_Commit_Ob = function(){
	/*Properties*/
	this.akt_list_Html = "";
	this.akt_userlist = new Object();
	this.selected_users = new Array();
	this.list_init = new Boolean();
	this.list_sorttype ="";
	
	/*Methods*/
	
	this.create_akt_userlist = function(userlist,list_init){
		//IntList 
		//On First no Output must generate
		this.list_init = list_init;
		
		//generate Output
		var wg_user_out ="";
		
		for (wg_user in userlist)
		{
			//is user checked
			var aktpos = jQuery.inArray(userlist[wg_user].id, this.selected_users);
			
			//first init checked = 0
			if (this.list_init){
				userlist[wg_user].check = "0";
			}
			else {
		
				if (aktpos >= 0){
				 userlist[wg_user].check = "1";
				}
				else{
					userlist[wg_user].check = "0";
				}
			}
			
			//first init no NewOutput
			if(!this.list_init){
				wg_user_out += "<tr>";
				wg_user_out	+= "<td class='col_adress'>" + userlist[wg_user].name + "</td>";
				wg_user_out	+= "<td class='col_status'>";
				if (userlist[wg_user].status == 1){
					wg_user_out	+= "<img title='zugesagt' alt='zugesagt' src='../img/bn_zusage_en.png'>";
				}
				else if(userlist[wg_user].status == 2){
					wg_user_out	+= "<img title='zugesagt' alt='zugesagt' src='../img/bn_absage_en.png'>";
				}
				else if(userlist[wg_user].status == 3){
					wg_user_out	+= "<img title='zugesagt' alt='zugesagt' src='../img/bn_offen_en.png'>";
				}
				else {
					wg_user_out	+= "&nbsp;";
				}
				wg_user_out += "</td>";
				//Muss be checked?			
				if (aktpos >= 0){
				 wg_user_out += "<td class='col_check' style='text-align:center'><input checked='checked' type='checkbox' value='"+ userlist[wg_user].id +"' name='ckbn_adress'></td>";	
				}
				else{
				 wg_user_out += "<td class='col_check' style='text-align:center'><input type='checkbox' value='"+ userlist[wg_user].id +"' name='ckbn_adress'></td>";
				}
				wg_user_out += "</tr>";
			}
		}
				
		this.akt_userlist = userlist;
			
		return wg_user_out;
	};
	
	this.get_akt_userlist = function(userlist){
		return this.akt_userlist;
	};
	
	this.get_init = function(){
		return this.list_init;
	};
	
	//get selected user
	this.getselected_users = function(){
		return this.selected_users;
	};
		
	//set checkbox of user (commit, chancel, open)
	this.select_userlist_setstatus = function(status){
		for (check_user in this.akt_userlist){
			if (this.akt_userlist[check_user].status == status){
				//$('input[value="31"]').attr({checked: true});
				aktstatus = this.akt_userlist[check_user].id;
				this.set_selected_user(aktstatus);
				$("input[value='" + aktstatus + "']").attr({checked: true});
				//console.log(this.akt_userlist[check_user].id);
			}
		}
	};
	
	//unset all checkuser in akt_userlist
	this.unselect_userlist = function(){
		for (check_user in this.akt_userlist){
			aktstatus = this.akt_userlist[check_user].id;
			this.unset_selected_user(aktstatus);
			$("input[value='" + aktstatus + "']").attr({checked: false});
			
		}
	};
	
	//set user as checked (selected_users)
	this.set_selected_user = function(userid){
		
		if (jQuery.inArray(userid, this.selected_users) < 0){
			this.selected_users.push(userid);
		}
		this.set_akt_userlist_check(userid);
		$('#usercount').html(this.selected_users.length);
		//console.log('checked selected_users');
		//console.log(this.selected_users);
	};
	
	//set user as checked (akt_userlist)
	this.set_akt_userlist_check = function(userid){
		//console.log(userid);
		for (check_user in this.akt_userlist){
			if(userid == this.akt_userlist[check_user].id){
				this.akt_userlist[check_user].check = 1;
			//console.log(this.akt_userlist[check_user].check);
		   }
		}
		//console.log('checked akt_userlist');
		//console.log(this.akt_userlist);
	};
	
	//set user as unchecked (selected_users)
	this.unset_selected_user = function(userid){
		
		//console.log(jQuery.inArray(userid, this.selected_users));
		var aktpos = jQuery.inArray(userid, this.selected_users);
		if (aktpos >= 0){
			this.selected_users.splice(aktpos,1);
		}	
		this.unset_akt_userlist_check(userid);
		$('#usercount').html(this.selected_users.length);
		//console.log('unchecked');
		//console.log(this.selected_users);
	};
	
	//set user as unchecked (akt_userlist)
	this.unset_akt_userlist_check = function(userid){
		for (check_user in this.akt_userlist){
			if(userid == this.akt_userlist[check_user].id){
				this.akt_userlist[check_user].check = 0;
		   }
		}
	};
	
	//sort userlist (status,check)
	this.sort_userlist = function(type){
		this.list_sorttype = type;
		
		var userlist_new = new Array("test");
		
		if (this.list_sorttype == "commit"){
			var user_st_commit = new Array();	
			var user_st_chancel = new Array();
			var user_st_open = new Array();	
			var user_st_no = new Array();
		
			for (akt_user in this.akt_userlist){
				if (this.akt_userlist[akt_user].status == 1){
					user_st_commit.push(this.akt_userlist[akt_user]);
				}
				else if(this.akt_userlist[akt_user].status == 2){
					user_st_chancel.push(this.akt_userlist[akt_user]);
				}
				else if(this.akt_userlist[akt_user].status == 3){
					user_st_open.push(this.akt_userlist[akt_user]);
				}
				else if(this.akt_userlist[akt_user].status == -1){
					user_st_no.push(this.akt_userlist[akt_user]);
				}
			}
			userlist_new = user_st_commit.concat(user_st_chancel,user_st_open, user_st_no);
		}
		else{
			var user_ls_check = new Array();	
			var user_ls_uncheck = new Array();
			
			for (akt_user in this.akt_userlist){
				if (this.akt_userlist[akt_user].check == 1){
					user_ls_check.push(this.akt_userlist[akt_user]);
				}
				else if (this.akt_userlist[akt_user].check == 0){
					user_ls_uncheck.push(this.akt_userlist[akt_user]);
				}
			}
			
			userlist_new = user_ls_check.concat(user_ls_uncheck);
		}
		var aktuserlist = this.create_akt_userlist(userlist_new,false);
		$('#inner_tab').html(aktuserlist);
		intCheckboxEvents();
		//console.log(aktuserlist);
	}; 
		
	this.getLists = function(){
			console.log(this.akt_userlist);
			//alert(this.akt_userlist[check_user].name);
			//alert(this.akt_userlist[check_user].check);
	};
	
};

//set und get pagedata
//skriptfile	handler that request the ajax Call
//element		element that invoke the call
//callbackfunc	func that handle the callback
//data	 		that pass to the handler
function ajax_page_prop(skriptfile,element,callbackfunc,data) {
	$.post('../de/ajax/'+ skriptfile + '', data, function(data) {
		if (data.data){
			//console.log(data.data);
			intcallback(element,data,skriptfile);		
		}
		else {
			intcallbackError(skriptfile);
		}
	})
	//.success(function() { alert("second success");})
    .error(function() { intcallbackError('request_err');})
    //.complete(function() { alert("complete"); });
	;
}

/*E-Mail_Ob*/
//m_subject_el	elemet(input) for subject
//m_subject_er	error elemet for subject
//m_content_el	elemet(textarea) for content
//m_content_er 	error elemet for content
//m_adresst_el  elemet(input) for extra adresses
//m_adresst_er	error elemet for extra adresses
//m_from		emailadress that send the mail

var app_Email_Ob = function(m_subject_el,m_subject_er,m_content_el,m_content_er,m_adresst_el,m_adresst_er,m_from_email,m_from_name){
	
	/*Properties*/
	this.m_from_name =  m_from_name;
	this.m_from_email = m_from_email;
	this.m_subject_el = m_subject_el;
	this.m_subject_er = m_subject_er;
	this.m_subject_con = "";
	this.m_content_el = m_content_el;
	this.m_content_er = m_content_er;
	this.m_content_con = "";
	this.m_adresst_el = m_adresst_el;
	this.m_adresst_er = m_adresst_er;
	this.m_adress_con = new Array();
	this.m_errors = 0;
	
	/*Methods*/
	//validate
	this.create_mail = function(selectuserlist,er_element){
		
		this.m_adress_con = new Array();
		this.m_errors = 0;
		$(this.m_subject_er).css("display","none");
		$(this.m_content_er).css("display","none");
		$(this.m_adresst_er).css("display","none");
		$(er_element).css("display","none");
		
		//check subject
		if (m_subject_con = this.validate_Empty(this.m_subject_el,this.m_subject_er)){
			this.m_subject_con  = m_subject_con; 
		}		
		//check content
		if (m_content_con = this.validate_Empty(this.m_content_el,this.m_content_er)){
			this.m_content_con  = m_content_con;
		}
		//ceck_extra_Mail
		if (m_adress_con = this.validate_ExtraMail(this.m_adresst_el,this.m_adresst_er)){
			this.m_adress_con  = m_adress_con;
		}
		
		//check if one user is checked or a extramail was define
		if (!selectuserlist.length > 0 && !this.m_adress_con.length > 0 ){
			this.m_errors = 1;
			$(er_element).css("display","block");
		} 
		
		if (!this.m_errors){
			//alert(selectuserlist);
			//alert(this.m_adress_con);
			
			var skript = "send_mail";
			var m_userlist = selectuserlist;
			var m_subject = this.m_subject_con;
			var m_content = this.m_content_con;
			var m_adress = this.m_adress_con;	  
			
			ajax_page_prop('app_mail',this,'mailsend',{skript: skript, m_userlist: m_userlist, m_subject: m_subject, m_content: m_content ,m_adress: m_adress, m_from_email: m_from_email, m_from_name:m_from_name});
		}	
	};
	
	//check for empty fields
	this.validate_Empty = function(element, er_element){
		 if (!element.val()){
			 this.m_errors = 1; 
			 $(er_element).css("display","block");
			 this.m_errors = 1;
			 return false;
		 }
		 else{
			 return (element.val());
		 }
	};
	
	//check_extramail
	this.validate_ExtraMail = function(element, er_element){
		if (element.val()){
			var extra_mail_adress = $('#m_adress').val();
			var extra_mail_adresslist = extra_mail_adress.split(";");
			
			//uncomment to del check
			//return extra_mail_adresslist;
			
			//check for eq webadress
			var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
			
			for (extra_mail in extra_mail_adresslist){	    
			    if(reg.test(jQuery.trim(extra_mail_adresslist[extra_mail])) == false) {
			    	$(er_element).css("display","block");
			    	this.m_errors = 1;
			    	return false;
				}	
			}
			if (!this.m_errors ){
				return extra_mail_adresslist;
			}
		}
	};
	
};

/*CSV_Ob*/
//csv_er	error elemet for csv

var app_Csv_Ob = function(csv_er){
	
	/*Properties*/
	this.csv_link =  '';
	this.csv_er = csv_er;
	this.csv_file_list = new Array();
	
	/*Methods*/
	
	//create
	//selectuserlist	selectet user
	//elemet			elemet that call the event
	//errmsg			text that show if a error called
	this.create_csv = function(selectuserlist,element,errmsg,para_wgid_artid,para_artid){
		if (selectuserlist.length > 0){
			var skript = "create_csv";
			var m_userlist = selectuserlist;
			var csv_wgid = para_wgid_artid;
			var csv_artid = para_artid;
			ajax_page_prop('app_csv',this,'csv_export',{skript: skript,m_userlist: m_userlist,csv_wgid: csv_wgid,csv_artid: csv_artid});
		}
		else{
			$(this.csv_er).text(errmsg);
			$(this.csv_er).css("display","block");
		}
	};
	
	//fill filelist
	//file				csvfile
	this.addto_file_list = function(file){
		this.csv_file_list.push(file);
	};
	
	
	this.get_file_list = function(){
		return this.csv_file_list;
	};
};


