/**
* @author james
* Use this file for common javascript stuff
*/

// browser var
var browserName = navigator.appVersion;
var ieBrowserVersion = parseFloat(browserName.split('MSIE')[1]);

// some vars
var reordering = false;  // state variable for whether or not the nav is being sorted by the couple

// set up onload listener
window.onloadListeners = new Array();
window.addOnLoadListener = function(listener) {
    window.onloadListeners[window.onloadListeners.length]=listener;
}

window.onload = function() {
    for(var i=0; i< window.onloadListeners.length; i++) {
        var func=window.onloadListeners[i];
        func.call();
    }
}

// window.addOnLoadListener( activateTooltips );
window.addOnLoadListener( activateTooltips );
window.addOnLoadListener( activateSuggestions );
window.addOnLoadListener( swapThumbnails );
/**
* Loop through div and close message divs
*/

// ?!?!!
var allPageTags = new Array();
function hideFlash()
{
    var theClass = 'message';
    var allPageTags=document.getElementsByTagName("div");

    for (i=0; i<allPageTags.length; i++)
    {
        if (allPageTags[i].className==theClass)
        {
            allPageTags[i].style.display='none';
        }
    }
}

function showTemplateSelector() {
    var f=$('tform'); f.style.display=(f.style.display=='block'?'none':'block');
    void 0;
}

function hideTemplateSelector() {
    document.getElementById('toolbar').style.display = "block";
    document.getElementById('show_toolbar').style.display = "none";
     document.body.style.paddingTop="85px";
}

function removeText(node) {
    if (node != null) {
        if (node.childNodes) {
            for(var i=0; i < node.childNodes.length; i++) {
                var oldTextNode = node.childNodes[i];
                if(oldTextNode.nodeValue != null) {
                    node.removeChild(oldTextNode);
                }
            }
        }
    }
}

function appendText(node, text) {
    var newTextNode = document.createTextNode(text);
    node.appendChild(newTextNode);
}

function setText(node, text) {
    removeText(node);
    appendText(node, text);
}

function getGroupOrder(classname, hiddenname) {
    var sections = document.getElementsByClassName(classname);  //gets a list of everything that has an item tag
    var alerttext = '';
    for(var i=1; i<=sections.length; i++) {
        var sectionID = sections[i-1].id; //the id of the indvidual medal
        var order = Sortable.serialize(sectionID);
        if(i!=sections.length) {
            alerttext += sectionID +'&';
        } else {
            alerttext += sectionID;
        }
    }
    document.getElementById(hiddenname).value=alerttext;  //set the value of our hiddentext area
    return alerttext;
}

if( typeof( Array.prototype.push ) == 'undefined' )
{
     Array.prototype.push = function(value) {
        this[ this.length ] = value;
    };
}

function killElement(id,parentID)
{
    /* detroys an element, usually created by dlgPop */
    id = document.getElementById(id);
    if (id) {
        if (parentID) document.getElementById(parentID).removeChild(id);
        else document.body.removeChild(id);
    }
}


/* ajax visual loader ("loading..", "upadting..", "canceling..") functions */
function showLoading(div, loaderType,w,h){
	// just calling the new loader.  replace/kill showLoading as you come to it!
	showLoader();
}

function hideLoading(div, loaderType) {
	// just calling the new loader.  replace/kill hideLoading as you come to it!
	hideLoader();
}

function hideMp3FileSelector() {
    try {
        var selector = document.getElementById('mp3UploadFileSelector');
        var delbox = document.getElementById('mp3DeleteBox');
        if(delbox.checked) {
            selector.style.display = "none";
        } else {
            selector.style.display = "block"
        }
    } catch (e) {
        //alert(e);
    }
}

function hideLegFileSelector() {
    try {
        var selector = document.getElementById('legPhotoUpload');
        var delbox = document.getElementById ('legDelPhoto');
        if(delbox.checked) {
            selector.style.display = "none";
        } else {
            selector.style.display = "block"
        }
    } catch (e) {
        //alert(e);
    }
}

