/*
Global functions
uses: lib.js
*/
var ui_img_dir = "img/ui/";

function init() { // v1.3
    initFlyOut(new Array('ui-send', 'ui-rate'));
    initTab(new Array('ui-filter'));
    // external links
    addEvent(getElementsByClassName('external', 'a'), 'click', event_externalLink, false);
    // pop-ups
    addEvent(getElementsByClassName('kiosk', 'a'), 'click', event_kioskLink, false);
}

function initFlyOut(a) {
    for (var i=0; i<a.length; i++) {
        var elem = getElem(a[i]);
        if (elem!=null && hasClass(elem, 'fly-out')) {
            var trigger = getElem('btn_'+a[i]);
            if (trigger!=null) addEvent(trigger, 'click', event_toggleFlyOut(a[i]), false);

            if (a[i]=='ui-send' || a[i]=='ui-rate') {
                var btn_close = document.createElement('img');
                btn_close.src = ui_img_dir + "icn_close.gif";
                btn_close.className = "btn_close";
                addEvent(btn_close, 'click', event_toggleFlyOut(a[i]), false);
                document.getElementById(a[i]).appendChild(btn_close);
            }
        }
    }
}

function initTab(a) {
     for (var i=0; i<a.length; i++) {
        var elem = getElem(a[i]);
        if (elem!=null) {
            var triggers = getElementsByClassName('tab-menu', 'div', elem)[0].getElementsByTagName('a');
            for (var j=0; j<triggers.length; j++) {
                addEvent(triggers[j], 'click', event_toggleTab(a[i]), false);
            }
        }
    }
}

if (document.getElementById) addLoadEvent(init);

function event_toggleTab(app) { return function(e) { toggleTab(e.currentTarget, app); e.preventDefault(); } }
function toggleTab(trigger, app) {
    var ui_id = trigger.getAttribute('href').strip(0,trigger.getAttribute('href').indexOf('#')+1);
    if (document.getElementById(ui_id) != null) {
        var was_hidden = (hasClass(ui_id, 'hidden')) ? true : false;
        map(getElementsByClass('tab-panel', 'div', app), function(item){ hide( item, 'btn_'+item.id )});
        if (was_hidden || app == 'ui-filter') show( getElem(ui_id), trigger.parentNode );
    }
}

function event_toggleFlyOut(app) { return function(e) { toggleFlyOut(e.currentTarget, app); e.preventDefault(); } }
function toggleFlyOut(trigger, app) { // v1.1
    if (!document.getElementById(app)) return;
    var was_hidden = (hasClass(app, 'hidden')) ? true : false;
    map(getElementsByClass('fly-out', 'div'), function(item){ hide(item, 'btn_'+item.id) });
    if (was_hidden) show(getElem(app), trigger.parentNode);
}

function show(ui, trigger) { remClass(ui, 'hidden'); addClass(trigger, 'current'); }
function hide(ui, trigger) { addClass(ui, 'hidden'); remClass(trigger, 'current'); }

function event_externalLink(e) { launchExternalLink(e.currentTarget, e.currentTarget.className.replace('external','').trim()); e.preventDefault(); }
function event_kioskLink(e) { launchKiosk(e.currentTarget, e.currentTarget.className.replace('kiosk','').trim()); e.preventDefault(); }

function launchExternalLink(src, type) {
    if (type == 'opener' && window.opener && window.opener != null && !window.opener.closed) {
        var win = window.opener;
        win.location.href = src;
        win.focus();
    } else {
        launchKiosk(src, null);
    }
    return win;
}

function launchKiosk(src, type) { // v1.1
    var n = 'wb_'+type;
    var p = '';
    switch (type) {
        case 'gallery' : p = 'width=750,height=500,scrollbars=auto'; break;
        case 'stockchart' : p = 'width=570,height=600,toolbar=1,scrollbars=yes'; break;
    }
    var w = window.open(src, n, p);
    w.focus();
    return w;
}

