/**
 * Some ufesul functions
 *
 */

function in_array( needle, haystack ) {
    if ( 
    (typeof(needle) == 'number' || typeof(needle) == 'string') && 
    ( typeof(haystack) == 'object' && haystack instanceof Array)) {
        found = false;
        for (i=0; i<haystack.length; i++) {
            if (haystack[i] == needle) found = true;
        }
        return found;
    } else {
        return false;
    }
}

function disa(obj, num) {
	var temp;
	temp = $(obj+'_'+num).value;
	if (temp.length>0) {
		//$(obj+'_'+num+'_way').value = temp;
		//alert($(obj+'_'+num+'_way').value);
		num=num+1;
		$(obj+'_'+num).disabled = false;
	}
}

function dis_sel(obj, param) {
    if ($(obj)) {
        temp = $(obj).value;
        if (temp == null || temp!=param) {
            $(obj+'_text').disabled = true;
            return true;
        } else {
            $(obj+'_text').disabled = false;
            return false;
        }
    }
}

function confirmLink(theLink, what) {

    var confirmMsg  = 'Вы действительно желаете ';
    // Confirmation is not required in the configuration file
    // or browser is Opera (crappy js implementation)
    if (confirmMsg == '' || typeof(window.opera) != 'undefined') {
        return true;
    }

    var is_confirmed = confirm(confirmMsg + ' :\n' + what);
    if (is_confirmed) {
        theLink.href;
    }
    return is_confirmed;
} // end of the 'confirmLink()' function

function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return false;
        }
        return true;
    }
    if (email.length==0) {  
        if (required) {
            return false;
        }
        return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return false;
    }
    
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
        return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    } else {
        return true;
    }
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}