var isValidEmailAddress = function (emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
};

var closeMoviePlayer = function() {
	$("#flash-container").hide();
	$("#flash-wrapper").html("&nbsp;");
	return false;
};

var repositionPlayer = function() {
	var fc = $("#flash-container");
	var w = fc.width();
	var h = fc.height();
	var ww = $(window).width();
	var wh = $(window).height();
	var x = Math.round((ww - w) / 2);
	var y = $(window).scrollTop() + 100;
	
	fc.css({
		"left": x,
		"top": y
	});
	return false;
};
	

var flashPlayerHtml = "";
var playMovie = function(url, width, height) {

	// alert (url + " " + width + " " + height);
	
	var thiz = $(this);
	var rel = thiz.attr("rel").split(",");
	
	var url = rel[0];
	var width = parseInt(rel[1]);
	var height = parseInt(rel[2]);
	var title = thiz.attr("title");
	$("#flash-container-tools strong").html(title);
	
	$("#flash-wrapper").html(flashPlayerHtml);
	var fc = $("#flash-wrapper");
	fc.css({
		"width": width,
		"height": height + 25
	});
	
	$("#flash-container").css({
		"width": width,
		"height": height + 25 + 20 + 5
	});	
	
	$("#flash-container").show();
	repositionPlayer();
	//$(window).trigger("resize");
	
	var flashvars = {};
    var params = {};
    var attributes = {};

    params.codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0';
    params.width = width;
    params.height = height;
    params.quality = 'high';
    params.align = 'middle';
    params.play = 'true';
    params.loop = 'false';
    params.scale = 'showall';
    params.wmode = 'transparent';
    params.devicefont = 'false';
    //params.bgcolor='#2e2e2e',
    params.allowFullScreen = 'true';
    params.allowScriptAccess = 'sameDomain';
    params.salign = '';

    // SETUP
    /* <![CDATA[ */
    flashvars.forcewidth = width;
    flashvars.forceheight = height;
    flashvars.skin = 'black';
    flashvars.fullscreenbutton = 'on';
    flashvars.infobutton = 'on';
    //flashvars.startphoto = '/swf/presentation.jpg';
    flashvars.videopath = url;
    flashvars.playonload = 'on';
    flashvars.initialvolume = '100';
    flashvars.startbufferonload = 'on';
    // stretch type, choose between 'original size', 'zoom to fit', 'stretch to fit'
    flashvars.defaultstretch = 'original size';
    flashvars.buffersize = '5';
    flashvars.infotext = "";

    attributes.id = 'video-player';
    /* ]]> */

    swfobject.embedSWF(themeurl + 'swf/preview.swf', 'flash-player', '100%', '100%', '9.0.0', '/js/expressInstall.swf', flashvars, params, attributes);	
	
	//$("#flash-player").
	
	
	return false;
		
};

