/* ajax form */
function postform(){
	var params = Form.serialize($('lmc_form'));
	//fix line breaks bug
	params = params.gsub("%0A", "%0D%0A");
	var post_addr = document.forms.lmc_form.action;
	new Ajax.Updater('updateDiv', post_addr, {asynchronous:true, parameters:params});
	var lightwindow_contents = document.getElementById('lightwindow_contents');
	lightwindow_contents.scrollTop = 0;
}

function doFormPost()
{
	if(ValidationForm())
	{
		switch(basename(document.forms.lmc_form.action)) {
			case "ask_a_question_post.asp":
				if(document.forms.lmc_form.have_photo != null) {
					if( document.forms.lmc_form.have_photo.checked ) {
						if( fileSelected > 0 )
						{
							swfu.startUpload();
						}
						else
						{
							if( document.forms.lmc_form.uploaded_file_name.value ) {
								 postform();
							}
							else {
								alert("Please upload your photo!");
							}
						}
					}
					else {
						postform();
					}
				}
				else {
					postform();
				}
				break;
			case "share_story_post.asp":
				var rdo_upload_photo = document.forms.lmc_form.have_photo[1];
				if(rdo_upload_photo != null) {
					if( rdo_upload_photo.checked ) {
						if( fileSelected > 0 )
						{
							swfu.startUpload();
						}
						else
						{
							if( document.forms.lmc_form.uploaded_file_name.value ) {
								 postform();
							}
							else {
								alert("Please upload your photo!");
							}
						}
					}
					else {
						postform();
					}
				}
				else {
					postform();
				}
				break;
			default:
				postform();
				break;
		}
	}
}
	
function	ValidationForm() {
	sErrors = "";
	if( IsDefine(document.forms.lmc_form.name) ) {
		if( IsEmpty(document.forms.lmc_form.name.value) ) {
			sErrors = sErrors + "- please enter your name.\r\n";
		}
	}
	
	if( IsDefine(document.forms.lmc_form.email) ) {
		if( IsEmpty(document.forms.lmc_form.email.value) ) {
			sErrors = sErrors + "- please enter your email.\r\n";
		}
		else {
			if( ! IsEmail(document.forms.lmc_form.email.value) ) {
				sErrors = "- " + document.forms.lmc_form.email.value + " is not a valid email account\r\n  please enter a correct e-mail using the format: user@myserver.com" + "\r\n";
			}
		}
	}
	if( IsDefine(document.forms.lmc_form.age) ) {
		if(IsEmpty(document.forms.lmc_form.age.value)) {
			sErrors = sErrors + "- please choose your age from the list.\r\n";
		}
	}
	if( IsDefine(document.forms.lmc_form.friend_name) ) {
		if( IsEmpty(document.forms.lmc_form.friend_name.value) ) {
			sErrors = sErrors + "- please enter your friend's name.\r\n";
		}
	}
	if( IsDefine(document.forms.lmc_form.friend_email) ) {
		if( IsEmpty(document.forms.lmc_form.friend_email.value) ) {
			sErrors = sErrors + "- please enter your friend's email.\r\n";
		}
		else {
			if( ! IsEmail(document.forms.lmc_form.friend_email.value) ) {
				sErrors = "- " + document.forms.lmc_form.friend_email.value + " is not a valid email account\r\n  please enter a correct e-mail using the format: user@myserver.com" + "\r\n";
			}
		}
	}
	if( IsDefine(document.forms.lmc_form.subject) ) {
		if( IsEmpty(document.forms.lmc_form.subject.value) ) {
			sErrors = sErrors + "- please choose a subject.\r\n";
		}
	}
	if( IsDefine(document.forms.lmc_form.message) ) {
		if( IsEmpty(document.forms.lmc_form.message.value) ) {
			sErrors = sErrors + "- please enter your message.\r\n";
		}
	}
	
	if( IsEmpty(sErrors) ) {
		return true;
	}
	else {
		alert(sErrors);		
		return false;		
	}
}

function showAvator() {
	var file_upload = document.getElementById("img_upload_photo");
	var choose_avatar = document.getElementById("img_avatar");
	if(file_upload) {
		AddCssClass(file_upload, "hidden");
	}
	if(choose_avatar)	 {
		RemoveCssClass(choose_avatar, "hidden");
	}
}

function showUpload() {
	var image_upload_container = document.getElementById("img_upload_photo");
	var choose_avatar_container = document.getElementById("img_avatar");
	if(image_upload_container) {
		RemoveCssClass(image_upload_container, "hidden");
		toggle_file_upload(true);
	}
	if(choose_avatar_container)	 {
		AddCssClass(choose_avatar_container, "hidden");
		toggle_file_upload(false);		
	}
}

