﻿//////////////////////////////////////////////////////////
// Make sure file names do not contain illegal characters.
//
// You may choose to skip this check and let the 
// uploader simply 'normalize' the file name. 
//////////////////////////////////////////////////////////
function checkFileNameFormat(){
	if(check_file_name_format == false){ return false; }
	
	for(var i = 0; i < upload_range; i++){
  		if(document.form_upload.elements['upfile_' + i].value != ""){
  			var string = document.form_upload.elements['upfile_' + i].value;
			var num_of_last_slash = string.lastIndexOf("\\");

			if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

			var file_name = string.slice(num_of_last_slash + 1, string.length);
			var re = /^[\w][\w\.\-]{1,32}$/i;   
				
			if(!re.test(file_name)){	
  				alert("Sorry, uploading files in this format is not allowed. Please ensure your file names follow this format. \n\n1. Entire file cannot exceed 32 characters\n2. Format should be filename.extention or filename\n3. Legal characters are 1-9, a-z, A-Z, '_', '-'\n");
  				return true;
  			}
  		}
  	}
	return false;
}
  
//////////////////////////////////////////////////////////////////////
// Disallow uploading files by extention (DO NOT REMOVE .sh OR .php)
//
// If you want prevent users from uploading a file based on extention
// simply modify the regular exression eg.
// var re = /(\.php)|(\.sh)|(\.gif)|(\.jpg)$/i; 
// would prevent anyone from uploading .php, .sh, .gif, .jpg files.
//////////////////////////////////////////////////////////////////////
function checkFileExtentions(){
	if(check_file_extensions == false){ return false; }
  	
  	var re = /(\.sh)|(\.php)|(\.php3)|(\.php4)|(\.php5)|(\.py)|(\.shtml)|(\.phtml)|(\.cgi)|(\.pl)|(\.htaccess)|(\.htpasswd)$/i;
  	
  	for(var i = 0; i < upload_range; i++){
  		if(document.form_upload.elements['upfile_' + i].value != ""){
  			if(document.form_upload.elements['upfile_' + i].value.match(re)){
  				var string = document.form_upload.elements['upfile_' + i].value;
				var num_of_last_slash = string.lastIndexOf("\\");

				if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

				var file_name = string.slice(num_of_last_slash + 1, string.length);
				var file_extention = file_name.slice(file_name.indexOf(".")).toLowerCase(); 
  				
  				alert('Sorry, uploading a file with the extention "' + file_extention + '" is not allowed.');
  				return true;
  			}
  		}
  	}
	return false;
}
  
///////////////////////////////////////////////////////
// Make sure user selected at least one file to upload
///////////////////////////////////////////////////////
function checkNullFileCount(){
  	if(check_null_file_count == false){ return false; }
  	
  	var null_file_count = 0;
  	
  	for(var i = 0; i < upload_range; i++){
  		if(document.form_upload.elements['upfile_' + i].value == ""){ null_file_count++; }
  	}
  	
  	if(null_file_count == upload_range){
		alert("Please Choose A File To Upload.");
		return true;
  	}
  	else{ return false; }
}
  
////////////////////////////////////////////////////////
// Make sure user did not select duplicate file uploads
////////////////////////////////////////////////////////
function checkDuplicateFileCount(){
	if(check_duplicate_file_count == false){ return false; }
  	
	var duplicate_flag = false;
	var file_count = 0;
	var duplicate_msg = "Duplicate Upload Files Detected.\n\n";
	var file_name_array = new Array();
        
	for(var i = 0; i < upload_range; i++){
		if(document.form_upload.elements['upfile_' + i].value != ""){
  			var string = document.form_upload.elements['upfile_' + i].value;
			var num_of_last_slash = string.lastIndexOf("\\");

			if(num_of_last_slash < 1){ num_of_last_slash = string.lastIndexOf("/"); }

			var file_name = string.slice(num_of_last_slash + 1, string.length);
			            
			file_name_array[i] = file_name;
  		}
  	}
       
	for(var i = 0; i < file_name_array.length; i++){
		for(var j = 0; j < file_name_array.length; j++){
			if(file_name_array[i] == file_name_array[j] && file_name_array[i] != null){ file_count++; }
		}
		if(file_count > 1){
			duplicate_msg += 'Duplicate file "' + file_name_array[i] + '" detected in slot ' + (i + 1) + ".\n";
			duplicate_flag = true;
		}
		file_count = 0;
	}
       
	if(duplicate_flag){ 
		alert(duplicate_msg);
		return true; 
	}
	else{ return false; }
}

