/**
 * custom.js
 * General JavaScripts and custom webtrekk integration
 * 
 * @requires jQuery
 *
 */
 var $j = jQuery.noConflict();
function mCallback(twitters){
    var mClip = getFlash("flashcontent_dynamicmodule_195");
    mClip.sendTextToFlash(twitters[0].text);  
}           
            
function getTwitterXMl(){
    var path = "http://twitter.com/statuses/user_timeline/ecomplexx.json?callback=mCallback&count=1";
    $j.getScript(path, null);                
}
            
function getFlash(movieName){
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
} else {
        return document[movieName];
    }
}
/*TwitterScript "POST Tweet DATA" to FLash*/

function handleSlideBoxes()
{
      if(!$j.browser.msie)
      {
            jQuery.easing.def = "easeInOutSine";
      }
      
    $j(".dynamicbox_slide_down").hide(iValue);
     $j(".dynamicbox_content").mouseover(function(){
        $j(this).find(".dynamicbox_slide_down").fadeIn();
        $j(this).find(".dynamicbox_teaser").fadeOut();
    });
    
    $j(".dynamicbox_content").mouseleave(function(){
        $j(".dynamicbox_teaser").fadeIn();
        $j(".dynamicbox_slide_down").fadeOut();
    });
}
function showDiv(id) {
    $j('.teamdata_person').hide();
    if(document.getElementById('person_' + id).style.display == "none") 
    {
        document.getElementById('person_' + id).style.display = "block";
    }
    else if(document.getElementById('person_' + id).style.display == "block") {
        document.getElementById('person_' + id).style.display = "none";
    }
}
function typeface()
{
    if (!jQuery.browser.msie) { 
        $j("#second_navigation li a span").each(function(i){
            $j(this).clone().insertAfter($j(this));
            $j(this).addClass('whitejs');
            $j(this).removeClass('blackjs');
        });
        $j('.whitejs').hide();
        // add blackjs
        $j("#second_navigation li a").mouseover(function(){
            $j(this).find('.blackjs').hide();
            $j(this).find('.whitejs').show();
        });
        $j("#second_navigation li.active_navigation a").mouseover(function(){
            $j(this).find('.blackjs').show();
            $j(this).find('.whitejs').hide();
        });
        $j("#second_navigation li a").mouseout(function(){
            $j('.blackjs').show();
            $j('.whitejs').hide();
        });
    }
}
/**** neu ***/
var firstTime = true;
var replaceText = function(e, action){
e = e.childNodes[0]; 
if (jQuery.browser.msie) { //IE
    if (action == "hover") {
        e.hoverTimer = setTimeout(function(){
        for (var i = 0; i < e.childNodes.length; i++) {
            var vectorElement = e.childNodes[i];
            vectorElement.fillColor = '#FF6C00';//parentNode.currentStyle.color;
        }
        }, 5);
    }
    else 
    if (action == "out") {
        e.resetTimer = setTimeout(function(){
            for (var i = 0; i < e.childNodes.length; i++) {
                var vectorElement = e.childNodes[i];
                vectorElement.fillColor = '#5A5A5A';//parentNode.currentStyle.color;
            }
        }, 5);
    }              
}
};
function hover(event){
    if (firstTime) {
        var anchor = $j(this).children().eq(0);
        setTimeout(function(){
            replaceText($j(anchor)[0], "hover");
        }, 1);
        firstTime = false;
    }
}
function reset(event){
    var anchor = $j(this).children().eq(0);
    setTimeout(function(){
        replaceText($j(anchor)[0], "out");
    }, 1);
    firstTime = true;
}

//-----------------------------------------------------------------------------------
function reverseHash(hash) {
    var names = new Array();
    var values = new Array();
    $j.each(hash, function(name, value) {
        names.push(name);
        values.push(value);
    });
    names.reverse();
    values.reverse();
    var result = {};
    for (var i = 0; i < names.length; i++) {
        result[names[i]] = values[i];
    }
    return result;
}


