﻿function $_get(element)
{
    return document.getElementById(element);
}

function invertShow(element, div)
{
    $_get(div).style.display = (element.checked) ? "inline" : "none";
}

function Agree(element, btn)
{
    $_get(btn).disabled = (element.checked) ? false : true;
}

function IssueDateEnable(element, div, validators)
{
    invertShow(element, div);
    
    ValidatorsDisabled(validators, element.checked);
}

function ValidatorsDisabled(validators, condition)
{
    for(var i = 0;i < validators.length;i++)
        eval(validators[i] + '.enabled = ' + condition + ';');
}

function CheckLeakage(element)
{
    if($_get(element).value != "0")
    {
        alert(".داوطلب گرامی در صورتی که کسر خدمت داشته باشید مجاز به ادامه ثبت نام نمی باشید");
        return false;
    }
    
    return true;
}

function DigitCheck(element)
{
    element.value = element.value.replace(/[^\d]/g, "");
}

function UpdateUniversityType(element, nameElement, validator)
{
    if(element.value >= 100)
    {
        $_get(nameElement).disabled = false;
        $_get(nameElement).className  = "textbox";
        
        ValidatorsDisabled([validator], true);
        
    }
    else
    {
        $_get(nameElement).disabled = true;
        $_get(nameElement).className  = "textboxDisable";
        
        ValidatorsDisabled([validator], false);
    }
}

function PersianKeyPress(e) 
{
	if(!document.all)
		return;
		
    var langFarsi = true;
    var farsikey = [	
	    0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF, 
	    0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,      
	    0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,      
	    0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,      
	    0x066C, 0x0624, 0x200C, 0x0698, 0X064a, 0x064D, 0x0625, 0x0623,      
	    0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,      
	    0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,            
	    0x0058, 0x0650, 0x0643, 0x062C, 0x0698, 0x0686, 0x00D7, 0x0640,
	    0x067E, 0x0634, 0x0630, 0x0632, 0X06cc, 0x062B, 0x0628, 0x0644,            
	    0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x0626, 0x062F, 0x062E,            
	    0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,            
	    0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E            
    ];

    var key = window.event.keyCode;
     
    if (key == 13 || key == 27 || key == 8)
      return;

    if (key < 0x0020 || key >= 0x00FF)
    {
      alert("Please Change Your Windows Language Into English.");
      window.event.keyCode ="";
      return;
    }
    
    if (langFarsi) 
    {
      var el = event.srcElement;
      var objRegExp = new RegExp("[A-Za-z\x27\x2C\x3B\x5B\x5C\x5D\x7C]");
      var validate_key = objRegExp.test(String.fromCharCode(key));
      if ((validate_key || (key==92)) && (key != 0x200C) && (el.value.lastIndexOf(String.fromCharCode(1740)) == el.value.length - 1) && el.value.length > 0) {
         el.value = el.value.slice(0, -1);
         el.value += String.fromCharCode(1610);
      }
      if (key == 0x0020 && window.event.shiftKey)
         window.event.keyCode = 0x200C;
      else
         window.event.keyCode = farsikey[key - 0x0020];
    }
    return true;
}

function CheckAverageInt(sender, args)
{
    var val = args.Value;
    val = val.split('*');
    
    if($_get(val[0]).value == "")
    {
        args.IsValid = false;
        return;
    }
    
    var average = parseInt($_get(val[0]).value);
    var parent = parseInt($_get(val[1]).value);
    var uniType = parseInt($_get(val[2]).value);
    var grade = parseInt($_get(val[3]).value);
    var isScholarship = val[4] == 1;
    
    //var min = 15;
    var min = 17;
    
//    if(parent == 1 || uniType < 100)
//        min = 14;

    if(parent == 1)
        min = 16;
        
    if(uniType < 100)
    {
        min = 14;
        min += (grade == 1) ? 1 : 0;
    }
    
    if(uniType == 100 || uniType == 101)
    {
        min = 15;
        min += (grade == 1) ? 1 : 0;
    }
    
    min = (uniType == 0 || isScholarship) ? 15 : min;
    
    //min += (grade == 1) ? 1 : 0;
    
    //min = (uniType == 0 || uniType == 11) ? 10 : min;
    
    args.IsValid = (average < 20 && average >= min);
}

function NationalCodeCheck(sender, args)
{
    var nationalCode = args.Value;
    args.IsValid =  IsNationalCode(nationalCode);
}

function TelCheck(sender, args)
{
    var tel = args.Value;
    args.IsValid =  (tel.match(/^0\d+$/));
}

function IsNationalCode(nationalCode)
{   
    if(!nationalCode.match(/^\d{10}$/) || nationalCode.match(/^(\d)\1{9}$/))
        return false;   
    
    var c = parseInt(nationalCode.charAt(9));
    var n = 0;
    for(var i = 0;i <= 8;i++)
        n += parseInt(nationalCode.charAt(i)) * (10 - i);

    r = n - parseInt(n/11)*11;
    
    if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
        return true;
    
    return false;
}

function PostalCodeCheck(sender, args)
{
    var postalCode = args.Value;
    args.IsValid =  IsPostalCode(postalCode);
}

function IsPostalCode(postalCode)
{   
    //return postalCode.match(/(^[13-9]{5}$)|(^[13-9]{10}$)/);
    return postalCode.match(/^[13-9]{10}$/);
}

function EmailCheck(sender ,args)
{
    var email = args.Value;
    args.IsValid = IsEmail(email);
}

function IsEmail(email)
{
    return email.match(/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/);
}

function WebDateTimeCheck(sender, args)
{
    var WebDateTimeElement = args.Value;
    args.IsValid = !IsWebDateTimeNull(WebDateTimeElement);
}

function IsWebDateTimeNull(el)
{
    return eval(el + ".cal.isNull");
}

function PriorityCombo(baseId, index, hidden)
{
    if(index == 5)
    {
        UpdateComboHidden(baseId, hidden);
        return;
    }
        
    var cmb = $_get(baseId + index);
    var nextCmb = $_get(baseId + (index + 1));
    
    var tmp = nextCmb.options.length;

    for(var j = 0;j < tmp;j++)
        nextCmb.remove(0);
    
    nextCmb.disabled = true;
    nextCmb.className = "textboxDisable";
    
    if((index != 1 && cmb.selectedIndex == 0) || ((index == 1 &&cmb.options.length <= 1) || (index != 1 &&cmb.options.length <= 2)))
    {
        PriorityCombo(baseId, index + 1, hidden);
        return;
    }
    
    nextCmb.options[nextCmb.options.length] = new Option("-----", "-1");
    
    for(var i = 0;i < cmb.options.length;i++)
    {
        if((index != 1 && i == 0) || i == cmb.selectedIndex)
            continue;
        
        nextCmb.options[nextCmb.options.length] = new Option(cmb.options[i].text, cmb.options[i].value);
    }
  
    nextCmb.disabled = false;
    nextCmb.className = "textbox";
    
    PriorityCombo(baseId, index + 1, hidden);
}

function UpdateComboHidden(baseId, hiddenId)
{
    var str = "";
    
    for(var i = 1;i <= 5;i++)
    {
        if($_get(baseId + i).value == '')
            break;
            
        str += '*' + $_get(baseId + i).value;
    }
    
    $_get(hiddenId).value = str;
}

function DoPrint()
{
    try
    {
        document.execCommand('print', false, null);
    }
    catch(e)
    {
        window.focus();
        window.print();
    }
}