//BEGIN: redirect to login page if session out 
/*var urlParameters = window.location.href;
parameterPair = urlParameters.split('/');
var checkval	=	'1';
for(var i=0;i<parameterPair.length;i++) {
	if(parameterPair[i]=='Manage')
		checkval	=	0;
}
if(checkval==1)
	var timer = setInterval('checkSessionOut()', 12000 );*/
//END: redirect to login page if session out 

/*
 * Function  : updateTips
 * Purpose   : Display error message or tips
 * Arguments : t - text to display, elmError - id of DOM element to dispaly message 
 */
function updateTips(t,elmError) {
	var container = elmError + '_container';
	//alert(' container---->'+container+' elmError---->'+elmError+' t--->'+t);
	$("#" + elmError).text(t);
	$("#" + container).show();
	$("#errorFlag").val(1);
	//alert('test444');
}
function updateTips1(t,elmError) {
	var container = elmError + '_container';
	//console.log(container + ' , ' + t);
	$("#" + elmError).text(t);
	$("#" + container).show();
	$("#errorFlag").val(1); 

}
//Charecters
function checkLength(element,text,min,max,elmError) 
{
	if (checkBlank(element,text,elmError)) 
	{ //check for blank
		var tips = '';
		var length = element.val().length;
		if ((min != 0 && max != 0) &&  ( length > max || length < min ) )
			tips = "Length of " + text + " must be between "+min+" to "+max+".";
		else if((min !=0 && max == 0) && (length < min))
		{
				tips =  "Length of " + text + " must be minimum "+min+" letters.";
		}
		else if((min == 0 && max != 0) && (length > max))
		{
				tips = "Length of " + text + " must be maximum "+max+" letters."
		}
		if (tips != 0) {
			element.addClass('ui-state-error');
			updateTips(tips,elmError);
			return false;
		}
		return true;	
	}
}
//BEGIN:Number length
function checkLengthNumber(element,text,min,max,elmError,pageget) 
{
	if (checkBlank(element,text,elmError)) 
	{ //check for blank
		var tips = '';
		var length = element.val().length;
		
		if(pageget == 'employee')
			lengthget	=	3;
		else if(pageget == 'promotional')
			lengthget	=	4;
		if((length < lengthget))
		{
			tips =  "Length of " + text + " must be minimum "+min+" digit.";
		}
		if(pageget == 'employee')
		{
			if(element.val()==00)
			{
				tips =  "Length of "+ text + "greater then 0.";
			}
		}
		if(pageget == 'promotional')
		{
			if(element.val()==0000)
			{
				tips =  "Length of "+ text + " greater then 0. ";
			}
		}	
		if (tips != 0){
			element.addClass('ui-state-error');
			updateTips(tips,elmError);
			return false;
		}
		return true;	
	}
}
//END:Number 


function checkBlank(element,text,elmError) 
{
	if($.trim($(element).val()) == "") {
		element.addClass('ui-state-error');
		//updateTips(" * " + text + " is required.", elmError);
		//alert('test2222');
		updateTips("* Le champ  " + text + " est vide.", elmError);
		return false;
	} else {
		return true;
	}
}

function updateTips2(t,elmError) 
{	
	$("#" + elmError).text(t);
	$("#" + elmError).show();
	$("#errorFlag").val(1); 
}


function checkOption(element,text,elmError){
	var flag  = $(element).is(':checked');
	if(flag  == false) {
		//element.addClass('ui-state-error');
		updateTips(" * " + text + " est vide.", elmError);
		return false;
	}
	return true;
}
function checkBlank1(element,text,elmError) {
	if($.trim($(element).val()) == "") {
		element.addClass('ui-state-error');
		updateTips(" * " + text + " est vide.", elmError);
		return false;
	} else {
		return true;
	}
}
/*
function checkNull(element,text,elmError) {
	if($.trim($(element).val()) == "") {
		element.addClass('ui-state-error');
		updateTips(" * " + text + " should have been choosed.", elmError);
		return false;
	} else {
		return true;
	}
}*/

