/*
 * Author: Martin Kappel
 * Company: Bioport.cz
 */
$(document).ready(function() {
    $(".external").attr("target", "_blank");

    $('#mainMenu > li').hover(function(e) {
        var el = $(this);
        el.addClass('ac');
        el.children('a').addClass('ac');
    }, function(e) {
        var el = $(this);
        el.removeClass('ac');
        el.children('a').removeClass('ac');
    })
    $('#prodTabsMenu > li').hover(function(e) {
        var el = $(this);
        el.addClass('ac');
        el.children('a').addClass('ac');
    }, function(e) {
        var el = $(this);
        el.removeClass('ac');
        el.children('a').removeClass('ac');
    })
    
    // zobrazeni vice textu
    $('div.divider').click(function () {
        var rel = $(this).attr('rel');
        var elm = $('#' + rel);
        if ($(elm).is(':visible')) $(elm).hide(); 
        else $(elm).show();
    });
    
    // validace formulare pro produkty
    $('form.poptForm').validate({
        errorClass: 'err',
        highlight: function(element, errorClass) {
            $(element).addClass('err');
            handleErrors();
        }
    });
    $('form.contactForm').validate({
        errorClass: 'err',
        highlight: function(element, errorClass) {
            $(element).addClass('err');
            handleErrors();
        }
    });
    $('form.poptForm').ajaxForm({
        success: function(result) {
            result = $.trim(result);
            if (result == 'OK') {
                alert('Dziękujemy za złozenie zapytania.');
                $('form.poptForm').clearForm();
                var elm = $('input[name=antispam]');
                elm.val('178');
            }
            else
                alert(result);
        },
        beforeSubmit: function() {
            if (!$('form.poptForm').valid()) { return false; }
        }
    });
    $('form.poptForm').ready(function () {
        $('input[name=ajaxed]').val('1');
        var elm = $('input[name=antispam]');
        elm.val('178');
        elm.parent().hide();
    });

    $('form.contactForm').ajaxForm({
        success: function(result) {
            result = $.trim(result);
            if (result == 'OK') {
                alert('Dziękujemy za złozenie zapytania.');
                $('form.contactForm').clearForm();
                var elm = $('input[name=antispam]');
                elm.val('178');
            }
            else
                alert(result);
        },
        beforeSubmit: function() {
            if (!$('form.contactForm').valid()) { return false; }
        }
    });
    $('form.contactForm').ready(function () {
        $('input[name=ajaxed]').val('1');
        var elm = $('input[name=antispam]');
        elm.val('178');
        elm.parent().hide();
    });
    $.preLoadImages('img/top-company-submenu-bg.png', 'img/top-product-submenu-bg.png', 'img/top-monitoring-submenu-bg.png');
    $('#tab-1-more').hide();
    footTabs();
    handleErrors();
    footMap();
});
function footMap(){
	// contFootBox
	var ctr = $('#footTabUl li.active a').attr('rel')
	$('.contFootBox').removeClass('cs').removeClass('pl').removeClass('sk').addClass(ctr)
}
function handleProductTabs() {    
    
	var elem = location.href.split('#');
	if (elem.length > 1) {
		$('.tab').hide()
		$('#prodTabsMenu > li').removeClass('active');;
		
		if( $('#prodTabsMenu a[href*='+elem[1]+']').is('#prodTabsMenu > li > a') ) {
			var activeTabButt = $('#prodTabsMenu a[href*='+elem[1]+']').eq(0);
		} else {
			var activeTabButt = $('#prodTabsMenu a[href*='+elem[1]+']').parent().parent().prev();
		}
		activeTabButt.parent().addClass('active');
		var activeTabId = $('#prodTabsMenu a[href*='+elem[1]+']').eq(0).parent().attr('rel')
		$("#"+activeTabId).show();
		
	} else {
		$('.tab').hide();
		var firstTab = $('#prodTabsMenu > li:first-child');
		firstTab.addClass('active');
		var activeTabId =firstTab.attr('rel');
		$("#"+activeTabId).show();
	}
	$('#prodTabsMenu > li > a').click(function(){
		var el = $(this);
		$('.tab').hide();
		$('#prodTabsMenu li').removeClass('active');
		var activeTabLi = el.parent();
		var activeTabId = activeTabLi.attr('rel');
		activeTabLi.addClass('active');
		$("#"+activeTabId).show();		
	});
	$('#prodTabsMenu > li  li a').click(function(){
		var el = $(this);
		$('.tab').hide();
		$('#prodTabsMenu li').removeClass('active');
		var activeTabLi = el.parent().parent().parent();
		var activeTabId = el.parent().attr('rel');
		activeTabLi.addClass('active');
		$("#"+activeTabId).show();	
		log('neco')	
	});
	$('.l2C ul').bgiframe();	
}
function handleHpTabs() {    
    var elem = location.href.split('#');
    if(elem.length>1) {
		$('.tab').hide();
		$('#hpHeaderTabsMenu li').removeClass('active');
		var activeTabButt = $('#hpHeaderTabsMenu a[href*='+elem[1]+']');
		activeTabButt.parent().addClass('active');
		var activeTabId = activeTabButt.parent().attr('rel');
		$("#"+activeTabId).show();		
	} else {
		$('.tab').hide();
		var firstTab = $('#hpHeaderTabsMenu li:first-child');
		firstTab.addClass('active');
		var activeTabId =firstTab.attr('rel');
		$("#"+activeTabId).show();
	}
	$('#hpHeaderTabsMenu a').click(function(){
		var el = $(this);
		$('.tab').hide();
		$('#hpHeaderTabsMenu li').removeClass('active');
		var activeTabLi = el.parent();
		var activeTabId = activeTabLi.attr('rel');
		activeTabLi.addClass('active');
		$("#"+activeTabId).show();		
	});
}
function footTabs() { 
	$('#footTabUl a').click(function(){
		var el = $(this)
		var target = el.attr('rel')
		$('.footTab').removeClass('active')
		$('#footTabUl li').removeClass('active')
		el.parent().addClass('active')
		$('#'+target).addClass('active')
		footMap()
		return false	
	});
}
function handleErrors(){
	$('input.err').each(function(){
		var el = $(this)
		var txt = el.attr('title')
		var tip = $('<span class="error"><span>'+txt+'</span></span>')
		el.after(tip)
		var w = el.width()
		var l = this.offsetLeft
		var tw = tip.width()
		var newPos = l+w-tw-5		
		tip.css('left',newPos)
		tip.click(function(){
			tip.fadeOut()
			el.removeClass('err')
		})
		el.keypress(function(){
			tip.fadeOut()
			el.removeClass('err')
		})
	})
}
function errPosition(el) {	
	var w = $(el).width()
	var l = el.offsetLeft
	var tw = $(el).next().width();
	$(el).next().css('left',l+w-tw-6)
	log(w)
}
/*
 * dblGal plugin created for Newton Media gallery
 */
