// global variables
var doc = document;
// inlcudes for prototype and scriptaculous
doc.write('<script type="text/javascript" src="http://www.sucksorrules.com/global/scripts/protoculous-1.0.2-packed.js"></script>');
// reminder [take out later when you don't need it for debug]
/*doc.write('<script src="/global/scripts/dump.js" type="text/javascript"></script>');*/

var isIEany = false;
var isIE6 = false;
var isIE7 = false;
if (navigator.userAgent.indexOf("MSIE 6.0") != -1) {
	isIE6 = true;
} else if (navigator.userAgent.indexOf("MSIE 7.0") != -1) {
	var isIE7 = true;	
}

if (isIE6 || isIE7) { isIEany = true }

if (isIE6) { doc.write('<link rel="stylesheet" href="/css/ie6.css" media="screen"/>');}
if (isIE7) { doc.write('<link rel="stylesheet" href="/css/ie7.css" media="screen"/>');}

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}


Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
	
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

addEvent(window,'unload',EventCache.flush);

var trace = function(content) {
	if (navigator.userAgent.indexOf("MSIE") == -1) {
		console.log(content);
	}
}

function adCall (site,zone) {
	dartSite = site;
	dartZone = zone;
	ord=Math.random()*10000000000000000;
}

// new ad fix
var adFix = {
	adTimer: null,
	init: function() {
		adFix.adTimer = window.setTimeout(adFix.refreshAds, 15000);
	},
	refreshAds: function() {
		list = document.getElementsByClassName("ad-iframe");
		list.each(function(listAt) {
			var newOrd = Math.floor(Math.random()*10000000000000000);
			var newSrc = listAt.src.split("ord=")[0] + 'ord=' + newOrd + '?';
			var newIFrame = Builder.node("iframe", { width: listAt.width, height: listAt.height, marginheight: 0, hspace: 0, vspace: 0, frameborder: 0, scrolling: 'no', className: 'ad-iframe', src: newSrc});
			listAt.parentNode.replaceChild(newIFrame, listAt);
			window.clearTimeout(adFix.adTimer);
			adFix.init();
		});
	}
}
//addEvent(window,'load',adFix.init);

var sor = {
	evenOut: function() {
		if ($('left').getHeight() > $('right').getHeight()) {
			$('right').style.height = ($('left').getHeight() - 10) + 'px';
		}else{
			$('left').style.height = ($('right').getHeight()) + 'px';
		}	
	}
}

