var doIt = "yes";
var current;
var color;
var picker;
window.onload = function(e) {
		color = document.getElementById("color");
		picker = new YAHOO.widget.ColorPicker("color", { 
    showhsvcontrols: false, showrgbcontrols: false,
	    showcontrols: true, showwebsafe: false, showhexsummary: false,
	    images: { 
	        PICKER_THUMB: "http://developer.yahoo.com/yui/examples/colorpicker/assets/picker_thumb.png", 
	        HUE_THUMB: "http://developer.yahoo.com/yui/examples/colorpicker/assets/hue_thumb.png" 
	    } 
	}); 
	picker.on("rgbChange", function(e) {
			current.value = '#' + picker.get("hex");
			current.onChange();
									});
	document.getElementById("fgText").onChange = fgChange;
	document.getElementById("bgText").onChange = bgChange;
	document.getElementById("linkText").onChange = linkChange;
	document.getElementById("infoText").onChange = infoChange;
	document.getElementById("activeText").onChange = activeChange;
	document.getElementById("headerText").onChange = textChange;
	document.getElementById("method").onchange = methodChange;
	document.getElementById("align").onchange = alignChange;
	document.getElementById("widgetBuilder").onclick = destroy;
	document.getElementById("fgText").onclick = selected;
	document.getElementById("bgText").onclick = selected;
	document.getElementById("linkText").onclick = selected;
	document.getElementById("infoText").onclick = selected;
	document.getElementById("activeText").onclick = selected;
	document.getElementById("headerText").onclick = selected;
	document.getElementById("h0").onclick = handleLinks;
	document.getElementById("h1").onclick = handleLinks;
	document.getElementById("h2").onclick = handleLinks;
	document.getElementById("handleLinks").onfocus = handlerFocus;
	
	handleIE();
	
};

function closeColor() {
	color.style.left = '-2000px';
}

function destroy(e) {
	if(doIt == "yes") {
	color.style.left = "-2000px";
	doIt = "no";
	var inputClicked = getSource(e);
	inputClicked.onclick();
	doIt = "yes";
	} 
}

function selected(e) {
	if(e && 'value' in e) {
		current = this;
	} else {
		current = getSource(e);
	}
	var v = current.value;
	picker.setValue([parseInt(v.substring(1,3),16),parseInt(v.substring(3,5),16),parseInt(v.substring(5,7),16)], false);
	
	var curDiv = current.parentNode;
	color.style.display = "inline";
	color.style.left = curDiv.style.left;
	color.style.top = (parseInt(curDiv.style.top.substring(0,3)) + 27) + 'px' ;
}

function updateDiv() {
	current.parentNode.getElementsByTagName('div')[0].style.backgroundColor = current.value;
}

function getSource(e) {
	var source;
	if(!e) {
		source = window.event.srcElement;
	}
	else if (e.srcElement) {
		source = e.srcElement;
	}
	else {
		source = e.target;
	}
	return source;
}

function bgChange() {
	var bg = document.getElementById("bgText").value;
		var tops = document.getElementById("bgtop").getElementsByTagName("b");
	var i;
	for(i=0;i<tops.length;i++) {
		tops[i].style.backgroundColor = bg;
	}
	var bops = document.getElementById("bgbottom").getElementsByTagName("b");
	for(i=0;i<bops.length;i++) {
		bops[i].style.backgroundColor = bg;
	}
	document.getElementById("bg").style.backgroundColor = bg;
	updateDiv();
}


function fgChange() {
	var fg = document.getElementById("fgText").value;
	var tops = document.getElementById("fgtop").getElementsByTagName("b");
	var i;
	for(i=0;i<tops.length;i++) {
		tops[i].style.backgroundColor = fg;
	}
	var bops = document.getElementById("fgbottom").getElementsByTagName("b");
	for(i=0;i<bops.length;i++) {
		bops[i].style.backgroundColor = fg;
	}
	document.getElementById("fg").style.backgroundColor = fg;
	updateDiv();
}

function linkChange() {
	var links = document.getElementById("linkText").value;
	var blinks = document.getElementById("blinks").getElementsByTagName("a");
	var k = 0;
	var l = blinks.length;
	for(k=0;k<l;k++) {
		blinks[k].style.color = links;
	}
	updateDiv();
}

function infoChange() {
	var info = document.getElementById("infoText").value;
	var blinks = document.getElementById("blinks").getElementsByTagName("p");
	var k = 0;
	var l = blinks.length;
	for(k=0;k<l;k++) {
		blinks[k].style.color = info;
	}
	blinks = document.getElementById("blinks").getElementsByTagName("span");
	k = 0;
	var l = blinks.length;
	for(k=0;k<l;k++) {
		blinks[k].style.color = info;
	}
	updateDiv();
}

