function base64_encode (data)
		{
    // http://kevin.vanzonneveld.net
    // +   original by: Tyler Akins (http://rumkin.com)
    // +   improved by: Bayron Guevara
    // +   improved by: Thunder.m
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Pellentesque Malesuada
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: utf8_encode
    // *     example 1: base64_encode('Kevin van Zonneveld');
    // *     returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
 
    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof this.window['atob'] == 'function') {
    //    return atob(data);
    //}
        
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc="", tmp_arr = [];
 
    if (!data)
	{
        return data;
    }
 
    data = this.utf8_encode(data+'');
    
    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);
 
        bits = o1<<16 | o2<<8 | o3;
 
        h1 = bits>>18 & 0x3f;
        h2 = bits>>12 & 0x3f;
        h3 = bits>>6 & 0x3f;
        h4 = bits & 0x3f;
 
        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);
    
    enc = tmp_arr.join('');
    
    switch (data.length % 3) {
        case 1:
            enc = enc.slice(0, -2) + '==';
        break;
        case 2:
            enc = enc.slice(0, -1) + '=';
        break;
    }
 
    return enc;
}

function utf8_encode ( argString ) {
    // Encodes an ISO-8859-1 string to UTF-8  
    // 
    // version: 908.406
    // discuss at: http://phpjs.org/functions/utf8_encode
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +   improved by: Yves Sucaet
    // +   bugfixed by: Onno Marsman
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
    var string = (argString+'').replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    var utftext = "";
    var start, end;
    var stringl = 0;

    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;

        if (c1 < 128) {
            end++;
        } else if (c1 > 127 && c1 < 2048) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }

    if (end > start) {
        utftext += string.substring(start, string.length);
    }

    return utftext;
}

String.prototype.trim = function () 
{
    return this.replace(/^\s*/, "").replace(/\s*$/, "").replace(".","");
}

function check_ext(filename)
{
	var dot = filename.lastIndexOf("."); 
	if(dot!=-1)
	{
		var extension = filename.substr(dot+1,filename.length); 
		return extension.toLowerCase();
	}
	else
	{
		return "";
	}
}

function get_extension(path)
{
		return(path.substring(path.length-3).toLowerCase());
}

function validate_advsearch_form()
{
	valid=true;
	if (( document.search_form.all_words.value.trim() == "" ) && ( document.search_form.exact_query.value.trim() == "" ) && ( document.search_form.or_queries.value.trim() == "" ) && ( document.search_form.negative_queries.value.trim() == "" ))
    {
		document.getElementById('advsearch_hidden').style.display="block";
        valid = false;
    }
	return valid;
}

function validate_search_form()
{
	valid=true;
	if ((document.search_form.keyword.value.trim() == ""))
    {
        valid = false;
    }
	return valid;
}

/* Signup Form */
function check_special_chars(username)
{
	var iChars = " `~!@#$%^&*()+=-[]\';,/{}|\":<>?";
  	for (var i=0;i<username.length;i++)
	{
  		if (iChars.indexOf(username.charAt(i))!=-1) 
  		{
  			return true;
  		}
	}
}

