var EggBeat = new Class({
	srcID: '',
	data: '',	
	
	setupEggBeat: function(s,b)
	{
		this.srcID = s;
		var d = (b) ? $(s).title : $(s).rel;
		
		var isJSON = (d != undefined && d != '' && d.charAt(0) == "{" && d.charAt(d.length -1) == "}");		
		
		if (isJSON)
		{
			this.data = eval("("+d+")");			
			
			if (!this.data.path)
				this.data.path = '';			

			$(s).rel = null;
		}
	},
	
	disableEvent: function()
	{
		return false;
	},
	
	setMessage: function(obj,active,inactive,dim,text)
	{
		$(obj).addEvent(active,this.displayMessage.bindWithEvent(this,[dim,text]));
		$(obj).addEvent(inactive,this.clearMessage.bindWithEvent(this));
		$(obj).title = null;
	},
	
	displayMessage: function(ele,dim,text)
	{
		
		$('ebCache').innerHTML = text;	
    	$('ebCache').setStyles({'left':  dim['x'], 'top' : dim['y']+25, 'display':'inherit'});
    	
    	
	},
	
	clearMessage: function()
	{
		$('ebCache').setStyles({'display':'none'});
	},
	
	debugEggBeat: function(ele)
	{
		var str = '';
		for (e in ele)
		str += e + " ";
		
		alert (str);	
	},
	
	htmlEncode: function(str)
	{
	   var div = document.createElement('div');
	   var text = document.createTextNode(str);
	   div.appendChild(text);
	   return div.innerHTML;
	},
	
	markError: function(ele)
	{
		ele.addClass("error");	
	},
	
	clearError: function(ele)
	{
		ele.removeClass("error");
	}
});

var Toolbar = EggBeat.extend({
    initialize: function(id)
    {
    	this.setupEggBeat(id);
    	
    	var sb = id.getElement('input');    
    	sb.addEvent('click',this.selectItems.bindWithEvent(this,sb));
    
    	var div = new Element('div',{'style':'margin-top:4px;float:left'});
    	div.inject(id);
    	
		var mode = $(id).getElementsBySelector("h2")[0].getText();
    	
		if (mode == "Inbox")
		{
			var mi = new Element('a',{'href':'','class':'button'});
			mi.setText("Mark as read");
			mi.onclick = this.disableEvent;
			mi.addEvent('click',this.markItems.bindWithEvent(this,1));
			mi.inject(div);

			var umi = new Element('a',{'href':'','class':'button'});
			umi.setText("Mark as unread");
			umi.onclick = this.disableEvent;
			umi.addEvent('click',this.markItems.bindWithEvent(this,0));
			umi.inject(div);   
    	}
    	
    	var di = new Element('a',{'href':'','class':'button'});
    	di.setText("Delete");
    	di.onclick = this.disableEvent;
    	di.addEvent('click',this.deleteItems.bindWithEvent(this,0));
    	di.inject(div);    	
    },
    
    selectItems: function(obj,chkbox)
    {
    	var select = chkbox.checked;
    		
    
    	$('msglist').getElementsBySelector(".chk").each(function(ele){ ele.checked = select;});
    },
    
    markItems: function(obj,read)    
    {
    	idlist = "";
		$('msglist').getElementsBySelector(".chk").each(function(ele){
			if (ele.checked)
			{		
				idlist += ele.value +",";
				var obj = ele.getParent().getParent();
				if (read)
				{
					obj.removeClass("unread");
					obj.addClass("read");
				}
				else
				{
					obj.removeClass("read");
					obj.addClass("unread");				
				}
			}
		});
		
		if (idlist.length > 0)
		{
			idlist = idlist.substring(0,idlist.length-1);

			var ajax = new Ajax("ajax/messages.aspx", {method:'post', data:{ajax:1, action:"mark",list:idlist,mark:read} });
			ajax.request(); 
		}
	},

	deleteItems: function()
	{
    	idlist = "";

		$('msglist').getElementsBySelector(".chk").each(function(ele){
			var obj = ele.getParent().getParent();
			if (ele.checked)
			{		
				idlist += ele.value +",";
				Element.remove(obj);
			}
		});
		

		var cnt = 0;
		$('msglist').getElementsBySelector(".chk").each(function(ele){
			var obj = ele.getParent().getParent();
			obj.removeClass("even");
			obj.removeClass("odd");
			obj.addClass((cnt++ %2 == 0) ? "even" : "odd");
		});		
		if (idlist.length > 0)
		{
			idlist = idlist.substring(0,idlist.length-1);

			var ajax = new Ajax("ajax/messages.aspx", {method:'post', data:{ajax:1, action:"delete",list:idlist} });
			ajax.request(); 
		}	
    }
});

