﻿function postPersonalInfo( sPageUrl, sPostContent, oContainer, fOnComplete){
    var ajax = new qtek_ajax(sPageUrl, "POST");            
    ajax.responseContainer = oContainer;
    ajax.onComplete = fOnComplete;
    ajax.execute(sPostContent);
}

function getPersonalInfo(sPageUrl, oContainer){
    var ajax = new qtek_ajax(sPageUrl, "GET");            
    ajax.responseContainer = oContainer;
    ajax.onComplete = function(){hide("divLoadingAddedResult");};
    ajax.execute(null);
}



var divAddedID = "divAddedContent";
var sSaveLoadURL = "";
function loadAddedData(sPageUrl){
    sSaveLoadURL = sPageUrl;
    sPageUrl += "&rad=" +  Math.random();
    getPersonalInfo(sPageUrl, getDocumentObject(divAddedID));
}

function loadAfterAdd(){
    show("divLoadingAddedResult");
    loadAddedData( sSaveLoadURL );
}

function addARecordForMeetingWithFunc(sPageUrl, fnAfterPost){
        // 1. post data of 
        // a. distance (V)
        // b. unit
        // c. stroke
        // d. relay
        // e. place (V)
        // f. hour
        // g. minute
        // h. second
        // i. milisecond
    // 2. oncomplete : hide loading -> show button
    
    var sDistance = getDocumentObject("txtRace_Distance").value;
    var sUnit = getDocumentObject("ddRace_Units").value;
    var sStroke = getDocumentObject("ddRace_Stroke").value;
    var sRelay = 'N';
    if( getDocumentObject("chkRace_Relay").checked ){
        sRelay = 'Y';
    }
    var sPlace = getDocumentObject("txtRace_Place").value;
    var sHour = getDocumentObject("ddRace_Hour").value;
    var sMinute = getDocumentObject("ddRace_Minutes").value;
    var sSecond = getDocumentObject("ddRace_Seconds").value;
    var sMilisecond = getDocumentObject("ddRace_Miliseconds").value;
    var sMeetInfoID = getDocumentObject(sMeetDivID).innerHTML;
    
    if( !validateNotEmpty( sDistance ) ){
        alert('Please enter to distance field.');
        try
        {
            getDocumentObject("txtRace_Distance").focus();
        }
        catch(ex){
        }
        return;
    }
    
    if(!validateNotEmpty( sPlace )){
        alert('Please enter to place field.');
          try
        {
            getDocumentObject("txtRace_Place").focus();
        }
        catch(ex){
        }
      
        return;
    }

    hide("divActiveAddMeetStep2");
    show("divShowLoadAddMeetStep2");
                                                            
    var sPostPars = sDistance + "$" + sUnit + "$" + sStroke + "$" + sRelay + "$" + sPlace + "$" + sHour + "$" + sMinute + "$" + sSecond + "$" + sMilisecond  + "$" + sMeetInfoID;
    var oContainer = getDocumentObject(divAddedID);
    postPersonalInfo( sPageUrl, sPostPars, oContainer, 
                        function(){
                             fnAfterPost();
                             resetMeetResult();
                        }
    );
}