function isNumberKey(evt) {
	var keyCode = (evt.which?evt.which:(evt.keyCode?evt.keyCode:0))	 
	// backspace, delete, left arrow, right arrow, tab keys
	if ((keyCode == 8) || (keyCode == 46) || (keyCode == 37) || (keyCode == 39) || (keyCode == 9) || (keyCode == 13) ) return true;
	if ((keyCode < 48) || (keyCode > 57)) return false;
	return true;
}
function NumberKeySpecialChar(evt) { //All name fields number not allowed condition
	var keyCode = (evt.which?evt.which:(evt.keyCode?evt.keyCode:0))	 
	if ((keyCode == 8) || (keyCode == 46) || (keyCode == 9) ) return true;
	if ((keyCode >= 33) && (keyCode <= 57) || (keyCode == 94) )  return false;
	return true;
}

function checkRegexp(element,regexp,text,elmError) {
	//alert('S'+ regexp.exec(element.val()) + 'E');
	if ( !( regexp.test( element.val() ) ) ) {
		element.addClass('ui-state-error');
		updateTips(text, elmError);
		return false;
	} else {
		return true;
	}
}
//formValid = formValid && checkRegexp(firstname,/^[a-z]([0-9a-z_]|\s)+$/i,"First name may consist of a-z, A-Z, 0-9, underscores, begin with a letter.");

function compareElements(element1, element2, text,elmError){
	if($.trim($(element1).val()) != $.trim($(element2).val()) ) {
		element2.addClass('ui-state-error');
		updateTips(text, elmError);
		return false;
	} else {
		return true;
	}
}

//Begin: Paging 
//set the newly selected per page value
setPerPage = function(obj) {
	$("#per_page").val(obj);
	$("#cur_page").val(1);
	$("#paging").submit();
}

//set paging control values - field name to sort, sorting type, current page
setPagingControlValues = function(cur_page, field_name, order_type) {
	$("#order_by").val(cur_page)
	$("#order_type").val(field_name)
	$("#cur_page").val(order_type)
	$("#paging").submit();
}
//End: Paging

//Begin : Display  Default text
displayDefaultText = function(obj,string) {
	if (obj.value == '')
		obj.value = string;
}
//End: Display  Default text
//Begin : Clear Default text
clearDefaultText = function(obj,string) {
	if (obj.value == string)
		obj.value = '';
}
//End: Clear Default text
//BEGIN : check and uncheck all the check box in the from
check = function(id)
{
	$("#checklist").hide();
	$("#unchecklist").hide();
	var frm = 	document.getElementById(id); 
	if (frm.titlecheckbox.checked)
	{
		checkAll(id);
		$("#checklist").hide();
		$("#unchecklist").show();
	}	
	else
	{
		uncheckAll(id);
		$("#checklist").show();
		$("#unchecklist").hide(); 
	}	
}
//check all the check box in the form
checkcertificate = function(id)
{
	$("#checklist").hide();
	$("#unchecklist").hide();
	var frm = 	document.getElementById(id); 
	if (frm.titlecheckbox.checked)
	{
		checkAll(id);
		$("#checklist").hide();
		$("#unchecklist").show();
	}	
	else
	{
		uncheckAll(id);
		$("#checklist").show();
		$("#unchecklist").hide(); 
	}	
}
//check all check box using link check
linkcheck = function(id,getFlag)
{
	$("#checklist").hide();
	$("#unchecklist").hide();
	var frm = 	document.getElementById(id); 
	if(getFlag== '1') { 
		checkAll(id);
		$("#checklist").hide();
		$("#unchecklist").show();
	}
	if(getFlag== '0') { 
		uncheckAll(id);
		$("#checklist").show();
		$("#unchecklist").hide(); 
		
	}
}
//Delete all function form load
formSumbit = function(id)
{
	var frm = 	document.getElementById(id); 
	$("form")[1].submit();
}
//Un check all the check box in the form
confirmDelete = function(form_obj)
{			
	flag=0;
	for (var i = 0; i < form_obj.elements.length; i++){
	  if(form_obj.elements[i].checked){
			flag = 1;
			break;
	  }
	}
	if(flag==0)
	{
		alert('Veuillez sélectionner une liste');
		return false;
	}
	return (confirm('Êtes-vous sûr de supprimer cet enregistrement?'));
}


