﻿var contentId = "ctl00_TopZone_ctl01_CustomTrend1_";

function getCandidates(search, candidates, selected)
{
    
    var objDest = getASPControl('txtDestination');
    var objHotelName = getASPControl('txtHotelName');
    var objSTRCode = getASPControl('txtSTRCode');
    var objPart = getASPControl('rblParticipant');
    var objSearch = getASPControl('rblSearchMethod');
    
    if(objDest != null || objHotelName != null || objSTRCode != null)
    {
        if(checkDestination(objDest) || checkDestination(objHotelName) || checkDestination(objSTRCode))
        {
            //alert(search);
            if((search != null) || (search != ''))
            {
                var sQuery;
                var sURL = "../webparts/resources/Candidates.aspx";
                if (checkDestination(objDest) && (getRadioButtonListValue(objSearch) == 'Destination Search') || getRadioButtonListValue(objSearch) == 'Ricerca per destinazione' || getRadioButtonListValue(objSearch) == '目的地搜索' || getRadioButtonListValue(objSearch) == 'Búsqueda de destinos' || getRadioButtonListValue(objSearch) == 'エリア検索' || getRadioButtonListValue(objSearch) == 'Destinationssuche' || getRadioButtonListValue(objSearch) == 'Destinationssökning')
                {
                    sQuery = "?search=" + search + "&dest=" + objDest.value;
                }
                else
                {
                    sQuery = "?search=" + search + "&dest=";
                }

                sQuery = getParticipationQuery(sQuery);
                switch(search)
                {
                    case 3: // search from selected list
                        sQuery = getDistanceQuery(sQuery);
                        if ((candidates != null) && (candidates != ''))
                            sQuery = sQuery + "&list=" + candidates;
                        if ((selected != null) && (selected != ''))
                            sQuery = sQuery + "&sel=" + selected;
                        break;
                    case 2: // search from name or entered list
                        sQuery = getDistanceQuery(sQuery);
                        sQuery = getHotelName(sQuery);                     
                        sQuery = getHotelList(sQuery);
                        //alert(sQuery);
                    default: // search from criteria
                        sQuery = getDistanceQuery(sQuery);
                        sQuery = getScalesQuery(sQuery);
                        sQuery = getSizesQuery(sQuery);
                        sQuery = getLocationsQuery(sQuery);
                        sQuery = getPropertyTypesQuery(sQuery);
                        sQuery = getBrandQuery(sQuery);
                        sQuery = getClassesQuery(sQuery);
                        if ((selected != null) && (selected != '')) {
                            sQuery = sQuery + "&sel=" + selected;
                        }
                        else {
                            var mySel = window.frames[1].document.forms["frmSelected"];
                            var sel = getAllProps(mySel);
                            if ((sel != null) && (sel != '')) {
                                sQuery = sQuery + "&sel=" + sel;
                            }
                        }
                        
                        break;
                }
                window.frames[0].location.href = sURL + sQuery;
                
            }
        }
    }
    return false;
}
function getSelected(selected)
{
    var objDest = getASPControl('txtDestination');
    var objHotelName = getASPControl('txtHotelName');
    var objSTRCode = getASPControl('txtSTRCode');
   if(objDest != null || objHotelName != null || objSTRCode != null)
    {
         if(checkDestination(objDest) || checkDestination(objHotelName) || checkDestination(objSTRCode))
        {
            var sQuery;
            var sURL = "../webparts/resources/Selected.aspx";

            if (checkDestination(objDest)) {
                sQuery = "?dest=" + objDest.value;
            }
            else {
                sQuery = "?dest=";
            }
            sQuery = getDistanceQuery(sQuery);       
            if(selected != '') {
                sQuery = sQuery + "&list=" + selected;
                //$(".buttonDisabled") = $(".button");
                document.getElementById(contentId + "btnNext").getAttributeNode("class").value = "button";
                //$(".primary-action").attr("disabled", false);
            } else {
                //$(".button") = $(".buttonDisabled");
                document.getElementById(contentId + "btnNext").getAttributeNode("class").value = "buttonDisabled";
                //$(".primary-action").attr("disabled", true);
            }
            //alert(sURL + sQuery);
            window.frames[1].location.href = sURL + sQuery;
            window.frames[2].location.href = '../webparts/resources/TrendPageTwo.aspx?list=' + selected;
        }
    }
    return false;
}
function getControlId(id)
{
    var tempId = "";
    if(id != null)
    {
        stIdx = id.lastIndexOf('_') + 1;
        tempId = id.substring(stIdx,id.length);
    }
    return tempId;
}
function getASPControl(ctrlId)
{
    var rtnCtrl = document.getElementById(contentId + ctrlId);
    return rtnCtrl;
}
function setDisplay(toShow,toHide) 
{
    if(toHide != null && toHide != '')
        $(toHide).hide();
    if(toShow != null && toShow != '')
        $(toShow).show();
}
function setCheckAllChecked(ctrl)
{
    if(ctrl != null)
    {
        var bCheck = ctrl.checked
        var cbList = ctrl.parentNode.parentNode.parentNode.parentNode;
        if(cbList != null)
        {
            var cbItems = cbList.getElementsByTagName('input');
            for(var i=1;i<cbItems.length;i++)
            {
                cbItems.item(i).checked = bCheck;
            }
        }
    }
    return true;
}
function setCheckedCheckAll(ctrl)
{
    if(ctrl != null)
    {
        var bCheck = ctrl.checked
        var cbList = ctrl.parentNode.parentNode.parentNode.parentNode;
        if(cbList != null)
        {
            var cbItems = cbList.getElementsByTagName('input');
            for(var i=1;i<cbItems.length;i++)
            {
                if(cbItems.item(i).checked != bCheck)
                {
                    cbItems.item(0).checked = false;
                    return;
                }
            }
            cbItems.item(0).checked = bCheck;
        }
    }
    return true;
}
function setPageDisplay()
{
    var objDest = getASPControl('txtDestination');

    if((objDest == null) || (objDest.value == ""))
        setDisplay(null,'.search');
    else
        setDisplay('.search',null);
}
function CheckIfMultiListChecked(ctrl)
{
    if(ctrl != null)
    {
        var chkList= ctrl.getElementsByTagName('input');
        for(var i=0;i<chkList.length;i++)
        {
            if(chkList.item(i).checked)
                return true;
        }
    }
    return false;
}
function getDropDownListValue(ddl)
{
    if(ddl != null)
    {
        return ddl.options[ddl.selectedIndex].value;
    }
    return 0;
}
function getRadioButtonListValue(rdbl)
{
    if(rdbl != null)
    {
        var rbList= rdbl.getElementsByTagName('input');
        for (var i=0; i < rbList.length; i++)
        {
            if (rbList[i].checked)
            {
                return rbList[i].value;
            }
        }
    }
    return "";
}
function getListValues(cbl)
{
    var rtnStr = "";
    
    if(cbl != null)
    {
        var chkList= cbl.getElementsByTagName('input');
        
        if(chkList.item(0).checked)
            return 'all';
            
        for(var i=1;i<chkList.length;i++)
        {
            if(chkList.item(i).checked)
            {
                var stIdx = chkList.item(i).id.lastIndexOf("_") + 1;
                var id = chkList.item(i).id.substring(stIdx);
                if(rtnStr.length == 0)
                    rtnStr = id;
                else
                    rtnStr = rtnStr + ',' + id;
            }
        }
    }
    return rtnStr;
}
function checkDestination(destination)
{   
    if((destination == null) || (destination.value == ""))
    {
        setDisplay(null,'.search');
        //alert("Please enter a Destination and click Search");
        return false;
    }
    setDisplay('.search',null);
    return true;
}
function getParticipationQuery(curQuery)
{
    var objPart = getASPControl('rblParticipant');
    
    var part = getRadioButtonListValue(objPart);
    if(part != "")
        return curQuery + "&part=" + part;
        
    return curQuery;
}
function getDistanceQuery(curQuery)
{
    var objDist = getASPControl('sDistance');
    
    var dist = getDropDownListValue(objDist);
    if(dist > 0) {
        return curQuery + "&dist=" + dist + getMeasureQuery();
    } else {
        return curQuery + getMeasureQuery();
    }
        
    return curQuery;
}
function getMeasureQuery()
{
    var miles = getASPControl('rbMiles');
    if((miles != null) && (miles.checked)) {
        return "&meas=1";
    } else {
        return "&meas=2";
    }
}
function getScalesQuery(curQuery)
{
    var objScale = getASPControl('cblScale');
    
    var scales = getListValues(objScale);
    if((scales != null) && (scales != ""))
        return curQuery + "&scale=" + scales;
        
    return curQuery;
}
function getClassesQuery(curQuery)
{
    var objClass = getASPControl('cblClass');
    
    var classes = getListValues(objClass);
    if((classes != null) && (classes != ""))
        return curQuery + "&classes=" + classes;
        
    return curQuery;
}
function getClassListValues(cbl)
{
    var rtnStr = "";
    
    if(cbl != null)
    {
        var chkList= cbl.getElementsByTagName('input');
        if(chkList.item(i).checked)
            return 'all';
            
        for(var i=1;i<chkList.length;i++)
        {
            if(chkList.item(i).checked)
            {
                if(rtnStr.length == 0)
                    rtnStr = i - 1;
                else
                    rtnStr = rtnStr + ',' + i - 1;
            }
            
           
        }
    }
    return rtnStr;
}
function getSizesQuery(curQuery)
{
    var objSizes = getASPControl('cblPropSize');
    
    var sizes = getListValues(objSizes);
    if((sizes != null) && (sizes != ""))
        return curQuery + "&size=" + sizes;
        
    return curQuery;
}
function getLocationsQuery(curQuery)
{
    var objLocTypes = getASPControl('cblLocType');
    
    var locns = getListValues(objLocTypes);
    if((locns != null) && (locns != ""))
        return curQuery + "&locn=" + locns;
        
    return curQuery;
}
function getPropertyTypesQuery(curQuery)
{
    var objPropTypes = getASPControl('cblPropType');
    
    var props = getListValues(objPropTypes);
    if((props != null) && (props != ""))
        return curQuery + "&prop=" + props;
        
    return curQuery;

}
function getBrandQuery(curQuery)
{
    var objBrand = getASPControl('sBrands');
    
    var brand = getDropDownListValue(objBrand);
    if(brand > 0)
        return curQuery + "&brand=" + brand;
        
    return curQuery;
}
function getHotelName(curQuery)
{
    var objName = getASPControl('txtHotelName');
    var name = trim(objName.value);
    
    if((objName != null) && (objName.value != '') && (objName.value != undefined))        
        return curQuery + "&name=" + name;
    
    return curQuery;
}
function getHotelList(curQuery)
{
   var str = '';
   
    var objName = getASPControl('txtSTRCode');
    
    if((objName != null) && (objName.value != ''))
    {
        var str=trim(String(objName.value));
		
		str=str.replace(/\D/g,",");
		str=str.replace(/,,/g,",");
    }
	if(str!='')
        return curQuery + "&list=" + str;
    
    return curQuery;
}
function getAllProps(myList)
{
    
    var strList = '';
    
	if((myList == null) || (myList.chk == null))
	    return '';

	if (myList.chk[1] == null) {
	    strList += myList.chk.value;
	}
	else {
	    for (var i = 0; i < myList.chk.length; i++) {
	        if (strList != '')
	            strList += String.fromCharCode(44) + myList.chk[i].value;
	        else
	            strList += myList.chk[i].value;
	    }
	}
    return strList;
}
function getCheckedProps(myList)
{
    var strList = '';
    
	if((myList == null) || (myList.chk == null))
		return '';	

    if (typeof myList.elements["chk"] != 'undefined') {
        if (typeof myList.elements["chk"][0] != 'undefined'){
            //there are many checkboxes   
            for(var i=0; i< myList.chk.length; i++){
                if((myList.elements["chk"][i].checked==true)&&(strList!=''))
                    strList+=String.fromCharCode(44)+myList.elements["chk"][i].value;
                else if(myList.elements["chk"][i].checked==true)
                    strList+=myList.elements["chk"][i].value;
            }
        } else {
            //there's only one checkbox
            strList+=myList.elements["chk"].value;
        }
    }
    return strList;
}
function getUnCheckedProps(myList)
{
    var strList = '';
    
	if((myList == null) || (myList.chk == null))
		return '';	
		
    for(var i=0; i< myList.chk.length; i++)
	{
	    if((myList.chk[i].checked!=true)&&(strList!=''))
		    strList+=String.fromCharCode(44)+myList.chk[i].value;
	    else if(myList.chk[i].checked!=true)
		    strList+=myList.chk[i].value;
	}
	
    return strList;
}
//******************************************************************************************************************
function AddList()
{
	// Clean up the variables
	var strAdd='';
	var strCandidates='';
	var strCompset='';
	var myCandidates = window.frames[0].document.forms[0];
	var mySelected = window.frames[1].document.forms[0];
	// get list to add
	if((myCandidates == null) || (myCandidates.chk == null))
	    return;
	//alert('Candidate Window ' + myCandidates);
	strAdd = getCheckedProps(myCandidates);
	// Get list of leftovers of the Candidates
	strCandidates = getUnCheckedProps(myCandidates);
	// get list of existing Comp Set Members
	strCompset = getAllProps(mySelected);
	// Get new list of Comp Set
	if(strCompset!='')
	{
		if(strAdd!='')
			strCompset+=String.fromCharCode(44)+strAdd;
	}
	else
	    
		strCompset+=strAdd;

    // Refresh the frames
    var objSearch = getASPControl('rblSearchMethod');
    if (getRadioButtonListValue(objSearch) == 'Destination Search')
    {
        getCandidates(3, '', strCompset); // gets only hotels already present in list
    }
    else
    {
        getCandidates(3, strCandidates, strCompset); // gets only hotels already present in list
    }

	//getCandidates(1,strCandidates, strCompset); // gets a full set of 30 hotels except for selected
    getSelected(strCompset);
	return false;
	
	
}
function RemoveList()
{
	// Clean up the variables
	var strRemove='';
	var strCandidates='';
	var strCompset='';
	var myCandidates = window.frames[0].document.frmCandidates;
	var mySelected = window.frames[1].document.frmSelected;

	if(mySelected.elements.length==1)
	{
		return;
	}

	// Get list of existing Candidates
	strCandidates = getAllProps(myCandidates);	
	 
	// get list to remove
	strRemove = getCheckedProps(mySelected);

    if(strRemove=='')
	    return;
	
	// Get list of Comp Set leftovers
	strCompset = getUnCheckedProps(mySelected);
		
	// Get new list of Candidates
	if(strCandidates!='')
		strCandidates+=String.fromCharCode(44)+strRemove;
	else
		strCandidates+=strRemove;
		
	// Refresh the frames
	getCandidates(3,strCandidates, strCompset); // gets only hotels already present in list
	//getCandidates(1,strCandidates, strCompset); // gets a full set of 30 hotels except for selected
	getSelected(strCompset);
	return false;
}
function GoNextPage()
{
	// Clean up the variables
	var strCompset='';
	var strErr='' ;
	var intStatus=0;
	var myCandidates = window.frames[0].document.forms["frmCandidates"];
	var mySelected = window.frames[1].document.forms["frmSelected"];
	
	
	
	if(mySelected.Participation != null || mySelected.Participation != undefined) {	
	    for(var i=0; i < mySelected.Participation.length; i++)
	    {
		    intStatus=intStatus+parseInt(mySelected.Participation[i].value);
	    }
	    if(intStatus<4)
	    {
	        alert('There must be at least four properties that submit data.');
	        return false;
	    }
	    else
	    {   
	        // Check if no violations
		    for(var i=0; i<  mySelected.Err.length; i++)
		    {
			    strErr+=mySelected.Err[i].value;
		    }
		    if(strErr!='')
		    {   
		        alert('There are some problems with properties you have selected.'+String.fromCharCode(10)+
				    String.fromCharCode(10)+'Red highlights indicate one of the problems listed below.'+String.fromCharCode(10)+
				    String.fromCharCode(10)+'* Rooms Distribution can not be more then 35%'+String.fromCharCode(10)+
				    String.fromCharCode(10)+'* Chain Distribution can not be more then 35%'+String.fromCharCode(10)+
				    String.fromCharCode(10)+'* Parent Company Distribution can not be more then 60%');
		        return false;
		    }
		    else 
		    {//Compset list
			    for(var i=0; i<  mySelected.chk.length; i++)
			    {
			        if(strCompset!='')
				        strCompset+=String.fromCharCode(44)+mySelected.chk[i].value;
			        else 
				        strCompset+=mySelected.chk[i].value;
			    }

			    //document.getElementById('ctl00_TopZone_ctl01_CustomTrend1_idList').value = strCompset;

			    window.frames[2].location.href = '../webparts/resources/TrendPageTwo.aspx?list=' + strCompset;
			    return true;
			    //document.location='Custom_Trend_2.aspx?list='+strCompset //+'&timeframe='+strTimeframe
		    }
	    }
	}

}

