//Animation Objects
var dropEffect;

var dropBtn;

//Toggle for event staggering and combinations
var toggler;

//Validation Icons [16x16]
var initImg = "/digitalAssets/13797_alert.gif";
var checkImg = "/digitalAssets/13798_check_green.gif";
var errorImg = "/digitalAssets/13799_close.gif";

//AJAX status Icons [32x32]
var loading = "/digitalAssets/13800_darkloader.gif";
var success = "/digitalAssets/13801_confirm_32.png";
var failure = "/digitalAssets/13802_delete_32.png";

function dropWidget() {
	if (toggler) {
		toggler = false;
		$("dropWindow").style.height = "200px";
		$("dropButton").style.top = "-200px";
		fadeEffect = new Fx.Opacity("dropContent", {duration:200, onComplete:function() {
			$("sub_event_ta").style.overflow = "auto";
		}});
		dropEffect = new Fx.Style("dropWindow","top", {duration:500, onComplete:function(){
			fadeEffect._start(0,1);
		}}, false);
		//$("intbtn").innerHTML = "<img src='/digitalAssets/13804_close_16x16.png' height='12' width='12' alt='Submit an Event' />Close Window";
		//$("dropButton").className="close";
		dropEffect._start(-200, 0);
		dropBtn._start(-200, 0);
	} else {
		toggler = true;
		$("sub_event_ta").style.overflow = "hidden";
		dropEffect = new Fx.Style("dropWindow","top", {duration:500, onComplete:function(){
			$("dropWindow").style.height = "0";
			$("dropButton").style.top = "0";
		}});
		fadeEffect = new Fx.Opacity("dropContent", {duration:200, onComplete:function(){
			dropEffect._start(0, -200);
			dropBtn._start(0, -200);
		}}, false);
		fadeEffect._start(1,0);
		//$("intbtn").innerHTML = "<img src='/digitalAssets/13803_mail_16.png' height='12' width='12' alt='Submit an Event' />Submit an Event";
		//$("dropButton").className="";
	}
}



function attach_validation(form) {
	elements = form.getElementsByClassName("formSegment");
	elements.each(function(element) {
		var vicon = document.createElement("img");
		vicon.src = initImg;
		Element.addClassName(vicon, "icoValidation");
		vicon.valid = false;
		input = element.getElementsByTagName("input")[0];
		if(!input) input = element.getElementsByTagName("textarea")[0];
		element.appendChild(vicon);
		validator = validate;
		if(input.name == "email") validator = validate_email;
		Event.observe(input, "keyup", validator, false);
		Event.observe(input, "blur", validator, false);
		
	}); 
}
function validate_email(e) {
	obj = Event.element(e);
	nodeCorrect = obj.parentNode || obj.parent;
	vimg = nodeCorrect.lastChild;
	
	if(obj.value.match(/^[a-zA-Z0-9\.]+@[a-zA-Z0-9\.]+\.[a-z]{2,}$/)==null) {
		vimg.src = errorImg;
		vimg.valid = false;
	} else {
		vimg.src = checkImg;
		vimg.valid = true;
	}
}
function validate(e){
	obj = Event.element(e);
	nodeCorrect = obj.parentNode || obj.parent;
	vimg = nodeCorrect.lastChild;
	
	if(!obj.value) {
		vimg.src = errorImg;
		vimg.valid = false;	
	} else {
		vimg.src = checkImg;
		vimg.valid = true;
	}
}

function init_submission() {
	var invalid = false;
	formChecks = $$(".icoValidation");
	formChecks.each(function(element){
		if(element.valid != true) {
			warning = new Fx.Style(element, "right", {duration:300}, false);
			warning._start(-8, 0);
			invalid = true;
		}
	});
	if(invalid) return;
	Event.stopObserving($("jaxSubmit"), "click", init_submission, false );
	change_status_display(0);
	formvars = Form.serialize($("event_sub_form"));
	url = '/System_Pages/submit_event_processor/';
	notify_of_sub_loading();
	var SendOff = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:formvars,
			onSuccess:notify_of_sub_success,
			onFailure:notify_of_sub_failure
		}
	);
	
	//$AX("?" + formvars,url,notify_of_sub);
}

var notify_of_sub_success = function(originalRequest) {
	if(originalRequest.responseText.match(/Success/)) {resultState = 1;} else resultState = 2;
	change_status_display(resultState);
}
var notify_of_sub_loading = function(originalRequest) {
	resultState = 0;
	change_status_display(resultState);
}
var notify_of_sub_failure = function(originalRequest) {
	resultState = 2;
	change_status_display(resultState);
}


/*

var notify_of_sub = {
	success:function(output, result) {
		if(output.match(/Success/)) {resultState = 1;} else resultState = 2;
		change_status_display(resultState);
	},
	failure:function() {
		resultState = 2;
		change_status_display(resultState);
	},
	loading:function() {
		resultState = 0;
		change_status_display(resultState);
	}
}
*/
/*
function notify_of_sub() {
	var resultState = 0;
	if (JAX.readyState < 4) {
		resultState = 0;
	} else {
//alert(JAX.responseText)//Temp debug
		if (JAX.status == 200) {
			if(JAX.responseText.match(/Success/)) {resultState = 1;} else resultState = 2;
		}
		else resultState = 2;
	}
	change_status_display(resultState);
}
*/
function change_status_display(what) {
	$("formStatus").style.display = "block";
	switch (what)
	{
		case false : $("formStatus").style.display = "none";
		case 0 : 
			$("statusIcon").src = loading;
			$("formStatus").style.background = "#000";
			$("statusText").innerHTML = "Sending...";
		break;
		case 1 :
			$("statusIcon").src = success;
			$("formStatus").style.background = "#4b0";
			$("statusText").innerHTML = "Your request was submitted!";
			fadeit = new Fx.Opacity("formStatus", {duration:3000, onComplete:function(){
				change_status_display(false);
				Event.observe($("jaxSubmit"), "click", init_submission, false );
				$("event_sub_form").reset();
				icoVals = $$(".icoValidation");
				icoVals.each(function(ico){
					ico.src = initImg;
					ico.valid = false;
				});
			}});
			fadeit._start(1,0);
		break;
		case 2 :
			$("statusIcon").src = failure;
			$("formStatus").style.background = "#c33";
			$("statusText").innerHTML = "Technical error; please try again later.";
			fadeit = new Fx.Opacity("formStatus", {duration:4000, onComplete:function(){
				change_status_display(false);
				Event.observe($("jaxSubmit"), "click", init_submission, false );
			}});
			fadeit._start(1,0);
		break;
	}
}

version=0
if (navigator.appVersion.indexOf("MSIE")!=-1){
temp=navigator.appVersion.split("MSIE")
version=parseFloat(temp[1])
}

if (version >= 6 || version == 0){ //NON IE browser will return 0

Event.observe(window, 'load', function() {
    toggler = true;
    $("event_sub_form").action = "#nogo";
    $("intbtn").href = "#nogo";
    var fadeEffect = new Fx.Opacity("dropContent", {duration:200});
    fadeEffect.set(0);
    $("event_sub_form").reset();
	attach_validation($("event_sub_form"));
	dropBtn = new Fx.Style("dropButton","top", {duration:500}, false);
	Event.observe($("closeButton"), "click", dropWidget, false );
	Event.observe($("dropButton"), "click", dropWidget, false );
	Event.observe($("jaxSubmit"), "click", init_submission, false );
}, false);
}