function compareFields(type) {
	if(type == 'email')
	{
		var pw1 = document.getElementById('u_email1');
		var pw2 = document.getElementById('u_email2');
		var mess = 'Your email addresses do not match';
	}
	else if(type == 'password')
	{
		var pw1 = document.getElementById('u_password1');
		var pw2 = document.getElementById('u_password2');
		var mess = 'Your passwords do not match';
	}
	else
		return true;

    if(pw1.value != pw2.value) {
        alert(mess);
        pw2.focus();
        return false;
    } else {
        return true;
    }
}

function checkCpEmail()
{
    var em1 = document.getElementById('u_email1');
    var em2 = document.getElementById('u_email2');
    if(pw1.value != pw2.value) {
        alert('Your passwords do not match');
        pw2.focus();
        return false;
    } else {
        return true;
    }
}

/* nav bar / navigation code */
saveSortOrder_nav = function() {
	showLoader('<img src="/images/icons/ajax-loader.gif" alt="Saving..."/> Saving...');
	document.getElementById('sorted').value = Sortable.serialize('siteNav'); 
	$('navorder').request({
	  onComplete: function(transport){
		hideLoader();
		$('navbar').replace(transport.responseText); 
		}
	});
}

saveSortOrder_posts = function() {
	showLoader('<img src="/images/icons/ajax-loader.gif" alt="Saving..."/> Saving...');
	document.getElementById('posts_sort').value = Sortable.serialize('posts'); 
	$('postorder').request({
	  onComplete: function(transport){ 
		//$('posts').replace(transport.responseText); 
		hideLoader();
		}
	});
}

saveSortOrder_photos = function() {
	document.getElementById('photos_sort').value = Sortable.serialize('photogallery'); 
	$('photoorder').request({
	  onComplete: function(transport){ 
		//$('posts').replace(transport.responseText); 
		}
	});
}

resortNav = function(which) {
	if (!which) which = "show";
	
	if (which == "show") {
		for (i=0; i < $$('#siteNav .handle').length; i++) {
			$$('#siteNav .handle')[i].style.display = 'block';
		}
		
		$('nav_reorder_done').style.display = 'block';
		$('nav_reorder').style.display = 'none';
		
		reordering = true;
		
	} else {
		
		$('nav_reorder_done').style.display = 'none';
		$('nav_reorder').style.display = 'block';
		
		for (i=0; i < $$('#siteNav .handle').length; i++) {
			$$('#siteNav .handle')[i].style.display = 'none';
		}
		
		reordering = false;
	}

}

addPageInitial = function() {
	Lightview.show({
	    href: '/features/add',
	    rel: 'ajax',
		title: 'Add a New Page - Choose Page Type',
	    options: {
			topclose: true,
			autosize: false,
			width: 520,
			height: 470,
			ajax: {
				method: 'get',
				evalScripts: true
	      }
	    }
	  });
}

addPageSecondary = function(featureType) { 
	Lightview.show({
	    href: '/features/add?featureType=' + featureType,
	    rel: 'ajax',
		title: 'Add a New Page to Your Site',
	    options: {
			topclose: true,
			autosize: true,
			ajax: {
				method: 'get',
				evalScripts: true
	      }
	    }
	  });
}

customCSS = function(reg_id) {
	Lightview.show({
	    href: '/registries/customcss/' + reg_id,
	    rel: 'ajax',
	    title: 'Add Custom CSS',
	    options: {
	      autosize: false,
	      topclose: true,
		  width: 350,
		  height: 350,
	      ajax: {
	        method: 'get',
	        evalScripts: true
	      }
	    }
	  });
}

