﻿// JScript File 
//*******************************************************************************//
//                                                                               //
// This file contains the javascript functions used in the SpreadCheer site only //
//                                                                               //
//*******************************************************************************//


function CountLength(source,args)
{   
 
    var chk = false;
    if(args.Value.length < 6 || args.Value.length > 32)
    {
 
        chk = false;
    }
    else 
    {
        chk = true;
    }
    args.IsValid = chk;
}

//This function is used on "Basket" Page to calculate the Paypal Currency Value
function Cvalue(ctrlCurrency,ctrlPrice,lblCurrency,hdnChangedCurrency)
{
  // missing relevant digits
    var fromR, toR, resultV, nVal,toIndex;
    var hdnCurrrency=document.getElementById(ctrlCurrency); 
    for(var k=0;k<=currency.length;k++)
    {
        if(currency[k]==hdnCurrrency.value)
        {
        toR = rate[k];
        toIndex=k;
        break;
        }
    }
    //  fromR = rate[4];
    for(var k=0;k<=currency.length;k++)
    {
        if(currency[k]=="INR")
        {
        fromR = rate[k];
        break;
        }
    } 
    var lblTotVoucherPrice=document.getElementById(ctrlPrice);
    nVal = lblTotVoucherPrice.innerHTML;
    if ( IsNumeric(nVal) == false ) 
    {
        alert("amount to multiply is not a number\n\nyou can only use\n\n1234567890 and . (dot)");
    }
    resultV = nVal * ( toR / fromR );
    resultV = resultV.toFixed(2); 
    var lblCurrnecy=document.getElementById(lblCurrency);
    var hdnChangedCurrency=document.getElementById(hdnChangedCurrency);
    if(hdnChangedCurrency!=null)
    hdnChangedCurrency.value=comma(resultV);
    alert(hdnChangedCurrency.value)
    lblCurrnecy.innerHTML = "   " + comma(resultV) + " " + currency[toIndex];
}
   
// This  function is used on "PersonalizeVoucher" Page to calculate the Currency Change Value  
function CvalueForDropown(ctrlCurrency,ctrlPrice,lblCurrency)
{
    // missing relevant digits
    var fromR, toR, resultV, nVal,toIndex;
    var ddlCurrrency=document.getElementById(ctrlCurrency); 
    for(var k=0;k<=currency.length;k++)
    {
        if(currency[k]==ddlCurrrency.options[ddlCurrrency.selectedIndex].value)
        {
        toR = rate[k];
        toIndex=k;
        break;
        }
    }
    if(toR == 0)
    toR = 1
    
    //  fromR = rate[4];
    for(var k=0;k<=currency.length;k++)
    {
        if(currency[k]=="INR")
        {
        fromR = rate[k];
        break;
        }
    }
    
    var ddlPrices=document.getElementById(ctrlPrice);
    nVal = ddlPrices.options[ddlPrices.selectedIndex].value;
    
    if ( IsNumeric(nVal) == false ) 
    {
    alert("amount to multiply is not a number\n\nyou can only use\n\n1234567890 and . (dot)");
    }
    
    resultV = nVal * (fromR / toR );
    resultV = resultV.toFixed(2);
    var lblCurrnecy=document.getElementById(lblCurrency);
    lblCurrnecy.innerHTML = "   " + comma(resultV) + " " + currency[toIndex];
//    alert(lblCurrnecy.innerHTML)
    if(ddlPrices.selectedIndex==0 || ddlCurrrency.selectedIndex==0)
    lblCurrnecy.innerHTML =""
}
    
function comma(num)
{

     var n = Math.floor(num);
     var myNum = num + "";
     var myDec = ""
     
     if (myNum.indexOf('.',0) > -1){
      myDec = myNum.substring(myNum.indexOf('.',0),myNum.length);
     }
     var arr=new Array('0'), i=0; 
     while (n>0) 
       {arr[i]=''+n%1000; n=Math.floor(n/1000); i++;}
     arr=arr.reverse();
     for (var i in arr) if (i>0) //padding zeros
       while (arr[i].length<3) arr[i]='0'+arr[i];
     return arr.join() + myDec;
}

function IsNumeric(strString)
{
   var strValidChars = "0123456789.";
   var strChar;
   var blnResult = true;

   for (i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
      {
         blnResult = false;
      }
   }
   return blnResult;
}

