//--[ initialize ]--------------------------------------------------------------

initialize = function() { 
    showroom();
    menuanim();
    portfolio();
    references();
    details();
    particle();
    subscription();
    jQuery('#topContact').click(function() {topContact(); return false;});
    jQuery('#menu-item-19 a').click(function() {topContact(); return false;});
    jQuery('#bottomContact').click(function() {bottomContact(); return false;});
    jQuery('#menu-item-18 a').click(function() {bottomContact(); return false;});

    jQuery('.fancyIframe').each(function(){
        var dWidth 	= parseInt(jQuery(this).attr('href').match(/width=[0-9]+/i)[0].replace('width=',''));
        var dHeight 	=  parseInt(jQuery(this).attr('href').match(/height=[0-9]+/i)[0].replace('height=',''));
		jQuery(this).fancybox({
				'width':dWidth,
				'height':dHeight,
				'autoScale'     	: false,
				'type'              : 'iframe'
        });
    });
}


//--[ newsletter subscriptions presetting ]-------------------------------------

SC_pre_opt_name = 'Name';
SC_pre_opt_email = 'Email-Adresse';

function subscription() {
    jQuery('#alo_easymail_widget_form #opt_name').val(SC_pre_opt_name);
    jQuery('#alo_easymail_widget_form #opt_email').val(SC_pre_opt_email);
    jQuery('#alo_easymail_widget_form #opt_name').click(function() {if( jQuery(this).val() == SC_pre_opt_name ) {jQuery(this).val(''); return false;}});
    jQuery('#alo_easymail_widget_form #opt_name').blur(function() {if( jQuery(this).val() == '' ) {jQuery(this).val(SC_pre_opt_name); return false;}});
    jQuery('#alo_easymail_widget_form #opt_email').click(function() {if( jQuery(this).val() == SC_pre_opt_email ) {jQuery(this).val(''); return false;}});
    jQuery('#alo_easymail_widget_form #opt_email').blur(function() {if( jQuery(this).val() == '' ) {jQuery(this).val(SC_pre_opt_email); return false;}});    
}


//--[ our team ]----------------------------------------------------------------

PS_offsetX = 150;
PS_offsetY = 430;
PC_axis = new Array(0,0,0);
PS_focalLength = 200;

PS_member_1 = new Image();
PS_member_1_a = new Image();
PS_member_1_b =  new Image();
PS_member_2 = new Image();
PS_member_2_a = new Image();
PS_member_2_b =  new Image();
PS_member_3 = new Image();
PS_member_3_a = new Image();
PS_member_3_b =  new Image();

//PC_addCircl2D(new Array(x,y,depth,scaleFactor,radius,alpha));
PC_addCircl2D = function(obj, arr) {obj.push(arr);}
PC_obj2D_1 = new Array();
PC_obj2D_2 = new Array();
PC_obj2D_3 = new Array();


