
/*Service Suggestion Results*/
function ServSugRes()
{
};
ServSugRes.prototype = 
{
    getElement :  function(elId)
    {
        return document.getElementById(elId);
    },
    trim : function( strValue ) 
    {

    	return strValue.replace(/^\s+|\s+$/g,"");
    },
    getElementByTgName : function(tagName, parentObj)
    {
        return parentObj?parentObj.getElementsByTagName(tagName):document.getElementsByTagName(tagName);
    },
    getLastElemnt : function(tagName,parentObj)
    {
        var elArray = this.getElementByTgName(tagName, parentObj);
        return elArray.length > 0?elArray[elArray.length - 1]:null;
    },
    validateMailPost : function(sgName, sgMail, sgInfo) 
    {
        var isValid = true;
        var txtName = this.getElement( sgName );
        var errSpan = this.getLastElemnt('span',txtName.parentNode );
        if ( this.trim(txtName.value) == '')
        {
            isValid = false;
            errSpan.style.visibility = 'visible';
        } else errSpan.style.visibility = 'hidden';
        
        txtEmail = this.getElement( sgMail );
        errSpan = this.getLastElemnt('span',txtEmail.parentNode );
        var regexpMail = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        if ( !regexpMail.test( this.trim(txtEmail.value) ))
        {
            isValid = false;
            errSpan.style.visibility = 'visible';
        } else errSpan.style.visibility = 'hidden';
        
        txtInfo = this.getElement( sgInfo );
        errSpan = this.getLastElemnt('span',txtInfo.parentNode );
        if ( this.trim(txtInfo.value) == '')
        {
            isValid = false;
            errSpan.style.visibility = 'visible';
        } else errSpan.style.visibility = 'hidden';
        
        return isValid;
    },
    validateContactFields : function(checkboxSpan,checkbox1,checkbox2,contactFields,textBoxMessages,errorMessages)
    {  
        var invalidFieldsCounter = 0;
    
        var txtTitleName = this.getElement( checkboxSpan );
        var cbval1 = this.getElement( checkbox1 );
        var cbval2 = this.getElement( checkbox2 );
        if (!cbval1.checked && !cbval2.checked)
        {
            invalidFieldsCounter++;
            txtTitleName.style.visibility = 'visible';
        }
        else
        {
            txtTitleName.style.visibility = 'hidden';
        }
        var arrayForRedStars= contactFields.split(";");
        var arrayForTextBoxMessages=textBoxMessages.split(";");
        var i=0;   
        var regexpMail = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        var regexpPostCode = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/;
        for (i=0;i<arrayForRedStars.length-1;i=i+1) 
        {
            var txtName = this.getElement( arrayForRedStars[i] );
            var errSpan = this.getLastElemnt('span',txtName.parentNode );
            var message = this.getElement(arrayForTextBoxMessages[i]);
//            if(i==3)//PostCodeValidation
//            {
//                if(!regexpPostCode.test( this.trim(txtName.value) ))
//                {
//                   invalidFieldsCounter++;
//                   message.style.visibility='visible';
//                   errSpan.style.visibility = 'visible';
//                }
//                else
//                {
//                   message.style.visibility='hidden';
//                   errSpan.style.visibility = 'hidden';
//                }
//            }
            if(i==7)//EmptyFieldsValidation
            {
                if (!regexpMail.test(this.trim(txtName.value)))
                {
                    invalidFieldsCounter++;
                    message.style.visibility='visible';
                    errSpan.style.visibility = 'visible';
                }
                else
                {
                    errSpan.style.visibility = 'hidden';
                    message.style.visibility='hidden';
                }
            }           
            else//EmptyFieldsValidation
            {
                if ( this.trim(txtName.value) == '')
                {
                  invalidFieldsCounter++;
                  message.style.visibility='visible';
                  errSpan.style.visibility = 'visible';
                }
                else
                {
                  message.style.visibility='hidden';
                  errSpan.style.visibility = 'hidden';
                }
            }
        }
        //-------------------------------------------------------------        
        if (invalidFieldsCounter == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    },
    ////////////////////////////////////////////////////////////////////////
    ///////////////////RUTGES VALIDATION////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////
    validateRutgesContactFields : function(checkboxField,checkbox1,checkbox2,
                                     contactFields,textBoxMessages,
                                     fieldColor, invalidColor)
    {  
    var invalidFieldsCounter = 0;
    
 //        var txtTitleName = this.getElement( checkboxField );
//        var cbval1 = this.getElement( checkbox1 );
//        var cbval2 = this.getElement( checkbox2 );
//        if (!cbval1.checked && !cbval2.checked)
//        {
//            invalidFieldsCounter++;
//            txtTitleName.style.color = invalidColor;
//        }
//        else
//        {
//            txtTitleName.style.color = fieldColor;
//        }
        var arrayForRedStars= contactFields.split(";");
        var arrayForTextBoxMessages=textBoxMessages.split(";");
        var i=0;   
        var regexpMail = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        var regexpPostCode = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/;
        for (i=0;i<arrayForRedStars.length-1;i=i+1) 
        {
            var txtName = this.getElement( arrayForRedStars[i] );
            var errSpan = this.getLastElemnt('span',txtName.parentNode );
            var message = this.getElement(arrayForTextBoxMessages[i]);
            if(i==7)//
            {
                if (!regexpMail.test(this.trim(txtName.value)))
                {
                    invalidFieldsCounter++;
                    message.style.visibility='visible';
                    errSpan.style.visibility = 'visible';
                }
                else
                {
                    errSpan.style.visibility = 'hidden';
                    message.style.visibility='hidden';
                }
            }           
            else//EmptyFieldsValidation
            {
                if ( this.trim(txtName.value) == '')
                {
                  invalidFieldsCounter++;
                  message.style.visibility='visible';
                  errSpan.style.visibility = 'visible';
                }
                else
                {
                  message.style.visibility='hidden';
                  errSpan.style.visibility = 'hidden';
                }
            }
        }
        //-------------------------------------------------------------        
        if (invalidFieldsCounter == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    },validateQuotationFields : function(checkboxTitle, checkBoxesIds,
                                       contactFields,textBoxMessages,
                                       requiredDropDowns,
                                       //txtField21,
                                       txtFieldInfo,
                                       DynamicCellVariable,
                                       DivDynamicCellCaption)
    {
        var invalidFieldsCounter = 0;   
        var txtTitleName = this.getElement( checkboxTitle );
        var checkBoxes = checkBoxesIds.split(" ");
        var uncheckBoxesCount = 0;
        for (i = 0; i < checkBoxes.length; i++)
        {
            var cbName = this.getElement( checkBoxes[i] );
            if (cbName == null) invalidFieldsCounter++;
            else if (!cbName.checked)
            {
                uncheckBoxesCount++;
            }
        }
        if (uncheckBoxesCount == checkBoxes.length)
        {
            invalidFieldsCounter++;
            txtTitleName.style.display = 'block';
        }
        else
        {
            txtTitleName.style.display = 'none';
        }
//        var cbval1 = this.getElement( checkbox1 );
//        var cbval2 = this.getElement( checkbox2 );
//        var cbval3 = this.getElement( checkbox3 );
//        var cbval4 = this.getElement( checkbox4 );
//        if (!cbval1.checked && !cbval2.checked && !cbval3.checked && !cbval4.checked)
//        {
//            invalidFieldsCounter++;
//            txtTitleName.style.display = 'inline';
//        }
//        else
//        {
//            txtTitleName.style.display = 'none';
//        }
        
        var arrayForRedStars= contactFields.split(";");
        var arrayForTextBoxMessages=textBoxMessages.split(";");
        var i=0;   
        var regexpMail = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        var regexpPostCode = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/;
        for (i=0;i<arrayForRedStars.length-1;i=i+1) 
        {
            var txtName = this.getElement( arrayForRedStars[i] );
            var errSpan = this.getLastElemnt('span',txtName.parentNode );
            var message = this.getElement(arrayForTextBoxMessages[i]);
            if(i==6)//Email Validation
            {
               if (!regexpMail.test(this.trim(txtName.value)))
                {
                    invalidFieldsCounter++;
                    message.style.display='block';
                    errSpan.style.display = 'inline';
                }
                else
                {
                    errSpan.style.display = 'none';
                    message.style.display='none';
                }
            }           
            else//EmptyFieldsValidation
            {
                if ( this.trim(txtName.value) == '')
                {
                  invalidFieldsCounter++;
                  message.style.display='block';
                  errSpan.style.display = 'inline';
                }
                else
                {
                    message.style.display='none';
                    errSpan.style.display = 'none';
                }
          }
		}
     
        var arrayOfSplited = DynamicCellVariable.split(",");
        i=0;        
        for (i=0;i<arrayOfSplited.length-1;i=i+6) 
        {
            this.hideAllEmptyField(arrayOfSplited[i+0],arrayOfSplited[i+1],arrayOfSplited[i+2],arrayOfSplited[i+3],arrayOfSplited[i+4],arrayOfSplited[i+5]);
        }
        var validRowCounter = 0;
        var invalidRowCounter = 0;
        var isValidRow = false;
        var times = 0;
        for (i=0;i<arrayOfSplited.length-1;i=i+6) 
        {
            var tmpVar = this.checkEmptyField(arrayOfSplited[i+0],arrayOfSplited[i+1],arrayOfSplited[i+2],arrayOfSplited[i+3],arrayOfSplited[i+4],arrayOfSplited[i+5]);
            if ( tmpVar == 0 )
            {
                invalidRowCounter++;
            }
            if ( tmpVar == 1 )
            {
                invalidFieldsCounter++;
            }
			times++;
        } 
        //-----------------------
        var txtInfoName = this.getElement( DivDynamicCellCaption );
        if (invalidRowCounter == times)
        {
            txtInfoName.style.visibility='visible';
        }
	    else
	    {
			txtInfoName.style.visibility='hidden';
        }    
        //-----------------------
        
        
        
        
        if (dropDowns != null)
        {
            var dropDowns = requiredDropDowns.split(" ");
            for (i = 0; i < dropDowns.length; i++)
            {
                if (dropDowns[i] != "")
                {
                    var ddName = this.getElement( dropDowns[i] );
                    if (ddName != null)
                    {
                        var ddErrorSpan = this.getLastElemnt('span',ddName.parentNode );
                        if ( this.trim(ddName.options[ddName.selectedIndex].value) == '')
                        {
                            invalidFieldsCounter++;
                            ddErrorSpan.style.display = 'inline';
                        }
                        else
                        {
                            ddErrorSpan.style.display = 'none';
                        }
                    }
                }
            }  
        }   
        if (invalidFieldsCounter == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    },
     validateRutgesQuotationFields : function(contactFields,textBoxMessages)
    {  
        var invalidFieldsCounter = 0;
        var arrayForRedStars= contactFields.split(";");
        var arrayForTextBoxMessages=textBoxMessages.split(";");
        var i=0;   
        var regexpMail = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        var regexpPostCode = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/;
        for (i=0;i<arrayForRedStars.length-1;i=i+1) 
        {
            var txtName = this.getElement( arrayForRedStars[i] );
            var errSpan = this.getLastElemnt('span',txtName.parentNode );
            var message = this.getElement(arrayForTextBoxMessages[i]);
            if(i==7)//Email Validation
            {
               if (!regexpMail.test(this.trim(txtName.value)))
                {
                    invalidFieldsCounter++;
                    message.style.visibility='visible';
                    errSpan.style.visibility = 'visible';
                }
                else
                {
                    errSpan.style.visibility = 'hidden';
                    message.style.visibility='hidden';
                }
            }           
            else//EmptyFieldsValidation
            {
                if ( this.trim(txtName.value) == '')
                {
                  invalidFieldsCounter++;
                  message.style.visibility='visible';
                  errSpan.style.visibility = 'visible';
                }
                else
                {
                    message.style.visibility='hidden';
                    errSpan.style.visibility = 'hidden';
                }
         }
		}
        if (invalidFieldsCounter == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    },
    checkEmptyField : function(txtField1,txtField2,txtField3,txtField4,txtField5,txtField6)
    {
        var status = 0;
        var emptyCounter = 0;
        emptyCounter += this.isDigitField(txtField1);
        emptyCounter += this.isEmptyField(txtField2);
        emptyCounter += this.isEmptyField(txtField3);
        emptyCounter += this.isEmptyField(txtField4);
        emptyCounter += this.isEmptyField(txtField5);
        emptyCounter += this.isEmptyField(txtField6);
        if (emptyCounter > 0 && emptyCounter < 6)
        {
            status = 1;
            this.showNotDigitField(txtField1);
            this.showEmptyField(txtField2);
            this.showEmptyField(txtField3);
            this.showEmptyField(txtField4);
            this.showEmptyField(txtField5);
            this.showEmptyField(txtField6);
        }
        if (emptyCounter == 0)
        {
            status = 2;
        }

        return status;
    },
    hideAllEmptyField : function(txtField1,txtField2,txtField3,txtField4,txtField5,txtField6)
    {
        this.hideSpan(txtField1);
        this.hideSpan(txtField2);
        this.hideSpan(txtField3);
        this.hideSpan(txtField4);
        this.hideSpan(txtField5);
        this.hideSpan(txtField6);
    },
    isEmptyField : function(txtField)
    {
        var isEmpty = 0;
        var txtName = this.getElement( txtField );
        if ( this.trim(txtName.value) == '')
        {
            isEmpty = 1;
        }
        return isEmpty;
    },
    isDigitField : function(txtField)
    {
        var isDigit = 0;
        var regexpDigit = /^\d{1,7}$/;
        var txtName = this.getElement( txtField );
        if ( !regexpDigit.test( this.trim(txtName.value) ) )
        {
            isDigit = 1;
        }
        return isDigit;        
    },
    showEmptyField : function(txtField)
    {
        var txtName = this.getElement( txtField );
        var errSpan = this.getLastElemnt('span',txtName.parentNode );
        if ( this.trim(txtName.value) == '')
		{
            errSpan.style.visibility = 'visible';
        }
        else
		{ 
			errSpan.style.visibility = 'hidden';
		}
    },
    showNotDigitField : function(txtField)
    {
        var txtName = this.getElement( txtField );
        var errSpan = this.getLastElemnt('span',txtName.parentNode );
        var regexpDigit = /^\d{1,7}$/;
        if ( !regexpDigit.test( this.trim(txtName.value) ) )
        {
            errSpan.style.visibility = 'visible';
        } 
        else errSpan.style.visibility = 'hidden';
    },
    hideSpan : function(txtField)
    {
        var txtName = this.getElement( txtField );
        var errSpan = this.getLastElemnt('span',txtName.parentNode );
        errSpan.style.visibility = 'hidden';
    }
};

window['SrvSgRs'] = new ServSugRes();
function SugPage()
{
};
SugPage.prototype = 
{
    getElement :  function(elId)
    {
        return document.getElementById(elId);
    },
    trim : function( strValue ) 
    {
    	return strValue.replace(/^\s+|\s+$/g,"");
    },
    getElementByTgName : function(tagName, parentObj)
    {
        return parentObj?parentObj.getElementsByTagName(tagName):document.getElementsByTagName(tagName);
    },
    getLastElemnt : function(tagName,parentObj)
    {
        var elArray = this.getElementByTgName(tagName, parentObj);

        return elArray.length > 0?elArray[elArray.length - 1]:null;
    },
    validateContactSearch : function(sgpFirts, sgpSecond, sgpThird, sgpFourth)
    {
    
        var isValid = true;
        var emptyGuid = '00000000-0000-0000-0000-000000000000';
        var emptVal = '';
        
        var firstDl = this.getElement( sgpFirts );
        var errSpan = this.getLastElemnt('span',firstDl.parentNode );
        if ( this.trim(firstDl.value) == '')
        {
            isValid = false;
            errSpan.style.visibility = 'visible';
        } else errSpan.style.visibility = 'hidden';
        
        var secondDl = this.getElement( sgpSecond );
        var errSpan = this.getLastElemnt('span',secondDl.parentNode );
        var trmVal = this.trim(secondDl.value);
        if ( trmVal == emptyGuid || trmVal == emptVal)
        {
            isValid = false;
            errSpan.style.visibility = 'visible';
        } else errSpan.style.visibility = 'hidden';
        
        var thirdDl = this.getElement( sgpThird );
        var errSpan = this.getLastElemnt('span',thirdDl.parentNode );
        trmVal =  this.trim(thirdDl.value);
        if ( trmVal == emptyGuid || trmVal == emptVal )
        {
            isValid = false;
            errSpan.style.visibility = 'visible';
        } else errSpan.style.visibility = 'hidden';
        
        var fourthDl = this.getElement( sgpFourth );
        var errSpan = this.getLastElemnt('span',fourthDl.parentNode );
        trmVal = this.trim(fourthDl.value);
        if ( trmVal == emptyGuid || trmVal == emptVal )
        {
            isValid = false;
            errSpan.style.visibility = 'visible';
        } else errSpan.style.visibility = 'hidden';
        
        return isValid;
    }
    
}
window['SgPg'] = new SugPage();
/*End*/