//=============== Developed by Ahmad Z. Tibi  ==============
//=============== www.geocities.com/ahmd_tibi ==============   

/* for calling this function:
   in the desired place
   write this:
   <script language="javascript">
    draw_slider(2,cell_slider.width,table_slider.height,10,"images/factory_pict",191,142);
   </script>
   
   for example these paramenter ...
*/
function draw_slider(slider_speed,slider_width,slider_height,image_no,image_folder,image_width,image_height,image_border){

	var sliderwidth=slider_width
	
	
	var sliderheight=slider_height
	
	
	var slidespeed=slider_speed
	
	
	
	var leftrightslide=new Array()
	var finalslide=''

	for ( i = 0 ; i <image_no ; i++ )
	leftrightslide[i]='<img src="'+ image_folder + '/p'+(i+1)+'.jpg" width='+image_width +' hieght='+ image_height +' border=' + image_border +'>';
	
	
	
	
	
	
	
	
	///////do NOT edit pass this line////////////////////////////////////
	
	var copyspeed=slidespeed
	//copy contents of leftrightslide into one variable
	for (i=0;i<10;i++)
	finalslide=finalslide+leftrightslide[i]+"&nbsp;&nbsp;"
	
	
	if (document.all){
	//dynamically write out the marquee tag
	
	//
	document.write('<marquee id="ieslider" scrollAmount=slidespeed scrolldelay=1 width='+sliderwidth  +' direction=down height='+ sliderheight +'> ');
	for (i=1;i<10;i++)
	document.write(finalslide);
	document.write('</marquee>');
	
	//stop marquee when mouse is over it
	ieslider.onmouseover=new Function("ieslider.scrollAmount=0")
	//re-enable marquee when mouse is out
	ieslider.onmouseout=new Function("if (document.readyState=='complete') ieslider.scrollAmount="+slidespeed)
	}
	
	function regenerate(){
	 window.location.reload()
	}
	
	function regenerate2(){
	 if (document.layers){
	  document.ns_slider01.visibility="show"
	  setTimeout("window.onresize=regenerate",450)
	  intializeleftrightslide()
	 }
	 if (document.all)
	  ieslider.scrollAmount=slidespeed;
	}
	
	//NS specific function for initializing slider upon page load
	function intializeleftrightslide(){
	 document.ns_slider01.document.ns_slider02.document.write('<nobr>+');
	 for (i=1;i<10;i++)
	  document.ns_slider01.document.ns_slider02.document.write(finalslide);
	 document.ns_slider01.document.ns_slider02.document.write('+</nobr>');
	 document. ns_slider01.document.ns_slider02.document.close()
	 thelength=document.ns_slider01.document.ns_slider02.document.width
	 scrollslide()
	}
	
	//NS specific function for sliding slideshow
	function scrollslide(){
	 if (document.ns_slider01.document.ns_slider02.left>=thelength*(-1)){
	  document.ns_slider01.document.ns_slider02.left-=slidespeed
	  setTimeout("scrollslide()",100)
	 }
	 else{
	  document.ns_slider01.document.ns_slider02.left=sliderwidth
	  scrollslide()
	 }
	}
	
	window.onload=regenerate2;
	
	//-->
	
}
//============== Trim String ===========================
function strim(s){
	var d = new String(); //destination string
	var c;
	var firstchar=false;
	for(var i=0;i<s.length;i++){
		c=s.charAt(i);
		if((c==" ") && (firstchar==false)){
			continue;
		}
		else{
			firstchar=true;
			d+=c; 
		}
	}//end for
	return d; 
}
//============== Check is Empty ========================
function isEmpty(s){
   // Define whitespace characters
   var whitespace = " \t\n\r";
   var i;
   if((s == null) || (s.length == 0))
      return true;
   // Search string looking for characters that are not whitespace
   for (i = 0; i < s.length; i++)    
    {   
      var c = s.charAt(i);
      if (whitespace.indexOf(c) == -1) 
        return false;
    }
    // At this point all characters are whitespace.
    return true;
}
//============== Check Date ====================
function isValidDate(field) {
	var date = strim(field.value);
	
	/*if(isEmpty(phone)){
		return false;
	}*/
	var date_pattern1 = /[0-2]{1}[0-9]{3}[-\/][0-1]{1}[0-9]{1}[-\/][0-3]{1}[0-9]{1}/; 
	var date_pattern2 = /[0-2]{1}[0-9]{3}[-\/][1-9]{1}[-\/][1-9]{1}/; 
	if(date_pattern1.test(date))
     return true;
	else if(date_pattern2.test(date))
	 return true;
	/*	
	alert("Phone not in valid form!");
   field.focus();
   */
   return false;
}
//============== Check Advertisement No ====================
function isValidAdvNo(field) {
	var adv_no = strim(field.value);
	
	var adv_no_pattern = /[0-2]{1}[0-9]{3}[-\/][0-9]{1,4}/; 

	if(adv_no_pattern.test(adv_no))
     return true;

   return false;
}
//============== Check DateTime ====================
function isValidDateTime(field) {
	var date = strim(field.value);
	
	var date_pattern = /[0-2]{1}[0-9]{3}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1}-[0-2]{1}[0-9]{1}:[0-6]{1}[0-9]{1}:[0-6]{1}[0-9]{1}/; 
	if(date_pattern.test(date))
		return true;

   return false;
}

