﻿//-------------------------------------------------------------------------------------------
//  http://forums.asp.net/t/1089469.aspx
//  Scrolls the Page to the ValidationSummary designated by the "onclientclicked" event
//  invoking the validation.////  CODE BEHIND - Add the following to the "Page_Load" event.
//
//System.Web.UI.ScriptManager.RegisterOnSubmitStatement(Page.GetType(), "GotoValidationSummary", "scrolltoValidationSummaryScript();");
//        Page.ClientScript.RegisterOnSubmitStatement(Page.GetType(), "GotoValidationSummary", "return(scrolltoValidationSummaryScript());");
//        this.Button1.OnClientClick = "saveLocalValidationSummary('" + ValidationSummary1.ClientID + "')";
//-------------------------------------------------------------------------------------------

var _obj_activevalidationsummary = null;
function saveLocalValidationSummary(validationsummaryid)
{
    //        alert("save validation summary id = " + validationsummaryid);
    _obj_activevalidationsummary = document.getElementById(validationsummaryid);
}
function gotoActiveSummary()
{
    //    alert("goto active summary.");
    if (_obj_activevalidationsummary != null)   
    {        
        var coors = findPos(_obj_activevalidationsummary);        
        window.scrollTo(coors[0],coors[1]);
        _obj_activevalidationsummary = null;
    }
 }

 function scrolltoValidationSummaryScript()
 {
     //    alert("ValidationSummary registration on server code behind.");
     if (typeof (ValidatorOnSubmit) == "function") {
         var isValidated = ValidatorOnSubmit();
         if (!isValidated) {
             gotoActiveSummary();
             return false;
         }
         return true;
     } 
 }

 function findPos(obj) 
 {
     var curleft = curtop = 0;
     if (obj.offsetParent) {
         do {
             curleft += obj.offsetLeft;
             curtop += obj.offsetTop;
         }
         while (obj = obj.offsetParent);
     }
     return [curleft, curtop];
}
