// JavaScript Document

function validate_date(v) {
	var r = false;
	if (/^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(v)) {
		var a = v.split('/'),
			d = parseInt(a[0], 10),
			m = parseInt(a[1], 10),
			y = parseInt(a[2], 10);
		var b = new Date(y, (m - 1),d);
		if (((b.getMonth() + 1) !== m)
			|| (b.getDate() !== d)
			|| (b.getFullYear() !== y)
		) {
			r = false;
		} else {
			r = true;
		}
	}
	return r;
};

//valideate and format an email addresas
//return an array containing two values NAME, EMAIL
function validate_email_address(email){
	var result=new Array();
	var pattern1 = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		
	pattern = /</;
	var name_email,item_name="",item_email="";
	name_email=email.split(pattern);
	if(name_email.length==1){
		item_email=$.trim(name_email[0]);
	}
	else if(name_email.length==2){
		item_email=$.trim(name_email[1].substr(0, name_email[1].indexOf(">")));
		item_name=$.trim(name_email[0]);			
	}
	else
		return false;
					
	if(pattern1.test(item_email)){
		result[0]=item_name;result[1]=item_email;
		return result;
	}
	else return false;
}

function file_size_to_word(file_size) 
{      
	var range = 0;
	var size = new Array();
	size[0] = "bytes";
	size[1] = "KB";
	size[2] = "MB";
	size[3] = "GB";
	size[4] = "TB";
	
	while(file_size>=512 && range<4)
	{
		file_size = file_size / 1024;
		range++;
	}
	file_size = roundNumber(file_size, 3);  
	return file_size+" "+size[range];  
}

function format_file_size(filesize){
	var filesize_unit = "byte";
	if(filesize<=0 || filesize==null){
		filesize=0;
	}
	else{
		if(filesize>0 && filesize<1024) filesize_unit="bytes";
		else 
		{
			filesize_unit="KB";
			filesize=roundNumber(filesize/1024,2);
			if(filesize>0 && filesize<1024) filesize_unit="KB";
			else 
			{
				filesize_unit="MB";
				filesize=roundNumber(filesize/1024,2);
			}
		}
	}
	return filesize+" "+filesize_unit;	
}

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function strip_tags (str, allowed_tags) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Luke Godfrey
    // +      input by: Pul
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +      input by: Alex
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Marc Palau
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Eric Nagel
    // +      input by: Bobby Drake
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Tomasz Wesolowski
    // *     example 1: strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i><b>');
    // *     returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'
    // *     example 2: strip_tags('<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>', '<p>');
    // *     returns 2: '<p>Kevin van Zonneveld</p>'
    // *     example 3: strip_tags("<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>", "<a>");
    // *     returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>'
    // *     example 4: strip_tags('1 < 5 5 > 1');
    // *     returns 4: '1 < 5 5 > 1'
 
    var key = '', allowed = false;
    var matches = [];
    var allowed_array = [];
    var allowed_tag = '';
    var i = 0;
    var k = '';
    var html = '';
 
    var replacer = function (search, replace, str) {
        return str.split(search).join(replace);
    };
 
    // Build allowes tags associative array
    if (allowed_tags) {
        allowed_array = allowed_tags.match(/([a-zA-Z0-9]+)/gi);
    }
 
    str += '';
 
    // Match tags
    matches = str.match(/(<\/?[\S][^>]*>)/gi);
 
    // Go through all HTML tags
    for (key in matches) {
        if (isNaN(key)) {
            // IE7 Hack
            continue;
        }
 
        // Save HTML tag
        html = matches[key].toString();
 
        // Is tag not in allowed list? Remove from str!
        allowed = false;
 
        // Go through all allowed tags
        for (k in allowed_array) {
            // Init
            allowed_tag = allowed_array[k];
            i = -1;
 
            if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}
            if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}
            if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag)   ;}
 
            // Determine
            if (i == 0) {
                allowed = true;
                break;
            }
        }
 
        if (!allowed) {
            str = replacer(html, "", str); // Custom replace. No regexing
        }
    }
 
    return str;
}
