﻿


function ConfirmAlertClose() {
    CreateCordiantConfirm("Unsaved changes will be lost.", "All unsaved changes will be lost. <br/>Are you sure you want to continue?", "RedirectToPostings()");
}


/*
function ConfirmAlertSave() {
CreateCordiantConfirm("Save Data .", "Your Job Messenger "+document.getElementById("txtAlertName").value+"' has been saved! Thanks very much for configuring your Preference for CMDNhotjobs Messenger. You will start receiving Jobs that match your preference to the email ID registered with us every week. You can refine your job search criteria anytime by editing your job messenger. Wish you the very best with your jobs search. Please contact jobsupport@cmdn.com for further queries/clarifications.", "RedirectToPostings()");
}

*/


function RedirectToConfrimPage(a) {
    location.href = a;
}





function RedirectToPostings() {

    var page = document.getElementById('hdnPage').value;
    location.href = page;
}



function validateForm() {

    if (trim(document.getElementById("txtName").value) == "") {
        CreateCordiantAlert("Jobs Alert", "Please enter a Name. ", "txtName");
        document.getElementById("txtName").focus();
        return false;
    }

    if (trim(document.getElementById("txtEmail").value) == "") {
        CreateCordiantAlert("Jobs Alert", "Please enter an Email ID.", "txtEmail");
        document.getElementById("txtEmail").focus();
        return false;
    }
    if (emailCheck(document.getElementById("txtEmail").value) == false) {
        CreateCordiantAlert("Jobs Alert", "Please enter  Email ID in a valid format.", "txtEmail");
        document.getElementById("txtEmail").focus();
        return false;
    }

    if (trim(document.getElementById("txtAlertName").value) == "") {
        CreateCordiantAlert("Jobs Alert", "Please enter an Alert Name.", "txtAlertName");
        document.getElementById("txtAlertName").focus();
        return false;
    }


    if (ValidateSaveLocation() == false) {
       CreateCordiantAlert("Jobs Alert", "Please select atleast one Location.", "corlstLocation");
       // document.getElementById("corlstLocation").focus();
       return false;
    }

    if (ValidateSaveCategory() == false) {
       CreateCordiantAlert("Jobs Alert", "Please select atleast one Category.", "lstCategory");
       // document.getElementById("lstCategory").focus();
         return false;
    }








    var expFrom = document.getElementById('drpExperienceFrom').selectedIndex;
    var expTo = document.getElementById('drpExperienceTo').selectedIndex;
    if (expTo < expFrom) {
        CreateCordiantAlert("Jobs Alert", "Please select a valid experience range.", "txtRemarks1");
        document.getElementById("txtRemarks1").focus();
        return false;
    }


    return true;

}


function ValidateSelections() {
    var picked = '';
    var pcnt = 0;
    for (i = 0; i < document.getElementById('lstCategory').options.length; i++) {
        if (document.getElementById('lstCategory').options[i].selected == true) {
            picked += i + ',';
            pcnt++;
        }
    }
    if ((pcnt >= 1) && (pcnt <= 2)) {

    }
    else {
        CreateCordiantAlert("Jobs Alert", "Pick a maximum of 2 selections only.", "lstCategory");
        document.getElementById('lstCategory').selectedIndex = -1;        // reset list 
    }
    return picked;
}


function ValidateSaveCategory() {


    var categorystatus = true;
    var picked = '';
    var pcnt = 0;
    for (i = 0; i < document.getElementById('lstCategory').options.length; i++) {
        if (document.getElementById('lstCategory').options[i].selected == true) {
            picked += i + ',';
            pcnt++;
        }
    }
    if (pcnt == 0) {
        categorystatus = false;
    }
    return categorystatus;
}


