﻿var regexZip = /^\d{5}$/;
var regexPhone = /\W?\d\d\d\W?\d\d\d\W?\d\d\d\d/;
var regexEmail = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
var regexText = /^\s*[a-zA-Z,\s]+\s*$/;
var regexLastName = /^[a-zA-Z'][a-zA-Z'-.]*[a-zA-Z']?$/;
var regexNumber = /^[-+]?\d*\.?\d*$/;
var regexUrl = /^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|gov|COM|ORG|NET|MIL|EDU|GOV)$/
var regexTxtNum = /^([1-zA-Z0-1@.\s]{1,255})$/;  // validates against illegal characters
var regex;

// old phone regex: /\W?\d\d\d\W?\d\d\d\W?\d\d\d\d/;
// new phone regex: /^([\(]{1}[0-9]{3}[\)]{1}[0-9]{3}[\-]{1}[0-9]{4})$/;

validateControl = function(sender, args) {
    var elem = $get(sender.id);
     //alert(elem.id);
     args.IsValid = false;
   if (validateSubmit(args.Value, '', elem.exType, elem.exInvalid, elem.exValid)) {
        args.IsValid = true;

    };
    return args.IsValid;
};

function validateSubmit(exToValidate, errHolder, exType, exInvalid, exValid) {

    
    if (exInvalid == '' && exToValidate == '') {
        if (errHolder != '') {
            document.getElementById(errHolder).style.display = 'inline';
        };
        return false;
    };
        
    if (exValid != '' && exValid == exToValidate) {
        return true;
    };
    
    if (exToValidate == exInvalid && exInvalid != '') {
        if (errHolder != '') {
            document.getElementById(errHolder).style.display = 'inline';
        };
        return false;
    };
    
   
    switch (exType) {
         case 'zip':
               regex = regexZip;
               break;
           case 'phone':
               regex = regexPhone;
               var ph = exToValidate.replace(/-/gi, '').replace('(', '').replace(')', '').length;
               if (ph != 10 && exToValidate != exValid) {
                   if (errHolder != '') {
                       document.getElementById(errHolder).style.display = 'inline';
                   };
                   return false;
               };
               break;
         case 'email':
               regex = regexEmail;
               break;
         case 'text':
               regex = regexText;
               break;
         case 'number':
               regex = regexNumber;
               break;
         case 'url':
               regex = regexUrl;
               break;
         case 'txtNum':
               regex = regexTxtNum;
               break;
         case 'LastName':
               regex = regexLastName;
               break;
         case 'any':
               return true;
               break;
   }
    
    if (regex.test(exToValidate) == false) {
            if (errHolder != '') {
                document.getElementById(errHolder).style.display = 'inline';
        }
        return false;
    }
    return true;
};

function Watermark(txtField, bFocus, sWatermarkText, errHolder) {
     document.getElementById(txtField).value = trim(document.getElementById(txtField).value);
     ClearErrorHolder(errHolder)
    if (bFocus) {
       if (document.getElementById(txtField).value == sWatermarkText) {
            document.getElementById(txtField).value = ''
            document.getElementById(txtField).style.color = "black";

       };
    }
    else {
        if (document.getElementById(txtField).value == '') {
            document.getElementById(txtField).value = sWatermarkText;
            document.getElementById(txtField).style.color = "#a1a1a1";
        };
    };
};

function ClearErrorHolder(errHolder) {
    if (errHolder != '') {
        document.getElementById(errHolder).style.display = 'none';
    };
};

function isNumberKey(evt, buttonName) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode == 45) {  
        return true;
    }
    else if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    else if (charCode == 13) {
    if (buttonName != '') {
        $get(buttonName).click();
    }
        return false;
    }
    return true;
};

function isEnterKey(evt, buttonName) {
    var charCode = (evt.which) ? evt.which : event.keyCode

    if (charCode == 13) {
    if (buttonName != '') {
        $get(buttonName).click();
    }
        return false;
    }
    return true;
};

function ShowElement(objId, elementId, vertAdjust, horizAdjust) {
    // var cursor = getPosition(event);
    // offsetLeft "X" and offsetTop "Y" return the relative position to the parent node.
    // To get the absolute position (which is in fact a relative position as well, 
    // but to the body element)
    // you need to catch the offset position of all the parents, if any
             
    var obj = document.getElementById(objId);
    var curleft = curtop = 0;
        if (obj.offsetParent) {
            do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
        }
      
        curtop +=  vertAdjust;
        curleft += horizAdjust;
               
        if (navigator.userAgent.indexOf('Safari') > 0) {
            curleft -= 1;
        }
        else if (navigator.userAgent.indexOf('Firefox') > 0) {
             curleft -= 5;
        }

        document.getElementById(elementId).style.top = curtop + 'px';
        document.getElementById(elementId).style.left = curleft + 'px';
        document.getElementById(elementId).style.display = 'inline';
}

