var AutoInitScripts = true;
var isPageLoaded = false;

window.addEvent("domready", function(){	
	isPageLoaded = true;
	
	$$('a.Share').each(function(a){
		//containers
		var storyList = a.getParent();
		var shareHover = storyList.getElements('div.share-hover')[0];
		shareHover.set('opacity',0);
		//show/hide
		a.addEvent('mouseenter',function() {
				shareHover.setStyle('display','block').fade('in');
		});
		shareHover.addEvent('mouseleave',function(){
			shareHover.fade('out');
		});
		storyList.addEvent('mouseleave',function() {
			shareHover.fade('out');
		});
	});
	
	/*var myTips = 	new Tips('.Tipz',{ 
				className: 'Tipz', 
				fixed: false, 
				hideDelay: 50, 
				showDelay: 50
			});
	myTips.addEvent('show', function(tip, el){
		tip.fade('in');
	});
	myTips.addEvent('hide', function(tip, el){
		tip.fade('out');
	});*/
});

(function($){
	window.addEvent('domready',function() {
	});
})(document.id);



function Vote(obj, tid) {
	new Request({
		method: 'get',
		url: 'request.php',
		data: { 'action'	:	'vote',
				'tid'		:	tid},
		onRequest: function() {
			//obj.getElement('STRONG').set('html', '&nbsp;');
			obj.getElementsByTagName('STRONG')[0].innerHTML = '&nbsp;';
		}.bind(obj),
		onSuccess: function(response) {
			if(response == "PleaseRegister") window.top.location.href = "/forums/index.php?app=core&module=global&section=register";
			//else obj.getElement('STRONG').set('html', response);
			else obj.getElementsByTagName('STRONG')[0].innerHTML = response;
		}.bind(obj)
	}).send();
	//obj.set('onclick', '');
	obj.setAttribute('onclick', '');
}
function Subscribe(obj, tid) {
	new Request({
		method: 'get',
		url: 'request.php',
		data: { 'action'	:	'subscribe',
				'tid'		:	tid},
		onRequest: function() {
			//obj.getElement('STRONG').set('html', '&nbsp;');
			obj.getElementsByTagName('STRONG')[0].innerHTML = '&nbsp;';
		}.bind(obj),
		onSuccess: function(response) {
			if(response == "PleaseRegister") window.top.location.href = "/forums/index.php?app=core&module=global&section=register";
			//else obj.getElementsByTagName('STRONG')[0].innerHTML = response;
			else {
				//obj.addClass('Subscribed');
				$(obj).set('html', '<strong>&nbsp;</strong>sbscrbd');
			}
		}.bind(obj)
	}).send();
	obj.setAttribute('onclick', '');
}
function unSubscribe(obj, tid) {
	new Request({
		method: 'get',
		url: 'request.php',
		data: { 'action'	:	'unsubscribe',
				'tid'		:	tid},
		onRequest: function() {
			//obj.getElement('STRONG').set('html', '&nbsp;');
			obj.getElementsByTagName('STRONG')[0].innerHTML = '&nbsp;';
		}.bind(obj),
		onSuccess: function(response) {
			if(response == "PleaseRegister") window.top.location.href = "/forums/index.php?app=core&module=global&section=register";
			//else obj.getElementsByTagName('STRONG')[0].innerHTML = response;
			//else obj.addClass('Unsubscribed');
			else {
				//obj.addClass('Unsubscribed');
				$(obj).set('html', '<strong>&nbsp;</strong>unsbscrbd');
			}
		}.bind(obj)
	}).send();
	obj.setAttribute('onclick', '');
}
function GetModels(obj, make) {
	if(make != "Other" && make != "Automotive Blog" && make != "") {
		$('topic_other').setStyle('display', 'none');
		new Request({
			method: 'get',
			url: 'request.php',
			data: { 'action'	:	'models',
					'make'		:	make},
			onRequest: function() { select_innerHTML(obj, "<option value=''>Loading...</option>"); obj.setStyle('display', 'block'); }.bind(obj),
			onSuccess: function(response) {
				if(response == "PleaseRegister") window.top.location.href = "/forums/index.php?app=core&module=global&section=register";
				else select_innerHTML(obj, response);
				//else obj.set('html', response);
			}.bind(obj)
		}).send();
	} else {
		obj.setStyle('display', 'none');
		obj.set('html', '<option value="">Loading...</option>');
		
		if(make == "Other") $('topic_other').setStyle('display', 'block');
		else $('topic_other').setStyle('display', 'none');
	}
}

