function validateEmail(email){
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	
	return filter.test(email);
}

var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)

	if (pos1==-1 || pos2==-1){
		return "Wrong format in Birth field";
	}
	if (strMonth.length<1 || month<1 || month>12){
		return "Please enter a valid month";
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return "Please enter a valid day"
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return "Please enter a valid 4 digit year between "+minYear+" and "+maxYear;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return "Please enter a valid date";
	}
return true
}

function showPinForm(type){
	if(type == 1){
		$('alphaLogin').style.display = 'none';
		$('alphaLoginPin').style.display = 'block';
	}else{
		$('alphaLogin').style.display = 'block';
		$('alphaLoginPin').style.display = 'none';
	}
}

function registerBeta(formName){
	var emailField = $('beta_email');
	var email = emailField.value;

	clearMessage = function(){
		emailField.value = '';
	}
	
	errorMessage = function(){
		emailField.value = 'Invalid e-mail address';
		setTimeout('clearMessage()',1500);
	}

	if(email == '' || email != '' && validateEmail(email) == false){
		errorMessage();
	}else{
		var $beta = new urbii();
		$beta.setForm(formName);
		result = $beta.registerBeta();
		
		emailField.value = result.MESSAGE;
	}
	
	setTimeout('clearMessage()',1500);
}

function checkPinExistence(formName){
	var pinField = $('pin_number');
	var pin = pinField.value;
	var divMessage = $('PinNumberMessage'); 

	clearMessage = function(){
		pinField.value = '';
	}
	
	errorMessage = function(){
		pinField.value = 'Invalid pin number';
		setTimeout('clearMessage()',1500);
	}

	if(pin == '')
		errorMessage();
	else{
		var $checkPinNumber = new urbii();
		$checkPinNumber.setForm(formName);
		result = $checkPinNumber.checkPinExistence();

		if(result.STATUS == true)
			ColdFusion.navigate('register.cfm?pin_id=' + result.PIN_ID,'SiteContent');
		else
			errorMessage();
	}
}

function LoginUser(formName){
	var loginField = $('user_login');
	var passField = $('user_password');
	var loginValue = loginField.value;
	var passValue = passField.value;

	if(loginValue != '' && passValue != ''){
		document.Login.submit();		
	}else{
		alert('Insert the user and pass.');
	}

/*	if(loginValue != '' && passValue != ''){
		
		if(result == true){
			location.href = "logged/?page=profile"	
		}else{
			loginField.value = 'Login failed';
			passField.value = 'Login failed';

			setTimeout('clearMessage()',1500);
		}
	}else{
		loginField.value = 'Invalid user';
		passField.value = 'Invalid pass';

		setTimeout('clearMessage()',1500);
	}
	*/
	
}

function RegisterUser(){
    var aError = new Array();
    var user_email = $('user_email').value;

	var user_birthMonth = $('user_birthMonth').value;
	var user_birthDay = $('user_birthDay').value;
	var user_birthYear = $('user_birthYear').value;

	if(user_birthMonth != '' && user_birthDay != '' && user_birthYear != '')
    	var user_birth = user_birthMonth + '/' + user_birthDay + '/' + user_birthYear;
    else
    	var user_birth = '';

   	validateDate = isDate(user_birth);

	clearMessage = function(){
		$('RegisterMessage').innerHTML = '';
		$('RegisterLink').style.display = 'block';
	}
	
	hideSubmitButton = function(){
		$('RegisterLink').style.display = 'none';
	}

    if($('user_login8').value == '')
    	aError.push('The field User is required');

    if($('user_password8').value == '')
    	aError.push('The field Password is required');

    if($('user_name').value == '')
    	aError.push('The field Name is required');

    if($('user_lastname').value == '')
    	aError.push('The field Last Name is required');

    if(user_email == '')
    	aError.push('The field E-mail is required');
	else if(validateEmail(user_email) == false)
		aError.push('The typed E-mail is invalid');

	if(validateDate != true){
		aError.push(validateDate);
	}

	if(aError.length == 0){
		var $register = new urbii();
		$register.setForm('frmRegister');
		result = $register.setUser();

		if(result.STATUS == true){
			$('RegisterMessage').innerHTML = 'Registration successful!<br />Redirecting to registered area.';
			hideSubmitButton();
			
			setTimeout('redirectLogged()',2000);
		}else{
			$('RegisterMessage').innerHTML = result.MESSAGE;
		}

		setTimeout('clearMessage()',2000);
	}else{
		hideSubmitButton();
		$('RegisterMessage').innerHTML = aError.join("<br>");
		setTimeout('clearMessage()',2000);
	}
}

function redirectLogged(){
	location.href = 'logged/?page=profile';
}

function LogoutUser(session){
	var $logout = new urbii();
	$logout.setLogout();
	
	if(session == 1)
		location.href = "/";
	else
		location.href = "../";
}

function editProfile(option){
	if(option == 1){
		$('showProfileData').style.display = 'none';
		$('editProfileData').style.display = 'block';	
	}else{
		$('showProfileData').style.display = 'block';
		$('editProfileData').style.display = 'none';
	}
}

function saveProfile(){
	user_name = $('user_name').value;
	user_lastname = $('user_lastname').value;
	user_birth = $('user_birth').value;

	clean = function(){
		$('ProfileMessage').innerHTML = ''; 
	}

	if(user_name == '' || user_lastname == '' || user_birth == ''){
		$('ProfileMessage').innerHTML = 'Name, Lastname and Birth are required';
		setTimeout('clean',2000);
	}else{
		document.frmEditProfile.submit();		
	}
}

function createStreet(){
	sName = $('name').value;
	sUrl = $('url').value;

	clearMessage = function(){
		$('StreetMessage').innerHTML = '';
	}
	
	if(sName == '' || sUrl == ''){
		$('StreetMessage').innerHTML = 'Name and URL are required.';
		setTimeout('clearMessage()',2000);
	}else{
		document.frmStreet.submit();
		/*var street = new urbii();
		street.setForm('frmStreet');
		createStatus = street.createStreet();
		
		if(createStatus.STATUS == true){
			
		}else{
			
		}*/
	}
}

function sendAsset(){
	assetFile = $('filename').value;
	
	if(assetFile != ''){
		document.frmUploadAsset.submit();
	}else{
		$('AssetMessage').innerHTML = 'Please select a image to submit.';
	}
	
}

function cleanup() {
    ColdFusion.Window.destroy('streetDetail',true);
}

function streetDetail(id){
	try {
        ColdFusion.Window.destroy('streetDetail',true);
    }catch(e){}

	ColdFusion.Window.create('streetDetail','Street Detail','../logged/streetDetail.cfm?id=' + id,{height:450,width:600,modal:true,closable:true,center:true,draggable:false,resizable:false});
	ColdFusion.Window.onHide('streetDetail',cleanup);
}