// This Function is used as validator for field where only Integer is allowed to type
function CheckKeyPressForIntegerOnly(evt)
{   
    try
    {   var charCode;
        if(navigator.appName == "Microsoft Internet Explorer")
        {
            if (!evt)  // IE uses event object
            evt=event;
            charCode=evt.keyCode?evt.keyCode:evt.which;
            if (charCode > 31 && (charCode < 48 || charCode > 57))
            {
            event.returnValue =false;
            }
            else
            {                
            event.returnValue =true;
            }     
        }
        else
        {
            charCode = (evt.which) ? evt.which : event.keyCode;        
            if (charCode > 31 && (charCode < 48 || charCode > 57))
            {
                return false;
            }
            else
            {                
                return true;
            }  
        }              
    }
    catch(e)
    {
    }
}
function CheckKeyPressForIntegerhifenOnly(evt)
{   
    try
    {   var charCode;
        if(navigator.appName == "Microsoft Internet Explorer")
        {
            if (!evt)  // IE uses event object
            evt=event;
            charCode=evt.keyCode?evt.keyCode:evt.which;
            if (charCode > 31 && (charCode < 45 || charCode > 57 || charCode ==46 || charCode ==47))
            {
            event.returnValue =false;
            }
            else
            {                
            event.returnValue =true;
            }     
        }
        else
        {
            charCode = (evt.which) ? evt.which : event.keyCode;        
            if (charCode > 31 && (charCode < 48 || charCode > 57))
            {
                return false;
            }
            else
            {                
                return true;
            }  
        }              
    }
    catch(e)
    {
    }
}

// This function is as validator where except tab no key type is allowed.
function BlockClickExceptTab(e)
{
    if(e.keyCode==9)
    {
        e.returnValue =true;
        return true;
    }
    else
    {
        e.returnValue =false;
        return false;
     }   
}
//Mobile Delete disable 
function doCheck()
{
 var keyCode = (event.which)?event.which:event.keyCode;
 if ((keyCode == 8) || (keyCode == 46))
 event.returnValue = false;
} 


// This Funtion is used to fill the CountryCode value according to the ddlCountry value selected.
function FillCountryCode(Country,TextCountryCode,TxtMobileNo,MobileNo)
{       
    var ddlCountry=document.getElementById(Country);
    var CountryCode;
    CountryCode = CountryCodes[ddlCountry.selectedIndex];
    var txtCountryCode=document.getElementById(TextCountryCode);
    var txtMobileNumber=document.getElementById(TxtMobileNo);     
    txtCountryCode.value="+" + CountryCode;
    txtMobileNumber.value=MobileNo;
}


// This validator function is used to check if the text entered for captcha is correct or not.
function ConfirmCaptcha(Source, args)
{    
    var ele1=document.getElementById(Source.CaptchaTextbox).value; 
    var svalue=Source.CaptchaImageText;
    if(ele1==svalue)
    {
        args.IsValid = true;
    }
    else
    {
        if(Source.ShowErrorMessage=="true")
        {
            Source.innerHTML = "Incorrect Code";
        }
        else
        Source.innerHTML = "";
        args.IsValid = false; 
        return;
    }     
}

// This function is used on "UserRegistration" Page to get the no of days according to Year, Month value selected.
function BindDateOfBirthDays(ctrllistDay,ctrllistYear,ctrllistMonth,ctrlmsgday)
{
    //ddListDay.Items.Insert(0, new ListItem("Day", ""));
    var ddlListday=document.getElementById(ctrllistDay);
    var ddlListYear=document.getElementById(ctrllistYear);
    var ddlListMon=document.getElementById(ctrllistMonth);
    var lblmsg=document.getElementById(ctrlmsgday);
    if(ddlListYear.options[ddlListYear.selectedIndex].value=="")
    {
        lblmsg.innerHTML="Please select a valid year.";
    }
    else if(ddlListMon.options[ddlListMon.selectedIndex].value=="")
    {
        ddlListMon.focus();
        lblmsg.innerHTML="";
    }
    else
    {
        lblmsg.innerHTML="";
        var day = checkDayOfMonth(ddlListYear.options[ddlListYear.selectedIndex].value, ddlListMon.options[ddlListMon.selectedIndex].value);
        var i;
        ddlListday.disabled =false;
        ddlListday.focus();
        for (var j=ddlListday.options.length-1; j>=1; j--)
        {
            ddlListday.options[j] = null;
        }
        for (i = 1; i <= day; i++)
        {
            var opt=new Option(i, i,false,false)
            if (navigator.appName == "Microsoft Internet Explorer")
            {
                ddlListday.add(opt);
            }
            else
            {
                ddlListday.add(opt,null);
            }
        }
        ddlListday.options[0].selected=true;
    }
}
  