var ThumbCount = 0;
var ThumbControls = false;
function Crawl(url, type) {
	var error = "";
	url = trim(url);
	
	if(url == "" || url == "http://") error = "Please provide a URL before proceeding.";
	/*if(type == "vids") {
		if(	url.indexOf("youtube") < 0 &&
			url.indexOf("vimeo") < 0 &&
			url.indexOf("streetfire") < 0) error = "Vid URL must be either Youtube, Vimeo, or Streetfire.";
	}*/
	
	if(error == "") {
		var PopupLoading = new Element('div', {
			   'class':	'PopupWin',
			   'title':	'PleaseWait',
			   'html':	('<div class="Error">Rifft is crawling the URL for information...</div>')
    		}).inject($$('BODY')[0]);
		PopupWin = PopupWin('Please Wait', 'PleaseWait', 150, 400, url, type);

		//PopupWin.addEvent('onComplete', function() {
		//	CrawlRequest() gets called from inside PopupWin.js
		//});
	} else {
		var PopupError = new Element('div', {
		    'class':	'PopupWin',
		    'title':	'Error',
		    'html':	('<div class="Error">' + error + '</div>')
    		}).inject($$('BODY')[0]);

		PopupWin('Error', 'Error', 150, 400);
	}
}
function CrawlRequest(url, type) {
		if(url.substring(0,7) != 'http://') url = 'http://' + url;
	
		new Request({
			method: 'get',
			url: 'request.php',
			timeout: 60000,
			async: (Browser.Engine.trident)?true:false,
			data: { 'action'	:	'crawl',
					'URL'		:	url,
					'Type'		:	type},
			//onRequest: function() {
			//},
			onTimeout: function() {
				$('Preview').set('html', 'We encountered an error while reading the URL, please try again.');
			},
			onSuccess: function(response) {
				//alert(response);
				if(response == "PleaseRegister") window.top.location.href = "/forums/index.php?app=core&module=global&section=register";
				//else if(response == "404") $('Preview').innerHTML = 'URL Not Found';
				else {
					$('Submission').setStyle('display', 'none');
					$('Preview').setStyle('display', 'block');
					closePopup();

					//alert(response);
					var SiteInfo = PHP_Unserialize(response);
					var ResponseHTML = "<form id='SubmitForm' method='POST' action='/?drift=submit' enctype='multipart/form-data' >";
					ResponseHTML += "<input type='hidden' name='Type' value='" + SiteInfo["Type"] + "'/>";
					
					// Thumbnail / RSS
					ResponseHTML += "<div id='Thumbnail' class='Thumbnail'>";
					//if(SiteInfo["FeedUrl"]) {
					//	$ThumbAuto = "/images/ThumbAuto.gif";
					//	ResponseHTML += "	<img src='" + $ThumbAuto + "' id='ThumbAuto' class='LinkThumb' style='display:none;' />";
					//	ResponseHTML += "<input type='hidden' id='Thumb' name='Thumb' value='" + $ThumbAuto + "'/>";
					//} else {
						ResponseHTML += "<input type='hidden' id='Thumb' name='Thumb' value='" + SiteInfo["Thumb"][0] + "'/>";
					//}
					
					// Thumbnail / List
					for(i in SiteInfo["Thumb"]) {
						ThumbString = new String(SiteInfo["Thumb"][i]);
						IsUrl = ThumbString.substring(0,7);
						if(IsUrl == 'http://' && SiteInfo["Thumb"][i] != "Upload")
							ResponseHTML += "	<img src='" + SiteInfo["Thumb"][i] + "' id='Thumb" + i + "' class='LinkThumb' style='display:none;' />";
					}
					ResponseHTML += "	<img id='ThumbEdit' src='/images/ThumbEdit.gif' class='ThumbEdit' />";
					
					// Thumbnail / Controls & Upload
					ResponseHTML += "<div id='Upload' class='Upload'>";
						ResponseHTML += "	<span id='ThumbCount'></span><br/>";
						ResponseHTML += "	<a class='Left' href='javascript:ChangeThumb(\"Prev\");'>Prev</a>";
						ResponseHTML += "	<a class='Right' href='javascript:ChangeThumb(\"Next\");'>Next</a><br/>";
					ResponseHTML += "</div>";
					
					ResponseHTML += "	<div id='Thumb" + (SiteInfo["Thumb"].length-1) + "' class='LinkThumb' style='display:none;'>no preview<br/><a id='UploadLink' onclick='$(\"File\").click();' href='javascript:void(0);'>upload image</a>";
					ResponseHTML += "	<input id='File' name='topic_photo' class='File' type='file' onchange='$(\"UploadLink\").set(\"text\", \"change image\");'/></div>";
					ResponseHTML += "</div>";
					
					// Submit Button
					Type = SiteInfo["Type"];
					if(Type.substr(Type.length-1) == "s") Type = Type.substr(0, Type.length-1);
					
					ResponseHTML += "<a class='Submit' onmouseup='if(validate(\"" + SiteInfo["Type"] + "\") != false) $(\"SubmitForm\").submit();' href='javascript:void(0);'>Add " + Type + "</a>";
					
					// Pagetitle
					ResponseHTML += "<input type='text' maxlength='40' id='topic_title' name='TopicTitle' class='Input PageTitle";
					var Pagetitle = ucwords(SiteInfo["Title"].replace(/\\/g, '').toLowerCase());
					if(Pagetitle == "")
						ResponseHTML += " Empty' value='" + Type + " title'/><br>";
					else
						ResponseHTML += "' value='" + Pagetitle + "'/><br>";
					
					// Homepage/Make/Model/URL
					if(SiteInfo["Type"] == "vids" || SiteInfo["Type"] == "features" || SiteInfo["Type"] == "random")
						ResponseHTML += "<input class='Input Homepage' id='topic_make' name='TopicMake' type='text' value='" + SiteInfo["Homepage"] + "'/>";
					
					//if(SiteInfo["Type"] == "vids" || SiteInfo["Type"] == "clogs" || SiteInfo["Type"] == "events") {
					// RSS Feed
					if(SiteInfo["FeedUrl"]) {
						ResponseHTML += "<div class='Feed'><strong>Feed:</strong>";
						ResponseHTML += "	<select name='FeedUrl' class='Input Feed' tabindex='0'>";

						for(f=0; f<SiteInfo["FeedUrl"].length; f++) {
							ResponseHTML += "	<option value='" + SiteInfo['FeedUrl'][f]['url'] + "'>" + ucwords(SiteInfo['FeedUrl'][f]['title'].toLowerCase()) + "</option>";
						}

						ResponseHTML += "		<option value=''></option>";
						ResponseHTML += "		<option value=''>No RSS Feed</option>";
						ResponseHTML += "	</select>";
						ResponseHTML += "</div>";
					} else {
						ResponseHTML += "<input type='hidden' name='FeedUrl' value=''/>";
					}

					if(SiteInfo["Type"] == "clogs" || SiteInfo["Type"] == "events") {
						ResponseHTML += "<select class='Input Empty' tabindex='0' name='TopicMake' id='topic_make' onchange='GetModels($(\"topic_model\"), this.value)'>";
						ResponseHTML += "	<option value=''>Blog or Car Type...</option>";
						ResponseHTML += "	<option value=''></option>";
						ResponseHTML += "	<option value='Automotive Blog'>Automotive Blog</option>";
						ResponseHTML += "	<option value='Film Blog'>Film Blog</option>";
						//ResponseHTML += "	<option value='Photo Blog'>Photo Blog</option>";
						ResponseHTML += "	<option value=''></option>";
						for(i in car_types) {
							ResponseHTML += "<option value='" + i + "'>" + i + "</option>";
						}
						ResponseHTML += "</select>";
						
						ResponseHTML += "<select class='Input Other Empty' tabindex='0' name='TopicModel' id='topic_model' style='display: none;' onchange='if(this.value == \"Other\") $(\"topic_other\").getParent().setStyle(\"display\", \"block\");'>";
						ResponseHTML += "	<option value=''>Loading...</option>";
						ResponseHTML += "</select>";
						
						ResponseHTML += "<input class='Input Other Empty' type='text' tabindex='0' value='' name='TopicOther' maxlength='150' style='display: none; padding: 1px !important;' id='topic_other'/>";
					} else if(SiteInfo["Type"] == "techs") {
						ResponseHTML += "<select class='Input Empty' tabindex='0' name='TopicMake' id='topic_make'>";
						ResponseHTML += "	<option value=''>Article Type</option>";
						for(i in tech_types) {
							ResponseHTML += "<option value='" + i + "'>" + i + "</option>";
						}
						ResponseHTML += "</select>";
					} /*else
						ResponseHTML += "<span class='Homepage'>" + SiteInfo["URL"].substring(0,70) + "</span><br/>";*/
					
					// Description
					ResponseHTML += "<input name='TopicDesc' type='hidden' value='" + SiteInfo["URL"] + "'/>";
					
					// Post
					ResponseHTML += "<textarea name='Post' id='topic_post' class='Input Description";
					var Description = SiteInfo["Desc"].replace(/\\/g, '');
					if(Description == "")
						ResponseHTML += " Empty'>Enter a brief description...";
					else
						ResponseHTML += "'>" + Description;
					ResponseHTML += "</textarea></form>";
				
					// Set HTML
					$('Preview').set('html', ResponseHTML);
				
					// Set Thumbnail Controls
					$$('.LinkThumb')[0].setStyle('display', 'block');
					$('ThumbCount').set('text', 'Image ' + (ThumbCount+1) + ' of ' + $$('.LinkThumb').length);
	
					$('ThumbEdit').addEvent('mouseenter', function(){
							ThumbControls = true;
							$('Upload').fade('in');
					});
					$$('div.LinkThumb')[0].addEvent('mouseenter', function(){
							ThumbControls = true;
							$('Upload').fade('in');
					});
					$('Upload').addEvent('mouseenter', function(){
							ThumbControls = true;
					});
					$('ThumbEdit').addEvent('mouseleave', function(){
						setTimeout(function(){
							if(!ThumbControls) $('Upload').fade('out');
						}, 500);
					});
					$$('div.LinkThumb')[0].addEvent('mouseleave', function(){
						setTimeout(function(){
							if(!ThumbControls) $('Upload').fade('out');
						}, 500);
					});
					$('Upload').addEvent('mouseleave', function(){
						ThumbControls = false;
						setTimeout(function(){
							if(!ThumbControls) $('Upload').fade('out');
						}, 500);
					});
					
					// Set Empty / Hover states
					$$('.Input').each(function(Eobj){
						Eobj.addEvent('mouseenter', function(){
							this.addClass('Hover');
						}.bind(Eobj));
						Eobj.addEvent('mouseleave', function(){
							this.removeClass('Hover');
						}.bind(Eobj));
						Eobj.addEvent('focus', function(){
							this.addClass('Empty');
						}.bind(Eobj));
						Eobj.addEvent('blur', function(){
							this.removeClass('Empty');
						}.bind(Eobj));
					});
				}
			}
		}).send();
}
function ChangeThumb(Direction) {
	$$('.LinkThumb')[ThumbCount].setStyle('display', 'none');
				
	if(Direction == 'Next' && ThumbCount < ($$('.LinkThumb').length-1)) ThumbCount++;
	else if(Direction == 'Prev' && ThumbCount > 0) ThumbCount--;
	
	$$('.LinkThumb')[ThumbCount].setStyle('display', 'block');
	if(ThumbCount < ($$('.LinkThumb').length-1))
		$('Thumb').set('value', $$('.LinkThumb')[ThumbCount].get('src'));
	else
		$('Thumb').set('value', 'Upload');
	$('ThumbCount').set('text', 'Image ' + (ThumbCount+1) + ' of ' + $$('.LinkThumb').length);
}
function validate(type) {
	type2 = type;
	if(type2.substr(type2.length-1) == "s") type2 = type2.substr(0, type2.length-1);
					
	if($('topic_title').value == "" || $('topic_title').value == type2 + " title") {
		$('topic_title').addClass('Error');
		return false;
	} else $('topic_title').removeClass('Error');
	
	if(type == "clogs") {
		if($('topic_make').value == "") {
			$('topic_make').addClass('Error');
			return false;
		} else $('topic_make').removeClass('Error');

		if($('topic_model').value == "" && $('topic_make').value != "Automotive Blog" && $('topic_make').value != "Other") {
			$('topic_model').addClass('Error');
			return false;
		} else $('topic_model').removeClass('Error');

		if($('topic_other').value == "" && $('topic_make').value == "Other" || $('topic_model').value == "Other") {
			$('topic_other').addClass('Error');
			return false;
		} else $('topic_other').removeClass('Error');
	} else if(type == "vids" || type == "techs" || type == "features") {
		if($('topic_make').value == "") {
			$('topic_make').addClass('Error');
			return false;
		} else $('topic_make').removeClass('Error');
	}
	
	if($('topic_post').value == "Enter a brief description..." || $('topic_post').value == "") {
		$('topic_post').value = 'Enter a brief description...';
		$('topic_post').addClass('Error');
		return false;
	} else $('topic_post').removeClass('Error');
}
function ucwords(str) {
    // Uppercase the first character of every word in a string  
    return (str + '').replace(/^(.)|\s(.)/g, function ($1) {
        return $1.toUpperCase();
    });
}