function getPosition(e) {
    e = e || window.event;
    var cursor = { x: 0, y: 0 };
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX; cursor.y = e.pageY; 
      }
    else {
        cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
        cursor.y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
    }
    return cursor; 
};

function HideElement(elementId) {
    $get(elementId).style.display = 'none';
};

function checkrequired(controlClientId,controlClientName,controlServerName,validation1,validation2,validation3) {
    var bReturn = validation1 && validation2 ;
             
    if ($get('childage').style.display == 'inline') {
       bReturn = validation1 && validation2 && validation3;
    };
      
    var insOpt = document.getElementsByName(controlClientName.replace(controlServerName, 'rbgDentalInsurance'))
    if ($get(controlClientId.replace(controlServerName, 'Union')).checked && insOpt[0].checked &&
         $get(controlClientId.replace(controlServerName, 'iUnion')).value == 0) {
         InsuranceTypeError(true, 'Please, select insurance from the list.')
         $get(controlClientId.replace(controlServerName, 'iUnion')).focus();
         bReturn = false;
    }   
   
    if (insOpt[0].checked == false && insOpt[1].checked == false) {
        document.getElementById('payins').style.display = 'none'
        insOpt[1].checked = true
    }

    if (insOpt[0].checked == true) {
        var bOpt = false;
        var refOpt = document.getElementsByName(controlClientName.replace(controlServerName, 'sReferralType'));
                
        for (var i = 0; i < refOpt.length; i++) {
            if (refOpt[i].checked) {
                bOpt = true;
            }
        }

        if (bOpt == false) {
            bReturn = false;
            InsuranceTypeError(true, 'Please, select insurance type.')
        }
    }

    return bReturn;
}


function GotoDefaultButton(evt,buttonName) {
    var charCode = (evt.which) ? evt.which : event.keyCode;

    if (charCode == 13) {
        if (buttonName != '') {
            $get(buttonName).click();
        }
        return false;
    }
    return true;
}

//=======TRIM=====
function LTrim(value) {
    var re = /\s*((\S+\s*)*)/;
    return value.replace(re, "$1");
}

function RTrim(value) {
    var re = /((\s*\S+)*)\s*/;
    return value.replace(re, "$1");
}

function trim(value) {
    return LTrim(RTrim(value));
}
//================


//================BEGIN COMMERCIALS ======================
function selectvid() {
	 var a = document.getElementById('arc');
	 var i = a.selectedIndex;
	 if (a.selectedIndex>0) {
	  var v = a.options[i].value;
	  playvid(v);
	  AddText('Archives');
	 };
};
	
function playvid(v) {
    var newvid = '<embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="http://swf2.1800dentist.com/wmv/' + v + '" name="Player9" width="350" height="218" autostart="1" showcontrols="1"></embed>';
    document.getElementById('playercontainer').innerHTML = newvid;
    return false;
};

function playvidhome(v) {
    var newvid = '<embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="' + v + '" name="Player9" width="173" height="133" autostart="1" showcontrols="0"></embed>';
    document.getElementById('playercontainerhome').innerHTML = newvid;
    return false;
};

function AddText(a) {
    document.getElementById('comTitle').innerText = a;
}
//================END COMMERCIALS ======================

function viewMore(viewType, index) {
    var sView = ''
    switch (viewType) {
        case 9:
            viewType = 'event9';
            sView = 'View More Information';
            break;
        case 11:
            viewType = 'event11';
            sView = 'View Patient Reviews';
            break;
        case 26:
            viewType = 'event26';
            sView = 'View Featured Dentist';
            break;
        };

    var s = s_gi('dengoaskfredbeta');
    s.linkTrackVars = 'eVar12,events';
    s.linkTrackEvents = viewType;
    s.events = viewType;
    s.eVar12 = index;
    s.tl(this, 'o', sView);
};



//================

//****************COOKIES
function getCookie(c_name){
    if (document.cookie.length>0){
        c_start=document.cookie.indexOf(c_name + "=")
        if (c_start!=-1){ 
            c_start=c_start + c_name.length+1 
            c_end=document.cookie.indexOf(";",c_start)
              if (c_end==-1) c_end=document.cookie.length
                  return unescape(document.cookie.substring(c_start,c_end))
        } 
    }
    return ""
}

function setCookie(c_name,value,expiredays)
       {
        var exdate=new Date()
            exdate.setDate(exdate.getDate()+expiredays)
            document.cookie=c_name+ "=" +escape(value)+
       ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
       };
       //**************************

