if (typeof console == 'undefined') {
	console = {};
	console.log = function() {
	};
	console.error = function() {
	};
	console.info = function() {
	};
}
if(typeof API == 'undefined') API = {};
Cufon.replace('h1, .carousel li a, .additional-content p span');
Cufon.replace('#main h2, #main h3:not(.ignore), #main h4,#outro h4, #main h5, #main h6, #neck ul.children li a,#intro ul li a, #sock .foot_menu h3, .replace',{
	hover: true
});
jQuery.validator.addMethod("phone", function(value, element) { 
		return this.optional(element) || /^[0-9 ]{9,}$/.test(value); 
	}, "Please enter valid phone number");
jQuery.validator.addClassRules({
	user_rg: {
		required: "#cf_location_roi:checked"
	},
	user_gassafe: {
		required: "#cf_location_ni:checked"
	}
});
$(document).ready(function(){
	var loginbox = $(".login_box a[rel^='topGallery']"); 	
	loginbox.prettyPhoto({theme:'light_square',social_tools: null,slideshow: false, keyboard_shortcuts: false});	
	loginbox.click(function(){
		setTimeout(function(){
			Cufon.replace('.emergency .replace'); //Cufon.refresh()	
		},1000);
	});
	var feedback = $(".feedback");
	var feedbackLink = $("a[rel^='feedback']",feedback);
	feedbackLink.prettyPhoto({theme:'light_square',social_tools: null,slideshow: false,default_width: 780, default_height: 290,changepicturecallback: function(){	
		Cufon.refresh();
	}});
	feedback.unbind('mouseenter');
	feedback.mouseenter(function(){
		feedback.stop();
		feedback.animate({
			width: 195
		});
	});
	feedback.unbind('mouseleave');
	feedback.mouseleave(function(){
		feedback.stop();
		feedback.animate({
			width: 58
		});
	});
	
	
	// recommend a friend form event handlers
	$('#addFriend', $('#recommend-a-friend')).bind('click', recommendFormAddFriend);
	$('#deleteFriend', $('#recommend-a-friend')).bind('click', recommendFormDeleteFriend);
});	
$(document).ready(function(){
	$('.faq .faq_term .question').click(function(){
		var answer = $(this).siblings('.answer');
		if($(this).hasClass('closed')){			
			$(this).removeClass('closed');
			answer.slideDown();
		}else{
			$(this).addClass('closed');		
			answer.slideUp();
		}
	});	
	var search = ".foot_menu .menu a[href^='http://']:not([href^='"+blogurl+"'])";	
	$(search).each(function(){
		var elm = $(this);
		elm.attr('target','_blank');
	});	
});
$(document).ajaxSuccess(function(){
	var form = $('form.validate');
	form.validate({
		//debug: true,
		/*errorPlacement: function(error, element) {
			console.log(element,error);
			element.val(error.html());
			element.addClass('errorFilled');
			//error.appendTo( element.parent("td").next("td") );
		},*/
		submitHandler: function(form) {
			
			form = $(form);
			var data = $(form).serialize().replace(/%5B%5D/gi, '[]');
			var messageId = 'message_'+form.attr('id');
			
		
			var message = jQuery('<p>');
			message.attr({'id': messageId, 'class': 'fv-error'});
			API.lock(form);
			jQuery.ajax({
				url: form.attr('action'),
				data: {
					'action': form.attr('id').replace(/-/g, '_'),
	            	'data': data
				},
				type: "POST",
				success: function(data) {
		        	if (data.result) {
		        		message.html('Thank you, your message has been sent.');
		        	} else {
		        		message.html('Message was not send');
		        	}
		        	/*setTimeout(function(){
		        		message.fadeOut(2000,function(){
			        		message.remove();
			        	});
		        	},3000);*/
		        	$('input.reset',form).click();
		        	API.unlock(form);
		        },
				error: function(){
					API.unlock(form);	
					message.html('There was an error processing the form');
					/*setTimeout(function(){
		        		message.fadeOut(2000,function(){
			        		message.remove();
			        	});
		        	},3000);*/
				},
				dataType: "json"			
			})
			
			/*jQuery.post(form.attr('action'), 
	    	{
	        	'action': form.attr('id').replace(/-/g, '_'),
	            'data': data
	        }, 
	        function(data) { 
	        	if (data.result) {
	        		message.html('Thank you, your message has been sent.');
	        	} else {
	        		message.html('Message was not send');
	        	}
	        	$('input.reset',form).click();
	        }, 
	        'json');*/
	        
	        form.before(message);
			console.log('submit');
			return false;
		}
	});
	console.log(form);
});
API.rows = new function(){	
	
	this.create = function(params){
		return new rows(params);		
	}	

	var rows = function(params){
		
		var instance = this;
	    this.params = {
			boxes: '#main .widgets .widget'	             
	    };
	    
	    $.extend(this.params, params);
	    
	    this.init = function(){
	        var boxes = $(instance.params.boxes);	        
	        var height = 0;

	        boxes.each(function(){
	        	var el = $(this);
	        	var size = {};
	            size.height = el.height();
	            height = (size.height > height) ? size.height : height;        
	        });
	        boxes.each(function(){
	        	var el = $(this);
	            el.css('height', height);
	        }); 
	    }
		
		$(document).ready(function(){
			instance.init();			
		});
		
	}
}
API.rows.create();