// Javascript function to rebuild an event object in a consistant way regardless 
// of the browser that it is used on.
// Returned object has the following fields:
// event: The original event object used
// type: The type of event
// target: The target of the event
// keyCode: The keyCode of the key pressed, if applicable.
// charCode: The character code of the key pressed, if applicable.
// character: The character represented by the charCode, if applicable.
function rebuildEvent(e)
{
	var event = new Object();
	// Get the right event object
	if (!e)
	{
		e = window.event;
	}

	// Store the event object
	event.event = e;
	

	// Store the type of the event
	event.type = e.type;

	// Store the target of the event
	if (e.target) 
	{
		event.target = e.target;
	}
	else if (e.srcElement)
	{
		event.target = e.srcElement;
	}

	if (event.target.nodeType == 3) // defeat Safari bug
	{
		event.target = event.target.parentNode;	
	}

	// Store the keycode of the event (if applicable)
	// Note that this might store the mouse button on a mouse event instead of being blank.
	if ('number' == typeof e.which)
	{
		event.keyCode = e.keyCode;
		event.charCode = e.which;
	}

	else if (e.keyCode)
	{
		event.keyCode = 0;
		event.charCode = e.keyCode;
	}

	if (event.charCode)
	{
		event.character = String.fromCharCode(event.charCode);
	}
	else
	{
		event.character = null;
	}

	// Store if any of alt, ctrl, shift or meta were pressed
	event.altKey = e.altKey;
	event.ctrlKey = e.ctrlKey;
	event.shiftKey = e.shiftKey;
	event.metaKey = e.metaKey || false;

	return event;
}




    /**
    * Unserializes a PHP serialized data type. Currently handles:
    *  o Strings
    *  o Integers
    *  o Doubles
    *  o Arrays
    *  o Booleans
    *  o NULL
    *  o Objects
    * 
    * alert()s will be thrown if the function is passed something it
    * cant handle or incorrect data.
    *
    * @param  string input The serialized PHP data
    * @return mixed        The resulting datatype
    */
    function PHP_Unserialize(input)
    {
        var result = PHP_Unserialize_(input);
        return result[0];
    }


    /**
    * Function which performs the actual unserializing
    *
    * @param string input Input to parse
    */
    function PHP_Unserialize_(input)
    {
    	//alert(input);
        var length = 0;
        
        switch (input.charAt(0)) {
            /**
            * Array
            */
            case 'a':
                length = PHP_Unserialize_GetLength(input);
                input  = input.substr(String(length).length + 4);

                var arr   = new Array();
                var key   = null;
                var value = null;

                for (var i=0; i<length; ++i) {
                    key   = PHP_Unserialize_(input);
                    input = key[1];

                    value = PHP_Unserialize_(input);
                    input = value[1];

                    arr[key[0]] = value[0];
                }

                input = input.substr(1);
                return [arr, input];
                break;
            
            /**
            * Objects
            */
            case 'O':
                length = PHP_Unserialize_GetLength(input);
                var classname = String(input.substr(String(length).length + 4, length));
                
                input  = input.substr(String(length).length + 6 + length);
                var numProperties = Number(input.substring(0, input.indexOf(':')))
                input = input.substr(String(numProperties).length + 2);

                var obj      = new Object();
                var property = null;
                var value    = null;

                for (var i=0; i<numProperties; ++i) {
                    key   = PHP_Unserialize_(input);
                    input = key[1];
                    
                    // Handle private/protected
                    key[0] = key[0].replace(new RegExp('^\x00' + classname + '\x00'), '');
                    key[0] = key[0].replace(new RegExp('^\x00\\*\x00'), '');

                    value = PHP_Unserialize_(input);
                    input = value[1];

                    obj[key[0]] = value[0];
                }

                input = input.substr(1);
                return [obj, input];
                break;

            /**
            * Strings
            */
            case 's':
                length = PHP_Unserialize_GetLength(input);
                return [String(input.substr(String(length).length + 4, length)), input.substr(String(length).length + 6 + length)];
                break;

            /**
            * Integers and doubles
            */
            case 'i':
            case 'd':
                var num = Number(input.substring(2, input.indexOf(';')));
                return [num, input.substr(String(num).length + 3)];
                break;
            
            /**
            * Booleans
            */
            case 'b':
                var bool = (input.substr(2, 1) == 1);
                return [bool, input.substr(4)];
                break;
            
            /**
            * Null
            */
            case 'N':
                return [null, input.substr(2)];
                break;

            /**
            * Unsupported
            */
            case 'o':
            case 'r':
            case 'C':
            case 'R':
            case 'U':
                return [null, 'Error: Unsupported PHP data type found!'];

            /**
            * Error
            */
            default:
                return [null, null];
                break;
        }
    }
    

    /**
    * Returns length of strings/arrays etc
    *
    * @param string input Input to parse
    */
    function PHP_Unserialize_GetLength(input)
    {
        input = input.substring(2);
        var length = Number(input.substr(0, input.indexOf(':')));
        return length;
    }