/* disabled rh 11/09/29 http://support.exa-online.de/jira/browse/WB-135*/
function submitForm(f) {
    var targetWin = (f.targetWin) ? f.targetWin.value:null;
    if (checkForm(f)) {

        if (targetWin != null) launchKiosk(targetWin);
        f.target = targetWin;
        f.submit();
    }
}
function checkForm(f) { // v1.1
    if (!f.requiredFields)
	{
	//20110905 added by atgratho to avoid multiple submit of WBRecruitingForm
	if (f.sendButton)
	{
	//f.sendButton.disabled = true;
	}	return true;
	}
    var reqFields = f.requiredFields.value.split( ',' );
    var errorMsg = f.errorMsg.value;
    var invalid = new Array();

    if (reqFields.length>0) {
        for (var i=0; i<reqFields.length; i++) {
            var elm = f.elements[reqFields[i]];
            var valid = true;

            switch (elm.type) {
                case 'text' : if (isEmpty(elm.value)) valid = false; break;
                case 'password' : if (isEmpty(elm.value)) valid = false; break;
                case 'select-one' : if (emptySelection(elm)) valid = false; break;
                case 'select-multiple' : if (emptySelection(elm)) valid = false; break;
                case 'radio' : if (isUnset(elm)) valid = false; break;
                case 'checkbox' : if (isUnchecked(elm)) valid = false; break;
            }
            if(!valid) invalid[invalid.length++] = elm.name;
        }
    }

    // added by ml@121marketing.at: show no alert if msg length = 0
     if (invalid.length>0) {
     if (errorMsg != "") alert(errorMsg);
       return false;
     }

     if (invalid.length>0) {
        alert(errorMsg);
        return false;
    }
//20110905 added by atgratho to avoid multiple submit of WBRecruitingForm
	if (f.sendButton)
	{
	//f.sendButton.disabled = true;
	}

    return true;
}
/**/
function emptySelection(elm) {
    var i = elm.selectedIndex;
    var check = true;
    if( i>-1 ) {
        var v = elm.options[i].value;
        if (v!='' && v!='-' && v!='none') check = false;
    }
    return check;
}
function isUnset(e) {
    for (var i=0; i<e.length; i++) if (e[i].checked) return true;
    return false;
}
function isUnchecked(e) { return (e.checked)? false:true; }
function isEmpty(v) { return (v!='')? false : true; }

function setButton(b, state) {
    b.disabled = state;
    if (b.disabled) addClass(b,'disabled'); else remClass(b,'disabled');
}

function slide(slider, step) {
    if (!document.getElementById) return;
    var list_items = getElem(slider).getElementsByTagName('ul')[0].getElementsByTagName('a');
    getElementsByClass('visual', 'div', slider)[0].style.backgroundPosition = -250*step + 'px 0px';
    map(list_items, function(item){ remClass(item,'hover') });
    if(step!=0) addClass(list_items[step-1], 'hover');
}

function callPixel(site, objName, objType, objID, stitle, langu, remoteAddr, remoteHost, f) {

/*
function callPixel() added by ml@121marketing.at 25-02-2006
neccessary for call of statistic pixel on onClick event
*/

	var site	= site;
	var realSite = site;
	var objName	= objName;
	var objType = objType;
	var objID	= objID;
	var stitle =	stitle;
	var langu	= langu;
	var remoteAddr = remoteAddr;
	var remoteHost = remoteHost;
	var wow	= "3.0";
	var sc	= objType;
	var allCookies = document.cookie;
	var prefix = "JSESSIONID=";
	var begin = allCookies.indexOf("; "+prefix);

	if (f.length >0)
	{
		var query = f.elements['query'].value;
	}
	else
	{
		var query = "";
	}

	if (site == "wb_at_dev")
	{
			realSite = "wb_at";
	}

	if (begin == -1)
	{
		begin = allCookies.indexOf(prefix);
	}
	else
	{
		begin +=2;
	}

	var end = document.cookie.indexOf(";", begin);

	if (end == -1)
	{
		end = allCookies.length;
	}

	var theRealJSessionID = allCookies.substring(begin + prefix.length, end);

	if (theRealJSessionID.indexOf(":") > 0)
	{
		theRealJSessionID = theRealJSessionID.substring(4, 27);
	}

	var refererHelp = document.referrer;
	var referer = "";

	if (refererHelp != "" && refererHelp != null && refererHelp.length > 1)
	{
		referer = refererHelp.replace(/&/g,"[amp]");
	}
	else
	{
		referer = refererHelp;
	}

	var color="n/a";
	var java="n/a";
	var size="n/a";
	var java=navigator.javaEnabled();
	var nav=navigator.appName;
	var agent=navigator.userAgent;

	if (navigator.appName == "Netscape" && (navigator.appVersion.charAt(0) == "2" || navigator.appVersion.charAt(0) == "3"))
	{
		var write=false;
	}
	else
	{
		var write=true;
	}

	if (realSite == "wb_at_stage")
	{
		write = false;
	}

	if (write==true)
	{
		size=screen.width + "x" + screen.height;

		if (nav != "Netscape")
		{
			color=screen.colorDepth;
		}
		else
		{
			color=screen.pixelDepth;
		}

		var puri="siteName="+site+"&objName="+objName+"&objType="+objType+"&objID="+objID;
		puri = puri + "&sessionID="+theRealJSessionID+"&stitle="+stitle+"&sc="+sc+"+&ssl="+realSite+"_home_"+langu;
		puri = puri + "&wow="+wow+"&lang="+langu+"&RefererENC="+referer+"&remoteAddr="+remoteAddr+"&remoteHost="+remoteHost;
		puri = puri + "&nav="+nav+"&agent="+agent+"&size="+size+"&color="+color+"&java="+java+"&js=true";

		if (query.length > 0)
		{
			puri = puri + "&query="+query;
		}

		var helppuri = "http://statistics.121marketing.at/esa/statistic?"+puri;
		//alert(helppuri);

	  var i2=new Image(1,1);
	  i2.src=helppuri;
	  i2.onload=function() { callESA(); }
	}
}

function callESA() {
	return;
}

