﻿function getElementsByName_iefix(tag, name) {
     
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

function fix_ie_date(){
	 var browserName=navigator.appName; 
	 if (browserName=="Microsoft Internet Explorer")
	 {
		var elements = getElementsByName_iefix('td', 'ie_date_fix');
		fix_date_elements(elements);
		elements = getElementsByName_iefix('div', 'ie_date_fix');
		fix_date_elements(elements);
		elements = getElementsByName_iefix('span', 'ie_date_fix');
		fix_date_elements(elements);
	 }
}

function fix_date_elements(elements){
	for(i = 0; i < elements.length; i++) {
		year = elements[i].innerHTML.substring(0, 4);
		month = elements[i].innerHTML.substring(5, 7);
		day = elements[i].innerHTML.substring(8, 10);
		
		if(month.substring(0, 1) == '۱' || (month.substring(0, 1) == '٠' && year == '۱٣۹٠')){
			elements[i].innerHTML = year + 'l' + month + 'l' + day + '&nbsp;';
		}
	}
}

// JAVASCRIPT FORM VALIDATION

var form_submit_btn = new Object();
function init_form_validation(oForm, submit_btn){
	var fname = oForm.name;
	form_submit_btn[fname] = submit_btn;
	for(var i = 0; i < oForm.elements.length; i++){
		// onclick ro check mikonim. agar select bood onchange
		if(oForm.elements[i].tagName == 'select'){
			oForm.elements[i].onchange = function(){ return check_field_validation(this); }
		}else{
			oForm.elements[i].onchange = function(){ return check_field_validation(this); }
		}
	}
	oForm.onsubmit = function() { 
		if(check_form_validation(this) == 1){
			return true;
		}else{
			alert('مقادیر فرم به درستی تکمیل نشده است.');
			return false;
		}
	};
}


function check_form_validation(oForm){
	var fname = oForm.name;
	var valid = 1;
	for(var i = 0; i < oForm.elements.length; i++){
		valid = valid * check_field_validation(oForm.elements[i]);
	}
	return valid;
}

function check_field_validation(oElement){	
	if(oElement == null) return 1;
	// class e validation ro peyda mikonim
	class_name = oElement.className;
	var valid_required = 1;
	var valid_email = 1;
	var valid_url = 1;
	var require_validation = 0;
	// baste be classe validation check mikonim va valid mikonim.
	if(class_name.search('validation_required') != -1){
		require_validation = 1;
		if(oElement.value != null && oElement.value != ''){ // valid
			
		}else{
			valid_required = 0;
		}
	}
	if(class_name.search('validation_email') != -1){
		require_validation = 1;
		if(oElement.value == '' || oElement.value == null || validateEmail(oElement.value)){ // valid
			
		}else{
			valid_email = 0;
		}
	}
	if(class_name.search('validation_url') != -1){
		require_validation = 1;
		if(oElement.value == '' || oElement.value == null || validateUrl(oElement.value)){ // valid
			
		}else{
			valid_url = 0;
		}
	}
	
	var valid = valid_required * valid_email * valid_url;
	if(require_validation == 1){
		if(valid == 1){
			document.getElementById('img_' + oElement.id).src = '/images/icon/tick.png';
		}else{
			document.getElementById('img_' + oElement.id).src = '/images/icon/delete.png';
		}
	}
	
	if(require_validation == 0) return 1;
	else return valid;
}

function validateEmail(email) 
{ 
 var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
 return email.match(re);
}

function validateUrl(url){
    var RegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
}

