﻿// JScript File

function GetParentNodePrefix(el)
{
    // get parent node client id
    // eg ctl00_ContentPlaceHolder1_
    var id = el.id;
    var x = id.lastIndexOf("_");
    var parent = "";
    
    if(x >0)
    {
        if(!isNaN(parseInt(id.substring(x+1))))
        {
            parent = id.substring(0, x);
            x = parent.lastIndexOf("_");
       }
        parent = id.substring(0, x+1);
    }
    
    return parent;
}

function EventTriggerElement(ev)
{
    if(!ev) ev = event;
    return ev.target || ev.srcElement;
}

/** 
    Apply MaxLength and set counter text
    **/
function SetTextLength(txtName, countName, len)
{ 
    var isNotMax = true;
    var elTxt = document.getElementById(txtName);
    var text = elTxt.value;
    var regex = /[\f\n\r\t\v]/;
    var arVal = text.split(regex);
    var regCount = 0;
    var count = 0;

    for(i=0;i<arVal.length;i++){
        count += arVal[i].length;
        if(!regex.test(arVal[i])){
            regCount++;
        }
    } 

    if(text.length > len+regCount-1){
        isNotMax = false;
        elTxt.value = text.substr(0,len+regCount-1)
    }

    // set character count element
    var elCount;
    if(countName != "" && countName != null)
      elCount  = document.getElementById(countName);  
      
    if(elCount != null)
    {
        if(isNotMax) elCount.innerHTML = "(" + count + "/"+len+" characters)";
        else  elCount.innerHTML = "(" + len + "/"+len+" characters)";
    }

    return isNotMax;
}

/** 
    Apply MaxLength and set counter text
    charities/createprofile.aspx   
    admin/charityprofile.aspx      
**/
function txtDescription_OnKeyUp(ev)
{
    var el = EventTriggerElement(ev);
    
    // dont need parent prefix as pDescriptionCount does not runat server
    return SetTextLength(el.id, "pDescriptionCount", 1000);
}

function txtSummary_OnKeyUp(ev)
{
    var el = EventTriggerElement(ev);
    
    // dont need parent prefix as pDescriptionCount does not runat server
   return SetTextLength(el.id, "pSummaryCount", 150);
}

/** 
    Validate chkImagesOwner
    charities/createprofile.aspx   
    admin/charityprofile.aspx      
    admin/categorydetails.aspx      
**/
function cvchkImagesOwner_ClientValidate(source, arguments)
{
   var parent = GetParentNodePrefix(source);
   var el = document.getElementById(parent + "chkImagesOwner");
   
   if(el != null) arguments.IsValid = el.checked;
   else arguments.IsValid = true;
}

/** 
    Validate rdbtnDGR
    charitiesregister/register.aspx   
**/
function cvrdbtnDGR_ClientValidate(source, arguments)
{
    var parent = GetParentNodePrefix(source);
    var el = document.getElementById(parent + "rdbtnDGR_0");
        
    if(el.checked)
    {
        arguments.IsValid = true;
        return;
    }

    arguments.IsValid = false;
}

/** 
    Validate rdbtnPPR
    charitiesregister/register.aspx   
**/
function cvrdbtnPPR_ClientValidate(source, arguments)
{
    var parent = GetParentNodePrefix(source);
    var el = document.getElementById(parent + "rdbtnPPR_1");
        
    if(el.checked)
    {
        arguments.IsValid = true;
        return;
    }

    arguments.IsValid = false;
}

/** 
    Validate rdbtnAF
    charitiesregister/register.aspx   
**/
function cvrdbtnAF_ClientValidate(source, arguments)
{
    var parent = GetParentNodePrefix(source);
    var el = document.getElementById(parent + "rdbtnAF_1");
        
    if(el.checked)
    {
        arguments.IsValid = true;
        return;
    }

    arguments.IsValid = false;
}