function validate_signup_form()
{
	valid=true;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	document.getElementById('login_username_span').innerHTML="";
	document.getElementById('login_username_span').innerHTML="";
	document.getElementById('login_password_span').innerHTML="";
	document.getElementById('login_cpassword_span').innerHTML="";
	document.getElementById('login_fullname_span').innerHTML="";
	document.getElementById('login_email_span').innerHTML="";
/*	document.getElementById('login_phone_span').innerHTML="";
	document.getElementById('login_city_span').innerHTML="";
	document.getElementById('login_country_span').innerHTML="";
	document.getElementById('login_address_span').innerHTML="";*/
	document.getElementById('login_captcha_span').innerHTML="";

	str = document.member_form.username.value.trim();
	upperCount=str.replace(/[^A-Z]/g, "").length;
	
	if (document.member_form.username.value.trim() == "")
    {
		document.getElementById('login_username_span').innerHTML="Enter Username";
		document.member_form.username.focus();
        valid = false;
    }
	else if (document.member_form.username.value.trim().length<5)
    {
		document.getElementById('login_username_span').innerHTML="Username must contain atleast 5 letters";
		document.member_form.username.focus();
        valid = false;
    }
	else if (document.member_form.username.value.trim().indexOf(" ")>0)
    {
		document.getElementById('login_username_span').innerHTML="Enter Username without space";
		document.member_form.username.focus();
        valid = false;
    }
	else if (check_special_chars(document.member_form.username.value.trim())==true)
    {
		document.getElementById('login_username_span').innerHTML="Enter Username without special characters";
		document.member_form.username.focus();
        valid = false;
    }
	else if (!isNaN(document.member_form.username.value.trim()))
    {
		document.getElementById('login_username_span').innerHTML="Please enter valid name non numeric";
		document.member_form.username.focus();
        valid = false;
    }
	else if (upperCount>0)
    {
		document.getElementById('login_username_span').innerHTML="User name must not contain capital letters";
		document.member_form.username.focus();
        valid = false;
    }
	else if (document.member_form.password.value.trim()=="")
    {
		document.getElementById('login_password_span').innerHTML="Please enter a password for your account";
		document.member_form.password.focus();
        valid = false;
    }
	else if (document.member_form.password.value.trim().length<5)
    {
		document.getElementById('login_password_span').innerHTML="Password must contain atleast 5 letters";
		document.member_form.password.focus();
        valid = false;
    }
	else if (document.member_form.cpassword.value.trim()=="")
    {
		document.getElementById('login_cpassword_span').innerHTML="Please re-enter your password";
		document.member_form.cpassword.focus();
        valid = false;
    }
	else if (document.member_form.cpassword.value.trim()!=document.member_form.password.value.trim())
    {
		document.getElementById('login_cpassword_span').innerHTML="Passwords do not match";
		document.member_form.cpassword.focus();
        valid = false;
    }
	/*
	else if (document.member_form.fullname.value.trim()=="")
    {
		document.getElementById('login_fullname_span').innerHTML="Please enter your full name";
		document.member_form.fullname.focus();
        valid = false;
    }
	else if (document.member_form.fullname.value.trim().length<5)
    {
		document.getElementById('login_fullname_span').innerHTML="Please enter your full name (atleast 5 letters)";
		document.member_form.fullname.focus();
        valid = false;
    }*/
	else if (document.member_form.email.value.trim()=="")
    {
		document.getElementById('login_email_span').innerHTML="Please enter your valid email address";
		document.member_form.email.focus();
        valid = false;
    }
	else if (!filter.test(document.member_form.email.value))
    {
		document.getElementById('login_email_span').innerHTML="Please enter your valid email address";
		document.member_form.email.focus();
        valid = false;
    }
	/*
	else if (document.member_form.phone.value.trim()=="")
    {
		document.getElementById('login_phone_span').innerHTML="Please enter your phone number";
		document.member_form.phone.focus();
        valid = false;
    }
	else if (isNaN(document.member_form.phone.value.trim()))
    {
		document.getElementById('login_phone_span').innerHTML="Please enter a valid phone number";
		document.member_form.phone.focus();
        valid = false;
    }
	else if (document.member_form.city.value.trim()=="")
    {
		document.getElementById('login_city_span').innerHTML="Please enter your city name";
		document.member_form.city.focus();
        valid = false;
    }	
	else if (document.member_form.country.value.trim()=="0")
    {
		document.getElementById('login_country_span').innerHTML="Please select your country name";
        valid = false;
    }
	else if (document.member_form.address.value.trim()=="")
    {
		document.getElementById('login_address_span').innerHTML="Please enter your address";
		document.member_form.address.focus();
        valid = false;
    }*/
	else if (document.member_form.captcha.value.trim()=="")
    {
		document.getElementById('login_captcha_span').innerHTML="Please enter verification word";
		document.member_form.captcha.focus();
        valid = false;
    }
	return valid;
}
/*******Signup ends**********/

/* Login */
function validate_login_form()
{
	valid=true;
	document.getElementById('login_username_span').innerHTML="";
	document.getElementById('login_password_span').innerHTML="";
	if ((document.login_form.login_username.value.trim() == ""))
    {
		document.getElementById('login_username_span').innerHTML="Enter valid username";
		document.login_form.login_username.focus();
        valid = false;
    }
	else if ((document.login_form.login_password.value.trim() == ""))
	{
		document.getElementById('login_password_span').innerHTML="Enter valid password";
		document.login_form.login_password.focus();
        valid = false;
    }
	return valid;
}
/** Login Ends **/