function toggle_file_upload(visible_status) {
	var file_upload = document.getElementById("item_file_upload");
	if(file_upload) {
		if(visible_status) {
			RemoveCssClass(file_upload, "hidden");
			if(	!file_upload.getAttribute("movieName")) {
				swfu = init_swfu(
					"/forms/tools.net/wscc_upload.aspx", 
					SessionID, 
					"spanButtonPlaceholder", 
					"divFileProgressContainer"
				);
				file_upload.setAttribute("movieName", swfu.movieName);
			}
		}
		else {
			//AddCssClass(file_upload, "hidden");
		}
	}
	else {
		var item_uploaded_file_name = document.getElementById("item_uploaded_file_name");
		if(item_uploaded_file_name) {
			if(visible_status) {				
				RemoveCssClass( item_uploaded_file_name, "hidden" );				
			}
			else {
				//AddCssClass( item_uploaded_file_name, "hidden" );
			}
		}
	}
}

function AddCssClass(obj,classAdd)
{
	if(obj == null || classAdd == null)
	{
		return; 
	}
	if(obj.className == null || obj.className == "")
	{
		obj.className = classAdd;
		return;
	}
	var classes = obj.className.split(" ");
	var isAddClassExist = false;
	for ( var classList = 0 ; classList < classes.length ; classList++)
	{
		if(classes[classList] == classAdd)
		{
			isAddClassExist = true;
		}
	}
	
	if(!isAddClassExist) 	
	{
		obj.className = obj.className + " " + classAdd;
	}
}

function RemoveCssClass(obj,classRemove)
{
	if(obj == null || classRemove == null)
	{
		return; 
	}
	if(obj.className == null || obj.className == "")
	{
		return;
	}
	var classes = obj.className.split(" ");
	var newClass = "";
	for ( var classList = 0 ; classList < classes.length ; classList++)
	{
		if(classes[classList] == classRemove)
		{
		}
		else
		{
			if(newClass == "")
			{
				newClass = classes[classList];			
			}
			else
			{
				newClass = newClass + " " + classes[classList];
			}
		}
	}
	obj.className = newClass;
}

function IsEmpty( val ) {

	if( val == null ) {
			return true;
	}
	
	if( val.replace(" ", "") == "" ) {
			return true;
	}
	return false;
	
}

function IsDefine( val ) {
	
	if( val ) {
		return true;
	}
	else {
		return false;
	}
	
}

/* --- */

/* swfupload script */
function init_swfu(upload_url, session_id, upload_button_holder, upload_target ) {
	var new_swfu = new SWFUpload({
		// Backend Settings
		upload_url: upload_url,	// Relative to the SWF file
		post_params : {
			"ASPSESSID" : session_id
		},

		// File Upload Settings
		file_size_limit : "2 MB",
		file_types : "*.jpg",
		file_types_description : "JPG Images",
		file_upload_limit : "0",    // Zero means unlimited

		// Event Handler Settings - these functions as defined in Handlers.js
		//  The handlers are not part of SWFUpload but are part of my website and control how
		//  my website reacts to the SWFUpload events.
		file_queue_error_handler : fileQueueError,
		file_dialog_complete_handler : fileDialogComplete,
		upload_progress_handler : uploadProgress,
		upload_error_handler : uploadError,
		upload_success_handler : uploadSuccess,
		upload_complete_handler : uploadComplete,

		// Button settings
		button_image_url : "../images/XPButtonNoText_160x22.png",	// Relative to the SWF file
		button_placeholder_id : upload_button_holder,
		button_width: 332,
		button_height: 22,
		button_text : '<span class="button">Select Images <span class="buttonSmall">(2 MB Max)</span></span>',
		button_text_style : '.button { font-family: Helvetica, Arial, sans-serif; font-size: 14pt; } .buttonSmall { font-size: 10pt; }',
		button_text_top_padding: 1,
		button_text_left_padding: 1,

		// Flash Settings
		flash_url : "/forms/swf/Core/swfupload.swf",	// Relative to this file

		custom_settings : {
			upload_target : upload_target
		},

		// Debug Settings
		debug: false
	});
	fileSelected = 0;
	lastFileSelected = null;
	return new_swfu;
}

function IsEmail( val ) {
		var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
		var check=/@[\w\-]+\./;
		var checkend=/\.[a-zA-Z]{2,3}$/;
		if(((val.search(exclude) != -1)||(val.search(check)) == -1)||(val.search(checkend) == -1)) {
			return false;
		}
		else {
			return true;
		}
}

function basename(path, suffix) {
	var b = path.replace(/^.*[\/\\]/g, '');
	if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix) {
		b = b.substr(0, b.length-suffix.length);
	}
	return b;
}

/* --- */