// currently overloaded to do page title editing and landing page general edits
// TODO: handle landing page appropriately
function editPageTitle(url, title, isLandingPage) {
	if(typeof(title) != 'string')
		title = 'Edit Page Title';
	
	if(typeof(isLandingPage) != 'boolean')
		isLandingPage = false;
	
	Lightview.show({
	    href: url,
	    rel: 'ajax',
		title: title,
	    options: {
			topclose: true,
			autosize: false,
			width: 500,
			height: (isLandingPage ? 300 : 170),
			ajax: {
				method: 'get',
				evalScripts: true
	      }
	    }
	  });
}

function toggleMinipics() {
	$('posts_container').toggleClassName('minipics');	
	var make_minipics = $$('.entryphoto .lightview img');
	
	// modify the thumbnail to be the larger image, for preview benefit
	// only making the small image be the larger one when toggling minipics off
	// no benefit to doing the reverse since this is just a temporary preview
	for ( var i in make_minipics ) {
		if ( make_minipics[i].src ) var src = make_minipics[i].src;
		if ( src ) var tmb_index = src.indexOf('tmb_');
		if ( src && tmb_index != -1 ) {
			make_minipics[i].src = src.substring(0, tmb_index) + src.substr(tmb_index+4);
		}
	}
}

/* Edit entries */
function editEntry(reg_id, sid, fid) {

	if (nic_body) nic_body.removeInstance('PostPostContent')
    $('post_addevent').action = '/posts/update/' + sid + '/' + fid;

    $('content_submit').value = 'Apply Changes';
    var title = $$('#post_' + reg_id + ' h2.entrytitle');
    var subtitle = $$('#post_' + reg_id + ' h3.entrysubtitle');
    var entry = $$('#post_' + reg_id + ' .entrycontent');
    var entrydate   = $$('#post_' + reg_id + ' .post_event_date');
    var entry_location = $$('#post_' + reg_id + ' .post_location');
    var entry_idx      = $$('#post_' + reg_id + ' .post_idx');
    var author = $$('#post_' + reg_id + ' .entryposted_by');
    if ( !$('to_replace_photo') ) new Insertion.After('upload_photo', '<div id="to_replace_photo" style="margin:10px 0;">(To replace or remove the photo, please delete and re-create your entry.)</div>');
    $('upload_photo').style.display = 'none';
    if ( !$('edit_entry_id') ) new Insertion.Bottom('post_addevent', '<input id="edit_entry_id" name="data[Post][id]" type="hidden" />');
    $('edit_entry_id').value = reg_id;
    if (title[0]) $('PostPostTitle').value = title[0].innerHTML;
    if (subtitle[0]) $('PostPostSubtitle').value = subtitle[0].innerHTML;
    if (author[0]) {
	    if ($('PostCreatedby').options[0].innerHTML.indexOf( author[0].innerHTML.substring(3).replace(/^\s+|\s+$/g, '') ) == 0) $('PostCreatedby').selectedIndex=0;
	    if ($('PostCreatedby').options[1].innerHTML.indexOf( author[0].innerHTML.substring(3).replace(/^\s+|\s+$/g, '') ) == 0) $('PostCreatedby').selectedIndex=1;
    }
    if (entry[0]) $('PostPostContent').value = entry[0].innerHTML;
    
    if(entrydate[0])
    	$('PostPostEventDate').writeAttribute('value', entrydate[0].readAttribute('value'));
    if(entry_location[0])
    	$('PostPostLocation').writeAttribute('value', entry_location[0].readAttribute('value'));
    if(entry_idx[0])
    	$('PostIdx').writeAttribute('value', entry_idx[0].readAttribute('value'));
}