jQuery.fn.dblGal = function() {
  	
	this.each(function(gi){
		
		var gal = $(this);	
		gal.attr('id','dblGalId-'+gi)			
		var numNodes;
		var rootPos = 73 // num of px - margin-left of first thumb
		gal.attr('id','dblGal-'+gi);
		
		// positioning of thumbnails on load
		gal.find('.thumbBox').each(function(index){		
			w=203+26;
			$(this).css('left',index*w).css('position','absolute');
			$(this).attr('id','dblGal-'+gi+'-'+index)
			numNodes = index+1;
		})
		
		// creates pager butts and functionality
		var pager = $('<div class="dblGalPager" id="dblGalPager-'+gi+'" />')
		for(c=0;c<numNodes;c++){
			var link = $('<a href="#" rel="dblGal-'+gi+'-'+c+'"></a>')			
			link.click(function(){return gotoImage(this,rootPos);})
			pager.append(link)			
		}
		gal.after(pager);
		$('#dblGalPager-'+gi+' a:first-child').addClass('active').next().addClass('active')
		
		//add next button on startup
		var samEl = gal.find('.thumbBox').eq(2)
		samEl.css('opacity','0.4')				
		var w = 203;
		var h = samEl.height();		
		var nextA = $('<a href="#" class="dblGalNext" style="position:absolute;width:203px;height:155px" />')					
		var nextPos = 2*203+2*26;
		nextA.css('left',nextPos+'px')
		nextA.click(function(){
			var tar = $('a[rel=dblGal-'+gi+'-2]').get(0)	
			gotoImage(tar,rootPos);
			return false;
		})
		samEl.after(nextA)
		
		// main handle function
		function gotoImage(el,rootPos){
			var a = $(el)
			var target = a.attr('rel')
			var jTarget = $('#'+target);
			var pos = jTarget.css('left')			
			var newPos = parseInt(rootPos) - parseInt(pos);
			var stream = jTarget.closest('.dblGalStream')
			jTarget.parent().find('.dblGalPrev, .dblGalNext').remove();
			jTarget.parent().parent().find('.thumbBox').css('opacity',1);
			
			// stream animation after click
			stream.animate(	
				{left: newPos},400,function(){
					
					var prevEl = jTarget.prev()
					var nextEl = jTarget.next().next()
					prevEl.animate({opacity:0.4},50)
					nextEl.animate({opacity:0.4},50)
					var w = parseInt(203)
					var prewL = parseInt(jTarget.css('left'))
					
					// create previous button
					var prevA = $('<a href="#" class="dblGalPrev" style="position:absolute;width:203px;height:155px" />')					
					var prevPos = prevEl.css('left')
					prevA.css('left',prevPos)
					prevA.click(function(){
						var tar = document.getElementById(target)
						tar = jTarget.parent().find('div').index(tar)
						tar = tar-2;
						if(tar<0)tar=0
						tar = $('a[rel=dblGal-'+gi+'-'+tar+']').get(0)						
						gotoImage(tar,rootPos); 
						return false;
					})
					prevEl.after(prevA)
					
					// create next button
					var nextA = $('<a href="#" class="dblGalNext" style="position:absolute;width:203px;height:155px" />')					
					var nextPos = nextEl.css('left');
					nextA.css('left',nextPos)
					nextA.click(function(){
						var tar = document.getElementById(target)
						tar = jTarget.parent().find('div').index(tar)
						tar = tar+2;
						tar = $('a[rel=dblGal-'+gi+'-'+tar+']').get(0)						
						gotoImage(tar,rootPos); 
						return false;
					})
					nextEl.after(nextA)					
					clearType();
			})
			
			// add classes to pager buttons
			a.parent().find('a').removeClass('active');
			a.addClass('active');
			a.next().addClass('active')			
			return false
		}
		
		// IE cleartype fix
		function clearType() {
			if ($.browser.msie) {
				gal.find('.thumbBox').each(function(){
					this.style.removeAttribute('filter');
				});
			}
		}
		
	});
	  
};
/*
 * ------------------------------------------------------------
 * ---------------------- obecne funkce -----------------------
 * ------------------------------------------------------------
 * 
 * General
 * skript na kontrolu platne emailove adresy
 */
	function validateEmail(src) {
	    var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
	    return pattern.test(src);
	}
/*
 * General
 * logovani na firebug konzoli
 */
	var console;
	function log(hlaska) { if(console) { console.log(hlaska); } }
	function warn(hlaska) { if(console) { console.warn(hlaska); } }
	function info(hlaska) { if(console) { console.info(hlaska); } }
	function error(hlaska) { if(console) { console.error(hlaska); } }
/*
 * Image preloading jQuery function
 */
(function($) {
  var cache = [];
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)



