/* ================================================================
This copyright notice must be untouched at all times.

The original version of this script
is available at http://www.nuff-respec.com/
Copyright (c) 2005-2007 Daniel Bulli. All rights reserved.
This code may be modified in any way to fit your requirements.
=================================================================== */

var Nuff = 
{
	init: function(options)
	{
		this.options = Object.extend({
			pop_win		 : null
		}, options || {});
		
		//LEGACY CONTENT NOT REWRITTEN YET
		old_init();

		//TRACK GOOGLE LINKS
		this.google();
	},

	google: function()
	{
		//no tracker then quite
		if(!pageTracker) return;
		
		var host = window.location.host;
		
		//go thru each link
		$$('a').each(function(el)
		{
			//if rel tag is google
			if(el.rel && el.rel.test(/^google/i))
			{
				el.addEvent('click',function()
				{
					var track_id = this.rel.match(/^google\[(.*)\]$/);
					if(track_id)
					{
						pageTracker._trackPageview(track_id[1]);
					}

				});
			}
			else if(el.host != host)
			{
				el.addEvent('click',function()
				{
					var track_id = this.href.match(/^http:\/\/([^/]+)/);
					if(track_id)
					{
						pageTracker._trackPageview('outgoing/'+track_id[1]);
					}

				});			
			}
		});
	}
}



//-----------------------
//LEGACY NEED TO REWRITE
//-----------------------



	var hex_array = new create_array(0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f');

	// -------------------------------------------------------------
	function create_array()
	{
		this.length = create_array.arguments.length;
		for (var i = 0; i < this.length; i++)
			this[i] = create_array.arguments[i];

		return this;
	}


	// -------------------------------------------------------------
	function hex_to_rgb(hex_color)
	{
		var rgb_array = new create_array(0,0,0);

		hex_color = hex_color.toLowerCase();

		for (var i=1; i<=6; i++)
		{
			for (var j=0; j<16; j++)
			{
				if (hex_color.charAt(i) == hex_array[j])
				{
					if (i%2 !=0)
						rgb_array[Math.floor((i-1)/2)]=eval(j)*16;
					else
						rgb_array[Math.floor((i-1)/2)]+=eval(j);
				}
			}
		}

		return rgb_array;
	}

	// -------------------------------------------------------------
	function rgb_to_hex_value(rgb_color)
	{
		if (rgb_color < 0)
			return "00";
		else if (rgb_color > 255)
			return "ff";
		else
			return "" + hex_array[Math.floor(rgb_color/16)] + hex_array[rgb_color%16];
	}


	// -------------------------------------------------------------
	function rgb_to_hex(rr,gg,bb)
	{
		return "#" + rgb_to_hex_value(rr)+rgb_to_hex_value(gg)+rgb_to_hex_value(bb);
	}



	// -------------------------------------------------------------
	function do_step_style(container,element_to_style,sub_element_to_style,start_val,end_val,style_prop,reset)
	{
		//IF WE DON'T SUPPORT getElementById or no container
		if (!document.getElementById || !document.getElementById(container)) return false;

		//GET ALL elements IN containter
		var elements = document.getElementById(container).getElementsByTagName(element_to_style);

		var cur_step = 0;

		if(style_prop == 'color')
		{
			var rgb_start= hex_to_rgb(start_val.toLowerCase());
			var rgb_end  = hex_to_rgb(end_val.toLowerCase());


			var r_s = rgb_start[0];
			var g_s = rgb_start[1];
			var b_s = rgb_start[2];

			var r_e = rgb_end[0];
			var g_e = rgb_end[1];
			var b_e = rgb_end[2];
		}
		else if(style_prop == 'fontSize')
		{
			var rgb_start= hex_to_rgb(start_val.toLowerCase());
			var rgb_end  = hex_to_rgb(end_val.toLowerCase());


			var f_s = start_val;
			var f_e = end_val;
		}
		else
		{
			return false;
		}

		//LOOP OVER elements to add fade
		var el = elements.length - 1;
		for (var i = 0; i < elements.length; i++)
		{
			var element = elements[i];

			if(sub_element_to_style != null)
			{
				if(!element.getElementsByTagName(sub_element_to_style)[0]) return false;

				element = element.getElementsByTagName(sub_element_to_style)[0];
			}

			if(style_prop == 'color')
			{
				var r_c  =	Math.floor(r_s*((el-cur_step)/el) + r_e*(cur_step/el));
				var g_c  =	Math.floor(g_s*((el-cur_step)/el) + g_e*(cur_step/el));
				var b_c  =	Math.floor(b_s*((el-cur_step)/el) + b_e*(cur_step/el));

				if(reset)
				{
					element.style.color = '';
				}
				else
				{
					element.style.color = '' + rgb_to_hex(r_c,g_c,b_c);
				}
			}
			else if(style_prop == 'fontSize')
			{
				var f_c  = Math.round((f_s*((el-cur_step)/el) + f_e*(cur_step/el))*100)/100;

				if(reset)
				{
					element.style.fontSize = '';
				}
				else
				{
					element.style.fontSize = '' + f_c + 'em';
				}

			}

			cur_step++;

		}

		return false;
	}



//---------------------------------------------
function write_flash_css()
{
	document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="324" height="200" id="flash-style-with-css"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="http://www.nuff-respec.com/external/flash-style-with-css.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="base" value="/external/" /><embed src="http://www.nuff-respec.com/external/flash-style-with-css.swf" base="/external/" quality="high" bgcolor="#ffffff" width="324" height="200" name="flash-style-with-css" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>');
}

//---------------------------------------------
function toggle_search()
{
	var ssi = document.getElementById('ss-i');
	var ssb = document.getElementById('ss-b');


        if (ssi.className.match('hide'))
        {
			ssi.className = "";
			ssb.className = "";
			ssi.focus();
		}
		else
		{
			ssi.className = "ss-hide";
			ssb.className = "ss-hide";
		}
	return true;
}

//---------------------------------------------
function init_search()
{
	//label
	var lbl = document.getElementById('ss-l');
	lbl.onclick = function()
	{
		toggle_search();
	}

	var ssi = document.getElementById('ss-i');
	var ssb = document.getElementById('ss-b');
	ssi.className = "ss-hide";
	ssb.className = "ss-hide";
}



   function old_init()
   {
		//legacy stuff nto rewritten yet

		if (!document.getElementById || !document.getElementById('ss-l')) return;

		init_search();
		do_step_style('cssgallery','li','p','#666666','#dddddd','color');
		do_step_style('cssgallery','li','a','#6A2680','#E6B6E6','color');
		do_step_style('cssgallery','li',null,'1.5','.8','fontSize');

		do_step_style('progressive','li','p','#666666','#cccccc','color');
		do_step_style('progressive','li','a','#cf852c','#cccccc','color');
		do_step_style('progressive','li',null,'1.5','.9','fontSize');
   };



window.addEvent('domready', Nuff.init.bind(Nuff));
window.addEvent('domready', Magnet.init.bind(Magnet));