function toggle(obj) {
	var case_front = document.getElementById('case_front');
	var case_back = document.getElementById('case_back');
	
	if ( obj == 'case_front' ) {
		case_front.style.display = 'inline-block';
		
		if ( case_back.style.display != 'none' )
			case_back.style.display = 'none';
	}
	
	if ( obj == 'case_back' ) {
		case_back.style.display = 'inline-block';
		
		if ( case_front.style.display != 'none' )
			case_front.style.display = 'none';
	}
}

function change_image(obj) {
	var image = document.getElementById('screen');
	var link = document.getElementById('link');
	
	image.src = obj;
	link.href = "http://racketboy.dev:8888/game-images/small/screen_3.png";
}

// The button JS
var btn = {
    init : function() {
        if (!document.getElementById || !document.createElement || !document.appendChild) return false;
        as = btn.getElementsByClassName('btn(.*)');
        for (i=0; i<as.length; i++) {
            if ( as[i].tagName == "INPUT" && ( as[i].type.toLowerCase() == "submit" || as[i].type.toLowerCase() == "button" ) ) {
                var a1 = document.createElement("a");
                a1.appendChild(document.createTextNode(as[i].value));
                a1.className = as[i].className;
                a1.id = as[i].id;
                as[i] = as[i].parentNode.replaceChild(a1, as[i]);
                as[i] = a1;
                as[i].style.cursor = "pointer";
            }
            else if (as[i].tagName == "A") {
                var tt = as[i].childNodes;
            }
            else { return false };
            var i1 = document.createElement('i');
            var i2 = document.createElement('i');
            var s1 = document.createElement('span');
            var s2 = document.createElement('span');
            s1.appendChild(i1);
            s1.appendChild(s2);
            while (as[i].firstChild) {
              s1.appendChild(as[i].firstChild);
            }
            as[i].appendChild(s1);
            as[i] = as[i].insertBefore(i2, s1);
        }
        // The following lines submits the form if the button id is "submit_btn"
        btn.addEvent(document.getElementById('submit_btn'),'click',function() {
            var form = btn.findForm(this);
            form.submit();
        });
        // The following lines resets the form if the button id is "reset_btn"
        btn.addEvent(document.getElementById('reset_btn'),'click',function() {
            var form = btn.findForm(this);
            form.reset();
        });
    },
    findForm : function(f) {
        while(f.tagName != "FORM") {
            f = f.parentNode;
        }
        return f;
    },
    addEvent : function(obj, type, fn) {
        if (obj.addEventListener) {
            obj.addEventListener(type, fn, false);
        }
        else if (obj.attachEvent) {
            obj["e"+type+fn] = fn;
            obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
            obj.attachEvent("on"+type, obj[type+fn]);
        }
    },
    getElementsByClassName : function(className, tag, elm) {
        var testClass = new RegExp("(^|\s)" + className + "(\s|$)");
        var tag = tag || "*";
        var elm = elm || document;
        var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
        var returnElements = [];
        var current;
        var length = elements.length;
        for(var i=0; i<length; i++){
            current = elements[i];
            if(testClass.test(current.className)){
                returnElements.push(current);
            }
        }
        return returnElements;
    }
}

btn.addEvent(window,'load', function() { btn.init();} );

function toggle_owned_wanted(url) {
	$('#gamefunctions-message').load(url).show().animate({opacity: 1.0}, 3000).fadeOut('slow');
}

function toggle_console_owned_wanted(url) {
	$('.console-own-want .message').load(url).show().animate({opacity: 1.0}, 3000).fadeOut('slow');
}

function add_review_rating(id, url, rating) {
	$('#' + id + ' .rating_controls').load(url).hide();
	
	// Do the rating
	var current_rating = parseInt($('#' + id + ' .score').html());
	
	if ( rating == 'p' )
		rating = current_rating + 1;
	else
		rating = current_rating - 1;
	
	$('#' + id + ' .score').html(rating);
}

function remove_owned_game(url, id) {
	$('#owned_' + id + ' span.message').load(url);
	
	if ( $('#owned_' + id + ' span.remove a').html() == 'remove' ) {
		$('#owned_' + id).animate({opacity: .25}, 1000);
		$('#owned_' + id + ' span.remove a').html('undo remove');
	} else {
		$('#owned_' + id).animate({opacity: 1.0}, 1000);
		$('#owned_' + id + ' span.remove a').html('remove');
	}
}

function remove_wanted_game(url, id) {
	$('#wanted_' + id + ' span.message').load(url);
	
	if ( $('#wanted_' + id + ' span.remove a').html() == 'remove' ) {
		$('#wanted_' + id).animate({opacity: .25}, 1000);
		$('#wanted_' + id + ' span.remove a').html('undo remove');
	} else {
		$('#wanted_' + id).animate({opacity: 1.0}, 1000);
		$('#wanted_' + id + ' span.remove a').html('remove');
	}
}

// Add Jquery stars support
$(function(){ $('input[@type=radio].star').rating({ readOnly: true, half: true }); });
$(function(){ $('input[@type=radio].star2').rating(); });
$(function(){
	$('.auto-submit-star').rating({
		callback: function(value, link) {
			var base_url = $('.rating .base_url').html();
			var game_id = $('.rating .game_id').html();
			var port_id = $('.rating .port_id').html();
			$('.rating .message').load(base_url + 'user_rating.php?game_id=' + game_id + '&port_id=' + port_id + "&rating=" + value);
		}
	});
});

function deleteTag(tagSlug, portID, format) {
	var deleteTag = confirm('Delete tag?');
	if ( deleteTag ) {
		$.post('../../../user_tag.php', {
			type: 'delete',
			format: format,
			portID: portID,
			tag: tagSlug
		});
		$('#tag_' + tagSlug).css({ textDecoration: 'line-through' });
	}
}

function addTag(id, format) {
	$('#addTag').toggle();
	var content = '<span class="addField">, <input id="addNewTag" name="addNewTag" value="" />&nbsp;<small><a href="javascript:void()" onClick="javascript:addNewTag(\'' + id + '\', \'' + format + '\');">Add</a> | <a href="javascript:void(0);" onClick="javascript:undoNewTag();">Cancel</a></small></span>';
	$('#addTag').before(content);
	var elem = $('#addNewTag');
	elem.focus();
}

function addNewTag(id, format) {
	var tag = $('input#addNewTag').val();
	
	$.post('../../../user_tag.php', {
		type: 'add',
		format: format,
		portID: id,
		tag: tag
	}, function(content) {
		$('#addTag').before(content);
		undoNewTag();
	}, 'html');
}

function undoNewTag() {
	$('.addField').remove();
	$('#addTag').toggle();
}