var ContactList = EggBeat.extend({
    cache: null,
    results: null,
    curr: -1,
    cSearch: '',
    sendList : null,
    match: -1,
    
    initialize: function(id)
    {
    	this.setupEggBeat(id);    	
    	this.cache = new Array();
    	this.getCache();
    	this.results = new Array();
    	this.sendList = new Array();
    	
    	var dim = $(id).getPosition();
    	$('contactCache').setStyles({'left':  dim['x'], 'top' : dim['y']+20});
    	$(id).setAttribute('readOnly','readonly');    
    	$(id).value = 'Loading contacts...';
    	$(id).addEvent('blur',this.selectContact.bindWithEvent(this,$(id)));
    	$(id).addEvent('focus',this.displayHelp.bindWithEvent(this));
    	
		$('txtID').setAttribute('readOnly','readonly');
		$('txtID').value = ',';    	
    },
    
    displayHelp: function()
    {
    	if (this.srcID.value.trim() == "")
    	{
    		$('contactCache').innerHTML = "Type the name of the person you wish to contact...";
    	    	$('contactCache').style.display = "";
    	}
    },
    
    getCache: function()
    {
		var ajax = new Ajax("ajax/messages.aspx", {method:'post', data:{ajax:1, type:"contacts"}, onComplete: this.getCacheCB, srcObj: this});
		ajax.request(); 
    },
    
    getCacheCB: function(txt,xml)
    {
    	xml = xml.childNodes[0];

    	for (var i = 0; i < xml.childNodes.length; i++)
    	{
			var next = xml.childNodes[i];

			if (!next.tagName)
				continue;

			if (next.hasChildNodes())
			{
				var fn = (next.childNodes[0].text) ?  next.childNodes[0].text : next.childNodes[0].textContent;
				var ln = (next.childNodes[1].text) ?  next.childNodes[1].text : next.childNodes[1].textContent;
				var un = (next.childNodes[2].text) ?  next.childNodes[2].text : next.childNodes[2].textContent;
				var id = (next.childNodes[3].text) ?  next.childNodes[3].text : next.childNodes[3].textContent;
				var av = (next.childNodes[4].text) ?  next.childNodes[4].text : next.childNodes[4].textContent;

				fn = (fn == null) ? "" : fn;
				ln = (ln == null) ? "" : ln;

				this.options.srcObj.cache.push({ fn:fn, ln:ln, un:un, id:id, av:av});
			}
		}
    	$(this.options.srcObj.srcID).addEvent("keyup",this.options.srcObj.processKeyEvent.bindWithEvent(this.options.srcObj,$(this.options.srcObj.srcID)));
    	$(this.options.srcObj.srcID).removeAttribute('readOnly');
    	var self = $(this.options.srcObj.srcID)
    	
    	
    	var obj = this.options.srcObj;
    	if (obj.data.name != null)
    	{
    		var found = false;
    	
    		for (var i = 0; !found && i < obj.cache.length; i++)
    		{
    			if (obj.cache[i]['un'] == obj.data.name)
    			{
    				obj.results = new Array();
    				obj.results[0] = {fn:obj.cache[i]['fn'], ln:obj.cache[i]['ln'], un:obj.cache[i]['un'], id:obj.cache[i]['id'], av:obj.cache[i]['av']};
    				obj.curr = 0;
    				obj.selectContact();
    				found = true;
    				window.setTimeout(function(){ if (self.value == 'Loading contacts...')self.value = '';},1000);
    			}
    		}
    		
    		if (!found)
    		{
    			this.options.srcObj.findUser(obj.data.name,1);
    		}    		
    	}
    	else
    		window.setTimeout(function(){ if (self.value == 'Loading contacts...')self.value = '';},1000);
    },
    
    removeContact: function(evt,obj)
    {
    	this.sendList[obj.ids] = '';
    
		Element.remove(obj);
	
		$('txtID').value = $('txtID').value.replace(','+obj.ids+',',',');
	
    	var dim = $(this.srcID).getPosition();
    	$('contactCache').setStyles({'left':  dim['x'], 'top' : dim['y']+20});	
    },
    
    selectContact: function(type)
    {
    	if (this.curr >= 0)
    	{
    		if (this.sendList.length <= 0)
    			$('tolist').innerHTML = "";
    			
    		var obj = new Element('div');
    		obj.innerHTML = this.results[this.curr]['un'];
    		
    		if (type == 1)
    			obj.ids = -1 *this.results[this.curr]['id'];
    		else
    			obj.ids = this.results[this.curr]['id'];
    		var img = new Element('img',{src:'images/trans.gif', title:'click to remove'});
    		img.addEvent('click',this.removeContact.bindWithEvent(this,obj));    		
    		img.inject(obj);
    			    		
    		obj.inject($('tolist'));
    		
    		$('txtID').value += obj.ids+',';
    		
    		this.sendList[this.results[this.curr]['id']] = 1;
    	}
    
    
    	this.clearResults();
    	this.results = new Array();
    	this.curr = -1;
    	this.cSearch = '';
    	$(this.srcID).value = '';
    	this.match = -1;
    	
    	var dim = $(this.srcID).getPosition();
    	$('contactCache').setStyles({'left':  dim['x'], 'top' : dim['y']+20});
    },
    
    iterateContact: function(type,id)
    {
		if (this.curr != -1)
		{
			$('c'+this.curr).removeClass('contact_selected');
		}

		if (type == 0)		
		{
			var done = false; var counter = 0;
			while (!done)
			{
				counter++;
				this.curr =  this.curr.toInt() + id;
				if (this.curr < 0)
					this.curr = this.results.length - 1;
				else if (this.curr >= this.results.length)
					this.curr = 0;
					
				if ($('c'+this.curr) != null || counter >= this.results.length)
					done = true;
			}
				
			
		}
		else
		{
			this.curr = id;
		}

		$('c'+this.curr).addClass('contact_selected');    
    },
    
    
    processKeyEvent: function(evt)
    {
    	evt = evt.event;    	
   
    	if (evt.keyCode == 13)
    	{
    		this.selectContact();
    	}
    	else if (evt.keyCode == 37 || evt.keyCode == 39){ if (evt.keyCode == 37)this.match = -1;}
    	else if (evt.keyCode == 38 || evt.keyCode == 40)
    	{
    		if (this.results.length <= 0)
    			return;
    		
    		var inc = (evt.keyCode == 38) ? -1 : 1;
    	
    		this.iterateContact(0,inc);
    	}
    	else
    	   	this.searchCache();
    },
    
    searchCache: function()
    {
    	var found = false;
    	var search = this.srcID.value.trim();
    	this.results = new Array();
    	this.curr = -1;
    	
    	if (search == this.cSearch){}
    	else if (search.length > 0)
    	{ 
			var f,l,u;
			for (var i = 0; i < this.cache.length; i++)
			{
				f = this.cache[i]['fn'].toLowerCase().contains(search.toLowerCase());
				l = this.cache[i]['ln'].toLowerCase().contains(search.toLowerCase());
				u = this.cache[i]['un'].toLowerCase().contains(search.toLowerCase());

				if (f || l || u)
				{
					this.results.push(this.cache[i]);
					found = true;
				}
			}

			if (!found)
			{
				if (this.match != 0)
				{
					this.findUser(search,0);
					this.clearResults();
				}
			}
			else
			{
				this.displayResults(this.results,search);
			}

			this.cSearch = search;
    	}
    	else
    	{
    		this.cSearch = search;
    		this.clearResults();
    	}
    },
    
    clearResults: function()
    {
    	$('contactCache').innerHTML = '';
  		$('contactCache').style.display = "none";
    },
    
    displayResults: function(obj, search)
    {
    	var str = "";
    	for (var i = 0; i < obj.length; i++)
    	{
    		if (this.sendList[obj[i]['id']] != 1)
    			str += '<div id="c'+i+'" class="tool_contact">' + '<img src="'+obj[i]['av']+ '" /> <span class="contactname">' + obj[i]['un'] + " (<i>" + obj[i]['fn'] + " "+ obj[i]['ln'] + "</i>)</span> </div>";
    	}

		var self = this; var i = 0;
    	$('contactCache').innerHTML = str;
    	$('contactCache').style.display = "";
    	$('contactCache').getElementsBySelector('.tool_contact').each(function(ele)
		{
			var c = ele.id.replace('c','');    		
			ele.addEvent('mouseover',function(){self.iterateContact(1,c);});
			ele.addEvent('click',self.selectContact.bindWithEvent(self,ele));
		});
    },
    
    findUser: function(str,type)
    {
    	if (str != null && str.length >= 3)
    	{
			var ajax = new Ajax("ajax/messages.aspx", {method:'post', data:{ajax:1, type:type, action:'find',name:str}, onComplete: this.findUserCB, srcObj: this});
			ajax.request();     
		}
		else
			window.setTimeout(function(){ if (self.value == 'Loading contacts...')self.value = '';},1000);
    },
    
    findUserCB: function(txt,xml)
    {
		this.options.srcObj.results = new Array();
		var self = this.options.srcObj.srcID;
		window.setTimeout(function(){ if (self.value == 'Loading contacts...')self.value = '';},1000);

		xml = xml.childNodes[0];

		for (var i = 0; i < xml.childNodes.length; i++)
		{
			var next = xml.childNodes[i];

			if (!next.tagName)
				continue;

			if (next.hasChildNodes())
			{
				var fn = (next.childNodes[0].text) ?  next.childNodes[0].text : next.childNodes[0].textContent;
				var ln = (next.childNodes[1].text) ?  next.childNodes[1].text : next.childNodes[1].textContent;
				var un = (next.childNodes[2].text) ?  next.childNodes[2].text : next.childNodes[2].textContent;
				var id = (next.childNodes[3].text) ?  next.childNodes[3].text : next.childNodes[3].textContent;
				var av = (next.childNodes[4].text) ?  next.childNodes[4].text : next.childNodes[4].textContent;
				
				fn = (fn == null) ? "" : fn;
				ln = (ln == null) ? "" : ln;

				this.options.srcObj.cache.push({ fn:fn, ln:ln, un:un, id:id, av:av});


				if (this.options.data.type == 1)
				{
					this.options.srcObj.results = new Array();
					this.options.srcObj.results.push({ fn:fn, ln:ln, un:un, id:id, av:av});
					this.options.srcObj.curr = 0;
					this.options.srcObj.selectContact(1);
				}
				else
				{
					this.options.srcObj.results.push({ fn:fn, ln:ln, un:un, id:id, av:av});
				}
			}
		}    		


		if (this.options.data.type == 0 )
		{
			if (this.options.srcObj.results.length > 0)
			{
				this.options.srcObj.displayResults(this.options.srcObj.results,this.options.data.name);
			}
			else
			{
				$('contactCache').innerHTML = "No matches found...";
				$('contactCache').style.display = "";
				this.options.srcObj.match = 0;
			}
		}
    }
});