//used by asp.net mvc
function showToolbarForm()
{
    $j('.toolbar_form').hide();
        
    $j('.show_toolbar_form').click(function(){
        $j('.toolbar_form').slideUp();  
        var panel = $j(this).next();    
        var status = panel.css("display");
        
        if ( status == 'none' )
        {
            $j(this).addClass('active');
            panel.slideDown();
            $j(this).parent('li').addClass('active');
            
        }
        else
        {
            $j(this).removeClass('active');
            panel.slideUp();
            $j(this).parent('li').removeClass('active');
        }    
        return false;
    });
}
//used by asp.net mvc
function registerAjaxForm(form_class, action) 
{
    if ($j('.' + form_class).length > 0) {
        $j('.' + form_class).submit(function() {
            var serializedForm = $j(this).serialize();
            $j.post(action,
               serializedForm,
               function(data) {
                   //show errors per ajax
                   $j('.form_error').remove();
                   $j('.active_error').removeClass('active_error');
                   $j.each(reverseHash(data.Errors), function(name, value) {
                       $j('#' + data.ID + '_form div.error_summary').append('\<span class=\"form_error\"\>' + value + '\<\/span\>');
                       name = name.replace('Format', '');                                              
                       $j("#" + data.ID + "_form  [name='" + name + "']").addClass('active_error');
                       //mark div around textarea
                       if (name === 'Message') {
                           $j("#" + data.ID + "_form > .mail_data_textarea").addClass('active_error');
                       }
                   });
                   //success message
                   if (data.SendSuccess) {
                       $j('#' + data.ID + '_form').after('\<div class=\"success_message\"\>' + data.SuccessMessage + '\<\/div\>');
                       $j('#' + data.ID + '_form').hide();
                   }
               },
               'json');
            return false;
        });
    }
}
//used by asp.net mvc
function registerDatepicker() 
{
    if ($j(".datepicker").length > 0)
    {
        $j(".datepicker").datepicker();
        $j(".datepicker").datepicker('option', { dateFormat: 'dd.mm.yy', minDate: '0' });
    }
}

function show_hide_search(div_name) {
    var status = $j(div_name).css("display");
        if ( status == 'none' ) 
        {
           $j(div_name).show();
           $j("#navigation_main li:last-child img").attr("src","/p/layout/lupe_aktiv.gif");
           $j("#navigation_main li:last-child").css('margin-left', '-1px');
           $j("#navigation_main li:last-child").css('padding-right', '1px');		  
        }
        else
        {
            $j(div_name).hide();
            $j("#navigation_main li:last-child img").attr("src","/p/layout/lupe.gif");
            $j("#navigation_main li:last-child").css('margin-left', '0px'); 
            $j("#navigation_main li:last-child").css('padding-right', '0px');
        }    
        return false;
}



$j(document).ready(function() {
    $j('#googlemap').show();
    $j(".landingpage_data_form select").selectbox();
    $j('#call_back_div').hide();
    $j('#call_back_div').css('left','626px');
    // ie6 needs other coordinates
    if($j.browser.msie && $j.browser.version=="6.0")
    {
    // $j('#call_back_div').css('left','2px');
       $j('#call_back_div').css('left','-313px');
    }

    // delete values of inputfields when clicking into it
    $jiValue="";
    $j('.landingpage_data_form input, .download_data_form input, .toolbar_form input, .toolbar_form textarea').focus(function(){
        if (!$j(this).hasClass("changed_by_user"))
        {
            $j(this).addClass("changed_by_user");
            $jiValue=$j(this).val();
            $j(this).val("");
        }
    }
    ).blur(function()
    {
        if ($j(this).val()=="")
        {
            $j(this).val($jiValue);
            $j(this).removeClass("changed_by_user");
        }
    });

    // typeface adjusting    
    typeface();
    $j(".typeface-js span canvas:contains('nach ')").livequery(function(){
      $j(this).css('margin-right', '20px');
    });
    $j(".typeface-js span shape:contains('nach ')").livequery(function(){
      $j(this).css('margin-right', '20px');
    });

    
    $j(".typeface-js span canvas:contains('enable ')").livequery(function(){
      $j(this).css('margin-right', '35px');
    });
    $j(".typeface-js span shape:contains('enable ')").livequery(function(){
      $j(this).css('margin-right', '35px');
    });
    




    $j('ul#second_navigation li a span ').css('font-weight', 'normal');
    $j(".secondnavigation_li:not(.active_navigation) a").hover(hover, reset);
    $j('.teamdata_person').hide();
    $j(".content_padding_text div:first-child").show();
    
    //$j(".content_padding_text div:first-child div h1").html('Das Team');
    // $j('ul#second_navigation li a ').css('letter-spacing', '-1px');
    //$j("#navigation_main li:last-child").addClass("last");

    
    //handleSlideBoxes()
    //asp.net stuff
    showToolbarForm();
    registerAjaxForm('mail_data_form', 'Page/SendMailAjax');
    registerAjaxForm('callback_data_form', 'Page/SendCallbackAjax');
    registerAjaxForm('landingpage_data_form', 'Page/SendLandingpageAjax');
    registerAjaxForm('download_data_form', 'Page/SendDownloadAjax');
    registerDatepicker();
    
    //searchbox
    if ( $j("#click_search").length > 0 ) { 
        $j("#search_box").hide();
    }
    $j('#click_search').click(function(){
        show_hide_search('#search_box');
		$j("#Searchbox1_txtSearch").focus(); 
        return false;
    });
    $j('#click_search').hover(    
            function(){
                if($j('#search_box').css("display") == "none") {
                    $j("#navigation_main li:last-child img").attr("src","/p/layout/lupe_hover.gif");
                }
            },
            function () {
                if($j('#search_box').css("display") == "none") {
                    $j("#navigation_main li:last-child img").attr("src","/p/layout/lupe.gif");  
                }     
            }    
    );

    //logoparade
    var counter=1;
    $j("#lp_logos li").each(function(){
      var temp = counter % 4;
      if (temp==0) $j(this).addClass('last');
      counter++;
    });
    
    //configurator
    $j('.checkbox').checkbox('jquery-checkbox');
    initConfigurator();
	
	//setup blog
	initBlog();
	
	//setup contact form
	initContactForm();
});