function checkSelection(form_obj){
	flag=0;
	for (var i = 0; i < form_obj.elements.length; i++){
	  if(form_obj.elements[i].checked){
			flag = 1;
			break;
	  }
	}
	if(flag==0)
	{
		alert('Please select atleast a record to view');
		return false;
	}
	return true;
}

confirmprint = function(form_obj)
{			
	flag=0;
	for (var i = 0; i < form_obj.elements.length; i++){
	  if(form_obj.elements[i].checked){
			flag = 1;
			break;
	  }
	}
	if(flag==0)
	{
		alert('Veuillez sélectionner une liste');
		return false;
	}
	return (true);
}
confirmDel = function()
{	
	flag=0;
	if(document.forms.discountlist.row_id.length>1) 
	{ 
		for (var i = 0; i < document.forms.discountlist.row_id.length; i++)
		{
		  if(document.forms.discountlist.row_id[i].checked){
				flag = 1;
				break;
		  }
		}
	}
	else if (document.forms.discountlist.row_id.checked) { 
		flag = 1;
	}
	if(flag==0) { 
		alert('Veuillez sélectionner une liste');
		return false;
	}
	if(flag==1)
		if(confirm('Êtes-vous sûr de supprimer cet enregistrement?'))
			document.forms.discountlist.submit();
}
//Un check all the check box in the form submitSociale
checkAll = function(id)
{
	var frm = document.getElementById(id);
	for (var i = 0; i < frm.elements.length; i++) {
	  if (frm.elements[i].name.indexOf('[]') > 0)
 	 	  frm.elements[i].checked = true;
	 }
	if (frm.titlecheckbox)
		frm.titlecheckbox.checked = true;
}
//Un check all the check box in the form
uncheckAll = function(id)
{
	var frm = document.getElementById(id);
	for (var i = 0; i < frm.elements.length; i++) { 
	   if (frm.elements[i].name.indexOf('[]') > 0)
 	 	  frm.elements[i].checked = false;
	 }
	if (frm.titlecheckbox)
		frm.titlecheckbox.checked = false;
}
/*
$('#check-all').click(function(){
	 $('#example input[type=checkbox]').checkBox('changeCheckStatus', true);
	 return false;
 });
	 
$('#uncheck-all').click(function(){ 
	$('#example input[type=checkbox]').checkBox('changeCheckStatus', false);
	return false; 
}); */

//BEGIN: phone number validation
/*function validatePhoneNo(phone,element)
{
alert(phone);

var redigit	=	('/^\d{3}d{-}d{3}d{-}d{4}$',phone)
	
	if((redigit)==-1)
	{
		alert("false");
		return false;
	}	
	else
	alert("false");
	element.addClass('ui-state-error');
		updateTips(" * " + text + " is valid.");
	 
		return false;
  /*if(ereg('^[2-9]{1}[0-9]{2}-[0-9]{3}-[0-9]{4}$', phone))
     return true;
  else
     return false;
}*/
//END: phone number validation


/*
 * Function : countCharacter
 * Purpose  : Count number of character entered
 * elmTarget: id of DOM element where you entered text
 * elmCount : id of DOM element where you display remaing character count
 * maxlimit : Maximum number of character disply
 */
function countCharacter(elmTarget, elmCount, maxLimit){

	var charCount = $("#" + elmTarget).val().length;
	if (charCount > maxLimit) {
	    var notes = $("#" + elmTarget).val(); 
		 $("#" + elmTarget).val(notes.substring(0, maxLimit)); //Truncate the overflow text
		 //Display error message if needed
	}
	else {
		 $("#" + elmCount).val(maxLimit - charCount);  //Display remaining keystroke count
	}
}
//End: Count number of character entered
/*
 * Function :
 * Purpose  : Hide error container element
 * elmarray : dom element array
 *
 */
