/* ************************************************************ */
/* ************************************************************ */
/* ************************************************************ */
/* JQUERRY-ADDONS*/
/* ************************************************************ */
/* ************************************************************ */
/* ************************************************************ */

/*//////////////////////////////SEARCH*/
jQuery.search = function(server,sprache) {    

    jQuery('#formSearch').submit(function () {
         var locStr = '/' + siteLanguage + '/jobsuche/q:' + jQuery('#q-textSearch').val().replace(new RegExp(":","gi"), '');
         if (jQuery("input[name='ful_id']").length > 0 && jQuery("input[name='syn_id']").length > 0) {
             locStr += '/f:'+jQuery("input[name='ful_id']").val()+'/s:'+jQuery("input[name='syn_id']").val();
         }

         window.location.href = locStr;
         return false;
    });

    if(sprache == "de"){
    jQuery("#q-textSearch").autocomplete(server+sprache+'/ajax_synonym_cf.php', {
        width: parseInt(jQuery("#q-textSearch").css("width"))+10,
        selectFirst: false,
        max: 20,
        scroll: false
    });
    jQuery("#q-textSearch").result(function(event, data, formatted) {
        jQuery("input[name='ful_id']").val(data[1]);
        jQuery("input[name='syn_id']").val(data[2]);
    });
    }
};
/*//////////////////////////////*/

/*//////////////////////////////ACCBOX*/
jQuery.accbox = function() {
    jQuery('div.accordionBox> div').hide();
    jQuery('div.accordionBox> h3:last').addClass('last');
    jQuery('div.accordionBox> div:last').addClass('last');
    jQuery('div.accordionBox> h3').click(function() {
        jQuery('div.accordionBox> h3').removeClass('down');
        var nextDiv = jQuery(this).next();
        var visibleSiblings = nextDiv.siblings('div:visible');
        if (nextDiv.css('display') == 'none') {
            jQuery(this).addClass('down');
            //Hits
            divid = nextDiv.attr('id').split('top_arbeitgeber_wid_');
            jQuery.get("/whit.php?wid="+divid[1]);
            //
        }
        if (visibleSiblings.length) {
            visibleSiblings.slideUp('fast', function() {
                nextDiv.slideToggle('fast');
            });
        } else {
            nextDiv.slideToggle('fast');
        }
    });
};
/*//////////////////////////////*/


/*//////////////////////////////BlogTeaser*/
jQuery.S4JblogTeaser = function() {

    jQuery('#teaserBTNkarriere').click(function() {
        if(jQuery('#teaserCONTENTkarriere').css('display') == 'none'){
            toggleClass('#teaserBTNblog','#teaserBTNkarriere','tabBoxTitle down','tabBoxTitle');
            jQuery('#teaserCONTENTblog').fadeOut(300,function callback() {
              jQuery('#teaserCONTENTkarriere').fadeIn(300);
            });
        }
    });
    jQuery('#teaserBTNblog').click(function() {
        if(jQuery('#teaserCONTENTblog').css('display') == 'none'){
            toggleClass('#teaserBTNkarriere','#teaserBTNblog','tabBoxTitle down','tabBoxTitle');
            jQuery('#teaserCONTENTkarriere').fadeOut(300,function callback() {
              jQuery('#teaserCONTENTblog').fadeIn(300);
            });
        }
    });
    function toggleClass(element1,element2,class1,class2){
        jQuery(element1).removeClass(class1);
        jQuery(element1).addClass(class2);
        jQuery(element2).removeClass(class2);
        jQuery(element2).addClass(class1);
    }
};
/*//////////////////////////////*/

jQuery.jobspopup = function() {
    jQuery('A[rel="popup"]').click( function() {
        //Get Attributest
        tmpSplitter = jQuery(this).attr('href').split("&overlayWidth=");
        attributes = tmpSplitter[1].split("&overlayHeight=");
        width = parseInt(attributes[0]);
        height = attributes[1];
        link =  jQuery(this).attr('href');
        jobDetail(link, width, height)
        return false;
    });

};