// Returns the Days for given Year and Month.
function checkDayOfMonth(Year, Month)
{           
    if (1 == Month || 3 == Month || 5 == Month || 7 == Month || 8 == Month ||
    10 == Month || 12 == Month)
    {
        return 31;
    }
    else if (2 == Month)
    {
        // Check for leap year
        if (0 == (Year % 4))
        {
            // If date is divisible by 400, it's a leap year.
            // Otherwise, if it's divisible by 100 it's not.
            if (0 == (Year % 400))
            {
                return 29;
            }
            else if (0 == (Year % 100))
            {
                return 28;
            }
            else
            {
                // Divisible by 4 but not by 100 or 400
                // so it leaps
                return 29;
            }

        }
        // Not a leap year
        return 28;
    }
    else
    {
        return 30;
    }
}

// This function is used on "UserRegistration" page to save the Day value in hidden field.
function SaveDay(ctrllistDay,ctrlhdnDay)
{
    var ddlListday=document.getElementById(ctrllistDay);
    var hdnDay=document.getElementById(ctrlhdnDay);
    hdnDay.value=ddlListday.options[ddlListday.selectedIndex].value;
}
 
// This function is used on "UserRegistration" Page to reset the Day value that was earlier saved in hidden field.    
function SetDay(ctrllistDay,ctrlhdnDay)
{
        var ddlListday=document.getElementById(ctrllistDay);
        var hdnDay=document.getElementById(ctrlhdnDay);
        var i;      
        for (i = 1; i <= ddlListday.options.length; i++)
        {
        if(ddlListday.options[i].value==hdnDay.value)
        {
       
           ddlListday.options[i].selected=true;
           return; 
        }
        }            
}

// This function is used on "UserRegistration" Page to reset the Day value that was earlier saved in hidden field.    
function BindDateOfBirthDayAgain(ctrllistDay,ctrllistYear,ctrllistMonth,ctrlmsgday)
{
    //ddListDay.Items.Insert(0, new ListItem("Day", ""));
    var ddlListday=document.getElementById(ctrllistDay);
    var ddlListYear=document.getElementById(ctrllistYear);
    var ddlListMon=document.getElementById(ctrllistMonth);
    var lblmsg=document.getElementById(ctrlmsgday);
    if(ddlListYear.options[ddlListYear.selectedIndex].value!="" && ddlListMon.options[ddlListMon.selectedIndex].value!="")
    {
        lblmsg.innerHTML="";
        var day = checkDayOfMonth(ddlListYear.options[ddlListYear.selectedIndex].value, ddlListMon.options[ddlListMon.selectedIndex].value);
        var i;
        ddlListday.disabled =false;
        for (i = 1; i <= day; i++)
        {
            var opt=new Option(i, i,false,false)
            if (navigator.appName == "Microsoft Internet Explorer")
            {
                ddlListday.add(opt);
            }
            else
            {
                ddlListday.add(opt,null);
            }
        }
        ddlListday.options[0].selected=true;
    }
}
        
// This function is used to show the LightBox on OrderHistroy Reports.        
function showBox(divid)
{
    var width = document.documentElement.clientWidth + document.documentElement.scrollLeft; 
    //        alert( document.documentElement.scrollHeight);
    var layer = document.createElement('div');
    layer.style.zIndex = 2;
    layer.id = 'layer';
    layer.style.position = 'absolute';
    layer.style.top = '0px';
    layer.style.left = '0px';
    layer.style.height = document.documentElement.scrollHeight + 'px';
    layer.style.width = width + 'px';
    layer.style.backgroundColor = 'black';
    layer.style.opacity = '.6';
    layer.style.filter += ("progid:DXImageTransform.Microsoft.Alpha(opacity=60)");
    document.body.appendChild(layer);  

    var div = document.getElementById(divid);
    div.style.zIndex = 3;
    div.style.position = (navigator.userAgent.indexOf('MSIE') > -1) ? 'absolute' : 'fixed';
    div.style.top = '100px';
    div.style.left = (width / 2) - (890 / 2) - 20 + 'px'; 
    div.style.height = '300px';
    div.style.width = '890px';
    div.style.backgroundColor = 'white';
    div.style.border = '2px solid silver';
    div.style.padding = '20px';
    div.style.visibility = "visible";
    div.style.display = "block";
}

// This funciton is used to hide the LightBox on OrderHistroy Page.
function HideBox(divid)
{
    var Div = document.getElementById(divid);
    Div.style.visibility = "hidden";
    Div.style.display = "none";
    document.body.removeChild(document.getElementById('layer'));
}