function addEntryReset(sid, fid) {
	if (nic_body) nic_body.removeInstance('PostPostContent')

    $('post_addevent').action = '/posts/add/' + sid + '/' + fid;
    $('content_submit').value = 'Add Entry';

    // if ( !$('to_replace_photo') ) new Insertion.After('upload_photo', '<div id="to_replace_photo" style="margin:10px 0;">(To replace or remove the photo, please delete and re-create your entry.)</div>');

    if ( $('upload_photo') ) $('upload_photo').style.display = 'block';
    // if ( !$('edit_entry_id') ) new Insertion.Bottom('post_addevent', '<input id="edit_entry_id" name="data[Post][id]" type="hidden" />');
    // $('edit_entry_id').value = reg_id;
	if ( $('PostPostContent') ) $('PostPostContent').value = "";
    if ( $('PostPostTitle') ) $('PostPostTitle').value = "";
	if ( $('PostPostSubtitle') ) $('PostPostSubtitle').value = "";
    // if (author[0]) {
    // 	    if ($('PostCreatedby').options[0].innerHTML.indexOf( author[0].innerHTML.substring(3).replace(/^\s+|\s+$/g, '') ) == 0) $('PostCreatedby').selectedIndex=0;
    // 	    if ($('PostCreatedby').options[1].innerHTML.indexOf( author[0].innerHTML.substring(3).replace(/^\s+|\s+$/g, '') ) == 0) $('PostCreatedby').selectedIndex=1;
    // }
}

// copyright 1999 Idocs, Inc. http://www.idocs.com
// Distribute this script freely but keep this notice in place
function alphaNumericOnly(e)
{
	var key;
	var keychar;

	if (window.event) {
		key = window.event.keyCode;
		var shiftPressed = window.event.shiftKey;
	} else if (e) {
		key = e.which;
		var shiftPressed = e.shiftKey;
	} else 
		return true;
	var shiftPressed = true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ( (key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) || 
		(key==35) || (key==36) || (key==37) || (key==38) || (key==39) || (key==40) || 
		(key==45) || (key==46)	)
		return true;	
	else if  ((key >  57  && key <  65)  ||  (key >  90  && key <  96) ||  (key==111) ||  (key==106))
	{
		return false;
	}
	// alphas and numbers
	else if (shiftPressed && (("0123456789").indexOf(keychar) > -1))
		return false;
	else if ((("abcdefghijklmnopqrstuvwxyz0123456789").indexOf(keychar) > -1))
		return true;
	else
		return false;
	   
}

function removeBadChars(text) {
	return text.replace(/[^a-zA-Z0-9\-]+/, '');
}

function enforceCharLimits() {
	var inputFields = $$('input[size]');
	for (i=0;i<inputFields.length;i++) {
		Event.observe(inputFields[i], 'keypress', function() {checkCharLimit(this);} );
	}
}

function addTemplateNameToLinks(templateName) {
	var links = document.getElementsByTagName('a');
	for (i=0;i<links.length;i++) {
		if ( typeof links[i] != 'undefined' && typeof links[i].href != 'undefined' && !$(links[i]).hasClassName('lightview') ) links[i].href += "/?template="+templateName;
	}
}

/* used to globally limit the character length of a field by checking its HTML size parameter.  */
function checkCharLimit(obj) {
	if (obj) {
		if (obj.size && obj.size > 0) {
			if (obj.value.length > obj.size) obj.value = obj.value.substr(0, obj.size-1);
		}
	}
}


/* nic edit rich text editor initialization */
var nic_body = false;
var nic_content = false;
function iebug() { $('body').style.paddingBottom = '300px';}

Event.observe(document, 'lightview:opened', function(event) {
	var textareas = $$('textarea');
	for ( i=0; i<textareas.length; i++) {
		if ( textareas[i].className.indexOf('no_nic') == -1 )
            nic_body = new nicEditor({buttonList : ['fontSize','forecolor','bold','italic','link','unlink','indent','outdent','ol','ul','image','xhtml']}).panelInstance(textareas[i].id);
	}
	
	activateTooltips();
});

function position_nav() {
	var offsets = $('siteNav').positionedOffset();

	if ( offsets[1] < 50 ) {
		$('siteNav').style.top = '50px';
	var offsets = $('siteNav').positionedOffset();
	}

	var navOptions = $('nav_options');
	if(navOptions)
	    navOptions.setStyle({'left': eval(offsets[0])+'px', 'top': eval(offsets[1])+'px', 'display': 'block'});
}

