// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function fade_flash_notice() {
	setTimeout(function(){Effect.Fade('flash_notice')}, 3000);
}


function render_sponsor_this(url) {
    var bust = new Date();
	var pars = "layout=false&bust=" + bust.getUTCMilliseconds() * 10000;
	var myAjax = new Ajax.Updater(
		$('sponsor_this_wrap'),
		url, 
		{
			method: 'get', 
			parameters: pars,
			evalScripts: true,
			onSuccess: render_sponsor_this_cb
		});	
}

function render_sponsor_this_cb(res) {
	//.innerHTML = res.responseText;
}



function choose_campaign(id) {
	var img = $('chooser_' + id);
	var logo =  $('campaign_logo');
	logo.src = img.src;
	display($('logo_chooser'));
	
	var campaign = $('campaign_id');
	var prev = campaign.value
	campaign.value = id		
	
	img.style.display = "none"
	$('chooser_' + prev).style.display = "block";
	
}




function display(el){
	//log(el.style.display,"");
	if (el.style.display == 'block' || el.style.display=='') {
		el.style.display = "none";
	} else {
		el.style.display = "block";			
	}
	//log(el.style.display,"");		
}

function check_amount(el, e) {
	// change this to regex laters...
	var evt = e || window.event;
	var code = e.keyCode
	//log("keycode:",code) 
	if (code>=48 && code<=57 || code==8 || code == 13) {return false;} //	0-9,backspace,enter
	var val = el.value.replace(/\W/,"").replace(/[^0-9]/,"");
	el.value = val;
	
}

function display_sponsor_this(){
	display($('sponsor_this'));
	display($('sponsor_this_link'));
}

var nameExistsToId = null;

function name_handler(e) {
    var evt = e || window.event;
    if (e.keyCode==13) {return false;} // exit if enter was pressed
    
    // only allow a-zA-z0-9
    var el = $('name');
    el.value = el.value.replace(/\W/,"")

    var name = el.value
    var name_msg = $('name_msg');
    name_msg.className = "name_exists";
    // $('register').disabled = true;

    if (nameExistsToId) {window.clearTimeout(nameExistsToId)}
    if (name) {
        if (name.length > 2) {    
			name_msg.className = "name_exists checking";
            name_msg.innerHTML = "Checking..."
            nameExistsToId = window.setTimeout("does_name_exist('"+name+"')",1000);
        } else {
            name_msg.innerHTML = "3-12 characters";
        }
    } else {
        name_msg.innerHTML = "";
    }
}

function does_name_exist(name) {		
	var url = '/users/does_name_exist';
	var pars = 'name=' + $('name').value + auth_token('new_user');
	var myAjax = new Ajax.Request(
			url, {
				method: 'post', 
				parameters: pars,
				onSuccess: does_name_exist_cb
			});
}

function does_name_exist_cb(res) {
	var code = res.responseText
	var name_msg = $('name_msg');
	
	if (code == '0') {
		$('register').disabled = false;
		name_msg.innerHTML = "Available!";
    	name_msg.className = "name_exists available";			
	} else {
        $('register').disabled = true;
		name_msg.innerHTML = "Already Taken!";			
    	name_msg.className = "name_exists error";			
	}
}


//************************************************
// password
//************************************************
	function validate_change_password(){
		var error_el = $('password_errors');
		error_el.hide();
		var current = $('current_password').value
		var pass = $('new_password').value
		var conf = $('new_password_confirmation').value
		var errors = [];
		if (current!='') {
			if (pass!=''&&conf!='') {
				if (pass == conf) {
					return true;
				} else {
					errors.push('Your password confirmation doesn\'t match.')
				}
			} else {
				errors.push('You must provide a new password.')
				errors.push('You must provide a new password confirmation.')
			}
		} else {
			errors.push('You must provide your current password.')
		}

		// toggle errors
		error_el.show(); var error = []
		for (var i=0; i<errors.length;i++) {
			error.push("<li>" + errors[i] + "</li>");
		}
		error_el.innerHTML = error.join("");
		 
		return false;
	}


function auth_token(form){
	form = $(form)
	if (form){return '&authenticity_token=' + form['authenticity_token'].value}
	alert('missing auth token')
	return '';
}

function log(n,v){
	$('log').innerHTML += "<strong>" + n + "</strong>:" + v + "<br />" 	
}