/** 
    Validate rdbtnDGR and warning
    charitiesregister/register.aspx   
**/
function rdbtnDGR_Click(ev)
{
    var el = EventTriggerElement(ev);
    var parent = GetParentNodePrefix(el);
    
    if(el.id == parent + "rdbtnDGR_1")
        if(el.checked) alert("If you do not have DGR status, you cannot register.");
    
    return true;
}

/** 
    Validate rdbtnPPR and warning
    charitiesregister/register.aspx   
**/
function rdbtnPPR_Click(ev)
{
    var el = EventTriggerElement(ev);
    var parent = GetParentNodePrefix(el);
    
    if(el.id == parent + "rdbtnPPR_0")
        if(el.checked) alert("If you operate as a Prescribed Private Fund, you cannot register.");
    
    return true;
}

/** 
    Validate rdbtnAF and warning
    charitiesregister/register.aspx   
**/
function rdbtnAF_Click(ev)
{
    var el = EventTriggerElement(ev);
    var parent = GetParentNodePrefix(el);
    
    if(el.id == parent + "rdbtnAF_0")
        if(el.checked) alert("If you operate as an Ancillary Fund, you cannot register.");
    
    return true;
}

/** 
    Validate chklCategory
    charitiesregister/register.aspx  
    charities/charitydetails.aspx  
    admin/charitydetails.aspx   
**/
function cvchklCategory_ClientValidate(source, arguments)
{
    var parent = GetParentNodePrefix(source);
    var el = document.getElementById(parent + "chklCategory");
    var child;
    var x = 0;
    
    while((child = document.getElementById(parent + "chklCategory_"+x)) != null)
    {
        if(child.checked)
        {
            arguments.IsValid = true;
            return;
        }
        
        x++;
    }

    arguments.IsValid = false;
}

/** 
    Enable email validation
    charities/charitydetails.aspx  
    admin/charitydetails.aspx   
    kcclub/details.aspx 
**/
function txtEmail_OnKeyUp(ev)
{
    var el = EventTriggerElement(ev);
    var parent = GetParentNodePrefix(el);
    var elValidator;
    
    // any change in email fields activates validation
    elValidator = document.getElementById(parent + "rfvtxtEmail");
    elValidator.enabled = true;
    elValidator = document.getElementById(parent + "rfvtxtEmail2");
    elValidator.enabled = true;
    elValidator = document.getElementById(parent + "cmptxtEmail2");
    elValidator.enabled = true;

    return true;
}

/** 
    Enable password validation
    charities/charitydetails.aspx  
    admin/charitydetails.aspx   
    kcclub/details.aspx 
**/
function txtPassword_OnKeyUp(ev)
{
    var el = EventTriggerElement(ev);
    var parent = GetParentNodePrefix(el);
    var elValidator;
    var bVal = false;
    
    if(el.id == parent + "txtPassword")
    {
        if(el.value != "") bVal = true;
    }
    else
    {
        if(el.value != "") bVal = true;
        else if(document.getElementById(parent + "txtPassword").value !="") bVal = true;
    }
    elValidator = document.getElementById(parent + "rfvtxtPassword");
    elValidator.enabled = bVal;
    elValidator = document.getElementById(parent + "rfvtxtPassword2");
    elValidator.enabled = bVal;
    elValidator = document.getElementById(parent + "cmpvtxtPassword2");
    elValidator.enabled = bVal;
      
    return true;
}

/** 
    Apply MaxLength and set counter text
    charities/editproducts.aspx  
    admin/charityproduct.aspx 
**/
function ProdtxtDescription_OnKeyUp(ev)
{
    var el = EventTriggerElement(ev);
    
    // dont need parent prefix as pDescriptionCount does not runat server
    return SetTextLength(el.id, "pDescriptionCount", 1000);
}
                       