//============== Check Phone Number ====================
function isPhoneNumber(field) {
	var phone = strim(field.value);
	
	/*if(isEmpty(phone)){
		return false;
	}*/
	var phone_pattern = /[0-9]{3}-[0-9]{3}-[0-9]{4}/; 
	if(phone_pattern.test(phone))
		return true;
	/*	
	alert("Phone not in valid form!");
   field.focus();
   */
   return false;
}
//============== Check Email Address ===================
function isEmail(field) {
  var email = strim(field.value);
  
  /*if (isEmpty(email))
    {     
       return false;
    }
	*/
  var email_pattern = /^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i;
  if (email_pattern.test(email))
     return true;
   /*   
   alert("E-mail not in valid form!");
   field.focus();
   */
   return false;

}
//============== Check Account Code ===================
function isAcCode(field) {
  var accode = strim(field.value);
  
  var acc_pattern = /[0-9a-zA-Z]{13}/; 
  if ((acc_pattern.test(accode)) && (accode.length == 13))
     return true;
   return false;
}
//============== Confirming for Empty Field =================
function check_empty(form){
	var ret;
		ret=window.confirm("هناك حقول لم يتم تعبئتها, هل تريد المتابعة وتركها فارغة؟");
	return ret
}

//============== Confirming for Delete =================
function del_confirmation(form){
	var ret;
		ret=window.confirm("هل أنت بالفعل تريد القيام بالحذف ؟");
	if(ret){
		return true;
	}
	else{
		form.reset();
		return false; 
	}
}
//============== Check if any CheckBox is selected =====
function check_form_select(form){
	//var num_checked=0;
	var numelements = form.elements.length;
    for (var i= 0; i < numelements; i++)
    if ( (form.elements[i].type == "checkbox")  && (form.elements[i].checked) ){
		//num_checked++;
		return del_confirmation(form);
	}
	/*If it go out from the above Loop, then the user didn't check any checkbox. 
	  Print error message and return false.                                     */
	alert ("لم يتم اختيار أي سجل لإجراء الحذف ؟");
	return false;
}
//============== Check if any Radio is selected =====
function check_form_radio(form){
	//var num_checked=0;
	var numelements = form.elements.length;
    for (var i= 0; i < numelements; i++)
    if ( (form.elements[i].type == "radio")  && (form.elements[i].checked) ){
		return true;
	}
	/*If it go out from the above Loop, then the user didn't check any checkbox. 
	  Print error message and return false.                                     */
	alert ("لم يتم اختيار أي سجل ؟");
	return false;
}
//============== Check the Form ========================
//============== for (Required elements ================
//============== + Email elements ======================
//============== + Phone No elements ===================
function check_form(form){
	var num_required=0;
	var numelements = form.elements.length;

	var new_pass = "";
    for (var i= 0; i < numelements; i++){
		form.elements[i].value = strim(form.elements[i].value);//trim all values
		if ( (form.elements[i].id == "required")  && (isEmpty(form.elements[i].value)) ){
		 alert ("هناك بعض الحقول مطلوبة ولكنك لم تقم بتعبئتها ؟");
		 form.elements[i].focus();
		 return false;
	    }
		else if ( (form.elements[i].id == "insert_required")  && (isEmpty(form.elements[i].value)) ){
		 form.elements[i].value="No Value";
		 return false;
	    }
		else if ( (form.elements[i].id == "check_empty")  && (isEmpty(form.elements[i].value)) ){
		 return check_empty();
	    }
	 	else if( (form.elements[i].id == "email_required") && ( !isEmail(form.elements[i]) ) ) {
		 alert ("خطأ في عنوان البريد الالكتروني ؟");
		 form.elements[i].focus();
		 return false;
	    }
		else if( (form.elements[i].id == "email") && (!isEmpty(form.elements[i].value)) && ( !isEmail(form.elements[i]) ) ){
		 alert ("خطأ في عنوان البريد الالكتروني ؟");
		 form.elements[i].focus();
		 return false;
	    }
	 	else if( (form.elements[i].id == "phone_no_required") && ( !isPhoneNumber(form.elements[i]) ) ){
		 alert ("خطأ في صيغة رقم الهاتف, (الصيغة يجب أن تكون من الشكل: 0000-000-000)؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "phone_no") && (!isEmpty(form.elements[i].value)) && ( !isPhoneNumber(form.elements[i]) ) ){
		 alert ("خطأ في صيغة رقم الهاتف, (الصيغة يجب أن تكون من الشكل: 0000-000-000)؟");
		 form.elements[i].focus();
		 return false;
	 	}		
		else if( (form.elements[i].id == "date_required") && ( !isValidDate(form.elements[i]) ) ){
		 alert ("خطأ في صيغة التاريخ المدخل, (الصيغة يجب أن تكون من الشكل: السنة-الشهر-اليوم, وبشكل رقمي )؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "date") && (!isEmpty(form.elements[i].value)) && ( !isValidDate(form.elements[i]) ) ){
		 alert ("خطأ في صيغة التاريخ المدخل, (الصيغة يجب أن تكون من الشكل: السنة-الشهر-اليوم, وبشكل رقمي )؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "datetime_required") && ( !isValidDateTime(form.elements[i]) ) ){
		 alert ("خطأ في صيغة التاريخ المدخل, (الصيغة يجب أن تكون من الشكل: السنة-الشهر-اليوم-الساعة:الدقيقة:الثانية, وبشكل رقمي )؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "datetime") && (!isEmpty(form.elements[i].value)) && ( !isValidDateTime(form.elements[i]) ) ){
		 alert ("خطأ في صيغة التاريخ المدخل, (الصيغة يجب أن تكون من الشكل: السنة-الشهر-اليوم-الساعة:الدقيقة:الثانية, وبشكل رقمي )؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "adv_no_required") && ( !isValidAdvNo(form.elements[i]) ) ){
		 alert ("خطأ في صيغة رقم الإعلان, (الصيغة يجب أن تكون من الشكل: السنة - الرقم )؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "adv_no") && (!isEmpty(form.elements[i].value)) && ( !isValidAdvNo(form.elements[i]) ) ){
		 alert ("خطأ في صيغة رقم الإعلان, (الصيغة يجب أن تكون من الشكل: السنة - الرقم )؟");
		 form.elements[i].focus();
		 return false;
	 	}		
		else if( (form.elements[i].id == "ac_code_required") && ( !isAcCode(form.elements[i]) ) ){
		 alert ("خطأ في صيغة الحاساب المدخل, الصيغة يجب أن تتضمن 13 محرف ؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "new_password") && (isEmpty(form.elements[i].value)) ){
		 alert ("كلمة السر الجديدة يجب أن لا تكون فارغة ؟");
		 form.elements[i].focus();
		 return false;
	 	}
		else if( (form.elements[i].id == "new_password") && (!isEmpty(form.elements[i].value)) ){	
		 new_pass = form.elements[i].value;
	 	}
		else if( (form.elements[i].id == "confirm_password") &&  ( form.elements[i].value !=  new_pass ) ){
		 alert ("لم يتم التطابق بين كلمة السر الجديدة و تأكيد كلمة السر ؟");
		 form.elements[i].focus();
		 return false;
	 	}
	}//end for
	return true;

}
//=============== Developed by Ahmad Z. Tibi  ==============
//=============== www.geocities.com/ahmd_tibi ==============