
var masterClientID;
var submasterClientID;
var clientID;
var LayerOnClose=null;

// Sets the prefix clientID for master
function SetMasterClientID(ID)
{
  if(ID.lastIndexOf("_") > 0)  
    masterClientID = ID.substring(0,ID.lastIndexOf("_") + 1);
}

// Sets the prefix clientID for sub master
function SetSubMasterClientID(ID)
{
  if(ID.lastIndexOf("_") > 0)  
    submasterClientID = ID.substring(0,ID.lastIndexOf("_") + 1);
}

// Sets the prefix clientID for each page
function SetClientID(ID)
{
  if(ID.lastIndexOf("_") > 0)  
    clientID = ID.substring(0,ID.lastIndexOf("_") + 1);
}


//to validate login for an User
function AdminValidateLogin()
{
    document.getElementById(clientID+"divLoginError").innerHTML = "";
    document.getElementById(clientID+"errortxtUserName").innerHTML = "";
    document.getElementById(clientID+"errortxtPassword").innerHTML = "";
    
    var errcode = new Array(2);
    //var errcode1 = ValidateRequired("txtUserName", invalidUserName, "master");
    if(ValidateRequired("txtUserName", emptyLoginUser, "client"))
        errcode[0] = ValidateEmail("txtUserName", invalidLoginUser, "client");
    else
        errcode[0] = false;
        
    errcode[1] = ValidateRequired("txtPassword", emptyLoginPassword, "client");
    
    var i=0;    
    var errorVal = true;
    for(i=0; i<errcode.length; i++)
    {   
        if(!errcode[i])
        {
            errorVal = false;
            break;
        }
    }
    
    if(!errorVal)
    {
        return false;
    }
    else
    {
        return true;       
    }
}

//Function used to validate contact us page
function ValidateComment()
{
    var errcode= new Array(4);
    
    if(ValidateSpecialChars("txtCommentFirstName", invalidAcFirstName, "client", "name"))                 
        errcode[0] = ValidateRequired("txtCommentFirstName", emptyAcFirstName, "client");
    else
        errcode[0] = false;
        
    if(ValidateSpecialChars("txtCommentLastName", invalidAcLastName, "client", "name")) 
        errcode[1] = ValidateRequired("txtCommentLastName", emptyAcLastName, "client");                         
    else
        errcode[1] = false;
        
    if(ValidateRequired("txtCommentEmail", invalidUserName, "client"))
        errcode[2] = ValidateEmail("txtCommentEmail", invalidEmailUserName, "client");
    else
        errcode[2] = false;
    
    if(ValidateRequired("txtCommentPhone", emptyAcPhone, "client"))                  
        errcode[3] = ValidatePhone("txtCommentPhone", invalidAcPhone, "client");
    else
        errcode[3] = false;
        
                document.getElementById(clientID+"errortxtCommentComments").innerHTML="";
                var controlID = clientControlID("client","txtCommentComments");
                var textareaValue = document.getElementById(controlID).value;
                if(textareaValue.length >=500)
                {
                   setErrorMessage(textarealength,"txtCommentComments","client",false);
                    return false;
                }
            
    var i=0;    
        var errorVal = true;
        for(i=0; i<errcode.length; i++)
        {   
            if(!errcode[i])
            {
                errorVal = false;
                break;
            }
        }
        
        if(!errorVal)
            return false;
        else
            return true;
}

//function to Clear contact page
function ClearComment()
{
    document.getElementById(clientID+"txtCommentFirstName").value="";
    document.getElementById(clientID+"txtCommentLastName").value="";
    document.getElementById(clientID+"txtCommentEmail").value="";
    document.getElementById(clientID+"txtCommentPhone").value="";
    document.getElementById(clientID+"txtCommentComments").value="";
    document.getElementById(clientID+"errortxtCommentFirstName").innerHTML=""
    document.getElementById(clientID+"errortxtCommentLastName").innerHTML=""
    document.getElementById(clientID+"errortxtCommentEmail").innerHTML=""
    document.getElementById(clientID+"errortxtCommentPhone").innerHTML=""
    document.getElementById(clientID+"errortxtCommentComments").innerHTML=""
    return false;
}
// Required Field validation
function ValidateRequired(controlName,errorMessage,clientIDDetail)
{
    var errorCode=true;    
    var controlID = clientControlID(clientIDDetail,controlName);          
    
    var controlObject  = document.getElementById(controlID);
    
    errorCode = IsEmpty(controlObject);
    
    if(!errorCode)
    {
        setErrorMessage(errorMessage,controlName,clientIDDetail,false);        
        return false;
    }
    else
    {   //SetErrorColor(controlID, true);
        setErrorMessage(errorMessage,controlName,clientIDDetail,true);
        return true;   
    }    
}

