
//this file contains functions for the usage of captchas
    function calc_hash(value)
    {
        var hash = 5381;
        for (var i = 0; i < value.length; i++) {
                hash = ((hash << 5) + hash) + value.charCodeAt(i);
        }
        return hash;
    }

          function captcha_validateCaptcha(input)
        {
         var delim =',';
         var txt_captcha_code_id=getTokenAt(input,0,delim,3);
         var captcha_code_expected_hash_value_id=getTokenAt(input,1,delim,3);
         var append_completion_icon=parseInt(getTokenAt(input,2,delim,3));

         1==append_completion_icon?append_completion_icon=true:
           append_completion_icon=false;

          $(function()
          {
                var name_validate = function(val)
                {
                   var captcha_code = $("#"+txt_captcha_code_id).val();
                   var captcha_code_expected_hash_value=$("#"+captcha_code_expected_hash_value_id).val();

                   var captcha_code_actual_hash_value = calc_hash(captcha_code);

                    if(captcha_code_expected_hash_value!=
                                                 captcha_code_actual_hash_value)
                     {
                       $("#"+txt_captcha_code_id).addClass( "ui-state-error" );
                       //return "Expected "+captcha_code_expected_hash_value+
                         //     " Got "+captcha_code_actual_hash_value;
                         return "Is Case Sensitive";
                     }

                    $("#"+txt_captcha_code_id).removeClass( "ui-state-error" );
                    return "";
                };

                $("#"+txt_captcha_code_id).validate(
                {
                    valid: function(val)
                    {
                        return name_validate(val) == "";
                    },
                    errorMessage: function(val)
                    {
                        return name_validate(val);
                    },
                    appendCompletionIcon: append_completion_icon
                });

            });
        }//captcha_validateCaptcha()



function captcha_showCaptchaForm()
{
       var action_file_path = "captcha/index.php";
       var actioncmd = "?show_captcha_form_request=1";

       var url = action_file_path+actioncmd;
       url=url+"&sid="+Math.random();

       $(function()
       {

		// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
		$( "#dialog:ui-dialog" ).dialog( "destroy" );

		$( "#div_show_captcha_box" ).dialog({
			autoOpen: false,
			height: 330,
			width: 380,
			modal: false,
                        draggable: false
		});

                $( "#div_show_captcha_box" ).dialog( "open" );

                $.ajax({
                        method: "get",url:url,data: "page",
                        beforeSend: function()
                        {
                            showSpinner('div_show_captcha_box');
                        },
                        complete: function()
                        {},
                        success: function(html)
                        {
                          $("#div_show_captcha_box").html(html);
                        }
             }); //close $.ajax()

	});
}//captcha_showCaptchaForm()