// This funciton is used to validate the FileUpload control for given extension and if no file is saved earlier.
function ValidateFileUploadR(Source, args)
{
    var imgSrc=document.getElementById(Source.BrandLogo); 
    var imsgextension= imgSrc.src.substring(imgSrc.src.lastIndexOf('.') + 1).toLowerCase();
    var fuData = document.getElementById(Source.FUCategoryImg);
    var FileUploadPath = fuData.value;     
    if(FileUploadPath =='')
    {
    // There is no file selected
        if(imgSrc!=null && imgSrc.src!="" && imsgextension!="aspx")
        {
            args.IsValid = true;
        }
        else
        {
            args.IsValid = false;
        }
    }
    else
    {
        var Extension = FileUploadPath.substring(FileUploadPath.lastIndexOf('.') + 1).toLowerCase();
        if (Extension == "jpg" || Extension == "gif" || Extension == "png")
        {
            args.IsValid = true; // Valid file type
        }
        else
        {
            args.IsValid = false; // Not valid file type
        }
    }
} 

// This funciton is Used to calucate the TextMessage char length on keypress    
function wordcountMessageLength(e,ctrltxtMessage,ctrllblMessage,ctrltxtCharactersLeft)
{
    var DivCharacterLength = 12;
    var NewLine ="<br/>";
    var MaxLength = 100;
    //try
    {
        var text=document.getElementById(ctrltxtMessage).value;
        document.getElementById(ctrltxtMessage).value = text.substring(0,MaxLength);
        
        var PersonalMessageText = document.getElementById(ctrltxtMessage).value;
        var PersonalMessageTextLength = PersonalMessageText.length;
        var MoreCharacterAllowedLength = MaxLength - PersonalMessageTextLength;
        
        var Part1 = "";
        var Part2 = "";
        var TempString = "";
        var ArrSplit = new Array(PersonalMessageTextLength / DivCharacterLength);
        if(PersonalMessageTextLength > DivCharacterLength)
        {
            var RowPointer;
            for(RowPointer = 0; RowPointer < PersonalMessageTextLength / DivCharacterLength - 1; RowPointer++)
            {
                if(RowPointer == 0)
                {
                    ArrSplit[0] = PersonalMessageText.substring(RowPointer * DivCharacterLength, DivCharacterLength);
                }
                else
                {
                    Part1 = PersonalMessageText.substring(RowPointer * DivCharacterLength);
                    if(Part1.length > DivCharacterLength)
                    {
                        Part1 = Part1.substring(0, DivCharacterLength);
                        Part2 = Part1.substring(DivCharacterLength);
                    }
                    ArrSplit[RowPointer] = Part1;
                }
            }
            ArrSplit[RowPointer] = Part1;
        }
        else
        {
            ArrSplit[0] = PersonalMessageText;
        }

        document.getElementById(ctrllblMessage).innerHTML = ArrSplit.join("<br>");
         
        if(MoreCharacterAllowedLength <= 0)
        {
            if (!e)  // IE uses event object
            e=event;
            key=e.keyCode?e.keyCode:e.which;
            if (key == 8)
            {
                document.getElementById(ctrltxtCharactersLeft).value=(MoreCharacterAllowedLength - 1);
                if (navigator.appName == "Microsoft Internet Explorer")
                {
                    e.returnValue =true;
                }
                else
                {
                    return true;
                }
            }
            else
            {
                if (navigator.appName == "Microsoft Internet Explorer")
                {
                    e.returnValue =false;
                }
                else
                {
                    return false;
                }
            }
        }
        else
        {
            document.getElementById(ctrltxtCharactersLeft).value=(MoreCharacterAllowedLength);
            if (navigator.appName == "Microsoft Internet Explorer")
            {
                e.returnValue =true;
            }
            else
            {
                return true;
            }
        }
    }
    //catch(e)
    {
    }
}