//Email Validation
function ValidateEmail(controlName,errorMessage,clientIDDetail) //used in code behind
{
    var controlID = clientControlID(clientIDDetail,controlName);
    var emailValue = document.getElementById(controlID).value;
    var spaceValCheck = 0;
    
    //////////////////////////////////////////// Modified by aneston Date:01/23/2008 for checking space while validating
    for (z = 0; z < emailValue.length; z++) 
    { 
        var Char = emailValue.charAt(z);
        if(Char==' ')
        {
            spaceValCheck++;
            break;
        }        
    }    
    ///////////////////////////////////////////
    
    var atTheRate=emailValue.indexOf("@");
    var atTheRateCheck = emailValue.substring(atTheRate+1,emailValue.length).indexOf("@");            
    var dot=emailValue.lastIndexOf(".");
    var domain=emailValue.length-1;
    if (atTheRate<1 || dot-atTheRate<2 || domain-dot>3 || domain-dot<2 || atTheRateCheck!=-1 || spaceValCheck!=0) 
    {
        //Handle error message and display of error messages here
        setErrorMessage(errorMessage,controlName,clientIDDetail,false);
        return false;
    }
    else
    {
        //handle else part of error messages.
        setErrorMessage(errorMessage,controlName,clientIDDetail,true);
        return true;        
    }
}

//Dropdown List validation
function ValidateDropDown(controlName,errorMessage,clientIDDetail)
{
    var controlID = clientControlID(clientIDDetail,controlName);
    var dropdown = document.getElementById(controlID);
    var selectedIndex = dropdown.selectedIndex;
    
    if(selectedIndex==0)
    {
        //Handle error message and display of error messages here
        setErrorMessage(errorMessage,controlName,clientIDDetail,false);
        return false; 
    }
    else
    {
        //handle else part of error messages.
        setErrorMessage(errorMessage,controlName,clientIDDetail,true);
        return true;
    }
}

//City, State, Country Validation
function ValidateCityStateCountry(controlName, errorMessage, clientIDDetail)
{
    var errorCode=true;
    var controlID = clientControlID(clientIDDetail,controlName);

    if(document.getElementById(controlID).value!="")
    {
        errorCode=IsString(controlID);
        if(!errorCode)
            {    
                //Handle error message and display of error messages here
                setErrorMessage(errorMessage,controlName,clientIDDetail,false);
                return false;
            }
             else
                setErrorMessage(errorMessage,controlName,clientIDDetail,true);
    }
    return errorCode;
}

//Zipcode validation
function ValidateZip(controlName, errorMessage, clientIDDetail)
{
    var errorCode=true;
    var controlID = clientControlID(clientIDDetail,controlName);
    errorCode = IsZip(controlID);
    if(!errorCode)
    {    
      //Handle error message and display of error messages here
        setErrorMessage(errorMessage,controlName,clientIDDetail,false);
        return false;
    }
    else
      setErrorMessage(errorMessage,controlName,clientIDDetail,true);

return errorCode;
}

