// order jobs
function setOrderDynamic(el, type){
	var sel = document.getElementById('so');

	arrName = el.id.split('_');
	
	order = el.className;
	arr = order.split(' ');
	
	if(arr.length == 1){		
		order = order+" sortDown";
		k = 'sortDown';
	}else{
		if(arr[(arr.length-1)] == 'sortDown' || arr[0] == 'sortDown'){
			k = 'sortUp';
		}else{
			k = 'sortDown';
		}
		order = arr[0]+' '+k;
	}
	if(type == null){
		children = $("#parentOrder").children();
	}else{
		children = $("#"+type+"_parentOrder").children();
	}
	
	if(children.length > 0){
		for(i=0; i< children.length;i++){
			if(children[i].id != el.id){	
				id = children[i].id;
			
				val = children[i].className;		
				$("#"+id).removeClass('sortDown');
				$("#"+id).removeClass('sortUp');
			}
		}
	}

	$("#"+el.id).removeClass('sortDown');
	$("#"+el.id).removeClass('sortUp');
	$("#"+el.id).addClass(order);

	$("#"+sel.id).val(arrName[1]+" "+k);
}

function resetJobFilter(node,mark){
	 if($("#"+node).length >0){
		childs = $("#"+node).children();	
		for(i=0; i < childs.length; i++){
			if(childs[i].tagName.toUpperCase() == 'LI' && childs[i].id != node+"_"+mark){
				removeDrawFilter(childs[i].id, node,mark, false);
			}
		} 		
	 }
}
 
function addDrawFilter(el, node,cont, id, mark){
	
	if($("#"+cont).val() == id){
		return false;	
	}
	
	if(el != null && $("#dd_"+node+'_'+id).length > 0){
 		$("#dd_"+node+'_'+id).remove();
 	}
	
	// remove job id filter when exists
	if(node != 'filter_job' && $("#filter_job").length > 0){
		resetJobFilter('filter_job','no');
		$("#s9").val('no');		
		if(document.getElementById("order_first") != undefined){
			setOrderDynamic(document.getElementById("order_first"), null);
		}else{
			setOrderDynamic(document.getElementById("order_bfirst"), null);
		}
	}
	
	act = document.forms[0].action;

	if(mark == 'no' && id != mark && el!=undefined ){// only one selected filter allowed!!
		if(cont == "s9" && act.indexOf("profilbewerbersuche.php")>=0){
			$("#order_seventh").removeClass("sortUp");
			$("#order_seventh").removeClass("sortDown");
			setOrderDynamic(document.getElementById("order_seventh"), null);
		}
		
		filterJob = 'filter_job';
		childs = $("#filter_job").children();	
		for(i=0; i < childs.length; i++){
			if(childs[i].tagName.toUpperCase() == 'LI' && childs[i].id != node+"_"+mark){
				removeDrawFilter(childs[i].id, node,mark, false);
			}
		}
	}	
			
	addFilterValue(cont,id, mark);
	
	if($("#"+node+'_'+id).length == 0){
		var actnv = 'addFilter';		
		$.ajax({
			data:	({	
				async: false,
						actn: actnv,
						node: node,							
						obid: id																				
					}),
			success:	function (result){
	
			 // remove default when exists
			 if($("#"+node+'_'+mark).length == 1){
				 $("#"+node+'_'+mark).remove();
				 removeFilterValue(cont,mark);
			 }
				 
			 $("#"+node).append(result);
		 			 		
		
			
			if(mark == 'no') reloadDrawFilters(node,cont);
			
			// set filter flag to reload page
			if($("#flagfilterchanged").length >0) $("#flagfilterchanged").val(1);
				
			}
		});
		
	}  
	applyShadowbox();
}


//add filter value
function addFilterValue(name,value, mark){
	if($("#"+name).val() == '' || $("#"+name).val() == undefined || mark == 'no') {
		$("#"+name).val(value);
		return true;
	}

	val = $("#"+name).val();
	
	arr = val.split(',');	

	arr = addUniQueValToArr(arr,value);
	$("#"+name).val(arr.toString());
	applyShadowbox();
}


 // Error
function errorMsg(title, text){
    $.gritter.add({
        title: title,
        image: '/img/ico/error.png',
        time: 8000,
        class_name: "error",
        text: text
    });
}
// Info
function infoMsg(title, text){
    $.gritter.add({
        title: title,
        image: '/img/ico/info.png',
        time: 8000,
        class_name: "info",
        text: text
    });
}

/***** LOGIN *****/


function validateLogin(){
    flag_success = true;
    
    if($("#lusername").val() == ''){
        setInputBorder('lusername','set');
        flag_success = false;
    }else{
        setInputBorder('lusername','unset');        
    }
    
    if($("#lpassword").val() == ''){
        setInputBorder('lpassword','set');
        flag_success = false;
    }else{
        setInputBorder('lpassword','unset');        
    }
    return flag_success;
}

function validateByFieldName(fieldname){
	var flag_success = true;
	if($("#"+fieldname).val() == ''){
		setInputBorder(fieldname,'set');
		flag_success = false;
	}else{
		setInputBorder(fieldname,'unset');
	}
	return flag_success;	
}

/***** GENERAL FUNCTIONS *****/
// change page, submit form
function changePage(formname,newpagename){
    el = document.getElementById(formname);
    
    if(el != null){
        el.action = newpagename;
        el.submit();
    }else{
        window.location.href=newpagename;
    }
}

function validateNumericInputField(event){ 
  var reg = /[0-9]/; 
  return validInputField(event,reg);
}

function checkdateformat(userinput){
	var dateformat = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
	return dateformat.test(userinput); //returns true or false depending on userinput
}