function hideDomElement(elmArray) {
	$.each(elmArray, function() {
		container = this + '_container';
		$('#' + container).hide();
	 });
}
//End: Hide DOM element

function hideDomElement1(elmArray) {
	$.each(elmArray, function() {		
		container = this;
		$('#' + container).hide();
	 });
}


//BEGIN Is number
isNumber = function(evt) {
	var keyCode = (evt.which?evt.which:(evt.keyCode?evt.keyCode:0))	 
	// backspace, delete, left arrow, right arrow, tab keys
	if ((keyCode == 8) || (keyCode == 46) || (keyCode == 37) || (keyCode == 39) || (keyCode == 9)) return true;
	if ((keyCode < 48) || (keyCode > 57)) return false;
	return true;
}
//End Is number

//Begin: Date Validation
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

/*
 * Function : compareDate
 * Purpose  : Compare two date 
 * datefrom : from date
 * dateto   : to date
 */
 
function compareDate(datefrom,dateto)
{
	var st = datefrom.split("-")
	var ed = dateto.split("-")
	var strMonth 	= st[0];
	var strDay 		= st[1];
	var strYear 	= st[2];
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	
	var endMonth 	= ed[0];
	var endDay 		= ed[1];
	var endYear 	= ed[2];
	if (endDay.charAt(0)=="0" && endDay.length>1) endDay=endDay.substring(1);
	if (endMonth.charAt(0)=="0" && endMonth.length>1) endMonth=endMonth.substring(1);
	var smonth=parseInt(strMonth);
	var sday=parseInt(strDay);
	var syear=parseInt(strYear);
	
	var emonth=parseInt(endMonth);
	var eday=parseInt(endDay);
	var eyear=parseInt(endYear);
	
	if(syear > eyear)
	{
		return false;
	}
	if(syear == eyear && smonth > emonth)
	{
		return false;
	}
	if( (syear == eyear) && (smonth == emonth) && (sday>eday) )
	{
		return false;
	}
	return true;
}
//End: Date Validation

/* 
 * Function  		:  checkDateRange
 * Purpose   		:  Compare two date and display error message if any
 * startDate 		:  start date element object
 * endDate   		:  end date element object
 * txt1      		:  error message
 * txt2      		:  error message
 * elmError1 		:  start date error message container element object
 * elmError2        :  end date error message container element object
 * currentDateFlage :  1- start date should be today's date or greater
 */
function checkDateRange(startDate, endDate, text1, text2, elmError1, elmError2, currentDateFlag){
	var dt = new Date();
	var y  = dt.getFullYear();
	var m  = dt.getMonth()+1;
	var d  = dt.getDate();
	var today = m+'-'+d+'-'+y;
	var startDateFlag = checkDate(startDate, text1, elmError1);
	var endDateFlag   = checkDate(endDate, text2, elmError2);
	if ( startDateFlag == true && endDateFlag == true) {
		if ( currentDateFlag == 1) {
			if (compareDate(today, $.trim($(startDate).val())) == false ) {
				startDate.addClass('ui-state-error');
				updateTips( text1  + " date should be today's date or greater",elmError1);
				return false;
			}
		}
		if (compareDate($.trim($(startDate).val()) , $.trim($(endDate).val()) ) == false ) {
			endDate.addClass('ui-state-error');
			updateTips("Please enter valid date range",elmError2);
			return false;
		}
	}
	return false;
}

/*
 * Function : checkDate
 * Purpose  : Check for valid date
 * element  : date element id
 * text     : error message
 * elmError : error message container element object
 */