function finishAddRecordForMeeting(sPageUrl){
    addARecordForMeetingWithFunc( sPageUrl, function(){
                                                 hide("divShowLoadAddMeetStep2");
                                                 show("divActiveAddMeetStep2");
                                                 slideHide("divAddMeetStep2", function(){} );
                                            }
                                );
}
function addARecordForMeeting(sPageUrl){
    addARecordForMeetingWithFunc( sPageUrl, function(){
                                                 iAMeetRecordsCount++;   
                                                 getDocumentObject("spanAMeetRecordsCount").innerHTML = iAMeetRecordsCount;
                                                 hide("divShowLoadAddMeetStep2");
                                                 show("divActiveAddMeetStep2");
                                            }
                                );
}
var sMeetDivID = "divAddedMeetInfoID";
var iAMeetRecordsCount = 1;
function addMeetingResult(sPageUrl){
    // 1. post data of 
        // 1. name of meeting (V)
        // 2. year
        // 3. month 
        // 4. day (V)(X)
        // 5. city (V)
        // 6. state/province (V)
        // 7. country (V)(X)
        // 8. notes
    // 2. oncomplete save the meeting ID
    
    var sMeetingName = getDocumentObject("txtMeetInfo_Name").value;
    var sYear = getDocumentObject("ddMeetInfo_Year").value;
    var sMonth = getDocumentObject("ddMeetInfo_Month").value;
    var sDay = getDocumentObject("ddMeetInfo_Day").value;
    var sCity = getDocumentObject("txtMeetInfo_City").value;
    var sState = getDocumentObject("txtMeetInfo_StateProvince").value;
    var sCountry = getDocumentObject("ddMeetInfo_Country").value;
    var sNotes = getDocumentObject("txtMeetInfo_Notes").value;
    
    if( !validateNotEmpty( sMeetingName ) ){
        alert('Please enter the meet name.');
        try
        {
            getDocumentObject("txtMeetInfo_Name").focus();
        }
        catch(ex)
        {}
        return;
    }
    
    if( !validateNotEmpty( sCity ) ){
    
        alert('Please enter city field.');
         try
        {
            getDocumentObject("txtMeetInfo_City").focus();
        }
        catch(ex)
        {}
        return;
    }
    
//    if( !validateNotEmpty( sState ) ){
//        alert('Please enter State/Province field.');
//        return;
//    }
    
   
    show("divShowLoadAddMeet");
    hide("divActiveAddMeetInfo");
                                                            
    var sPostPars = sMeetingName + "$" + sYear + "$" + sMonth + "$" + sDay + "$" + sCity + "$" + sState + "$" + sCountry + "$" + sNotes;
    var oContainer = getDocumentObject(sMeetDivID);
    postPersonalInfo( sPageUrl, sPostPars, oContainer, function(){
                                                            iAMeetRecordsCount = 1;
                                                            
                                                            getDocumentObject("spanAMeetRecordsCount").innerHTML = iAMeetRecordsCount;
                                                            hide("divShowLoadAddMeet");
                                                            show("divActiveAddMeetInfo");
                                                            
                                                            slideHide("divAddMeetStep1", function(){
                                                                                slideShow("divAddMeetStep2", 
                                                                                            function(){
                                                                                                getDocumentObject("txtRace_Distance").focus();
                                                                                            }
                                                                                         );
                                                                                resetMeetResult();
                                                                         }
                                                              );
                                                         } )
}

function addMeetAndRecord(sPageUrl){
    /*
    fields:
        1. month (MET)
        2. day (MET)
        3. year (MET)
        4. distance (V)
        5. unit
        6. stroke
        7. relay
        8. place (V)
        9. hour
        10. minutes
        11. seconds
        12. miliseconds
        13. city (V) (MET)
        14. state/province (V) (MET)
        15. country (MET)
        16. notes (MET)
        17. name of meeting (V) (MET)
    */
    
    var sMonth = getDocumentObject("ddAddMeetAndRecord_Month").value;
    var sDay = getDocumentObject("ddAddMeetAndRecord_Day").value;
    var sYear = getDocumentObject("ddAddMeetAndRecord_Year").value;
    var sDistance = getDocumentObject("txtAddMeetAndRecord_Distance").value;
    var sUnit = getDocumentObject("ddAddMeetAndRecord_Units").value;
    var sStroke = getDocumentObject("ddAddMeetAndRecord_Stroke").value;
    var sRelay = "N";
    
    if( getDocumentObject("chkAddMeetAndRecord_Relay").checked ){
        sRelay = "Y";
    }
    var sPlace = getDocumentObject("txtAddMeetAndRecord_Place").value;
    var sHour = getDocumentObject("ddAddMeetAndRecord_Hour").value;
    var sMinutes = getDocumentObject("ddAddMeetAndRecord_Minutes").value;
    var sSeconds = getDocumentObject("ddAddMeetAndRecord_Seconds").value;
    var sMiliseconds = getDocumentObject("ddAddMeetAndRecord_Miliseconds").value;
    var sCity = getDocumentObject("txtAddMeetAndRecord_City").value;
    var sState = getDocumentObject("txtAddMeetAndRecord_State").value;
    var sCountry = getDocumentObject("ddAddMeetAndRecord_Country").value;
    var sNotes = getDocumentObject("txtAddMeetAndRecord_Notes").value;
    var sNameOfMeet = getDocumentObject("txtAddMeetAndRecord_NameOfMeet").value;
    
    if( !validateNotEmpty( sNameOfMeet ) ){
    
        alert("Please enter the Name of Meet");
         try
        {
            getDocumentObject("txtAddMeetAndRecord_NameOfMeet").focus();
        }
        catch(ex)
        {}
        return;
    }
    
        
    if( !validateNotEmpty( sDistance ) ){
        alert("Please enter a Distance");
           try
        {
            getDocumentObject("txtAddMeetAndRecord_Distance").focus();
        }
        catch(ex)
        {}
        return;
    }
    
    if( !validateNotEmpty( sPlace ) ){
        alert("Please enter a Placed");
       
           try
        {
            getDocumentObject("txtAddMeetAndRecord_Place").focus();
        }
        catch(ex)
        {}
        return;
    }
        
    if( !validateNotEmpty( sCity ) ){
        alert("Please enter a City and State");
             try
        {
            getDocumentObject("txtAddMeetAndRecord_City").focus();
        }
        catch(ex)
        {}
        return;
    }
    
    hide("divActiveAddMeetAndRecord");
    show("divShowLoadAddMeetAndRecord");
    
    var sPostPars = sMonth + "$" + sDay+ "$" + sYear + "$" + sDistance + "$" + sUnit + "$" + sStroke + "$" + sRelay + "$" + sPlace + "$" + sHour + "$" + sMinutes + "$" + sSeconds + "$" + sMiliseconds + "$" + sCity + "$" + sState + "$" + sCountry + "$" + sNotes + "$" + sNameOfMeet;
    var oContainer = getDocumentObject(divAddedID);
    postPersonalInfo( sPageUrl, sPostPars, oContainer, function(){
                                                            hide("divShowLoadAddMeetAndRecord");
                                                            show("divActiveAddMeetAndRecord");
                                                            resetSingleRaceResultFields();
                                                         } )
}

