﻿// the enter button is hit //
function hitEnter(event) {
    if (event.keyCode == 13) {
        var txtFocus = false;
        var textBoxes = document.getElementsByTagName('textarea');

        for (var i = 0; i < textBoxes.length; i++) {
            var elem = textBoxes[i];

            if (elem) {
                elem.onfocus = function() {
                    txtFocus = true;
                }
                elem.onblur = function() {
                    txtFocus = false;
                }
            }
        }
        
        if (!txtFocus) {
            // do nothing
        } else {
            document.getElementById('btnSubmit').click();
            return false;
        }
    }
}
//// the enter button is hit //
//function hitEnter() {
//    document.onkeyup = function(e){
//        e = (window.event) ? event : e;
//        var k = e.keyCode;
//        if (k == 13) {
//            var txtFocus = null;
//            var description = document.getElementById('tbDescription');
//            var sellerNote = document.getElementById('tbNote');
//            var textBoxes = new Array(description, sellerNote);

//            for (var i = 0; i < textBoxes.length; i++) {
//                var elem = textBoxes[i];

//                if (elem.type == 'text') {
//                    elem.onfocus = function() {
//                        txtFocus = this;
//                    }
//                    elem.onblur = function() {
//                        txtFocus = null;
//                    }
//                }
//            }
//            
//            if (txtFocus) {
//                // do nothing
//            } else {
//                document.getElementById('btnSubmit').click();
//                return false;
//            }
//        }
//    }
//}

// validate JobType //
function validateJobType(source, args) {
    var error1 = '<div style="padding:5px 0 0 0;">Please select a Job Type.</div>';
    var jobType = document.getElementById('ddlJobType').selectedIndex;
    var cvJobType = document.getElementById('cvJobType');
    if (jobType != 0) {
        cvJobType.innerHTML = '';
        args.IsValid = true;
    } else {
        cvJobType.innerHTML = error1;
        args.IsValid = false;
    }
}

// validate state //
function validateState(source, args) {
    var error1 = '<div style="padding:5px 0 0 0;">Please select a State.</div>';
    var state = document.getElementById('ddlState').selectedIndex;
    var cvState = document.getElementById('cvState');
    if (state != 0) {
        cvState.innerHTML = '';
        args.IsValid = true;
    } else {
        cvState.innerHTML = error1;
        args.IsValid = false;
    }
}

// validate Email //
function validateEmail(source, args) {
    var RegExEmail1 = /^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    var email = document.getElementById('tbEmail').value;
    var cvEmail = document.getElementById('cvEmail');
    var error1 = '<div style="padding:4px 0 0 0;">Required</div>';
    var error2 = "Must be in a valid email format. ex. <i>johndoe@lifequest.com</i>";
    if (email != '') {
        if (RegExEmail1.test(email) == true) {
            cvEmail.innerHTML = '';
            args.IsValid = true;
        } else {
            cvEmail.innerHTML = error2;
            args.IsValid = false;
        }
    } else {
        cvEmail.innerHTML = error1;
        args.IsValid = false;
    }
}

// validate telephone //
function validateTelephone(source, args) {
    var RegExTelephon1 = /^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/; /* reg expression 1 not currently used */
    var RegExTelephone2 = /^\(?(\d{3})\)?[\.\-\/ ]?(\d{3})[\.\-\/ ]?(\d{4})$/;
    var telephone = document.getElementById('tbTelephone');
    var cvTelephone = document.getElementById('cvTelephone');
    var error1 = '<div style="padding:6px 0 0 0;">Required</div>';
    var error2 = "Must be a valid phone number. ex. <i>(111)-222-3333</i>";
    if (telephone.value != '') {
        if (RegExTelephone2.test(telephone.value) == true) {
            var validPhone = RegExTelephone2.exec(telephone.value)
            if (validPhone) {
                telephone.value = "(" + validPhone[1] + ") " + validPhone[2] + "-" + validPhone[3]
                args.IsValid = true;
            } else {
                cvTelephone.innerHTML = error2;
                args.IsValid = false;
            }
        } else {
            cvTelephone.innerHTML = error2;
            args.IsValid = false;
        }
    } else {
        cvTelephone.innerHTML = error1;
        args.IsValid = false;
    }
}

// fix telephone //
function fixTelephone() {
    var RegExTelephone2 = /^\(?(\d{1})?[\.\-\/ ]?[\(\/ ]?(\d{3})\)?[\)\/ ]?[\.\-\/ ]?(\d{3})[\.\-\/ ]?(\d{4})$/; /* 1-(232)-232-2323 */
    //var cvTelephone = document.getElementById('cvTelephone');
    var telephone = document.getElementById('tbTelephone');
    if (telephone.value != '') {
        var validPhone = RegExTelephone2.exec(telephone.value)
        if (validPhone) {
            telephone.value = "(" + validPhone[2] + ") " + validPhone[3] + "-" + validPhone[4];
        } else {
            // cvTelephone.innerHTML = error2;       
        }
    } else {
        // cvTelephone.innerHTML = error1;
    }
}

