//interrupt bei mouseovermenü und händischem scrollen
var sliding = true;

var gCurrent = 0;

var sliderSpeed = 5000;
var animationSpeed = 1500;

//referenzen die im kontakt dann angefordert werden
var infos = new Array();

//bilder im slider
var slides = new Array();

var oldSliderImg;

$(document).ready(function(){

    $(".menuItem").click(function(){
        changeContent($(this).html());
    });
    
    $(".mouseOver").hover(function(){
        showSliderMenu();
		sliding = false;
    }, function(){
        hideSliderMenu();
		setTimeout(function(){
			sliding = true;	
		}, animationSpeed);
		
    });
	
	startSlider();
    
});

function init(){
    $("#headContent").load("content/head_startseite.html");
    $("#siteContent").load("content/site_startseite.html");
    
    $("#social").load("content/social.html");
    $("#footer").load("content/footer.html");
	
}

function changeMenu(site){
    resetMenu();
    $(".menuItem").each(function(){
        if ($(this).html() == site) {
            $(this).addClass("menuItemActive");
        }
    });
}

function changeContent(site){

    $("#headContent").empty();
    $("#siteContent").empty();
    changeMenu(site);
	
    sliding = true;
    gCurrent = 0;
    slides = [];
    sliderSpeed = 5000;
    
    switch (site) {
        case "Startseite":
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_startseite.html");
            break;
        case "Über Uns":
            $("#headContent").load("content/head_aboutus.html");
            $("#siteContent").load("content/site_aboutus.html");
            break;
        case "Produkte":
            //$("#headContent").load("content/head_products.html");
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_products.html", function(){
            	
            	$(".getInfoButton").click(function(){
        			
        			$(".productCheckbox").each(function(){
        				if($(this).is(":checked")){
        					infos.push( $(this).parent().parent().find("h2").html() );
        				}
        			});
        			changeContent("Kontakt");
        		});
        		
        		$(".productsInfoText").click(function(){
        			if( $(this).next().is(":checked") ){
        				$(this).next().attr('checked', false);
        			} else {
        				$(this).next().attr('checked', true);
        			}
        		});
        		
        		moveFooter();
            });
            break;
        case "Referenzen":
            //$("#headContent").load("content/head_references.html");
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_references.html");
            break;
        case "Partner":
            //$("#headContent").load("content/head_partner.html");
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_partner.html");
            break;
        case "Kontakt":
            //$("#headContent").load("content/head_contact.html");
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_contact.html");
            break;
        case "Impressum - ":
            //$("#headContent").load("content/head_contact.html");
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_imprint.html");
            break;
        case "Disclaimer":
            //$("#headContent").load("content/head_contact.html");
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_disclaimer.html");
            break;
        default:
            $("#headContent").load("content/head_startseite.html");
            $("#siteContent").load("content/site_startseite.html");
            break;
    }
	
}


function resetMenu(){
    $(".menuItem").each(function(){
        $(this).removeClass("menuItemActive");
    });
}

function showSliderMenu(){
    $(".overlays").each(function(){
        $(this).css("zIndex", "30");
        $(this).fadeIn();
    });
}

function hideSliderMenu(){
    $(".overlays").each(function(){
        $(this).fadeOut();
    });
}

function startSlider(){
	setTimeout(function(){
        if (sliding == true) {
            slideNext();
        }
		startSlider();
    }, sliderSpeed);
}



function unbindClicks(){
    $("#overlayLeft").unbind("click");
    $("#overlayRight").unbind("click");
    $(".sliderBullet").each(function(){
        $(this).unbind("click");
    });
}

function bindClicks(){
    $("#overlayLeft").click(function(){
        slideBack();
    });
    $("#overlayRight").click(function(){
        slideNext();
    });
    $(".sliderBullet").each(function(){
        $(this).click(function(){
            scrollToSlide($(this).attr("sliderid"));
        });
    });
}

function slideNext(){
    if (slides.length > 1) {
        unbindClicks();
        var nextSlide = gCurrent + 1;
        if (nextSlide >= slides.length) {
            nextSlide = 0;
        }
        changeIndicator(nextSlide);
        var current = slides[gCurrent];
        var next = slides[nextSlide];
        
        
        current.animate({
            left: "-940px"
        }, animationSpeed, function(){
            current.hide();
        });
        
        next.css("left", "940px");
        next.show();
        next.animate({
            left: "0px"
        }, animationSpeed, function(){
            next.show();
            bindClicks();
        });
        gCurrent = nextSlide;
    }
}

function slideBack(){
    if (slides.length > 1) {
        unbindClicks();
        var nextSlide = gCurrent - 1;
        if (nextSlide < 0) {
            nextSlide = slides.length - 1;
        }
        changeIndicator(nextSlide);
        var current = slides[gCurrent];
        var next = slides[nextSlide];
        
        current.animate({
            left: "940px"
        }, animationSpeed, function(){
            current.hide();
            current.css("display", "none");
        });
        
        next.css("left", "-940px");
        next.show();
        next.animate({
            left: "0px"
        }, animationSpeed, function(){
            next.show();
            bindClicks();
        });
        gCurrent = nextSlide;
    }
}

function changeIndicator(indi){
    $(".sliderBullet").each(function(){
        if ($(this).attr("sliderid") == indi) {
            $(this).addClass("sliderActive");
            $(this).removeClass("sliderInactive");
        }
        else {
            $(this).removeClass("sliderActive");
            $(this).addClass("sliderInactive");
        }
    });
}

function scrollToSlide(slideid){

    if (slideid > gCurrent) {
        unbindClicks();
        changeIndicator(slideid);
        
        slides[gCurrent].animate({
            left: "-940px"
        }, animationSpeed, function(){
            slides[gCurrent].hide();
        });
        
        slides[slideid].css("left", "940px");
        slides[slideid].show();
        slides[slideid].animate({
            left: "0px"
        }, animationSpeed, function(){
            slides[slideid].show();
            bindClicks();
        });
        gCurrent = parseInt(slideid);
        
    }
    else 
        if (slideid < gCurrent) {
            unbindClicks();
            changeIndicator(slideid);
            
            slides[gCurrent].animate({
                left: "940px"
            }, animationSpeed, function(){
                slides[gCurrent].hide();
                slides[gCurrent].css("display", "none");
            });
            
            slides[slideid].css("left", "-940px");
            slides[slideid].show();
            slides[slideid].animate({
                left: "0px"
            }, animationSpeed, function(){
                slides[slideid].show();
                bindClicks();
            });
            gCurrent = parseInt(slideid);
        }
}

function randOrd(){
    return (Math.round(Math.random()) - 0.5);
}

function moveFooter(){
	
	socialHeight = parseInt($("#social").css("height")) + parseInt($("#social").offset().top);
	conentHeight = parseInt($("#siteContent").css("height")) + parseInt($("#siteContent").offset().top);
	if(socialHeight > conentHeight){
		$("#alignToSiteBottom").css("position", "absolute" );
		$("#alignToSiteBottom").css("top", (socialHeight+100) );
	}else{
		$("#alignToSiteBottom").removeAttr("style")
	}
	
}




/**
 * TWITTER
 */

function twitterCallback2(twitters) {
  var statusHTML = [];
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id_str+'">'+relative_time(twitters[i].created_at)+'</a></li>');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
  moveFooter();
}

function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return 'less than a minute ago';
  } else if(delta < 120) {
    return 'about a minute ago';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (120*60)) {
    return 'about an hour ago';
  } else if(delta < (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
    return '1 day ago';
  } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}