//PC_addCircl2D(new Array(x,y,z,radius,alpha));
PC_addCircle3D = function(obj, arr) {obj.push(arr);}
PC_obj3D_1 = new Array();
PC_addCircle3D(PC_obj3D_1, new Array(0,0,0,23,0.6));
PC_addCircle3D(PC_obj3D_1, new Array(-30,-50,-50,23,0.7));
PC_addCircle3D(PC_obj3D_1, new Array(50,-40,-30,23,0.5));
PC_addCircle3D(PC_obj3D_1, new Array(50,-30,50,23,0.6));
PC_addCircle3D(PC_obj3D_1, new Array(-40,-40,30,23,0.7));
PC_addCircle3D(PC_obj3D_1, new Array(-40,40,-50,23,0.5));
PC_addCircle3D(PC_obj3D_1, new Array(40,30,-50,23,0.6));
PC_addCircle3D(PC_obj3D_1, new Array(50,50,50,13,0.7));
PC_addCircle3D(PC_obj3D_1, new Array(-50,30,50,13,0.5));
PC_addCircle3D(PC_obj3D_1, new Array(-20,50,50,20,0.4));
PC_addCircle3D(PC_obj3D_1, new Array(30,30,20,20,0.3));
PC_obj3D_2 = new Array();
PC_addCircle3D(PC_obj3D_2, new Array(0,0,0,23,0.6));
PC_addCircle3D(PC_obj3D_2, new Array(30,-50,-50,23,0.7));
PC_addCircle3D(PC_obj3D_2, new Array(-50,-40,-50,23,0.5));
PC_addCircle3D(PC_obj3D_2, new Array(-50,-50,30,23,0.6));
PC_addCircle3D(PC_obj3D_2, new Array(40,-40,30,23,0.7));
PC_addCircle3D(PC_obj3D_2, new Array(40,40,-50,23,0.5));
PC_addCircle3D(PC_obj3D_2, new Array(-40,30,-50,23,0.6));
PC_addCircle3D(PC_obj3D_2, new Array(-50,50,50,13,0.7));
PC_addCircle3D(PC_obj3D_2, new Array(30,30,50,13,0.5));
PC_addCircle3D(PC_obj3D_2, new Array(-20,20,-40,20,0.4));
PC_addCircle3D(PC_obj3D_2, new Array(-30,-30,-40,20,0.3));
PC_obj3D_3 = new Array();
PC_addCircle3D(PC_obj3D_3, new Array(0,0,0,23,0.6));
PC_addCircle3D(PC_obj3D_3, new Array(-30,-50,50,23,0.7));
PC_addCircle3D(PC_obj3D_3, new Array(50,-40,50,23,0.5));
PC_addCircle3D(PC_obj3D_3, new Array(40,-50,-50,23,0.6));
PC_addCircle3D(PC_obj3D_3, new Array(-40,-40,-30,23,0.7));
PC_addCircle3D(PC_obj3D_3, new Array(-50,40,50,23,0.5));
PC_addCircle3D(PC_obj3D_3, new Array(40,30,50,23,0.6));
PC_addCircle3D(PC_obj3D_3, new Array(50,50,-40,13,0.7));
PC_addCircle3D(PC_obj3D_3, new Array(-50,30,-40,13,0.5));
PC_addCircle3D(PC_obj3D_3, new Array(-20,50,-20,20,0.3));
PC_addCircle3D(PC_obj3D_3, new Array(30,-30,20,20,0.4));


particle = function() {
    if(jQuery('#people1 img').exists()) {
        PS_member_1.src = jQuery('#people1 img').attr('src');
        PS_member_1 = PS_member_1;    
    }
    if(jQuery('#people2 img').exists()) {
        PS_member_2.src = jQuery('#people2 img').attr('src');
        PS_member_2 = PS_member_2;
    }
    if(jQuery('#people3 img').exists()) {
        PS_member_3.src = jQuery('#people3 img').attr('src');
        PS_member_3 = PS_member_3;
    }
    PC_ani1 = setInterval("PC_animate1()", 100);
}

PC_animate1 = function() {
    PS_animationLoop('people1',PC_obj2D_1, PC_obj3D_1, PS_member_1);
    PS_animationLoop('people2',PC_obj2D_2, PC_obj3D_2, PS_member_2);
    PS_animationLoop('people3',PC_obj2D_3, PC_obj3D_3, PS_member_3);
}

function PS_animationLoop(context, PC_obj2D, PC_obj3D, PS_member) {
    if(ctx = getContext(context)) {
        ctx.clearRect(0,0,300,560);
        PC_axis[0] += 0.01;
        PC_axis[1] -= 0.01;
        PC_obj2D = new Array();
        PC_obj2Ds  = new Array();
        
        for(j=0; j< PC_obj3D.length; j++) {
            PC_addCircl2D(PC_obj2D, transform3DPointsTo2DPoints(PC_obj3D[j],PC_axis));
        }
        PC_obj2Ds = PC_obj2D.sort(mySort);
        for(j=0; j< PC_obj2Ds.length; j++) {
            if(PC_obj2Ds[j][2] == 0) {
                 ctx.globalAlpha = 1;
                 ctx.drawImage(PS_member,PC_obj2Ds[j][0]-109,PC_obj2Ds[j][1]-430);
            }else {
                ctx.globalAlpha = PC_obj2Ds[j][5];
                Circle(ctx,'#009ee0',PC_obj2Ds[j][0],PC_obj2Ds[j][1],PC_obj2Ds[j][4]*PC_obj2Ds[j][3]);
            }
        }
    }
}



