var feedback;
var videoName;
var recording = false;

// dom ready
$(document).ready(function() {
	
	// language changer hover for ie 6
	if ($("#lc_current").length > 0 && $.browser.msie && $.browser.version.substr(0,1) < 7) {
		$('#lc_current').hover(
    		function() {
    		  $('p', this).addClass('lcDropDownHover');
    		  $('ul', this).css('display','block');
    		},
    		function() {
    		  $('p', this).removeClass('lcDropDownHover');
    		  $('ul', this).css('display','none');
    		}
    	);
    }
	
	// homepage new releases ticker
	if ($("#new-releases-ticker").length > 0) {
		randomtip();
	}
	
	
	// product page image gallery
	if ($("#thumbs").length > 0){
		$('#gallery').galleriffic('#thumbs', {
		    numThumbs: 6,
		    preloadAhead: -1,
		    imageContainerSel: '#slideshow',
		    captionContainerSel: '#caption',
		    onTransitionOut: function(callback) {
		    	$('#caption').fadeOut('fast');
		    	$('#slideshow').fadeOut('fast', callback);
		    },
		    onTransitionIn: function() {
		    	$('#slideshow, #caption').fadeIn('fast');
		    }
		});
	}
	
	// homepage content slider
	if ($("div.slider-content").length > 0) {
		$("div.slider-content").scrollable({
		    size: 1,
		    clickable: false,
		    speed: 700,
		    loop: true,
		    onSeek: function() {
		    	if (this.getPageIndex() == 0) this.stop();
    		}
		}).navigator({
			navi:'#slider-control',
			activeClass: 'active'
		}).autoscroll(10000);
	}
	
	// product page promotions banner
	if ($("#promoBanner").length > 0) {
		$("#promoBanner").slideToggle('slow');
	}

	// language slider search
	if ($("#language-scrollcontainer").length > 0) {
		$('#languageQuery').search('#language-scroll li ul li','#language-scroll li div');
	}
	
	// select dropdown page goto
	if ($(".goto").length > 0) {
		$(".goto").change(function() { window.location = $(this).attr('class').split(' ').slice(-1).join().replace('[value]',$(this).val());});
	}
	
	// google maps on contact page
	if ($("#map").length > 0) {
		var address = $("div#address").html();
		var lat = parseFloat($("p#lat").html());
		var lng = parseFloat($("p#lng").html());
		var marker = $("p#marker").html();
		var latlng = new google.maps.LatLng(lat, lng);
		var myOptions = {
			zoom: 14,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.TERRAIN
		};
		var map = new google.maps.Map(document.getElementById("map"), myOptions);

		var infowindow = new google.maps.InfoWindow({
			content: address
		});
		
		var marker = new google.maps.Marker({
			position: latlng,
			map: map,
			title: marker
		});
		
		google.maps.event.addListener(marker, 'click', function() {
			infowindow.open(map,marker);
		});
	}
	
	// support page - show solution
	if ($(".support-results").length > 0) {
		$(".support-results a.showSolution").click( function() {
			$(this).parent().parent().toggleClass('selected').next().children('td:nth-child(2)').children().slideToggle("fast");
			return false;
		});
	}
	
	// video feedback
	if ($("#feedback").length > 0) {
		 
		
		var recordLabel = $("#record").children(0).text();
		var stopLabel = $("#record").val();
		
		try {getFlash("videoFeedback").connect();} catch(err) {}
		$("#record").click( function() {
		  	if (!recording) {
		  	    try {getFlash("videoFeedback").startRecord();} catch(err) {}
		  	   	$(this).children(0).text(stopLabel);
		  	} else {
		  		try {getFlash("videoFeedback").stopRecord();} catch(err) {}
		  	    $(this).children(0).text(recordLabel);
		  	}
		  	recording = !recording;
			return false;
		});
		
		
		$("#feedbackDetails").validate({
    	  submitHandler: function(form) {
    	  	videoName = $('#name').val() + new Date().getTime();
    	  	try {getFlash("videoFeedback").saveVideo(videoName, 'onSubmitFeedback');} catch(err) {}
    	  	return false;
    	  },
    	  rules: {
    	  	name: "required",
    	  	email: {
		   			required: true,
		   			email: true
		   		},
		   		terms: "required"
		   	},
		  errorElement: "p"
    	});		
	
		$("#termsTipTrigger").tooltip({
		  tip: '#termsTip',
		  position: 'top left',
		  effect: 'fade',
		  opacity: 0.8
		  //delay: 500
		});
			
		
		$("a.player").flowplayer("/video/flowplayer-3.1.3.swf", {
		}).hover(function() {
		  $("span.info", this).fadeTo("slow", 0.7);
		}, function() {
		  	$("span.info", this).fadeTo("slow", 0);
		}); 
		$("span.info").css("opacity", 0);
	}
	
	// product page - show all help languages
	if ($("#showAll").length > 0) {
		$("#showAll").click(function () {
			$(".noShow").slideToggle('fast',function() {
				$.scrollTo( $('.noShow'), 500);
			});
			return false;
		});
	}
	
	// map page - embed flash
	if ($("#world-map").length > 0) {
		$("#world-map").flashembed({
		  	src: "/local/maps/ammap.swf",
		  	width: 1160,
		  	height: 700,
		  	wmode: "opaque",
		  	bgcolor: "#E9F5ff",
		  	cachebusting: true
		  }, {
		  	preloader_color: "#E9F5ff",
		  	path: "/local/maps/",
		  	settings_file: "/local/maps/ammap_settings.xml",
		  	data_file: "maps/ammap_data_world.php"
		});
	}
	
	// hello downlaod handler
	if ($("#search-support").length > 0) {
		$("#search-support").submit(function() {
    	  if($("#keywords").val() == $("#keywords").attr('default')) $("#keywords").val('');
    	});
	}
	
	// email signup handler
	if ($("#subscribe").length > 0) {
		$("#subscribe").validate({
    		debug: false,
    		submitHandler: function(form) {
    			$.post("form", $('#subscribe').serialize(), function(data) {
  					$('#subscribe').html(data);
				});
    			return false;
    		},
    		rules: {
    			email: {
		   			required: true,
		   			email: true
		   		}
		   	},
			errorElement: "p"
    	});
	}
	
	
	// contact signup handler
	if ($("#contactForm").length > 0) {
		$("#contactForm").validate({
    		debug: false,
    		submitHandler: function(form) {
    			$.post("form", $('#contactForm').serialize(), function(data) {
  					$('#contactForm').html(data);
				});
    			return false;
    		},
    		rules: {
    			type: "required",
    			name: "required",
    			enquiry: "required",
    			email: {
		   			required: true,
		   			email: true
		   		}
		   	},
			errorElement: "p"
    	});
	}
	
	// hello downlaod handler
	if ($("#helloDownload").length > 0) {
		$("#helloDownload").validate({
    		debug: false,
    		submitHandler: function(form) {
    			$.post("form", $('#helloDownload').serialize(), function(data) {
  					$('#helloDownload').html(data);
				});
    			return false;
    		},
    		rules: {
    			name: "required",
    			email: {
		   			required: true,
		   			email: true
		   		}
		   	},
			errorElement: "p"
    	});
	}	
	
	// resources page fact pagination
	if ($(".paginate").length > 0) {
		$(".paginate ul li").quickpaginate({
			perpage: 1
		});
	}
	
	
	// text input placeholder text
	$(':input:text').each(function () {
		var defaultValue = $(this).attr('default');
		if (defaultValue !== '') {
			if ($(this).val() == '') $(this).val(defaultValue);
			$(this).focus(function(){
	    		if($(this).val() == $(this).attr('default')) $(this).val('');
			}).blur(function(){
	    		if($(this).val() == '') $(this).val($(this).attr('default'));
			});
		}
	});	
	
	// tabbed pages
	if ($("ul.tabs").length > 0) {
		$("ul.tabs").tabs("div.panes > div").history();
	}
	
	//support videos
	if ($("img.overlayTrigger[rel]").length > 0) {
		$("img.overlayTrigger[rel]").overlay({
			effect: 'apple',
    		onLoad: function() {
    			var embedElement = $("div.videoEmbed", this.getOverlay());
    			var updateName = embedElement.attr('id');
    			embedElement.flashembed({
    			  	src: "/video/support/"+updateName+"/"+updateName+"_controller.swf",
    			  	width: 640,
    			  	height: 582,
    			  	wmode: "transparent",
  				  	bgcolor: "#E9F5ff",
  				  	cachebusting: false
    			  }, {
    			  	autostart: true,
    			  	color: "0x000000,0x000000"
    			});
			}
    	});
    }
	

});