function activeChange() {
	var act = document.getElementById("activeText").value;
	var tds = document.getElementsByTagName("td");
	var k;
	for(k=0;k<tds.length;k++) {
		if(tds[k].className == "a")
			tds[k].style.backgroundColor = act;
	}
	updateDiv();
}

function textChange() {
	var header = document.getElementById("headerText").value;
	document.getElementById("topInc").style.color = header;
	var tds = document.getElementsByTagName("td");
	var k;
	for(k=0;k<tds.length;k++) {
		if(tds[k].className != "a")
			tds[k].style.color = header;
	}
	document.getElementById("all").style.color = header;
	document.getElementById("backText").style.color = header;
	document.getElementById("sameColor").style.color = header;
	updateDiv();
}

function methodChange(e) {
	var caller = getSource(e);
	var val = caller.value;
	var tds = document.getElementsByTagName("td");
	var i;
	var activeText;
	var headerText;
	for(i=0;i<tds.length;i++) {
		if(tds[i].id == val) {
			activeText = document.getElementById("activeText");
			tds[i].style.backgroundColor = activeText.value;
			tds[i].style.color = "#FFFFFF";
			tds[i].className = "a";
		} else {
			headerText = document.getElementById("headerText");
			tds[i].style.backgroundColor = document.getElementById("bgText").value;
			tds[i].style.color = headerText.value;
			tds[i].className = null;
		}
	}	
	var blinks;
	var j;
	for(j=0;j<3;j++) {
		blinks = document.getElementById('m' + j);
		if(j == val) {
			blinks.style.display = "block";
		} else {
			blinks.style.display = "none";
		}
	}
}

function alignChange(e) {
	var a = getSource(e).value;
	var blinks;
	if(a == 'h') {
		document.getElementById("livePreview").className = "horizontal";
		for(i=0;i<3;i++) {
		blinks = document.getElementById('m' + i).getElementsByTagName('div');
		for(j=0;j<blinks.length;j++) {
				blinks[j].style.top = '48px';
				blinks[j].style.left = ((j*150) + 250) + 'px';
				blinks[j].style.width = '140px';
		}
		}
		var fgC = document.getElementById("containerFg");
		var num = parseInt(document.getElementById("num").value)
		fgC.style.top = '44px';
		fgC.style.left = '240px';
		fgC.style.width = (num*150 + 10) + 'px';
		var bgC = document.getElementById("containerBg");
		bgC.style.width = (num*150 + 216) + 'px';
		var fg = document.getElementById("fg");
		fg.style.width = (num*150 + 10) + 'px';
		fg.style.height = '77px';
		var bg = document.getElementById("bg");
		bg.style.width = (num*150 + 216) + 'px';
		bg.style.height = '85px';
		document.getElementById("back").style.top = '110px';
		
	} else {
		document.getElementById("livePreview").className = "vertical";
		for(i=0;i<3;i++) {
		blinks = document.getElementById('m' + i).getElementsByTagName('div');
		for(j=0;j<blinks.length;j++) {
				blinks[j].style.top = (j*80 + 126) + 'px';
				blinks[j].style.left =  '54px';
				blinks[j].style.width = '180px';
		}
		}
		var fgC = document.getElementById("containerFg");
		var num = parseInt(document.getElementById("num").value)
		fgC.style.top = '110px';
		fgC.style.left = '48px';
		fgC.style.width = '184px';
		var bgC = document.getElementById("containerBg");
		bgC.style.width = '200px';
		var fg = document.getElementById("fg");
		fg.style.width = '184px';
		fg.style.height = (num*80) + 'px';
		var bg = document.getElementById("bg");
		bg.style.width = '200px';
		bg.style.height = (num*80 + 100) + 'px';
		document.getElementById("back").style.top = (num*80 + 128) + 'px';
	}
	pixelValues(a);
}

	
	
function loadSub(e) {
	var nav = document.getElementById("navBar").getElementsByTagName("div");
	var i;
	for(i=0;i<nav.length;i++) {
		nav[i].className = "navInactive";
	}
	this.className = "navActive";
}

function getPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}