// validation email address
function validateEmail(email) {
    if(email == '')return false;    
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(email) == false) {
      return false;
   }
   return true;
}

function validInputFieldDate(obj,el){
    // /^([0-9]{2,2})+\.([0-9]{2,2})+\.([0-9]{4,4})$/	
	if(obj.keyCode  == 8 || obj.keyCode  == 46)return true;
	
	
    val = el.value;
    if(val.length >= 10)return false;
    if(val.length == 2 || val.length == 5){
        res = validInputField(obj,/[\.]/);
    }else{      
        res = validInputField(obj,/[0-9]/);
    }
    return res; 
}

function validInputField(event, keyRE) {
	// allow delete or backspace key
	if(event.keyCode  == 8 || event.keyCode  == 46)return true;
	
    if (    ( typeof(event.keyCode) != "undefined" && event.keyCode > 0 && String.fromCharCode(event.keyCode).search(keyRE) != (-1) ) || 
        ( typeof(event.charCode) != "undefined" && event.charCode > 0 && String.fromCharCode(event.charCode).search(keyRE) != (-1) ) ||
        ( typeof(event.charCode) != "undefined" && event.charCode != event.keyCode && typeof(event.keyCode) != "undefined" && event.keyCode.toString().search(/^(8|9|13|45|46|35|36|37|39)$/) != (-1) ) ||
        ( typeof(event.charCode) != "undefined" && event.charCode == event.keyCode && typeof(event.keyCode) != "undefined" && event.keyCode.toString().search(/^(8|9|13)$/) != (-1) ) ) {
        return true;
    } else {
        return false;
    }
}

/* Apply fancybox to multiple items */
function applyShadowbox(){

    $("a.jobdetail").fancybox({
    
        'type': 'iframe',
        'scroll': false,
        'autoScale': false,
        'width': 760,
        'height': 600,
        'transitionIn': 'none',
        'transitionOut': 'fade',
        'speedIn': 600, 
        'speedOut': 200, 
        'overlayShow': true,
        'overlayOpacity': 0.6,
        'showCloseButton': true,
        'titlePosition': 'over',
        'showNavArrows': true,
        'onComplete': function() {
            $("#fancybox-title").css({'top':'0px', 'bottom':'auto'});
            $("#fancybox-inner").css({'top':'40px', 'height':'570px'});
            $("#fancybox-left").removeClass('hideForJobCreate');
            $("#fancybox-right").removeClass('hideForJobCreate');
        },
        'titleFormat': formatTitle
    });
}
function formatTitle(title, currentArray, currentIndex, currentOpts) {
    if (($(".employees").length != 0) || ($("#employeeSearch").length != 0)) {
       return '<div id="job-paging"><span></span>' + (title && title.length ? '<b>' + title + '</b>' : '' ) + 'Bewerber ' + (currentIndex + 1) + ' von ' + currentArray.length + '</div>';
    }
    if ($("#employeeSearch").length == 0) {
       return '<div id="job-paging"><span></span>' + (title && title.length ? '<b>' + title + '</b>' : '' ) + 'Job ' + (currentIndex + 1) + ' von ' + currentArray.length + '</div>';
    }
}

// Apply fancybox to a single item
function applySingleShadowbox(){

    $("a.jobCreate").fancybox({
    
        'type': 'iframe',
        'scroll': false,
        'autoScale': false,
        'width': 760,
        'height': 600,
        'transitionIn': 'none',
        'transitionOut': 'fade',
        'speedIn': 600, 
        'speedOut': 200, 
        'overlayShow': true,
        'overlayOpacity': 0.6,
        'showCloseButton': true,
        'titlePosition': 'over',
        'showNavArrows': false,
        'onComplete': function() {
            $("#fancybox-title").css({'top':'0px', 'bottom':'auto'});
            $("#fancybox-inner").css({'top':'40px', 'height':'570px'});
        },
        'titleFormat': formatSingleTitle
    });
}
function formatSingleTitle(title, currentArray, currentIndex, currentOpts) {
    return '<div id="job-title">' + (title && title.length ? '<b>' + title + '</b>' : '' ) + '</div>';
}


// returns array with added unique val
function addUniQueValToArr(arr,val){    
    
    if(val.length == 0 || val == ''){       
        return '';
    }
    
    if(arr.length == 0){
        return arr[0] = val;
    }
    var flag_found =  false;
    for(i=0; i<arr.length; i++){        
        // when val found return array
        if(arr[i] == val){
            return arr;
        }
    }
    arr.push(val);
    
    return arr;
}

// returns array with removed val
function removeValueFromArr(arr,val){
    if(val.length == 0 || val == '' || arr.length == 0){        
        return '';
    }
    narr = Array();
    z=0;
    for(i=0; i<arr.length; i++){        
        // when val found return array
        if(arr[i] != val){
            narr[z]=  arr[i];
            z++;
        }
    }
    return narr;
}

// reset jobsearch
function resetJobsearch(){
    if($("#actn").length > 0){
        $("#actn").val('resetJobSearch');
        $("#jobForm").submit();
        $("#applicantForm").submit();        
    }
}

function setInputBorder(id,actn){
    if('set' == actn){
        $("#"+id).addClass('error');
    }else{
        $("#"+id).removeClass('error');
    }
}



// aplly Highlighting
function applyHighlighting(){

    /* Table Row hover */
    $('table.gridView tbody tr').mouseenter(function(i,el){
        $(this).toggleClass("hover");
    });
    $('table.gridView tbody tr').mouseleave(function(i,el){
        $(this).toggleClass("hover");
    });
    
}