function cvchklSeason_ClientValidate(source, arguments)
{
    var parent = GetParentNodePrefix(source);
    var el = document.getElementById(parent + "chklSeason");
    var child;
    var x = 0;
    
    while((child = document.getElementById(parent + "chklSeason_"+x)) != null)
    {
        if(child.checked)
        {
            arguments.IsValid = true;
            return;
        }
        
        x++;
    }

    arguments.IsValid = false;
}

function cvchkProdImageOwner_ClientValidate(source, arguments)
{
   var parent = GetParentNodePrefix(source);
   var el = document.getElementById(parent + "chkProdImageOwner");
   
   if(el != null) arguments.IsValid = el.checked;
   else arguments.IsValid = true;
}

/**                             **/
/** give                        **/
/**                             **/
function lnkOccasion_OnMouseOver(ev, occasionid)
{
    var path = "../images/voucher/310x343px/";
    el = $('imgOccasion');
    
    el.setStyle('background-image','');
    switch(occasionid){
        case 1:
        img = 'happyanniversary';
        break
        case 2:
        img = 'happybirthday';
        break
        case 3:
        img = 'merrychristmas';
        break
        case 4:
        img = 'happyeaster';
        break
        case 5:
        img = 'fathers_day';
        break
        case 6:
        img = 'getwell';
        break
        case 7:
        img = 'good_karma';
        break
        case 8:
        img = 'happy_graduation';
        break
        case 9:
        img = 'hanuka';
        break
        case 10:
        img = 'housewarming';
        break
        case 11:
        img = 'just_because';
        break
        case 12:
        img = 'love';
        break
        case 13:
        img = 'mothers_day';
        break
        case 14:
        img = 'newbaby';
        break
        case 15:
        img = 'generic';
        break
        case 16:
        img = 'thankyou';
        break
        case 17:
        img = 'valentines';
        break
        case 18:
        img = 'happywedding';
        break
        case 19:
        img = 'condolences';
        break
        case 20:
        img = 'greatachievement';
        break
        case 21:
        img = 'engagement';
        break
        case 22:
        img = 'community';
        break
        case 23:
        img = 'happyholidays';
        break
        case 24:
        img = 'jobwelldone';
        break
        case 25:
        img = 'matchedgiving';
        break
        case 26:
        img = 'maternityleave';
        break
        case 27:
        img = 'retirement';
        break
        case 28:
        img = 'adminprofessionalsday';
        break
        default:
        img = 'generic';
        break        
    }
    
    if (window.ie){
        // ie
        el.setStyle('background-image','url('+path+img+'_w.jpg)');
        //el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+path+img+'_w.jpg)';
    }else{
        // ff
        //alert(path+img+'_w.jpg');
        el.setStyle('background-image','url('+path+img+'_w.jpg)');
    }
    
    return true;
}

function MoveNext_Give(ev, nextstep, currparam, currparamval, nextmode)
{	    
    if(nextstep != "")
    {
        var x = (location.href.indexOf("?")+1);
        var currquery = "";
        var query = "";
        var mode = "";
        var prev = "";
        var amt = "";
        var found = false;
           
        if (x > 0)
        {
	        currquery = location.href.substring(x);
    	    
	        x = currquery.indexOf("#");
	        if(x != -1) currquery = currquery.substring(0,x);
    	    
	         var temp1 = new Array();
            var temp2 = new Array();
            temp1 = currquery.split('&');

            for(var i=0; i<temp1.length ; i++)
            {
                temp2 = temp1[i].split('=');
                
                if(temp2[0] == currparam && currparam != "")
                {
                    if(query != "") query += "&";
                    query += currparam + "=" + currparamval;
                    found = true;
                }
                else if(temp2[0] == "m")
                    mode = temp2[1];
                else if(temp2[0] == "amt")
                {
                    if(temp2.length > 1)
                    amt = temp2[1];
                    else 
                    amt = "0.00";
                    
                    if(query != "") query += "&";
                    query += "amt="+amt;
                }
                else 
                {
                    if(query != "") query += "&";
                    query += temp1[i];
                }
            }            
        }
        
        if(!found && currparam != "")
        {
            if(query != "") query += "&";
            query += currparam + "=" + currparamval;
        }
        
        if(nextmode == "e")
        {
            if(query != "") query += "&";
            query += "m=e";
        }
            
       window.location = nextstep + ".aspx?"+query;
        return false;
    }
}