//--[ more details ]------------------------------------------------------------

details = function() { 
    jQuery('.getMore a.more').each(function(index) {
        jQuery(this).click(
          function () {
            if(jQuery(this).next().css('display') == 'none') {jQuery(this).next().slideDown(300);} 
            else {jQuery(this).next().slideUp(300)} 
            return false;
          }
        );
    });
}


//--[ references ]--------------------------------------------------------------

references = function() { 
    jQuery('.references a').each(function(index) {
        jQuery(this).hover(
          function () {
            jQuery(this).animate({paddingTop: '0px', paddingBottom: '12px'},300);
            jQuery(this).find('span.more').animate({marginTop: '-104px'},300);
          },
          function () {
            jQuery(this).animate({paddingTop: '12px', paddingBottom: '0px'},300);
            jQuery(this).find('span.more').animate({marginTop: '0px'},300);
          }
        );
    });
}


//--[ products and services ]---------------------------------------------------

var PS_section = 0;
var PS_onAni = false;
var PS_ani1;
var PS_finished = 0;
var PS_isActive = new Array();

PS_obj = new Array();
PS_addCircle = function(arr) {PS_obj.push(arr);}
//PS_addCircle(new Array(x,y,radius,alpha,saturaton,section(s),secial));
PS_addCircle(new Array(94,26,23,0.4,0,[1],0));
PS_addCircle(new Array(191,47,41,0.4,0,[2],0));
PS_addCircle(new Array(136,60,38,0.4,0,[1,2],0));
PS_addCircle(new Array(284,112,25,0.4,0,[2],0));
PS_addCircle(new Array(290,74,29,0.4,0,[2,3],0));
PS_addCircle(new Array(451,131,12,0.4,0,[3,4],0));
PS_addCircle(new Array(451,52,38,0.4,0,[3,4],0));
PS_addCircle(new Array(588,61,40,0.4,0,[4,5],0));
PS_addCircle(new Array(603,36,24,0.7,0,[4,5],0));
PS_addCircle(new Array(647,28,17,0.4,0,[5],0));
PS_addCircle(new Array(760,57,21,0.5,0,[6],0));
PS_addCircle(new Array(757,104,37,0.4,0,[5,6],0));
PS_addCircle(new Array(787,24,12,0.4,0,[6],0));
PS_addCircle(new Array(866,42,18,0.4,0,[6],0));
PS_addCircle(new Array(870,76,29,0.4,0,[6],0));
// White Backgrounds
PS_addCircle(new Array(79,93,61,1,0,[-1],1));
PS_addCircle(new Array(225,77,66,1,0,[-1],1));
PS_addCircle(new Array(379,87,72,1,0,[-1],1));
PS_addCircle(new Array(526,91,62,1,0,[-1],1));
PS_addCircle(new Array(676,92,69,1,0,[-1],1));
PS_addCircle(new Array(825,91,61,1,0,[-1],1));
// Big Bubbles
PS_addCircle(new Array(79,93,55,0.8,0,[1],0)); 
PS_addCircle(new Array(225,77,60,0.8,0,[2],0));
PS_addCircle(new Array(378,87,66,0.8,0,[3],0));
PS_addCircle(new Array(526,91,56,0.8,0,[4],0));
PS_addCircle(new Array(676,92,63,0.8,0,[5],0));
PS_addCircle(new Array(825,91,55,0.8,0,[6],0));
// Bubbles on Front
PS_addCircle(new Array(65,33,16,0.7,0,[1],0)); 
PS_addCircle(new Array(194,121,20,0.7,0,[2],0));
PS_addCircle(new Array(385,30,30,0.7,0,[3],0)); 
PS_addCircle(new Array(630,120,28,0.7,0,[5],0)); 
// Numbers
PS_addCircle(new Array(126,57,17,1,0,[-1],1));
PS_addCircle(new Array(275,111,17,1,0,[-1],1));
PS_addCircle(new Array(432,50,17,1,0,[-1],1));
PS_addCircle(new Array(577,57,17,1,0,[-1],1));
PS_addCircle(new Array(739,108,17,1,0,[-1],1));
PS_addCircle(new Array(865,53,17,1,0,[-1],1));