function ShowMenu(id) {
	//var objCoords = $(id).getCoordinates($$('DIV.User')[0]);
	//alert(objCoords.left);
	
	$(id).setStyles({
		display:	'block',
		//left:		objCoords.left,
		//top:		objCoords.bottom,
		left:		78,
		top:		27,
		opacity:	0
	});
	$(id).fade('in');
	
	document.body.addEvent('mouseup', function(event) {
		$(id).fade('out');
	}.pass(id));

	return false;
}

// BLURBG // Used in PopupWin, Multidropdown, SuggestiveFropdown & EditableDropdown
function BlurBg(fadeIn) {
	var BlurBgDiv = new Element('DIV', {
		'id': 'BlurBg',
		'class': 'BlurBg',
		'styles': {
			'position':			'fixed',
			'top':				'0',
			'left':				'0',
			'background-color':	'#FFFFFF',
			'opacity':			'0.01',
			'z-index':			'900'
		}/*,
		'events': {
			'click':			closeBlurBg
		}*/
	}).injectInside(document.body);
	
	ResizeBlurBg();
	
	window.addEvent('resize', ResizeBlurBg);
	if(Browser.Engine.trident4)	{
		fadeIn = false;
		window.addEvent('scroll', ResizeBlurBg);
	}
	
	if(fadeIn) new Fx.Tween(BlurBgDiv, {duration: (Browser.Engine.trident)?1500:1250}).start('opacity', 0.8);
	return BlurBgDiv;
}
function ResizeBlurBg() {
	if($type($('BlurBg')) != false) {
		BodyDimensions = $$('BODY')[0].getSize();
		
		if(Browser.Engine.trident4) {
			BodyScroll = $$('BODY')[0].getScroll();
			$('BlurBg').setStyles({
				'position':			'absolute',
				'top':				BodyScroll.y,
				'left':				BodyScroll.x
			});
		}
		$('BlurBg').setStyles({
			'height':			BodyDimensions.y,
			'width':			BodyDimensions.x
		});
		
		//If a PopupWin, check top position to stop IE accidentally firing this event before the tween in
		if($type($('PopupWin')) != false && $('PopupWin').getParent().getStyle('top').toInt() >= 0 && PopupWindow.Dragged != true) {
			PopupDimensions = $('PopupWin').getSize();
			PopupTop = ((BodyDimensions.y/4)-(PopupDimensions.y/4));
			PopupLeft = ((BodyDimensions.x/2)-(PopupDimensions.x/2));
			
			$('PopupWin').getParent().setStyles({
				'top':			(PopupTop >= 0)?PopupTop:0,
				'left':			(PopupLeft >= 0)?PopupLeft:0
			});
		}
	}
}
function closeBlurBg() {
	var BlurBg = $('BlurBg');
	if(BlurBg) {
		BlurBg.removeEvents('click');
		
		if(BlurBg.getStyle('opacity') > 0.01) {
			var FocusBgAnim = new Fx.Tween(BlurBg, {duration: (Browser.Engine.trident)?1000:500, transition: Fx.Transitions.Back.easeOut});
					
			FocusBgAnim.addEvent('onComplete', function() {
				window.removeEvents('resize');
				closePopup();
			});
			
			FocusBgAnim.start('opacity', 0);
		} else {
			BlurBg.destroy();
		}
	}
}

