var default_inputs = new Array();
var info_default = "";
var blog_defaults = new Array();

function addGBEntry(url, data, cb) {
    $.post(url, data, function(content) {
    	var entry = $('.entry', content);
        var form = $('#guestbook-form', content).html();
        $('#guestbook-form-container').html(form);
        if($('.entry', content).size() > 0) {
            $('#guestbook-entries').prepend(entry);
            entry.hide() 
            $('#guestbook-entries div.latest').hide();
            $('#guestbook-entries div.latest').slideDown("slow", function() {
                $('#sign-guestbook').slideUp(); 
            });
        }
        cb();
    });
}

function spawnNoScroll(desktopURL,windowName,width,height) {
    if ($.browser.msie) {
        newheight = parseInt(height + 17);
    }
    else { newheight = height; }    
    window.open(desktopURL, windowName, "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,width="+width+",height="+newheight+",resizable=no" );
}

function switchPhotoset(id, child_id) {
    var url = '/photos/' + id;
    if(typeof(child_id) != 'undefined') url += '/view/' + child_id;
    window.location.href = url;
}

function addSubscriber() {
    $('#newsletter').find('input').each(function(i,o) {
        if(isDefault(default_inputs, o.name) && o.value == defaultValue(default_inputs, o.name).text) {
            o.value = '';
        }
        else o.value = encodeURIComponent(o.value);
    });
    /*$('#newsletter-layer').load($('#newsletter').attr("action"), 
                                $('#newsletter').serializeF(true, default_inputs),
                                function(request) {
                                    alert(request);
                                });*/
}

function isDefault(fields, name) {
    for(i in fields) {
        var field = fields[i];
        if(field.name == name) return true;
    }
    return false;
}

function defaultValue(fields, name) {
    for(i in fields) {
        var field = fields[i];
        if(field.name == name) return field;
    }
    return null;
}

function installTourLoader() {
    if($('#tour-info').size <= 0) return;
    
    if(info_default == '') {
        info_default = $('#tour-info').html();
    }
    $('#tourdates table tr').removeClass("newest-show");
    $('#tourdates table tr').each(function(i,o) {
        $(o).mouseover(function() {
            $(o).addClass("newest-show");
        });
        $(o).mouseout(function() {
            $(o).removeClass("newest-show");
            /*$('#tour-info').html(info_default);*/
        });
        $(o).bind("click", function() {
            $('#tour-info').load('/tour/' + o.id);
            /*$('#tourdates table tr').unbind();*/
            /*$(o).unbind("mouseover");
            $(o).unbind("mouseout");
            $(o).unbind("click");
            alert($(o).html());*/
            /*setTimeout("installTourLoader()", 5000);*/
        });
    });
    setTimeout("$('#tour-info').html(info_default);", 8000)
    
}

function newsletterDefaults() {
    if($('#newsletter').size() <= 0) return;
    default_inputs = [
        {'name' : 'firstname', 'text' : 'Your name here...'},
        {'name' : 'lastname', 'text' : 'Your last name here...'},
        {'name' : 'phone', 'text' : 'Your phone here...'},
        {'name' : 'email', 'text' : 'Your email here...'}
    ];
    $('#newsletter').defaultTo(default_inputs)
}

function blogCommentDefaults() {
    if($('#blog-comment').size() <= 0) return;
    blog_defaults = [
        {'name' : 'no_spam_name', 'text' : 'Enter your name here...'},
        {'name' : 'no_spam_comment', 'text' : 'Enter your comment here...', 'type' : 'text'}
        
    ];
    $('#blog-comment').defaultTo(blog_defaults)
    $('#blog-comment').bind("submit", function() {
        /*$('#comment-form')*/
        $.post($('#blog-comment').attr("action"), 
               $('#blog-comment').serializeF(true, blog_defaults),
               function(response) {
                    var html = $(response);
                    $('#comment-form').html($('#add-comment-form', html).evalScripts().html())
                    if($('.comment', html).size() > 0) {
                        $('#comments').append($('.comment', html).get(0))
                        $('.entry-comments').get(0).text = $('#comments .comments').size() + ' comments';
                    }
               });
        return false;
    })
}

/**
* Function : dump()
* Arguments: The data - array,hash(associative array),object
*    The level - OPTIONAL
* Returns  : The textual representation of the array.
* This function was inspired by the print_r function of PHP.
* This will accept some data as the argument and return a
* text that will be a more readable version of the
* array/hash/object that is given.
*/
function dump(arr,level) {
	var dumped_text = "";
	if(!level) level = 0;
	
	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";
	
	if(typeof(arr) == 'object') { //Array/Hashes/Objects 
		for(var item in arr) {
			var value = arr[item];
			
			if(typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else {
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
}

var select_idx = 0;

function smartSelect() {
    value = $('#news-search').attr('value');
    if(typeof(value) != 'undefined')
        obj = {'name' : value};
    else obj = null;
    if(obj == null) return false;
    if(obj['name'] == 'All') obj = null;
    $('#results').load('/smart/result', obj, function() {
        $('#results').fadeIn();
        $('#results .item:first').css("background-color", "red");
    });
}
function selectNext() {
    if(select_idx == $('#results .item').size()-1) return false;
    $($('#results .item').get(++select_idx)).css("background-color", "red");
}

function hoverVideo() {
    $('.videos').rowHover('active');
}
function hoverPress() {
    $('#press-quotes-table').rowHover('active');
}

function guestbook() {
    $('#guestbook').submit(function() {
    	$('#surname').val('chris and the other girls');
    	addGBEntry($('#guestbook').attr('action'), $('#guestbook').serializeF(false), guestbook);
        return false;
    })
}

function controllLink() {
    $('#sign-guestbook').slideToggle(400, function() { 
        if($('#sign-guestbook').css('display') == 'none') { 
            $('.error-message').hide(); 
        }
    });
    return false;
}

/* setting the height of the right column */
$(document).ready(function() {
    /*$('#content').css("height", $('#main-frame').height())
    $('#info-right-border').css("height", $('#content').height())
    alert($('#main-frame').height());*/
    $('a[@rel="external"]').each(function(i, o) {
        o.target = '_blank';
    })
    /* installs default values for input fields */
    newsletterDefaults();

    installTourLoader();
    $('#news-search').bind('keypress', function(e) {
        if(e.keyCode == 40) return;
        if(e.keyCode == 13) $('#news-search').attr('value', $('.value', $($('#results .item').get(++select_idx))).text());
        smartSelect();
    });
    $('#news-search').bind('keydown', function(e) {
        selectNext();
    })
    hoverVideo();
    hoverPress();
    $('#releases div').each(function(i,o) {
        $(o).hover(function() {
            $(o).addClass("active")
        }, function() {
            $(o).removeClass("active")
        })
    });
    if($('#press-quotes-table tr.active td').size() > 0) {
        $('#press-info').css('marginTop', $('#press-quotes-table tr.active td').offset().top - (345) + 'px');
    }
    /* press items should be linked */
    $('#press-quotes-table tr td').click(function() {
        var id = $(this).parent().attr('id')
        location.href = '/press/' + id + '#' + id
    })
    guestbook();
});