var Pagination = EggBeat.extend({
    initialize: function(id)
    {
    	this.setupEggBeat(id);
    	
    	if (this.data.mode == "comments")
    	{
    		$(id).onclick = this.disableEvent;
    		$(id).addEvent("click",this.getComments.bindWithEvent(this,$(id)));
    	}
    	else
    	{
    	}
    },
    
    getComments: function()
    {
    	var url ="ajax/comments.aspx?"+this.data.param+"="+this.data.start;    	
		var ajax = new Ajax(url, {method:'post', data:{ajax:1, type:this.data.type, id:this.data.id, href:this.srcID.href}, onComplete: this.getCommentsCB, srcObj: this});
		ajax.request();    
    },
    
    getCommentsCB: function(txt,xml)
    {
    	txt = cleanAJAX(txt);
    	$(this.options.srcObj.data.targetID).innerHTML = txt;
    	reloadscripts($(this.options.srcObj.data.targetID));
    }    
    
});

var Toggle = EggBeat.extend({
    initialize: function(id)
    {
    	this.setupEggBeat(id);
    	$(id).onclick = this.disableEvent;
    	$(id).addEvent("mouseover",this.displayContent.bindWithEvent(this,$(id))); 
    },
    
    displayContent: function()
    {
    	$$(".selected").each(function(ele){ele.removeClass("selected")});
    	$(this.srcID).addClass("selected");
    
    	var el = $$(".tool_target").each(function(ele){ele.style.display = 'none';});
    	$(this.data.targetID).style.display = 'block';
    }
});