function showLoader(msg) {
	if (!msg) 
		msg = '<img src="/images/icons/ajax-loader.gif" alt="Loading..."/> Loading...';
	
	var loader_msg = $$('#loader.interface_box .content_container .content')[0];
	loader_msg.innerHTML = msg;
	
	var leftIndent = eval(document.viewport.getWidth() / 2 - $$('#loader.interface_box .content_container .content')[0].getWidth() / 2 )+"px";
	$$('#loader')[0].style.left = leftIndent;
	
	new Effect.Morph('loader', {
	  style: 'bottom: -17px;',
	  duration: 0.3
	});
}

function hideLoader() {
	
	var leftIndent = eval(document.viewport.getWidth() / 2 - $$('#loader.interface_box .content_container .content')[0].getWidth() / 2 )+"px";
	$$('#loader')[0].style.left = leftIndent;
	
	new Effect.Morph('loader', {
	  style: 'bottom: '+eval( -67 - ($$('#loader.interface_box .content_container .content')[0].getHeight()) ) +'px;',
	  duration: 0.3
	});
	
	activateTooltips();
	activateSuggestions();
}
// TODO: kill all refs to this function, then kill this function
function addNote() {}

function activateTooltips() {
	$$('.help').each(function(element) {
		if ($(element).readAttribute('help')) new Tip(element, $(element).readAttribute('help'), {
			hideOn: 'mouseout',
			delay: 0,
			border: 3,
			radius: 3,
			offset: { x: 5, y: 5 },
			borderColor: '#f99e1c'
		});
	});	
}

var Suggest = new Array();
var SuggestIndexes = new Array();

function activateSuggestions() {
	$$('.suggest').each(function(element) {
		if ( $(element).readAttribute('suggest') ) {
			Suggest[ $(element).readAttribute('id') ] = $(element).readAttribute('suggest').split(",");
			SuggestIndexes[ $(element).readAttribute('id') ] = 1;
		}
	});	
}

function suggest( id ) {
	var input_id = id.substr(8);
		$( input_id ).value = Suggest[ id ][ SuggestIndexes[ id ] ];
		SuggestIndexes[ id ]++;
		if ( SuggestIndexes[ id ] == Suggest[ id ].length ) SuggestIndexes[ id ] = 0;
}


/* cookie code:  thanks to http://www.exit404.com/2005/57/unobtrusive-persistant-scriptaculous-effects  !! */
function setCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = ";expires="+date.toGMTString();
	} else {
		expires = "";
	}
	document.cookie = name+"="+value+expires+";path=/";
}

function readCookie(name) {
	var needle = name + "=";
	var cookieArray = document.cookie.split(';');
	for(var i=0;i <cookieArray.length;i++) {
		var pair = cookieArray[i];
		while (pair.charAt(0)==' ') {
			pair = pair.substring(1, pair.length);
		}
		if (pair.indexOf(needle) == 0) {
			return pair.substring(needle.length, pair.length);
		}
	}
	return null;
}

function openComments(id) {
	if ($(id+'_comments')) $(id+'_comments').style.display = "block";
	//if ($(id+'_hideComments')) $(id+'_hideComments').style.display = "block";
	if ($(id+'_showComments')) $(id+'_showComments').style.display = "block";
}

/* used to make sure photo comments don't appear beneath previous photo's info */
function adjustZ(obj,which,typeID) {
	var Z = parseInt($(obj).up('.photo').style.zIndex);
	$(obj).up('.photo').style.zIndex = (which=="up") ? Z+100:Z-100;
}

/* map flash js */
// reload all
function reloadAll() {
	if (flashMovie) {            
		flashMovie.reloadAll();
	}
}  
// get flash movie object
var flashMovie;
function init() {
	if (document.getElementById) {
		flashMovie = document.getElementById("ammap");
		//reloadSettings();
		//reloadData();
	}
}

