

//======== == Cookies  Functions === =======
function createCookie(name, value, days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return "";
}

function eraseCookie(name) {
	createCookie(name, "", -1);
}

 //===================================== UTIL Functions ==================================


  function URLEncode(plaintext)
 {
        // The Javascript escape and unescape functions do not correspond
        // with what browsers actually do...



        var SAFECHARS = "0123456789" +                                        // Numeric
                                        "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +        // Alphabetic
                                        "abcdefghijklmnopqrstuvwxyz" +
                                        "-_.!~*'()";                                        // RFC2396 Mark characters
        var HEX = "0123456789ABCDEF";

        var encoded = "";
        for (var i = 0; i < plaintext.length; i++ ) {


                var ch = plaintext.charAt(i);


            if (ch == " ") {
                    encoded += "+";                                // x-www-urlencoded, rather than %20
                } else if (SAFECHARS.indexOf(ch) != -1) {
                    encoded += ch;
                } else {
                    var charCode = ch.charCodeAt(0);
                        if (charCode > 255) {
                            alert1( "Unicode Character '"
                        + ch
                        + "' cannot be encoded using standard URL encoding.\n" +
                                          "(URL encoding only supports 8-bit characters.)\n" +
                                                  "A space (+) will be substituted.","messageObj.close()" );
                                encoded += "+";
                        } else {
                                encoded += "%";
                                encoded += HEX.charAt((charCode >> 4) & 0xF);
                                encoded += HEX.charAt(charCode & 0xF);
                        }
                }
        } // for


        return encoded;
};



//----------------------------------------------------------------------------
function confirm_action() {   return confirm(str_sure);
}

function showLoadForm() {    $.unblockUI();
    $.blockUI("<br/>&nbsp;&nbsp;<img src='"+siteURL + '/templates/'+theme_name+'/images/ajax.gif'+"' align='absmiddle' ><b> Loading ... </b><br/><br/>", {width: 200});
}


function goConfirmForm(url_str) {
  if (confirm_action()) {
     goForm(url_str);
  }
}

function goForm(url_str, div_id) {
 showLoadForm();
 $.ajax({
   type: "GET",
   url: url_str,
   dataType: "json",
   success: function(resp) {
            if (typeof(div_id) == 'undefined') {
               $("#contentDiv").html(resp);
            } else {               $("#"+div_id).html(resp);
            }
            $.unblockUI();
   },
    error: function(nusable, resp1, resp2) {
          if (resp1 != "") alert(resp1);
          if (resp2 != "") alert(resp2);
          $.unblockUI();
    }
 }
 );

}


function goConfirmURL(url_str) {
  if (confirm_action()) {
     goURL(url_str);
  }
}

function goURL(url_str) {
  document.location = url_str;
}





function showForm(url_str, height_val, width_val) {
 if (typeof width_val == 'undefined') width_val = 500;

 showLoadForm();
 $.ajax({
   type: "GET",
   url: url_str,
   dataType: "json",
   success: function(resp) {
            $.unblockUI();
            $.blockUI(resp, {width: width_val, height: height_val, overflow : 'auto'});

    },
    error: function(nusable, resp1, resp2) {
          if (resp1 != "") alert(resp1);
          if (resp2 != "") alert(resp2);
          $.unblockUI();
    }
  }
 );
}

function ajaxFormSubmit(do_not_show_load) {   $("#recordForm").ajaxSubmit({
    dataType: "json",
    success: function(resp) {
          $("#contentDiv").html(resp);
          $.unblockUI();
    },
    error: function(nusable, resp1, resp2) {
          if (resp1 != "") alert(resp1);
          if (resp2 != "") alert(resp2);
          $.unblockUI();
    }
   });
   if (do_not_show_load != true) {   	   showLoadForm();
   } else {       $('#send_btn').attr('disabled', true);
       $('#cancel_btn').attr('disabled', true);
   }
}

function alertErrorNoData(name) {
    var msg = js_warning_part1;
    var re_msg = /\%\%fieldname\%\%/gi;
    msg=msg.replace(re_msg, $("#td_"+name).text());

    alert(msg);
}
function alertErrorNotValid(name) {
    var msg = js_warning_part2;
    var re_msg = /\%\%fieldname\%\%/gi;
    msg=msg.replace(re_msg, $("#td_"+name).text());

    alert(msg);
}
function alertErrorNotSame(name, name2) {
    var msg = js_warning_part3;
    var re_msg = /\%\%fieldname1\%\%/gi;
    msg=msg.replace(re_msg, $("#td_"+name).text());

    re_msg = /\%\%fieldname2\%\%/gi;
    msg=msg.replace(re_msg, $("#td_"+name2).text());

    alert(msg);
}

//---------------------------------------------
// ----------   VALIDATORS  -------------------

function loginSubmit() {

    re  = /[a-z0-9]+/i;
    eml = /^\s*([a-z0-9])(([\-\.]|[_]+)?([a-z0-9]+))*@([a-z0-9])((([-]+)?([a-z0-9]+))?)*(\.[a-z0-9]{2,3})?\.[a-z]{2,6}\s*$/i;

    if($("#us_email").val().search(eml) < 0)
    {
            alertErrorNotValid("us_email");
            $("#us_email").focus();
            return false;
    }

    if($("#us_pwd").val().search(re) < 0)
    {
            alertErrorNoData("us_pwd");
            $("#us_pwd").focus();
            return false;
    }


    return true;
}



