$(document).ready(function () {
	ticker_init();
	contact_init();
	mergecontacts_init();
	mainnav_init();
	startpage_init();
	countrymap();
	
	// Helper Function for logging in Browser Console
    function log(msg) {
        window.console && window.console.log(msg);
    }
});

function countrymap() {
	$('#countrymap img').attr('src', 'clear.gif').width(453).height(260);
	$('#countrymap area').hover(
		function () {
			$('#countrymap').attr('class', $(this).attr('id'));
		},
		function () {
			$('#countrymap').attr('class', '');
		}
	);
}


// make columns equal height
function startpage_init() {
	
	$('#col_1 .cewrap').each(function (i) {
		var leftHeight = $(this).height();
		var rightHeight = $('#col_2 .cewrap').eq(i).height();
		
		height = rightHeight;
		if(leftHeight > rightHeight) {
			height = leftHeight;	
		}
		
		$(this).css('height', height);
		$('#col_2 .cewrap').eq(i).css('height', height);
	});
}

function mergecontacts_init() {
	var found = new Array(10);
	$('#main_content div[id^=persona-division]').each(function (i) {
		var id = $(this).attr('id').split('persona-division')[1];
		if(typeof(found[id]) != 'undefined') {
			// add title
			var title = $(this).prev().html();
			found[id].prev().append(title);
			
			// hide person
			$(this).prev().hide();
			$(this).hide();
		} else {
			found[id] = $(this);
		}
	});
}

function mainnav_init() {
	$('#main_nav li a').each(function(i,el){
		$(el).css('font-weight', 'bold');
		var new_width = $(el).width();
		$(el).css('width', new_width+'px');
		$(el).css('font-weight', '');
	});
}


/* Contact */
function contact_init() {
	
	var languageNav = $('<ul class="language_nav"></ul>');
	$('#sidebar .persona').append(languageNav);

	var languageMapping = new Array();
	languageMapping['French Desks'] = 'fr';
	languageMapping['French Desk'] = 'fr';
	languageMapping['Desk français'] = 'fr';
	languageMapping['Austrian/German Desks'] = 'de';
	languageMapping['Austrian/German Desk'] = 'de';
	languageMapping['Desk autrichien/allemand'] = 'de';
	languageMapping['Italian Desks'] = 'it';
	languageMapping['Desk italien'] = 'it';
	languageMapping['Italian Desk'] = 'it';

	
	$('#sidebar .persona-item').each(function (index) {
	
		// hide all elements except first
		if(index != 0) $(this).hide();
		
		var language = $(this).prev().text();
		var active = (index == 0) ? ' class="first active"' : '';
		
		// create list item
		var languageNavItem = $('<li'+active+'></li>');
		languageNav.append(languageNavItem);
		
		// set css class of the link
		var languageNavItemLink = $('<a class="'+languageMapping[language]+'" href="#">'+language+'</a>');
		languageNavItem.append(languageNavItemLink);
		
		
		// switch contact onclick
		languageNavItemLink.click(function (event) {
			event.preventDefault();
			var clickedLanguage = languageMapping[language];
			$('#sidebar .persona-item').each(function (index) {
				// show contact
				var itemLanguage = languageMapping[$(this).prev().text()];
				if(itemLanguage != clickedLanguage) {
					$(this).hide();
				} else {
					$(this).show();
				}
			});
			
			// set active state in language nav
			$('#sidebar .language_nav li').removeClass('active');
			languageNavItemLink.parent().addClass('active');
		});
	});
}

/* Ticker */
var offset = 1;
var speed = 40;
var start_pos = 1050;
var setIntervalId;
var tickers = 8;
function ticker_init() {
	var elem = $('#tickers');
	if($('#tickers').length !== 0) {
		//setTimeout
		//setIntervalId = setInterval('ticker_start()', speed);
		elem.bind('mouseover', stop_move);
		elem.bind('mouseout', start_move);
		ticker_start()
	}
}
function ticker_start() {
	for(var i = 1; i <= tickers; i++)
		ticker_move('ticker_' + i, start_pos)
	setTimeout('ticker_start()', speed);
}
function stop_move() {
	offset = 0
}
function start_move() {
	offset = 1
}
function ticker_move(id, start_pos) {
	var elem = document.getElementById(id);
	var cur_pos = elem.style.left.substring(0, elem.style.left.length - 2);
	if(cur_pos <= (elem.style.width.substring(0, elem.style.width.length - 2) * -1))
		elem.style.left = start_pos + "px"
	else
		elem.style.left = (cur_pos-offset) + "px"
}

/* other functions */
function laenderwahl(element)
{
 if(element.value)
  document.location.href = element.value;
}

function plop()
{
 window.print();
}

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

