window.log = function(){
  log.history = log.history || [];  
  log.history.push(arguments);
  arguments.callee = arguments.callee.caller;  
  if(this.console) console.log( Array.prototype.slice.call(arguments) );
};
var intervalId;
var curBnr=0;
var pre_img_obj=new Array();

pre_img_obj[0] = document.createElement('img');
pre_img_obj[0].src = 'images/js_gallery_bg1.png';

pre_img_obj[1] = document.createElement('img');
pre_img_obj[1].src = 'images/js_gallery_bg2.png';

pre_img_obj[2] = document.createElement('img');
pre_img_obj[2].src = 'images/js_gallery_bg3.png';

pre_img_obj[3] = document.createElement('img');
pre_img_obj[3].src = 'images/js_gallery_bg4.png';

pre_img_obj[4] = document.createElement('img');
pre_img_obj[4].src = 'images/js_gallery1_h2.png';

pre_img_obj[5] = document.createElement('img');
pre_img_obj[5].src = 'images/js_gallery2_h2.png';

pre_img_obj[6] = document.createElement('img');
pre_img_obj[6].src = 'images/js_gallery3_h2.png';

pre_img_obj[7] = document.createElement('img');
pre_img_obj[7].src = 'images/js_gallery4_h2.png';


$(document).ready(function() {
	initFunc();
	$('.js_gallery dd').css('display','none').eq(0).css('display','block');
	playBnr();
});


function initFunc(){
	//all buttons hover
	$('.lft_nav h4').hover(
		function(){
			if (!($(this.parentNode).hasClass('selected') || $(this.parentNode).hasClass('subOpen')))
				$(this).css('background-position','left bottom');
		},
		function(){
			if (!($(this.parentNode).hasClass('selected') || $(this.parentNode).hasClass('subOpen')))
				$(this).css('background-position','left top');
		}
	);
	if($.browser.msie && $.browser.version <=6){
		$('.slide_box a').hover(
			function(){
				if(!($(this).hasClass('slct')))
					$(this).css('background-position','center bottom');
			},
			function(){
				if(!($(this).hasClass('slct')))
					$(this).css('background-position','');
			}
		);
	}
	
	$('.lft_nav h4').click(
		function() {
			if(!($(this.parentNode).hasClass('selected') || $(this.parentNode).hasClass('subOpen'))){
				$('.lft_nav h4').parent().removeClass('selected');
				$('.lft_nav li').not(".lft_nav li.subOpen").find("h4").css('background-position','left top');
				$('.lft_nav li').not(".lft_nav li.subOpen").find("h4").next('ul').slideUp();
				
				if($(this.parentNode).find("li").length > 0){
					$(this.parentNode).addClass('selected');
					$(this).css('background-position','left center');
					$(this).next('ul').slideDown();
				}
			}
			else {
				$('.lft_nav li').not(".lft_nav li.subOpen").find("h4").css('background-position','left top');
				$('.lft_nav li').not(".lft_nav li.subOpen").find("h4").parent("li").removeClass('selected');
				$('.lft_nav li').not(".lft_nav li.subOpen").find("h4").next('ul').slideUp();
			}
		}
	);
	$('#process-submenu a').click(
		function() {
			if(!($(this.parentNode).hasClass('selected') || $(this.parentNode).hasClass('subOpen'))){
				$(this).parent().removeClass('selected');
				//$(this).parent().not("li.subOpen").$(this).next('ul').slideUp();
				
				if($(this.parentNode).find("li").length > 0){
					$(this.parentNode).addClass('selected');
					$(this).css('background-position','left center');
					$(this).next('ul').slideDown();
				}
			}
			else {
				$('#process-submenu').not(".lft_nav li.subOpen").removeClass('selected');
				$(this).not(".lft_nav li.subOpen").next('ul').slideUp();
			}
		}
	);
$('.toggle-tab').click(
	function() {
	if(($('.toggle-tab').hasClass('open'))){
	$('#feedback-form').slideUp('slow', function() {
	    $('.toggle-tab').removeClass('open');
	    $('.collapse-toggle').text('expand');
	  });
	}
	else{
	$('#feedback-form').slideDown('slow', function() {
	    $('.toggle-tab').addClass('open');
	    $('.collapse-toggle').text('collapse');
	  });
	}
});
	
	$('.slide_box a').click(
		function(){
			var index = $('.slide_box a').index(this);
			if(curBnr!=index){
				curBnr=index;
				pauseBnr();
				changeBnr(index);
				playBnr();
			}
		}
	);


}
	