/* MIDDLE CLICK DETECTED POPUPS */
function popup(obj, e, url, w, h) {
	var isLeftClick = false;
	
	if(e.shiftKey == false && e.ctrlKey == false) {
		if(Browser.Engine.trident != true && e.button == 0) isLeftClick = true;
		if(Browser.Engine.trident == true && e.button == 1) isLeftClick = true;
		if(Browser.Engine.trident == true && e.button == 0) obj.addEvent('click', function(obj, e, url, w, h) {popup(obj, e, url, w, h)});
	} else {
		return false;
	}
	
	if(isLeftClick) {
		var isScrollbars = 'yes';
		if(Browser.Engine.trident4) isScrollbars = 'no';
		
		window.open(url,'','width='+w+',height='+h+',scrollbars='+isScrollbars+',status=1,resizable=no');
		
		if(!Browser.Engine.trident)
			obj.addEvent('click', function() {return false});
		else
			return false;
	}
}

// GENERIC / ARRAY
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function RemoveDuplicates(arr) {
	//get sorted array as input and returns the same array without duplicates.
	var result=new Array();
	var lastValue="";
	for (var i=0; i<arr.length; i++) {
		var curValue=arr[i];
		if (curValue != lastValue) {
			result[result.length] = curValue;
		}
		lastValue=curValue;
	}
	return result;
}

function flashFix(o) {
	document.write(o)
}

function select_innerHTML(objeto,innerHTML) {
/******
* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Vers&#227;o: 2.1 - 04/09/2007
* Autor: Micox - N&#225;iron Jos&#233; C. Guimar&#227;es - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.indexOf("<option")<0){//se n&#227;o &#233; option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
      
    
    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];
  
        if(spantemp.tagName){     
            opt = document.createElement("OPTION")
    
   if(document.all){ //IE
    objeto.add(opt)
   }else{
    objeto.appendChild(opt)
   }       
    
   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value")
   opt.text = spantemp.innerHTML
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  } 
 }    
 document.body.removeChild(selTemp)
 selTemp = null
}