addEvent(window,"load",function(){
    if (isFormRegistered != true){
        formRegistration();
    }
    //alert("Registration");
    removeEvent(window,"load",formRegistration, true);

    if ($("selfregistration")) {

		hideControls(new Array('creditcardgroup', 'payTypeBill','payTypeGiftCard','userpass'));

		addEvent($("credit_radio"), "click", function(){

            showControls(new Array('creditcardgroup','userpass'));

			hideControls(new Array('payTypeGiftCard', 'payTypeBill'));

			clearErrors();

		}, false);

		

		addEvent($("giftcard_radio"), "click", function(){

			//clearErrors($("main"),new Array("creditCardType", "creditCardName", "creditCardNumber", "creditCardExpireMonth", "creditCardCCVCode"));

            showControls(new Array('payTypeGiftCard','userpass'));

			hideControls(new Array('creditcardgroup', 'payTypeBill'));
            
            clearErrors();

		}, false);

		

		addEvent($("billme_radio"), "click", function(){

			//clearErrors($("main"),new Array("creditCardType", "creditCardName", "creditCardNumber", "creditCardExpireMonth", "creditCardCCVCode","password","username","confirmPassword","hintQuestion","hintAnswer"));

            showControls(new Array('payTypeBill'));

            hideControls(new Array('creditcardgroup', 'payTypeGiftCard','userpass'));
		
            clearErrors();

		}, false);
		
		if($("credit_radio").checked == true){
			
			showControls(new Array('creditcardgroup','userpass'));

			hideControls(new Array('payTypeGiftCard', 'payTypeBill'));
			
			//clearErrors();
			
		}
		
		if($("giftcard_radio").checked == true){
			
			showControls(new Array('payTypeGiftCard','userpass'));

			hideControls(new Array('creditcardgroup', 'payTypeBill'));
			
			//clearErrors();
			
		}
		
		if($("billme_radio").checked == true){
			
			showControls(new Array('payTypeBill'));

            hideControls(new Array('creditcardgroup', 'payTypeGiftCard','userpass'));
			
			//clearErrors();
			
		}

	}

	if ($("donorregistration")){

		hideControls(new Array('creditcardgroup'));

        addEvent($("credit_radio"), "click", function(){

			showControls(new Array('creditcardgroup'));

		}, false);

		

        addEvent($("billme_radio"), "click", function(){

			clearErrors($("main"),new Array("creditCardType", "creditCardName", "creditCardNumber", "creditCardExpireMonth", "creditCardCCVCode"));

			hideControls(new Array('creditcardgroup'));

		}, true);

	}

	if ($("giftcardorders")){

		//hideControls(new Array('billing'));
        updateQte($("giftCardNumber"));
		addEvent($("giftCardNumber"), "keyup", updateQte,false);
	}
    
    if ($("subscription")){
        if ($("hintQuestion") && $("hintAnswer")){
            addEvent($("hintQuestion"), "change", function(){
                clearInputField("hintAnswer");
            },false);
        }
    }


},true);

//addEvent(window,"load",formRegistration, true);



function hideControls(arrayControls){

	var obj;

	for(var i=0;i<arrayControls.length;i++){

		obj = $(arrayControls[i]);

		hideFields(obj);

		obj.style.display = "none";

	}

}	



function showControls(arrayControls){

	var obj;

	for(var i=0;i<arrayControls.length;i++){

		obj = $(arrayControls[i]);

		showFields(obj);

		obj.style.display = "block";

	}

}	



function reset(){

	document.registration.reset();

}



function showFields(blockElement){
    var msg =""; // For Testing only
	var formFields = new Array(blockElement.getElementsByTagName("input"),

							   blockElement.getElementsByTagName("select"),

							   blockElement.getElementsByTagName("textarea"));

	for (var j=0; j<formFields.length;j++){

		for (var i=0;i<formFields[j].length;i++){

			var length = formFields[j][i].name.indexOf("_hidden");

			if(length==-1){

				length = formFields[j][i].name.length;

			}
            msg+="- " + formFields[j][i].name + "\n"; // For Testing only
			formFields[j][i].name = formFields[j][i].name.substr(0, length);

		}

	}
   //alert("Displaying fields in:"+blockElement.id+"\n\n" + msg); // For Testing only
}

function hideFields(blockElement){
    var msg =""; // For Testing only
	var formFields = new Array(blockElement.getElementsByTagName("input"),

							   blockElement.getElementsByTagName("select"),

							   blockElement.getElementsByTagName("textarea"));

	for (var j=0; j<formFields.length;j++){

		for (var i=0;i<formFields[j].length;i++){
            msg+="- " + formFields[j][i].name + "\n"; // For Testing only
			formFields[j][i].name  += "_hidden";
		}

	}
    //alert("Hidding fields in:"+blockElement.id+"\n\n" + msg); // For Testing only
}



function updateQte(e){
    var field;
    
    if (typeof(e.id) == "undefined"){
        var event = new Event(e);
        field = event.target;
    }
    else{
        field = e;
    }
	var value = 1;

	if (!isNaN(field.value)){

		value = Math.ceil(field.value);

	}

	var val = parseFloat(value * 19.99);

	val *=100;

	val = Math.ceil(val);

	val /= 100;

	$("totalPrice").innerHTML = val.toFixed(2);

}

function maxFieldLenght(e){
    var field;

    if (typeof(e.id) == "undefined"){
        var event = new Event(e);
        field = event.target;
    }
    else{
        field = e;
    }
    
    
    if (field.value.length >500){
        field.value = field.value.substr(0,500);
    }
}

function clearInputField(id){
   $(id).value = "";
   clearErrors($("main"),new Array($(id).name));
}