portfolio = function() {
    jQuery('.services a').each(function(index) {
      theID = jQuery(this).attr('id').substr(2,3);
      if(jQuery(this).attr('class') == 'active' && !(in_array(theID,PS_isActive))) {
        PS_isActive.push(theID);
      }
    });
    PS_ani1 = setInterval("PS_animate1()", 50);
    jQuery('.services a').hover(
      function () {
        PS_section = jQuery(this).attr('id').substr(2, 3);
        if(PS_onAni == false) {
          clearInterval(PS_ani1);
          PS_ani1 = setInterval("PS_animate1()", 50);
        }
      },
      function () {
        PS_section = 0;
        if(PS_onAni == false) {
          clearInterval(PS_ani1);
          PS_ani1 = setInterval("PS_animate1()", 50);
        }
      }
    );    
}

PS_animate1 = function() { 
    PS_onAni = true;
    if(ctx = getContext('cv3')) {
        ctx.clearRect(0,0,902,181); 
        for(j=0; j< PS_obj.length; j++) {
          if(PS_obj[j][6] == 1) {
              ctx.globalAlpha = PS_obj[j][3];
              Circle(ctx,'#ffffff',PS_obj[j][0],PS_obj[j][1],PS_obj[j][2]);
              PS_finished++; 
          } else {
              if(PS_section == 0) {
                active = false;
                for(k=0; k < PS_obj[j][5].length; k++) {
                  if(in_array(PS_obj[j][5][k],PS_isActive)) {active = true;}
                }
                if(active == true) {
                  if(PS_obj[j][4] < 100) {PS_obj[j][4] = PS_obj[j][4] + 10;}
                  else {PS_finished++;}              
                } else {
                  if(PS_obj[j][4] > 0) {PS_obj[j][4] = PS_obj[j][4] - 10;}
                  else {PS_finished++;}              
                }
              } else {
                if(in_array(PS_section,PS_obj[j][5])) {
                  if(PS_obj[j][4] < 100) {PS_obj[j][4] = PS_obj[j][4] + 10;} 
                  else {PS_finished++;}
                } else {
                  if(PS_obj[j][4] > 0) {PS_obj[j][4] = PS_obj[j][4] - 10;}
                  else {PS_finished++;}
                }            
              }
              ctx.globalAlpha = PS_obj[j][3];
              s = PS_obj[j][4];
              b = Math.round(PS_obj[j][4] * 0.38 + 50);
              rgb = hsvToRgb(198,s,b);
              hex = '#'+rgbToHex(rgb[0],rgb[1],rgb[2]);
              Circle(ctx,hex,PS_obj[j][0],PS_obj[j][1],PS_obj[j][2]); 
          }
        }
        if(PS_finished == PS_obj.length) {
          clearInterval(PS_ani1);
          PS_onAni = false;
        }
        PS_finished = 0;
    }
}


//--[ showroom ]----------------------------------------------------------------

var SR_c = 0;
var SR_offsetX = 30;
var SR_offsetY = 30;

SR_obj = new Array();
SR_addCircle = function(arr) {SR_obj.push(arr);}
// SR_addCircle(new Array(x,y,radius,alpha));
SR_addCircle(new Array(35,315,31,0.8));
SR_addCircle(new Array(52,374,23,0.6));
SR_addCircle(new Array(86,306,45,0.4));
SR_addCircle(new Array(112,351,28,0.5));
SR_addCircle(new Array(147,308,35,0.6));
SR_addCircle(new Array(148,356,45,0.4));
SR_addCircle(new Array(155,366,27,0.7));

SR_addCircle(new Array(209,352,35,0.6));
SR_addCircle(new Array(223,310,40,0.8));
SR_addCircle(new Array(240,275,21,0.3));
SR_addCircle(new Array(255,305,43,0.7));
SR_addCircle(new Array(285,245,36,0.6));
SR_addCircle(new Array(345,210,50,0.4));
SR_addCircle(new Array(315,285,27,0.9));
SR_addCircle(new Array(350,170,38,0.5));
SR_addCircle(new Array(380,185,43,0.4));
SR_addCircle(new Array(400,130,20,0.7));