//Phone, Mobile, Fax validation
function ValidatePhone(controlName, errorMessage, clientIDDetail)
{   //modified my divagar on 1-29-2008 BUG ID:MPort67
    var nonValidPhoneCharsRegEx = "`'_.~!#$%^\&*{\"}|:<>?=[];,";
    var controlID = clientControlID(clientIDDetail,controlName);
    var charValue = document.getElementById(controlID).value;    
    var finalTxtVal = "";
    
    for (i=0; i <= charValue.length-1; i++)
        {
            var txtValValid = charValue.charAt(i);
        
            if (numRegEx.test(txtValValid))
                finalTxtVal += txtValValid; 
        }
    
    //if(finalTxtVal.length == 10)
    //{
        for (i = 0; i < charValue.length; i++) 
        { 
            Char = charValue.charAt(i); 
            if (!(nonValidPhoneCharsRegEx.indexOf(Char) == -1) || noalpha.test(Char))
            {           
                //Handle error message and display of error messages here
                setErrorMessage(errorMessage,controlName,clientIDDetail,false);
                return false;
            }
            else
            {
                //handle else part of error messages.
                setErrorMessage(errorMessage,controlName,clientIDDetail,true);
            }
        }
    //}
    //else
    //{
    //    //Handle error message and display of error messages here
    //    setErrorMessage(errorMessage,controlName,clientIDDetail,false);
    //    return false;
    //}
    return true;
}


var decimalRegEx=/^[0-9]+$/;
//Function for validating numeric values
function validateNumber(controlName, errorMessage, clientIDDetail)
{	
    var controlID = clientControlID(clientIDDetail,controlName);
    var charValue = document.getElementById(controlID).value; 
    
	var isNumber = decimalRegEx.test(charValue);	
	if(!isNumber) 
	{      
	    setErrorMessage(errorMessage,controlName,clientIDDetail,false);   
        return false;
    }
    else
    {
        setErrorMessage("",controlName,clientIDDetail,true);
        return true;
    }
}


// Checks if the control has got any value
function IsEmpty(controlID)
{
    var textVal = controlID.value;
    var count = 0;
    
    if(textVal.charAt(0) != " ")
    {
        for (i=0; i <= textVal.length-1; i++)
        {
            var textValValid = textVal.charAt(i);
            
            if (textValValid == " ")
                count += 1;        
        }
    }
    else
    {
        return false;
    }
    
    if (count == textVal.length)
        return false;
    else
        return true;
}

//checks whether the control with the given id has string in a correct format
function IsString(control)
{
    var controlObject  = document.getElementById(control);
    var isValid = cityRegEx.test(controlObject.value);
    if(!isValid)    
       return false;
    else
       return true;    
}

//checks whether the control with the given id has a valid zip
function IsZip(control)
{
    var controlObject  = document.getElementById(control);
    var isNumber = zipRegEx.test(controlObject.value);
    if(!isNumber)          
        return false;
    else
      return true;       
}

//Special characters validation
function ValidateSpecialChars(controlName, errorMessage, clientIDDetail, condition)
{
    var controlID = clientControlID(clientIDDetail,controlName);
    
    var nonValidCharsRegEx = "`'~!@#$%^\&*()-_+{\"}|:<>?/=[];,.\\";
    var nonValidCityCharsRegEx = "'~!@#$%^\&*()-_+{\"}|:<>?/=[];,\\";
    var nonValidUserIdRegEx = "'~!@#$%^\&*()-_+{\"}|:<>?/=[];,\\"; 
    var nonValidNameRegEx = "~!@#$%^\&*()-_+{\"}|:<>?/=[];,\\1234567890"; 
    var nonValidCompanyRegEx = "~!@#$%^\&*()-_+{\"}|:<>?/=[];,\\";
    var nonValidEmailCharsRegEx = "`'~!#$%^\&*()+-{\"}|:<>?/=[];,\\";
    var nonValidOthersCharsRegEx = "`'~!@#$%^\&*()_+{\"}|:<>?/=[];\\1234567890"; 
    var nonValidShipperRegEx = "~!@#$%^\&*()-_+{\"}|:<>?/=[];,\\1234567890";     
    var nonValidTitleRegEx = "`'~!@#$%^\*()-_+{\"}|:<>?=[];,\\";
    var nonValidUserNameRegEx = "`~!#$%^&*()-+={\"}[]'|:/?<>; ,";
    var nonValidNameSpaceRegEx = "~!@#$%^\&*()-_+{\"}|:<>?/=[];,\\1234567890 ";     //for Name does not includes space also
    var nonValidSubdomainRegEx = "'.`~!@#$%^\&*()-_+{\"}|:<>?/=[];,\\1234567890";  //sub domain exp
    var controlID = "";  
    if(clientIDDetail == "")
        controlID = controlName;
    else
        controlID = clientID + controlName;        
    var charValue = document.getElementById(controlID).value;    
    var charRegEx = "";
    var finalTxtVal = "";
    
    switch(condition)
        {
          case "all":       charRegEx = nonValidCharsRegEx;
          break;
          case "dot":       charRegEx = nonValidCityCharsRegEx;
          break;
          case "userid":    charRegEx = nonValidUserIdRegEx; 
          break;          
          case "name":      charRegEx = nonValidNameRegEx; 
          break;
          case "company":   charRegEx = nonValidCompanyRegEx; 
          break;          
          case "email":     charRegEx = nonValidEmailCharsRegEx;
          break;
          case "others":    charRegEx = nonValidOthersCharsRegEx;
          break;
          case "shipper":   charRegEx = nonValidShipperRegEx;
          break;
          case "title":     charRegEx = nonValidTitleRegEx;
          break;
          case "username":  charRegEx = nonValidUserNameRegEx;
          break;
          case "name_space":  charRegEx = nonValidNameSpaceRegEx;
          break;
          case "subdomain": charRegEx = nonValidSubdomainRegEx; 
          break;
          
        }
           
    for (i = 0; i < charValue.length; i++) 
        { 
            Char = charValue.charAt(i);
            if (!(charRegEx.indexOf(Char) == -1))
            {  
                //Handle error message and display of error messages here
                setErrorMessage(errorMessage,controlName,clientIDDetail,false);
                return false;  
                break;               
            }
            else
            {
                //handle else part of error messages.
                setErrorMessage(errorMessage,controlName,clientIDDetail,true);                
            }
        }
    return true;    
}