function grabCode() {
	document.getElementById("appearance").style.display = "none";
	var coder = document.getElementById("codeGrabber");
	var handler;
	if(document.getElementById("h0").checked) {
		handler = '';
	} else if(document.getElementById("h1").checked) {
		handler = 'blocked: {' + parseSites(document.getElementById("handleLinks").value) + '},\n';
	} else {
		handler = 'authorized: {' + parseSites(document.getElementById("handleLinks").value) + '},\n';
	}
	var string = '<div id="seeLinkRun-wgt"></div>\n<script type="text/javascript" src="http://seelinkrun.com/scripts/backlinks.js"></script>\n<script type="text/javascript"><!-- \ndisplaySeeLinkRunWidget({\nmethod:' + document.getElementById("method").value + ',\nnum: ' + document.getElementById("num").value + ',\nalign:\'' + document.getElementById("align").value + '\',\n' + handler + 'shellBg:\'' + document.getElementById("bgText").value + '\',\nlinksBg:\'' + document.getElementById("fgText").value + '\',\nlinkText:\'' + document.getElementById("linkText").value + '\',\ninfoText:\'' + document.getElementById("infoText").value + '\',\nbgText:\'' + document.getElementById("headerText").value + '\',\nactiveTab:\'' + document.getElementById('activeText').value + '\'\n});//-->\n</script>\n<noscript><a href="http://www.seelinkrun.com/widgets/TopIncomingLinksWidget.html">See. Link. Run. - Top Incoming Links Widgets</a></noscript>';;
	coder.value = string;
	document.getElementById("myCode").style.display = "block";
}

function changeNumber() {
	var num = document.getElementById("num").value;
	var i;
	var blinks;
	var curBlink;
	var j;
	for(i=0;i<3;i++) {
		blinks = document.getElementById('m' + i).getElementsByTagName('div');
		for(j=0;j<blinks.length;j++) {
			if(j<num) {
				blinks[j].style.display = "block";
			} else {
				blinks[j].style.display = "none";
			}
		}
	}
	if(document.getElementById("align").value == 'v') {
	document.getElementById("fg").style.height = (num*80) + 'px';
	document.getElementById("bg").style.height = (num*80 + 100) + 'px';
	document.getElementById("back").style.top = (num*80 + 128) + 'px';
	} else {
		document.getElementById("fg").style.width = (num*150 + 10) + 'px';
		document.getElementById("bg").style.width = (num*150 + 216) + 'px';
		document.getElementById("containerBg").style.width = (num*150 + 216) + 'px';
		document.getElementById("containerFg").style.width = (num*150 + 10) + 'px';
	}
}
		

function parseSites(sites) {
	var siteArray = sites.split(',');
	var g;
	var mySites = ""
	for(g=0;g<siteArray.length;g++) {
		mySites += '\'' + siteArray[g] + '\',';	
	}
	mySites = mySites.substring(0,mySites.length -1);
	return mySites;
}

function getSettings() {
	document.getElementById("appearance").style.display = "block";
	document.getElementById("myCode").style.display = "none";
}

function handleLinks(e) {
	var t = getSource(e).value;
	var d = document.getElementById("handleLinks");
	d.value = "";
	if(t == 0) {
		d.style.display = "none";
		document.getElementById("codeButton").style.top = '400px';
	} else if(t == 1) {
		d.style.display = "block";
		d.value = "Please enter the sites you would like to block, separated by commas (example: http://myCompetitor.com).";
		document.getElementById("codeButton").style.top = '448px';
	} else if(t == 2) {
		d.value = "Please enter the sites you would like to allow, separated by commas (example: http://myFavoriteSite.com).";
		document.getElementById("codeButton").style.top = '448px';
		d.style.display = "block";
	}
}

function handlerFocus(e) {
	var f = getSource(e);
	if(f.value.match('Please enter')) {
		f.value = '';
	}
}
		

function selectMe(e) {
	document.getElementById("codeGrabber").select();
}

function hitMe(id) {
	document.getElementById(id).onclick(document.getElementById(id));
}

function pixelValues(a) {
	var opts = document.getElementById("num").getElementsByTagName("option");
	var i;
	var l = opts.length;
	var nval;
		for(i=0;i<l;i++) {
			nval = opts[i].value;
			while(opts[i].firstChild) {
				opts[i].removeChild(opts[i].firstChild);
			}
			if(a == 'v') {
				opts[i].appendChild(document.createTextNode(nval + ' (200x' + (nval*80 + 120) + ')'));
			} else {
				opts[i].appendChild(document.createTextNode(nval + ' (' + (nval*150 + 220) + 'x100)'));
			}
		}
}

function handleIE() {
	var ie = getInternetExplorerVersion();
	if(ie != -1 && ie <= 6) {
		document.getElementById("ieWarning").style.display = "block";
	}
}

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

function getAppearance() {
	document.getElementById("promo").style.display = 'none';
	document.getElementById("appearance").style.display = 'block';
}