
//Below functions is for enabling-disabling rows based on time conflict in EO vertical// 

function __pR(thisObj){
	try{
		//For unchecked check control
		var checkControlArray = new Array();
		var checkCount = 0;
		var table = null;
		if (typeof thisObj.parentNode == 'undefined' ) table = thisObj.parentNode.parentNode.parentNode.parentNode;
		else table = thisObj.parentNode.parentNode.parentNode.parentNode;
		if (table.tagName == 'TBODY')
		{
		    table = thisObj.parentNode.parentNode.parentNode.parentNode.parentNode;
		}
		var sDateToCheck = __convertToDateTime(thisObj.parentNode.getAttribute("sd"));
		var eDateToCheck = __convertToDateTime(thisObj.parentNode.getAttribute("ed"));
		for(var i=0;i<table.rows.length;i++){
		    
			var row = table.rows[i];
			var chk = row.cells[0].firstChild.firstChild;
			var sDate = __convertToDateTime(chk.parentNode.parentNode.firstChild.getAttribute("sd"));
			var eDate = __convertToDateTime(chk.parentNode.parentNode.firstChild.getAttribute("ed"));
			var result = ((sDateToCheck < sDate || sDateToCheck > eDate) &&  ( eDateToCheck <= sDate || eDateToCheck > eDate));
			if(result){
				result= ((sDate < sDateToCheck || sDate > eDateToCheck) &&  ( eDate <= sDateToCheck || eDate > eDateToCheck));
			}
			if(thisObj.checked){
				if(thisObj != chk && result == false)
				{
					row.disabled = true;
					chk.disabled = true;
					chk.checked = false;
				}
			}
			else{
				if(chk.checked){
					checkControlArray[checkCount] = chk;
					checkCount++;
				}
				if(thisObj != chk && result == false){
					row.disabled = false;
					chk.disabled = false;
				}
			}
		}
		 $('#tbRelatedEventsFees').find(':input').each(function(){
                if (this.type == 'checkbox')
                {
                    var row = $(this).parent().parent();
                    var chk = $(this);
                    var sDate =  __convertToDateTime($(this).parent().attr('sd'));
                    var eDate = __convertToDateTime($(this).parent().attr('ed'));
                    var result = ((sDateToCheck < sDate || sDateToCheck > eDate) &&  ( eDateToCheck <= sDate || eDateToCheck > eDate));
			        if(result){
				        result= ((sDate < sDateToCheck || sDate > eDateToCheck) &&  ( eDate <= sDateToCheck || eDate > eDateToCheck));
			        }
			        if(thisObj.checked){
				        if(result == false)
				        {
					        row.prop('disabled','disabled');
					        chk.prop('disabled','disabled');
					        chk.prop('checked','');
				        }
			        }
			        else{
				        if(chk.is(':checked')){
					        checkControlArray[checkCount] = chk;
					        checkCount++;
				        }
				        if(result == false){
					         row.prop('disabled','');
					        chk.prop('disabled','');
				        }
			        }
                }
        });
		//Recalculate for enable rows
		if(!thisObj.checked){__Recalculate(checkControlArray);}
	}
	catch(e){}
}

