﻿var a_current_research = new Array();
var a_saved_research = new Array();
var a_remove_checkout_research = new Array();
var oReportWindow;

Array.prototype.inArray = function (value) {
	var i;
	var _length = this.length;
	for (i=0; i < _length; i++) {
		if (this[i] == value) {
			return true;}
	}
	return false;
};
Array.prototype.removeElement = function (value) {
    var i;
	var _length = this.length;
	for (i=0; i < _length; i++) {
		if (this[i] == value) {
			this.splice(i,1);
			return true;
		}
	}
	return false;
};

function getReports(sPoint) {
    oDiv = document.createElement('DIV');
    oDiv.id = 'ReportDiv'; 
    oDiv.style.height = "270px";
    oDiv.style.overflow = "auto";
   
    oImageDiv = document.createElement('DIV');
    oImageDiv.style.textAlign="center";
    oImageDiv.innerHTML = "<br/><br/><br/><br/><br/>";
   
    oLoading = document.createElement('IMG');
    oLoading.src = HOST_PATH + "/Images/Loading_Blue.gif";
    
    oImageDiv.appendChild(oLoading);
    oDiv.appendChild(oImageDiv);
    
    a_current_research = new Array();
    
    oFooter = document.createElement('DIV');
    oFooter.innerHTML = "<div>"+
                        "<span id='builder_items_selected' style='padding-left:5px'></span>"+
                        "<a href='#temp' rel='dropsearch' onclick='commitCurrentResearch();' > save </a>"+
                        "</div>";
       
    oReportWindow = new Window({id:"ReportWindow", className: "alphacube",  minimizable: false, maximizable: false, width:350, height:300, zIndex: 100, resizable: false, title: "Report Builder", draggable:true, wiredDrag: true, left:0,top:0, destroyOnClose: true})
    oReportWindow.getContent().appendChild(oDiv);
    oReportWindow.getContent().appendChild(oFooter);
    oReportWindow.showCenter(); 
    
    oReportWindow.getContent().style.overflow = "hidden";
    
    var research_length = a_current_research.length;
    if (research_length==1)
        $('builder_items_selected').innerHTML = research_length + " item selected";
    else
        $('builder_items_selected').innerHTML = research_length + " items selected";
   
    var url  = HOST_PATH + "/MapHandler.ashx?type=reports&class="+sPoint+"&callback=handleReportBuilder";
   
    bObj = new JSONscriptRequest(url); 
    bObj.buildScriptTag();
    bObj.addScriptTag();
}

function handleReportBuilder(jsonReport) {
    myTree = new Bs_Tree();
    myTree.useCheckboxSystem = true;
    myTree.checkboxSystemWalkTree = 3;
    myTree.initByArray(jsonReport);
    
    myTree.drawInto("ReportDiv"); 
}

function checkboxChange(element_id) {
    if (a_current_research.inArray(element_id)) {
        a_current_research.removeElement(element_id);
    }
    else {
        a_current_research[a_current_research.length] = element_id;
    }    
    
    var research_length = a_current_research.length;
    if (research_length==1)
		$('builder_items_selected').innerHTML = research_length + " item selected";
	else
		$('builder_items_selected').innerHTML = research_length + " items selected";
}

function checkboxChangeCheckout(element_id) {
    if (a_remove_checkout_research.inArray(element_id)) {
        a_remove_checkout_research.removeElement(element_id);
    }
    else {
        a_remove_checkout_research[a_remove_checkout_research.length] = element_id;
    }    
    
    var iBasket = a_saved_research.length - a_remove_checkout_research.length;
    
    if (iBasket==1)
        $('infobasket_items_selected').innerHTML = iBasket + " item selected";
    else
        $('infobasket_items_selected').innerHTML = iBasket + " items selected";
    
}

function clearResearch() {
	a_current_research = new Array();
	a_saved_research = new Array();
	a_remove_checkout_research = new Array();
	$('infobasket_items_selected').innerHTML = "0 items selected";
	$('info_basket').innerHTML = "Info Basket (0 Items)";
	oReportWindow.destroy();
	Dialog.alert("The Info Basket has been cleared.",{className:"alphacube", width: 400, height:null})

}
function commitCurrentResearch() {
    var a_length = a_current_research.length;
    var a_not_saved = new Array();
    
    for (var i=0; i<a_current_research.length;i++) {
        if(!a_saved_research.inArray(a_current_research[i]))
            a_saved_research[a_saved_research.length] = a_current_research[i];
        else
            a_not_saved[a_not_saved.length] = a_current_research[i];            
    }
    
    oReportWindow.destroy();
      
    if (a_not_saved.length > 0)
        Dialog.alert(a_current_research.length - a_not_saved.length + " item(s) added to your info basket<br/>" + a_not_saved.length + " item(s) are already saved to your cart and will not be re-added",{className:"alphacube", width: 400, height:null})
    else
        Dialog.alert(a_current_research.length - a_not_saved.length + " item(s) added to your info basket",{className:"alphacube", width: 400, height:null})
        
    if (a_saved_research.length == 1)
        $('info_basket').innerHTML = "Info Basket (" + a_saved_research.length + " Item)";
    else
        $('info_basket').innerHTML = "Info Basket (" + a_saved_research.length + " Items)";
}