SR_addCircle(new Array(421,45,27,0.6));
SR_addCircle(new Array(480,73,35,0.8));
SR_addCircle(new Array(512,63,48,0.5));
SR_addCircle(new Array(544,70,38,0.6));
SR_addCircle(new Array(606,65,27,0.7));
SR_addCircle(new Array(659,55,42,0.6));
SR_addCircle(new Array(727,56,28,0.3));
SR_addCircle(new Array(753,100,40,0.7));
SR_addCircle(new Array(763,75,35,0.8));
SR_addCircle(new Array(783,101,49,0.6));
SR_addCircle(new Array(817,137,53,0.6));
SR_addCircle(new Array(844,66,33,0.7));
SR_addCircle(new Array(882,90,18,0.4));

 
showroom = function() {
    SR_ani1 = setInterval("SR_animate1()", 30);
}

SR_animate1 = function() { 
    if(ctx = getContext('cv1')) {
        if(SR_c < SR_obj.length) {
            ctx.globalAlpha = SR_obj[SR_c][3];
            Circle(ctx,'#009ee0',SR_obj[SR_c][0]+SR_offsetX,SR_obj[SR_c][1]+SR_offsetY,SR_obj[SR_c][2]);
            SR_c++;
        } else {
            clearInterval(SR_ani1);
            jQuery('#screen').show();
            jQuery('#jcarousel').jcarousel({
                auto: 7,
                wrap: 'last',
                scroll: 1,
                initCallback: SR_initCallback,
                itemVisibleInCallback: {
                    onBeforeAnimation: carousel_itemVisibleInCallbackBeforeAnimation,
                    onAfterAnimation:  carousel_itemVisibleInCallbackAfterAnimation
                },
                itemVisibleOutCallback: {
                    onBeforeAnimation: carousel_itemVisibleOutCallbackBeforeAnimation,
                    onAfterAnimation:  carousel_itemVisibleOutCallbackAfterAnimation
                }
            });
            jQuery('#jcarousel').hide();
            jQuery('#jcarousel').fadeIn(2000);
            jQuery('#conmenu').show();
        }
    }
}

function SR_initCallback(carousel) {
    carousel.buttonNext.bind('click', function() {
        carousel.startAuto(0);
    });
    carousel.buttonPrev.bind('click', function() {
        carousel.startAuto(0);
    });
    carousel.clip.hover(function() {
        carousel.stopAuto();
        jQuery('#jcarousel li a span.wrp').animate({marginTop: '-84px'},300);
    }, function() {
        carousel.startAuto();
        jQuery('#jcarousel li a span.wrp').animate({marginTop: '0px'},300);
    });
    jQuery('#jcarousel-control a').bind('click', function() {
        carousel.stopAuto();
        carousel.scroll(jQuery.jcarousel.intval(jQuery(this).text()));
        return false;
    });
};

function carousel_itemVisibleInCallbackBeforeAnimation(carousel, item, idx, state) {
    if(state == 'init') {return;}
    jQuery('div', item).fadeIn('slow');
};

function carousel_itemVisibleInCallbackAfterAnimation(carousel, item, idx, state) {
    jQuery('#jcarousel-control a:nth-child('+idx+')').addClass('active');
    jQuery(item).find('.more').animate({marginTop: '-55px'},500);
};

function carousel_itemVisibleOutCallbackBeforeAnimation(carousel, item, idx, state) {
    jQuery('div', item).fadeOut('slow');
    jQuery(item).find('.more').css('marginTop','0');

//animate({marginTop: '0'},500);
};

function carousel_itemVisibleOutCallbackAfterAnimation(carousel, item, idx, state) {
    jQuery('#jcarousel-control a:nth-child('+idx+')').removeClass('active');
};


//--[ menuanimation ]-----------------------------------------------------------

var MA_act_x;
var MA_act_y = -25;
var MA_act_w;
var MA_new_x;
var MA_new_y;
var MA_new_w;
var MA_first_x;
var MA_first_w;
var MA_onAni = false;
var MA_ani1;