function setZoomInfo(x,y, level){
	 document.getElementById("zoom_x").value = x;
	 document.getElementById("zoom_y").value = y;
	 document.getElementById("zoom_level").value = level;
  }

/* by porter */
var posx;var posy;var zoomsValue;
if (!ie_mapXOffset) var ie_mapXOffset = 0;
if (!ie_mapYOffset) var ie_mapYOffset = 0;
function getPushpinCoordinates(e){
	/* get the zoom info and write to hidden inputs */
	getZoomInfo();
	
	/* IE is borking without yScroll, so add it to the mouse click position for IE only */
	var yScroll;
	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}
	/* get mouse position */
	posx=0;posy=0;
	var ev=(!e)?window.event:e;//Moz:IE
	if (ev.pageX){posx=ev.pageX;posy=ev.pageY}//Mozilla or compatible
	else if(ev.clientX){posx=ev.clientX+10+ie_mapXOffset;posy=ev.clientY+ie_mapYOffset+yScroll}//IE or compatible
	else{return false}//old browsers

	/* do magics */
	var flashContentPos = Position.cumulativeOffset($('mapOverlay'));
	var clickX = posx-flashContentPos[0];
	var setX = (clickX-parseFloat($('zoom_x').value))/parseFloat($('zoom_level').value);
	var clickY = posy-flashContentPos[1];
	var setY = (clickY-parseFloat($('zoom_y').value))/parseFloat($('zoom_level').value);
	//alert("x:"+setX+" / y:"+setY+" yscroll: "+yScroll);
	zoomsValue = " zoom=\""+parseFloat($('zoom_level').value)+"\" map_x=\""+setX+"\" map_y=\""+setY+"\" zoom_x=\""+parseFloat($('zoom_x').value)+"\" zoom_y=\""+parseFloat($('zoom_y').value)+"\"";
	//$('zooms').value = zoomsValue;
	Effect.toggle($('mapPromptBg'),'appear',{duration:0.3,from:0.0,to:0.6});
	Effect.toggle($('mapPrompt'),'appear',{duration:0.3,from:0.0,to:1.0});
	// $('map_title').focus();
}
/* retrieve data from map click and post it to DB */
function setPushpin() {
	var map_title = $('map_title').value;
	map_title = map_title.replace("/","&#47;")
	map_title = escape(encodeURIComponent(map_title));
	//zoomsValue += ' title="'+map_title+'"';
	//$('zooms').value = zoomsValue;
	var postPinUrl = '/maps/add_pin/'+registryID+'/'+featureID+'/'+map_title+'/'+zoomsValue; //GOKCE: put the url here.
	var postPins = new Ajax.Request( postPinUrl, {method: 'post', onComplete: pushPinDone }); 
}
/* execute after setPushpIn */
function pushPinDone() {
	hidePushpinForm();
	$('mapOverlay').style.display='none';
	$('pinInstructions').style.display='none';
	reloadData();
}
function pushPinDoneDelete() {
	//Effect.toggle($('mapOverlayDelete'),'slide');
	//Effect.toggle($('deleteInstructions'),'slide');
	var listPinUrl = '/maps/list_pins/'+registryID+'/'+featureID+'/';
	new Ajax.Request( listPinUrl, 
			{method: 'post',onSuccess: function(transport) {
	writeDeletePins(transport.responseText);
	}
	});
	reloadData();
}
function showAddPins() {
	if ($('mapOverlayDelete').style.display != 'none') Effect.toggle($('mapOverlayDelete'));
	if ($('deleteInstructions').style.display != 'none') Effect.toggle($('deleteInstructions'));
	Effect.toggle($('mapOverlay'),'slide');
	Effect.toggle($('pinInstructions'),'slide');
}