function pauseBnr(){clearInterval(intervalId)}
function playBnr(){intervalId=setInterval('startBnrPlay()',8000)}

function startBnrPlay(){
	var allButns=$('.slide_box a');
	if(curBnr==(allButns.length-1))
		curBnr=0;
	else
		curBnr++;
	changeBnr(curBnr);
}

function changeBnr(index){
	$('.slide_box a').removeClass('slct').eq(index).addClass('slct');
	if($.browser.msie && $.browser.version <=8){
		if($.browser.version <=6)
			$('.slide_box a').css('background-position','').eq(index).css('background-position','center bottom');
		$('.js_gallery dd').hide().eq(index).show();
	}
	else
		$('.js_gallery dd').fadeOut('slow').eq(index).fadeIn('slow');
}
//=========================//
// Feedback Form validator //
//=========================//

$(function(){

	$('.feedback-area .rate input:radio').change( function(e){
		var position = $(this).closest('li').index(),
				siblingSelect = $(this).closest('.rate').siblings('.importance').find('li:eq('+position+')').find('select');
				if($(this).val() != "n/a"){
							siblingSelect.removeAttr('disabled');
				}else{
					siblingSelect.attr('disabled', 'disabled');
				}
	});
	$('input.submit.button').click( function(e){
		var contactName = $("#contact-name"),
				companyName = $("#company-name"),
				jobFunction = $("#job-function"),
				email = $("#email"),
				phone = $("#phone"),
				additionalComments = $('#additional-comments'),
				sendCheck = true,
				selectResults = [],
				button = $(this),
		//validation functions
		validateEmail = function(){
			//testing regular expression
			var a = email.val(),
			emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			// if it's valid email
			if(emailFilter.test(a)){
			if(email.parent('div').hasClass('required-field')){
				email.parent('div').removeClass('required-field');
			}
				return true;
			}
			//if it's NOT valid
			else{
				email.parent('div').addClass('email required-field');
//				$('.email.required-field').prepend('<span class="error-message">Please add a valid email address</span>');
//				email.focus(function() {
//				  $('.email .error-message').remove();
//				});
				
				return false;
			}
		},
		 validatePhone = function() 
		{
			var b = phone.val(),
			phoneFilter = /^\d?(?:(?:[\+]?(?:[\d]{1,3}(?:[ ]+|[\-.])))?[(]?(?:[\d]{3})[\-/)]?(?:[ ]+)?)?(?:[a-zA-Z2-9][a-zA-Z0-9 \-.]{6,})(?:(?:[ ]+|[xX]|(i:ext[\.]?)){1,2}(?:[\d]{1,5}))?$/; 
			if (phoneFilter.test(b)) {
				// if it's a valid phone
				if(phone.parent('div').hasClass('required-field')){
					phone.parent('div').removeClass('required-field');
				}
				
		   		return true;
		 	} else {
			phone.parent('div').addClass('phone required-field');
		 		return false;
		 	}
		},
		validateCompanyName =	function(){
			//if it's NOT valid
			if(companyName.val().length < 2){
			companyName.parent('div').addClass('company-name required-field');
			
				return false;
			}
			//if it's valid
			else{
			if(companyName.parent('div').hasClass('required-field')){
				companyName.parent('div').removeClass('required-field');
			}
			
				return true;
			}
		},
		validateJobFunction =	function(){
			//if it's NOT valid
			if(jobFunction.val().length < 2){
			jobFunction.parent('div').addClass('job-function required-field');
			
				return false;
			}
			//if it's valid
			else{
			if(jobFunction.parent('div').hasClass('required-field')){
				jobFunction.parent('div').removeClass('required-field');
			}
			
				return true;
			}
		},
		validateContactName =	function(){
			//if it's NOT valid
			if(contactName.val().length < 2){
				contactName.parent('div').addClass('contact-name required-field');
				return false;
			}
			//if it's valid
			else{
				if(contactName.parent('div').hasClass('required-field')){
					contactName.parent('div').removeClass('required-field');
				}
			
				return true;
			}
		},
		validateSelect =	function(){
			var select,
					i=0;
						
			$('.importance select').each(function(){
					log(i++);
					select = $(this);
				if(select.attr('disabled') == false){
				//if it's NOT valid
					if(select.val() == ""){
						log(select.attr('name'), select.attr('disabled'));
						select.closest('li').addClass('required-field');
						sendCheck = false;
						//return false;
					}else{
				//if it's valid
						if(select.closest('li').hasClass('required-field')){
							select.closest('li').removeClass('required-field');
						}
						//return true;
					}
				}
				else{
				//return true;
				}
			});
		},
		radioSelectValues = function(){
		var title,output = "";
				$('.feedback-area .rate :radio:checked').each(function(){
						var	radio = $(this),
								position = radio.closest('li').index(),
								groupTitle = radio.closest('.feedback-area').find('h3').text(),
								siblingSelect = radio.closest('.rate').siblings('.importance').find('li:eq('+position+')').find('select');
						if(radio.val() != "n/a"){
								if(title != groupTitle){
								output += groupTitle+'=&';
								}
								output += radio.attr('name')+'='+ radio.val() +' is '+ siblingSelect.val()+'&';
						}else{
								if(title != groupTitle){
								output += groupTitle+'=&';
								}
								output += radio.attr('name')+ "= n/a "+'&';
						}
								title = groupTitle;
				});
								return output;
		},
		ifAdditionalComments = function(){
			if(additionalComments.val() != ""){
				return "Additional Comments= "+ additionalComments.val();
			}
		},
		goToByScroll = function(id){
		     	$('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
		};
		
		e.preventDefault();
		validateContactName();
		validateCompanyName();
		validateJobFunction();
		validateEmail();
		validatePhone();
		validateSelect();
		log(validateSelect());
		
		if(validateContactName() == true && validateCompanyName() == true && validateJobFunction() == true && validateEmail() == true && validatePhone() == true && sendCheck !== false){
			
			
			 // it submits the form it is contained within
			 var dataString = "Company Name= "+ companyName.val() + "&Contact Name= "+ contactName.val() +  "&Job Function= "+ jobFunction.val() + "&Email= " + email.val() + "&Phone= " + phone.val() +'&'+ radioSelectValues() + ifAdditionalComments();
			  $.ajax({
			    type: "POST",
			    url: "/processform.php",
			    data: dataString,
			    success: function() {
			    
			    					//Get the window height and width  
			    					var winH = $(window).height(),  
			    				  		winW = $(window).width(); 
			    					$('body').prepend('<div class="modal-bg"><div class="modal"><div class="thanks-message"><a href="#" class="close-modal">Close</a><h3><span>Thanks</span> for your feedback</h3><p>Thank you for your feedback.  As part of Ultra Electronics ongoing commitment to continuous improvement, your feedback has been logged and will be forwarded to our business development manager and our quality manager for review and action</p><a href="#" class="button">Close Form</a></div></div></div>');
			    					$('.modal').css("margin-top", (winH/2-$('.modal').height()/2)+"px").css("margin-left", (winW/2-$('.modal').width()/2)+"px");
			    					$(".close-modal, .thanks-message .button").click(
			    					        function(e) { 
			    					            e.preventDefault();
			    					           $('.modal-bg').fadeOut(350, function(){$(this).remove();});
			    					           $('#feedback-form').slideUp('slow', function() {
			    					               $('.toggle-tab').removeClass('open');
			    					               $('.collapse-toggle').text('expand');
			    					             });
			    					           goToByScroll('header');
			    					        }
			    					    );
										
					 			    }
			  });
			  return false;
		}
		else{
		log()
		$('#required-message').remove();
		$('.user-details h3').after('<div id="required-message"><p>You have errors in the form. Please check the red highlighted items</p></div>');
		goToByScroll('feedback-form');
//		log('validateContactName()'+validateContactName(),'validateCompanyName()'+validateCompanyName(),'validateJobFunction()'+validateJobFunction(), 'validateEmail()'+validateEmail(), 'validatePhone()'+validatePhone(), 'validateSelect()'+validateSelect());
//			if($(this).siblings('select').val() ){
//				$(this).parents('.question').fadeOut(500,function(){

//				});
//			}
//			else{
//				$(this).parents('.question').addClass('error');
//				if($(this).parents('.question').hasClass('info-catch')){
//					$(this).parent().siblings('h4').children('.message').html(" ").html('Error! Please complete all *required fields');
//					
//				}else{
//					
//				}
			}
//		}
	});	
	
});