//check if there are master subevents; if true then allow no registration fees checked
function __pRx(thisObj){
	var countmaster = 0;
	var countnomaster = 0;
	var table = document.getElementById('tbSubEventsFees');
	if (table==null)
	    return;
	//alert(thisObj.value);
	if (thisObj.value == document.Form1.selectedrate.value) 
	{
		for(var i=0;i<table.rows.length;i++){
			var row = table.rows[i];
			var chk = row.cells[0].firstChild;
			//alert(chk.getAttribute("prf"))
			if (chk.getAttribute("prf") == "Y") {
				row.disabled = true;
				chk.disabled = true;
				chk.checked = false;
				countnomaster++;
			}
			else
			countmaster++;
		}
		
		if (countmaster>0) {
			thisObj.checked=false; 
			document.Form1.selectedrate.value="";
		}
		else {
			alert("You have to choose a fee in order to register for this meeting.");
			//reenable disabled rows
			for(var i=0;i<table.rows.length;i++){
				var row = table.rows[i];
				var chk = row.cells[0].firstChild;
				if (chk.getAttribute("prf") == "Y") {
					row.disabled = false;
					chk.removeAttribute("disabled");
					//chk.disabled = false;
				}
			}
		}
	}
	else {
		//alert("choosing"); 
		document.Form1.selectedrate.value=thisObj.value;
		
		//make sure all other subevents are available for purchase
		for(var i=0;i<table.rows.length;i++){
			var row = table.rows[i];
			var chk = row.cells[0].firstChild;
			row.disabled = false;
			chk.removeAttribute("disabled");
			//chk.disabled = false;
		} 

		//all previuosly chosen should be checked and
		//all previuosly unavailable should be unavailable
		for(var i=0;i<table.rows.length;i++){
			var row = table.rows[i];
			var chk = row.cells[0].firstChild;
			if (chk.checked) __pR(chk);
		}
		
	}
}

function __pRxRE(thisObj, relEvtRowIndex) {
    //alert("inside __pRxRE");
    //alert(relEvtRowIndex);
    //var relEvtRowIndex = thisObj.parentNode.parentNode.parentNode.rowIndex;
    //alert(relEvtRowIndex);
    var tableRelEvt = document.getElementById('tbRelatedEventsFees');
    //alert(tableRelEvt.rows.length);
    var table = null;
    var table1 = null;
    if (relEvtRowIndex < tableRelEvt.rows.length - 1) {
        table = tableRelEvt.rows[relEvtRowIndex].nextSibling.cells[0].children[0];
        if (table.tagName.toUpperCase() != "TABLE") {
            table = null;
        }
        if (tableRelEvt.rows[relEvtRowIndex + 1].nextSibling != null) {
            table1 = tableRelEvt.rows[relEvtRowIndex + 1].nextSibling.cells[0].children[0];
            if (table1.tagName.toUpperCase() != "TABLE") {
                table1 = null;
            }
        }
    }
    if (table == null) {
        return;
    }

    var j = 1;
    if (table1 != null) j = 0;

    if (thisObj.checked) {
        //alert("thisObj.checked" + thisObj.checked)
        for (var i = 0; i < table.rows.length; i++) {
            var row = table.rows[i];
            var chk = row.cells[j].firstChild.firstChild;

            if (chk != null) {
                //alert(thisObj.id);
                //alert(chk.id);
                if (chk.checked && chk != thisObj) {
//                    alert("chk not");
                    chk.removeAttribute('checked');
//                    alert(chk.checked)
                }
                else if (chk == thisObj) chk.checked = true;
                else {
//                    alert("chk has no property");
                    chk.removeAttribute('checked');
                }
            }
            else {
                //alert("chk is null")
                chk = row.cells[0].firstChild.firstChild;
                //alert(thisObj.id);
                //alert(chk.id);
                if (chk != thisObj) {
                    //alert("not")
                    chk.removeAttribute('checked');
                    //alert(chk.checked)
                }
                else {
                    //alert("yes")
                    chk.checked = true;
                    //alert(chk.checked)
                }

            }
        }

    
//        for (var i = 0; i < table.rows.length; i++) {
//            var row = tbSubEventFees.rows[i];
//            var spn = row.cells[0].firstChild;
//            var chk = row.cells[0].firstChild.firstChild;
//            if (chk.parentNode.getAttribute("prf") == "Y") {
//                row.disabled = true;
//                spn.disabled = true;
//                chk.disabled = true;
//                chk.checked = false;
//            }
//        }
    }
}