$(function () {
	
	var timer = null;
	var BANNER_TIMEOUT_DEFAULT = 4000;
	var BANNER_TIMEOUT_CLICK = 8000;

	var bannerContainer = $("#banners-home-page-container");	
	var banners = $("#banners-home-page-container > .zig-banner-page > strong");
	var bannerLinks = $(".banner-links a");
	var bannerIndex = 0;
	var bannerCount = bannerLinks.size();
	var bannerLastIndex = bannerCount - 1;	
	
	var windowResized = function() {
		var bannerCount = bannerLinks.size();
		var windowWidth = $(window).width();
		$(".banners-home-page-container").width(bannerCount * windowWidth);
		$(".zig-banner").width(windowWidth);
	};
	
	var processBanners = function() {
		$("#banners-home-page").animate({height: 323});
		$("#zig-banner-links").show();
	}	

	windowResized();
	window.onresize = windowResized;
	
	var img = document.createElement("img");
	img.onload = processBanners;
	img.src = themeurl + "images/home.jpg";
	
	banners.each(function(index) {
		var thiz = $(this);
		var bpx = index * -990;
		thiz.css("background-position", bpx+"px 0px")
	});
	
	bannerLinks.each(function(index) {
		var thiz = $(this);
		var bp = thiz.css("backgroundPosition");
		var bpx = bp.split(" ")[0];
		bpx = bpx.replace(/px/, "");
		thiz.data("x", bpx);
		thiz.data("i", index);
		if ($.browser.msie && $.browser.version < 8) { thiz.html(" "); }
	});

	var bannerTimeout = function() {
		bannerIndex = (bannerIndex+1) % bannerCount;
		bannerLinkClick(null, bannerIndex);
	}
	
	var bannerLinkEnter = function() {
		var thiz = $(this);
		var bp = thiz.data("x") - 990;
		thiz.css("background-position", bp+"px 0px");
	};
	
	var bannerLinkLeave = function() {
		var thiz = $(this);
		var bp = thiz.data("x");
		if (!thiz.data("selected")) {
			thiz.css("background-position", bp+"px 0px");
		}
	};	
	
	var bannerLinkClick = function(obj, index) {
		if (timer) { clearTimeout(timer); }
		var timeout = obj==null ? BANNER_TIMEOUT_DEFAULT : BANNER_TIMEOUT_CLICK;
		var thiz = $(this);
		if (!index) { index = thiz.data("i"); }
		var windowWidth = $(window).width();	
		var left = index * -windowWidth;
		bannerLinks.data("selected", false);
		bannerLinks.eq(index).data("selected", true);
		bannerLinks.eq(index).trigger("mouseenter");
		bannerLinks.trigger("mouseleave");
		bannerIndex = index;
		bannerContainer.animate({"left": left});
		timer = setTimeout(bannerTimeout, timeout);
		return false;
	};
	
	bannerLinks.mouseenter(bannerLinkEnter);
	bannerLinks.mouseleave(bannerLinkLeave);
	bannerLinks.click(bannerLinkClick);	
	bannerLinks.eq(0).trigger("click");
	
	
	
	flashPlayerHtml = $("#flash-wrapper").html();
	//$(window).resize(repositionPlayer);
	$(".project-videos a").click(playMovie);
	$("#flash-container-close").click(closeMoviePlayer);
	$("a[rel^='gallery']").lightBox({
		overlayBgColor: '#000000',
		overlayOpacity: 0.8,
		imageLoading:  themeurl + '/jquery-lightbox-0.5/images/lightbox-ico-loading.gif',
		imageBtnClose: themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-close.gif',
		imageBtnPrev:  themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-prev.gif',
		imageBtnNext:  themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-next.gif'
	});

	$(".casestudy-screenshots a").lightBox({
		overlayBgColor: '#000000',
		overlayOpacity: 0.8,
		imageLoading:  themeurl + '/jquery-lightbox-0.5/images/lightbox-ico-loading.gif',
		imageBtnClose: themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-close.gif',
		imageBtnPrev:  themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-prev.gif',
		imageBtnNext:  themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-next.gif'
	});
	
	$("a.cs-solution-images").lightBox({
		overlayBgColor: '#000000',
		overlayOpacity: 0.8,
		imageLoading:  themeurl + '/jquery-lightbox-0.5/images/lightbox-ico-loading.gif',
		imageBtnClose: themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-close.gif',
		imageBtnPrev:  themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-prev.gif',
		imageBtnNext:  themeurl + '/jquery-lightbox-0.5/images/lightbox-btn-next.gif'
	});	

	var submitQuote = function() {
		
		// isValidEmailAddress
		//$("#")
		$(".quote-form .form-row-msg").hide();
		$("#quote-form").show();
		
		$("#error-empty").hide();
		$("#error-email").hide();
		
		var emptyError = false;
		var emailError = false; 
		var emptyFields = $("#full-name,#company,#email,#phone,#project-desc,#marketting");
		var q = "";
		
		emptyFields.each(function() {
			var thiz = $(this);
			var label = thiz.parent().find("label");
			label.removeClass();
			if (thiz.val()=="") {
				label.addClass("error");
				emptyError = true;
			} else {
				if (thiz.attr("id")=="email") {
					emailError = !isValidEmailAddress(thiz.val());
				}
				q += thiz.attr("id") + "=" + thiz.val() + "&";
			}
		});
		
		if (emptyError) {
			$("#error-empty").show();
		}
		
		if (emailError) {
			$("#error-email").show();
		}
		
		if (!emptyError && !emailError) {
            
			$(".quote-form .form-row-msg").hide();
			$("#quote-sending").show();
			$("#quote-form").hide();
			
			$.ajax({
                type: "POST",
                url: baseUrl + "send-quote",
                data: q + "time=" + (new Date().getTime()) + "&r=" + $("#referer").val(),
                success: function (data, textStatus) {
                    $("#quote-sending").hide();
                    data = $.trim(data);
                	if (data == "ok") {
                        $(".quote-form .form-row-msg").hide();
                    	$("#quote-success").show();                        
                    } else {
                        $(".quote-form .form-row-msg").hide();
                    	$("#error-tech").show();
                    	$("#quote-form").show();
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $("#quote-sending").hide();
                	$(".quote-form .form-row-msg").hide();
                	$("#error-ajax").show();
                	$("#quote-form").show();
                }
            });			
		}
		
		return false;
		
	};
	
	$("#send-quote-link").click(submitQuote);
	
	var submitNl = function() {
		
		$(".newsletter-registration .form-row-msg").hide();
		$("#newsletter-form").show();		
		
		var email = $("#nl-email").val();
		
		var emailError = !isValidEmailAddress(email);
		if (emailError) {
			$("#nl-error-email").show();
		} else {
			$(".newsletter-registration .form-row-msg").hide();
			$("#nl-sending").show();
			$("#newsletter-form").hide();
			
			var firstName = $("#nl-first-name").val();
			var lastName = $("#nl-last-name").val();
			
			$.ajax({
                type: "POST",
                url: baseUrl + "send-newsletter",
                data: "email=" + email + "&firstname=" + firstName + "&lastname=" + lastName + "&time=" + (new Date().getMilliseconds()),
                success: function (dataResponse, textStatus) {
                	dataResponse = $.trim(dataResponse);
                    if (dataResponse == "ok") {
                        $(".newsletter-registration .form-row-msg").hide();
                    	$("#nl-success").show();                        
                    } else {
                        $(".newsletter-registration .form-row-msg").hide();
                    	$("#nl-error-reg").show();
                    	$("#newsletter-form").show();
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $(".newsletter-registration .form-row-msg").hide();
                	$("#nl-error-ajax").show();
                	$("#newsletter-form").show();
                }
            });	
		}
		
		return false;
	};
	
	$("#link-submit-nl").click(submitNl);
	
	// 	var footerMiniLinks = $(".ccol-rr a");
	// footerMiniLinks.mouseenter(function() {
	// 	$(this).css("opacity", 1.0);
	// });
	// footerMiniLinks.mouseleave(function() {
	// 	$(this).css("opacity", 0.5);
	// });
	// footerMiniLinks.trigger("mouseleave");
	// footerMiniLinks.css("visibility", "visible");
	
	// blog terms
	var termCount = $(".blog-terms strong");
	termCount.each(function(index) {
		var thiz = $(this);
		var c = parseInt(thiz.html());
		if (isNaN(c) || c==0) { 
			c = 12; 	
			thiz.parent().remove();		
		} else {
			c=c*2;
			if (c>24) { c = 26; }
			//thiz.parent().css("font-size", (13 + c) + "px");
		}
	});
	
	
	var serviceClicked = function() {
		var thiz = $(this);
		var parent = thiz.parent();
		var expanded = parent.hasClass("service-menu-expanded");
		
		$(".service-menu").removeClass("service-menu-collapsed service-menu-expanded");
		$(".service-menu").addClass("service-menu-collapsed");
		parent.removeClass("service-menu-collapsed service-menu-expanded");
		parent.addClass(expanded ? "service-menu-collapsed" : "service-menu-expanded");
		//alert(parent.attr("class") + " " + (expanded ? "service-menu-collapsed" : "service-menu-expanded"));
		return false;
	};
	
	$("a.no-link").click(function() {
		return false;
	});	

});

var initMap = function() {
	
	// load map
	if ($(".contacts-main").size()>0) {
		
		var myLatlng = new google.maps.LatLng(-33.884946,151.217464); 
		var myOptions = { 
			zoom: 15, 
			mapTypeId: google.maps.MapTypeId.ROADMAP 
		} 		
		var map = new google.maps.Map($(".contacts-map").get(0), myOptions); 
		var loadMap = function(x, y) {
			var coord = new google.maps.LatLng(x, y); 
			map.setCenter(coord); 
			
			var image = new google.maps.MarkerImage(
				themeurl + 'images/map-icon.png', 
				new google.maps.Size(107, 107), 
				new google.maps.Point(0,0), 
				new google.maps.Point(32, 91)
			); 
			var shadow = new google.maps.MarkerImage(
				themeurl + 'images/map-icon-shadow.png', 
				new google.maps.Size(107, 107), 
				new google.maps.Point(0,0), 
				new google.maps.Point(32, 91)
			);	
			var marker = new google.maps.Marker({ 
				position: coord, 
				map: map, 
				shadow: shadow, 
				icon: image
			}); 					
		};
		
		$(".link-sydney").click(function() { loadMap(-33.884946,151.217464); return false; });
		$(".link-hamburg").click(function() { loadMap(53.580199,9.954825); return false; });
		
		$(".link-sydney").trigger("click");
		
	}	
	
};

Cufon.replace('h1,.h1,h2 strong,h3,.banner-main,.banner-sub,.project-testimonial,.intro,.intro-link a,.sub-intro,.news-h1,p.quote-link a,a.topia-contactus,a.request-quote');
Cufon.now();