function checkOutSaved() {
    if (a_saved_research.length == 0) {
        Dialog.alert("Sorry... You have no items in your info basket",{className:"alphacube", width: 400, height:null, zIndex: 100});
    }
    else {        
        oDiv = document.createElement('DIV');
        oDiv.id = 'ReportDiv'; 
        oDiv.style.height = "270px";
        oDiv.style.overflow = "auto";
       
        oImageDiv = document.createElement('DIV');
        oImageDiv.style.textAlign="center";
        oImageDiv.innerHTML = "<br/><br/><br/><br/><br/>";
       
        oLoading = document.createElement('IMG');
        oLoading.src = HOST_PATH + "/Images/Loading_Blue.gif";
        
        oImageDiv.appendChild(oLoading);
        oDiv.appendChild(oImageDiv);
        
        a_current_research = new Array();
        
        oFooter = document.createElement('DIV');
        oFooter.innerHTML = "<div>"+
                            "<span id='infobasket_items_selected' style='padding-left:5px'></span>"+
                            "<a href='#temp' rel='dropsearch' onclick='clearResearch()'> clear </a>"+
							"<a href='#temp' rel='dropsearch' onclick='checkout()'> checkout </a>"+
                            "<div>";
           
        oReportWindow = new Window({id:"ReportWindow", className: "alphacube",  minimizable: false, maximizable: false, width:350, height:300, zIndex: 100, resizable: false, title: "Info Basket", draggable:true, wiredDrag: true, left:0,top:0, destroyOnClose: true})
        oReportWindow.getContent().appendChild(oDiv);
        oReportWindow.getContent().appendChild(oFooter);
        oReportWindow.showCenter(); 
        
        oReportWindow.getContent().style.overflow = "hidden";
        
        var research_length = a_saved_research.length;
        
        if (research_length==1)
            $('infobasket_items_selected').innerHTML = research_length + " item selected";
        else
            $('infobasket_items_selected').innerHTML = research_length + " items selected";
       
        var url  = HOST_PATH + "/MapHandler.ashx?type=reportcheckout&class="+a_saved_research+"&callback=handleReportBuilder";   
        
        bObj = new JSONscriptRequest(url); 
        bObj.buildScriptTag();
        bObj.addScriptTag();
    }
}

function openReport(sFilename) {
    window.open(sFilename);
}

function checkout() {    
   	sendStats();

	oDiv = document.createElement('DIV');
    oDiv.id = 'ReportDiv'; 
    oDiv.style.height = "270px";
    oDiv.style.overflow = "auto";
   
    oImageDiv = document.createElement('DIV');
    oImageDiv.style.textAlign="center";
    oImageDiv.innerHTML = "<br/><br/><br/><br/><br/>";
   
    oLoading = document.createElement('IMG');
    oLoading.src = HOST_PATH + "/Images/Loading_Blue.gif";
    
    oImageDiv.appendChild(oLoading);
    oDiv.appendChild(oImageDiv);

    oReportWindow.getContent().innerHTML = "";
    oReportWindow.getContent().appendChild(oDiv);
	   
    var url  = "http://imap.esolutionsgroup.ca/FileManagement/GetDocuments.ashx?&saved=" + a_saved_research + "&remove=" +a_remove_checkout_research;
    bObj = new JSONscriptRequest(url); 
    bObj.buildScriptTag();
    bObj.addScriptTag();
}

function sendStats() 
{
	var textArray = []
	jQuery('#ReportWindow img[src="http://imap.esolutionsgroup.ca/_bsJavascript/components/checkbox/img/win2k_noBorder/enabled_2.gif"]').each(function() {
		var parentText = jQuery(this).parents('div:first').text().replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, '');
		if (parentText != 'MS Excel' && parentText != 'Adobe PDF' && parentText != 'HTML')
			textArray.push(parentText);
	});
	
	jQuery.post('/en/services/stats.aspx', { stattype: 'AddAreaReportDownloads', values: 'downloads=' + textArray.join(';') });
}

function handleCheckout(jsonData) {
    var sHTML = "<br/><br/><br/><br/>";
    for (var i=0;i<jsonData.Reports.length;i++) {
        switch (jsonData.Reports[i].fileextension) {
            case "PDF":
				if (jsonData.Reports[i].filename != "Error")
					sHTML += "<a href='"+jsonData.Reports[i].filename+"' target='_blank'>Click here</a> to download your compiled PDF file Area Report<br/>";
                break;
            case "ZIP":
				if (jsonData.Reports[i].filename != "Error")
					sHTML += "<a href='"+jsonData.Reports[i].filename+"' target='_blank'>Click here</a> to download your compiled ZIP file Area Report<br/>";
                break;
            default:
                break;
         }
    }
    oReportWindow.setTitle("Info Basket Output");
    oReportWindow.getContent().innerHTML = sHTML;
}