// sets the clientID according to master, submaster or contentpage
function clientControlID(ID,controlName)
{
    var controlID;
    switch(ID)
        {
            case "master":      controlID = masterClientID + controlName;
            break;
            
            case "submaster":   controlID = submasterClientID + controlName;
            break;
            
            case "client":      controlID = clientID + controlName;
            break;
            
            default:            controlID = controlName;
            break;
        }  
    return controlID;
}

//sets or clears the error message to the corresponding asp control
function setErrorMessage(errorMsg,controlName,clientIDDetail,caseVal)
{
    var controlNameVal = "error" + controlName; 
    var controlID = clientControlID(clientIDDetail,controlNameVal);
    
    if(!caseVal)
    {    
        document.getElementById(controlID).innerHTML="<span class='errormsg'>"+errorMsg+"</span>";
        return false;
    }
    else
    {
        document.getElementById(controlID).innerHTML="";
        return true;
    }
}

//Tr color selection in layer option
function selectColorLayer()
{   
    for(i=0; i< bnsLayerFormAllSubscribe.subscribe_option.length; i++)
    {
        if(bnsLayerFormAllSubscribe.subscribe_option[i].checked)
        {
            var controlID = bnsLayerFormAllSubscribe.subscribe_option[i].id;
            var trControlID = "tr" + controlID;
            document.getElementById(trControlID).style.backgroundColor="#FFEBBB";
        }
        else
        {
            var controlID = bnsLayerFormAllSubscribe.subscribe_option[i].id;
            var trControlID = "tr" + controlID;
            if(i==0 || i==2 || i==4 || i==5 || i==7 || i==9)
                document.getElementById(trControlID).style.backgroundColor="#DBF0FB";
            else
                document.getElementById(trControlID).style.backgroundColor="#BDE7FB";
        }
    }
}

//Function to display video file
function fnNewWindow(strUrl,strTarget)
{
  window.open(strUrl,strTarget,"width=465,height=465,status=no,toolbar=no,menubar= no,location=no");
}

//Function to display document .aspx window
function documentWindow(strPageUrl,folderPath,resourceName,strTarget,setSessionValue,getId)
{
  var strUrl = strPageUrl + "?folderpath=" + folderPath + "&resource=" + resourceName + "&party=" + getId;
  
  var sessionBooleanValue=new Boolean(setSessionValue);
    
  if(sessionBooleanValue)
  {
    setSessionIntermediate();
  }
  window.open(strUrl,strTarget,"width=800,height=650,status=yes,toolbar=no,menubar= no,location=no");
}