//=================PHONE FORMATING=========================================
       /// in phone field insert the following
       /// onfocus="formatPhone(this)" 
       var n;
       var p;
       var p1;
       var phoneField;

       function formatPhone(m) {
           n = m.id;
           p1 = m;
           phoneField = n;
           ValidatePhone()
       }

       function ValidatePhone() {
           if ($get(n).value != '') {
               p = p1.value
               if (p.length == 3) {

                   pp = p;
                   d4 = p.indexOf('(')
                   d5 = p.indexOf(')')
                   if (d4 == -1) {
                       pp = "(" + pp;
                   }
                   if (d5 == -1) {
                       pp = pp + ")";
                   }

                   $get(phoneField).value = "";
                   $get(phoneField).value = pp;

               }
               if (p.length > 3) {

                   d1 = p.indexOf('(')
                   d2 = p.indexOf(')')
                   if (d2 == -1) {
                       l30 = p.length;
                       p30 = p.substring(0, 4);

                       p30 = p30 + ")"
                       p31 = p.substring(4, l30);
                       pp = p30 + p31;

                       $get(phoneField).value = ""
                       $get(phoneField).value = pp;
                   }
               }

               if (p.length > 5) {
                   p11 = p.substring(d1 + 1, d2);

                   if (p11.length > 3) {
                       p12 = p11;
                       l12 = p12.length;
                       l15 = p.length

                       p13 = p11.substring(0, 3);
                       p14 = p11.substring(3, l12);
                       p15 = p.substring(d2 + 1, l15);
                       $get(phoneField).value = "";
                       pp = "(" + p13 + ")" + p14 + p15;
                       $get(phoneField).value = pp;
                   }

                   l16 = p.length;
                   p16 = p.substring(d2 + 1, l16);
                   l17 = p16.length;

                   if (l17 > 3 && p16.indexOf('-') == -1) {
                       p17 = p.substring(d2 + 1, d2 + 4);
                       p18 = p.substring(d2 + 4, l16);
                       p19 = p.substring(0, d2 + 1);
                       pp = p19 + p17 + "-" + p18;
                       $get(phoneField).value = "";
                       $get(phoneField).value = pp;
                   }
               }
               setTimeout(ValidatePhone, 100)
           }
       }

       function isEmailValid(email) {
           var regexEmail = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
           return regexEmail.test(email)
       }
//========================END PHONE VALIDATION===========================


//========================POSITIONING SCRIPT===========================
function GetBodyOffsetX(el_name, shift){

       var x=0;
       var y=0;
       var elem = document.getElementById(el_name);
     
           do {
                  x += elem.offsetLeft;
                  y += elem.offsetTop;

                  if (elem.tagName == "BODY") break;
                  elem = elem.offsetParent; 

           } while  (1 > 0);
                shift[0] = x;
                shift[1] = y;
                return  x;
}   
function SetPopupOnTarget(target_element,popup_element,coorX,coorY) {
       var shift = new Array(2);
       var pElem = document.getElementById(popup_element)
   
       GetBodyOffsetX(target_element,shift);
       document.getElementById(popup_element).style.left = shift[0] + coorX + 'px'; 
       document.getElementById(popup_element).style.top = shift[1] + coorY + 'px';
 }
 //========================END POSITIONING SCRIPT===========================

 

//================BEGIN CONTACT US FORM VALIDATION SCRIPT======================
function Feedback(validName, validEmail, validTopicId, validText, name, email, topic, content) {
    var b = validName == true && validEmail == true && validTopicId == true && validText == true;
    if (b) {
        PageMethods.SendFeedback(name, email, topic, content, OnSuccess, OnError);
    }
    return false;
}

function OnSuccess(result, userContext, method) {
     switch (method) {
        case 'SendFeedback':
            alert('Thank you. Your feedback has been sent.')
            break;
    }
}

function OnError(err) {
    alert(err.get_message());
}
//================END CONTACT US FORM VALIDATION SCRIPT======================

//================OMNITURE CODE START ======================

function SetOmnitureCode(sEvent,sEvar2,sEvar3,sEvar5,sEvar6,sEvar7,sEvar8,product) {
    // sEvar4 - location
    // sEvar5 - Dental Need
    // sEvar6 - PyamentType
    // sEvar17 - ZipCode
        
    //alert("Event: " + sEvent);
       
    var s = s_gi('dengafver2');
   // var sView = sEvent + ' ' + sEvar4;
    s.eVar2 = sEvar2;
    s.eVar3 = sEvar3;
    s.eVar5 = sEvar5;
    s.eVar6 = sEvar6;
    s.eVar7 = sEvar7;
    s.eVar8 = sEvar8;
    
    if(product!=undefined) {
       s.products = product;
    }
    
    s.linkTrackVars = 'eVar2,eVar3,sEvar5,sEvar6,sEvar7,sEvar8,events,products';
    s.linkTrackEvents = sEvent;

    s.events = sEvent;
   // s.tl(this, 'o', sView);
    // o - any custom link
    // d - track download link
    // e - exit link
};

//================OMNITURE CODE END ======================