﻿/*##############################################################################
##                 YOU MAY NOT REMOVE OR CHANGE THIS NOTICE                    #
## ---------------------------------------------------------------------------*/
/*******************************************************************************
 *
 *   Copyright (c) 2005-2007 Redwan Al-Bougha
 *
 *
 *   System Name : jeemlang.com site
 *
 *   File Name : system.js
 *
 *   Author:
 *   M.Redwan Al-Bougha (rbougha) 23-July-2007
 *
 ******************************************************************************/
/*############################################################################*/
function isEmpty(s){ return ((s == null) || (s.length == 0)) }

function isWhitespace(s){
    var i;
    var whitespace = " \t\n\r";
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
	} return true
}

function ltrim(string){
	while (1){
		if (string.substring(0, 1) != " ") break;
		string = string.substring(1, string.length);
	}
	return string;
}

function rtrim(string){
	while (1){
		if (string.substring(string.length - 1, string.length) != " ") break;
		string = string.substring(0, string.length - 1);
	}
	return string;
}

function trim(string){
	var tmpstr = ltrim(string);
	return rtrim(tmpstr);
}

function CheckInput(input,name,alt){
	var input = eval("document." + input);
	if (Boolean(input)){
		//trim leading and trailing spaces//
		string = trim(input.value)
		var txt = (alt) ? alt : "الرجاء اكمال المعلومات الناقصة.";
		if (isWhitespace(string)){
			alert("حقل \"" + name + "\" فارغ\n----------\n" + txt);
			input.focus(); return false;
		}
		input.value = string
	}
	return true
}

function CheckEmail(input,name,alt){
	var input = eval("document." + input);
	if (Boolean(input)){
		//trim leading and trailing spaces//
		string = trim(input.value)
		var txt = (alt) ? alt : "الرجاء اكمال المعلومات الناقصة.";
		if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(string))){
			alert("حقل \"" + name + "\" غير صحيح\n----------\n" + txt);
			input.focus(); return false;
		}
		input.value = string
	} return true
}

function CheckEmailNotReq(input,name){
	//if (!CheckAlphanum(input,name,"ALT_CHARS","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-@ .","ALT_LENGTH",5)) return false;
		var input = eval("document." + input);
	if(Boolean(input)){
		if ( (input.value.indexOf('@') == -1 || input.value.indexOf('.') == -1) && input.value != "" ){
			alert("حقل \"" + name + "\" غير صحيح\n----------\n" + "الرجاء التأكد.")
			input.select(); return false;
		}
	} return true
}

function CheckSelect(input,name,title_alt){
	var title = (title_alt) ? title_alt : "\"" + name + "\" IS EMPTY";
	var input = eval("document." + input);
	if(Boolean(input)){	
		if (input.value == -1){
			alert(title + "\n----------\nPlease select the relevant information for this field.");
			input.focus(); return false;
		}
	} return true;
}

function CheckMulti(input,name){
	var input = eval("document." + input);
	var counter = 0;
	if(Boolean(input)){
		if (input.selectedIndex < 0){
			alert("\"" + name + "\" IS EMPTY\n----------\nPlease select the relevant information for this field.");
			input.focus(); return false;
		}
		for (i = 0; i < input.length; i++){
			if (input.options[i].selected) counter = counter + 1
		}
		if (counter > 10){
			alert("\"" + name + "\" HAS TOO MANY SELECTIONS\n----------\nYou may only select a maximum of 10 items.");
			input.focus(); return false;
		}
	} return true
}

//CHECKS FOR ALPHANUMERIC CHARACTERS//
//for alternate character sets, define "ALT_CHARS" within arguments//
//for alternate string length, define "ALT_LENGTH" within arguments//
function CheckAlphanum(input,name){
	var input = eval("document." + input);
	if (Boolean(input)) {
		var string = input.value
		var ar = arguments;
		var alt_length = 0;
		var alt_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_";
		for (i = 2; i < ar.length; i++) {
			if (ar[i] == "ALT_LENGTH") { alt_length = ar[++i] }
			if (ar[i] == "ALT_CHARS") { alt_chars = ar[++i] }
		}
		//string length test//
		if (string.length < alt_length) {
		    alert("\"" + name + "\" IS INVALID\n----------\nThis field must contain at least " + alt_length + " characters.");
			input.select(); return false;
		}
		//charset test//
		for (var i = 0; i < string.length; i++){
			var chr = string.charAt(i);
			var ok = 0;
			for (var j = 0 ; j < alt_chars.length ; j++){
				allowed = alt_chars.charAt(j);
				if (chr == allowed) ok = 1;
			}
			if (ok == 0){
				alert ("\"" + name + "\" IS INVALID\n----------\nPlease use valid characters for this field -- use the following characters only:\n" + alt_chars);
	 			input.select(); return false;	 
			}
		}
	} return true
}

//VALIDATES IF AN EMAIL ADDRESS CONTAINS "@" AND "."//
function badEmail(input){
	if (!CheckInput(input,"E-MAIL ADDRESS")) return false;
	if (!CheckAlphanum(input,"E-MAIL ADDRESS","ALT_CHARS","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-@.","ALT_LENGTH",5)) return false;
	
	var input = eval("document." + input);
	if(Boolean(input)){
		if (input.value.indexOf('@') == -1 || input.value.indexOf('.') == -1){
			alert("INVALID E-MAIL ADDRESS\n----------\nYou have not entered a valid E-MAIL address.\nPlease check that the e-mail address you entered contains both the \"@\" and the \".\" characters.")
			input.select(); return false;
		}
	} return true
}


function checkRadio(input,name,obj_count){
	isChecked = 0
	for (i=1; i<=obj_count; i++){
		if(eval("document." + input + i + ".checked" )){
			isChecked = 1;
			break;
		}
	}
	if (isChecked == "0"){
			alert(name + "\n----------\nPlease select the relevant information for this field.");
			return false;
	}
	return true;
}