
function upload_started() {
	var elt = document.getElementById( "upload_btn_container" );
	if ( elt )
		elt.className = "upload_working";
	elt = document.getElementById( "upload_btn_container" );
	if ( elt )
		elt.className = "upload_working";

	elt = document.getElementById( "pxn8_canvas" );
	if ( elt )
		elt.innerHTML = "";

	return true;
}

function upload_complete( imageName, error ) {
	var elt = document.getElementById( "upload_btn_container" );
	if ( elt )
		elt.className = "upload_ready";
	elt = document.getElementById( "upload_btn_container" );
	if ( elt )
		elt.className = "upload_ready";
	document.forms.upload_form.filename.value = "";
	
	if ( imageName.length > 0 ) {
		elt = document.getElementById( "upload_error_msg" );
		if ( elt ) {
			elt.className = "noerror";
		}
		if ( document.forms.upload_form.fof_caption.disabled ) {
			elt = document.getElementById( "name_row0" );
			if ( elt ) {
				elt.className = "last_name_row";
			}
			document.forms.upload_form.fn_0.disabled = false;
			document.forms.upload_form.ln_0.disabled = false;
			document.forms.upload_form.fof_caption.disabled = false;
		}
		PXN8.listener.onceOnly( PXN8.ON_IMAGE_LOAD, onImageLoaded );
		image = imageName;
		PXN8.initialize( image );
	}
	else {
		if ( error.length == 0 )
			error = "There was an unknown problem uploading your image.  Please try again.";
		elt = document.getElementById( "upload_error_msg" );
		if ( elt ) {
			elt.className = "upload_error";
			elt.innerHTML = error;
		}
		
	}
}

function submit_upload_form( form ) {
	var elt = document.getElementById( "filename" );
	if ( elt ) {
		if ( elt.value == "" ) {
			alert("Please choose a file first.");
			return false;
		}
		/*
		elt = document.getElementById( "next_page" );
		if ( elt )
			elt.value = document.location.protocol + "//" + document.location.hostname + document.location.pathname;
		*/
		return FOFUploader.submit(document.forms.upload_form, {'onStart' : upload_started, 'onComplete' : upload_complete});
	}
	return false;
}

var previewDialog = null;
var isIE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;

function showImagePreview() {
	var uncompressed = PXN8.getUncompressedImage();
	
	if ( uncompressed != false ) {
		//uncompressed = PXN8.server + PXN8.root + "/" +  uncompressed;
	}
	else {
		uncompressed = image;
	}
	
	if ( !uncompressed || uncompressed == "" ) {
		alert( "Please upload an image first." );
		return false;
	}
	
	var imgSize = PXN8.getImageSize();
	
	if ( imgSize.width != imgSize.height ) {
		alert( "Please adjust the crop selection area, and crop the image before proceeding." );
		return false;
	}
	/*
	if ( imgSize.width < 400 || imgSize.height < 400 ) {
		if ( confirm("This photo will be of poor quality at this resolution.  We recommend uploading a higher resolution photo.\n\nDo you wish to preview the photo anyway?") == 0 )
			return;
	}*/
	
	if ( fV >= 8 ) {
		var fname = document.forms.upload_form.fn_0.value;
		var lname = document.forms.upload_form.ln_0.value;
		
		var ff = "swf/flag_preview.swf?vv=.7&previewFile=";
		if ( uncompressed.indexOf("/pixenate/") == -1 )
			ff += "/pixenate/";
		ff += escape(uncompressed);
		
		//ff += "&fn_0=" + escape(fname);
		//ff += "&ln_0=" + escape(lname);
		var fe = new FlashEmbed( ff, 8, "552", "360", "#ffffff", "flashflag" );
		
		//fe.create( 'portrait_preview' );
		
		if ( previewDialog == null ) {
			var html = "<h3>Your Photo Preview</h3>"
					+ "<div id=\"portrait_preview\">loading...</div>";
			/*if ( imgSize.width < 400 || imgSize.height < 400 ) {
				html += "<p style=\"margin-top:12px;\">This photo will be of poor quality at this resolution.<br />We recommend uploading a higher resolution photo.</p>";
			}*/
			html += "<p style=\"margin-top:12px;\"><button type=\"button\" onclick=\"closePreview()\">Go Back</button>"
					+ " &nbsp; <button type=\"button\" onclick=\"doCheckout()\">Proceed to Checkout</button></p>";
			if ( isIE6 ) {
				var div = PXN8.dom.ce( "div", { id:"photo_preview_ie6" } );
				div.innerHTML = html;
				PXN8.dom.ac( document.body, div );
				previewDialog = new YAHOO.widget.Panel("photo_preview_ie6",  
						{ width:"580px", 
							fixedcenter:true, 
							close:false, 
							draggable:false, 
							zindex:32760,
							modal:true,
							visible:false
						} 
					);
				previewDialog.render( document.body );
			}
			else {
				var div = PXN8.dom.ce( "div", { id:"photo_preview_block" } );
				PXN8.dom.ac( document.body, div );
				var div = PXN8.dom.ce( "div", { id:"photo_preview_container" } );
				div.innerHTML = "<div id=\"photo_preview_position\">" + html + "</div>";
				PXN8.dom.ac( document.body, div );
				previewDialog = {};
				previewDialog.show = function() {
					var el = document.getElementById( "photo_preview_block" );
					if ( el )
						el.style.display = "block";
					el = document.getElementById( "photo_preview_container" );
					if ( el )
						el.style.display = "block";
				}
				previewDialog.hide = function() {
					var el = document.getElementById( "photo_preview_block" );
					if ( el )
						el.style.display = "none";
					el = document.getElementById( "photo_preview_container" );
					if ( el )
						el.style.display = "none";
				}
			}
		}
		
		var el = document.getElementById( "portrait_preview" );
		if ( el ) {
			el.innerHTML = fe.getHTML();
			previewDialog.show();
		}
	}
	else {
		alert( "The Adobe Flash player version 8 or later is required.  Please install and try again." );
		return false;
	}
	
	/*
	var fname = document.forms.upload_form.fn_0.value;
	var lname = document.forms.upload_form.ln_0.value;
	
	var next_page = document.location.protocol + "//" + document.location.hostname + "/preview_portrait.asp";
	document.location = "/pixenate/save_to_server.pl?image_to_save=" + escape(uncompressed)
			+ "&next_page=" + escape(next_page)
			+ "&fn_0=" + escape(fname) + "&ln_0=" + escape(lname);
	*/
}