function checkDate(element,text,elmError) {
	if (checkBlank(element,text,elmError) == false )  //check for blank
		return false;
	var dtStr = $.trim($(element).val());
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strMonth=dtStr.substring(0,pos1);
	var strDay=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr = strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month = parseInt(strMonth);
	day   = parseInt(strDay);
	year  = parseInt(strYr);
	if (pos1==-1 || pos2==-1){
		element.addClass('ui-state-error');
		updateTips("The date format should be : mm-dd-yyyy",elmError);
		return false;
	}
	
	if (strMonth.length<1 || month<1 || month>12){
		element.addClass('ui-state-error');
		updateTips("Please enter a valid month",elmError);
		return false;
	}
	
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		element.addClass('ui-state-error');
		updateTips("Please enter a valid day",elmError);
		return false;
	}
	
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		element.addClass('ui-state-error');
		updateTips("Please enter a valid 4 digit year between "+minYear+" and "+maxYear,elmError);
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		element.addClass('ui-state-error');
		updateTips("Please enter a valid date",elmError);
		return false;
	}
	return true;
}


function checkDateType(element,text,elmError, typeflag) {
//checkDateType($('#expiration'+i),"Expiration","error"+ i+ '_msg', 1);
	if (checkDate(element,text,elmError) == false )  //check for blank
		return false;
	var dt = new Date();
	var y  = dt.getFullYear();
	var m  = dt.getMonth()+1;
	var d  = dt.getDate();
	var today = m+'-'+d+'-'+y;
	var message = '';
	if (typeflag == 1) { //check for past date
		if (compareDate(today, $.trim($(element).val())) == false ) {
			element.addClass('ui-state-error');
			updateTips( text + " date should be today's date or greater",elmError);
			return false;
		}
	}
	else {  //check for future date
		if (compareDate(today, $.trim($(element).val())) == false ) {
			element.addClass('ui-state-error');
			updateTips("start date should not be today's date or greater",elmError);
			return false;
		}
	}
	return true;
}

//BEGIN:Phone number validation
function phonenumberFormet(phoneNumber,fieldvalue,errorDisplay,text,pageName)
{
	$("#"+errorDisplay).hide();
	$("#"+fieldvalue).removeClass('ui-state-error');
	if(phoneNumber !='')
	{
		var fieldData			=	phoneNumber.replace(/\D/g,'');
		var numberlength 		=	fieldData.length;
		if(numberlength  != 10)
		{
			$("#"+fieldvalue).addClass('ui-state-error');
			updateTips( text + " is invalid.",errorDisplay);
			$("#"+errorDisplay).show();
			return false;
		}
		else
		{
			$("#"+errorDisplay).hide();
			$("#"+fieldvalue).removeClass('ui-state-error');
			phoneNumber	=	'('+fieldData.slice(0,3)+') '+fieldData.slice(3,6)+'-'+fieldData.slice(6,10)
			$("#"+fieldvalue).val(phoneNumber);
		}	
	} 
	else
	{
		if(fieldvalue =='dayPhone' && pageName =='student')
		{
			$("#"+fieldvalue).addClass('ui-state-error');
			updateTips( text + " is required.",errorDisplay);
			$("#"+errorDisplay).show();
			return false;
		}
	}
}
function CharUpper(value, name,evt){ 
  var keyCode = (evt.which?evt.which:(evt.keyCode?evt.keyCode:0));
 
  if (keyCode !=37 && keyCode !=39)
    { 
    	var values = value.toUpperCase();
	    document.getElementById(name).value = values;
	}	
}
//END:Phone number validation

/*/BEGIN:Zip code validation student
function zipCodeFormet(zipcode,fieldvalue,errorDisplay,text)
{
	$("#"+errorDisplay).hide();
		$("#"+fieldvalue).removeClass('ui-state-error');
		
	if(zipcode !='')
	{
		var numberlength 		=	zipcode.length;
		if(numberlength  != 5)
		{
			$("#"+fieldvalue).addClass('ui-state-error');
			updateTips( text + " is invalid.",errorDisplay);
			$("#"+errorDisplay).show();
			return false;
		}
	}	
}
//BEGIN:Zip code validation student*/


function checkBlank_risque(element,text,elmError) 
{
	if($.trim($(element).val()) == "") 
	{		
		element.addClass('ui-state-error');
		updateTips_risque(text, elmError);
		return false;
	} 
	else
	{
		return true;
	}
}

function updateTips_risque(t,elmError) 
{
	$("#" + elmError).text(t);	
	$("#" + elmError).show();
	$("#errorFlag").val(1); 
}
		