var sCurrentEditID = null;
function showUpdateRecord(sPageUrl, sContainerID, sLoadingDivID, sActiveID){
    //1. Load ajax update frame
    //2. Frame contain
        // a. all fields when insert a meet & record
        // b. update button: post ajax pars to server
        //                   reload data
        // c. cancel button: close by slide hide
    //3. close delete/update div
    
    
    
    sPageUrl += "&r=" + Math.random();
    var ajax = new qtek_ajax(sPageUrl, "GET");
    hide( sActiveID );
    show( sLoadingDivID );           
    ajax.responseContainer = getDocumentObject(sContainerID);
    ajax.onComplete = function(){
                                    hide( sLoadingDivID );
                                    
                                    if( sCurrentEditID != null ){
                                        slideHide( sCurrentEditID, function(){
                                        
                                                                                show( sActiveID );
                                                                                slideShow( sContainerID, function(){} );
                                                                   }
                                                  ); 
                                        
                                    }
                                    else{
                                        show( sActiveID );
                                        slideShow( sContainerID, function(){} );
                                    }
                                    
                                    sCurrentEditID = sContainerID;
                      };
                      
    ajax.execute(null);
    
}

function updateRecord(sPageUrl, sExtOfControlID){
    //1. Post pars to server
    //      a. show loading div
    //      b. hide active div
    //2. Update in DB
    //3. Reload data
    //      a. show div in reload data
    
    var sMonth = getDocumentObject("ddUpdateMeetAndRecord_Month" + sExtOfControlID).value;
    var sDay = getDocumentObject("ddUpdateMeetAndRecord_Day" + sExtOfControlID).value;
    var sYear = getDocumentObject("ddUpdateMeetAndRecord_Year" + sExtOfControlID).value;
    var sDistance = getDocumentObject("txtUpdateMeetAndRecord_Distance" + sExtOfControlID).value;
    var sUnit = getDocumentObject("ddUpdateMeetAndRecord_Units" + sExtOfControlID).value;
    var sStroke = getDocumentObject("ddUpdateMeetAndRecord_Stroke"  + sExtOfControlID).value;
    var sRelay = "N";
    
    if( getDocumentObject("chkUpdateMeetAndRecord_Relay" + sExtOfControlID).checked ){
        sRelay = "Y";
    }
    var sPlace = getDocumentObject("txtUpdateMeetAndRecord_Place" + sExtOfControlID).value;
    var sHour = getDocumentObject("ddUpdateMeetAndRecord_Hour" + sExtOfControlID).value;
    var sMinutes = getDocumentObject("ddUpdateMeetAndRecord_Minutes" + sExtOfControlID).value;
    var sSeconds = getDocumentObject("ddUpdateMeetAndRecord_Seconds" + sExtOfControlID).value;
    var sMiliseconds = getDocumentObject("ddUpdateMeetAndRecord_Miliseconds" + sExtOfControlID).value;
    var sCity = getDocumentObject("txtUpdateMeetAndRecord_City" + sExtOfControlID).value;
    var sState = getDocumentObject("txtUpdateMeetAndRecord_State" + sExtOfControlID).value;
    var sCountry = getDocumentObject("ddUpdateMeetAndRecord_Country" + sExtOfControlID).value;
    var sNotes = getDocumentObject("txtUpdateMeetAndRecord_Notes" + sExtOfControlID).value;
    var sNameOfMeet = getDocumentObject("txtUpdateMeetAndRecord_NameOfMeet" + sExtOfControlID).value;
    
    if( !validateNotEmpty( sNameOfMeet ) ){
        alert("Please enter the Name of Meet");
        try
        {
            getDocumentObject("txtUpdateMeetAndRecord_NameOfMeet" + sExtOfControlID).focus();
        }
        catch(ex)
        {}
        return;
    }
    
     if( !validateNotEmpty( sDistance ) ){
        try
        {
            getDocumentObject("txtUpdateMeetAndRecord_Distance" + sExtOfControlID).focus();
        }
        catch(ex)
        {}
        alert("Please enter a Distance");
        
        return;
    }
   
    if( !validateNotEmpty( sPlace ) ){
        alert("Please enter a Placed");
       
        try
        {
            getDocumentObject("txtUpdateMeetAndRecord_Place" + sExtOfControlID).focus();
        }
        catch(ex)
        {}
        return;
    }
    
    if( !validateNotEmpty( sCity ) ){
        alert("Please enter a City and State");
            try
        {
            getDocumentObject("txtUpdateMeetAndRecord_City" + sExtOfControlID).focus();
        }
        catch(ex)
        {}
        return;
    }
       
        
    hide("divActiveUpdateMeetAndRecord" + sExtOfControlID);
    show("divShowLoadUpdateMeetAndRecord" + sExtOfControlID);
    
    var sPostPars = sMonth + "$" + sDay+ "$" + sYear + "$" + sDistance + "$" + sUnit + "$" + sStroke + "$" + sRelay + "$" + sPlace + "$" + sHour + "$" + sMinutes + "$" + sSeconds + "$" + sMiliseconds + "$" + sCity + "$" + sState + "$" + sCountry + "$" + sNotes + "$" + sNameOfMeet;
    var oContainer = getDocumentObject(divAddedID);
    postPersonalInfo( sPageUrl, sPostPars, oContainer, function(){
//                                                            hide("divShowLoadUpdateMeetAndRecord" + sExtOfControlID);
//                                                            show("divActiveUpdateMeetAndRecord" + sExtOfControlID);
//                                                            don't need, auto clear all when reload
                                                         } )
}