function closePreview() {
	previewDialog.hide();
}

var lastNameRow = 0;
var maxNameRows = 9;

function doCheckout() {
	var uncompressed = PXN8.getUncompressedImage();
	
	if ( uncompressed != false ) {
		//uncompressed = PXN8.server + PXN8.root + "/" +  uncompressed;
	}
	else {
		uncompressed = image;
	}
	
	
	//var next_page = document.location.protocol + "//" + document.location.hostname + "/fof_donation_form.asp";
	var next_page = "https://www.flagoffaces.org/fof_donation_form.asp";
	var url = "/pixenate/save_to_server.pl?image_to_save=" + escape(uncompressed)
			+ "&next_page=" + escape(next_page);
	
	var names = [];
	var n;
	for ( n = 0; n <= lastNameRow; n++ ) {
		var fname = trimString( document.forms.upload_form[ "fn_" + n ].value );
		var lname = trimString( document.forms.upload_form[ "ln_" + n ].value );
		if ( fname.length > 0 || lname.length > 0 )
			names.push( {fn:fname, ln:lname} );
	}
	var nm;
	for ( n = 0; n < names.length; n++ ) {
		nm = names[ n ];
		url += "&fn_" + n + "=" + escape(nm.fn) + "&ln_" + n + "=" + escape(nm.ln);
	}
	
	var fof_caption = trimString( document.forms.upload_form.fof_caption.value );
	if ( fof_caption.length > 0 )
		url += "&fof_caption=" + escape(fof_caption);
	
	document.location = url;
}

function trimString( instr ) {
	return instr.replace(/^\s*/, "").replace(/\s*$/, "");
}

function addAnotherName() {
	if ( lastNameRow >= maxNameRows ) {
		return;
	}
	
	var el;
	el = document.getElementById( "name_row" + lastNameRow );
	if ( el ) {
		el.className = "mid_name_row";
	}
	
	lastNameRow++;
	
	el = document.getElementById( "name_row" + lastNameRow );
	if ( el ) {
		el.className = "last_name_row";
	}
}

function onPageLoaded() {
				
	PXN8.style.notSelected = { opacity: 0.66, color:"black" };
	
	if ( image.length > 0 && image.indexOf("//") == -1 ) {
		var elt = document.getElementById( "step2" );
		if ( elt ) {
			elt.style.display = "block";
		}
		elt = document.getElementById( "name_row0" );
		if ( elt ) {
			elt.className = "last_name_row";
		}
		document.forms.upload_form.fn_0.disabled = false;
		document.forms.upload_form.ln_0.disabled = false;
		document.forms.upload_form.fof_caption.disabled = false;
		PXN8.listener.onceOnly( PXN8.ON_IMAGE_LOAD, onImageLoaded );
		PXN8.initialize( image );
	}
	else {
	}
	
	MM_preloadImages('fof_images/tab_home_over.gif','fof_images/tab_add_over.gif','fof_images/tab_search_over.gif');
}

function onImageLoaded() {
	PXN8.selectByRatio("1x1");
	
	/*
	var imgSize = PXN8.getImageSize();
	if ( imgSize.width < 400 || imgSize.height < 400 ) {
		alert( "This photo will be of poor quality at this resolution.  We recommend uploading a higher resolution photo." );
	}
	*/
}

FOFUploader = {

	frame : function(c) {

		var n = 'f' + Math.floor(Math.random() * 99999);
		var d = document.createElement('DIV');
		d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="FOFUploader.loaded(\''+n+'\')"></iframe>';
		document.body.appendChild(d);

		var i = document.getElementById(n);
		if (c && typeof(c.onComplete) == 'function') {
			i.onComplete = c.onComplete;
		}

		return n;
	},

	submit : function(f, c) {
		var frameName = FOFUploader.frame( c );
		f.setAttribute( 'target', frameName );
		f.target = frameName;
		if (c && typeof(c.onStart) == 'function') {
			return c.onStart();
		} else {
			return true;
		}
	},

	loaded : function(id) {
		var i = document.getElementById(id);
		if (i.contentDocument) {
			var d = i.contentDocument;
		} else if (i.contentWindow) {
			var d = i.contentWindow.document;
		} else {
			var d = window.frames[id].document;
		}
		if (d.location.href == "about:blank") {
			return;
		}

		if (typeof(i.onComplete) == 'function') {
			var image = "";
			var error = "";
			var elt = d.getElementById( "image" );
			if ( elt )
				image = elt.innerHTML;
			var elt = d.getElementById( "error" );
			if ( elt )
				error = elt.innerHTML;
			i.onComplete( image, error );
		}
	}

}

PXN8.dom.addLoadEvent( onPageLoaded );