function recommendFormAddFriend(e)
{
	var maxNumOfItems = 10;
	
	var baseElement = $('#friendpart-fields', $('#recommend-a-friend'));
	var naviElement = $('#friendpart-navi', $('#recommend-a-friend'));
	var parentElement = $(baseElement.parents().get(0));
	
	var numOfItems = parentElement.attr('items') || 0;
		numOfItems++;
		
	if (numOfItems >= maxNumOfItems)
		return false;
	
	var newItemElement = baseElement.clone(true);
		newItemElement.attr('id', newItemElement.attr('id') + '_' + numOfItems);
		newItemElement.addClass('extra-friend');
		
	// - reset fields	
		
	var newItemElementLabels = newItemElement.find('label');
		newItemElementLabels.removeClass('fv-error');
		newItemElementLabels.each(function() {
			$(this).attr('for', $(this).attr('for') + '_' + numOfItems);
		});
		
	var newItemElementInputs = newItemElement.find('input[class!="select"][type!="hidden"]');
		newItemElementInputs.removeClass('fv-error-field');
		newItemElementInputs.each(function() {
			var tE = $(this);
			tE.attr('id', tE.attr('id') + '_' + numOfItems);
			tE.val('');
		});
		
	var newItemElementSelects = newItemElement.find('select');
		newItemElementSelects.each(function() {
			var tE = $(this);
			tE.attr('id', tE.attr('id') + '_' + numOfItems);
			tE.val('');
		});
	
	var newItemElementOptions = newItemElement.find('.select_options').get(0);
				
	var newItemElementSelectsHtml = newItemElement.find('input[class="select"]');
		newItemElementSelectsHtml.val($(newItemElementOptions).children(0).html() || '');
		
	var newItemElementSelectsVal = newItemElement.find('input[type="hidden"]');
		newItemElementSelectsVal.val('0');		
	
	// - reset fields
		
	parentElement.attr('items', numOfItems);
	naviElement.before(newItemElement);
		
	return false;
}

function recommendFormDeleteFriend(e)
{
	var baseElement = $('#friendpart-fields', $('#recommend-a-friend'));
	var extraFormElements = $('.extra-friend', $('#friendpart'));
	
	if (!extraFormElements.length)
		return false;

	var parentElement = $(baseElement.parents().get(0));
		parentElement.attr('items', parseInt(parentElement.attr('items')) - 1);
		
	$(extraFormElements[extraFormElements.length - 1]).remove();
	
	return false;
}
API.lock = function(elm){
	
	elm = $(elm);
	if(!elm.hasClass('locked')){
		locker = $('.lock',elm);
		if(locker.size() == 0){
			locker = $('<div class="lock">&nbsp;</div>');				
		}
		elm.css({
			width: elm.width(),
			height: elm.height()
		});
		locker.css({
			width: elm.width(),
			height: elm.height()
		});			
		elm.append(locker);		
		elm.addClass('locked');
		return true;
	}else{
		return false;
	}
};
API.unlock = function(elm){
	elm = $(elm);
	locker = $('.lock',elm);
	locker.remove();
	elm.removeClass('locked');
	//could animate
	elm.attr('style','');
	return true;			
}