//////////////////////
// Count file uploads
//////////////////////
function countUploads(){
	var total_uploads = 0;
	
	for(var i = 0; i < upload_range; i++){
		if(document.form_upload.elements['upfile_' + i].value != ""){ total_uploads++; }
	}
	
	return total_uploads;

}
  
//////////////////////////////////////////////////////
// Check files, submit upload and pop up progress bar
//////////////////////////////////////////////////////
function uploadFiles(){
	if(!checkregister()){ return false; }
	if(!validate_email()){ return false; }
	//if(!document.progress_bar.terms.checked){ alert('You need to accept 123Lala terms of service!'); return false; }
	
	if(checkFileExtentions()){ return false; }
	//if(checkNullFileCount()){ return false; }
	if(checkDuplicateFileCount()){ return false; }
	if(checkFileNameFormat()){ return false; }
	
	// If opera browser force pop-up mode
	if(window.opera){ imbedded_progress_bar = false; }

	if(imbedded_progress_bar){ document.form_upload.imbedded_progress_bar.value = 1; }
	else{ document.form_upload.imbedded_progress_bar.value = 0; }
	
	//var total_uploads = countUploads();
	
	//document.form_upload.private.value=document.progress_bar.private.checked;
	//document.form_upload.email.value=document.progress_bar.email.value;

	document.form_upload.upload_range.value = upload_range;
	document.form_upload.submit();
	document.form_upload.submit.disabled = true;
	
	for(var i = 0; i < upload_range; i++){ document.form_upload.elements['upfile_' + i].disabled = true; }
	
	if(imbedded_progress_bar){
		//var progress_link = progress_server + "&total_uploads=" + total_uploads + "&imbedded_progress_bar=1";
		//var progress_link = "http://pte02.123lala.com/upload/progress.php?UPLOAD_IDENTIFIER=" + UPLOAD_IDENTIFIER;
		//document.getElementById('progress_div').innerHTML = "<iframe name='progress_iframe' src='" + progress_link + "'frameborder='0' scrolling='no' width='700' height='220'></iframe>";
		
		blocking("browse");
		document.getElementById('browse').innerHTML = "<div><input type='button' name='clear_files' value='Reset' onclick='resetForm();' /></div>";
		
		//We've opened the progress bar in an iframe so we return false to prevent the progress form from posting
		return false;
	}
	else{	
		var upWin = window.open('','pop_win_'+session_id,'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=420,height=300,left=360,top=250');
		
		if(window.focus){ upWin.focus(); }
		
		blocking("browse");
		return true;
	}
}

// Hide/show any div using block
function blocking(nr){
	if (document.layers){
		document.layers[nr].display 				= (document.layers[nr].display == 'none') ? 'block' : 'none';
	}
	else if (document.all){
		document.all[nr].style.display 				= (document.all[nr].style.display == 'none') ? 'block' : 'none';
	}
	else if (document.getElementById){
		document.getElementById(nr).style.display 	= (document.getElementById(nr).style.display == 'none') ? 'block' : 'none';
	}
}
 
