// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults


function setOpacity(element,value){
	element.style.MozOpacity=(value/100);
	element.style.opacity=(value/100);
	if(element.filters){
		element.filters.alpha.opacity=value;
	}
}

function removeFields(fieldArray){
	for (var i=0; i < fieldArray.length; i++){
		hideField(fieldArray[i]);
	}
}

function showFields(fieldArray){
	var droppedFields = $A(document.getElementsByClassName('post_field'));
	for (var i=0; i < fieldArray.length; i++){
		showField(fieldArray[i]);
		droppedFields = droppedFields.without($(fieldArray[i]+'_field'));
	}
	removeFields(droppedFields);
}

function hideFields(fieldArray){
	for (var i=0; i < fieldArray.length; i++){
		hideField(fieldArray[i]);
	}
}

function hideField(element){
		// new Effect.Puff(element.id, {duration: 0.5} );
		Element.hide(element.id);		
}
function showField(elementName){
	// This was breaking Safari.
	//if(Element.getHeight($(elementName+'_field')) < 10){
		new Effect.Appear(elementName+'_field', {duration: 0.5} );
	//}	
}

function selectPostType(button){
	var postTypes = document.getElementsByClassName('icon');
	var fields = new Array('submit');	// Always show submit button.
	
	for(i=0; i < postTypes.length; i++){
		setOpacity(postTypes[i],50);
	}
	setOpacity(button,100);
	
	$('post_type').value = button.value;
	
	switch(button.value){
		case 'Photo': fields.push('title','description','source'); break;
		case 'Event': fields.push('title','description','start','finish'); break;
		case 'Topic':	fields.push('title','description'); break;
		case 'Link':	fields.push('title','description','url'); break;
		default: alert('Something went wrong...'); break;		
	}
	
	if(button.value == 'Photo'){
		$('preview_post').disabled='disabled';
	} else {
		$('preview_post').disabled='';
	}
	
	showFields(fields);

}

function placeURLFields(){
	Element.show('place_description');
	var labels = document.getElementsByTagName('label');
	for(var i=0; i<labels.length; i++){
		if(labels[i].getAttribute('for') == 'place_description'){
			Element.show(labels[i]);
		} else if(labels[i].getAttribute('for') == 'place_url'){
			labels[i].innerHTML = 'URL:';
		}
	}
}
function placeScreennameFields(){
	Element.hide('place_description');
	var labels = document.getElementsByTagName('label');
	for(var i=0; i<labels.length; i++){
		if(labels[i].getAttribute('for') == 'place_description'){
			Element.hide(labels[i]);
		} else if(labels[i].getAttribute('for') == 'place_url'){
			labels[i].innerHTML = 'Screen Name:';
		}
	}
}
function updatePlaceFields(){
	var URLS = $A(new Array('Website','Blog','Photos','Social Network','Bookmarks','Podcast','Other'));
	var Screennames = $A(new Array('MSN Screenname','Yahoo Screenname','AOL Screenname','ICQ Number'));
	
	if(URLS.indexOf($F('place_metatype')) >= 0){
		placeURLFields();
	} else if(Screennames.indexOf($F('place_metatype')) >= 0){
		placeScreennameFields();
	} else {
		alert ('WOAH, there is a metatype in the updatePlaceFields function that was not accounted for...');
	}
}

function validateComment(textarea){
	if(textarea.value.length > 1){
		$('create_comment').disabled='';
	}
}

/* === BEGIN LIGHTBOXING === */
function lightboxActivate(){
	this.prepareIE('100%', 'hidden');
	/* this.hideSelects('hidden'); // Will there really be any SELECTs on the page? */
	$('lightbox_overlay').style.display='block';
	$('lightbox_content_container').style.display='block';
}
function lightboxDeactivate(){
	this.prepareIE("auto", "auto");
	this.hideSelects("visible");
	Element.hide('lightbox_overlay');
	Element.hide('lightbox_content_container');
}
function prepareIE(height, overflow){
    var bod = document.getElementsByTagName('body')[0];
    bod.style.height = height;
    bod.style.overflow = overflow;

    var htm = document.getElementsByTagName('html')[0];
    htm.style.height = height;
    htm.style.overflow = overflow; 
}
function	hideSelects(visibility){
	selects = document.getElementsByTagName('select');
	for(i = 0; i < selects.length; i++) {
		selects[i].style.visibility = visibility;
	}
}
function displayLightboxFile(filename){
	lightboxActivate();
	$('lightbox_content').innerHTML = '<img src="/images/indicator.gif">';
	
	var url = '/lightbox/'+filename+'.html'
	var vars =''
	var re = new RegExp('\\W');

	if(filename.match(re)){
		alert('"' + filename + '" is not a valid file.');
		return false;
	} 
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: vars, 
			onComplete: showResponse
		});	
	
	function showResponse(request){
		$('lightbox_content').innerHTML = request.responseText;
	}
}
function previewPost(){
	lightboxActivate();
	$('lightbox_content').innerHTML = '<img src="/images/indicator.gif">';

	var url = '/post/preview'
	var vars = Form.serialize('create_post');

	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'post', 
			parameters: vars, 
			onComplete: showResponse
		});	
	
	function showResponse(request){
		$('lightbox_content').innerHTML = request.responseText;
	}
}
/* === END LIGHTBOXING === */