function ViewParticipation(appPath)
{
	var myCandidates = window.frames[0].document.forms["frmCandidates"];
	var url= appPath + "/webparts/resources/Participation.aspx";
	
	strCandidates = getAllProps(myCandidates);	
	
	url = url + "?list=" + strCandidates;

    newwindow=window.open(url,'name','height=200,width=150,scrollbars=yes,resizable=yes,menubar=no,width=870,height=550,toolbar=no');
    if (window.focus) {newwindow.focus()}
	return false;
}


/*************************************************************
Custom Validation Methods
**************************************************************/
function ValidateReviewedSelected(source, arguments)
{
    var ckReview = getASPTrend2Control('chkReviewed');
   
    if ((ckReview != null) && (ckReview.checked)) {
        arguments.IsValid = true;
    }
    else
        arguments.IsValid = false;
}
function getASPTrend2Control(ctrlId) {
    var rtnCtrl = document.getElementById('ctl00_TopZone_ctl01_CustomTrend1_CustomTrend21_' + ctrlId);
    return rtnCtrl;
}
function ValidateCurrencySelected(source, arguments) {
    var ddl = getASPTrend2Control('ddlCurrency');
    if (ddl.selectedIndex > 0) {
        arguments.IsValid = true;
    }
    else
        arguments.IsValid = false;
}

function ValidateTimeFrameSelected(source, arguments)
{
    
    var rbl = getASPTrend2Control('rblTimeFrame');
    
    if(rbl != null)
    {
        var rbList= rbl.getElementsByTagName('input');
        for(var i=0;i<rbList.length;i++)
        {
            if(rbList.item(i).checked)
            {
                arguments.IsValid = true;
                return;
            }
        }
     }
     arguments.IsValid = false;
}