function menuanim() {
  jQuery('#topmenu a').each(function(index) {
    if( (jQuery(this).attr('class') == 'active') || 
        (jQuery(this).parent().attr('class').match(/current-menu-item.*/)) || 
        (jQuery(this).parent().attr('class').match(/current-menu-parent.*/)) || 
        (jQuery(this).parent().attr('class').match(/current-post-ancestor.*/))) {
      MA_act_x = getItemleftPos(this);
      MA_act_w = getItemWidth(this);
      MA_new_x = getItemleftPos(this);
      MA_new_y = -15;
      MA_new_w = getItemWidth(this);
      MA_first_x = getItemleftPos(this);
      MA_first_w = getItemWidth(this);  
      MA_ani1 = setInterval("MA_animate1()", 50);
      return false;
    }
  });
  jQuery('#topmenu a').hover(
    function () {
      if(MA_act_y == -25) {
        MA_act_x = getItemleftPos(this);
        MA_act_w = getItemWidth(this);      
      }
      MA_new_x = getItemleftPos(this);
      MA_new_y = -15;
      MA_new_w = getItemWidth(this);      
      if(MA_onAni == false) {
        clearInterval(MA_ani1);
        MA_ani1 = setInterval("MA_animate1()", 50); 
      }
    },
    function () {
      if(MA_first_x != null) {
        MA_new_x = MA_first_x;
        MA_new_w = MA_first_w;  
      } else {
        MA_new_x = getItemleftPos(this);
        MA_new_y = -25;
        MA_new_w = getItemWidth(this);   
      }
      if(MA_onAni == false) {
        clearInterval(MA_ani1);
        MA_ani1 = setInterval("MA_animate1()", 50);
      }
    }
  );
}

function MA_animate1() {
  MA_onAni = false;
  if(MA_act_x != MA_new_x) {
    MA_onAni = true; 
    if(MA_act_x < MA_new_x) {
      xFactor = Math.round((MA_new_x - MA_act_x)/5);
      if(xFactor <= 0) {xFactor=1;}
      MA_act_x = MA_act_x + xFactor;
    } else {
      xFactor = Math.round((MA_act_x - MA_new_x)/5);
      if(xFactor <= 0) {xFactor=1;}
      MA_act_x = MA_act_x - xFactor;             
    }
  }
  if(MA_act_y != MA_new_y) {
    MA_onAni = true; 
    if(MA_act_y > MA_new_y) {MA_act_y--;}
    else {MA_act_y++;}
  }
  if(MA_act_w != MA_new_w) {
    MA_onAni = true; 
    if(MA_act_w < MA_new_w) {
      wFactor = Math.round((MA_new_w - MA_act_w)/5);
      if(wFactor <= 0) {wFactor=1;}
      MA_act_w = MA_act_w + wFactor;
    } else {
      wFactor = Math.round((MA_act_w - MA_new_w)/5);
      if(wFactor <= 0) {wFactor=1;}
      MA_act_w = MA_act_w - wFactor;             
    }
  }
  x = MA_act_x + 10;
  y = MA_act_y;
  w = MA_act_w;
  if(MA_onAni == true) {
    if(ctx = getContext('cv2')) {
      ctx.clearRect(0,0,500,73); 
      ctx.fillStyle = '#00a8e7';
      Rectangle(ctx,x,y,w,20,5);
    }
  } else {
    clearInterval(MA_ani1);
  }
}

function getItemleftPos(item) {
    posA = jQuery(item).position();
    posUL = jQuery('#topmenu ul').position();
    return posUL.left + posA.left;
}

function getItemWidth(item) {
    return jQuery(item).width();
}


//--[ contact information ]-----------------------------------------------------

function topContact() {
    if (jQuery("#world").css("marginTop") == "-86px") {
        jQuery("#world").animate({marginTop: "0px"}, 500);
    } else if(jQuery("#world").css("marginTop") == "0px") {
    	jQuery("#world").animate({marginTop: "-86px"}, 500);	
    }
}

function bottomContact() {
    if (jQuery('#footer .contact').css('display') == 'none') {
        jQuery('#footer .contact').slideDown(500);
    } else if((jQuery('#footer .contact').css('display') == 'block')) {
        jQuery('#footer .contact').slideUp(500);	
    }
}
