﻿/// <reference path="jquery-1.4.2.js" />

var startedValidation = false;

function InitValidation() 
{
    startedValidation = false;

    $('input[type=text], input[type=password], textarea').keyup(function (event) {
        UpdateHighlightInvalid();
    });

    HighlightFailedValidations();
}

function CList() {

    var data = Array();

    this.Add = function (object) {
        data[data.length] = object;
    }

    this.Remove = function (object) {
        var newdata = Array();
        var offset = 0;
        for (var x = 0; (x + offset) < data.length; x++) {
            if (data[x] == object) {
                offset++;

                if ((x + offset) >= data.length)
                    break;
            }

            newdata[x] = data[x + offset];
        }

        data = newdata;
    }

    this.Contains = function (object) {
        for (var x = 0; x < data.length; x++) {
            if (data[x] == object)
                return true;
        }

        return false;
    }

    this.Get = function (index) {
        return data[index];
    }

    this.Count = function () {
        return data.length;
    }

    this.ToArray = function () {
        var newdata = new Array();
        for (var x = 0; x < data.length; x++) {
            newdata[x] = data[x];
        }

        return newdata;
    }
}

function CheckDdlSelection(sender, args) 
{
    args.IsValid = !(args.Value == "-1" || args.Value == "");
}

function CheckIsNotEmpty(sender, args) 
{
    args.IsValid = args.Value != "";
}

function HighlightInvalid(noscrollup) {
    try {
        if (Page_Validators == undefined)
            return;
    } catch (e) {
        return;
    }
    startedValidation = true;

    var val = Page_ClientValidate();
    
    HighlightFailedValidations();

    if(!noscrollup)
        tmpScroll(0, 0);
    
    return val;
}

function UpdateHighlightInvalid() {
    if (startedValidation == true)
        HighlightInvalid(true);
}

function HighlightFailedValidations() {
    try {
        if (Page_Validators == undefined)
            return;
    } catch (e) 
    {
        return;
    }

    // reset all
    for (var i = 0; i < Page_Validators.length; i++) {
        var ctrl = $("#" + Page_Validators[i].controltovalidate);
        ctrl.removeClass("invalidinput");
    }
    // highlight if invalid
    for (var i = 0; i < Page_Validators.length; i++) {
        if (!Page_Validators[i].isvalid) {
            var ctrl = $("#" + Page_Validators[i].controltovalidate);
            ctrl.addClass("invalidinput");
        }
    }

}

var tmpScroll = window.scrollTo;

window.scrollTo = function (x, y) {
    return true;
}