//////////////////////////////
// Reset the form_upload form
//////////////////////////////
/*
function resetForm(){
	for(var i = 0; i < upload_range; i++){ 
		document.form_upload.elements['upfile_' + i].disabled = false;
		document.form_upload.elements['upfile_' + i].value = ""; 
	}
	
	document.progress_bar.upload_button.disabled = false;
	document.getElementById('progress_div').innerHTML = "";
	document.form_upload.reset();
}

*/
////////////////////////////
// Add another upload slot
////////////////////////////
function addUploadSlot(){
	var num = upload_range;
	
	if(upload_range < max_upload_slots){
		if(num == upload_range){
			var up = document.getElementById('upload_slots');
			var dv = document.createElement("div");
			dv.innerHTML = '<div class="fileholder"><input class="file" type="file" name="upfile_' + upload_range + '" size="39" /></div>';
			up.appendChild(dv);
			upload_range++;
			document.form_upload.upload_range.value = upload_range;
		}
	}
	else { alert('You can only upload ' + max_upload_slots + ' files simultaneously'); }
}

/*
 *	Validate email or emails
 */
function validate_email(email){

	email=document.form_upload.email.value
	//email = 'fuckyou'
	if(email == '' && email == ' Recipient email address(es) ') {
		return true
	}
	else {
		var emails = email.split(',')
		for(i = 0; i < emails.length; i++) {
			var x = emails[i];
			var filter = /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
			if (filter.test(x) == false) {
				alert('Incorrect email address: ' + x);
				return false
			}
		}
	}
	return true
}

function checkregister()
	{
 	strphone = document.form_upload.phone.value;
	strprice = document.form_upload.price.value;
	strdt = document.form_upload.dientich.value;
	strn_room = document.form_upload.n_room.value;
	strn_roomn = document.form_upload.n_roomn.value;
	strn_roomt = document.form_upload.n_roomt.value;
	if (document.form_upload.title.value=='')
		{
		alert('Bạn chưa nhập tiêu đề !');
		document.form_upload.title.focus();
		return false;
		}
	if (document.form_upload.danhmuc.value=='')
		{
		alert('Ban chưa chọn mục đăng tin !');
		document.form_upload.danhmuc.focus();
		return false;
		}
	if (isNaN(strprice))
	 	{
 	   	alert("Giá bạn nhập không phải là số !");
		document.form_upload.price.focus();
		return false;
 	 	}
	if (isNaN(strdt))
	 	{
 	   	alert("Diện tích mà bạn nhập không chính xác !");
		document.form_upload.dientich.focus();
		return false;
 	 	}
	if (isNaN(strn_room))
	 	{
 	   	alert("Số phòng mà bạn nhập không chính xác !");
		document.form_upload.n_room.focus();
		return false;
 	 	}
	if (isNaN(strn_roomn))
	 	{
 	   	alert("Số phòng ngủ mà bạn nhập không chính xác !");
		document.form_upload.n_roomn.focus();
		return false;
 	 	}
	if (isNaN(strn_roomt))
	 	{
 	   	alert("Số phòng tắm mà bạn nhập không chính xác !");
		document.form_upload.n_roomt.focus();
		return false;
 	 	}
	if (document.form_upload.address.value=='')
		{
		alert('Bạn chưa nhập địa chỉ !');
		document.form_upload.address.focus();
		return false;
		}
	if (document.form_upload.author.value=='')
		{
		alert('Bạn chưa nhập địa chỉ !');
		document.form_upload.author.focus();
		return false;
		}
	if (strphone=='')
		{
		alert('Bạn chưa nhập số điện thoại !');
		document.form_upload.phone.focus();
		return false;
		}
	if (isNaN(strphone))
	 	{
 	   	alert("Số điện thoại mà bạn nhập không chính xác !");
		document.form_upload.phone.focus();
		return false;
 	 	}
	if (document.form_upload.email.value=='')
		{
		alert('Bạn chưa nhập địa chỉ Email !');
		document.form_upload.email.focus();
		return false;
		}
	if (document.form_upload.content.value=='')
		{
		alert('Bạn chưa nhập nội dung !');
		document.form_upload.content.focus();
		return false;
		}
	if (document.form_upload.security_code.value=='')
		{
		alert('Bạn chưa nhập mã bảo vệ !');
		document.form_upload.security_code.focus();
		return false;
		}	
	return true;
	}

