/* ajax form */
function postform(){
	var params = Form.serialize($('cform'));
	//fix line breaks bug
	params = params.gsub("%0A", "%0D%0A");
	var post_addr = document.forms.cform.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())
	{
		if(document.forms.cform.have_photo != null) {
			if( document.forms.cform.have_photo.checked ) {
				if( fileSelected > 0 )
				{
					swfu.startUpload();
				}
				else
				{
					if( document.forms.cform.uploaded_file_name.value ) {
						 postform();
					}
					else {
						alert("Please upload your photo!");
					}
				}
			}
			else {
				document.forms.cform.submit();
			}
		}
		else {
			document.forms.cform.submit();
		}
	}
}
	
function	ValidationForm() {
	return true;
	sErrors = "";
	if( IsDefine(document.forms.cform.name) ) {
		if( IsEmpty(document.forms.cform.name.value) ) {
			sErrors = sErrors + "- please enter your name.\r\n";
		}
	}
	if( IsDefine(document.forms.cform.email) ) {
		if( IsEmpty(document.forms.cform.email.value) ) {
			sErrors = sErrors + "- please enter your email.\r\n";
		}
		else {
			if( ! IsEmail(document.forms.cform.email.value) ) {
				sErrors = "- " + document.forms.cform.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( IsEmpty(sErrors) ) {
		return true;
	}
	else {
		alert(sErrors);		
		return false;		
	}
	
}

function toggle_file_upload(obj) {
	var file_upload = document.getElementById("item_file_upload");
	if(file_upload) {
		if(obj.checked) {
			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(obj.checked) {				
				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: 160,
		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: 5,

		// 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 for enable textarea max length limit */
function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'counter';
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			var max_len = x[i].getAttribute('maxlength');
			var x_val_length = 0;
			if( x[i].value != null ) {
					x_val_length = x[i].value.length;
			}
			var left_len = max_len - x_val_length;
			counterClone.innerHTML = '<span>0 / '+ left_len + " left</span>";
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			x[i].onkeyup = x[i].onchange = checkMaxLength;
			x[i].onkeyup();
		}
	}
}

function checkMaxLength() 
{
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength)
	{
		AddCssClass(this,"highlight");
		this.relatedElement.firstChild.nodeValue = currentLength + " ( too much, maximum is " + maxLength + " ) ";		
	}
	else
	{
		RemoveCssClass(this,"highlight");
		this.relatedElement.className = '';
		this.relatedElement.firstChild.nodeValue = currentLength + ' / ' + ( maxLength - currentLength ) + " left";		
	}
	// not innerHTML
}

/* --- */