function registrationSubmit() {

    re  = /[a-z0-9]+/i;
    eml = /^\s*([a-z0-9])(([\-\.]|[_]+)?([a-z0-9]+))*@([a-z0-9])((([-]+)?([a-z0-9]+))?)*(\.[a-z0-9]{2,3})?\.[a-z]{2,6}\s*$/i;

     if($("#us_realname").val().search(re) < 0)
    {
            alertErrorNotValid("us_realname");
            $("#us_realname").focus();
            return false;
    }
   if($("#us_company").val().search(re) < 0)
    {
            alertErrorNotValid("us_company");
            $("#us_company").focus();
            return false;
    }
   if($("#us_address").val().search(re) < 0)
    {
            alertErrorNotValid("us_address");
            $("#us_address").focus();
            return false;
    }
   if($("#us_phone").val().search(re) < 0)
    {
            alertErrorNotValid("us_phone");
            $("#us_phone").focus();
            return false;
    }

    if($("#us_email").val().search(eml) < 0)
    {
            alertErrorNotValid("us_email");
            $("#us_email").focus();
            return false;
    }

    if($("#us_email2").val() != $("#us_email").val())
    {
            alertErrorNotSame("us_email", "us_email2");
            $("#us_email2").focus();
            return false;
    }

       if($("#us_name").val().search(re) < 0)
    {
            alertErrorNotValid("us_name");
            $("#us_name").focus();
            return false;
    }


    if($("#us_pwd").val().search(re) < 0)
    {
            alertErrorNoData("us_pwd");
            $("#us_pwd").focus();
            return false;
    }

    if($("#us_pwd2").val() != $("#us_pwd").val())
    {
            alertErrorNotSame("us_pwd", "us_pwd2");
            $("#us_pwd2").focus();
            return false;
    }


    return true;
}


function profileSubmit() {
 
    re  = /[a-z0-9]+/i;
    eml = /^\s*([a-z0-9])(([\-\.]|[_]+)?([a-z0-9]+))*@([a-z0-9])((([-]+)?([a-z0-9]+))?)*(\.[a-z0-9]{2,3})?\.[a-z]{2,6}\s*$/i;
    
       if($("#us_realname").val().search(re) < 0)
    {
            alertErrorNotValid("us_realname");
            $("#us_realname").focus();
            return false;
    }
   if($("#us_company").val().search(re) < 0)
    {
            alertErrorNotValid("us_company");
            $("#us_company").focus();
            return false;
    }
   if($("#us_address").val().search(re) < 0)
    {
            alertErrorNotValid("us_address");
            $("#us_address").focus();
            return false;
    }
   if($("#us_phone").val().search(re) < 0)
    {
            alertErrorNotValid("us_phone");
            $("#us_phone").focus();
            return false;
    }
    
     if($("#us_name").val().search(re) < 0)
    {
            alertErrorNoData("us_name");
            $("#us_name").focus();
            return false;
    }

    if($("#us_pwd").val().search(re) < 0)
    {
            alertErrorNoData("us_pwd");
            $("#us_name").focus();
            return false;
    }


    if($("#us_pwd").val()  != $("#us_pwd2").val())
    {
            alertErrorNotValid("us_pwd2");
            $("#us_pwd2").focus();
            return false;
    }





    return true;
}



function managerSubmit() {

    re  = /[a-z0-9]+/i;
    eml = /^\s*([a-z0-9])(([\-\.]|[_]+)?([a-z0-9]+))*@([a-z0-9])((([-]+)?([a-z0-9]+))?)*(\.[a-z0-9]{2,3})?\.[a-z]{2,6}\s*$/i;

    if($("#ma_login").val().search(re) < 0)
    {
            alertErrorNotValid("ma_login");
            $("#ma_login").focus();
            return false;
    }


    if($("#ma_pwd").val().search(re) < 0)
    {
            alertErrorNoData("ma_pwd");
            $("#ma_pwd").focus();
            return false;
    }




    document.recordForm.submit();
}


function employeeSubmit() {

    re  = /[a-z0-9]+/i;
    eml = /^\s*([a-z0-9])(([\-\.]|[_]+)?([a-z0-9]+))*@([a-z0-9])((([-]+)?([a-z0-9]+))?)*(\.[a-z0-9]{2,3})?\.[a-z]{2,6}\s*$/i;

    if($("#em_login").val().search(re) < 0)
    {
            alertErrorNotValid("em_login");
            $("#em_login").focus();
            return false;
    }


    if($("#em_pwd").val().search(re) < 0)
    {
            alertErrorNoData("em_pwd");
            $("#em_pwd").focus();
            return false;
    }




    document.recordForm.submit();
}


function groupSubmit() {

    re  = /[a-z0-9]+/i;
    eml = /^\s*([a-z0-9])(([\-\.]|[_]+)?([a-z0-9]+))*@([a-z0-9])((([-]+)?([a-z0-9]+))?)*(\.[a-z0-9]{2,3})?\.[a-z]{2,6}\s*$/i;

    if($("#gr_name").val().search(re) < 0)
    {
            alertErrorNotValid("gr_name");
            $("#gr_name").focus();
            return false;
    }

   document.recordForm.submit();
}


function projectSubmit() {

    re  = /[a-z0-9]+/i;
    eml = /^\s*([a-z0-9])(([\-\.]|[_]+)?([a-z0-9]+))*@([a-z0-9])((([-]+)?([a-z0-9]+))?)*(\.[a-z0-9]{2,3})?\.[a-z]{2,6}\s*$/i;

    if($("#pr_name").val().search(re) < 0)
    {
            alertErrorNotValid("pr_name");
            $("#pr_name").focus();
            return false;
    }

   document.recordForm.submit();
}