function deleteRecord(sPageUrl, sLoadingDivID, sActiveID){
    //1. Delete in DB
    //2. Reload data
    //3. close delete/update div
    
    sPageUrl += "&r=" + Math.random();
    var ajax = new qtek_ajax(sPageUrl, "GET");
    hide( sActiveID );
    show( sLoadingDivID );           
    ajax.responseContainer = getDocumentObject(divAddedID);
    ajax.onComplete = function(){   
                      };
                      
    ajax.execute(null);
}

function slideShow( divID, fnComplete ){
    Slide(divID, {duration:1,onComplete: fnComplete} ).down();
}

function slideHide( divID, fnComplete ){
    Slide(divID, {duration:1,onComplete: fnComplete}  ).up();
}

function resetSingleRaceResultFields(){
    /* fields
        1. name of meet
        2. event
        3. place
        4. time (drop down list)
        5. city
        6. state
        7. relay (check)
        8. note
    */
    
    getDocumentObject("txtAddMeetAndRecord_Distance").value = "";
    getDocumentObject("chkAddMeetAndRecord_Relay").checked = false;
    getDocumentObject("txtAddMeetAndRecord_Place").value  = "";
    getDocumentObject("ddAddMeetAndRecord_Hour").value  = "0";
    getDocumentObject("ddAddMeetAndRecord_Minutes").value  = "0";
    getDocumentObject("ddAddMeetAndRecord_Seconds").value = "0";
    getDocumentObject("ddAddMeetAndRecord_Miliseconds").value = "0";
    getDocumentObject("txtAddMeetAndRecord_City").value = "";
    getDocumentObject("txtAddMeetAndRecord_State").value = "";
    getDocumentObject("txtAddMeetAndRecord_Notes").value = "";
    getDocumentObject("txtAddMeetAndRecord_NameOfMeet").value = "";
}

function resetMeetResult(){
    /* fields
        1. name of meet
        2. event
        3. place
        4. time (drop down list)
        5. city
        6. state
        7. relay (check)
        8. note
    */
    getDocumentObject("txtRace_Distance").value = "";
    getDocumentObject("chkRace_Relay").checked = false;
    getDocumentObject("txtRace_Place").value  = "";
    getDocumentObject("ddRace_Hour").value  = "0";
    getDocumentObject("ddRace_Minutes").value  = "0";
    getDocumentObject("ddRace_Seconds").value = "0";
    getDocumentObject("ddRace_Miliseconds").value = "0";
    getDocumentObject("txtMeetInfo_City").value = "";
    getDocumentObject("txtMeetInfo_StateProvince").value = "";
    getDocumentObject("txtMeetInfo_Notes").value = "";
    getDocumentObject("txtMeetInfo_Name").value = "";
}

function registerOnclickOut(sDivViewID){
    document.body.onclick = function(e){
        if( !isEffectByEvent(e, sDivViewID) ){
            hide( sDivViewID );
            document.body.onclick = function(){
            };
        }
    };
}
function registerOnclickOut2(sDivViewID, sDivViewID2){
    document.body.onclick = function(e){
        if( !isEffectByEvent(e, sDivViewID) && !isEffectByEvent(e, sDivViewID2) ){
            hide( sDivViewID );
            document.body.onclick = function(){
            };
        }
    };
}