// This funciton is Used to calucate the TextMessage char length on keypress    
function wordcountMessage(e,ctrltxtMessage,ctrllblMessage,ctrltxtCharactersLeft) 
{
try
{
    var text=document.getElementById(ctrltxtMessage).value;
    document.getElementById(ctrltxtMessage).value = text.substring(0,100);

    var ele = document.getElementById(ctrltxtMessage).value;
    var ele1=ele.replace(/\n/g,"<br>");
    document.getElementById(ctrllblMessage).innerHTML=ele1;
    var count=ele1.length;
    var balance=100-count;
    
    if(balance<0)
    {
        if (!e)  // IE uses event object
        e=event;
        key=e.keyCode?e.keyCode:e.which;
        if (key == 8)
        {
            document.getElementById(ctrltxtCharactersLeft).value=(100-count);
            if (navigator.appName == "Microsoft Internet Explorer")
            {
                e.returnValue =true;
            }
            else
            {
                return true;
            }
        }
        else
        {
            if (navigator.appName == "Microsoft Internet Explorer")
            {
                e.returnValue =false;
            }
            else
            {
                return false;
            }
        }
    }
    else
    {
        document.getElementById(ctrltxtCharactersLeft).value=(100-count);
        if (navigator.appName == "Microsoft Internet Explorer")
        {
            e.returnValue =true;
        }
        else
        {
            return true;
        }
    }
}
catch(e)
{
}
} 
    
// This function is used to check the max length of the TextMessage
function ValidateMessageLength(Source, args)
{    
    var ele1=document.getElementById(Source.txtMessage).value; 
    if(ele1.length==0)
    {
        Source.innerHTML = "*";
        args.IsValid = false; 
        return;
    }
    var count=ele1.length;
    if(count<=100)
    {
        args.IsValid = true;
    }
    else
    { 
        var balcoun=100;  
        Source.innerHTML = "<br/>Personal Message text Can only be up to "+ balcoun +"  characters";
        args.IsValid = false; 
        return;
    }    
}
    
// This funiton is used to Enable/Disable control on Change of DeliveryStatus selected.    
function ChangeDelivery(ctrloptVDelivery,ctrltxtDateOfDelivery,ctrlddlHours,ctrlrfvYear, imgCalender)
{
    var elementRef = document.getElementById(ctrloptVDelivery);
    var radioButtonListArray = elementRef.getElementsByTagName('input');
    for (var x = 0; x < radioButtonListArray.length; x ++)
    {
        if (radioButtonListArray[x].checked)
        {
        SelectValue= radioButtonListArray[x].value;
        }
    }
    if(SelectValue=="Now")
    {
        document.getElementById(ctrltxtDateOfDelivery).disabled=true;  
        document.getElementById(ctrltxtDateOfDelivery).value="";      
        if (navigator.appName == "Microsoft Internet Explorer")
        {
        document.getElementById(imgCalender).onclick=function( ) {};
        }
        else
        {            
        document.getElementById(imgCalender).setAttribute("onclick","javascript:void");
        }
        document.getElementById(ctrlddlHours).disabled=true;
        document.getElementById(ctrlddlHours).options[0].selected=true;
        var validator = document.getElementById(ctrlrfvYear);
        ValidatorEnable(validator, false);
    }
    if(SelectValue=="Later")
    {
        document.getElementById(ctrltxtDateOfDelivery).disabled=false;
        if (navigator.appName == "Microsoft Internet Explorer")
        {
            var dd=document.getElementById(ctrltxtDateOfDelivery);
            var img=document.getElementById(imgCalender);
            document.getElementById(imgCalender).onclick=function( ) {showCalendarControl(dd ,img); };
        }
        else
        {   
            var str="showCalendarControl(document.getElementById('"+ ctrltxtDateOfDelivery +"'),document.getElementById('"+imgCalender+"'));"
            document.getElementById(imgCalender).setAttribute("onclick",str);                  
        }
        document.getElementById(ctrlddlHours).disabled=false;
        var validator = document.getElementById(ctrlrfvYear);
        ValidatorEnable(validator, true);
    }
}  

// This funciton is used to overcome the FireFox bug,( where we can't press enter key in a Multiline TextBox).
function WebForm_FireDefaultButton(event, target) 
{
//event.srcElement doesn't work in FF so we check whether
//it or event.target exists, using whichever is returned
var element = event.target || event.srcElement;

if (event.keyCode == 13 &&
!(element &&
element.tagName.toLowerCase() == "textarea")) 
{
var defaultButton;
if (__nonMSDOMBrowser) 
{
defaultButton = document.getElementById(target);
} 
else 
{
defaultButton = document.all[target];
}
if (defaultButton && typeof defaultButton.click != "undefined") 
{
defaultButton.click();
event.cancelBubble = true;
if (event.stopPropagation) 
{
event.stopPropagation();
}
return false;
}
}
return true;
}
// Function to Clear the "Default Text in TextBox
function clearText(TextBoxID) {
    document.getElementById(TextBoxID).value = "";
    }
function resetText(TextBoxID) {
    if(document.getElementById(TextBoxID).value == "")
    document.getElementById(TextBoxID).value = "Search Text..."
    }        
    