function cvAmount_ClientValidate(source, arguments)
{
   var parent = GetParentNodePrefix(source);
   var txt = document.getElementById(parent + "txtAmount");
   var vld = document.getElementById("spnValidation");
   
   arguments.IsValid = false;
   
   if(txt.value != "")
   {
        var filter  = /^[0-9]+\.[0-9][0-9]$/;
	    if (!filter.test(txt.value)) vld.innerHTML = "Please enter valid amount (including decimal point)<br />";
	    else if(txt.value == "0.00")  vld.innerHTML = "Please enter an amount<br />";
	    else arguments.IsValid = true;
    }
    else
    { 
        var chk;
        for(var i = 1; i <= 6; i++)
        {
            chk = document.getElementById(parent + "chkAmount"+i);
            
            if(chk.checked)
            {
                arguments.IsValid = true;
                break;
            }
        }
        
        if(!arguments.IsValid) vld.innerHTML ="Please select or enter an amount<br />";
    }
}

function chkAmount_Click(ev)
{
    var el = EventTriggerElement(ev);
    var parent = GetParentNodePrefix(el);
    
     var chk;
    for(var i = 1; i <= 6; i++)
    {
        chk = document.getElementById(parent + "chkAmount"+i);
        
         if(el.id != parent + "chkAmount"+i)
            chk.checked = false;
    }
    
    return true;
}

/**
   Check an Amount checkbox and fill textbox
   Used by: give/step3.aspx
**/
function enterkarmaamount_Load(txtID, amt)
{
    if(amt != "")
    {
        var txt = document.getElementById(txtID);
        var parent = GetParentNodePrefix(txt);
        
        var chk;
        for(var i = 1; i <= 6; i++)
        {
            chk = document.getElementById(parent+"chkAmount"+i);
            
            if( amt == chk.value)
            {
                chk.checked = true;
                return;
            }
        }
        
        if(txt != null) txt.value = amt;
    }
}

/**                              **/
/** give/step2.aspx          **/
/** give/step4.aspx          **/
/**                              **/
function vouchertext_OnKeyUp(ev, len, escape)
{ 
    var el = EventTriggerElement(ev);
    
    if(!escape)
        return SetTextLength(el.id,null, len);
    else
    {
        var elTxt = document.getElementById(el.id);
        var text = elTxt.value;
        if(text.length > len){
            elTxt.value = text.substr(0,len)
        }
    }
}

/**                             **/
/** redeem/search               **/
/**                             **/

function lnkCategory_Click(ev,catid,cat)
{
    var query = "";

    query = "type=ch&catid=" + catid;

    window.location = "result1.aspx?"+query;
    return false;
}

/**                             **/
/** karmaclubregister/register  **/
/** give/step5b                  **/
/**                             **/
function cvtxtDOB_ClientValidate(source, arguments)
{
    var parent = GetParentNodePrefix(source);
    var el = document.getElementById(parent + "txtDOB");
    if(el != null)
    {
        var input = el.value;
        // dd/mm/yyyy
        var year = input.substr(6,4) 
        var mth = input.substr(3,2) 
        var day = input.substr(0,2)
        var dt = new Date(year + "/" + mth + "/" + day);
        
        if(dt.getDate() != day)
             arguments.IsValid = false;
        else if(dt.getMonth() != mth-1)
            arguments.IsValid = false;//this is for the purpose JavaScript starts the month from 0
        else if(dt.getFullYear() != year)
            arguments.IsValid = false;
        else
           arguments.IsValid = true;
    }
    else arguments.IsValid = true;
}

    
  