var Player = EggBeat.extend({
    initialize: function(id)
    {
        this.setupEggBeat(id);
        $(id).onclick = this.disableEvent;
        $(id).addEvent("click",this.loadPlayer.bindWithEvent(this,$(id)));    
    },
    
    loadPlayer: function()
    {
		var ajax = new Ajax("ajax/player.aspx", {method: 'post', data: {ajax:1, id: this.data.id, type: this.data.type, showName: this.data.showName }, onComplete: this.loadPlayerCB, srcObj: this});			
		ajax.request();
    },
    
    loadPlayerCB: function(txt,xml)
    {
		txt = cleanAJAX(txt);    
    	
        $(this.options.srcObj.data.targetID).innerHTML = txt;
        reloadscripts(this.options.srcObj.data.targetID);
        
        window.scrollTo(0,0);
        
        var so = new SWFObject('yellow_box/Kp-Box.swf', 'kbox', '350', '240', '9', '#ffffff');
        so.addVariable('id', this.options.srcObj.data.id);
        so.useExpressInstall('js/expressinstall.swf');
        so.write('flashcontent');
        
        pconf["bookmarkURL"] = "http://www.eggbeat.com/music.aspx?id="+this.options.srcObj.data.id;
        
		window.setTimeout(function(){Wildfire.initPost('188461', 'divWildfirePost', 360, 145, pconf);},500);
    }
});

