// delivery.js
// Functions for handling modal window opening for Delivery
var isPrint = false;
// Update for Prototype Window that updates the Window.destroy() method - solves
// a loading of a "null" location in IE
Window.prototype.destroy = function () {
    Windows.notify("onDestroy", this);
    Event.stopObserving(this.topbar, "mousedown", this.eventMouseDown);
    Event.stopObserving(this.bottombar, "mousedown", this.eventMouseDown);
    Event.stopObserving(this.content, "mousedown", this.eventMouseDownContent);
    Event.stopObserving(window, "load", this.eventOnLoad);
    Event.stopObserving(window, "resize", this.eventResize);
    Event.stopObserving(window, "scroll", this.eventResize);
    Event.stopObserving(this.content, "load", this.options.onload);
    if (this.sizer) {
        Event.stopObserving(this.sizer, "mousedown", this.eventMouseDown);
    }
    if (this.options.url) {
        this.content.src = "javascript:false;";
    }
    if (this.iefix) {
        Element.remove(this.iefix);
    }
    Element.remove(this.element);
    Windows.unregister(this);
}


// Variable for holding a reference to the delivery (modal in IE, regular in Mozilla) window
var _deliveryWindow = null;
var _deliveryPrototypeWindow = null;
var _openedWindows = 0;

function getDeliveryWindow() {
	return _deliveryWindow;
}

function setDeliveryWindow(win) {
	_deliveryWindow = win;
}

function _getDeliveryPrototypeWindow() {
	return _deliveryPrototypeWindow;
}

function _setDeliveryPrototypeWindow(win) {
	_deliveryPrototypeWindow = win;
}

function openModalWindow(url, windowName, width, height) {
    var ie = window.showModalDialog;
    var features;
    var ret;
    if (ie) {
        features = "dialogWidth: " + width + "px; dialogHeight: " + height + "px; center: yes; status: no; help: no; unadorned: no; scroll: no;";
        // We pass the current window object to the modal window as the dialogArguments
        // so the opener and the modal window have references to each other
        ret = window.showModalDialog(url, window, features);
        var regexp = new RegExp("/wles/app/");
        if (ret && (ret != null) && (ret != "") && (ret.match(regexp))) {
            top.location.href = ret;
        }
    } else {
        features = "width=" + (width-5) + ", height=" + (height-15) + ", dependent, modal, dialog, scrollbars=no"
        var topCoord = Math.floor( top.screenY + ((top.outerHeight - height) / 2) );
        var leftCoord = Math.floor( top.screenX + ((top.outerWidth - width) / 2) );
        features += ", top=" + topCoord + ", left=" + leftCoord;
        // We set the delivery window when opening the window
        setDeliveryWindow(window.open(url, windowName, features));
    }
}
/* other brands have diferent title that wles windows */
/* use openModalPrototypeWindowEt for other titles */
function openModalPrototypeWindow(windowUrl, windowName, windowWidth, windowHeight) {
	openModalPrototypeWindowEt(windowUrl, windowName,"Westlaw.ES", windowWidth, windowHeight);
}

function openModalPrototypeWindowEt(windowUrl, windowName, etiqueta, windowWidth, windowHeight) {
	if (etiqueta==null||etiqueta==""){ etiqueta = "Westlaw.ES";}
	var deliveryUrl = updateDeliveryUrl(windowUrl, windowName);
	_openedWindows = _openedWindows + 1;
    var prototypeWin = new Window(windowName + _openedWindows, {className: "wles-window", title: etiqueta,
            url: deliveryUrl, width: (windowWidth + 10) + "px", height: (windowHeight + 25) + "px",
            resizable: false, draggable: false, minimizable: false, maximizable: false});
    prototypeWin.setDestroyOnClose();
    prototypeWin.toFront();
    prototypeWin.showCenter(true);
    _setDeliveryPrototypeWindow(prototypeWin);

    setDeliveryWindow(top.frames[prototypeWin.getId() + "_content"]);
}

function getTopDeliveryIframe() {
	var iframe;
    if (top.frames["topDeliveryIframe"]) {
    	iframe = top.frames["topDeliveryIframe"];
    } else if (top.document.getElementById("topDeliveryIframe")) {
        iframe = top.document.getElementById("topDeliveryIframe");
    }
	return iframe;
}

function setTopDeliveryIframeOnload(obj) {
	this.getTopDeliveryIframe().onload = obj;
}

function setTopDeliveryIframeLocation(url) {
	this.getTopDeliveryIframe().location.href = url;
}

function closeDeliveryWindow() {
	Windows.close(_getDeliveryPrototypeWindow().getId());
}


function callDeliveryOnload() {
	if (getDeliveryWindow()) {
		var url = getTopDeliveryIframe().location.href; 
		if (url.indexOf("/wles/app/delivery/cancel") == -1) {
			if (getDeliveryWindow().getIsPrint() === true) {
				var iframe = getTopDeliveryIframe();
				if (iframe) {
					var img = iframe.document.getElementsByTagName("img");
					for ( cant=0 ;cant < img.length ;cant++ ){
						var dir = img[cant].src;
						if (dir.indexOf("delivery/images/clientImage.gif")!= -1){
							img[cant].setAttribute("src", "/wles/getImage");
						}
					}
					iframe.focus();
					printDocument(iframe);
					setTimeout("closeDeliveryWindow();", 500);
				}
			}
		}
	}
}