//check if there are master subevents; if true then allow no registration fees checked
function __pRxME(thisObj, tbEventFeesID, tbSubEventFeesID) {
    var evtRowIndex = thisObj.parentNode.parentNode.rowIndex;
    var tbEventFees = document.getElementById(tbEventFeesID);
    var tbSubEventFees = document.getElementById(tbSubEventFeesID);

    if (tbEventFees == null) return;

    if (!thisObj.checked) {
//        for (var i = 0; i < tbEventFees.rows.length; i++) {
//            var row = tbEventFees.rows[i];
//            var spn = row.cells[0].firstChild;
//            var rdo = row.cells[0].firstChild.firstChild;
//            if (rdo.parentNode.getAttribute("prf") == "Y") {
//                row.disabled = true;
//                spn.disabled = true;
//                rdo.disabled = true;
//                rdo.checked = false;
//            }
//        }

        if (tbSubEventFees == null) return;

        for (var i = 0; i < tbSubEventFees.rows.length; i++) {
            var row = tbSubEventFees.rows[i];
            var spn = row.cells[0].firstChild;
            var chk = row.cells[0].firstChild.firstChild;
            if (chk.parentNode.getAttribute("prf") == "Y") {
                row.disabled = true;
                spn.disabled = true;
                chk.disabled = true;
                chk.checked = false;
            }
        }
    }
    else {
//        for (var i = 0; i < tbEventFees.rows.length; i++) {
//            var row = tbEventFees.rows[i];
//            var spn = row.cells[0].firstChild;
//            var rdo = row.cells[0].firstChild.firstChild;
//            row.disabled = false;
//            spn.disabled = false;
//            rdo.disabled = false;
//        }
//
        //all previuosly chosen should be checked and
        //all previuosly unavailable should be unavailable
        var eventEnabled = false;
        for (var i = 0; i < tbEventFees.rows.length; i++) {
            var row = tbEventFees.rows[i];
            var rdo = row.cells[0].firstChild.firstChild;
            if (!rdo.disabled) {
                eventEnabled = true;
                break;
            }
        }

        if (tbSubEventFees == null) return;

        for (var i = 0; i < tbSubEventFees.rows.length; i++) {
            var row = tbSubEventFees.rows[i];
            var spn = row.cells[0].firstChild;
            var chk = row.cells[0].firstChild.firstChild;
            row.disabled = !eventEnabled;  //false;
            spn.disabled = !eventEnabled;  //false;
            chk.disabled = !eventEnabled;  //false;
        }

        //all previuosly chosen should be checked and
        //all previuosly unavailable should be unavailable
        for (var i = 0; i < tbSubEventFees.rows.length; i++) {
            var row = tbSubEventFees.rows[i];
            var chk = row.cells[0].firstChild.firstChild;
            if (chk.checked) __pR(chk);
        }
    }
}