var Rating = EggBeat.extend({
	initialize: function(id)
	{
		this.setupEggBeat(id);
		$(id).onclick = this.disableEvent;
		$(id).addEvent("click",this.voteRating.bindWithEvent(this,$(id)));
		
		this.setMessage($(id),"mouseover","mouseout",$(id).getPosition(),$(id).title)
	},
	
	voteRating: function()
	{
		if (this.data.tid == 1)
		{
		}
		else if (this.data.tid == 2)
		{
			var ajax = new Ajax("ajax/rating.aspx", {method: 'post', data: {ajax:1, id: this.data.id, pid: this.data.pid, val: this.data.val, type: this.data.type }, onComplete: this.voteRatingCB, srcObj: this});			
			ajax.request();				
		}
		else if (this.data.tid == 3)
		{
		}
		else if (this.data.tid == 4)
		{
		}
	},
	
	voteRatingCB: function(txt,xml)
	{
		var val = txt.split("||");
	
		var cnt = val[1];
		var run = 1;
	
		while (run <= 5)
		{
			if (run <= cnt)
				$('star' + run).src = "images/s1.gif";
			else
				$('star' + run).src = "images/s0.gif";
			run++;
		}
		
		txt = txt.replace('div', 'span');
		
		$('ratingSum').innerHTML = val[2];
	}
	
});