/** Video Upload Form **/
function validate_video_details_form()
{
	valid = true;
	document.getElementById('divtitle').style.display="none";
	document.getElementById('divfile').style.display="none";
	document.getElementById('divdesc').style.display="none";
	document.getElementById('divtag').style.display="none";
    if ( document.member_form.video_title.value.trim() == "" )
    {
		document.getElementById('divtitle').style.display="block";
        valid = false;
    }
    else if ( document.member_form.fname.value.trim() == "" )
    {
        document.getElementById('divfile').style.display="block";
        valid = false;
    }
	else if ((check_ext(document.member_form.fname.value) != "flv") && (check_ext(document.member_form.fname.value) != "mp4") && (check_ext(document.member_form.fname.value) != "avi") && (check_ext(document.member_form.fname.value) != "mpg") && (check_ext(document.member_form.fname.value) != "mpeg") && (check_ext(document.member_form.fname.value) != "wmv") )
    {
		//alert(check_ext(document.member_form.fname.value));
		document.getElementById('divfile').style.display="block";
        valid = false;
    }
	else if ( document.member_form.video_desc.value.trim() == "" )
    {
		document.getElementById('divdesc').style.display="block";
        valid = false;
    }
	else if( document.member_form.video_desc.value.trim().length < 20 )
	{
		   document.getElementById('divdesc').innerHTML="Description must be atleast 20 characters";
		   document.getElementById('divdesc').style.display="block";
		   valid = false;
	}
	else if(document.member_form.video_desc.value.trim().length > 200)
	{
		   document.getElementById('divdesc').innerHTML="Maximum description allowed is 200 characters";
		   document.getElementById('divdesc').style.display="block";
	       valid = false;
	}
	else if (document.member_form.video_tags.value.trim()=="" )
    {
		document.getElementById('divtag').style.display="block";
        valid = false;
    }
	/*
	else if (document.member_form.video_tags.value.trim().indexOf(" ") <0 )
    {
		document.getElementById('divtag').innerHTML="Please enter atleast two tags";
		document.getElementById('divtag').style.display="block";
        valid = false;
    }*/
    return valid;
}
/** Video Upload Form ends **/

/** Video Edit Form **/
function validate_video_edit_form()
{
	valid = true;
	document.getElementById('divtitle').style.display="none";
	document.getElementById('divdesc').style.display="none";
	document.getElementById('divtag').style.display="none";
	document.getElementById('divimage').style.display="none";
    if ( document.member_form.video_title.value.trim() == "" )
    {
		document.getElementById('divtitle').style.display="block";
		document.getElementById('divtitle').innerHTML="Please enter a title for your video";
        valid = false;
    }
	else if ( document.member_form.video_desc.value.trim() == "" )
    {
		document.getElementById('divdesc').style.display="block";
		document.getElementById('divdesc').innerHTML="Please enter video description";
        valid = false;
    }
	else if( document.member_form.video_desc.value.trim().length < 20 )
	{
		   document.getElementById('divdesc').innerHTML="minimum 20 characters";
		   document.getElementById('divdesc').style.display="block";
		   valid = false;
	}
	else if(document.member_form.video_desc.value.trim().length > 200)
	{
		   document.getElementById('divdesc').innerHTML="maximum 200 characters";
		   document.getElementById('divdesc').style.display="block";
	       valid = false;
	}
	else if (document.member_form.video_tags.value.trim()=="" )
    {
		document.getElementById('divtag').innerHTML="Please enter atleast two tags";
		document.getElementById('divtag').style.display="block";
        valid = false;
    }
	else if (document.member_form.video_tags.value.trim().indexOf(" ") <0 )
    {
		document.getElementById('divtag').innerHTML="minimum two tags";
		document.getElementById('divtag').style.display="block";
        valid = false;
    }
	else if (document.member_form.image_hidden.value.trim() != "" )
    {
		if(check_ext(document.member_form.image_hidden.value) != "jpg")
		{
			if(check_ext(document.member_form.image_hidden.value) != "jpeg")
			{
				document.getElementById('divimage').style.display="block";
				document.getElementById('divimage').innerHTML="Please select image file";
    	    	valid = false;
			}
		}
    }
    return valid;
}
/** Video Edit ends **/

/* Profile editing */
function validate_profiledit_form()
{
	valid=true;
	if (document.member_form.sel_photo.value.trim() != "" )
    {
		if((check_ext(document.member_form.sel_photo.value) != "jpg"))
		{
			if((check_ext(document.member_form.sel_photo.value) != "jpeg"))
			{
			document.getElementById('span_img').style.display="block";
			document.getElementById('span_img').innerHTML="Please select image file (jpg file)";
	        valid = false;
			}
		}
    }
    return valid;
}
/** Profile editing Ends **/
