﻿
YAHOO.util.Event.onAvailable('settings', initPrefs, this);


function highlightNames(on)
{
	ss = document.getElementsByTagName('link');
	for(i=0; i<ss.length; i++)
	{
		if(ss[i].title == "cssHighlightNames")
		{
			ss[i].disabled = !on;
			break;
		}
	}
}

var allCX = [];
var uniqueCx = [];

function initPrefs()
{

	allCx = YAHOO.util.Dom.getElementsByClassName('cx');
	uniqueCx = ['cx-a', 'cx-b', 'cx-c', 'cx-d', 'cx-e', 'cx-f', 'cx-g'];
	
	for(var i = 0; i < allCx.length; i++)
		allCx[i].setAttribute('orig',allCx[i].innerHTML);
		
	initSettings();
}

function initSettings()
{
	var query = parseQueryString();
	document.getElementById('settings').style.display = 'block';
	if(query['custom'] == undefined)
	{
		document.getElementById('StandardNames').checked = true;
	}
	else if(query['custom'] == 1)
	{
		// set to generic
		document.getElementById('GenericNames').checked = true;
		ChangeNames(1);
	}
	else
	{
		// set custom names
		document.getElementById('CustomNames').checked = true;
		ChangeNames(2);
		SetCustomNames(query['custom']);
	}
}

function SetCustomNames(value)
{
	var s1 = unescape(value.substr(0,value.length-1)); 
	var t='';
	for( i=0; i < s1.length; i++)
		t += String.fromCharCode( s1.charCodeAt(i) - value.substr(value.length-1,1) );

}

function GenerateUrl(){
	var opts = [];
	for(var i = 0; i < customInputs.length; i++)
		 opts[i] = '{v:\''+escape(document.getElementById(customInputs[i]).value)+'\'}';
		 
	alert(opts);
	var url = document.URL.split('?')[0] + '?' + enc(opts);
	var url2 = document.URL.split('?')[0] + '?' + escape(opts);
	alert(url);
	alert(url2);
	SetCustomNames(url);
}

function enc(value)
{
	value = escape(value);
	var encval = new Array();
	for( i=0; i < value.length; i++)
		encval[i] = value.charCodeAt(i)+2;
		
	return ""+escape(eval("String.fromCharCode("+encval+")"))+2;
}

function parseQueryString()
{
	var arr = [];
	var qs = document.URL.split('?')[1];
	if(qs == undefined) return arr;
	
	var ps = [];
	if(qs.indexOf('&amp;') > 0) ps = qs.split('&amp;');
	else ps = qs.split('&');

	for(var i = 0; i < ps.length; i++)
	{
		var opt = ps[i].split('=');
		arr[opt[0]] = opt[1];
	}
	return arr;
}

function contains(array, value)
{
	for(var i = 0; i < array.length; i++) if(array[i] == value) return true;
	return false;
}

function ChangeNames(type)
{
	
	var container = document.getElementById('CustomNameFields');
	ClearCustomInputs(container);
	
	switch(type)
	{
		case 1 : // generic names
			SetNames([{t:'cx-a',n:'Chris'},{t:'cx-b',n:'Rachel'},{t:'cx-c',n:'Jennifer'},{t:'cx-d',n:'Brandon'},{t:'cx-e',n:'Heather'},{t:'cx-f',n:'Michelle'},{t:'cx-f',n:'Robert'},{t:'cx-g',n:'Travis'}]);
			break;
		case 2 : // user specified names
			SetNames(null);	
			for(var i = 0; i < uniqueCx.length; i++)
			{
				if( YAHOO.util.Dom.getElementsByClassName(uniqueCx[i]).length > 0)
				AddCustomInput(container, uniqueCx[i]);
			}
			
			break;
		case 0 :
		default :
			SetNames(null);
			break;
	}
}

function ClearCustomInputs(container)
{
	while(container.childNodes.length > 0)
		container.removeChild(container.childNodes[0]);		
}

function stripTags(value)
{
	var value = new String(value);
	var re = new RegExp("(<([^>]+)>)","ig");
	return value.replace(re, "");
}

var customInputs = [];
function AddCustomInput(container, ref)
{	
	var inp = document.createElement('input');
	inp.type = 'text';
	inp.value = stripTags(YAHOO.util.Dom.getElementsByClassName(ref)[0].getAttribute('orig'));
	inp.id = ref+'-fld';
	inp.className = ref;
	inp.ref = ref;
	inp.title = inp.value;
	customInputs[customInputs.length] = inp.id;
	inp.onchange = function() { SetNames([{t:this.ref,n:this.value}]);  };
	container.appendChild(inp);
}

function SetNames(obj)
{
	if(obj == null) // reset to original
	{
		for(var i = 0; i < allCx.length; i++)
			allCx[i].innerHTML = allCx[i].getAttribute('orig');
	}
	else
	{
		for(var i = 0; i < obj.length; i++)
		{
			ChangeContents(obj[i].t, obj[i].n);
		}
	}
}

function ChangeContents(classname, name)
{
	var els = YAHOO.util.Dom.getElementsByClassName(classname);
	for(var i = 0; i < els.length; i++)
	{
		els[i].innerHTML = name;
	}
}