function ValidateSaveLocation() {


    var locationstatus = true;
    var picked = '';
    var pcnt = 0;

    for (i = 0; i < document.getElementById('corlstLocation').options.length; i++) {
        if (document.getElementById('corlstLocation').options[i].selected == true) {
            picked += i + ',';
            pcnt++;
        }
    }
    if (pcnt == 0) {
        locationstatus = false;
    }

    return locationstatus;
}










// Checking whether the EMAIL string is valid
function emailCheck(emailStr) {

    /*	The following pattern is used to check if the entered e-mail address fits the user@domain format.  
    It also is used to separate the username from the domain. 
    */
    var emailPat = /^(.+)@(.+)$/;

    /*	The following string represents the pattern for matching all special characters.  We don't want to allow 
    special characters in the address. These characters include ( ) < > @ , ; : \ " . [ ]    
    */
    var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";

    /*	The following string represents the range of characters allowed in a username or domainname.  
    It really states which chars aren't allowed. 
    */
    var validChars = "\[^\\s" + specialChars + "\]";

    /*	The following pattern applies if the "user" is a quoted string (in which case, there are no rules about 
    which characters are allowed and which aren't; anything goes).  
    E.g. "jiminy cricket"@disney.com is a legal e-mail address. 
    */
    var quotedUser = "(\"[^\"]*\")";

    /*	The following pattern applies for domains that are IP addresses, rather than symbolic names.  
    E.g. joe@[123.124.233.4] is a legal e-mail address. NOTE: The square brackets are required. 
    */
    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

    /*	The following string represents an atom (basically a series of non-special characters.) 
    */
    var atom = validChars + '+';

    /*	The following string represents one word in the typical username. For example, in john.doe@somewhere.com, 
    john and doe are words. Basically, a word is either an atom or quoted string. 
    */
    var word = "(" + atom + "|" + quotedUser + ")";

    //	The following pattern describes the structure of the user
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");

    /*	The following pattern describes the structure of a normal symbolic domain, as opposed to ipDomainPat, 
    shown above. 
    */
    var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");

    /* Finally, let's start trying to figure out if the supplied address is valid. */

    /* Begin with the coarse pattern to simply break up user@domain into different pieces that are easy to analyze. 
    */
    var matchArray = emailStr.match(emailPat);

    if (matchArray == null) {
        /*	Too many/few @'s or something; basically, this address doesn't even fit the general mould of a valid 
        e-mail address. 
        */
        //alert("Email address seems incorrect (check @ and .'s)")
        return false;
    }
    var user = matchArray[1];
    var domain = matchArray[2];

    // See if "user" is valid 
    if (user.match(userPat) == null) {
        // user is not valid
        //alert("The Email address doesn't seem to be valid.")
        return false;
    }

    /*	if the e-mail address is at an IP address (as opposed to a symbolic host name) make sure the IP address 
    is valid. 
    */
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        // this is an IP address
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
                //alert("Destination IP address is invalid!")
                return false;
            }
        }
        return true;
    }

    // Domain is symbolic name
    var domainArray = domain.match(domainPat);
    if (domainArray == null) {
        //alert("The domain name doesn't seem to be valid.")
        return false;
    }

    /*	domain name seems valid, but now make sure that it ends in a three-letter word (like com, edu, gov) 
    or a two-letter word, representing country (uk, nl), and that there's a hostname preceding the domain 
    or country. 
    */

    /* Now we need to break up the domain to get a count of how many atoms it consists of. */

    var atomPat = new RegExp(atom, "g");
    var domArr = domain.match(atomPat);
    var len = domArr.length;
    if (domArr[domArr.length - 1].length < 2 ||
		domArr[domArr.length - 1].length > 3) {
        // the address must end in a two letter or three letter word.
        //alert("The address must end in a three-letter domain, or two letter country.")
        return false;
    }

    // Make sure there's a host name preceding the domain.
    if (len < 2) {
        var errStr = "This address is missing a hostname!";
        //alert(errStr)
        return false;
    }

    // If we've gotten this far, everything's valid!
    return true;

}




