;(function($) {

var ver = 1.0;

//	Simple log function to log runtime errors, mainly
//	for development.
function log(message){

	if (window.console && window.console.log){
		window.console.log('[atlantis color] - '+message);
	}
};

$.fn.atlantiscolor = function(options) {

	// we need to return the jQuery to allow it to be chained
	// further, and we'll iterate on the matched nodeset.
	return this.each(function() {
	
		// extend the default options, since some of them are
		// optional.
		options = $.extend($.fn.atlantiscolor.defaults, options);
	
		var $this = $(this);
		
		// init function, will only be called once per node.
		var opts = init($this, options);
		
	});
};

function init(container, options){
	var nodes = setupXML(options.xml_src);
	var id = 0;
	var obj = {};
	var current = {};
	setupDOM(container, options, nodes);

	$(".color-option").live("click", function(event){
		event.preventDefault();
		var id = $(this).attr("id").replace("colorswap-", "");
		current = turnToObject(nodes[id]);
		$("#colortarget-img").empty().append("<img src='"+current.image+"'/>");
		$("#colortarget-content").empty().append("<h3>"+current.title+"</h3><ul><li><span>Slitstyrka:</span><span>"+current.durability+"</span></li><li><span>Brandklass:</span><span>"+current.fireclass+"</span></li></ul>");
	});
};
function setupDOM(container, options, nodes){
	var current = {};
	container.css({width: options.width});
	container.append("<div id='color-options'></div>");
	container.append("<div id='color-content'></div>");
	$("#color-content").append("<div id='colortarget-img'></div><div id='colortarget-content'></div>");
	
	for(var i = 0; i < nodes.length; i++){
		current = turnToObject(nodes[i]);
	
		$("#color-options").append("<a id='colorswap-"+i+"' class='color-option' href='#'><img width='35' src='"+current.image+"'/></a>");
	}
}
function turnToObject(e){
	var t = {};
	e = e.childNodes || e;
	for (var i=0; i< e.length; i++){
		
		if(e[i].nodeType == 1){
			
			t[e[i].nodeName] = (e[i].childNodes.length > 1 ? turnToObject(e[i].childNodes) : e[i].firstChild.nodeValue);
		}
	}
	
	return t;
}

function setupXML(xml_src){
	
	if (window.XMLHttpRequest){
		// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp=new XMLHttpRequest();
		
	}
	else{
		// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	  
	xmlhttp.open("GET",xml_src,false);
	xmlhttp.send();
	xml = xmlhttp.responseXML; 
	var items = xml.documentElement.childNodes;
	
	var nodes = new Array();
	for(i=0; i < items.length; i++){
		
		if(items[i].nodeType == 1)
			nodes.push(items[i]);
	}

	return nodes;
}


//	Public default options for the plugin.
$.fn.atlantiscolor.defaults = {
	width: "734px"
};

//	Public function that returns the current version of the plugin.
$.fn.atlantiscolor.ver = function() { return ver; };

})(jQuery);


