/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

/* scrollTo jQuery extention */
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3.R=6(e){7 l=0;7 t=0;7 w=3.a(3.X(e,\'1e\'));7 h=3.a(3.X(e,\'1f\'));7 m=e.L;7 B=e.F;1a(e.S){l+=e.T+(e.8?3.a(e.8.W):0);t+=e.V+(e.8?3.a(e.8.10):0);e=e.S}l+=e.T+(e.8?3.a(e.8.W):0);t+=e.V+(e.8?3.a(e.8.10):0);c{x:l,y:t,w:w,h:h,m:m,B:B}};3.1d=6(e){b(e){w=e.k;h=e.C}f{w=(d.Y)?d.Y:(1.4&&1.4.k)?1.4.k:1.9.L;h=(d.H)?d.H:(1.4&&1.4.C)?1.4.C:1.9.F}c{w:w,h:h}};3.U=6(e){b(e){t=e.i;l=e.A;w=e.r;h=e.D}f{b(1.4&&1.4.i){t=1.4.i;l=1.4.A;w=1.4.r;h=1.4.D}f b(1.9){t=1.9.i;l=1.9.A;w=1.9.r;h=1.9.D}}c{t:t,l:l,w:w,h:h}};3.a=6(v){v=12(v);c 14(v)?0:v};3.16.E=6(s){o=3.17(s);c u.18(6(){n 3.P.E(u,o)})};3.P.E=6(e,o){7 z=u;z.o=o;z.e=e;z.p=3.R(e);z.s=3.U();z.J=6(){1b(z.j);z.j=1c};z.t=(n N).Z();z.M=6(){7 t=(n N).Z();7 p=(t-z.t)/z.o.I;b(t>=z.o.I+z.t){z.J();11(6(){z.q(z.p.y,z.p.x)},13)}f{G=((-g.O(p*g.Q)/2)+0.5)*(z.p.y-z.s.t)+z.s.t;K=((-g.O(p*g.Q)/2)+0.5)*(z.p.x-z.s.l)+z.s.l;z.q(G,K)}};z.q=6(t,l){d.19(l,t)};z.j=15(6(){z.M()},13)};',62,78,'|document||jQuery|documentElement||function|var|currentStyle|body|intval|if|return|window||else|Math||scrollTop|timer|clientWidth||wb|new|||scroll|scrollWidth|||this||||||scrollLeft|hb|clientHeight|scrollHeight|ScrollTo|offsetHeight|st|innerHeight|duration|clear|sl|offsetWidth|step|Date|cos|fx|PI|getPos|offsetParent|offsetLeft|getScroll|offsetTop|borderLeftWidth|css|innerWidth|getTime|borderTopWidth|setTimeout|parseInt||isNaN|setInterval|fn|speed|each|scrollTo|while|clearInterval|null|getClient|width|height'.split('|'),0,{}))

/* jQuery images preload */
/* http://www.filamentgroup.com/lab/update_automatically_preload_images_from_css_with_jquery/ */
;jQuery.preloadCssImages=function(q){q=jQuery.extend({statusTextEl:null,statusBarEl:null,errorDelay:999,simultaneousCacheLoading:2},q);var r=[],loaded=0,imgUrls=[],thisSheetRules,errorTimer;function onImgComplete(){clearTimeout(errorTimer);if(imgUrls&&imgUrls.length&&imgUrls[loaded]){loaded++;if(q.statusTextEl){var a=(imgUrls[loaded])?'Now Loading: <span>'+imgUrls[loaded].split('/')[imgUrls[loaded].split('/').length-1]:'Loading complete';jQuery(q.statusTextEl).html('<span class="numLoaded">'+loaded+'</span> of <span class="numTotal">'+imgUrls.length+'</span> loaded (<span class="percentLoaded">'+(loaded/imgUrls.length*100).toFixed(0)+'%</span>) <span class="currentImg">'+a+'</span></span>')}if(q.statusBarEl){var b=jQuery(q.statusBarEl).width();jQuery(q.statusBarEl).css('background-position',-(b-(b*loaded/imgUrls.length).toFixed(0))+'px 50%')}loadImgs()}}function loadImgs(){if(imgUrls&&imgUrls.length&&imgUrls[loaded]){var a=new Image();a.src=imgUrls[loaded];if(!a.complete){jQuery(a).bind('error load onreadystatechange',onImgComplete)}else{onImgComplete()}errorTimer=setTimeout(onImgComplete,q.errorDelay)}}function parseCSS(a,b){var c=false,imported=[],importedSrc=[],baseURL;var d=a.length;while(d--){var e='';if(b&&b[d]){baseURL=b[d]}else{var f=(a[d].href)?a[d].href:'window.location.href';var g=f.split('/');g.pop();baseURL=g.join('/');if(baseURL){baseURL+='/'}}if(a[d].cssRules||a[d].rules){thisSheetRules=(a[d].cssRules)?a[d].cssRules:a[d].rules;var h=thisSheetRules.length;while(h--){if(thisSheetRules[h].style&&thisSheetRules[h].style.cssText){var j=thisSheetRules[h].style.cssText;if(j.toLowerCase().indexOf('url')!=-1){e+=j}}else if(thisSheetRules[h].styleSheet){imported.push(thisSheetRules[h].styleSheet);c=true}}}var k=e.match(/[^\("]+\.(gif|jpg|jpeg|png)/g);if(k){var i=k.length;while(i--){var l=(k[i].charAt(0)=='/'||k[i].match('://'))?k[i]:baseURL+k[i];if(jQuery.inArray(l,imgUrls)==-1){imgUrls.push(l)}}}if(!c&&a[d].imports&&a[d].imports.length){for(var m=0,importLen=a[d].imports.length;m<importLen;m++){var n=a[d].imports[m].href;n=n.split('/');n.pop();n=n.join('/');if(n){n+='/'}var o=(n.charAt(0)=='/'||n.match('://'))?n:baseURL+n;importedSrc.push(o);imported.push(a[d].imports[m])}}}if(imported.length){parseCSS(imported,importedSrc);return false}var p=q.simultaneousCacheLoading;while(p--){setTimeout(loadImgs,p)}}parseCSS(document.styleSheets);return imgUrls};

/* 
	Ie6 fix BUTTON 
	http://odyniec.net/projects/iefixbuttons/ 
*/
jQuery.fn.ieFixButtons=function(){return/MSIE[567]\./i.test(window.navigator.userAgent)?this.find('button[type=submit]').click(function(){jQuery(this.form).bind('submit',{button:jQuery(this)},function(a){var b=a.data.button;var m=b.get(0).outerHTML.match(/value\s*=\s*['"]([^'"]*)['"]/);var c=(m?m[1]:'');var d=jQuery('<input type="hidden" '+(b.attr('name')?'name="'+b.attr('name')+'" ':'')+'" value="'+c+'" />');jQuery(this).append(d);jQuery.each(jQuery(this).find('button'),function(){jQuery(this).attr('name','')})})}).end():this};

/** Background Animation
 *  @author Alexander Farkas
 *  v. 1.02
 */
(function(A){A.extend(A.fx.step,{backgroundPosition:function(D){if(D.state===0&&typeof D.end=="string"){var F=A.curCSS(D.elem,"backgroundPosition");F=C(F);D.start=[F[0],F[2]];var B=C(D.end);D.end=[B[0],B[2]];D.unit=[B[1],B[3]]}var E=[];E[0]=((D.end[0]-D.start[0])*D.pos)+D.start[0]+D.unit[0];E[1]=((D.end[1]-D.start[1])*D.pos)+D.start[1]+D.unit[1];D.elem.style.backgroundPosition=E[0]+" "+E[1];function C(H){H=H.replace(/left|top/g,"0px");H=H.replace(/right|bottom/g,"100%");H=H.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");var G=H.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);return[parseFloat(G[1],10),G[2],parseFloat(G[3],10),G[4]]}}})})(jQuery);


function scrollToThis(loc){	$(loc).ScrollTo(600); }

$.fn.aqFloater = function(options) {
	var opts = $.extend({ offsetX: 0, offsetY: 0, attach: '', duration: 50 }, options);
	// opts.offsetY
	var $obj = this;
	$obj.css({ position: 'absolute' /*, opacity: opts.opacity */ });
	
	$(window).scroll(function () { 
		$obj.animate({
			top: ($(document).scrollTop()) + opts.offsetY + 'px'
		}, { queue: false, duration: opts.duration });
	});
	
	$(window).trigger('scroll');
};

isIE6 = /msie|MSIE 6/.test(navigator.userAgent);

$("#header ul.lang a").click(function(){
	var a = location.href;
	var b = a.lastIndexOf('/') + 1;
	var page = a.substring(b);
	this.href += page;
});

$(document).ready(function(){
	$.preloadCssImages();

	$("a[rel='ext']").attr("target","_blank");
	$("#cont_wrap .col2 .navMenu").c
	
	$("a[rel='scroll']").click(function(){ 
		var target = $(this).attr('href');
		scrollToThis( target );
		if ( $(this).hasClass("highlight") )
			$(target).removeAttr("style").stop().effect("highlight", { color: "#d3dde5"}, 5000);
		return false; 
	});
	
	$("a[rel='@masked']").each(function(){
		var str = this.href;
		this.href = str.replace("[at]", "@");
		var str = this.innerHTML;
		this.innerHTML = str.replace("[at]", "@");
	});
	
	
	$("#main_menu > li").not(".active").find("a").css("background-position", "0 98px")
	.mouseover(function(){
		if( !$(this).parent().hasClass("active") ) 
			jQuery(this).stop().animate({backgroundPosition:"(0 0px)"}, {duration:200})
	}).mouseout(function(){
		if( !$(this).parent().hasClass("active") ) 
			jQuery(this).stop().animate({backgroundPosition:"(0 98px)"}, {duration:200})
	});

	if (swfobject.hasFlashPlayerVersion("9.0.0") && $("#promo").length) {		
		var att = { data:"flash/promo.swf", width:"965", height:"320" };
		var par = { wmode: "transparent" };
		var id = "promo";
		var myObject = swfobject.createSWF(att, par, id);
	}

	
/* upload PDF + demo buttons
-------------------------------*/
	$("#upload_btn, #try_catalog, #try_admin")
		.mouseover(function(){
			$(this.firstChild).stop().animate({"opacity": "0"}, {duration:200})
		})
		.mouseout(function(){
			$(this.firstChild).stop().animate({"opacity": "1"}, {duration:200})
		});

	$("#upload_btn")
	/*	.hoverIntent({
			sensitivity: 1, interval: 15, timeout: 0,
			over: function(){ $(this.firstChild).fadeOut("fast") },
			out: function(){ $(this.firstChild).fadeIn("fast") }
		}) */
		.click(function(e){
			e.preventDefault();
			$("body")
			  .append('<div id="overlay" title="click to close" style="opacity:0; filter: alpha(opacity=0);"></div>')
	//		  .append('<div id="modalBoxUpload"><div class="content"><div id="flashUpload"></div></div></div>');
			  .append('<div id="uploadFlash"></div>');
			$("#overlay").click(function(){ killModal("uploadFlash"); });
			$("#overlay").fadeTo("normal", 0.6, function(){
		//		$("#modalBoxUpload").fadeIn("fast", function(){ 
				if (swfobject.hasFlashPlayerVersion("9.0.0")) {			
					var att = { data:"flash/upload.swf", width:"470", height:"300" };
					var par = { flashvars:"foo=bar", wmode: "transparent" };
					var id = "uploadFlash";
					var myObject = swfobject.createSWF(att, par, id);
				}
	//			});
			});
		});
	
	/* back to top */
	$('#backToTop > a').click(function(){ $('body').ScrollTo(700); return false; });

/* product page 
----------------*/

	if( $("body").hasClass("features") ){	
		$('#features ul.selection a').click(function(e){
			e.preventDefault();
			if( $(this).parent().hasClass("active") ) return false;
			$(this).parent().addClass("active").siblings().removeAttr("class");
			var list = $('#features dl');
			var type = $(this).attr("href").substr(1,3);
			switch (type)
			{
				case "brc":
					list.find("dd").removeClass("unmark");
			   		list.find("dd[class!='']").addClass("unmark");
					break;    
				case "cat":
					list.find("dd").removeClass("unmark");
					list.find("dd").each(function(){
						if( $(this).hasClass("mag") )
							$(this).addClass("unmark");
						if( $(this).hasClass("nsp") )
							$(this).addClass("unmark");
					});
					break;
				case "mag":
					list.find("dd").removeClass("unmark");
					list.find("dd[class='nsp']").addClass("unmark");
					break;
				case "nsp":
					list.find("dd").removeClass("unmark");
					break;
			}
		});
		
		//$('#features > div.column').equalHeight();
	}

/* Price page 
----------------*/
/*
	if( $("body").hasClass("price") ){
		
		$("#cont_wrap div.col1 table button").click(function(){
			var paypal_code = $(this).val();
			$("body").append('<div id="overlay" style="opacity:0; filter: alpha(opacity=0);" onclick="killBuyModal()"></div>');
			$("#overlay").fadeTo("fast", 0.6, function(){
				$("#modalBox").fadeIn("fast");
			});	
		});
		
		
	}
*/

	
});

/*+++++++++++++++++++++++
	External code 
++++++++++++++++++++++++*/

/* Price page 
----------------*/

function showBuyModal(paypal_code, type, price){
	$("#buyModalScreen2 form input[name='hosted_button_id']").val(paypal_code);
	
	var details_el = $("#buyModalScreen2 div.details");
	details_el.find("div.row1 span:first").html(price+"<small>&euro;</small> x 12");
	details_el.find("div.row1 span:eq(1)").html(type);
	details_el.find("div.row2 span").html( (price*12)+"<small>&euro;</small>");
	
	buildBuyModal();
}

function showBuyModal_2(){
	buyMovePage(3, true);
	buildBuyModal();
}

function buildBuyModal(){
	$("body").append('<div id="overlay" title="click to close" style="opacity:0; filter: alpha(opacity=0);" onclick="killBuyModal()"></div>');
	$("#overlay").fadeTo("normal", 0.5, function(){
		jQuery('input:text, input:password', '#buyModalScreen1 form').val("").removeAttr("style");
		jQuery('input:checkbox', '#buyModalScreen1 form').each(function(){ this.checked = false; });
		$("#modalBox").fadeIn("fast");
	});
}


function mark(item){
	if( !$(item).parent().hasClass("item-error") )
		$(item).parent().addClass('item-error');
	$("#form_helper").text("Please check the marked fields");
	//$(item).parent().stop().removeAttr("style").effect("highlight", { color:"#ebd7d7" }, 3000);
}

function unmark(item){
	$(item).parent().removeClass('item-error');
	$("#form_helper").text("");
}

/* Contact us validation */

function ContactValidation(form){
	var jform = $(form);
	var method = jform.attr('method');
	var action = jform.attr('action');
	var data = {};
	
	var submit = true;
	var error = $(form).find("div.buttons > div.error")[0];
	var emailFilter=/^.+@.+\..{2,3}$/;
	var email_illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;

	if (form.uname.value.length < 2){
		mark(form.uname);
		submit = false;
	} else unmark(form.uname);
	
	if (!emailFilter.test(form['uemail'].value) || form['uemail'].value.match(email_illegalChars)){
		mark(form['uemail']);
		submit = false;
	} else unmark(form['uemail']);
	
	if (!submit){
		return false;
	}
		
//	$("#submit_btn").addClass("disabled").attr("disabled","disabled");
	$("#form_helper").text("Sending...");
	
	jQuery('*[name]', jform).each(function() {
			var t = jQuery(this);
			var val = (t.attr('type') == 'checkbox') ? (t.attr('checked') == true) ? 1 : 0 : t.val();
			data[t.attr('name')] = val;
	});
	
	jQuery[method](action, data, function(data) {
		if(data)
			$("#form_helper").css("color","green").text("Succsessfuly sent");
		else
			$("#form_helper").css("color","#D37171").text("Something went wrong, please try again");
	});

	return false;
}


function mark_1(item){
	$(item).addClass("marked");
}

function unmark_1(item){
	$(item).removeClass("marked");
}

/* Buy now validation */
function buyValidation(form){
	var jform = $(form);
	var method = jform.attr('method');
	var action = jform.attr('action');
	var data = {};
	
	var submit = true;
	var emailFilter=/^.+@.+\..{2,3}$/;
	var email_illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;
	
	if (form.name.value.length < 2){
		mark_1(form.name);
		submit = false;
	} else{ 
		unmark_1(form.name);
		$.get("http://www.v-catalog.com/srv/valid_name.php", { uname: form.name.value },
		function(data){
			//alert("Data Loaded: " + data);
			if(data == 0){
				mark_1(form.name);
				var oldName = form.name.value;
				form.name.style.color = "#aaa";
				form.name.value = "username is taken";
				window.setTimeout( function(){ $(form.name).removeAttr('style').val(oldName); } , 2000 );
				submit = false;
			}
		});
	}
	
	if (form.password.value.length < 5){
		mark_1(form.password);
		submit = false;
	} else unmark_1(form.password);
	
	if (form.repeat_password.value != form.password.value || form.repeat_password.value == "" ){
		mark_1(form.repeat_password);
		submit = false;
	} else unmark_1(form.repeat_password);
	
	if (!emailFilter.test(form['email'].value) || form['email'].value.match(email_illegalChars)){
		mark_1(form['email']);
		submit = false;
	} else unmark_1(form['email']);
	
	if (form.URL.value.length < 5){
		mark_1(form.URL);
		submit = false;
	} else unmark_1(form.URL);
	
	if (form.tos.checked != true){
		mark_1(form.tos);
		submit = false;
	} else unmark_1(form.tos);
	
	if (!submit){
		return false;
	}
	
	// $("#form_helper").text("Sending...");
	
	jQuery('*[name]', jform).each(function() {
			var t = jQuery(this);
			var val = (t.attr('type') == 'checkbox') ? (t.attr('checked') == true) ? 1 : 0 : t.val();
			data[t.attr('name')] = val;
	});
	
	jQuery[method](action, data, function(data){
		if(data)
			buyMovePage(2);
	});

	return false;
}

function buyMovePage(page, fast){
	var moveTo = null;
	switch (page){
		case 1:
			moveTo = "0px"
			break;    
		case 2:
			moveTo = "-100%"
			break;
		case 3:
			moveTo = "-200%"
			break;
	}
	
	if(fast)
		$("#modalBox > div.content").css("margin-left",moveTo);
	else
		$("#modalBox > div.content").animate({ marginLeft: moveTo }, 420 );
}

function killBuyModal(){
	$("#modalBox").fadeOut("fast", function(){ 
		buyMovePage(1, true);
		$("#overlay").fadeOut("fast", function(){ 
			$("#overlay").remove();
		}) ;
	});	
}

function killModal(modal){
	$("#"+modal).find("embed, object").hide();	$("#overlay, #"+modal).remove();
	$("#"+modal).fadeOut("fast", function(){ 
		$("#overlay").fadeOut("fast", function(){ 
			$("#overlay, #"+modal).remove();
		}) ;
	});	
}