/* get current pins to create delete list */
function showDeletePins() {
	if ($('mapOverlay').style.display != 'none') Effect.toggle($('mapOverlay'), 'slide');
	if ($('pinInstructions').style.display != 'none') Effect.toggle($('pinInstructions'), 'slide');
	if ($('mapPromptBg').style.display != 'none') Effect.toggle($('mapPromptBg'),'appear',{duration:0.3});
	if ($('mapPrompt').style.display != 'none') Effect.toggle($('mapPrompt'),'appear',{duration:0.3});
	Effect.toggle($('mapOverlayDelete'), 'slide');
	Effect.toggle($('deleteInstructions'), 'slide');
	//$('mapOverlayDelete').style.display='block';
	//$('deleteInstructions').style.display='block';
	var listPinUrl = '/maps/list_pins/'+registryID+'/'+featureID+'/';
	new Ajax.Request( listPinUrl, 
			{method: 'post',onSuccess: function(transport) {
	writeDeletePins(transport.responseText);
	}
	});
}

function writeDeletePins(listPins) {
	// strip the response time comment, if any
	if (listPins.indexOf("<!--") != -1) listPins = listPins.substr(0,listPins.indexOf("<!--"));
	var pinArray = listPins.split("~~~");
	var deletePinHTML = '';
	var thisPinArray;
	if (pinArray.length > 1) {
		for (var i=0;i<pinArray.length-1;i++) {
			thisPinArray = pinArray[i].split("###");
			deletePinHTML += '<div style="float:left;width:200px;border:1px solid red;background:#fcc;padding:5px;">';
				deletePinHTML += '<a href="javascript:void(0);" onclick="new Ajax.Request( \'/maps/del_pin/'+registryID+'/'+featureID+'/'+thisPinArray[0]+'\', {method: \'post\', onComplete:pushPinDoneDelete})">';
				deletePinHTML += 'Delete</a> ';
				deletePinHTML += thisPinArray[1];
			deletePinHTML += '</div>';
		}
	} else {
		deletePinHTML = '<div class="noPins">There are no pins to delete!</div>';
	}
	$('mapOverlayDelete').update(deletePinHTML);
}

function hidePushpinForm() {
	Effect.toggle($('mapPromptBg'),'appear',{duration:0.3,to:0.0});
	Effect.toggle($('mapPrompt'),'appear',{duration:0.3,to:0.0});
}
// reload data
function reloadData() {
	if (flashMovie) {            
		flashMovie.reloadData();
	}
}
// reload settings
function reloadSettings() {
	if (flashMovie) {            
		flashMovie.reloadSettings();
	}
}
function getZoomInfo(){
	if (flashMovie) {
		flashMovie.getZoomInfo();
	}
}

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

function checkPromoCode(promoCode) {
	if(promoCode.match(/^\s*$/))  // don't bother looking up a blank promo code
	    return;
	var promoCodeUrl = '/pay/validate_code/'+promoCode+'/';
	new Ajax.Request( promoCodeUrl, 
			{method: 'post',onSuccess: function(transport) {
		$('promoCodeMsg').update(transport.responseText);
		if (transport.responseText.indexOf("Congratulations!") != -1) $('promoCodeMsg').style.border = '1px solid #547DB7';
		else $('promoCodeMsg').style.border = '1px solid red';
		Effect.toggle($('promoCodeMsg'),'appear',{duration:0.3,to:1.0});
	}
	});
}

function addRsvpEvent() {
	var postParams = "data[Event][title]=" + escape($('event_title').value);
	postParams += "&data[Event][description]=" + escape($('event_description').value);
	postParams += "&data[Event][event_date]=" + escape($('event_date').value);
	new Ajax.Request( '/events/add/', 
			{method: 'post',postBody:(postParams),onSuccess: function(transport) {
		if (transport.responseText == "success") {window.location = '/events/index'; }
		else {new Insertion.bottom($('add_event_error'), 'There was an error adding this event - please try again!'); Effect.toggle($('add_event_error')); }
	}
	});
}