/**                             **/
/** coporatekarma               **/
/**                             **/

function MoveNext_CorpKarma(nextstep, currparam, currparamval, nextmode)
{	    
    if(nextstep != "")
    {
        var x = (location.href.indexOf("?")+1);
        var currquery = "";
        var query = "";
        var mode = "";
        var prev = "";
        var amt = "";
        var found = false;
           
        if (x > 0)
        {
	        currquery = location.href.substring(x);
    	    
	        x = currquery.indexOf("#");
	        if(x != -1) currquery = currquery.substring(0,x);
    	    
	         var temp1 = new Array();
            var temp2 = new Array();
            temp1 = currquery.split('&');

            for(var i=0; i<temp1.length ; i++)
            {
                temp2 = temp1[i].split('=');
                
                if(temp2[0] == currparam && currparam != "")
                {
                    if(query != "") query += "&";
                    query += currparam + "=" + currparamval;
                    found = true;
                }
                else if(temp2[0] == "m")
                    mode = temp2[1];
                else 
                {
                    if(query != "") query += "&";
                    query += temp1[i];
                }
            }            
        }
        
        if(!found && currparam != "")
        {
            if(query != "") query += "&";
            query += currparam + "=" + currparamval;
        }
        
        if(nextmode == "e")
        {
            if(query != "") query += "&";
            query += "m=e";
        }
            
       window.location = nextstep + ".aspx?"+query;
        return false;
    }
}
    /**                             **/
    /** giftregistry/start.aspx    a**/
    /**                             **/
    function cvrgiftregStart_ClientValidate(source, arguments)
    {
       var parent = GetParentNodePrefix(source);
       var el = document.getElementById(parent + "txtRegistryCode");
       
       if(el.value == "")
       {
            if(document.getElementById(parent + "txtSearchName").value == "")
                arguments.IsValid = false;            
       }
    }
    
    
    /**                             **/
    /** giftregistry/step1.aspx    a**/
    /**                             **/
function txtName2_OnKeyUp(ev)
{
    var el = EventTriggerElement(ev);
    var parent = GetParentNodePrefix(el);
    var elValidator;
    var bVal = false;
    
    if(el.id == parent + "txtFName2")
    {
        if(el.value != "") bVal = true;
    }
    else
    {
        if(el.value != "") bVal = true;
        else if(document.getElementById(parent + "txtFName2").value !="") bVal = true;
    }
    
    elValidator = document.getElementById(parent + "rfvtxtFName2");
    elValidator.enabled = bVal;
    elValidator = document.getElementById(parent + "rfvtxtLName2");
    elValidator.enabled = bVal;
      
    return true;
}

function cvucFileUpload_ClientValidate(source, arguments)
{
    var parent = GetParentNodePrefix(source);
    var el = document.getElementById(parent + "ucFileUpload");
    if(el != null)
    {
          var imgPath = e1.value;
          alert(imgPath);
    }

//   arguments.Isvalid=true;
//   var imgpath = document.getElementById('ucFileUpload').value;
//   alert(imgpath);
//   if(imgpath != "")
//   {
//        // code to get File Extension..
//        var array = new Array;
//        array = imgpath.split("\\");
//        var arrayLength = array.length;
//        var imagePathSubString = array[arrayLength - 1];
//        var fileExt = imagePathSubString.substring(imagePathSubString.lastIndexOf(".")+1);      
//        alert(fileExt);
//        // Checking Extension
//        if(fileExt == "jpg" || fileExt == "jpeg" || fileExt == "gif" || fileExt == "bmp")
//            document.getElementById('ucimghldrImage').src = imgpath;

//        else
//        {
//            alert("Invalid File Format Selected");
//            document.getElementById('ucFileUpload').value = "";
//            return false;
//        }
//   }
}

