$(document).ready(function() {
	setupForms();
	menuInit($('menu'));
	carouselInit();
});

/**
 * Cookie handlers
 */
function setCookie(c_name,value,exdays) {
	var exdate=new Date();
	exdate.setDate(exdate.getDate() + exdays);
	var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()) + '; path=/';
	document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name) {
	var i,x,y,ARRcookies=document.cookie.split(";");
	for (i=0;i<ARRcookies.length;i++){
		x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
		y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
		x=x.replace(/^\s+|\s+$/g,"");
		if (x==c_name) return unescape(y);
	}
}

/**
 * Disable double-click on a form submit
 */
function setupForms() {
	$('form').submit(function(e) {
		$('input, select, textarea', this).attr('readonly', 'readonly');
		$('input[type=submit]', this).attr('disabled', 'disabled');
		$(this).submit(function(e2) {
			e2.preventDefault();
		});
		$('.loading', this).show();
	});
}

/**
 * Menu open/close
 */
function menuInit(selector) {
	var menuItems = getCookie('menuItems');
	if (typeof(menuItems)=='undefined') return;
	menuItems = menuItems.split(',');
	for (var i in menuItems) {
		if (menuItems[i]!='') $('li#'+menuItems[i]+' > ul', selector).show();
	}
}
function menuToggle(selector) {
	var child = $('ul', $(selector).parent());
	var menuItems = getCookie('menuItems');
	if (typeof(menuItems)=='undefined') menuItems = '';
	menuItems = menuItems.split(',');
	if (child.is(':hidden')) { // Open menu
		child.show('fast');
		for (var i in menuItems) {
		    if (menuItems[i]==$(selector).parent().attr('id')) return;
		}
		menuItems[menuItems.length] = $(selector).parent().attr('id');
		setCookie('menuItems', menuItems.join(','));
	} else { // Close menu
		child.hide('fast');
		var newmenuItems = new Array();
		var j = 0;
		for (var i in menuItems) {
		    if (menuItems[i]!=$(selector).parent().attr('id')) newmenuItems[j++] = menuItems[i];
		};
		setCookie('menuItems', newmenuItems.join(','));
	}
	$(selector).blur();
}

/**
 * Show a carousel tab
 * @param handler
 * @param id
 * @return
 */
function carouselShowTab(handler, id) {
	$('.tab').removeClass('active');
	$(handler).parent().addClass('active');
	
	$('.carousel').hide();
	$('.carousel > div').detach();
	$('#' + id).show();
	carouselInit();
}

function carouselInit() {
	var carousel = $('.carousel:visible');
	$('ul', carousel).clone().appendTo(carousel).show().jcarousel({
		'scroll': 4,
		'wrap': 'circular',
		'auto': 10
	});
}

/**
 * Deletes a comment using AJAX
 * @param id
 * @param confirmText
 * @return
 */
function deleteComment(id, confirmText) {
	if (window.confirm(confirmText)) {
		$.get('modules/commentModule/delete/'+id, function(data) {
			if (data) {
				window.alert(data);
			} else {
				$('ul.comments li#comment-'+id).hide('fast');
			}
		});
	}	
}

/**
 * Shows all comments over limit
 * @return
 */
function showAllComments() {
	$('#comments-container ul.comments li').show('fast');
	$('#comments-container #listLimitNotice').hide('fast');
}

/**
 * Deletes a mockup using AJAX
 * @param id
 * @param userId
 * @param confirmText
 * @return
 */
function deleteMockup(id, userId, confirmText) {
	if (window.confirm(confirmText)) {
		$.get('mockup/delete/'+id, function(data) {
			if (data) {
				window.alert(data);
			} else {
				window.location = 'user/'+userId;
			}
		});
	}	
}

jQuery.expr[':'].focus = function( elem ) {
  return elem === document.activeElement && ( elem.type || elem.href );
};

function getMockupAjaxList(inputContainer, lastContent) {
	var statusContainer = $('img.status', inputContainer.parent());
	var listContainer = $('ul', inputContainer.parent());
	var valueContainer = $('input[type=hidden]', inputContainer.parent());
	if (!inputContainer.is(':focus')) {
		listContainer.slideUp('fast', function() {
			if (!inputContainer.val()) {
				statusContainer.attr('src', 'img/icon/lightning.png');
			} else if (!parseInt(valueContainer.val())) {
				statusContainer.attr('src', 'img/icon/exclamation.png');
			} else {
				statusContainer.attr('src', 'img/icon/accept.png');
			}
		});
		clearTimeout(window.t);
		return;
	}
	// else
	if (inputContainer.val() != lastContent) {
		lastContent = inputContainer.val();
		valueContainer.val('');
		if (lastContent) {
			statusContainer.attr('src', 'img/icon/hourglass.png');
			$.post('modules/mockupModule/ajaxList', {'text': lastContent, 'category_id': 0}, function(data) {
				listContainer.html(data).slideDown('fast');
				statusContainer.attr('src', 'img/icon/lightning.png');
			});
		}
	}
	window.t = window.setTimeout(function(){ getMockupAjaxList(inputContainer, lastContent); }, 100);
}

