
var site_success_message_timeout_period = 5000; //5 seconds
var site_error_message_timeout_period = 10000; //5 seconds   

$(document).ready(function() {

	//Remove site message boxes
	setTimeout(clear_site_success_message, site_success_message_timeout_period);
	setTimeout(clear_site_error_message, site_error_message_timeout_period);
    
    //Start ticker tape msg
    do_ticker();
    
    // Find a team city search
    if($('#findteamcountry').val() != 'GB')
    {
        $('#findteamcity, #ftc_label').hide();
    }
    if($('#findteamcountry').val() != 'US')
    {
        $('#findteamstate, #fts_label').hide();
    }
    if($('#findteamcountry').val() != 'GB' && $('#findteamcountry').val() != 'US')
    {
        $('#fts_label, #ftc_label').hide();       
    } 
    $('#findteamcountry').change(function(){
        var cc = $(this).val();
        if(cc == 'GB')
        {
            $('#findteamcity, #ftc_label').show();
            $('#findteamstate, #fts_label').hide();
        }
        else if(cc == 'US')
        {
            $('#findteamstate, #fts_label').show();
            $('#findteamcity, #ftc_label').hide();
        }
        else
        {
            $('#findteamcity, #findteamstate, #ftc_label, #fts_label').hide(); 
        }
    });
    
    // Change form username to 'Forum username'
    $("label.opendoorRequired[for=username]").text('Forum Username');
                   
    
    // Toggle comments
    $('a#togglecomments').click(function(){
        $('div#commentbulk').slideToggle('slow');
    });
       
    $('a.togglemembercontent').click(function(){   
        if($('div#container_' + this.id).is(':visible')){
            $('img#img_' + this.id).attr({src : "../../images/icon_panel_expand.jpg"}); 
        } 
        else{
            $('img#img_' + this.id).attr({src : "../../images/icon_panel_collapse.jpg"}); 
        }
        $('div#container_' + this.id).slideToggle('slow');
    });
    
    // Reporting
    $('a.reportcomment').click(function(){
        var thisId = this.id;
        $.post("./packages/members/data/report.php", {item: thisId}, function(data){
            Boxy.alert("<p>Thank you for reporting this content.  A moderator will look at it, and remove or edit if deemed inappropriate.</p>", null, {title: 'Report Content'});
        });
    });
    
    $('a.reportmembercomment').click(function(){
        var thisId = this.id;
        $.post("../../packages/members/data/report.php", {item: thisId}, function(data){
            Boxy.alert("<p>Thank you for reporting this content.  A moderator will look at it, and remove or edit if deemed inappropriate.</p>", null, {title: 'Report Content'});
        });
    });
    
    // Reporting
    $('input.addyourcomment').click(function(){
        if($('textarea.addcomment').val() == '' || $('textarea.addcomment').val() == 'Add your comment...')
        {
            Boxy.alert("<p>Please enter your comment.</p>", null, {title: 'Error'});
            return false;
        }
    });
    
    // Popout player
    $('a.popoutplayer').click(function(){
        var thisId = this.id;
        var offset = '';
        if(thisId == 'members'){
            offset = '../../';
        }
        window.open(offset + "popoutplayer.php", 'popoutplayer', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=164,left = 322,top = 183');
    });
    
    /** Gallery Thumb Scroller */ 
    var mover;
    var pos = 0;
    var framerate = 30;
    var max_up = $('.thumbnails').height() - $('#thumbcontainer').height();
    $('a#gallerythumbsup, a#gallerythumbsdown').mousedown(function(){
        var move;
        if(this.id == 'gallerythumbsup')
        {
            move = 'down';    
        }
        else if(this.id == 'gallerythumbsdown')
        {
            move = 'up';    
        }
        mover = setInterval(function() {
            scroll_thumbs(move)
        }, 1000/framerate); 
    });
    $('a#gallerythumbsup, a#gallerythumbsdown').mouseup(function(){
        clearInterval(mover);  
    });
    
    
    
    $('#albumpicker').change(function(){
		window.location = base_url + 'gallery/' + $(this).val();
    }); 
    
    
    // Attending events
    $('a.attending').click(function(e){
        var thisId = this.id;
        var container = $('#attending-' + thisId).find(".attending-content");
        $(container).html('');
        $('#info-' + thisId).slideUp(function(){
            $('#attending-' + thisId).slideDown(function(){
                // Get people who are attending
                $.ajax({
					type: "POST",
					url: base_url + "gigs/show_attendees/" + thisId,
					beforeSend: function(){
					    $(container).html('<img src="' + base_url + 'img/ajax-loader-trans.gif" alt="Loading" style="margin-left: 200px" />');    
					},
					success: function(data){
						$(container).html(data);
					}
				});
            });
        });
        e.preventDefault();  
    });
    // More info on events
    $('a.togglemore').click(function(e){
        var thisId = this.id;
		$('#attending-' + thisId).slideUp(function(){
			$('#info-' + thisId).slideDown();
		});
        e.preventDefault();  
    });
    // Close event info
    $('input.close-gig-info').click(function(e){
        $(this).parent('.more-info').slideUp();
        e.preventDefault();  
    });
    
    // Mark attending
    $('.markattending').live('click', function(e){
        var thisId = this.id;
        var container = $('#attending-' + thisId).find(".attending-content");
        // Get people who are attending
		$.ajax({
			type: "POST",
			url: base_url + "gigs/attending/" + thisId,
			beforeSend: function(){
				$(container).html('<img src="' + base_url + 'img/ajax-loader-trans.gif" alt="Loading" style="margin-left: 200px" />');    
			},
			success: function(data){
				$(container).html(data);
			}
		});
		e.preventDefault();  
    });
    
    
    // Galleries
    var loading_img = false;
    $('a.prevgallimg, a.nextgallimg, a.thumbgallimg').click(function(event){
		event.preventDefault();
        if(!loading_img)
        {
			var parts = this.id.split('_');
			var album = parts[0];
			var img = parts[1];
			loading_img = true;

			if (Modernizr.history)
				history.pushState({ img:img, album:album }, '', this.href);

			get_image(album, img);
			get_image_comments(album, img);
        }      
    });

	window.onpopstate = function(event) {
		if (event.state)
		{
			loading_img = true;
			get_image(event.state.album, event.state.img);
			get_image_comments(event.state.album, event.state.img);
		}
	};



    function do_ticker()
    {
        var ticker_width = $('#tickermsg').width();
        var container_width = ($('#ticker_overflow').width()) + 50;
        $('#tickermsg').css('left', container_width + 'px');
        $('#tickermsg').animate({
            'left': '-=' + (ticker_width + container_width)
            }, 20000, 'linear', function() {
                do_ticker();
        });
    }

    function scroll_thumbs(dir)
    {
        switch(dir)
        {
            case 'up':
                pos = pos - 10;
                if(pos < max_up)
                {
                    pos = max_up;
                }
                break;
            case 'down':
                pos = pos + 10;
                if(pos > 0)
                {
                    pos = 0;
                }
                break;
        }
        if(pos <= 0 && pos >= max_up)
        {
            $('#thumbcontainer').css('top', pos.toString() + 'px');
        }
    }

    function get_image(album, img)
    {
        $.ajax({
            type: "POST",
            dataType: 'json',
            //data: 'album=' + album.toString() + '&img=' + img.toString(),
            //url: "data/change_gallery.php?type=image",
            url: base_url + 'gallery/change_image/' + album.toString() + '/' + img.toString(),
            beforeSend: function(){
                // Show loading
                $('#main_gallery_image').html('<img src="' + base_url + 'img/ajax-loader-trans.gif" style=" margin-top: 200px" />');
                $('#melikey').html('');
            },
            success: function(data){
                // Get JSON response
                var res = data.image[0];
                $('#main_gallery_image').html('<img src="' + res.image_url + '" style="max-width: 578px; max-height: 450px;" />');
                // Do Prev?
                if(res.do_prev)
                {
                    $('a.prevgallimg').attr('id', res.album + '_' + res.prev);
					if (username)
						$('a.nextgallimg').attr('href', base_url+'gallery/members/'+username+'/'+res.album+'/'+res.prev);
					else
						$('a.nextgallimg').attr('href', base_url+'gallery/'+res.album+'/'+res.prev);
                    $('a.prevgallimg').show();
                }
                else
                {
                    $('a.prevgallimg').hide();
                }
                // Do Next?
                if(res.do_next)
                {
                    $('a.nextgallimg').attr('id', res.album + '_' + res.next);
					if (username)
						$('a.nextgallimg').attr('href', base_url+'gallery/members/'+username+'/'+res.album+'/'+res.next);
					else
						$('a.nextgallimg').attr('href', base_url+'gallery/'+res.album+'/'+res.next);
                    $('a.nextgallimg').show();
                }
                else
                {
                    $('a.nextgallimg').hide();
                }
                // Facebook like
				if (username)
				{
					$('#melikey').html('<fb:like href="'+base_url+'gallery/members/'+username+'/'+res.album+'/'+res.image_id+'" send="false" layout="button_count" width="90" show_faces="false"></fb:like>');
				}
				else
				{
					$('#melikey').html('<fb:like href="'+base_url+'gallery/'+res.album+'/'+res.image_id+'" send="false" layout="button_count" width="90" show_faces="false"></fb:like>');
					$('#melikey').append('<a href="http://twitter.com/share?url='+base_url+'gallery/'+res.album+'/'+res.image_id+'&count=none&via=VVbrown" class="twitter-share-button">Tweet</a>');
					$('#melikey').append('<div class="g-plusone" data-size="medium" href="'+base_url+'gallery/'+res.album+'/'+res.image_id+'"></div>');
					$('#melikey').append('<script type="text/javascript">gapi.plusone.go();</script>');
					$.getScript("http://platform.twitter.com/widgets.js");
				}
                FB.XFBML.parse(document.getElementById('melikey'));
				//$('#melikey').html('<iframe src="http://www.facebook.com/plugins/like.php?href=' + base_url + '%2Fphotos%2F' + res.album + '%2F' + res.image_id + '&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>');
                $('#delete_image input[name=id]').val(res.image_id);
				$('.page_panel').attr('id', 'item_id_'+res.image_id);
				loading_img = false;
            }
        });
    }

    function get_image_comments(album, img)
    {
		var url;
		if (username)
			url = 'photos:members:'+username+':'+album+':'+img;
		else
			url = 'photos:'+album+':'+img;
        $.ajax({
            type: "GET",
			dataType: "json",
            url: base_url + "comments/get/photo/"+img.toString()+'/'+encodeURIComponent(url)+'/620',
            beforeSend: function(){
                $('#gallerycomments').fadeTo('fast', '0');
            },
            success: function(data){
                $('#gallerycomments').html(data.comments);
                $('#gallerycomments').fadeTo('slow', '1');
				FB.XFBML.parse(document.getElementById('gallerycomments'));
            }
        });
    }
    
    /* Add list of links for each h3 title */
    $('#faqcontent').prepend('<br />');   
    var reversed_headers = $("#faqcontent h3").get().reverse();
    $(reversed_headers).each(function(){
        $('#faqcontent').prepend('<a href="#' + escape($(this).text()) + '">' + $(this).text() + '</a><br />'); 
        $(this).append('<a name="' + escape($(this).text()) + '">&nbsp;</a>');    
    });

    $('.reward').delegate('a.storereward', 'click', function(){
        if(confirm('Are you sure you want to redeem this reward?')){
            var thisId  = this.id;
            $.ajax({
                type: "POST",
                data: 'award=' + thisId,
                url: base_url + 'rewards/store_redeem',
                success: function(data){
                   $('.srcon').html(data);
                }
            });
        }
        else
        {
            return false;
        }
    });
    
    /* messaging.js */
    $('#compose_message_form').submit(function(){
		var subject = $('#compose_message_form input[name=subject]').val();
		var message = $('#compose_message_form textarea[name=message]').val();
	
		if ((subject == '') || (message == ''))
		{
			if (subject == '')
			{
				$('#compose_message_subject_error').html('Missing subject');
			}
			return false;
		}
		else
		{
			return true;
		}
	});
	
	/* Vidplayer */
	
	$('#vidthumbs').jScrollPane();
    // Swap vids
    $('#youtubeplayer').delegate('.vidplayer-thumb-item', 'click', function(e){              
        $('.vidplayer-iframe').attr('src', 'http://www.youtube.com/embed/' + this.id + '?autoplay=1&rel=0');
        var container = $(this).parent('.vid-item');
        $('.vid-item').removeClass('item-on');
        $(container).addClass('item-on');
        updateVidLikes(this.id)
        e.preventDefault();        
    });
     $('#most-viewed').delegate('.vidplayer-thumb-item', 'click', function(e){              
        $('.vidplayer-iframe').attr('src', 'http://www.youtube.com/embed/' + this.id + '?autoplay=1&rel=0');
        $('.vid-item').removeClass('item-on');
        $('#container-' + this.id).addClass('item-on');
        updateVidLikes(this.id)
        e.preventDefault();        
    });
    
    function updateVidLikes(vidId){
        $('#videolike').html('<iframe scrolling="no" frameborder="0" allowtransparency="true" src="http://www.facebook.com/plugins/like.php?href=' + escape(base_url + 'videos/' + vidId) + '&amp;layout=button_count&amp;&amp;action=like&amp;colorscheme=light"></iframe>');
        $('#videoaddthis').attr('addthis:url', base_url + 'videos/' + vidId);
    }
	
        
    $('input').placeholder();
    
    // Friend tagging
    $('.tag_delete').click(function(e){
        if(!confirm("Remove this tag?"))
        {
            e.preventDefault();
        }
    });
    
    // Archive panel
    $('#archive-panel').delegate('.toggle-years', 'click', function(e){      
        var thisId = this.id;
        $('#archive-for-' + thisId).slideToggle();
        e.preventDefault();
    });
    $('#archive-panel').delegate('.toggle-months', 'click', function(e){      
        var thisId = this.id;
        $('#articles-for-' + thisId).slideToggle();
        e.preventDefault();
    });
    if( $('.viewing-article-flag').attr('id') != undefined ){
        var thisId = $('.viewing-article-flag').attr('id'); 
        var parts = thisId.split('-');
		var year = parts[1];
        $('.year-list').hide();
		$('#archive-for-' + year).show();
		$('#articles-for-' + thisId).slideDown();
	}
    
	//Bind to the login button and toggle the login box
	$('#top-menu input.open_login').click(function(event) {
		event.preventDefault();
		if ($('#login_overlay').css('display') == 'block')
			remove_login_overlay();
		else
			show_login_overlay();
	});
	
	//Bind to the register button and toggle the register box
	$('#top-menu input.open_register').click(function(event) {
		event.preventDefault();
		if ($('#register_overlay').css('display') == 'block')
			remove_register_overlay();
		else
			show_register_overlay();
	});

	Shadowbox.init({
		handleOversize: "resize",
		modal: true
	});
	
	update_video_playcount();
	
});

function update_video_playcount()
{
	$('.user_video').each(function() {
		var video_id = $(this).attr('data-video_id');
		var id = $(this).attr('data-id');
		$.ajax({
			type: "GET",
			dataType: "json",
			url: base_url + 'user_videos/view_count/'+id+'/'+video_id,
			success: function(data){
				$('#video_'+data.id+' .view_count').text(data.count);
			}
		});
	});
	
}

function remove_login_overlay()
{
	$('#login_overlay').hide();
}
function show_login_overlay()
{
	if ($('#login_overlay').attr('data-loaded') == 'false')
	{
		$.ajax({
			type: "GET",
			dataType: "json",
			url: base_url + 'community/login_form',
			success: function(data){
				$('#login_overlay').attr('data-loaded', 'true');
				$('#login_overlay').html(data.login_html);
				$('#login_overlay').append(data.facebook_html);
				$('#login_overlay').append(data.twitter_html);
				$('body').append(data.login_javascript);
				$('body').append(data.social_javascript);
				
				$('#opendoorFacebookButtonText').text('Facebook Login');
				$('#opendoorTwitterLogin').text('Twitter Login');
			}
		});
		
	}
	$('#register_overlay').hide();
	$('#login_overlay').show();
}

function remove_register_overlay()
{
	$('#register_overlay').hide();
}
function show_register_overlay()
{
	if ($('#register_overlay').attr('data-loaded') == 'false')
	{
		$.ajax({
			type: "GET",
			dataType: "json",
			url: base_url + 'community/register_form',
			success: function(data){
				$('#register_overlay').attr('data-loaded', 'true');

				$('#register_overlay .loading').hide();
				$('#register_overlay .hidetemp').show();

				//$('#login_overlay').html(data.login_html);
				$('#register_overlay').prepend(data.facebook_html);
				$('#register_overlay').prepend(data.twitter_html);
				//$('body').append(data.login_javascript);
				$('body').append(data.social_javascript);

				$('#opendoorFacebookButtonText').text('Facebook Login');
				$('#opendoorTwitterLogin').text('Twitter Login');
			}
		});

	}
	$('#login_overlay').hide();
	$('#register_overlay').show();
}


function set_and_display_error(message)
{
	$('.error_message').text(message);
	$('.error_message').slideDown();
	setTimeout(clear_site_error_message, site_error_message_timeout_period);
}
function set_and_display_success(message)
{
	$('.success_message').text(message);
	$('.success_message').slideDown();
	setTimeout(clear_site_success_message, site_success_message_timeout_period);
}


function clear_site_success_message() {
	$('.success_message').slideUp();
}

function clear_site_error_message() {
	$('.error_message').slideUp();
}

/**
 * Redeem reward confirmation
 */
function confirm_redeem(){
    if(confirm('Are you sure you want to redeem this reward?'))
    {
        return true;
    }
    else
    {
        return false;
    }
}


//Helper functions for storing the users likes and unlikes
function fb_like(url)
{
	$.post(base_url+'points/like', {url: url});
}
function fb_unlike(url)
{
	$.post(base_url+'points/unlike', {url: url});
}
function fb_comment(url)
{
	$.post(base_url+'points/comment', {url: url});
}
function fb_uncomment(url)
{
	$.post(base_url+'points/uncomment', {url: url});
}

/** 
JQUERY PLACEHOLDER
*/

(function($) {
	$.extend({
		placeholder : {
			settings : {
				focusClass: 'placeholderFocus',
				activeClass: 'placeholder',
				overrideSupport: false,
				preventRefreshIssues: true
			},
			debug : false,
			log : function(msg){
				if(!$.placeholder.debug) return;
				msg = "[Placeholder] " + msg;
				$.placeholder.hasFirebug ?
				console.log(msg) :
				$.placeholder.hasConsoleLog ?
					window.console.log(msg) :
					alert(msg);
			},
			hasFirebug : "console" in window && "firebug" in window.console,
			hasConsoleLog: "console" in window && "log" in window.console
		}

	});

    // check browser support for placeholder
    $.support.placeholder = 'placeholder' in document.createElement('input');

	// Replace the val function to never return placeholders
	$.fn.plVal = $.fn.val;
	$.fn.val = function(value) {
		$.placeholder.log('in val');
		if(this[0]) {
			$.placeholder.log('have found an element');
			var el = $(this[0]);
			if(value != undefined)
			{
				$.placeholder.log('in setter');
				var currentValue = el.plVal();
				var returnValue = $(this).plVal(value);
				if(el.hasClass($.placeholder.settings.activeClass) && currentValue == el.attr('placeholder')){
					el.removeClass($.placeholder.settings.activeClass);
				}
				return returnValue;
			}

			if(el.hasClass($.placeholder.settings.activeClass) && el.plVal() == el.attr('placeholder')) {
				$.placeholder.log('returning empty because it\'s a placeholder');
				return '';
			} else {
				$.placeholder.log('returning original val');
				return el.plVal();
			}
		}
		$.placeholder.log('returning undefined');
		return undefined;
	};

	// Clear placeholder values upon page reload
	$(window).bind('beforeunload.placeholder', function() {
		var els = $('input.' + $.placeholder.settings.activeClass);
		if(els.length > 0)
			els.val('').attr('autocomplete','off');
	});


    // plugin code
	$.fn.placeholder = function(opts) {
		opts = $.extend({},$.placeholder.settings, opts);

		// we don't have to do anything if the browser supports placeholder
		if(!opts.overrideSupport && $.support.placeholder)
		    return this;

        return this.each(function() {
            var $el = $(this);

            // skip if we do not have the placeholder attribute
            if(!$el.is('[placeholder]'))
                return;

            // we cannot do password fields, but supported browsers can
            if($el.is(':password'))
                return;

			// Prevent values from being reapplied on refresh
			if(opts.preventRefreshIssues)
				$el.attr('autocomplete','off');

            $el.bind('focus.placeholder', function(){
                var $el = $(this);
                if(this.value == $el.attr('placeholder') && $el.hasClass(opts.activeClass))
                    $el.val('')
                       .removeClass(opts.activeClass)
                       .addClass(opts.focusClass);
            });
            $el.bind('blur.placeholder', function(){
                var $el = $(this);

				$el.removeClass(opts.focusClass);

                if(this.value == '')
                  $el.val($el.attr('placeholder'))
                     .addClass(opts.activeClass);
            });

            $el.triggerHandler('blur');

			// Prevent incorrect form values being posted
			$el.parents('form').submit(function(){
				$el.triggerHandler('focus.placeholder');
			});

        });
    };
    
/*
    jQuery-SelectBox
    
*/

jQuery.fn.selectbox = function(options){
	/* Default settings */
	var settings = {
		className: 'jquery-selectbox',
		animationSpeed: "normal",
		listboxMaxSize: 10,
		replaceInvisible: false
	};
	var commonClass = 'jquery-custom-selectboxes-replaced';
	var listOpen = false;
	var showList = function(listObj) {
		var selectbox = listObj.parents('.' + settings.className + '');
		listObj.slideDown(settings.animationSpeed, function(){
			listOpen = true;
		});
		selectbox.addClass('selecthover');
		jQuery(document).bind('click', onBlurList);
		return listObj;
	}
	var hideList = function(listObj) {
		var selectbox = listObj.parents('.' + settings.className + '');
		listObj.slideUp(settings.animationSpeed, function(){
			listOpen = false;
			jQuery(this).parents('.' + settings.className + '').removeClass('selecthover');
		});
		jQuery(document).unbind('click', onBlurList);
		return listObj;
	}
	var onBlurList = function(e) {
		var trgt = e.target;
		var currentListElements = jQuery('.' + settings.className + '-list:visible').parent().find('*').andSelf();
		if(jQuery.inArray(trgt, currentListElements)<0 && listOpen) {
			hideList( jQuery('.' + commonClass + '-list') );
		}
		return false;
	}
	
	/* Processing settings */
	settings = jQuery.extend(settings, options || {});
	/* Wrapping all passed elements */
	return this.each(function() {
		var _this = jQuery(this);
		if(_this.filter(':visible').length == 0 && !settings.replaceInvisible)
			return;
		var replacement = jQuery(
			'<div class="' + settings.className + ' ' + commonClass + '">' +
				'<div class="' + settings.className + '-moreButton" />' +
				'<div class="' + settings.className + '-list ' + commonClass + '-list" />' +
				'<span class="' + settings.className + '-currentItem" />' +
			'</div>'
		);
		jQuery('option', _this).each(function(k,v){
			var v = jQuery(v);
			var listElement =  jQuery('<span class="' + settings.className + '-item value-'+v.val()+' item-'+k+'">' + v.text() + '</span>');	
			listElement.click(function(){
				var thisListElement = jQuery(this);
				var thisReplacment = thisListElement.parents('.'+settings.className);
				var thisIndex = thisListElement[0].className.split(' ');
				for( k1 in thisIndex ) {
					if(/^item-[0-9]+$/.test(thisIndex[k1])) {
						thisIndex = parseInt(thisIndex[k1].replace('item-',''), 10);
						break;
					}
				};
				var thisValue = thisListElement[0].className.split(' ');
				for( k1 in thisValue ) {
					if(/^value-.+$/.test(thisValue[k1])) {
						thisValue = thisValue[k1].replace('value-','');
						break;
					}
				};
				thisReplacment
					.find('.' + settings.className + '-currentItem')
					.text(thisListElement.text());
				thisReplacment
					.find('select')
					.val(thisValue)
					.triggerHandler('change');
				var thisSublist = thisReplacment.find('.' + settings.className + '-list');
				if(thisSublist.filter(":visible").length > 0) {
					hideList( thisSublist );
				}else{
					showList( thisSublist );
				}
			}).bind('mouseenter',function(){
				jQuery(this).addClass('listelementhover');
			}).bind('mouseleave',function(){
				jQuery(this).removeClass('listelementhover');
			});
			jQuery('.' + settings.className + '-list', replacement).append(listElement);
			if(v.filter(':selected').length > 0) {
				jQuery('.'+settings.className + '-currentItem', replacement).text(v.text());
			}
		});
		replacement.find('.' + settings.className + '-moreButton').click(function(){
			var thisMoreButton = jQuery(this);
			var otherLists = jQuery('.' + settings.className + '-list')
				.not(thisMoreButton.siblings('.' + settings.className + '-list'));
			hideList( otherLists );
			var thisList = thisMoreButton.siblings('.' + settings.className + '-list');
			if(thisList.filter(":visible").length > 0) {
				hideList( thisList );
			}else{
				showList( thisList );
			}
		}).bind('mouseenter',function(){
			jQuery(this).addClass('morebuttonhover');
		}).bind('mouseleave',function(){
			jQuery(this).removeClass('morebuttonhover');
		});
		_this.hide().replaceWith(replacement).appendTo(replacement);
		var thisListBox = replacement.find('.' + settings.className + '-list');
		var thisListBoxSize = thisListBox.find('.' + settings.className + '-item').length;
		if(thisListBoxSize > settings.listboxMaxSize)
			thisListBoxSize = settings.listboxMaxSize;
		if(thisListBoxSize == 0)
			thisListBoxSize = 1;	
		var thisListBoxWidth = Math.round(_this.width() + 5);
		if(jQuery.browser.safari)
			thisListBoxWidth = thisListBoxWidth * 0.94;
		replacement.css('width', thisListBoxWidth + 'px');
		thisListBox.css({
			width: Math.round(thisListBoxWidth-5) + 'px',
			height: thisListBoxSize + 'em'
		});
	});
}
jQuery.fn.unselectbox = function(){
	var commonClass = 'jquery-custom-selectboxes-replaced';
	return this.each(function() {
		var selectToRemove = jQuery(this).filter('.' + commonClass);
		selectToRemove.replaceWith(selectToRemove.find('select').show());		
	});
}

/*
   End / jQuery-SelectBox
    
*/

})(jQuery);
