var colorArray = new Array();
var argArray = new Array();
var colornameArray = new Array();
var clickedid;
var originalcolor;
var _x;
var _y;
var colors = 0;


String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

addLoadEvent(colorpicker);
	
function colorpicker(){
	var picker = document.getElementById("colorradiolist");
	if(picker){
		var colors = picker.getElementsByTagName("li");
		for(var i=0; i<colors.length; i++){
			var arg = colors[i].getElementsByTagName("span")[0].getAttribute("commandargument");
			argArray.push(arg);
			//colorArray.push(colors[i].childNodes[1].nodeValue);
			colorArray.push(colors[i].getElementsByTagName("span")[0].getAttribute("color"));
			colornameArray.push(colors[i].getElementsByTagName("span")[0].className);
		}
		setPallette();
		
	}
}

function setPallette(){
	var colorlist = document.createElement("ul");
	colorlist.id = "swatch";
	for(var i=0; i<colorArray.length; i++){
		var src = colorArray[i].trim();
		if(src.charAt(0) == "#"){
			var newlink = document.createElement("li");
			var newwrapper = document.createElement("a");
			newwrapper.className = colornameArray[i];
			newwrapper.style.background = colorArray[i];
			newlink.appendChild(newwrapper);
			colorlist.appendChild(newlink);
		}
		else{
			var newlink = document.createElement("li");
			var newwrapper = document.createElement("a");
			newwrapper.className = colornameArray[i];
			var newimg = document.createElement("img");
			newimg.src = src;
			newwrapper.appendChild(newimg);
			newlink.appendChild(newwrapper);
			colorlist.appendChild(newlink);
		}
	}
	var colorpicker = document.getElementById("colorpicker");
	colorpicker.appendChild(colorlist);
	setDefault();
	chooseColor();
}



function setDefault(){
	var swatch = document.getElementById("swatch");
		var lists = swatch.getElementsByTagName("li");
		if(lists.length > 0){ 
			swatch.getElementsByTagName("li")[0].className = "selected";
			var colorname = getClasses("colorname","span")[0];
			//var h5 = document.getElementById("colorpicker").getElementsByTagName("h5")[0];
			colorname.firstChild.nodeValue = colornameArray[0];
		}
	
}

function chooseColor(){
	
	 var swatch = document.getElementById("swatch");
	 var colors = swatch.getElementsByTagName("li");
	 //var h5 = document.getElementById("colorpicker").getElementsByTagName("h5")[0];
	 var colorname = getClasses("colorname","span")[0];
	 for(var i=0; i<colors.length; i++){
		 
		colors[i].onmouseover = function(){
			originalcolor = colorname.firstChild.nodeValue;
			colorname.firstChild.nodeValue = this.getElementsByTagName("a")[0].className;
			var isIE = document.all?true:false;
			if (!isIE) document.captureEvents(Event.MOUSEMOVE);
			
			var rollover = document.createElement("div");
			rollover.className = "rollover";
			var colorblock = document.createElement("div");
			colorblock.className = "colorblock";
			var colortext = document.createElement("div");
			colortext.className = "colortext";
			var colortextnode = document.createTextNode(colorname.firstChild.nodeValue);
			colortext.appendChild(colortextnode);
			
			rollover.appendChild(colorblock);
			rollover.appendChild(colortext);
			this.appendChild(rollover);
			
			
			var img = getTag("img",this)[0];
			if(img){
				var src = img.src;
				src = "url(" + src + ") repeat"
				colorblock.style.background = src;
			}
			else{
				var bgcolor =  this.getElementsByTagName("a")[0].style.background;
				colorblock.style.background = bgcolor;
			}				
		}
		
		colors[i].onclick = function(){
			clearAll(colors);
			this.className = "selected";
			setButton(colors);
			return false;
		}
		
		colors[i].onmouseout = function(){
			colorname.firstChild.nodeValue = originalcolor;
			var rollovers = getClasses("rollover","div");
			for(var j=0; j<rollovers.length; j++){
				rollovers[j].parentNode.removeChild(rollovers[j]);
				
			}
		}
	 }	 
}

function setButton(colors){
	for(var i=0; i<colors.length; i++){
		if(colors[i].className == "selected"){
			clickedid = argArray[i];
			var colorname = getClasses("colorname","span")[0];
			//var h5 = document.getElementById("colorpicker").getElementsByTagName("h5")[0];
			colorname.firstChild.nodeValue = colornameArray[i];
			originalcolor = colornameArray[i];
			break;
		}
	}
	
	var colorpicker = document.getElementById("colorradiolist");
	var radiobuttons = colorpicker.getElementsByTagName("span");
	for(var i=0; i<radiobuttons.length; i++){
		var commandargument = radiobuttons[i].getAttribute("commandargument");
		if(commandargument == clickedid){
			var input = radiobuttons[i].getElementsByTagName("input")[0].checked = true;
		}
		else{
			var input = radiobuttons[i].getElementsByTagName("input")[0].checked = false;
		}
	}
}

function clearAll(colors){
	for(var i=0; i<colors.length; i++){
		colors[i].className = "";
	}
}

function getMousePosition(e) {
	var isIE = document.all?true:false;
  	if (!isIE) {
    	_x = e.pageX;
    	_y = e.pageY;
  	}
  	if (isIE) {
    	_x = event.clientX + document.body.scrollLeft;
    	_y = event.clientY + document.body.scrollTop;
	}	

  	return true;
}