function __pRxSE2(thisObj)
{
   try{
        if (thisObj.parentNode.getAttribute("eventtype") == "ARCHIVED WEBINAR"
            || thisObj.parentNode.getAttribute("eventtype") == "WEBINAR ARCHIVE"
            || thisObj.parentNode.getAttribute("eventtype") == "WEBINAR")
        {
            __pRxSE(thisObj);
            return;
        }
		//For unchecked check control
		var checkControlArray = new Array();
		var checkCount = 0;
		var table = null;
		if (typeof thisObj.parentNode == 'undefined' ) table = thisObj.parentNode.parentNode.parentNode.parentNode;
		else table = thisObj.parentNode.parentNode.parentNode.parentNode;
		if (table.tagName == 'TBODY')
		{
		    table = thisObj.parentNode.parentNode.parentNode.parentNode.parentNode;
		}
		var sDateToCheck = __convertToDateTime(thisObj.parentNode.getAttribute("sd"));
		var eDateToCheck = __convertToDateTime(thisObj.parentNode.getAttribute("ed"));
		for(var i=0;i<table.rows.length;i++){
		    
			var row = table.rows[i];
			var chk = row.cells[0].firstChild.firstChild;
			var sDate = __convertToDateTime(chk.parentNode.parentNode.firstChild.getAttribute("sd"));
			
			var eDate = __convertToDateTime(chk.parentNode.parentNode.firstChild.getAttribute("ed"));
			var result = ((sDateToCheck < sDate || sDateToCheck > eDate) &&  ( eDateToCheck <= sDate || eDateToCheck > eDate));
			if(result){
				result= ((sDate < sDateToCheck || sDate > eDateToCheck) &&  ( eDate <= sDateToCheck || eDate > eDateToCheck));
			}
			if(thisObj.checked){
				if(thisObj != chk && result == false)
				{
					row.disabled = true;
					chk.disabled = true;
					chk.checked = false;
				}
			}
			else{
				if(chk.checked){
					checkControlArray[checkCount] = chk;
					checkCount++;
				}
				if(thisObj != chk && result == false){
					row.disabled = false;
					chk.disabled = false;
				}
			}
		}
		 $('#tbSubEventsFees').find(':input').each(function(){
                if (this.type == 'checkbox')
                {
                    var row = $(this).parent().parent();
                    var chk = $(this);
                    var sDate =  __convertToDateTime($(this).parent().attr('sd'));
                    var eDate = __convertToDateTime($(this).parent().attr('ed'));
                    var result = ((sDateToCheck < sDate || sDateToCheck > eDate) &&  ( eDateToCheck <= sDate || eDateToCheck > eDate));
			        if(result){
				        result= ((sDate < sDateToCheck || sDate > eDateToCheck) &&  ( eDate <= sDateToCheck || eDate > eDateToCheck));
			        }
			        if(thisObj.checked){
				        if(result == false)
				        {
					        row.prop('disabled','disabled');
					        chk.prop('disabled','disabled');
					        chk.prop('checked','');
				        }
			        }
			        else{
				        if(chk.is(':checked')){
					        checkControlArray[checkCount] = chk;
					        checkCount++;
				        }
				        if(result == false){
					         row.prop('disabled','');
					        chk.prop('disabled','');
				        }
			        }
                }
        });
		//Recalculate for enable rows
		if(!thisObj.checked){__Recalculate(checkControlArray);}
	}
	catch(e){}
}
//check if there are master subevents; if true then allow no registration fees checked
function __pRxSE(thisObj) {
   
    var relEvtRowIndex = thisObj.parentNode.parentNode.parentNode.rowIndex;
    var isWebinar = false;
    if (thisObj.parentNode.getAttribute("eventtype") == "ARCHIVED WEBINAR"
            || thisObj.parentNode.getAttribute("eventtype") == "WEBINAR ARCHIVE"
            || thisObj.parentNode.getAttribute("eventtype") == "WEBINAR")
    {
        isWebinar = true;
    }
    //alert(relEvtRowIndex);
    var tableRelEvt = document.getElementById('tbRelatedEventsFees');
    //alert(tableRelEvt.rows.length);
    var table = null;
    var table1 = null;
    if (relEvtRowIndex < tableRelEvt.rows.length - 1) {
        table = tableRelEvt.rows[relEvtRowIndex].nextSibling.cells[0].children[0];
        if (table.tagName.toUpperCase()!="TABLE"){
            table = null;
        }
        if (tableRelEvt.rows[relEvtRowIndex + 1].nextSibling != null){
        table1 = tableRelEvt.rows[relEvtRowIndex + 1].nextSibling.cells[0].children[0];
        if (table1.tagName.toUpperCase() != "TABLE") {
            table1 = null;
        }
        }
    }
    if (table == null) {
        return;
    }
    if (!thisObj.checked) {
        var j = 1;
        if (table1 != null) j = 0;
        
        for (var i = 0; i < table.rows.length; i++) {
            var row = table.rows[i];
            var spn = row.cells[j].firstChild;
            var chk = row.cells[j].firstChild.firstChild;
//            if (chk.parentNode.getAttribute("prf") == "Y") {
//                row.disabled = true;
//                spn.disabled = true;
//                chk.disabled = true;
//                chk.checked = false;
//            }
            row.disabled = true;

            if (spn != null) {
                if (spn.disabled) {
                    spn.disabled = true;
                }
                else {
                    //alert("spn has no property");
                    spn = row.cells[0].firstChild;
                    spn.disabled = true;
                }
            }
            else {
                //alert("spn is null")
            }
            if (chk != null) {
                //chk.disabled = false;
                if (chk.disabled) {
                    if(!isWebinar)
                    {
                        chk.disabled = true;
                    }
                }
                else {
                    //alert("chk has no property");
                }
            }
            else {
                //alert("chk is null")
                chk = row.cells[0].firstChild.firstChild;
                if(!isWebinar)
                {
                    chk.disabled = true;
                }
            }


            //spn.disabled = true;
            //chk.disabled = true;
        }

        if (table1 != null) { //alert("table1 not null")
            j = 1;
            for (var i = 0; i < table1.rows.length; i++) {
                var row = table1.rows[i];
                var spn = row.cells[j].firstChild;
                var chk = row.cells[j].firstChild.firstChild;
                row.disabled = true;
                spn.disabled = true;
                if(!isWebinar)
                {
                    chk.disabled = true;
                }
                chk.checked = false;
            }
        }
        
    }
    else {

        var thisObject2;

        var j = 1;
        if (table1 != null) j = 0;
        
        //alert("j:" + j)
    
        for (var i = 0; i < table.rows.length; i++) {
            var row = table.rows[i];
            var spn = row.cells[j].firstChild;
            var chk = row.cells[j].firstChild.firstChild;
            row.disabled = false;
            if (spn != null) {
                if (spn.disabled) {
                    spn.disabled = false;
                }
                else {
                    //alert("spn has no property");
                    spn = row.cells[0].firstChild;
                    spn.disabled = false;
                }
            }
            else { 
            //alert("spn is null")
            }
            if (chk != null) {
                //chk.disabled = false;
                if (chk.disabled) {
                    chk.disabled = false;
                }
                else {
                    //alert("chk has no property");
                }
            }
            else {
                //alert("chk is null")
                chk = row.cells[0].firstChild.firstChild;
                chk.disabled = false;
            }
               
            var cellLength = row.cells.length;
            if (cellLength > 2) {
                var cellChildNodes = row.cells[cellLength - 2].childNodes;
                var childNodesCount = cellChildNodes.length;
                if (childNodesCount > 0) {
                    var ddl = cellChildNodes[0];
                    if (ddl != null) {
                        ddl.removeAttribute("disabled");
                    }
                }
            }
        }


        if (table1 != null) {
            j = 1;
            for (var i = 0; i < table1.rows.length; i++) {
                //alert(table1.rows.length);
                var row = table1.rows[i];
                //alert(row.cells[j].firstChild.tagName.toUpperCase());
                var spn = row.cells[j].firstChild;
                var chk = row.cells[j].firstChild.firstChild;
                row.disabled = false;
                spn.disabled = false;
                chk.disabled = false;
            }
        }

        //all previuosly chosen should be checked and
        //all previuosly unavailable should be unavailable
        for (var i = 0; i < table.rows.length; i++) {
            var row = table.rows[i];
            var chk = row.cells[1].firstChild.firstChild;
            //if (chk.checked) __pR(chk);
        }

    }    
}