// validate show phone in listing // 
function validateDllPhone(source, args) {
    var error1 = '<div style="padding:5px 0 0 0;">Please select: \"Yes\" or \"No\"</div>';
    var yesNo = document.getElementById('ddlPhone').selectedIndex;
    var cvPhoneDropDown = document.getElementById('cvPhoneDropDown');
    if (yesNo != 0) {
        cvPhoneDropDown.innerHTML = '';
        args.IsValid = true;
    } else {
        cvPhoneDropDown.innerHTML = error1;
        args.IsValid = false;
    }
}

function showChar(showAll) {
    var tbChar = document.getElementById('tbCharLeft');
    if (showAll == false) {
        tbChar.value = '';
    } else {
        tbChar.value = 'Characters left: 350';
    }
}

// validate website hyperlink //
function validateWebsite(source, args) {
    var RegExWebsite1 = /^(http|https):\/\/(www\.)?\w+[\-\w\.]*\w+\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|tel|travel))([\/\w]+|([\/\w]+\.{1}\w{2,4}))?(\?{1}\w+[\-\w=_&%\.]*\w+)?$/;
    var Website = document.getElementById('tbWebsite').value;
    var cvWebsite = document.getElementById('cvWebsite');
    // var error1 = '<div style="padding:4px 0 0 0;">Required</div>'; //
    var error2 = 'Invalid hyperlink format.<br />ex. <i><b>http://</b>www.lifequest.com</i>';
    if (Website != '') {
        if (RegExWebsite1.test(Website) == true) {
            cvWebsite.innerHTML = '';
            args.IsValid = true;
        } else {
            cvWebsite.innerHTML = error2;
            args.IsValid = false;
        }
    } else {
        // not required field //
        // cvWebsite.innerHTML = error1; //
        args.IsValid = true;
    }
}

// show test link //
function showTestLink() {
    var websiteLink = document.getElementById('tbWebsite').value;

    if (websiteLink == '') {
        //alert('Please enter your websites\' URL');
        setStyle('lnkText', 'display', 'none');
    } else {
        setStyle('lnkText', 'display', 'inline');
        //testLink(websiteLink);
    }
}

// testLink func //
function testLink(link) {
    var RegExWebsite1 = /^(http|https):\/\/(www\.)?\w+[\-\w\.]*\w+\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|tel|travel))([\/\w]+|([\/\w]+\.{1}\w{2,4}))?(\?{1}\w+[\-\w=_&%\.]*\w+)?$/;
    var websiteLink = document.getElementById(link).value;
    var error1 = 'Invalid hyperlink format. Example: http://www.lifequest-services.com';
    if (RegExWebsite1.test(websiteLink) == true) {
        var newWindow = window.open(websiteLink, "_blank");
        newWindow.focus();
    } else {
        alert(error1);
    }
}

function setStyle(obj, style, value) {
    getRef(obj).style[style] = value;
}

function getRef(obj) {
    return (typeof obj == "string") ?
			 document.getElementById(obj) : obj;
}

// show characters left //
function countChar(this_field, show_word_count, show_char_count) {
    if (show_word_count == null) {
        show_word_count = true;
    }
    if (show_char_count == null) {
        show_char_count = false;
    }
    var char_count = this_field.value.length;
    var fullStr = this_field.value + " ";
    var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
    var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
    var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
    var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
    var splitString = cleanedStr.split(" ");
    var word_count = splitString.length - 1;
    var tbChar = document.getElementById('tbCharLeft');
    var tbDescription = document.getElementById('tbDescription');
    var wordLength = 1000;

    if (fullStr.length < 2) {
        word_count = 0;
    }
    if (word_count == 1) {
        wordOrWords = " word";
    }
    else {
        wordOrWords = " words";
    }
    if (char_count == 1) {
        charOrChars = " character";
    } else {
        charOrChars = " characters";
    }
    if (show_word_count & show_char_count) {
        alert("Word Count:\n" + "    " + word_count + wordOrWords + "\n" + "    " + char_count + charOrChars);
    }
    else {
        if (show_word_count) {
            alert("Word Count:  " + word_count + wordOrWords);
        }
        else {
            if (show_char_count) {
                //alert ("Character Count:  " + char_count + charOrChars);
                var charRemain = wordLength - char_count;
                if (char_count > wordLength) {
                    tbDescription.value = tbDescription.value.substring(0, wordLength);
                    tbChar.value = 'Characters left: 0';
                } else if (char_count >= 950) {
                    tbChar.style.color = "red";
                    tbChar.value = 'Characters left: ' + charRemain;
                } else {
                    tbChar.style.color = "black";
                    tbChar.value = 'Characters left: ' + charRemain;
                }
            } else {
                //alert("somethings wrong!"); 
            }
        }
    }
    return word_count;
}