/*//////////////////////////////OVERLAY*/
jQuery.overlay = function() {
    jQuery('A[rel="overlay"]').click( function() {

        //Client Window Size
        cw = parseInt(jQuery(window).width())-50;
        ch = parseInt(jQuery(window).height())-50;
        //Get Attributest
        tmpSplitter = jQuery(this).attr('href').split("&overlayWidth=");
        attributes = tmpSplitter[1].split("&overlayHeight=");
        width = parseInt(attributes[0]);
        height = attributes[1];
        link =  jQuery(this).attr('href');
        if(cw < width)  { 
            width = parseInt(cw);
        }
        if(ch < height) { 
            height = parseInt(ch);
        }
        mleft = parseInt("-"+width/2);
        mtop = parseInt("-"+height/2);
        clickedEl = this;

        //Expose function
        jQuery("#overlayWindow").expose({
            api: true,
            color: '#000000',
            opacity: 0.8,
            closeOnClick: true,
            closeOnEsc: false,
            loadSpeed: 'fast',
            closeSpeed: 'fast',
            //Inject iframe
            onLoad: function() {
                jQuery('#overlayWindow').css("display","block");
                jQuery('.overlayContent').append('<iframe id="overlayIframe" style="display:none;"/>');
                jQuery('#overlayIframe').attr('src', link);
                //check if iframe is loaded
                jQuery('#overlayIframe').load(function()
                {
                    //set Attributes
                    setWindowAttributes(width+"px",height+"px",mleft+"px",mtop+"px");
                    jQuery('#previmg').hide();
                    jQuery('#overlayIframe').show();
                });
            },
            //make expose clickable
            onClose: function() {
                closeOverlay();
            }
        }).load();
        return false;
    });

    //Close Button
    jQuery('.closeBTN').click( function() {
        closeOverlay();
        return false;
    });

    //helper functions to reduce js

    function closeOverlay(){
        jQuery("#overlayWindow").expose().close();
        jQuery('#overlayWindow').css("display","none");
        jQuery('#overlayIframe').remove();
        jQuery('#previmg').show();
        setWindowAttributes("100px","100px","-50px","-50px");
    }

    function setWindowAttributes(w,h,ml,mt){
        jQuery('#overlayWindow').css("height",h);
        jQuery('#overlayWindow').css("width",w);
        jQuery('#overlayWindow').css("margin-left",ml);
        jQuery('#overlayWindow').css("margin-top",mt);
    }

    function checkForError(){
        
    }

};
/*//////////////////////////////*/


/* ************************************************************ */
/* ************************************************************ */
/* ************************************************************ */

//delay helper
jQuery.fn.delay = function(time,func){
    this.each(function(){
        setTimeout(func,time);
    });

    return this;
};

//Url encode helper
jQuery.extend({
    URLEncode:function(str){

    var hexStr = function (dec) {
        return '%' + dec.toString(16).toUpperCase();
    };

    var ret = '',
            unreserved = /[\w.-]/; // A-Za-z0-9_.- // Tilde is not here for historical reasons; to preserve it, use rawurlencode instead
    str = (str+'').toString();

    for (var i = 0, dl = str.length; i < dl; i++) {
        var ch = str.charAt(i);
        if (unreserved.test(ch)) {
            ret += ch;
        }
        else {
            var code = str.charCodeAt(i);
            // Reserved assumed to be in UTF-8, as in PHP
            if (code === 32) {
                ret += '+'; // %20 in rawurlencode
            }
            else if (code < 128) { // 1 byte
                ret += hexStr(code);
            }
            else if (code >= 128 && code < 2048) { // 2 bytes
                ret += hexStr((code >> 6) | 0xC0);
                ret += hexStr((code & 0x3F) | 0x80);
            }
            else if (code >= 2048 && code < 65536) { // 3 bytes
                ret += hexStr((code >> 12) | 0xE0);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
            else if (code >= 65536) { // 4 bytes
                ret += hexStr((code >> 18) | 0xF0);
                ret += hexStr(((code >> 12) & 0x3F) | 0x80);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
        }
    }
    return ret;

    },
    URLDecode:function(s){
        var o=s;
        var binVal,t;
        var r=/(%[^%]{2})/;
	while((m=r.exec(o))!=null && m.length>1 && m[1]!=''){
            b=parseInt(m[1].substr(1),16);
            t=String.fromCharCode(b);o=o.replace(m[1],t);
        }
        return o;
    }
});


function jobDetail(url, width, height) {
	var winl = (screen.width - width) / 2;
	var wint = (screen.height - height) / 2;
	if (typeof fenster == 'undefined' || fenster.closed == true) {
		fenster = window.open(url,'jobs','scrollbars=yes,menubar=no,toolbar=no,status=yes,directories=no,location=no,width='+width+',height='+height+',top='+wint+',left='+winl+',resizable=yes');
		} else {
		fenster.close();
		fenster = window.open(url,'jobs','scrollbars=yes,menubar=no,toolbar=no,status=yes,directories=no,location=no,width='+width+',height='+height+',top='+wint+',left='+winl+',resizable=yes');
	}
	if (parseInt(navigator.appVersion) >= 4) { fenster.window.focus(); }
}