var AjaxSubmit = EggBeat.extend({
	initialize: function(id)
	{
		this.setupEggBeat(id);
		$(id).onclick = this.disableEvent;
		$(id).addEvent("click",this.submitInfo.bindWithEvent(this));
	},
	
	submitInfo: function()
	{
		var d = "";
		
		if (this.data.type == "feedback")
			d = this.getFeedbackVars();
	
	
		var ajax = new Ajax(this.srcID.href, {method: 'post', data: d, onComplete: this.submitInfoCB, srcObj: this});			
		ajax.request();			
	},
	
	getFeedbackVars: function()
	{
		var e = this.htmlEncode($('txtEmail').value);
		var m = this.htmlEncode($('txtMessage').value);
		
		return {ajax:1,email:e,message:m};	
	},
	
	submitInfoCB: function()
	{
		TB_remove();	
	}
});

var TextCounter = EggBeat.extend({
	initialize: function(id)
	{
		this.setupEggBeat(id,true);
		
		$(id).addEvent("keyup",this.countText.bindWithEvent(this,$(id)));
		$(id).addEvent("keydown",this.countText.bindWithEvent(this,$(id)));
		
		for (var i = 0; i < $(id).attributes.length; i++)
			if ($(id).attributes[i].name == "oninput" || $(id).attributes[i].name == "onpaste")
				$(id).attributes[i].value = "count(this,"+this.data.maxText+",'"+this.data.targetID+"')";
				
		this.countText();
	},
	
	countText: function()
	{	
		count(this.srcID,this.data.maxText,this.data.targetID);
	}
});


var Resizer = EggBeat.extend({
	initialize: function(id)
	{
		this.setupEggBeat(id);
		
		var cdim = $("imgcropper").getCoordinates();
		var idim = id.getCoordinates();
		
		
		var t,b,l,r;
		if(idim["height"] > cdim["height"])
		{
			t = cdim["top"] + (cdim["height"] - idim["height"]);
			b = cdim["top"];
						
			$('imgcropper').effect("margin-top",{duration:0}).start((idim["height"] - cdim["height"])+20);
			$('imgcropper').effect("margin-bottom",{duration:0}).start((idim["height"] - cdim["height"])+20);
			
			id.effect("margin-top",{duration:0}).start((idim["height"] - cdim["height"])+20);
			id.effect("margin-bottom",{duration:0}).start((idim["height"] - cdim["height"])+20);
		}
		else
		{
			t = cdim["top"];
			b = cdim["bottom"] - idim["height"];
			
			$('imgcropper').effect("margin-top",{duration:0}).start(20);
			$('imgcropper').effect("margin-bottom",{duration:0}).start(20);
			
			id.effect("margin-top",{duration:0}).start(20);
			id.effect("margin-bottom",{duration:0}).start(20);			
		}
		
		if(idim["width"] > cdim["height"])
		{
			l = cdim["left"] + (cdim["width"] - idim["width"]);
			r = cdim["left"];
		}
		else
		{
			l = cdim["left"];
			r = cdim["right"] - idim["width"];
		}
				
		id.setOpacity(.5);
		
		id.makeDraggable({
			limit:{"x":[l,r],"y":[t,b]},
			onComplete: function()
			{
				$('x').firstChild.value = $('imgavatar').getLeft() - $('imgcropper').getLeft();
				$('y').firstChild.value = $('imgavatar').getTop() - $('imgcropper').getTop();
			}
		
		});
		
		cdim = $("imgcropper").getCoordinates();
		id.style.top = cdim["top"] + "px";
		id.style.left = cdim["left"] + "px";
		
		//new Drag.Move("imgcropper",{"container":id});
		//$("cropper").addEvent("mouseup",this.markRegion.bindWithEvent(this,$(id)));
	}
	
	
});


var Template = EggBeat.extend({
	index: 0,

	initialize: function(id)
	{
		this.setupEggBeat(id);
		id.onclick = this.disableEvent;
		id.addEvent("click",this.loadNextClip.bindWithEvent(this));
	},
	
	loadNextClip:function()
	{

		if (this.index < this.data.list.length)
		{
			var so = new SWFObject('yellow_box/LMP3.swf', 'kbox', '370', '60', '9', '#ffffff');
			so.addVariable('id', this.data.list[this.index]);
			so.useExpressInstall('js/expressinstall.swf');
			so.write('flashcontent');
			
			$('use').href = "kbox.aspx?musicID="+this.data.list[this.index]+"&mode=tour";
			
			this.index++;			
        }
	

	}
});