//CONFIGURATOR
var currentView = 1; //view counter for next button
function initConfigurator() {
    //check if configurator exists
    if ($j("#configurator").length > 0) {
        //remove button values
        $j('#configurator_footer_services input').attr('value', '');
        $j('#configurator_footer_contact input').attr('value', '');
        //show splash
        $j('#configurator_splash').show();
        $j('#configurator_form').hide();
        //hide title
        $j('#configurator_content h4').hide();
        $j('#configurator_content .rightbox h4').show();
        //register click events
        $j('#configurator_splash_head a').click(function() { switchView(1); });
        $j('#configurator_splash li.step_1').click(function() { switchView(1); });
        $j('#configurator_splash li.step_2').click(function() { switchView(2); });
        $j('#configurator_splash li.step_3').click(function() { switchView(3); });
        $j('li#menu_page_1').click(function() { switchView(1); });
        $j('li#menu_page_2').click(function() { switchView(2); });
        $j('li#menu_page_3').click(function() { switchView(3); });
        $j('li#menu_contact_1').click(function() { switchView(1); });
        $j('li#menu_contact_2').click(function() { switchView(2); });
        $j('li#menu_contact_3').click(function() { switchView(3); });
        $j('#configurator_footer_services input').click(function() { switchView(currentView + 1); });
        //switch to form if error occured
        var pathname = window.location.search;
        if (pathname.indexOf('errors') > -1) {
            switchView(4);
        }
    }
}

function initBlog(){
	$j('#categories_div').hide();
	$j('.hide_no_js').show();

}

function initContactForm()
{
	$j('.show_toolbar_form').show();	
	$j('.contactbox_direct_mail').hide();
}


function buildMenuContact() {
    //get set checkboxes on each page
    for (var i = 1; i <= 3; ++i) {
        $j('#menu_contact_' + i + '').empty();
        var hasElements = false;
        $j.each($j('#configurator_page_' + i + ' input'),
                        function(j, val) {
                            if (val.checked) {
                                if (hasElements == false) {
                                    $j('#menu_contact_' + i + '').append('<ul></ul>');
                                    hasElements = true;
                                }
                                $j('#menu_contact_' + i + ' ul').append('<li>' + val.value + '</li>');
                            }
                        }
                    );
    }
}
function switchView(view) {
    //switch between the 4 pages
    currentView = view;
    //hide all pages 
    $j('#configurator_splash').hide();
    $j('#configurator_page_1').hide();
    $j('#configurator_page_2').hide();
    $j('#configurator_page_3').hide();
    $j('#configurator_menu_contact').hide();
    $j('#configurator_page_form').hide();
    $j('#configurator_footer_contact').hide();
    //show form
    $j('#configurator_form').show();
    $j('#configurator_menu').show();
    $j('#configurator_footer_services').show();
    //reset menu
    $j('#menu_page_1').removeClass('page_1_active').addClass('page_1');
    $j('#menu_page_2').removeClass('page_2_active').addClass('page_2');
    $j('#menu_page_3').removeClass('page_3_active').addClass('page_3');
    switch (view) {
        case 1:
            $j('#configurator_page_1').show();
            $j('#menu_page_1').removeClass('page_1').addClass('page_1_active');
            break;
        case 2:
            $j('#configurator_page_2').show();
            $j('#menu_page_2').removeClass('page_2').addClass('page_2_active');
            break;
        case 3:
            $j('#configurator_page_3').show();
            $j('#menu_page_3').removeClass('page_3').addClass('page_3_active');
            break;
        case 4:
            $j('#configurator_menu').hide();
            $j('#configurator_page_form').show();
            $j('#configurator_footer_services').hide();
            $j('#configurator_footer_contact').show();
            $j('#configurator_menu_contact').show();
            buildMenuContact();
            break;
    }
}