function printDocument(iframe) {
	if (window.print) {
		// Workaround for font size in IE7.
		if(navigator.appVersion.indexOf("MSIE 7") != -1) {
			iframe.document.execCommand('print', false, null);
		} else {
			iframe.print();
		}
	}
}

function updateDeliveryUrl(windowUrl, windowName) {
	var deliveryUrl = windowUrl;
	if (windowName.indexOf("Delivery") != -1) {
		if ((typeof self.lastSelectedTab != 'undefined') && (self.lastSelectedTab == "analysis")) {
			if ((typeof self.currentAnalysisItemSelected != 'undefined') && (self.currentAnalysisItemSelected.indexOf("DO-ANA-") == -1 ) && (self.currentAnalysisItemSelected.indexOf("DO-DICC-") == -1)){
				deliveryUrl = deliveryUrl + "&delivery-feature=" + self.lastSelectedTab;
				return deliveryUrl;
			}
			if (typeof self.currentAnalysisItemSelected == 'undefined') {
				return deliveryUrl;
			}
			if ((self.currentAnalysisItemSelected != "") && ((self.currentAnalysisItemSelected.indexOf("DO-ANA-") != -1) || (self.currentAnalysisItemSelected.indexOf("DO-DICC-") != -1))) {
				// A feature for delivery is selected if lastSelectedTab exists and refers to a Document Analysis (DO-ANA-) feature
				var colonPos = self.currentAnalysisItemSelected.indexOf(":");
				var feature = colonPos == -1 ? self.currentAnalysisItemSelected : self.currentAnalysisItemSelected.substring(colonPos + 1);
				deliveryUrl = windowUrl + "&delivery-feature=" + self.lastSelectedTab;
				deliveryUrl = deliveryUrl + "&analysis-item=" + feature;
			}
		}
		if ((typeof self.lastSelectedTab != 'undefined') && (self.lastSelectedTab == "rships")) {
			if ((typeof self.currentRshipsItemSelected != 'undefined') && (self.currentRshipsItemSelected != "")) {
				deliveryUrl = deliveryUrl + "&delivery-feature=" + self.lastSelectedTab;
				deliveryUrl = deliveryUrl + "&rships-unit=" + self.currentRshipsItemSelected;
				deliveryUrl = deliveryUrl + "&unit-label=" + self.rshipsLabel;
				deliveryUrl = deliveryUrl + "&targetCT=" + self.rshipsType;
				deliveryUrl = deliveryUrl + "&spos=" + self.rshipsSpos;
				deliveryUrl = deliveryUrl + "&epos=" + self.rshipsEpos;
				if (self.rshipsSeeAll != "") {
					deliveryUrl = deliveryUrl + "&seeAll=true";
				}
			}
		}
	}
	return deliveryUrl;
}

function setEventForCloseModal(){
	document.getElementById(_getDeliveryPrototypeWindow().getId() + "_close").onmouseup = cancelDelivery;
}

var loadStatus = false;
//var isPrint = false;
var currentDeliveryCode = "";

function setLoadStatus(value) {
	loadStatus = value;
}

function getLoadStatus() {
	return loadStatus;
}

function setIsPrint(value) {
	isPrint = value;
}

function getIsPrint() {
	return isPrint;
}

function getMainIframe() {
	return top.getDeliveryWindow().frames["mainIframe"];
}

function getStatusIframe() {
	return top.getDeliveryWindow().frames["statusIframe"];
}

function startDelivery(deliveryUrl, statusUrl) {
	top.setTopDeliveryIframeLocation(deliveryUrl);
	if (loadStatus) {
		setTimeout('top.getDeliveryWindow().startStatus("' + statusUrl + '");', 1500);
	}
}

function startStatus(statusUrl) {
	if (loadStatus) {
		var iframe = getStatusIframe();
		if (iframe) {
			iframe.location.href = statusUrl;
		}
	}
}

function cancelDelivery(from){
	var iframe = getTopDeliveryIframe();
	if (iframe) {
		iframe.location.href = "/wles/app/delivery/cancel";
	}
	if ('fromLink' != from)	{
		Windows.close(_getDeliveryPrototypeWindow().getId());
	}
}

function completeFormatDate(date){
	if (date.toString().length == 1) {
		date = "0" + date;
	}
	return date;
}

function downloadEmbeddedDocument(url){
	var d = new Date();
	var year = d.getFullYear();
	var month = completeFormatDate(d.getMonth() + 1);
	var day = completeFormatDate(d.getDate());
	var hours = completeFormatDate(d.getHours());
	var minutes = completeFormatDate(d.getMinutes());
	var elementName = document.getElementById('blob-text').nodeName;
	var extension = '';
	
	if (elementName == 'DIV'){
		extension = '.rtf'
	}else{
		extension = '.pdf'
	}
	
	var fileName = 'WLES_' + month + '-' + day + '-' + year + '_' + hours + '_' + minutes + extension; 
	document.getElementById('downloadButton').href = url + fileName;
}

