$(document).ready(function() {
	// Stuff to do as soon as the DOM is ready;
	$('div#logo').ifixpng(base_url + 'assets/templates/agency/images/pixel.gif');
	
	clearInput('.login-form p input.hasDefault');
	
	$("a[rel*='lightbox']").colorbox();
	$("a[rel='pdfbox']").colorbox({transition:"elastic",current:"Document {current} of {total}",iframe:true,width:"90%",height:"90%"});
	
	var openArtist = new OpenClose();
	openArtist.init('#artists-list', 'div.artist', {caption: {open: 'close', close: 'Read more and Portfolio'}});
	
	// var openPress = new OpenClose();
	// openPress.init('#events', 'div.artist', {caption: {open: 'close', close: 'Read more...'}, cssClass: {handler: 'handle', close: 'close', open: 'open'}});
});

function OpenClose(containerHolder, sectionSelctr, options) {
	this.settings = {
		transition: {collapse: 'slideUp', expand: 'slideDown'},
		caption: {open: 'close', close: 'Read more and Portfolio'},
		cssClass: {handler: 'handler', close: 'close', open: 'open'}
	};
	
	this.init = function(containerHolder, sectionSelctr, options) {
		var container = $(containerHolder);
		if(container.length < 0) { 
			return false;
		} else {
			options = options || {};
        	jQuery.extend(this.settings, options);
		}
		
		this.section = sectionSelctr;
		this.container = container;
		this.render();
		return true;
	};
	
	this.render = function() {
		var that = this;
		that.container.find(that.section).each(function () {
			var el = $(this);
			that.makeHandle(el);
			el.find('.' + that.settings.cssClass.handler).click(function(e) { 
				if (el.hasClass(that.settings.cssClass.open)) that.collapse(e, el);
				else that.expand(e, el);
			});
		});
	};
	
	this.expand = function(e, section) {
		var that = this;
		section.addClass(that.settings.cssClass.open).find('div.more')[that.settings.transition.expand]('normal', function(){
			section.removeClass(that.settings.cssClass.close);
			section.find('a.handler').addClass(that.settings.cssClass.close).text(that.settings.caption.open);
		});
		e.preventDefault();
	};
	
	this.collapse = function(e, section) {
		var that = this;
		section.removeClass(that.settings.cssClass.open).find('div.more')[that.settings.transition.collapse]('normal', function(){
			section.addClass(that.settings.cssClass.close);
			section.find('a.handler').removeClass(that.settings.cssClass.close).text(that.settings.caption.close);
		});
		e.preventDefault();
	};
	
	this.makeHandle = function(section) {
		var that = this;
		if(section.find('div.more').length > 0) {
			var uri = section.find('a.url').attr('href');
			var handlerHtml = section.hasClass(that.settings.cssClass.open) ? '<a class="' + that.settings.cssClass.handler +' '+ that.settings.cssClass.close + '" href="' + uri + '">' + this.settings.caption.open + '</a>' : '<a class="' + that.settings.cssClass.handler + '" href="' + uri + '">' + this.settings.caption.close + '</a>';
			section.find('div.more').after(handlerHtml);
		}
	}
}

// Tint Label
function clearInput (cssClass) {
	// Get the input field and assign it to a variable
	var focusField = $(cssClass);
	
	// If the fields have value leave as is and do not change.
	if ($('#username').val() !== '') {
		$('#username').prev().removeClass('partial').addClass('hidden');
	}
	
	if ($('#password').val() !== '') {
		$('#password').prev().removeClass('partial').addClass('hidden');
	}
	
	focusField.focus( function(){
		// Assign $(this) to a variable, allowing DOM to do less lookup
		var el = $(this).prev();
		
		if (!el.hasClass('partial')) {
			el.addClass('partial');
		}
	});
	
	focusField.keydown( function (){
		var el = $(this);
		if (el.val() !== '') {
			el.prev().removeClass('partial').addClass('hidden');
		}
	});
	
	// Execute when user leaves the input field
	focusField.blur( function () {
		// Assign $(this) to a variable, allowing DOM to do less lookup
		var el = $(this);
		if (el.val() === '') {
			el.prev().removeClass();
		}
	});
}