//submit video feedback
function onSubmitFeedback (message){
	var pars = $('#feedbackDetails').serialize() + "&video=" + videoName;
	$.post("form", pars, function(data) {
  			$('#feedbackDetails').html(data);
	});
}


// language list search
$.fn.search = function(searchElements, headerElements) {
  $(this).keyup(function(){
    var searchString = $(this).val();

	$(headerElements).hide();
    if (searchString.length > 0){
      $(searchElements).hide();
      var result = $(searchElements).filter(':containsIgnoreCase(' +searchString+ ')');
      result.show();
      result.parent().parent().children('div').show() 
    }
    else {
    	$(headerElements).show()
		$(searchElements).show();
    }
  });
};

$.expr[':'].containsIgnoreCase = function(a,i,m){
	return $(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0;
};

// hoempage new releases
this.randomtip = function(){
 
	var pause = 4000; // define the pause for each tip (in milliseconds) 
	var length = $("#new-releases-ticker li").length; 
	var temp = -1;		
 
	this.getRan = function(){
		// get the random number
		var ran = Math.floor(Math.random()*length) + 1;
		return ran;
	};
	this.show = function(){
		var ran = getRan();
		// to avoid repeating
		while (ran == temp){
			ran = getRan();
		}; 
		temp = ran;
		$("#new-releases-ticker li").hide();	
		$("#new-releases-ticker li:nth-child(" + ran + ")").fadeIn("slow");		
	};
 
	show(); setInterval(show,pause);
 
};

function getFlash (movieName) {
   if (navigator.appName.indexOf("Microsoft") != -1) {
       if (window[movieName] == null) {
			return document.getElementById(movieName);
       } else {
   			return window[movieName];
       }
   } else {
       return document[movieName];
   }
}