//Private
function __Recalculate(controlArray){
for(var i=0; i<controlArray.length; i++){
//Recheck the enable controls
__pR(controlArray[i]);
}}

function __checkReCheckALL(checkCntrls){
var stringArray = checkCntrls.split(",");
for(var i=0;i<stringArray.length;i++){
	var checkCntrl = document.all[stringArray[i]];
	checkCntrl.checked = true;
	__pR(checkCntrl);}
}

function __convertToDateTime(commaPstr){
	var stringArray =  commaPstr.split(",");
	var pYear = parseInt(stringArray[0],10);
	var pMonth = (parseInt(stringArray[1],10)-1);
	var pDate =parseInt(stringArray[2],10);	
	var pHH = parseInt(stringArray[3],10);	
	var pMM = parseInt(stringArray[4],10);
	var pSS = parseInt(stringArray[5],10);
	var pAMPM = stringArray[6];	
	//if (pHH < 12 && pAMPM == "PM") { pHH = pHH-0+12; }
	if (pHH < 12 && pAMPM == "PM") { pHH = pHH+12; }
	//else if (pHH > 11 && pAMPM == "AM") { pHH-=12; }
	//else { pHH=9; }
	var d = new Date(pYear,pMonth,pDate,pHH,pMM,pSS);
	return d;
}