// object for setting, getting, and erasing cookies
var cookieTool =  {
	// set cookie
	createCookie: function (name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	// read cookie
	readCookie: function (name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	// erase cookie
	eraseCookie: function (name) {
		this.createCookie(name,"",-1);
	}
}

// survey launcher
var surveyLauncher =  {
	init: function() {
		if (!cookieTool.readCookie("surveyFreq")) {
			cookieTool.createCookie("surveyFreq", 1, 14);
		} else {
			if (parseInt(cookieTool.readCookie("surveyFreq")) == 4) {
				surveyLauncher.increment();
				surveyLauncher.launch();
			} else if (parseInt(cookieTool.readCookie("surveyFreq")) < 4) {
				surveyLauncher.increment();
			}
		}
	},
	increment: function() {
		var newValue = parseInt(cookieTool.readCookie("surveyFreq"));
		newValue++;
		cookieTool.createCookie("surveyFreq", newValue, 14);
	},
	launch: function() {
		appOverlay();
		setApp('<iframe class="survey-frame" src="http://www.surveymonkey.com/s.aspx?sm=xiHsAcpefie674XG_2fEv28g_3d_3d"></iframe>');
	}
}
//addEvent(window,"load", surveyLauncher.init);

//test launcher
//if (window.location.href == "http://dev.sucksorrules.com/") {
	//addEvent(window,"load", function() {window.setTimeout(surveyLauncher.launch, 500)});
//}

function setNav() {
	var navList = $A($('nav').getElementsByClassName("top"));
	navList.each(function(navAt){
		if (pageType && pageType == navAt.id.split("_")[0]) {
			$(navAt).addClassName("on");
			var subNav = $A(navAt.getElementsByClassName("sub"));
			subNav.each(function(subNavAt){
				var section = subNavAt.getElementsByTagName("a")[0].title.toLowerCase().replace(/\W/g,"");
				if (pageCat && pageCat == section) {
					$(subNavAt).addClassName("on");
				}
			});
		}
		var topLink = $(navAt).getElementsByTagName("a")[0];
		topLink.onclick = function() {
			this.blur();
			$(this.parentNode).addClassName("on");
			clearSubs(this.parentNode);
			if (navAt.id == 'search_nav') {
				$('q').focus();
			}
		}
	});
	function clearSubs(currentNode) {
		var navList = $A($('nav').getElementsByClassName("top"));
		navList.each(function(navAt){
			if (navAt != currentNode) {
				$(navAt.removeClassName("on"));
			}
		});
	}
	if (pageType && pageType == 'search') {
		$('q').value = window.location.href.split("q=")[1].replace(/\+/g," ");
		$('q').focus();
	}
}

function getPassword() {
	$('login_form').toggle();
	new Ajax.Updater('forgot_pass','/users/login/password_form/');
}

// validation for email retrieval form
function checkEmailForm() {
	if (!$F('password_email') || $F('password_email').indexOf("@") == -1 || $F('password_email').indexOf(".") == -1) {
		passwordError('<p>Please enter a valid email address</p>');
	} else {
		var url = '/users/login/password_return/';
		new Ajax.Request(url, {
				method: 'post',
				parameters: {email_address: $F('password_email')},
				onSuccess: function(t) {
					$('forgot_pass').innerHTML = t.responseText;
				}			 
		});
	}	
}

function passwordError (mssg) {
	$('email_error').innerHTML = mssg;
	if ($('email_error').style.display == 'none') {
		Effect.BlindDown('email_error');
	} else {
		$('email_error').morph('color: #FFCC33');	
	}
}

// top tabs on homepage
var tabsXML = '';
function topTabs(obj) {
	var objName = obj.className;
	obj.onclick = function(){};
	var dtList = $A($('top').getElementsByTagName("dt"));
	dtList.each(function(dtAt){
		if (dtAt != obj) {
			dtAt.onclick = function() { topTabs(this) };	
		}				 
	});
	$('top').getElementsBySelector("dt.on")[0].removeClassName("on");
	$('top').getElementsBySelector("dd.on")[0].removeClassName("on");
	$('top').getElementsBySelector("dt." + objName)[0].addClassName("on");
	$('top').getElementsBySelector("dd." + objName)[0].addClassName("on");
	$('top').getElementsBySelector("dd." + objName)[0];
	if ($('top').getElementsBySelector("dd." + objName)[0].getElementsByTagName("ul").length == 0) {
		if (!tabsXML) {
			new Ajax.Request('/xml/homepage_tabs.xml?cache=' + Math.random()*10000000000000000 ,{
				method: 'get',
				onSuccess: function(t) {
					tabsXML = t.responseXML;
					$('top').getElementsBySelector("dd." + objName)[0].innerHTML = tabsXML.getElementsByTagName(objName)[0].firstChild.data;
				}
			});	
		} else {
			$('top').getElementsBySelector("dd." + objName)[0].innerHTML = tabsXML.getElementsByTagName(objName)[0].firstChild.data;
		}
	}
}

// top tabs on homepage
var bottomTabsXML = '';
function bottomTabs(obj) {
	var objName = $A(obj.className.split(" "))[0];
	obj.onclick = function(){};
	var dtList = $A($('content_tabs').getElementsByTagName("dt"));
	dtList.each(function(dtAt){
		if (dtAt != obj) {
			dtAt.onclick = function() { bottomTabs(this) };	
		}				 
	});
	$('content_tabs').getElementsBySelector("dt.on")[0].removeClassName("on");
	$('content_tabs').getElementsBySelector("dd.on")[0].removeClassName("on");
	$('content_tabs').getElementsBySelector("dt." + objName)[0].addClassName("on");
	$('content_tabs').getElementsBySelector("dd." + objName)[0].addClassName("on");
	$('content_tabs').getElementsBySelector("dd." + objName)[0];
	
	return;
	
	if ($('content_tabs').getElementsBySelector("dd." + objName)[0].getElementsByTagName("ul").length == 0) {
		if (!tabsXML) {
			new Ajax.Request('/xml/homepage_bottom_tabs.xml?cache=' + Math.random()*10000000000000000 ,{
				method: 'get',
				onSuccess: function(t) {
					tabsXML = t.responseXML;
					$('content_tabs').getElementsBySelector("dd." + objName)[0].innerHTML = tabsXML.getElementsByTagName(objName)[0].firstChild.data;
				}
			});	
		} else {
			$('content_tabs').getElementsBySelector("dd." + objName)[0].innerHTML = tabsXML.getElementsByTagName(objName)[0].firstChild.data;
		}
	}
}

// scroller on homepage
var homePageSlot = 0;
var scrollerXML = '';
homeScroller = function(direction) {
	var nextButton = $('next').getElementsBySelector("li.next")[0];
	var prevButton = $('next').getElementsBySelector("li.prev")[0]
	var slotList = $A($('scroller').getElementsBySelector("div.section"));
	var slotArray = new Array(slotList.length);
	var slotWidth = $(slotList[0]).getWidth();
	var loopCount = 0;
	slotArray.each(function(slotAt){
		if (loopCount == 0) {
			slotArray[loopCount] = 0;
		} else {
			slotArray[loopCount] = - (slotWidth * loopCount);
		}
		loopCount++;
	});
	if (direction == 'up') {
		homePageSlot++;		
	} else if (direction == 'down') {
		homePageSlot--;
	}
	if (homePageSlot != 0 && prevButton.style.display == 'none') {
		new Effect.Appear($(prevButton));
	} else if (homePageSlot != slotArray.length - 1 && nextButton.style.display == 'none') {
		new Effect.Appear($(nextButton));
	}
	if (homePageSlot == 0) {
		new Effect.Fade($(prevButton));
	} else if (homePageSlot == slotArray.length - 1) {
		new Effect.Fade($(nextButton));
	}
	slotList.each(function(slotAt) {
		slotAt.morph('left: ' + slotArray[homePageSlot] + 'px', {duration: .5});
	});
	if (slotList[homePageSlot].getElementsBySelector("span.loading").length != 0) {
		// load xml if we haven't already
		if (!scrollerXML) {
			new Ajax.Request('/xml/homepage_scroller.xml?cache=' + Math.round(Math.random()*1000000), {
				method: 'get',
				onSuccess: function(t) {
					scrollerXML = t.responseXML;
					slotList[homePageSlot].innerHTML = scrollerXML.getElementsByTagName("item")[homePageSlot].firstChild.data;
				}
			});	
		} else {
			slotList[homePageSlot].innerHTML = scrollerXML.getElementsByTagName("item")[homePageSlot].firstChild.data;
		}
	}
}

loginAlert = function () {
	displayError('<h2>There is an error. That sucks.</h2><p>You need to be registered and logged in to Sucks Or Rules to use that function.</p><p>If you are not registered, <a href="/users/registration/" title="click here to join the fun.">click here to join the fun</a>, otherwise, log in and rock on.</p>');
}

appOverlay = function() {
	if ($('app_overlay')) {
		return;	
	}
	var bodyNode = document.getElementsByTagName("body")[0];
	var totalHeight = $(bodyNode).getHeight();
	var appHeight = self.screen.availHeight - 250 + 'px';
	var overLay = Builder.node("div", {
		id: 'app_overlay',
		style: 'height: ' + totalHeight + 'px; display: none'
		}, [
				Builder.node('div', {
					id: 'overlay_bg',
					style: 'height: ' + totalHeight + 'px;'
				}),
				Builder.node('div', {id: 'overlay_container', style: 'top: 25px'}, [
					Builder.node('div',{id: 'overlay_content', style: 'height: ' + appHeight})																					   
				])
			]
		);
	bodyNode.appendChild(overLay);
	new Effect.Appear($(overLay), {duration: .5});
	appScroll();
	window.onscroll = function() {
		var scrollTimer = window.setTimeout(appScroll, 500);
	}
	if ($('ad')) {
		sor_250_ad = $('ad').innerHTML;
		$('ad').style.height = "250px";
		$('ad').innerHTML = '';
	}
	if ($('expand_ad')) {
		sor_900_ad = $('expand_ad').innerHTML;
		$('expand_ad').style.height = "90px";
		$('expand_ad').innerHTML = '';
	}
}

setApp = function(content) {
	var closeButton = Builder.node('a', {
			className: 'close_button',
			href: '#',
			onclick: 'appClose(); return false;'
		},
		'close window'
	);
	$('overlay_content').appendChild(closeButton);
	$('overlay_content').innerHTML += content;
}

appendTestData = function() {
	var testData = Builder.node('div', {
	className: 'test_data',
	id: 'test_data'
	}, 'test data');
	$('overlay_content').appendChild(testData);
}

appScroll = function() {
	if (self.pageYOffset)  {
		newY = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop) {
		newY = document.documentElement.scrollTop;
	}
	else if (document.body) {
		newY = document.body.scrollTop;
	}
	if ($('app_overlay')) {
		$('overlay_container').morph('top:' + (newY +25) + 'px', {duration: .5});
	}
}

appClose = function () {
	if ($('app_overlay')) {
		new Effect.Fade('app_overlay', {duration: .5});
		window.setTimeout(function() {
			$('app_overlay').parentNode.removeChild($('app_overlay'));
			if ($('ad') && sor_250_ad ) { $('ad').innerHTML = sor_250_ad };
			if ($('expand_ad') && sor_900_ad ) { $('expand_ad').innerHTML = sor_900_ad };
		},500);
	}
}



// tooltip object
var toolTip = {
	// variables that help this object along
	tipList: new Array(),
	// init function that adds logic to all links classed 'tooltip'
	init: function() {
		var tips = $A(document.getElementsByClassName('tooltip'));
		tips.each(function(tipAt) {
			tipAt.removeAttribute("title");
			addEvent(tipAt, "mouseover", toolTip.showTip);
			addEvent(tipAt, "mouseout", toolTip.hideTip);
			addEvent(tipAt, "mousemove", toolTip.moveTip);	
			if (tipAt.getElementsByTagName("span").length != 0) {
				tipAt.getElementsByTagName("span")[0].rel = tipAt.rel;
			}
			if (tipAt && tipAt.href == "#") {
				addEvent(tipAt,"click", function(){ return false;})	
			}
		});
	},
	// calc out mouse position and ajax url and id name from rel attribute
	calc: function(e) {
		if ( document.captureEvents ) {
			var xLoc = e.pageX;
			var yLoc = e.pageY;
			var ajaxURL = e.currentTarget.getAttribute("rel");
		} else if ( window.event.clientX ) {
			var xLoc = window.event.clientX+document.documentElement.scrollLeft;
			var yLoc = window.event.clientY+document.documentElement.scrollTop;
			var ajaxURL = window.event.srcElement.getAttribute("rel");
		}
		var arguments = {
			xLoc:  xLoc,
			yLoc: yLoc,
			ajaxURL: ajaxURL,
			idName: ajaxURL.split("/")[4]
		}
		//trace(arguments); return;
		return arguments;
	},
	// either builds or display existing tooltip box
	showTip: function(e) {
		var params = toolTip.calc(e);
		if (toolTip.tipList.indexOf(params.idName) == -1) {
			toolTip.buildToolTip(params);
		} else {
			if ($(params.idName) && !$(params.idName).visible()) {
				toolTip.moveTip(e);
				$(params.idName).show();
			}
		}
		//trace('over');
	},
	// hides tooltip
	hideTip: function(e) {
		var params = toolTip.calc(e);
		window.setTimeout(function(){ 
			$(params.idName).hide();
		}, 100);
		//trace('out');
	},
	// moves pre-made tooltop div elements
	moveTip: function(e) {
		var params = toolTip.calc(e);
		if ($(params.idName)) {
			$(params.idName).style.left = parseInt(params.xLoc + 10) + "px";
			$(params.idName).style.top = parseInt(params.yLoc + 10) + "px";
		}
	},
	// build div box with the response from the ajax request
	buildToolTip: function(params) {
		if (toolTip.tipList.indexOf(params.idName) != -1) { return; }
		toolTip.tipList.push(params.idName);
		var newXloc = params.xLoc + 10;
		var newYloc = params.yLoc + 10;
		new Ajax.Request(params.ajaxURL, {
			onSuccess: function(t) {
				var newDiv = Builder.node('div', {className: 'tooltip_box', style: 'top: ' + newYloc + 'px; left: ' + newXloc + 'px', id: params.idName});
				document.getElementsByTagName('body')[0].appendChild(newDiv);
				$(params.idName).innerHTML = t.responseText;
			}
		});
	},
	//click handler
	clickHandler: function(ajaxURL,func,fArg) {
		new Ajax.Request(ajaxURL,{
			onSuccess: function(t) {
				appOverlay();
				setApp(t.responseText);
				if (func) {
					func(fArg);
				}
			}
		});
	}
}
// fire off tooltip init function on page load
addEvent(window,"load",toolTip.init);

// share functions
var shareIt = {
	init: function() {
		dataReturn = {
			"title": $('edit_title').innerHTML,
			"blurb": $('edit_blurb').innerHTML,
			"url": window.location.href.replace('#','')
		}
		return dataReturn;
	},
	digg: function() {
		var dataObject = this.init();
		this.goURL("http://digg.com/submit?phase=2&url=" + encodeURIComponent(dataObject.url)+ "&title=" + encodeURIComponent(dataObject.title)+ "&bodytext=" + encodeURIComponent(dataObject.blurb));
	},
	facebook: function() {
		var dataObject = this.init();
		this.goURL("http://www.facebook.com/share.php?u=" + dataObject.url);
	},
	delicious: function() {
		var dataObject = this.init();
		this.goURL("https://secure.del.icio.us/login?url=" + encodeURIComponent(dataObject.url) + "&title=" + encodeURIComponent(dataObject.title) + "&jump=close&partner=addthis&v=4");
	},
	stumbleit: function() {
		var dataObject = this.init();
		this.goURL("http://www.stumbleupon.com/submit?url=" + dataObject.url+ "&title=" + dataObject.title);
	},
	widget: function(mode,battleID) {
		new Ajax.Request('/scripts/ajax/widgets/', {
			method: 'post',
			parameters: {
				mode: mode	,
				battleID: battleID
			},
			onSuccess: function(t) {
				appOverlay();
				setApp(t.responseText);		
			},
			onFailure: function(t) {
				appOverlay();
				setApp(t.responseText);		
			}
		});
	},
	goURL: function(newURL) {
		window.location.href = newURL;
	}
}

// IE hack for "suckefish" ul menus
var setInit = {
	ulMenus: function() {
		list = $A(document.getElementsByClassName("suckerfish"));
		list.each(function(listAt){
			listAt.onmouseover = function() {
				listAt.addClassName('hover');	
			}
			listAt.onmouseout = function() {
				listAt.removeClassName('hover');	
			}
		});
	}
}
// add load event for IE and "suckerfish" menus
if (window.attachEvent) window.attachEvent("onload", setInit.ulMenus);

// report app

var reportContent =  {
	runCode:  false,
	submitReport: function (reportCode,objectType,objectID) {
		if (this.runCode) return;
		reportContent.runCode = true;
		new Ajax.Request('/scripts/ajax/report/', {
			method: 'post',
			parameters: {
				reportCode: reportCode,
				objectType: objectType,
				objectID: objectID 
			},
			onSuccess: function(t) {
				var h = $H(t.responseText.evalJSON());
				new Effect.Fade('report-links',{duration: .5});
				window.setTimeout(function(){
					$('report-links').parentNode.removeChild($('report-links'));
				}, 600);
				if (h.success) {
					$('error_mssg').addClassName("non_error");
				}
				new Effect.ScrollTo('error_mssg');
				displayError(h.mssg);
			}			
		});
	}
}

function submitReport (reportCode,objectType,objectID) {
	new Ajax.Request('/scripts/ajax/report/', {
		method: 'post',
		parameters: {
			reportCode: reportCode,
			objectType: objectType,
			objectID: objectID 
		},
		onSuccess: function(t) {
			var h = $H(t.responseText.evalJSON());
			new Effect.Fade('report-links',{duration: .5});
			window.setTimeout(function(){
				$('report-links').parentNode.removeChild($('report-links'));
			}, 600);
			if (h.success) {
				$('error_mssg').addClassName("non_error");
			}
			new Effect.ScrollTo('error_mssg');
			displayError(h.mssg);
		}
	});
}

////////////////////////////////////////stuff for viewer/////////////////////////
	//fill in Default Values
	function defView (fArg){
		var vType=fArg.split("||")[0];
		var vFil=fArg.split("||")[1];
		if(vType != 'default'){
			var vMode=vType.split(":")[0];
			var vVal=vType.split(":")[1];
			trace(vMode);
			switch(vMode){
				case 'tag':
				$('tag-Val_ck').checked="checked";
				$('tag-Val').disabled=false;
				$('tag-Val').value=vVal;
				break;
				case 'cat':
				var catT=$A($('cat-Sel').options);
					$('cat-Sel_ck').checked="checked";
					$('cat-Sel').disabled=false;
				catT.each(function(cT){
					if(vVal==cT.value){
						cT.selected="selected";
						}			   
				});
				break;
				case 'fri':
				trace('im firing');
				var friV = $A($('fri-Val').options);
					$('fri-Val_ck').checked="checked";
					$('fri-Val').disabled=false;
					friV.each(function(fV){
						if(vVal==fV.value){
							fV.selected="selected";
							}			   
					});
				break;
				}//end switch
			//need to disable the checks
			var vForm=$A($('viewForm').getElementsByTagName('INPUT'));
				vForm.each(function(iV){
					if(iV.type=='checkbox'){
						trace(iV.id);
						if(iV.id.split("-")[0]!=vMode){
						iV.disabled=true;
						}
						}
									});
			
			}// end type if
		if(vFil !='a:999:1'){
			
			var oType=$A($('objFilter').options);
			oType.each(function(oT){
				if(vFil.split(":")[0]==oT.value){
					oT.selected="selected";
					}
						});
			var tFrame=$A($('timeFilter').options);
			tFrame.each(function(tF){
				if(vFil.split(":")[1]==tF.value){
					tF.selected="selected";
					}				 	 
								 });
			var voteF=$A($('voteFilter').options);
			voteF.each(function(vF){
					if(vFil.split(":")[2]==vF.value){
					vF.selected="selected";
					}
								});
			}
		}//end Function
	
	
	function typeCheck(){
		var typeF=$('viewForm');
		var cl=0;
		var ct=0;
		var ckStr;
		for(var i=0;i<typeF.length;i++)	{
			//disable checks 
			if (typeF[i].type=='checkbox')	{
				cl++;
				if(typeF[i].checked!=true)	{
					typeF[i].disabled=true;
					ct++;
					}else	{//enables ctrl elements
						if(typeF[i].checked==true)	{		
							ckStr=typeF[i].id.split("_")[0];
							if($(ckStr)){
							ctlSet=ckStr;
								$(ckStr).disabled=false;
										}//endif
									}//endif
								}//endElse
							}//end if	
						}//end for
			if (cl==ct){ // enables active checkbox
				for(var k=0;k<typeF.length;k++){
					if(typeF[k].type=='checkbox'){
						typeF[k].disabled=false;
										}else if(typeF[k].className=='typeCtl'){ // disables control box
											typeF[k].disabled=true;
										}//end if
									}//end for
								} //end if
	}//end function
	
function displayFeedback (mssg) {
	$('output').innerHTML = mssg;
	if ($('output').style.display == 'none') {
		Effect.BlindDown('output');
	} else {
		new Effect.Highlight('output');
	}
}

function displayError (mssg) {
	$('error_mssg').innerHTML = mssg;
	if ($('error_mssg').style.display == 'none') {
		Effect.BlindDown('error_mssg');
	} else {
		new Effect.Highlight('error_mssg');	
	}
	new Effect.ScrollTo('error_mssg');
}


function hideError() {
	Effect.BlindUp('error_mssg');
}

// Functions for global Viewer

function nextOView(url,skipID,skipToggle) {
	
	if (skipToggle == true) {
		
		//var urlArray = $A(window.location.href.split("/"));
		//var battle_id = urlArray[urlArray.length - 3];
		new Ajax.Request('/scripts/ajax/viewer/sor_control.cfm',{
			method: 'post',
			parameters: {
				type: 'add_skip',
				object_id: skipID
			},
			onSuccess: function() {
				window.location.href = url;	
			}
		});
	} else {
		window.location.href = url;	
	}
}

//Buttons for setting State

//Set Client Var
function setDefaultView(){
	var val='default';
	var fil='a:999:1';
	new Ajax.Request('/scripts/ajax/viewer/sor_control.cfm',{
			method: 'post',
			parameters: {
				type: 'setVal',
				viewVal: val,
				filVal: fil
			},
			onSuccess: function() {
					$('load').innerHTML='Default View Set! - <a href="/index.cfm" class="default_button">Return to the homepage.</a>';
					$('headStat').innerHTML='You are not in a custom battle/object viewer.';
					$('viewVal').value='';
			}
		});
	}

function setTagView(val){
	$('load').innerHTML='Loading....';
	new Ajax.Request('/scripts/ajax/viewer/sor_control.cfm',{
			method: 'post',
			parameters: {
				type: 'setVal',
				viewVal: val
			},
			onSuccess: function() {
				//need to do launcher here
				var splitVal=val.split(":")[1];
				launchView('tag',splitVal);
				
			}
		});

	}
	
function setCusView(vVal,vFil){
	$('load').innerHTML='Loading....';
	new Ajax.Request('/scripts/ajax/viewer/sor_control.cfm',{
			method: 'post',
			parameters: {
				type: 'setView',
				vVal: vVal,
				vFil: vFil
			},
			onSuccess: function() {
				//trace(vVal+"||"+vFil);
				//need to do launcher here
				//var splitVal=val.split(":")[1];
				launchView(vVal,vFil);
				
			}
		});

	}	
	
	
// Custom Viewer Launcher

function nViewCk(){
	var nVf=$('viewForm');//form element
	var cF='';
	var ePt='';
	var vVal='';
	for(var i=0;i<nVf.length;i++){
		if(nVf[i].type=='checkbox'){
			if(nVf[i].checked==true){
				cF=nVf[i].id;
					}//endif
				}//endif
		}//endfor
	if(cF!=''){
		var eStr=$(cF.split("_")[0]);
		if(eStr&&eStr.value==''){
			var whoa=document.getElementsByTagName('LABEL');
			for(var m=0;m<whoa.length;m++){
				if(whoa[m].htmlFor==eStr.id){
					ePt=whoa[m].innerHTML;
					}
				}
			alert('Please choose something for the :'+ePt+' field');
			return;
			}//endif
		}else{
			alert('Please click a checkbox!');
			return;
			}//endif
		// It parses out the values
			//View Val
		if(eStr){
			vVal=cF.split('-')[0]+':'+eStr.value;
			}else{
			vVal=	cF.split('-')[0]+':'+'0'
				}
			//Filter Val
		var vFil=$('objFilter').value+':'+$('timeFilter').value+':'+$('voteFilter').value;
		//fire!
		setCusView(vVal,vFil);
	}//end function



function launchView(view,fil){
	trace(view+":"+fil);
	new Ajax.Request('/scripts/ajax/viewer/sor_control.cfm',{
					method:'post',
					parameters:{
						type:'getLaunch',
						view:view,
						fil:fil
						
						},
						onSuccess: function(t){
							var h = $H(t.responseText.evalJSON()); // process JSON
								if (h.URL != 0){
										if($('load')){ //Status
											$('load').innerHTML='One moment, launching viewer..........';
											}
								window.location.href=h.URL; // launcher
								}else{
									$('load').innerHTML='Fail!, there are no results for those parameters. Try again!';
									$('viewVal').value='';
									}
							}
					 
					 
					 });
	
	}
	
	//Fav List Functions
	function addFav(objID,objType){
		new Ajax.Request('/scripts/ajax/fav/index.cfm',{
			method: 'post',
			parameters: {
				mode: 'add',
				object_id: objID,
				object_type:objType
			},
			onSuccess: function() {
				//switch some class here
	
			}
		});
		
		}
		
	function delFav(objID){
		new Ajax.Request('/scripts/ajax/fav/index.cfm',{
			method: 'post',
			parameters: {
				mode: 'del',
				object_id: objID
			},
			onSuccess: function() {
				//switch some class here

			}
		});
		
		}
	
	