/***********************************************/
/***********************************************/


function count(obj,max,target)
{
	if (obj.value.length > max)
		obj.value = obj.value.substring(0,max);
		
		
	$(target).innerHTML = (max - obj.value.length) + " characters left";
}

function searchbar(v)
{
	window.location = "search.aspx?q=" + v;
}


	
function cleanAJAX(txt)
{
	txt = txt.replace('__EVENTVALIDATION', 'ignore1');
	txt = txt.replace('__VIEWSTATE', 'ignore2');

	if (document.all)
	{
		txt = txt.replace('<form','<div');
		txt = txt.replace('</form>','</div>');
	}

	return txt;
}


function vote(i)
{
    if ($('votebox'))
    {
        $('votebox').getFirst().value = i;
        __doPostBack('btnRatingSubmit','OnClick');
    }
}

function validate(ele)
{
    var chk = $('regChkbox');
    if (!chk.checked)
    {
    	$('valCheck').style.visibility = "visible";
    	return false;
    }
    else  
    {   
   		$('valCheck').style.visibility = "hidden";           
    	return true;
    }  
}

/***********************************************/
/***********************************************/

var ebcache = new Object();

window.addEvent("load",loadscripts);
window.addEvent("load",loadonce);


function loadonce()
{
	$$(".tool_resizer").each(function(ele){ new Resizer(ele); });
	$$(".tool_toggle").each(function(ele){ new Toggle(ele); });
	$$(".tool_contactlist").each(function(ele){ new ContactList(ele); });
	$$(".tool_toolbar").each(function(ele){ new Toolbar(ele); });
	$$(".tool_template").each(function(ele){ new Template(ele); });
}


function loadscripts()
{
	$$(".tool_player").each(function(ele){ new Player(ele); });
	$$(".tool_rating").each(function(ele){ new Rating(ele); });
	$$(".tool_textcounter").each(function(ele){ new TextCounter(ele); });
	$$(".tool_pagination").each(function(ele){ new Pagination(ele); });	
	
}

function reloadscripts(id)
{
	$(id).getElementsBySelector(".tool_contact").each(function(ele){ new Contact(ele); });
	$(id).getElementsBySelector(".tool_player").each(function(ele){ new Player(ele); });
	$(id).getElementsBySelector(".tool_rating").each(function(ele){ new Rating(ele); });
	$(id).getElementsBySelector(".tool_textcounter").each(function(ele){ new TextCounter(ele); });
	$(id).getElementsBySelector(".tool_pagination").each(function(ele){ new Pagination(ele); });
	$(id).getElementsBySelector(".tool_submit").each(function(ele){ new AjaxSubmit(ele); });
}

/***********************************************/
/***********************************************/
	
function getWindowHeight() 
{
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

function setFooter() 
{
	if (document.getElementById) 
	{
		var windowHeight = getWindowHeight();
		if (windowHeight > 0) 
		{
			var contentHeight = $('content').offsetHeight + $('header').offsetHeight + 55;
			var footerElement = $('footer');
			
			if (footerElement)
			{
			    windowHeight -= (contentHeight + footerElement.offsetHeight);
			    if (windowHeight > 0)
		    	    $('footerspacer').style.paddingTop = windowHeight + 'px';
			    else
				    $('footerspacer').style.paddingTop = '0px';			    
			}
		}
	}
}

window.addEvent("load",setFooter);
window.addEvent("resize",setFooter);

/***********************************************/
/***********************************************/


function switchMenu(obj) 
{
	var el = document.getElementById(obj);
	if ( el.style.display != "none" ) 
	{
		el.style.display = 'none';
	}
	else 
	{
		el.style.display = '';
	}
}