// Gets the prefix clientID for Grid Control's GridRow
function GetGridRowClientID(ID)
{
    var gridRowClientID;
    
    if(ID.lastIndexOf("_") > 0)  
        gridRowClientID = ID.substring(0,ID.lastIndexOf("_") + 1);
    
    return gridRowClientID;
}

 function toggleactivate(ID,val)
 {  
    if(val == "De-Activate")
    {
        document.getElementById(ID).innerHTML = "Activate";
    }
    else
    {
        document.getElementById(ID).innerHTML = "De-Activate";
    }         
 }



/////////////////////////////////////////
//form button click recognition
function clickButton(e, buttonid){
    
     var bt = document.getElementById(buttonid);
     if (typeof bt == 'object'){
           if(navigator.appName.indexOf("Netscape")>(-1)){
                 if (e.keyCode == 13){
                       bt.click();
                       return false;
                 }
           }
           if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1)){
                 if (event.keyCode == 13){
                       bt.click();
                       return false;
                 }
           }
     }
}
/////////////////////////////////////

 //function to change color to the row on mouseover in Search grid
 function changeRowColorMouseOver(getClientID)
 {    
    if(document.getElementById(getClientID) != null)
        document.getElementById(getClientID).style.backgroundColor="#ffcc99";
 }
 
 //function to change color to the row on mouseout in Search grid
 function changeRowColorMouseOut(getClientID)
 {  
    if(document.getElementById(getClientID) != null)
    {
        if(document.getElementById(getClientID).className == "tlrowlight")
            document.getElementById(getClientID).style.backgroundColor="#ffffff";
        else
            document.getElementById(getClientID).style.backgroundColor="#cccccc";
    }   
 }
 
  //function to display division to the row on mouseover
 function showDiv(getClientID)
 {    
    if(document.getElementById(getClientID) != null)
    document.getElementById(getClientID).style.display="block";    
 }
 
   //function to hide division to the row on mouseover
 function hideDiv(getClientID)
 {    
    if(document.getElementById(getClientID) != null)
    document.getElementById(getClientID).style.display="none";    
 }
 
 
 //function to Clear user reg page
function ClearUserDetails()
{
    document.getElementById(clientID+"txtUserFirstName").value="";
    document.getElementById(clientID+"txtUserLastName").value="";
    document.getElementById(clientID+"txtUserEmail").value="";
    document.getElementById(clientID+"txtUserPhone").value="";
    document.getElementById(clientID+"errortxtUserFirstName").innerHTML="";
    document.getElementById(clientID+"errortxtUserLastName").innerHTML="";
    document.getElementById(clientID+"errortxtUserEmail").innerHTML="";
    document.getElementById(clientID+"errortxtUserPhone").innerHTML="";
    return false;
}

//Function used to validate user registration page
function ValidateUserReg()
{
    var errcode= new Array(4);
    
    if(ValidateSpecialChars("txtUserFirstName", invalidAcFirstName, "client", "name"))                 
        errcode[0] = ValidateRequired("txtUserFirstName", emptyAcFirstName, "client");
    else
        errcode[0] = false;
        
    if(ValidateSpecialChars("txtUserLastName", invalidAcLastName, "client", "name")) 
        errcode[1] = ValidateRequired("txtUserLastName", emptyAcLastName, "client");                         
    else
        errcode[1] = false;
        
    if(ValidateRequired("txtUserEmail", invalidUserName, "client"))
        errcode[2] = ValidateEmail("txtUserEmail", invalidEmailUserName, "client");
    else
        errcode[2] = false;
    
    if(ValidateRequired("txtUserPhone", emptyAcPhone, "client"))                  
        errcode[3] = ValidatePhone("txtUserPhone", invalidAcPhone, "client");
    else
        errcode[3] = false;
            
    var i=0;    
        var errorVal = true;
        for(i=0; i<errcode.length; i++)
        {   
            if(!errcode[i])
            {
                errorVal = false;
                break;
            }
        }
        
        if(!errorVal)
            return false;
        else
            return true;
}