function delRsvpEvent(id) {
	if (confirm('Are you sure you want to delete this event?')) {
		var postParams = "data[Event][id]=" + id;
		new Ajax.Request( '/events/delete/', 
				{method: 'post',postBody:(postParams),onSuccess: function(transport) {
			if (transport.responseText == "success") {window.location = '/events/index'; }
			else {alert('There was an error deleting this event - please try again!');}
		}
		});
	}
}

function clearDefault() { this.style.color = '#000'; if (this.value == this.alt) this.value='';}
function resetDefault() { if (this.value == '') { this.value = this.alt; this.style.color = '#aaa';} }

function setDefaults() {
	var textInputs = document.getElementsByTagName('input');
	var inputsDefault = new Array();
	for (i=0;i<textInputs.length;i++) {
		var inputName = textInputs[i].id;
		inputsDefault[inputName] = textInputs[i].value;
		if (textInputs[i].type == "text") {
			if (textInputs[i].value == "") { textInputs[i].value = textInputs[i].alt; textInputs[i].style.color = '#aaa'; }
			Event.observe(textInputs[i],'focus',clearDefault.bind(textInputs[i]));
			Event.observe(textInputs[i],'blur',resetDefault.bind(textInputs[i]));
		}
	}
}
		
function selectGuest(obj,singleRow) {
	if (obj.id) var id = obj.id;
	else { var id = obj; $(id+"").checked = true; }
	$(id+"").ancestors()[1].style.background = ($(id+"").checked != false) ? "#fffabb":"";
	if (!singleRow) $(id+"").ancestors()[1].next(0).style.background = ($(id+"").checked != false) ? "#fffabb":"";
}

function fixPNG(myImage) 
{
    if ((version >= 5.5) && (version < 7) && (document.body.filters)) 
    {
       var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
	   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
	   var imgTitle = (myImage.title) ? 
		             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
	   var imgStyle = "display:inline-block;" + myImage.style.cssText
	   var strNewHTML = "<span " + imgID + imgClass + imgTitle
                  + " style=\"" + "width:" + myImage.width 
                  + "px; height:" + myImage.height 
                  + "px;" + imgStyle + ";"
                  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                  + "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"
	   myImage.outerHTML = strNewHTML	  
    }
} 

// Function By Waqas
function set_default_path(path,title)
{
	new Ajax.Request('/controlpanel/set_default?path='+path+'&title='+title, { method:'get' });
	// document.getElementById('set_def').innerHTML = "Make Default";
		var postParams = 'path='+path+'&title='+title;
		new Ajax.Request( '/controlpanel/set_default/', 
				{method: 'post',postBody:(postParams),onSuccess: function(transport) {
			if (transport.responseText == "success") {
					document.getElementById('current_default').style.display="block";
					document.getElementById('mkdefault').style.display="none";
				}
			else {alert('There was an error Makint this default - please try again!');}
		}
		});
	
	
}
function toggle_default(current)
{
	if(current  == "0" ){
		
		document.getElementById('current_default').style.display="none";
		document.getElementById('mkdefault').style.display="block";	
		//alert("zero:"+current);	
	}
	else{
		//alert("one:"+current);	
		document.getElementById('current_default').style.display="none";
		document.getElementById('mkdefault').style.display="none";	
	}
}

// for thumbnail images, if the real width of the image is smaller than the displayed width
// (because the template is forcing wider images) fetch the fullsize and replace the image's
// src
function swapThumbnails()
{
	$$('img[src]').
		findAll(function(img,i) { return img.src.match(/tmb/);  }).
		each(function(img,i) {
			var testImg = new Image(); 
			testImg.onload = function() { 
				if(this.width < img.width)
				{
					var bigImg = new Image();
					bigImg.onload = function() {
						img.src = this.src;
					};
					bigImg.src = img.src.replace(/tmb_/, '');
				}
			};
			testImg.src = img.src; 
		});
}